![]() |
MAK RTIspy API Documentation for HLA Evolved
|
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 DtRtiForwarderGroup * | localGroup () 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 DtInterfaceAddrSet & | getInterfaceAddrs () 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 DtRtiForwarderGroup * | addForwarderGroup (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 () |
| DtRouteMap & | operator= (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 DtRIDParameters * | myParams |
| 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< DtForwarderNodeInfo > | myKnownForwarderNodes |
| DtConnectionNameToAddrMap | myNameToAddrMap |
| DtConnectionAddrToNameMap | myAddrToNameMap |
| DtAddrToConnectionListMap | myConnectionsByAddr |
| DtAddrToConnectionListMap | myForeignPortalConnections |
| DtAddrToConnectionListMap | myForeignGroupConnections |
| DtAddrToConnectionListMap | myLocalGroupConnections |
| DtRoutingTable | myRoutesByLinkAddrMap |
| DtDestinationToLinkMap | myLinksByDestinationMap |
| DtInterfaceAddrSet | myNicAddrs |
| DtRtiForwarderGroup * | myLocalForwarderGroup |
| 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 |
| typedef std::vector<MAKRti::DtInetAddr> DtRouteMap::DtAddressList |
| typedef std::vector< DtInetAddrAndPort > DtRouteMap::DtAddressPortList |
typedef std::map< DtInetAddrAndPort, DtConnectionList > DtRouteMap::DtAddrToConnectionListMap [protected] |
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< DtInetAddrAndPort, DtInetAddrAndPort > DtRouteMap::DtDestinationToLinkMap [protected] |
typedef std::map< MAKRti::DtString, int > DtRouteMap::DtForwarderBundlingMap [protected] |
typedef std::map< MAKRti::DtString, int > DtRouteMap::DtForwarderCompressionMap [protected] |
typedef std::map< DtInetAddrAndPort, DtRtiForwarderGroup* > DtRouteMap::DtForwarderGroupConnectionTable [protected] |
| typedef std::vector< DtRtiForwarderGroup* > DtRouteMap::DtForwarderGroupList |
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.
typedef std::map< DtInetAddrAndPort, DtSrcToDestinationsMap > DtRouteMap::DtRoutingTable [protected] |
typedef std::multimap< DtInetAddrAndPort, DtInetAddrAndPort > DtRouteMap::DtSrcToDestinationsMap [protected] |
| 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] |
| 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.
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] |
Add a forwarder to an established Forwarder Group.
References DtRtiForwarderGroup::addForwarderToGroup(), myConnectionToGroupMap, myDistributedForwarderPort, myGroupNameTable, myLocalForwarderGroup, myNameToAddrMap, and myNicAddrs.
Referenced by DtAddForwarderToGroupFunction(), and setupDefaultRoutes().
| 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] |
Adds a known forwarder. Dynamic forwarder configuration only.
References DtIsIpOfLocalInterface(), DtForwarderNodeInfo::myForwarderName, DtForwarderNodeInfo::myHostName, DtForwarderNodeInfo::myIpAddr, myKnownForwarderNodes, myNextAvailableNodeId, and DtForwarderNodeInfo::myNodeId.
Referenced by updateForwarder().
| 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().
| 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] |
References allLinkDestinations(), and myNameToAddrMap.
| 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] |
References destinationList(), and myNameToAddrMap.
| 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] |
References foreignGroupConnections(), and myNameToAddrMap.
| 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] |
References foreignPortalDestinations(), and myNameToAddrMap.
| DtRouteMap::DtForwarderGroupList DtRouteMap::forwarderGroups | ( | ) | const [virtual] |
| const MAKRti::DtInetAddr & DtRouteMap::forwarderInterfaceAddr | ( | ) | const [inline, virtual] |
References myForwarderInterfaceAddr.
| 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 | ( | ) | [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().
| 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] |
References localGroupDestinations(), and myNameToAddrMap.
| 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] |
Find the portal forwarder for the group which the targeted node belongs to.
References addressAlias(), DtRtiForwarderGroup::isMember(), DtRtiForwarderGroup::members(), myForeignPortalConnections, myForwarderGroups, myLocalForwarderGroup, myNameToAddrMap, myNicAddrs, and myNodeName.
Referenced by nextForwarderOnRoute().
| 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 | ( | ) | [protected, virtual] |
Open and Parse the route map file.
References DtLocateConfigFile(), DtRIDParameters::forwarderRoutesFile(), myEnv, myParams, myRoutesFileName, and DtAssistantPopupHelper::popupAssistantMessage().
Referenced by registerRoutesFileParams().
| DtRouteMap& DtRouteMap::operator= | ( | const DtRouteMap & | orig | ) | [protected] |
| void DtRouteMap::print | ( | ) | const [virtual] |
Output the Routing Table.
References DtFwderGroupInterconnectLoadBalance, DtFwderGroupInterconnectSinglePortal, forwarderGroups(), DtRtiForwarderGroup::forwarderIsAPortal(), DtRtiForwarderGroup::getForwarderAddrByName(), DtRtiForwarderGroup::groupName(), DtRtiForwarderGroup::members(), myAddrToNameMap, myConnectionsByAddr, myDistributedForwarderPort, myForeignGroupConnections, myForeignPortalConnections, myGroupInterconnectMethod, myLocalForwarderGroup, myLocalGroupConnections, myNodeName, myRoutesByLinkAddrMap, and nodeAddress().
Referenced by DtRouteMap().
| 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] |
Register the commands to parse from the Routes file and calls openRoutesFile() to load the lisp file.
References DtAddForwarderConnectionFunction(), DtAddForwarderFunction(), DtAddForwarderGroupFunction(), DtAddForwarderRouteFunction(), DtAddForwarderToGroupFunction(), DtAllowMulticastForwardingFunction(), DtEnableBundlingFunction(), DtEnableCompressionFunction(), myEnv, myGroupInterconnectMethod, myIsConfiguredViaRoutesFile, openRoutesFile(), setForwarderInterfaceAddr(), setGroupInterconnectMethod(), and theParent.
Referenced by DtRouteMap().
| 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 | ) | [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] |
Setup the default network of forwarders if the routes file does not specify any router connections.
References addForwarderGroup(), addForwarderToGroup(), addLocalGroupConnection(), DtFwderGroupInterconnectLoadBalance, DtFwderGroupInterconnectSinglePortal, DtRtiForwarderGroup::memberCount(), DtRtiForwarderGroup::members(), myConnectionsByAddr, myConnectionToGroupMap, myGroupInterconnectMethod, myLocalForwarderGroup, myNameToAddrMap, myNodeName, NULL, setupLoadBalanceRoutes(), and setupSinglePortalRoutes().
Referenced by DtRouteMap(), and rebuildRoutes().
| 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] |
References addAddressAlias(), myAddrToNameMap, myDistributedForwarderPort, myNicAddrs, and myNodeName.
Referenced by DtRouteMap(), and rebuildRoutes().
| 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] |
Updates a known forwarder. Dynamic forwarder configuration only.
References addKnownForwarder(), DtIsIpOfLocalInterface(), DtForwarderNodeInfo::myForwarderName, DtForwarderNodeInfo::myHostName, DtForwarderNodeInfo::myIpAddr, myKnownForwarderNodes, myNextAvailableNodeId, and DtForwarderNodeInfo::myNodeId.
| void DtRouteMap::updateForwarderNodeId | ( | const MAKRti::DtInetAddr & | fwAddr, |
| unsigned long | fwNodeId | ||
| ) | [virtual] |
Updates the node ID of a known forwarder. Dynamic forwarder configuration only.
References DtForwarderNodeInfo::myExternalIPAddrs, DtForwarderNodeInfo::myForwarderName, DtForwarderNodeInfo::myHostName, DtForwarderNodeInfo::myIpAddr, myKnownForwarderNodes, myNextAvailableNodeId, and DtForwarderNodeInfo::myNodeId.
DtConnectionAddrToNameMap DtRouteMap::myAddrToNameMap [protected] |
Referenced by addForwarder(), addLocalForwarder(), bundleSize(), compressionLevel(), nodeAddresses(), nodeNameByAddress(), print(), removeForwarder(), and setupNodeName().
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().
Referenced by addForwarderConnection(), adjacencyList(), allLinkDestinations(), DtRouteMap(), print(), setupDefaultRoutes(), and setupDestinationsMap().
Referenced by addForwarderToGroup(), and setupDefaultRoutes().
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] |
Referenced by openRoutesFile(), registerRoutesFileParams(), and ~DtRouteMap().
Referenced by addForeignForwarderConnection(), adjacencyList(), foreignGroupConnections(), and print().
Referenced by addForeignPortalConnection(), adjacencyList(), foreignPortalDestinations(), locatePortal(), and print().
DtForwarderGroupList DtRouteMap::myForwarderGroups [protected] |
the one I'm in
Referenced by addForwarderGroup(), forwarderGroups(), locatePortal(), setupLoadBalanceRoutes(), and setupSinglePortalRoutes().
MAKRti::DtInetAddr DtRouteMap::myForwarderInterfaceAddr [protected] |
The interface used for forwarder-to-forwarder connections.
Referenced by forwarderInterfaceAddr(), and setForwarderInterfaceAddr().
Referenced by forwardRtiexecMsgs(), print(), registerRoutesFileParams(), and setupDefaultRoutes().
DtGroupNameTable DtRouteMap::myGroupNameTable [protected] |
all groups
Referenced by addForwarderGroup(), addForwarderToGroup(), locatePortal(), and nextForwarderOnRoute().
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] |
Referenced by nextForwarderOnRoute(), and setupDestinationsMap().
DtRtiForwarderGroup* DtRouteMap::myLocalForwarderGroup [protected] |
Referenced by addLocalGroupConnection(), adjacencyList(), localGroupDestinations(), and print().
unsigned long DtRouteMap::myLowestNodeId [mutable, protected] |
Referenced by lowestNodeId().
bool DtRouteMap::myLowestNodeIdIsDirty [mutable, protected] |
Referenced by addForwarder(), addLocalForwarder(), lowestNodeId(), removeForwarder(), and setLocalNodeId().
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] |
Referenced by addForeignForwarderConnection(), addForeignPortalConnection(), addForwarder(), addForwarderConnection(), addForwarderRoute(), addForwarderToGroup(), addLocalForwarder(), addLocalGroupConnection(), adjacencyList(), allLinkDestinations(), destinationList(), foreignGroupConnections(), foreignPortalDestinations(), isEmpty(), localGroupDestinations(), locatePortal(), nodeAddress(), nodeIdByName(), nodeNames(), removeForwarder(), and setupDefaultRoutes().
unsigned long DtRouteMap::myNextAvailableNodeId [protected] |
Referenced by addKnownForwarder(), consumeNextAvailableNodeId(), updateForwarder(), and updateForwarderNodeId().
DtInterfaceAddrSet DtRouteMap::myNicAddrs [protected] |
unsigned long DtRouteMap::myNodeId [protected] |
Referenced by localNodeId(), lowestNodeId(), and setLocalNodeId().
bool DtRouteMap::myNodeIdIsSet [protected] |
Referenced by localNodeId(), and setLocalNodeId().
MAKRti::DtString DtRouteMap::myNodeName [protected] |
const DtRIDParameters* DtRouteMap::myParams [protected] |
Referenced by addForwarder(), addLocalForwarder(), initializeInterfaceList(), and openRoutesFile().
DtRoutingTable DtRouteMap::myRoutesByLinkAddrMap [protected] |
Referenced by addForwarderRoute(), destinationList(), print(), and setupDestinationsMap().
MAKRti::DtFilename DtRouteMap::myRoutesFileName [protected] |
Referenced by openRoutesFile().
MAKRti::DtInetAddr DtRouteMap::myRoutesFileNodeAddress [protected] |
DtRouteMap::DtRouteMapCreatorFcn DtRouteMap::theCreator = 0 [static, protected] |
Referenced by create(), and setCreatorFunction().