14 #include <vlutil/vlUtil.h>
15 #include <vlutil/vlString.h>
16 #include <vlutil/vlFilename.h>
17 #include <vlutil/vlInetEndpoint.h>
19 #include <vlutil/vlPrint.h>
20 #include <mtl/mtlEnvironment.h>
27 class MAKRti::DtMtlEnvironment;
45 const MAKRti::DtInetEndpoint& additionalForwarder );
51 virtual void rebuildRoutes();
54 virtual bool isConfiguredViaRoutesFile()
const;
57 virtual bool isEmpty()
const;
74 virtual void setLocalNodeId(
unsigned long newId );
75 virtual unsigned long localNodeId()
const;
78 unsigned long lowestNodeId()
const;
81 virtual unsigned long consumeNextAvailableNodeId();
83 virtual MAKRti::DtString nodeNameByAddress(
const DtInetAddrAndPort& address )
const;
84 virtual MAKRti::DtString nodeHostNameByAddress(
const DtInetAddrAndPort& address )
const;
86 virtual unsigned long nodeIdByName(
const MAKRti::DtString& name )
const;
88 virtual std::pair<DtInetAddrAndPort, DtInetAddrAndPort> publicPrivatePairByPublicAddress(
const DtInetAddrAndPort& address)
const;
91 virtual const MAKRti::DtString& localNodeName()
const;
100 virtual void setForwarderPort(
unsigned int port );
101 virtual unsigned int forwarderPort()
const;
104 virtual inline void setForwarderInterfaceAddr(
const MAKRti::DtInetAddr& addr );
105 virtual inline const MAKRti::DtInetAddr& forwarderInterfaceAddr()
const;
117 const MAKRti::DtString& srcNode,
118 const MAKRti::DtString& linkNode )
const;
125 const MAKRti::DtString& node )
const;
133 const MAKRti::DtString& node )
const;
145 const MAKRti::DtString& node )
const;
152 const MAKRti::DtString& node )
const;
161 virtual bool addForwarder(
const MAKRti::DtString& forwarderName,
162 const MAKRti::DtInetAddr& forwarderAddr,
int port );
170 virtual bool addForwarderConnection(
const MAKRti::DtString& forwarderNameA,
171 const MAKRti::DtString& forwarderNameB );
176 virtual bool addForeignPortalConnection(
const MAKRti::DtString& forwarder );
181 virtual bool addForeignForwarderConnection(
const MAKRti::DtString& forwarder );
186 virtual bool addLocalGroupConnection(
const MAKRti::DtString& peerForwarder );
192 virtual bool addForwarderRoute(
const MAKRti::DtString& linkForwarderName,
193 const MAKRti::DtString& forwarderNameA,
194 const MAKRti::DtString& forwarderNameB );
198 virtual bool addInterfaceAddr(
const MAKRti::DtInetAddr& interfaceAddr );
204 virtual bool addForwarderToGroup(
const MAKRti::DtString& groupName,
205 const MAKRti::DtString& forwarderName,
206 const MAKRti::DtString& url,
int isPortal);
210 virtual bool enableDistributedUdpForwarding(
const MAKRti::DtString& forwarder );
214 virtual bool isMulticastMonitoringAllowed()
const;
218 virtual bool enableCompression(
const MAKRti::DtString& forwarder,
int level );
222 virtual bool enableBundling(
const MAKRti::DtString& forwarder,
int bundleSize );
239 virtual DtInetAddrAndPort locatePortal(
const MAKRti::DtString& targetGroupName )
const;
244 virtual DtInetAddrAndPort nextForwarderOnRoute(
const MAKRti::DtString& targetGroupName )
const;
252 virtual bool forwardRtiexecMsgs()
const;
258 virtual void print()
const;
262 virtual void knownForwarderNodes(std::set<DtForwarderNodeInfo>& otherNodes)
const;
265 virtual void addKnownForwarder(
const DtInetAddrAndPort& fwDestination,
unsigned long nodeId,
266 const MAKRti::DtString& fwName,
const MAKRti::DtString& hostname,
267 const std::set<DtForwarderNodeInfo>& peers );
270 virtual bool updateForwarder(
const DtInetAddrAndPort& fwDestination,
unsigned long fwNodeId,
271 const MAKRti::DtString& fwName,
const MAKRti::DtString& fwHostName,
272 const std::set<DtForwarderNodeInfo>& peers );
275 virtual void updateForwarderNodeId(
const DtInetAddrAndPort& fwDestination,
unsigned long fwNodeId);
282 virtual void addAddressAlias(
const MAKRti::DtInetAddr& knownAddr,
283 const MAKRti::DtInetAddr& aliasAddr);
287 inline const MAKRti::DtInetAddr& addressAlias(
const MAKRti::DtInetAddr& knownAddr)
const;
288 inline const MAKRti::DtInetAddr& privateAddress(
const MAKRti::DtInetAddr& knownAddr)
const;
290 virtual void setRtiexecConnectionId(
unsigned long);
291 virtual unsigned long rtiexecConnectionId()
const;
295 typedef DtBoost::shared_ptr<DtRouteMap> (*DtRouteMapCreatorFcn)(
299 static DtBoost::shared_ptr<DtRouteMap> create(
const DtRIDParameters* params,
300 const MAKRti::DtInetEndpoint& fwAddrToConnectTo );
305 static void setCreatorFunction( DtRouteMapCreatorFcn creator );
311 virtual void registerRoutesFileParams();
315 virtual void setupDefaultRoutes();
316 virtual void setupSinglePortalRoutes();
317 virtual void setupLoadBalanceRoutes();
320 virtual void openRoutesFile();
324 virtual void initializeInterfaceList();
334 virtual void setupNodeName();
339 virtual void setupDestinationsMap();
437 return MAKRti::DtInetAddr::inaddrAny();
int myDistributedForwarderPort
Port used for forwarder-to-forwarder connections.
Definition: routeMap.h:358
DtConnectionAddrToNameMap myAddrToNameMap
Definition: routeMap.h:389
std::pair< MAKRti::DtInetAddr, int > DtInetAddrAndPort
Definition: rtiUtil.h:147
std::vector< DtRtiForwarderGroup * > DtForwarderGroupList
Definition: routeMap.h:63
MAKRti::DtMtlEnvironment * myEnv
Definition: routeMap.h:345
DtConnectionNameToAddrMap myNameToAddrMap
Definition: routeMap.h:388
= 1
Definition: routeMap.h:35
const int DtUseDefaultForwarderPort
Definition: routeMap.h:39
MAKRti::DtFilename myRoutesFileName
Definition: routeMap.h:344
DtAddrToConnectionListMap myForeignPortalConnections
Definition: routeMap.h:391
const DtRIDParameters * myParams
Definition: routeMap.h:343
MAKRti::DtInetAddr myForwarderInterfaceAddr
The interface used for forwarder-to-forwarder connections.
Definition: routeMap.h:361
MAKRti::DtInetAddr myRoutesFileNodeAddress
Definition: routeMap.h:347
DtForwarderGroupList myForwarderGroups
the one I'm in
Definition: routeMap.h:399
std::vector< MAKRti::DtString > DtNodeList
Definition: routeMap.h:61
This class manages the RTI's start-up configuration using both MTL variables and functions.
Definition: RIDparams.h:87
std::map< DtInetAddrAndPort, DtSrcToDestinationsMap > DtRoutingTable
Definition: routeMap.h:379
std::map< MAKRti::DtInetAddr, MAKRti::DtInetAddr > DtInetAddrAliasMap
Definition: routeMap.h:378
MAKRti::DtString myNodeName
Definition: routeMap.h:346
std::multimap< DtInetAddrAndPort, DtInetAddrAndPort > DtSrcToDestinationsMap
Definition: routeMap.h:376
unsigned long myRtiExecConnectionId
Definition: routeMap.h:355
bool myNodeIdIsSet
Definition: routeMap.h:352
std::map< DtInetAddrAndPort, DtInetAddrAndPort > DtDestinationToLinkMap
Definition: routeMap.h:377
std::map< DtInetAddrAndPort, MAKRti::DtString > DtConnectionAddrToNameMap
Definition: routeMap.h:372
unsigned long myLowestNodeId
Definition: routeMap.h:349
DtDestinationToLinkMap myLinksByDestinationMap
Definition: routeMap.h:395
unsigned long myNodeId
Definition: routeMap.h:348
bool myLowestNodeIdIsDirty
Definition: routeMap.h:351
const MAKRti::DtInetAddr & addressAlias(const MAKRti::DtInetAddr &knownAddr) const
Looks up the alias for a given address.
Definition: routeMap.h:432
static DtRouteMapCreatorFcn theCreator
Definition: routeMap.h:417
DtAddrToConnectionListMap myLocalGroupConnections
Definition: routeMap.h:393
unsigned long myNextAvailableNodeId
Definition: routeMap.h:350
DtInetAddrAliasMap myInetAddrAliases
Some forwarders can be known by multiple addresses.
Definition: routeMap.h:405
std::map< MAKRti::DtString, DtRtiForwarderGroup * > DtGroupNameTable
Definition: routeMap.h:380
Definition: forwarderNodeInfoMsg.h:28
std::vector< MAKRti::DtInetAddr > DtAddressList
Definition: routeMap.h:60
std::pair< std::vector< MAKRti::DtString >, DtAddressPortList > DtConnectionList
Definition: routeMap.h:374
Definition: routeMap.h:41
virtual void setForwarderInterfaceAddr(const MAKRti::DtInetAddr &addr)
Get/Set the forwarder interface address (generally set via the routes file)
Definition: routeMap.h:422
DtForwarderGroupInterconnectMethod myGroupInterconnectMethod
Definition: routeMap.h:363
DtAddrToConnectionListMap myForeignGroupConnections
Definition: routeMap.h:392
DtForwarderBundlingMap myBundledForwarders
Set of forwarders to which we should have bundling enabled.
Definition: routeMap.h:412
std::set< DtForwarderNodeInfo > myKnownForwarderNodes
Definition: routeMap.h:386
Definition: routeMap.h:33
virtual const MAKRti::DtInetAddr & forwarderInterfaceAddr() const
Definition: routeMap.h:427
DtForwarderGroupConnectionTable myConnectionToGroupMap
Definition: routeMap.h:401
std::map< MAKRti::DtString, int > DtForwarderBundlingMap
Definition: routeMap.h:383
DtGroupNameTable myGroupNameTable
all groups
Definition: routeMap.h:400
bool myIsConfiguredViaRoutesFile
Definition: routeMap.h:353
enum DtForwarderGroupInterconnectMethod_enum DtForwarderGroupInterconnectMethod
DtAddrToConnectionListMap myConnectionsByAddr
Definition: routeMap.h:390
DtForwarderGroupInterconnectMethod_enum
Definition: routeMap.h:31
Definition: forwarderGroup.h:23
std::map< MAKRti::DtString, DtInetAddrAndPort > DtConnectionNameToAddrMap
Definition: routeMap.h:373
DtRtiForwarderGroup * myLocalForwarderGroup
Definition: routeMap.h:398
DtForwarderCompressionMap myCompressedForwarders
Set of forwarders to which we should have compression enabled.
Definition: routeMap.h:409
const MAKRti::DtInetAddr & privateAddress(const MAKRti::DtInetAddr &knownAddr) const
Definition: routeMap.h:444
std::set< MAKRti::DtInetAddr > DtInterfaceAddrSet
Definition: routeMap.h:62
= 0
Definition: routeMap.h:34
std::map< DtInetAddrAndPort, DtConnectionList > DtAddrToConnectionListMap
Definition: routeMap.h:375
#define DT_DLL_FORWARDER
Definition: rtiMsConfig.h:124
DtInterfaceAddrSet myNicAddrs
Definition: routeMap.h:396
DtInetAddrAliasMap myInetPrivateByKnownAddr
Definition: routeMap.h:406
DtNodeList myMulticastEnabledForwarderList
List of forwarders allowed to act as Distributed UDP Forwarders, meaning they are allowed to listen t...
Definition: routeMap.h:370
std::map< MAKRti::DtString, int > DtForwarderCompressionMap
Definition: routeMap.h:382
std::vector< DtInetAddrAndPort > DtAddressPortList
Definition: routeMap.h:59
std::map< DtInetAddrAndPort, DtRtiForwarderGroup * > DtForwarderGroupConnectionTable
Definition: routeMap.h:381
DtRoutingTable myRoutesByLinkAddrMap
Definition: routeMap.h:394