MAK RTIspy API Documentation for HLA 1.3
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes
DtRouteMap Class Reference
+ Collaboration diagram for DtRouteMap:

List of all members.

Public Types

typedef std::vector
< DtInetAddrAndPort
DtAddressPortList
typedef std::vector
< MAKRti::DtInetAddr > 
DtAddressList
typedef std::vector
< MAKRti::DtString > 
DtNodeList
typedef std::set
< MAKRti::DtInetAddr > 
DtInterfaceAddrSet
typedef std::vector
< DtRtiForwarderGroup * > 
DtForwarderGroupList
typedef DtBoost::shared_ptr
< DtRouteMap >(* 
DtRouteMapCreatorFcn )(const DtRIDParameters *, const MAKRti::DtInetAddr &)
 DtForwarderPort creator signature.

Public Member Functions

virtual void rebuildRoutes ()
 when the routes file is first read, or if a forwarder is added/ or removed, we should rebuild our routes.
virtual bool isConfiguredViaRoutesFile () const
 Indicate if this route map was built from a configuration file.
virtual bool isEmpty () const
virtual ~DtRouteMap ()
virtual DtNodeList nodeNames () const
 Get the complete list of nodes recognized by this DtRouteMap.
virtual DtAddressPortList nodeAddresses () const
virtual unsigned long nodeIdByAddress (const DtInetAddrAndPort &address) const
virtual unsigned long nodeIdByName (const MAKRti::DtString &name) const
virtual void setLocalNodeId (unsigned long newId)
virtual unsigned long localNodeId () const
unsigned long lowestNodeId () const
 returns the lowest known node Id.
virtual unsigned long consumeNextAvailableNodeId ()
 returns the lowest known node Id and increments internal counter.
virtual MAKRti::DtString nodeNameByAddress (const DtInetAddrAndPort &address) const
virtual MAKRti::DtString nodeHostNameByAddres (const DtInetAddrAndPort &address) const
virtual DtInetAddrAndPort nodeAddress (const MAKRti::DtString &name) const
virtual const MAKRti::DtString & localNodeName () const
virtual DtForwarderGroupList forwarderGroups () const
 Get a list of the recognized Forwarder Groups.
virtual DtRtiForwarderGrouplocalGroup () const
 Get a pointer to the local Forwarder Group.
virtual void setForwarderPort (unsigned int port)
 Get/Set the forwarder port (generally set via the RID file)
virtual unsigned int forwarderPort () const
virtual void setForwarderInterfaceAddr (const MAKRti::DtInetAddr &addr)
 Get/Set the forwarder interface address (generally set via the routes file)
virtual const MAKRti::DtInetAddr & forwarderInterfaceAddr () const
virtual DtAddressPortList adjacencyList (const DtInetAddrAndPort &node) const
 Get the list of all nodes directly connected to node.
virtual DtAddressPortList adjacencyList (const MAKRti::DtString &node) const
virtual void destinationList (DtAddressPortList &destinations, const DtInetAddrAndPort &srcNode, const DtInetAddrAndPort &linkNode) const
 Add the list of destinations for msgs from source node through link node to the destination list supplied in the first argument.
virtual void destinationList (DtAddressPortList &destinations, const MAKRti::DtString &srcNode, const MAKRti::DtString &linkNode) const
virtual void allLinkDestinations (DtAddressPortList &destinations, const DtInetAddrAndPort &node) const
 Add the list of upstream / downstream destinations for the specified source node to the destination list supplied in the first argument.
virtual void allLinkDestinations (DtAddressPortList &destinations, const MAKRti::DtString &node) const
virtual void foreignPortalDestinations (DtAddressPortList &destinations, const DtInetAddrAndPort &node) const
 Add the list of portals in foreign Forwarder Groups to which the specified node will forward messages to the destination list supplied in the first argument.
virtual void foreignPortalDestinations (DtAddressPortList &destinations, const MAKRti::DtString &node) const
virtual void foreignGroupConnections (DtAddressPortList &foreignNodes, const DtInetAddrAndPort &node) const
 Add the list of forwarders in foreign Forwarder Groups which have a connection to the specified node to the node list supplied in the first argument.
virtual void foreignGroupConnections (DtAddressPortList &foreignNodes, const MAKRti::DtString &node) const
virtual void localGroupDestinations (DtAddressPortList &destinations, const DtInetAddrAndPort &node) const
 Add the list of other forwarders in the local Forwarder Group to the destination list supplied in the first argument.
virtual void localGroupDestinations (DtAddressPortList &destinations, const MAKRti::DtString &node) const
virtual const DtInterfaceAddrSetgetInterfaceAddrs () const
 Get the complete list of localhost interface addresses.
