This is a follow up on a question posted in the general section. (http://community.rti.com/forum-topic/it-possible-rti-routing-service-raspberry-pi)
We are trying to use the RTI Routing Service in a setup like the one described in the picture below (picture created by Gerardo Pardo):
But we are having difficulty getting the setup to work. The setup (for London, Madrid and Paris) is described below.
With this setup, we can post topics in London and subscribe to these topics in Madrid but not in Paris. So our question is: can you see what we need in our setup, to publish a topic in London that can be seen (subscribed to) in Paris?
Best Regards
Lars
We are using the setup
PC1 (eq: London):
We modify the following in the file: ./example/shapes/tcp_transport.xml to:
<name>dds.transport.TCPv4.tcp1.public_address</name>
<value>173.194.34.100:8500</value>
</element>
<element>
<name>
dds.transport.TCPv4.tcp1.server_bind_port
</name>
<value>8500</value>
</element>
And we start the Routing Service using the following commands (in Windows)
set NDDS_DISCOVERY_PEERS=tcpv4_wan://173.194.69.94:8600
scripts\rtiroutingservice -cfgFile example/shapes/tcp_transport.xml -cfgName TCP_1
PC2 (eq: Madrid):
We modify the following in the file: ./example/shapes/tcp_transport.xml to:
<domain_route name="DR_UDPLAN_TCPWAN">
...
<participant_2>
<name>dds.transport.TCPv4.tcp1.public_address</name>
<value>173.194.69.94:8600</value>
</element>
<element>
<name>dds.transport.TCPv4.tcp1.server_bind_port</name>
<value>8600</value>
</element>
</participant_2>
</domain_route>
<domain_route name="DR_UDPLAN_TCPWAN_2">
...
<participant_2>
<name>dds.transport.TCPv4.tcp1.public_address</name>
<value>173.194.69.94:8650</value>
</element>
<element>
<name>dds.transport.TCPv4.tcp1.server_bind_port</name>
<value>8650</value>
</element>
</participant_2>
</domain_route>
And we start the Routing Service using the following commands (in Windows)
scripts\rtiroutingservice -cfgFile example/shapes/tcp_transport.xml -cfgName TCP_1
PC3 (eq: Paris):
We modify the following in the file: ./example/shapes/tcp_transport.xml to:
<name>dds.transport.TCPv4.tcp1.public_address</name>
<value>74.125.230.200:8700</value>
</element>
<element>
<name>
dds.transport.TCPv4.tcp1.server_bind_port
</name>
<value>8700</value>
</element>
And we start the Routing Service using the following commands (in Linux)
setenv NDDS_DISCOVERY_PEERS=tcpv4_wan://173.194.69.94:8650
scripts\rtiroutingservice -cfgFile example/shapes/tcp_transport.xml -cfgName TCP_1
Hi Lars,
Properly configured this setup would allow Topics published in London to be subscribed to not only in Madrid, but also in Paris and Berlin.
The Topics originating in London would flow into Paris via M1 and then from Madrid to London relayed by M2 and P1. And then on to Berlin relayed by P2 and the Berlin routing service.
I say "properly configured" because you must take care of setting up the routes and also the discovery peers such that.
This means that you will need separate NDDS_DISCOVERY_PEERS environment variable settings in Madrid for starting M1 and M2. And if you run these as two routes within the same RoutingService then you cannot use the NDDS_DISCOVERY_PEERS environment variable to configure it because it will be the same for both. So the discovery peers will have to be configured as a participant QoS, differnt for each DomainParticipant, directly in the RoutingService XML configuration file.
When I have a bit more time I will try to set up an example XML file to show all this...
This is not the only way to set it up. You could also make it so that London to Paris traffic can flow directly without going via Madrid and samewise for London to Berlin. But I undestood from your previous question at http://community.rti.com/forum-topic/it-possible-rti-routing-service-raspberry-pi that you actually wanted the relay to happen.
Gerardo
Hello Gerardo,
Thanks for your reply. We are very interested in an xml example of a configured routing service.
What we are interested in, is to be able to connect additionel nodes to the DDS network (Global Data Space) in an easy and dynamic way. The ideal would be that if a new WAN node joins, fx Tokyo, the DDS system, then none of the other participants (London, Madrid, Paris or Berlin) is required to change their RTI Routing Service setup.
After what we can read from the documentation of the RTI Routing Service, the solution mentioned above is not possible (we might be wrong, though - please feel free to correct us if so).
The second best solution is that if Tokyo joins the DDS network/Routing network then only one of the existing participants Routing Service should have to be modified i.e. only one of the 4 existing subnets (London, Madrid, Paris or Berlin) are supposed to have their setup changed to include Tokyo in the complete Global Data Space.
In other words we would like to have most of the same flexibility over the internet as we have on a LAN.
I hope this makes any sense, if not let me know and I will elaborate!
Hi Gerado
First of all - thank for your assistance so far, you have been very helpful.
But I have was hoping that you would be able to find the time to show how to configure the xml file for relaying topics from london to paris via the madrid node. So that paris and madrid can subscribe to topics from london, but paris only has a direct connection to madrid.
Did an example for this ever get posted? We are looking for something similar ourselves.