MAK RTIspy API Documentation for HLA 1516
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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::DtInetEndpoint &)
 DtForwarderPort creator signature. More...
 

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. More...
 
virtual bool isConfiguredViaRoutesFile () const
 Indicate if this route map was built from a configuration file. More...
 
virtual bool isEmpty () const
 
virtual ~DtRouteMap ()
 
virtual DtNodeList nodeNames () const
 Get the complete list of nodes recognized by this DtRouteMap. More...
 
virtual DtAddressPortList nodeAddresses () const
 
virtual void setLocalNodeId (unsigned long newId)
 
virtual unsigned long localNodeId () const
 
unsigned long lowestNodeId () const
 returns the lowest known node Id. More...
 
virtual unsigned long consumeNextAvailableNodeId ()
 returns the lowest known node Id and increments internal counter. More...
 
virtual MAKRti::DtString nodeNameByAddress (const DtInetAddrAndPort &address) const
 
virtual MAKRti::DtString nodeHostNameByAddress (const DtInetAddrAndPort &address) const
 
virtual unsigned long nodeIdByAddress (const DtInetAddrAndPort &address) const
 
virtual unsigned long nodeIdByName (const MAKRti::DtString &name) const
 
virtual DtInetAddrAndPort nodeAddress (const MAKRti::DtString &name) const
 
virtual std::pair
< DtInetAddrAndPort,
DtInetAddrAndPort
publicPrivatePairByPublicAddress (const DtInetAddrAndPort &address) const
 
virtual const MAKRti::DtString & localNodeName () const
 
virtual DtForwarderGroupList forwarderGroups () const
 Get a list of the recognized Forwarder Groups. More...
 
virtual DtRtiForwarderGrouplocalGroup () const
 Get a pointer to the local Forwarder Group. More...
 
virtual void setForwarderPort (unsigned int port)
 Get/Set the forwarder port (generally set via the RID file) More...
 
virtual unsigned int forwarderPort () const
 
virtual void setForwarderInterfaceAddr (const MAKRti::DtInetAddr &addr)
 Get/Set the forwarder interface address (generally set via the routes file) More...
 
virtual const MAKRti::DtInetAddr & forwarderInterfaceAddr () const
 
virtual DtAddressPortList adjacencyList (const DtInetAddrAndPort &node) const
 Get the list of all nodes directly connected to node. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
virtual void localGroupDestinations (DtAddressPortList &destinations, const MAKRti::DtString &node) const
 
virtual const DtInterfaceAddrSetgetInterfaceAddrs () const
 Get the complete list of localhost interface addresses. More...
 
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. More...
 
virtual bool removeForwarder (const DtInetAddrAndPort &addr)
 Remove a forwarder from the known routes. More...
 
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. More...
 
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. More...
 
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. More...
 
virtual bool addLocalGroupConnection (const MAKRti::DtString &peerForwarder)
 Add a new connection between the local forwarder and another member of the same Forwarder Group. More...
 
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. More...
 
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. More...
 
virtual DtRtiForwarderGroupaddForwarderGroup (const MAKRti::DtString &groupName)
 Add a new load balancing / fault tolerance Forwarder Group. More...
 
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. More...
 
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. More...
 
virtual bool isMulticastMonitoringAllowed () const
 Return true if forwarder node is in the list of forwarders allowed to listen to and forward multicast messages. More...
 
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). More...
 
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). More...
 
virtual int compressionLevel (const DtInetAddrAndPort &forwarder)
 Returns the compression level for the given forwarder, or 0 if this forwarder connection should not be compressed. More...
 
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. More...
 
virtual bool isLocalGroupMember (const DtInetAddrAndPort &forwarder) const
 Determine if the specified address belongs to a forwarder of the local Forwarder Group. More...
 
virtual DtInetAddrAndPort locatePortal (const DtInetAddrAndPort &targetNode) const
 Find the portal forwarder for the group which the targeted node belongs to. More...
 
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. More...
 
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. More...
 
virtual void concatAddressList (DtAddressPortList &final, const DtAddressPortList &src) const
 Append one address list (vector) to another, eliminating duplicates. More...
 
virtual void print () const
 Output the Routing Table. More...
 
virtual void knownForwarderNodes (std::set< DtForwarderNodeInfo > &otherNodes) const
 Retrieves the forwarders known by this forwarder. More...
 