virtual bool addForwarder (const MAKRti::DtString &forwarderName, const MAKRti::DtInetAddr &forwarderAddr, int port)
 Add a new Forwarder to the list by name and address and port.
virtual bool addLocalForwarder (const MAKRti::DtString &forwarderName, const MAKRti::DtInetAddr &forwarderAddr, int port)
 Add self Forwarder to the list by name and address and port.
virtual bool removeForwarder (const DtInetAddrAndPort &addr)
 Remove a forwarder from the known routes.
virtual bool addForwarderConnection (const MAKRti::DtString &forwarderNameA, const MAKRti::DtString &forwarderNameB)
 Add a new Connection between two forwarders A<->B by name Returns false if forwarder name is unrecognized.
virtual bool addForeignPortalConnection (const MAKRti::DtString &forwarder)
 Add a new connection from the local forwarder to a portal in a foreign forwarder group by name.
virtual bool addForeignForwarderConnection (const MAKRti::DtString &forwarder)
 Add a new connection to a forwarder in a foreign forwarder group by name This should only be invoked by a portal forwarder.
virtual bool addLocalGroupConnection (const MAKRti::DtString &peerForwarder)
 Add a new connection between the local forwarder and another member of the same Forwarder Group.
virtual bool addForwarderRoute (const MAKRti::DtString &linkForwarderName, const MAKRti::DtString &forwarderNameA, const MAKRti::DtString &forwarderNameB)
 Create a new forwarding route between two forwarders through a third Connection is unidirectional, the reverse link must also be added if desired i.e.
virtual bool addInterfaceAddr (const MAKRti::DtInetAddr &interfaceAddr)
 Add a new NIC address to the list of localhost addresses Returns false if address is invalid or a duplicate.
virtual DtRtiForwarderGroupaddForwarderGroup (const MAKRti::DtString &groupName)
 Add a new load balancing / fault tolerance Forwarder Group.
virtual bool addForwarderToGroup (const MAKRti::DtString &groupName, const MAKRti::DtString &forwarderName, const MAKRti::DtString &url, int isPortal)
 Add a forwarder to an established Forwarder Group.
virtual bool enableDistributedUdpForwarding (const MAKRti::DtString &forwarder)
 Maintain a list of forwarders allowed to listen to and forward multicast messages when Distributed UDP Forwarding is enabled.
virtual bool isMulticastMonitoringAllowed () const
 Return true if forwarder node is in the list of forwarders allowed to listen to and forward multicast messages.
virtual bool enableCompression (const MAKRti::DtString &forwarder, int level)
 Enables compression from this forwarder to the given forwarder (only if this forwarder is configured to establish a connection to the forwarder).
virtual bool enableBundling (const MAKRti::DtString &forwarder, int bundleSize)
 Enables bundling from this forwarder to the given forwarder (only if this forwarder is configured to establish a connection to the forwarder).
virtual int compressionLevel (const DtInetAddrAndPort &forwarder)
 Returns the compression level for the given forwarder, or 0 if this forwarder connection should not be compressed.
virtual int bundleSize (const DtInetAddrAndPort &forwarder)
 Returns the packet bundle size for the given forwarder, or 0 if this forwarder connection should not be bundled.
virtual bool isLocalGroupMember (const DtInetAddrAndPort &forwarder) const
 Determine if the specified address belongs to a forwarder of the local Forwarder Group.
virtual DtInetAddrAndPort locatePortal (const DtInetAddrAndPort &targetNode) const
 Find the portal forwarder for the group which the targeted node belongs to.
virtual DtInetAddrAndPort locatePortal (const MAKRti::DtString &targetGroupName) const
virtual DtInetAddrAndPort nextForwarderOnRoute (const DtInetAddrAndPort &targetNode) const
 Find the next forwarder in the route to the group which the targeted belongs to.
virtual DtInetAddrAndPort nextForwarderOnRoute (const MAKRti::DtString &targetGroupName) const
virtual bool forwardRtiexecMsgs () const
 Returns true if this forwarder should forward messages received from other forwarders which are destined for the rtiexec to the next forwarder in the path to the rtiexec.
virtual void concatAddressList (DtAddressPortList &final, const DtAddressPortList &src) const
 Append one address list (vector) to another, eliminating duplicates.
virtual void print () const
 Output the Routing Table.
virtual void knownForwarderNodes (std::set< DtForwarderNodeInfo > &otherNodes) const
 Retrieves the forwarders known by this forwarder.
virtual void addKnownForwarder (const MAKRti::DtInetAddr &addr, unsigned long nodeId, const MAKRti::DtString &fwName, const MAKRti::DtString &hostname, const std::set< DtForwarderNodeInfo > &peers)
 Adds a known forwarder. Dynamic forwarder configuration only.
