Network Config

Network Config implements classes related to node-based flow/profile aggregation, routing, link management, and management of system level concerns such as multicast-capability.

class Node(_id)

Defines all the required information for a node in the network. This includes:

  • All provided profiles (aggregated) whose node_id is this node
id_type

alias of str

ID = None

the ID of this node

provided = None

aggregate of all ‘provided’ profiles whose source ID is this node

HasProfiles()
AddProfile(prof)
AddProvidedProfile(prof)
class Route(path=[])

Describes how a flow traverse the links of the system’s network. This is specified as a list of nodes, with the source node at the front of the list and the destination node at the end of the list.

header = 'route:'

line header specifying a route in the config file

path = None

list of node IDs with a source, intermediate nodes, and a destination

AddDest(dest)

Append a node onto the end of the route.

AddSource(src)

Add a node onto the beginning of a route.

InsertNode(node, pos)

Insert a node into the route before the given position.

ParseFromLine(line)

Handles parsing of a route path from a line in the config file. A route is defined as:

route: src_node_id, hop_node_1, ... , hope_node_n, dst_node_id
Length()
class Topology(links={})

Describes the active links between nodes on the system’s network. This is specified as a dictionary of node : list of nodes pairs.

header = 'topology:'

line header specifying a topology link in the config file.

ParseFromLine(line)

Handles parsing of a link from a line in the config file. A topology is defined as:

topology: src_node_id : direct_node_1, ... , direct_node_n
class Config(nodes={}, multicast=False, retransmit=False, routes=[], topology={})

Contains the routing and topology information to fully describe the system’s network and provide a mapping between application data flows (logical) and the system’s network links. It also provides interfaces for setting low-level communications considerations such as retransmission, multiple-unicast, multicast, etc.

addProfile(prof)
GetRoute(src, dst)

Returns the path for the flow from src to dst.

ParseHeader(header)

Parses information from the configuration’s header if it exists:

  • multicast capability
  • retransmission setting

A profile header is at the top of the file and has the following syntax:

# <property> = <value>
ParseFromFile(fName)

Builds the entries from a properly formatted CSV file. Internally calls Config.ParseFromString().

ParseFromString(conf_str)

Handles parsing of the header, topology, and routes in a config file.

main(argv)