virtual void addKnownForwarder (const DtInetAddrAndPort &fwDestination, unsigned long nodeId, const MAKRti::DtString &fwName, const MAKRti::DtString &hostname, const std::set< DtForwarderNodeInfo > &peers)
 Adds a known forwarder. Dynamic forwarder configuration only. More...
 
virtual bool updateForwarder (const DtInetAddrAndPort &fwDestination, unsigned long fwNodeId, const MAKRti::DtString &fwName, const MAKRti::DtString &fwHostName, const std::set< DtForwarderNodeInfo > &peers)
 Updates a known forwarder. Dynamic forwarder configuration only. More...
 
virtual void updateForwarderNodeId (const DtInetAddrAndPort &fwDestination, unsigned long fwNodeId)
 Updates the node ID of a known forwarder. Dynamic forwarder configuration only. More...
 
virtual void addAddressAlias (const MAKRti::DtInetAddr &knownAddr, const MAKRti::DtInetAddr &aliasAddr)
 Adds another IP address alias for a known address. More...
 
const MAKRti::DtInetAddr & addressAlias (const MAKRti::DtInetAddr &knownAddr) const
 Looks up the alias for a given address. More...
 
const MAKRti::DtInetAddr & privateAddress (const MAKRti::DtInetAddr &knownAddr) const
 
virtual void setRtiexecConnectionId (unsigned long)
 
virtual unsigned long rtiexecConnectionId () const
 

Static Public Member Functions

static DtBoost::shared_ptr
< DtRouteMap
create (const DtRIDParameters *params, const MAKRti::DtInetEndpoint &fwAddrToConnectTo)
 Creates an instance of a DtRouteMap. More...
 
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. More...
 

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::DtInetEndpoint &additionalForwarder)
 
virtual void registerRoutesFileParams ()
 Register the commands to parse from the Routes file and calls openRoutesFile() to load the lisp file. More...
 
virtual void setupDefaultRoutes ()
 Setup the default network of forwarders if the routes file does not specify any router connections. More...
 
virtual void setupSinglePortalRoutes ()
 
virtual void setupLoadBalanceRoutes ()
 
virtual void openRoutesFile ()
 Open and Parse the route map file. More...
 
virtual void initializeInterfaceList ()
 Add the IP address of the default interface to the network adapter interface list. More...
 
virtual
DtForwarderGroupInterconnectMethod 
setGroupInterconnectMethod (MAKRti::DtString methodString)
 Convert the Forwarder Group Interconnect method string to the equivalent enumerated value. More...
 
 DtRouteMap ()
 Default Ctor, Copy Ctor, Assignment - unimplemented. More...
 
 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. More...
 

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
 
unsigned long myRtiExecConnectionId
 
int myDistributedForwarderPort
 Port used for forwarder-to-forwarder connections. More...
 
MAKRti::DtInetAddr myForwarderInterfaceAddr
 The interface used for forwarder-to-forwarder connections. More...
 
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. More...
 
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 More...
 
DtGroupNameTable myGroupNameTable
 all groups More...
 
DtForwarderGroupConnectionTable myConnectionToGroupMap
 
DtInetAddrAliasMap myInetAddrAliases
 Some forwarders can be known by multiple addresses. More...
 
DtInetAddrAliasMap myInetPrivateByKnownAddr
 
DtForwarderCompressionMap myCompressedForwarders
 Set of forwarders to which we should have compression enabled. More...
 
DtForwarderBundlingMap myBundledForwarders
 Set of forwarders to which we should have bundling enabled. More...
 

Static Protected Attributes

static DtRouteMapCreatorFcn theCreator
 

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::DtInetEndpoint &)

DtForwarderPort creator signature.

Constructor & Destructor Documentation

DtRouteMap::DtRouteMap ( const DtRIDParameters params,
const MAKRti::DtInetEndpoint &  additionalForwarder 
)
protected
virtual DtRouteMap::~DtRouteMap ( )
virtual
DtRouteMap::DtRouteMap ( )
protected

Default Ctor, Copy Ctor, Assignment - unimplemented.

DtRouteMap::DtRouteMap ( const DtRouteMap orig)
protected

Member Function Documentation

virtual 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.

virtual 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