virtual bool updateForwarder (const MAKRti::DtInetAddr &fwAddr, unsigned long fwNodeId, const MAKRti::DtString &fwName, const MAKRti::DtString &fwHostName, const std::set< DtForwarderNodeInfo > &peers)
 Updates a known forwarder. Dynamic forwarder configuration only.
virtual void updateForwarderNodeId (const MAKRti::DtInetAddr &fwAddr, unsigned long fwNodeId)
 Updates the node ID of a known forwarder. Dynamic forwarder configuration only.
virtual void addAddressAlias (const MAKRti::DtInetAddr &knownAddr, const MAKRti::DtInetAddr &aliasAddr)
 Adds another IP address alias for a known address.
const MAKRti::DtInetAddr & addressAlias (const MAKRti::DtInetAddr &knownAddr) const
 Looks up the alias for a given address.

Static Public Member Functions

static DtBoost::shared_ptr
< DtRouteMap
create (const DtRIDParameters *params, const MAKRti::DtInetAddr &fwAddrToConnectTo)
 Creates an instance of a DtRouteMap.
static void setCreatorFunction (DtRouteMapCreatorFcn creator)
 Call this function to set an alternate creator function With this function, users can replace this DtRouteMap with their own derived class.

Protected Types

typedef std::map
< DtInetAddrAndPort,
MAKRti::DtString > 
DtConnectionAddrToNameMap
typedef std::map
< MAKRti::DtString,
DtInetAddrAndPort
DtConnectionNameToAddrMap
typedef std::pair< std::vector
< MAKRti::DtString >
, DtAddressPortList
DtConnectionList
typedef std::map
< DtInetAddrAndPort,
DtConnectionList
DtAddrToConnectionListMap
typedef std::multimap
< DtInetAddrAndPort,
DtInetAddrAndPort
DtSrcToDestinationsMap
typedef std::map
< DtInetAddrAndPort,
DtInetAddrAndPort
DtDestinationToLinkMap
typedef std::map
< MAKRti::DtInetAddr,
MAKRti::DtInetAddr > 
DtInetAddrAliasMap
typedef std::map
< DtInetAddrAndPort,
DtSrcToDestinationsMap
DtRoutingTable
typedef std::map
< MAKRti::DtString,
DtRtiForwarderGroup * > 
DtGroupNameTable
typedef std::map
< DtInetAddrAndPort,
DtRtiForwarderGroup * > 
DtForwarderGroupConnectionTable
typedef std::map
< MAKRti::DtString, int > 
DtForwarderCompressionMap
typedef std::map
< MAKRti::DtString, int > 
DtForwarderBundlingMap

Protected Member Functions

 DtRouteMap (const DtRIDParameters *params, const MAKRti::DtInetAddr &additionalForwarder)
virtual void registerRoutesFileParams ()
 Register the commands to parse from the Routes file and calls openRoutesFile() to load the lisp file.
virtual void setupDefaultRoutes ()
 Setup the default network of forwarders if the routes file does not specify any router connections.
virtual void setupSinglePortalRoutes ()
virtual void setupLoadBalanceRoutes ()
virtual void openRoutesFile ()
 Open and Parse the route map file.
virtual void initializeInterfaceList ()
 Add the IP address of the default interface to the network adapter interface list.
virtual
DtForwarderGroupInterconnectMethod 
setGroupInterconnectMethod (MAKRti::DtString methodString)
 Convert the Forwarder Group Interconnect method string to the equivalent enumerated value.
 DtRouteMap ()
 Default Ctor, Copy Ctor, Assignment - unimplemented.
 DtRouteMap (const DtRouteMap &orig)
virtual void setupNodeName ()
DtRouteMapoperator= (const DtRouteMap &orig)
virtual void setupDestinationsMap ()
 Sets up the map from destinations to next forwarder in the route when routes are configured manually in the routes file.

Protected Attributes

const DtRIDParametersmyParams
MAKRti::DtFilename myRoutesFileName
MAKRti::DtMtlEnvironment * myEnv
MAKRti::DtString myNodeName
MAKRti::DtInetAddr myRoutesFileNodeAddress
unsigned long myNodeId
unsigned long myLowestNodeId
unsigned long myNextAvailableNodeId
bool myLowestNodeIdIsDirty
bool myNodeIdIsSet
bool myIsConfiguredViaRoutesFile
int myDistributedForwarderPort
 Port used for forwarder-to-forwarder connections.
MAKRti::DtInetAddr myForwarderInterfaceAddr
 The interface used for forwarder-to-forwarder connections.
DtForwarderGroupInterconnectMethod myGroupInterconnectMethod
DtNodeList myMulticastEnabledForwarderList
 List of forwarders allowed to act as Distributed UDP Forwarders, meaning they are allowed to listen to and forward multicast messages from the LAN.
