Configuring Conductor's Static Monitor (Last updated: $Date: 2001/10/17 16:46:03 $)

1. Introduction

The StaticMonitor is a subclass of the Monitor class that allows the user to specify the information that a node should provide the planner during the planning process. In reality, much of this informaiton should be provided dynamically, but for testing purposes, static information is easier to work with.

Planning information generated by the StaticMonitor is divided into three parts: user preferences, node properties, and link properties. Configuration of each is somewhat different and is discussed below.

2. Configuration

The StaticMonitor is configured using several configuration files. The following properties should be added in Conductor's properties file to tell the StaticMonitor the names of the files to use:

StaticMonitor.UserPrefs filename ./config/UserPrefs The default file from which user preferences should be read.
StaticMonitor.UserPrefs.<protocol> filename none The name of the file from which user preferences for a particular protocol should be read. <protocol> should be replaced with the well known port number for that protocol.
StaticMonitor.NodeInfo filename ./config/NodeInfo The file from which properties describing the local node will be read.
StaticMonitor.LinkInfo filename ./config/LinkInfo The file which describes the various types of links that may be adjacent to this node. Note that this file typically specifies additional configuration files from which to read actual link parameters.

Each configuration file takes a similar form to the Conductor properties file. Each line can either be blank, be a comment (starting with a #), or take the form property=value.

In any given configuration file, a special property, IncludeDefaults, can be used to specify the name of a file which contains a set of default properties. The default properties are overidden by any values in this file. A defaults file can also have an IncludeDefaults property, and so on.

3. Contents of the Configuration Files

In the case of user preferences and node information, the configuration files contain information delivered directly to the planner. Therefore, the contents of the configuration file are dependent on the planner being used.

Link configuration is somewhat more complex. The link configuration file describes a set of links that are (or may be) adjacent to this node. For each link described, a configuration file is secified that contains the parameters to be delivered to the planner. Again, the form of these parameters depends on the planner being used. Details of the link configuration file are described below.

When the StaticPlanner is used, the name of the file containing the plan or the details of the desired plan can be specified in the user preferences at the client node. For more details, see Section 3.1 and Section 3.2 of the documentation for the StaticPlanner.

When the TemplatePlanner is used, the client node provides user preferences and all nodes provide link and node characteristics. For more details, see Section 5, Section 6, Section 7 of the documentation for the TemplatePlanner.

4. The Link Configuration Files

The link configuration file is special in that it does not directly contain information to be sent to the planner. Intead, it describes a set of links that may be adjacent to this node. With each link specification, the name of a configuration file is given which provides the properties to be delivered to the planner. Before sending link properties to the planner, however, they are tagged (as specified below) as belonging either to the upstream or downstream link.

The contents of the link configuration file take the following form:

NumEntries int none The number of link description entries in this file.
<i>.LocalNode address none The node ID of the local endpoint of the link. Unless specified on the command line, a node's ID is the IP address associated with its hostname.
<i>.NextNode address none The node ID of the next Conductor node along the path, which may be across one or more physical links. Unless specified on the command line, a node's ID is the IP address associated with its hostname.
<i>.LocalInterface address none The IP address of the local interface which leads to the next Conductor node.
<i>.File filename none The name of the file which contains the properties that describe this link.

The overall file should contain one NumEntries property followed by the specified number of link specifications. Each link specification consists of four entries: <i>.LocalNode, <i>.NextNode, <i>.LocalInterface, <i>.File.

Each address value has the form [!]nnn.nnn.nnn.nnn/nn. The portion preceeding the slash is an IP address in dotted-decimal notation. The portion after the slash is the size of the bit-mask that denotes significant bits (ex, 24 indicates that only the first 3 octets are compared to determine a match). The optional preceeding ! negates the match (ex, !192.168.1.1/32 matches all addresses other than 192.168.1.1).

The configuration file specified by <i>.File contains the properties that describe this link. A link can either be upstream (toward the server) or downstream (toward the client). Since most nodes will have two links, these properties must be differentiated before sending them toward the planner. Properties that correspond to the upstream node are prepended with the string "PrevLinkProps." and properties for the link downstream from a node are prepended with the string "NextLinkProps." (not including the quotes). Note that this convention is compatible with the TemplatePlanner.

5. Examples

Two examples of the use of the StaticMonitor are present in the source tree, in the directory Conductor/config. The first is UserPrefs.example.StaticPlanner, a user preferences configuration file to be used with the StaticMonitor.

The second example consists of several files for use with the TemplatePlanner. User preferences are configured in UserPrefs.example.TemplatePlanner, node properties are configured in NodeInfo.example.TemplatePlanner, and link properties are configured in LinkInfo.example.TemplatePlanner, LinkInfo.lan.example.TemplatePlanner, and LinkInfo.modem.example.TemplatePlanner.


Conductor is a product of Mark Yarvis (yarvis@fmg.cs.ucla.edu) and the FMG Research Group at UCLA's Department of Computer Science.
Copyright © 2001 The Regents of the University of California. All Rights Reserved.