virtual 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.

virtual 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

virtual 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.

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

Add a new load balancing / fault tolerance Forwarder Group.

virtual 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
virtual bool DtRouteMap::addForwarderToGroup ( const MAKRti::DtString &  groupName,
const MAKRti::DtString &  forwarderName,
const MAKRti::DtString &  url,
int  isPortal 
)
virtual

Add a forwarder to an established Forwarder Group.

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.

virtual void DtRouteMap::addKnownForwarder ( const DtInetAddrAndPort fwDestination,
unsigned long  nodeId,
const MAKRti::DtString &  fwName,
const MAKRti::DtString &  hostname,
const std::set< DtForwarderNodeInfo > &  peers 
)
virtual

Adds a known forwarder. Dynamic forwarder configuration only.

virtual 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

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.

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

Get the list of all nodes directly connected to node.

virtual DtAddressPortList DtRouteMap::adjacencyList ( const MAKRti::DtString &  node) const
virtual
virtual 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.

virtual void DtRouteMap::allLinkDestinations ( DtAddressPortList destinations,
const MAKRti::DtString &  node 
) const
virtual
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.

virtual 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.

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

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

virtual unsigned long DtRouteMap::consumeNextAvailableNodeId ( )
virtual

returns the lowest known node Id and increments internal counter.

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

Creates an instance of a DtRouteMap.

virtual 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.

virtual void DtRouteMap::destinationList ( DtAddressPortList destinations,
const MAKRti::DtString &  srcNode,
const MAKRti::DtString &  linkNode 
) const
virtual
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).

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

virtual 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.

virtual 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.

virtual void DtRouteMap::foreignGroupConnections ( DtAddressPortList foreignNodes,
const MAKRti::DtString &  node 
) const
virtual
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.

virtual void DtRouteMap::foreignPortalDestinations ( DtAddressPortList destinations,
const MAKRti::DtString &  node 
) const
virtual
virtual DtForwarderGroupList DtRouteMap::forwarderGroups ( ) const
virtual

Get a list of the recognized Forwarder Groups.

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

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

Get the complete list of localhost interface addresses.

virtual void DtRouteMap::initializeInterfaceList ( )
protectedvirtual

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

virtual bool DtRouteMap::isConfiguredViaRoutesFile ( ) const
virtual

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

virtual bool DtRouteMap::isEmpty ( ) const
virtual
virtual bool DtRouteMap::isLocalGroupMember ( const DtInetAddrAndPort forwarder) const
virtual

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

virtual bool DtRouteMap::isMulticastMonitoringAllowed ( ) const
virtual

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

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

Retrieves the forwarders known by this forwarder.

Dynamic forwarder configuration only.

virtual DtRtiForwarderGroup* DtRouteMap::localGroup ( ) const
virtual

Get a pointer to the local Forwarder Group.

virtual 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.

virtual void DtRouteMap::localGroupDestinations ( DtAddressPortList destinations,
const MAKRti::DtString &  node 
) const
virtual
virtual unsigned long DtRouteMap::localNodeId ( ) const
virtual
virtual const MAKRti::DtString& DtRouteMap::localNodeName ( ) const
virtual
virtual DtInetAddrAndPort DtRouteMap::locatePortal ( const DtInetAddrAndPort targetNode) const
virtual

Find the portal forwarder for the group which the targeted node belongs to.

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

returns the lowest known node Id.

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

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

virtual DtInetAddrAndPort DtRouteMap::nextForwarderOnRoute ( const MAKRti::DtString &  targetGroupName) const
virtual
virtual DtInetAddrAndPort DtRouteMap::nodeAddress ( const MAKRti::DtString &  name) const
virtual
virtual DtAddressPortList DtRouteMap::nodeAddresses ( ) const
virtual
virtual MAKRti::DtString DtRouteMap::nodeHostNameByAddress ( const DtInetAddrAndPort address) const
virtual
virtual unsigned long DtRouteMap::nodeIdByAddress ( const DtInetAddrAndPort address) const
virtual
virtual unsigned long DtRouteMap::nodeIdByName ( const MAKRti::DtString &  name) const
virtual
virtual MAKRti::DtString DtRouteMap::nodeNameByAddress ( const DtInetAddrAndPort address) const
virtual
virtual DtNodeList DtRouteMap::nodeNames ( ) const
virtual