std::set< DtForwarderNodeInfomyKnownForwarderNodes
DtConnectionNameToAddrMap myNameToAddrMap
DtConnectionAddrToNameMap myAddrToNameMap
DtAddrToConnectionListMap myConnectionsByAddr
DtAddrToConnectionListMap myForeignPortalConnections
DtAddrToConnectionListMap myForeignGroupConnections
DtAddrToConnectionListMap myLocalGroupConnections
DtRoutingTable myRoutesByLinkAddrMap
DtDestinationToLinkMap myLinksByDestinationMap
DtInterfaceAddrSet myNicAddrs
DtRtiForwarderGroupmyLocalForwarderGroup
DtForwarderGroupList myForwarderGroups
 the one I'm in
DtGroupNameTable myGroupNameTable
 all groups
DtForwarderGroupConnectionTable myConnectionToGroupMap
DtInetAddrAliasMap myInetAddrAliases
 Some forwarders can be known by multiple addresses.
DtForwarderCompressionMap myCompressedForwarders
 Set of forwarders to which we should have compression enabled.
DtForwarderBundlingMap myBundledForwarders
 Set of forwarders to which we should have bundling enabled.

Static Protected Attributes

static DtRouteMapCreatorFcn theCreator = 0

Member Typedef Documentation

typedef std::vector<MAKRti::DtInetAddr> DtRouteMap::DtAddressList
typedef std::map< DtInetAddrAndPort, MAKRti::DtString > DtRouteMap::DtConnectionAddrToNameMap [protected]
typedef std::pair< std::vector< MAKRti::DtString >, DtAddressPortList > DtRouteMap::DtConnectionList [protected]
typedef std::map< MAKRti::DtString, DtInetAddrAndPort > DtRouteMap::DtConnectionNameToAddrMap [protected]
typedef std::map< MAKRti::DtString, int > DtRouteMap::DtForwarderBundlingMap [protected]
typedef std::map< MAKRti::DtString, int > DtRouteMap::DtForwarderCompressionMap [protected]
typedef std::map< MAKRti::DtString, DtRtiForwarderGroup* > DtRouteMap::DtGroupNameTable [protected]
typedef std::map< MAKRti::DtInetAddr, MAKRti::DtInetAddr > DtRouteMap::DtInetAddrAliasMap [protected]
typedef std::set< MAKRti::DtInetAddr > DtRouteMap::DtInterfaceAddrSet
typedef std::vector< MAKRti::DtString > DtRouteMap::DtNodeList
typedef DtBoost::shared_ptr<DtRouteMap>(* DtRouteMap::DtRouteMapCreatorFcn)(const DtRIDParameters *, const MAKRti::DtInetAddr &)

DtForwarderPort creator signature.


Constructor & Destructor Documentation

DtRouteMap::DtRouteMap ( const DtRIDParameters params,
const MAKRti::DtInetAddr &  additionalForwarder 
) [protected]
DtRouteMap::~DtRouteMap ( ) [virtual]

References myEnv.

DtRouteMap::DtRouteMap ( ) [protected]

Default Ctor, Copy Ctor, Assignment - unimplemented.

Referenced by create().

DtRouteMap::DtRouteMap ( const DtRouteMap orig) [protected]

Member Function Documentation

void DtRouteMap::addAddressAlias ( const MAKRti::DtInetAddr &  knownAddr,
const MAKRti::DtInetAddr &  aliasAddr 
) [virtual]

Adds another IP address alias for a known address.

This is necessary, for instance, when another forwarder is behind a router using NAT, such that this forwarder recognizes it as a different IP than what it recognizes itself as.

References myInetAddrAliases.

Referenced by setupNodeName().

bool DtRouteMap::addForeignForwarderConnection ( const MAKRti::DtString &  forwarder) [virtual]

Add a new connection to a forwarder in a foreign forwarder group by name This should only be invoked by a portal forwarder.

Returns false if foreign forwarder name is unrecognized

References myForeignGroupConnections, myNameToAddrMap, and myNodeName.

Referenced by setupLoadBalanceRoutes(), and setupSinglePortalRoutes().

bool DtRouteMap::addForeignPortalConnection ( const MAKRti::DtString &  forwarder) [virtual]

Add a new connection from the local forwarder to a portal in a foreign forwarder group by name.

Returns false if foreign portal name is unrecognized.

References myForeignPortalConnections, myNameToAddrMap, and myNodeName.

Referenced by setupLoadBalanceRoutes(), and setupSinglePortalRoutes().

bool DtRouteMap::addForwarder ( const MAKRti::DtString &  forwarderName,
const MAKRti::DtInetAddr &  forwarderAddr,
int  port 
) [virtual]

