MAK RTIspy API Documentation for HLA Evolved
List of all members | 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:

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 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 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().

DtRouteMap::DtAddressPortList DtRouteMap::adjacencyList ( const DtInetAddrAndPort node) const
virtual

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
DtRouteMap::DtForwarderGroupList DtRouteMap::forwarderGroups ( ) const
virtual

Get a list of the recognized Forwarder Groups.

References myForwarderGroups.

Referenced by print().

const MAKRti::DtInetAddr & DtRouteMap::forwarderInterfaceAddr ( ) const
inlinevirtual
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.

const DtRouteMap::DtInterfaceAddrSet & DtRouteMap::getInterfaceAddrs ( ) const
virtual

Get the complete list of localhost interface addresses.

References myNicAddrs.

void DtRouteMap::initializeInterfaceList ( )
protectedvirtual

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().

bool DtRouteMap::isConfiguredViaRoutesFile ( ) const
virtual

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.

bool DtRouteMap::isMulticastMonitoringAllowed ( ) const
virtual

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.

DtRtiForwarderGroup * DtRouteMap::localGroup ( ) const
virtual

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().

DtRouteMap::DtAddressPortList DtRouteMap::nodeAddresses ( ) const
virtual

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().

DtRouteMap::DtNodeList DtRouteMap::nodeNames ( ) const
virtual

Get the complete list of nodes recognized by this DtRouteMap.

References myNameToAddrMap.

void DtRouteMap::openRoutesFile ( )
protectedvirtual
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 ( )
protectedvirtual
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.

void DtRouteMap::setCreatorFunction ( DtRouteMapCreatorFcn  creator)
static

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)
inlinevirtual

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)
protectedvirtual

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 ( )
protectedvirtual
void DtRouteMap::setupDestinationsMap ( )
protectedvirtual

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 ( )
protectedvirtual
void DtRouteMap::setupNodeName ( )
protectedvirtual
void DtRouteMap::setupSinglePortalRoutes ( )
protectedvirtual
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

DtConnectionAddrToNameMap DtRouteMap::myAddrToNameMap
protected
DtForwarderBundlingMap DtRouteMap::myBundledForwarders
protected

Set of forwarders to which we should have bundling enabled.

Referenced by bundleSize(), and enableBundling().

DtForwarderCompressionMap DtRouteMap::myCompressedForwarders
protected

Set of forwarders to which we should have compression enabled.

Referenced by compressionLevel(), and enableCompression().

DtAddrToConnectionListMap DtRouteMap::myConnectionsByAddr
protected
DtForwarderGroupConnectionTable DtRouteMap::myConnectionToGroupMap
protected
int DtRouteMap::myDistributedForwarderPort
protected

Port used for forwarder-to-forwarder connections.

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

MAKRti::DtMtlEnvironment* DtRouteMap::myEnv
protected
DtAddrToConnectionListMap DtRouteMap::myForeignGroupConnections
protected
DtAddrToConnectionListMap DtRouteMap::myForeignPortalConnections
protected
DtForwarderGroupList DtRouteMap::myForwarderGroups
protected
MAKRti::DtInetAddr DtRouteMap::myForwarderInterfaceAddr
protected

The interface used for forwarder-to-forwarder connections.

Referenced by forwarderInterfaceAddr(), and setForwarderInterfaceAddr().

DtForwarderGroupInterconnectMethod DtRouteMap::myGroupInterconnectMethod
protected
DtGroupNameTable DtRouteMap::myGroupNameTable
protected
DtInetAddrAliasMap DtRouteMap::myInetAddrAliases
protected

Some forwarders can be known by multiple addresses.

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

Referenced by addAddressAlias(), and addressAlias().

bool DtRouteMap::myIsConfiguredViaRoutesFile
protected
std::set<DtForwarderNodeInfo> DtRouteMap::myKnownForwarderNodes
protected
DtDestinationToLinkMap DtRouteMap::myLinksByDestinationMap
protected
DtRtiForwarderGroup* DtRouteMap::myLocalForwarderGroup
protected
DtAddrToConnectionListMap DtRouteMap::myLocalGroupConnections
protected
unsigned long DtRouteMap::myLowestNodeId
mutableprotected

Referenced by lowestNodeId().

bool DtRouteMap::myLowestNodeIdIsDirty
mutableprotected
DtNodeList DtRouteMap::myMulticastEnabledForwarderList
protected

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().

DtConnectionNameToAddrMap DtRouteMap::myNameToAddrMap
protected
unsigned long DtRouteMap::myNextAvailableNodeId
protected
DtInterfaceAddrSet DtRouteMap::myNicAddrs
protected
unsigned long DtRouteMap::myNodeId
protected
bool DtRouteMap::myNodeIdIsSet
protected

Referenced by localNodeId(), and setLocalNodeId().

MAKRti::DtString DtRouteMap::myNodeName
protected
const DtRIDParameters* DtRouteMap::myParams
protected
DtRoutingTable DtRouteMap::myRoutesByLinkAddrMap
protected
MAKRti::DtFilename DtRouteMap::myRoutesFileName
protected

Referenced by openRoutesFile().

MAKRti::DtInetAddr DtRouteMap::myRoutesFileNodeAddress
protected
DtRouteMap::DtRouteMapCreatorFcn DtRouteMap::theCreator = 0
staticprotected

Referenced by create(), and setCreatorFunction().


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

Document ID: Generated on Fri Mar 14 19:08:55 EDT 2014 from SVN revision 137085
Copyright © 2005-2014 VT MÄK Inc. All Rights Reserved (www.mak.com)