Get the complete list of nodes recognized by this DtRouteMap.

virtual void DtRouteMap::openRoutesFile ( )
protectedvirtual

Open and Parse the route map file.

DtRouteMap& DtRouteMap::operator= ( const DtRouteMap orig)
protected
virtual void DtRouteMap::print ( ) const
virtual

Output the Routing Table.

const MAKRti::DtInetAddr & DtRouteMap::privateAddress ( const MAKRti::DtInetAddr &  knownAddr) const
inline
virtual std::pair<DtInetAddrAndPort, DtInetAddrAndPort> DtRouteMap::publicPrivatePairByPublicAddress ( const DtInetAddrAndPort address) const
virtual
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.

virtual void DtRouteMap::registerRoutesFileParams ( )
protectedvirtual

Register the commands to parse from the Routes file and calls openRoutesFile() to load the lisp file.

virtual bool DtRouteMap::removeForwarder ( const DtInetAddrAndPort addr)
virtual

Remove a forwarder from the known routes.

returns whether it was successfully removed

virtual unsigned long DtRouteMap::rtiexecConnectionId ( ) const
virtual
static 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.

void DtRouteMap::setForwarderInterfaceAddr ( const MAKRti::DtInetAddr &  addr)
inlinevirtual

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

References myForwarderInterfaceAddr.

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

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

virtual DtForwarderGroupInterconnectMethod DtRouteMap::setGroupInterconnectMethod ( MAKRti::DtString  methodString)
protectedvirtual

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

virtual void DtRouteMap::setLocalNodeId ( unsigned long  newId)
virtual
virtual void DtRouteMap::setRtiexecConnectionId ( unsigned  long)
virtual
virtual void DtRouteMap::setupDefaultRoutes ( )
protectedvirtual

Setup the default network of forwarders if the routes file does not specify any router connections.

virtual 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.

virtual void DtRouteMap::setupLoadBalanceRoutes ( )
protectedvirtual
virtual void DtRouteMap::setupNodeName ( )
protectedvirtual
virtual void DtRouteMap::setupSinglePortalRoutes ( )
protectedvirtual
virtual bool DtRouteMap::updateForwarder ( const DtInetAddrAndPort fwDestination,
unsigned long  fwNodeId,
const MAKRti::DtString &  fwName,
const MAKRti::DtString &  fwHostName,
const std::set< DtForwarderNodeInfo > &  peers 
)
virtual

Updates a known forwarder. Dynamic forwarder configuration only.

virtual void DtRouteMap::updateForwarderNodeId ( const DtInetAddrAndPort fwDestination,
unsigned long  fwNodeId 
)
virtual

Updates the node ID of a known forwarder. Dynamic forwarder configuration only.

Member Data Documentation

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

Set of forwarders to which we should have bundling enabled.

DtForwarderCompressionMap DtRouteMap::myCompressedForwarders
protected

Set of forwarders to which we should have compression enabled.

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

Port used for forwarder-to-forwarder connections.

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

the one I'm in

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

all groups

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

DtInetAddrAliasMap DtRouteMap::myInetPrivateByKnownAddr
protected

Referenced by privateAddress().

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

DtConnectionNameToAddrMap DtRouteMap::myNameToAddrMap
protected
unsigned long DtRouteMap::myNextAvailableNodeId
protected
DtInterfaceAddrSet DtRouteMap::myNicAddrs
protected
unsigned long DtRouteMap::myNodeId
protected
bool DtRouteMap::myNodeIdIsSet
protected
MAKRti::DtString DtRouteMap::myNodeName
protected
const DtRIDParameters* DtRouteMap::myParams
protected
DtRoutingTable DtRouteMap::myRoutesByLinkAddrMap
protected
MAKRti::DtFilename DtRouteMap::myRoutesFileName
protected
MAKRti::DtInetAddr DtRouteMap::myRoutesFileNodeAddress
protected
unsigned long DtRouteMap::myRtiExecConnectionId
protected
DtRouteMapCreatorFcn DtRouteMap::theCreator
staticprotected

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

Document ID: Generated on Thu May 11 15:55:32 EDT 2023 from SVN revision 254743
Copyright © 2005-2020 MAK Technologies Inc. All Rights Reserved (www.mak.com)