Add a new Forwarder to the list by name and address and port.

If specified port is DtUseDefaultForwarderPort, the default forwarder port specified in the RID file is used. Returns false if attempted to add an existing name or ip/port

References DtRIDParameters::distributedForwarderPort, DtUseDefaultForwarderPort, myAddrToNameMap, myLowestNodeIdIsDirty, myNameToAddrMap, and myParams.

Referenced by DtAddForwarderFunction().

bool DtRouteMap::addForwarderConnection ( const MAKRti::DtString &  forwarderNameA,
const MAKRti::DtString &  forwarderNameB 
) [virtual]

Add a new Connection between two forwarders A<->B by name Returns false if forwarder name is unrecognized.

References myConnectionsByAddr, and myNameToAddrMap.

Referenced by DtAddForwarderConnectionFunction().

DtRtiForwarderGroup * DtRouteMap::addForwarderGroup ( const MAKRti::DtString &  groupName) [virtual]

Add a new load balancing / fault tolerance Forwarder Group.

References create(), forwarderPort(), myForwarderGroups, and myGroupNameTable.

Referenced by DtAddForwarderGroupFunction(), and setupDefaultRoutes().

bool DtRouteMap::addForwarderRoute ( const MAKRti::DtString &  linkForwarderName,
const MAKRti::DtString &  forwarderNameA,
const MAKRti::DtString &  forwarderNameB 
) [virtual]

Create a new forwarding route between two forwarders through a third Connection is unidirectional, the reverse link must also be added if desired i.e.

  • A->Link->B does not imply A<-Link<-B Returns false if route is impossible due to missing connections

References myNameToAddrMap, and myRoutesByLinkAddrMap.

Referenced by DtAddForwarderRouteFunction().

bool DtRouteMap::addForwarderToGroup ( const MAKRti::DtString &  groupName,
const MAKRti::DtString &  forwarderName,
const MAKRti::DtString &  url,
int  isPortal 
) [virtual]
bool DtRouteMap::addInterfaceAddr ( const MAKRti::DtInetAddr &  interfaceAddr) [virtual]

Add a new NIC address to the list of localhost addresses Returns false if address is invalid or a duplicate.

References myNicAddrs.

Referenced by initializeInterfaceList().

void DtRouteMap::addKnownForwarder ( const MAKRti::DtInetAddr &  addr,
unsigned long  nodeId,
const MAKRti::DtString &  fwName,
const MAKRti::DtString &  hostname,
const std::set< DtForwarderNodeInfo > &  peers 
) [virtual]
bool DtRouteMap::addLocalForwarder ( const MAKRti::DtString &  forwarderName,
const MAKRti::DtInetAddr &  forwarderAddr,
int  port 
) [virtual]

Add self Forwarder to the list by name and address and port.

If specified port is DtUseDefaultForwarderPort, the default forwarder port specified in the RID file is used. Returns false if attempted to add an existing name or ip

References DtRIDParameters::distributedForwarderPort, DtUseDefaultForwarderPort, myAddrToNameMap, myLowestNodeIdIsDirty, myNameToAddrMap, and myParams.

bool DtRouteMap::addLocalGroupConnection ( const MAKRti::DtString &  peerForwarder) [virtual]

Add a new connection between the local forwarder and another member of the same Forwarder Group.

Returns false if peer forwarder name is unrecognized

References myLocalGroupConnections, myNameToAddrMap, and myNodeName.

Referenced by setupDefaultRoutes().

const MAKRti::DtInetAddr & DtRouteMap::addressAlias ( const MAKRti::DtInetAddr &  knownAddr) const [inline]

Looks up the alias for a given address.

Return value will be INADDR_ANY if address could not be found in alias list.

References myInetAddrAliases.

Referenced by foreignPortalDestinations(), locatePortal(), and nextForwarderOnRoute().

Get the list of all nodes directly connected to node.

References concatAddressList(), myConnectionsByAddr, myForeignGroupConnections, myForeignPortalConnections, and myLocalGroupConnections.

Referenced by adjacencyList().

DtRouteMap::DtAddressPortList DtRouteMap::adjacencyList ( const MAKRti::DtString &  node) const [virtual]

References adjacencyList(), and myNameToAddrMap.

void DtRouteMap::allLinkDestinations ( DtAddressPortList destinations,
const DtInetAddrAndPort node 
) const [virtual]

Add the list of upstream / downstream destinations for the specified source node to the destination list supplied in the first argument.

References concatAddressList(), and myConnectionsByAddr.

Referenced by allLinkDestinations().

void DtRouteMap::allLinkDestinations ( DtRouteMap::DtAddressPortList destinations,
const MAKRti::DtString &  node 
) const [virtual]
int DtRouteMap::bundleSize ( const DtInetAddrAndPort forwarder) [virtual]

Returns the packet bundle size for the given forwarder, or 0 if this forwarder connection should not be bundled.

References myAddrToNameMap, and myBundledForwarders.

int DtRouteMap::compressionLevel ( const DtInetAddrAndPort forwarder) [virtual]

Returns the compression level for the given forwarder, or 0 if this forwarder connection should not be compressed.

References myAddrToNameMap, and myCompressedForwarders.

void DtRouteMap::concatAddressList ( DtRouteMap::DtAddressPortList final,
const DtAddressPortList src 
) const [virtual]

Append one address list (vector) to another, eliminating duplicates.

Referenced by adjacencyList(), allLinkDestinations(), foreignGroupConnections(), foreignPortalDestinations(), and localGroupDestinations().

unsigned long DtRouteMap::consumeNextAvailableNodeId ( ) [virtual]

returns the lowest known node Id and increments internal counter.

References myNextAvailableNodeId.

DtBoost::shared_ptr< DtRouteMap > DtRouteMap::create ( const DtRIDParameters params,
const MAKRti::DtInetAddr &  fwAddrToConnectTo 
) [static]

Creates an instance of a DtRouteMap.

References DtRouteMap(), and theCreator.

Referenced by addForwarderGroup(), and setCreatorFunction().

void DtRouteMap::destinationList ( DtAddressPortList destinations,
const DtInetAddrAndPort srcNode,
const DtInetAddrAndPort linkNode 
) const [virtual]

Add the list of destinations for msgs from source node through link node to the destination list supplied in the first argument.

References myRoutesByLinkAddrMap.

Referenced by destinationList().

void DtRouteMap::destinationList ( DtAddressPortList destinations,
const MAKRti::DtString &  srcNode,
const MAKRti::DtString &  linkNode 
) const [virtual]
bool DtRouteMap::enableBundling ( const MAKRti::DtString &  forwarder,
int  bundleSize 
) [virtual]

Enables bundling from this forwarder to the given forwarder (only if this forwarder is configured to establish a connection to the forwarder).

References myBundledForwarders.

Referenced by DtEnableBundlingFunction().

bool DtRouteMap::enableCompression ( const MAKRti::DtString &  forwarder,
int  level 
) [virtual]

Enables compression from this forwarder to the given forwarder (only if this forwarder is configured to establish a connection to the forwarder).

References myCompressedForwarders.

Referenced by DtEnableCompressionFunction().

bool DtRouteMap::enableDistributedUdpForwarding ( const MAKRti::DtString &  forwarder) [virtual]

Maintain a list of forwarders allowed to listen to and forward multicast messages when Distributed UDP Forwarding is enabled.

References myMulticastEnabledForwarderList.

Referenced by DtAllowMulticastForwardingFunction().

void DtRouteMap::foreignGroupConnections ( DtAddressPortList foreignNodes,
const DtInetAddrAndPort node 
) const [virtual]

Add the list of forwarders in foreign Forwarder Groups which have a connection to the specified node to the node list supplied in the first argument.

Note the naming convention -- this is not called foreignGroupDestinations simply because the entries within it are not assumed to be destinations for forwarded messages, only a list of forwarders in other groups that are expected to send messages to this node.

References concatAddressList(), and myForeignGroupConnections.

Referenced by foreignGroupConnections().

void DtRouteMap::foreignGroupConnections ( DtRouteMap::DtAddressPortList foreignNodes,
const MAKRti::DtString &  node 
) const [virtual]
void DtRouteMap::foreignPortalDestinations ( DtAddressPortList destinations,
const DtInetAddrAndPort node 
) const [virtual]

Add the list of portals in foreign Forwarder Groups to which the specified node will forward messages to the destination list supplied in the first argument.

References addressAlias(), concatAddressList(), and myForeignPortalConnections.

Referenced by foreignPortalDestinations().

void DtRouteMap::foreignPortalDestinations ( DtRouteMap::DtAddressPortList destinations,
const MAKRti::DtString &  node 
) const [virtual]

Get a list of the recognized Forwarder Groups.

References myForwarderGroups.

Referenced by print().

const MAKRti::DtInetAddr & DtRouteMap::forwarderInterfaceAddr ( ) const [inline, virtual]
unsigned int DtRouteMap::forwarderPort ( ) const [virtual]

References myDistributedForwarderPort.

Referenced by addForwarderGroup().

bool DtRouteMap::forwardRtiexecMsgs ( ) const [virtual]

Returns true if this forwarder should forward messages received from other forwarders which are destined for the rtiexec to the next forwarder in the path to the rtiexec.

For single portal and load balancing networks, this can cause a message to be routed to the rtiexec more than once. rtiexec message forwarding should therefore only occur in manually configured forwarder networks.

References DtFwderGroupInterconnectManual, and myGroupInterconnectMethod.

Get the complete list of localhost interface addresses.

References myNicAddrs.

void DtRouteMap::initializeInterfaceList ( ) [protected, virtual]

Add the IP address of the default interface to the network adapter interface list.

References addInterfaceAddr(), DtEnumerateInterfaces(), myNicAddrs, myParams, and DtRIDParameters::networkInterfaceAddr().

Referenced by DtRouteMap().

Indicate if this route map was built from a configuration file.

References myIsConfiguredViaRoutesFile.

Referenced by nodeIdByAddress().

bool DtRouteMap::isEmpty ( ) const [virtual]

References myNameToAddrMap.

bool DtRouteMap::isLocalGroupMember ( const DtInetAddrAndPort forwarder) const [virtual]

Determine if the specified address belongs to a forwarder of the local Forwarder Group.

References DtRtiForwarderGroup::isMember(), and myLocalForwarderGroup.

Return true if forwarder node is in the list of forwarders allowed to listen to and forward multicast messages.

References myIsConfiguredViaRoutesFile, myMulticastEnabledForwarderList, and myNodeName.

void DtRouteMap::knownForwarderNodes ( std::set< DtForwarderNodeInfo > &  otherNodes) const [virtual]

Retrieves the forwarders known by this forwarder.

Dynamic forwarder configuration only.

References myKnownForwarderNodes.

Get a pointer to the local Forwarder Group.

References myLocalForwarderGroup.

void DtRouteMap::localGroupDestinations ( DtAddressPortList destinations,
const DtInetAddrAndPort node 
) const [virtual]

Add the list of other forwarders in the local Forwarder Group to the destination list supplied in the first argument.

References concatAddressList(), and myLocalGroupConnections.

Referenced by localGroupDestinations().

void DtRouteMap::localGroupDestinations ( DtRouteMap::DtAddressPortList destinations,
const MAKRti::DtString &  node 
) const [virtual]
unsigned long DtRouteMap::localNodeId ( ) const [virtual]

References myNodeId, and myNodeIdIsSet.

const MAKRti::DtString & DtRouteMap::localNodeName ( ) const [virtual]

References myNodeName.

DtInetAddrAndPort DtRouteMap::locatePortal ( const DtInetAddrAndPort targetNode) const [virtual]
DtInetAddrAndPort DtRouteMap::locatePortal ( const MAKRti::DtString &  targetGroupName) const [virtual]
unsigned long DtRouteMap::lowestNodeId ( ) const

returns the lowest known node Id.

References myKnownForwarderNodes, myLowestNodeId, myLowestNodeIdIsDirty, and myNodeId.

DtInetAddrAndPort DtRouteMap::nextForwarderOnRoute ( const DtInetAddrAndPort targetNode) const [virtual]

Find the next forwarder in the route to the group which the targeted belongs to.

References addressAlias(), locatePortal(), and myLinksByDestinationMap.

Referenced by nextForwarderOnRoute().

DtInetAddrAndPort DtRouteMap::nextForwarderOnRoute ( const MAKRti::DtString &  targetGroupName) const [virtual]
DtInetAddrAndPort DtRouteMap::nodeAddress ( const MAKRti::DtString &  name) const [virtual]

References myNameToAddrMap.

Referenced by print().

References myAddrToNameMap.

MAKRti::DtString DtRouteMap::nodeHostNameByAddres ( const DtInetAddrAndPort address) const [virtual]
unsigned long DtRouteMap::nodeIdByAddress ( const DtInetAddrAndPort address) const [virtual]
unsigned long DtRouteMap::nodeIdByName ( const MAKRti::DtString &  name) const [virtual]

References myNameToAddrMap.

Referenced by DtRouteMap(), and nodeIdByAddress().

MAKRti::DtString DtRouteMap::nodeNameByAddress ( const DtInetAddrAndPort address) const [virtual]

References myAddrToNameMap.

Referenced by nodeHostNameByAddres(), and nodeIdByAddress().

Get the complete list of nodes recognized by this DtRouteMap.

References myNameToAddrMap.

void DtRouteMap::openRoutesFile ( ) [protected, virtual]
DtRouteMap& DtRouteMap::operator= ( const DtRouteMap orig) [protected]
void DtRouteMap::print ( ) const [virtual]
void DtRouteMap::rebuildRoutes ( ) [virtual]

when the routes file is first read, or if a forwarder is added/ or removed, we should rebuild our routes.

References setupDefaultRoutes(), and setupNodeName().

void DtRouteMap::registerRoutesFileParams ( ) [protected, virtual]
bool DtRouteMap::removeForwarder ( const DtInetAddrAndPort addr) [virtual]

Remove a forwarder from the known routes.

returns whether it was successfully removed

References myAddrToNameMap, DtForwarderNodeInfo::myIpAddr, myKnownForwarderNodes, myLowestNodeIdIsDirty, and myNameToAddrMap.

Call this function to set an alternate creator function With this function, users can replace this DtRouteMap with their own derived class.

References create(), DtBindCreator(), and theCreator.

void DtRouteMap::setForwarderInterfaceAddr ( const MAKRti::DtInetAddr &  addr) [inline, virtual]

Get/Set the forwarder interface address (generally set via the routes file)

References myForwarderInterfaceAddr.

Referenced by registerRoutesFileParams().

void DtRouteMap::setForwarderPort ( unsigned int  port) [virtual]

Get/Set the forwarder port (generally set via the RID file)

References myDistributedForwarderPort.

DtForwarderGroupInterconnectMethod DtRouteMap::setGroupInterconnectMethod ( MAKRti::DtString  methodString) [protected, virtual]

Convert the Forwarder Group Interconnect method string to the equivalent enumerated value.

References DtFwderGroupInterconnectLoadBalance, DtFwderGroupInterconnectManual, and DtFwderGroupInterconnectSinglePortal.

Referenced by registerRoutesFileParams().

void DtRouteMap::setLocalNodeId ( unsigned long  newId) [virtual]

References myLowestNodeIdIsDirty, myNodeId, and myNodeIdIsSet.

Referenced by DtRouteMap().

void DtRouteMap::setupDefaultRoutes ( ) [protected, virtual]
void DtRouteMap::setupDestinationsMap ( ) [protected, virtual]

Sets up the map from destinations to next forwarder in the route when routes are configured manually in the routes file.

References myConnectionsByAddr, myDistributedForwarderPort, myLinksByDestinationMap, myNicAddrs, and myRoutesByLinkAddrMap.

Referenced by DtRouteMap().

void DtRouteMap::setupLoadBalanceRoutes ( ) [protected, virtual]
void DtRouteMap::setupNodeName ( ) [protected, virtual]
void DtRouteMap::setupSinglePortalRoutes ( ) [protected, virtual]
bool DtRouteMap::updateForwarder ( const MAKRti::DtInetAddr &  fwAddr,
unsigned long  fwNodeId,
const MAKRti::DtString &  fwName,
const MAKRti::DtString &  fwHostName,
const std::set< DtForwarderNodeInfo > &  peers 
) [virtual]
void DtRouteMap::updateForwarderNodeId ( const MAKRti::DtInetAddr &  fwAddr,
unsigned long  fwNodeId 
) [virtual]

Member Data Documentation

Set of forwarders to which we should have bundling enabled.

Referenced by bundleSize(), and enableBundling().

Set of forwarders to which we should have compression enabled.

Referenced by compressionLevel(), and enableCompression().

Port used for forwarder-to-forwarder connections.

Referenced by addForwarderToGroup(), forwarderPort(), print(), setForwarderPort(), setupDestinationsMap(), and setupNodeName().

MAKRti::DtMtlEnvironment* DtRouteMap::myEnv [protected]
MAKRti::DtInetAddr DtRouteMap::myForwarderInterfaceAddr [protected]

The interface used for forwarder-to-forwarder connections.

Referenced by forwarderInterfaceAddr(), and setForwarderInterfaceAddr().

Some forwarders can be known by multiple addresses.

This is a mapping from known aliases to the primary address.

Referenced by addAddressAlias(), and addressAlias().

unsigned long DtRouteMap::myLowestNodeId [mutable, protected]

Referenced by lowestNodeId().

List of forwarders allowed to act as Distributed UDP Forwarders, meaning they are allowed to listen to and forward multicast messages from the LAN.

The use must manually select which forwarders have this enabled to ensure that only a single copy of multicast messages are forwarded by one forwarder on each LAN.

Referenced by enableDistributedUdpForwarding(), and isMulticastMonitoringAllowed().

unsigned long DtRouteMap::myNextAvailableNodeId [protected]
unsigned long DtRouteMap::myNodeId [protected]

Referenced by localNodeId(), and setLocalNodeId().

MAKRti::DtString DtRouteMap::myNodeName [protected]
MAKRti::DtFilename DtRouteMap::myRoutesFileName [protected]

Referenced by openRoutesFile().

MAKRti::DtInetAddr DtRouteMap::myRoutesFileNodeAddress [protected]

Referenced by create(), and setCreatorFunction().


The documentation for this class was generated from the following files:

Document ID: Generated on Thu Jun 14 14:15:04 EDT 2012 from SVN revision 116116
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)