Routing Service Problem

6 posts / 0 new
Last post
Offline
Last seen: 1 year 8 months ago
Joined: 10/18/2017
Posts: 13
Routing Service Problem

Hello everyone,

I am using the Routing Service (RTI DDS 5.3.0) and I cannot understand some things.

First of all I try to explain you how my application works:

I have three OS, 1 Windows (where there is a publisher app), 2 Linux (where the routing service run), 3 VxWorks (where there is a subscriber app).

2 and 3 are on a different subnet than 1 but Linux (2) has an interface to the Windows (1) subnet:

(1)WinPub <--> [ (2)LinuxRouter <--> (3)VxWorksSub ]

Since now I am just testing the communication between (1) and (2) and I would like to not use multicast, so I set the QoS properties of (1) and the routing service in order to use unicast (as it is explained here).

Unfortunately when I run my router, even if it is the only running executable, I still get the error:

DL Error: : COMMENDSrWriterService_assertRemoteReader:Discovered remote reader with GUID 0XAC16B53A,0X2AC6C,0X2,0X3C7 using a non-addressable multicast locator.This can occur if multicast is not enabled in the local participant. See https://community.rti.com/kb/what-does-cant-reach-locator-error-message-mean for additional info.

DL Debug: : can't reach:

DL Debug: : locator:

DL Debug: : udpv4://239.255.0.1:7400

DL Debug: : aliasList: udpv4

 

If I use the same configurations between a normal Pub and Sub I do not get the error.

Do you know why is this happening? 

ajimenez's picture
Offline
Last seen: 11 months 1 week ago
Joined: 09/29/2017
Posts: 21
Hi Luigi,
 
The issue that you are facing is due you have two entities with a different configuration, one disabling and another enabling multicast (multicast is enabled by default).
 
You may be aware that if you configure to not use multicast, it should be configured in all the Participants:
  • Publisher QoS
  • Subscriber QoS
  • Both participants of the RTI Routing Service
You can find attached the XML configuration file of RTI Routing Service and Publisher and Subscriber disabling multicast.
 
Let me know if you need further assistance.
 
Best,
Antonio
Offline
Last seen: 1 year 8 months ago
Joined: 10/18/2017
Posts: 13

Hi Antonio,

I found out that the error is due to the fact that <administration> and <monitor> have the same domain_id than the participants. If I put 0 and 1 for participant_1 and participant_2 and 100 and 101 for administration and monitor, the error does not occur anymore.

I do not understand very well why this happens... In your case does not happen?

Thanks for your assistance,

Luigi

Offline
Last seen: 1 year 8 months ago
Joined: 10/18/2017
Posts: 13

I have another question: as I said, I have disabled multicast communication everywhere in WinPub, LinuxRouter and VxWorksSub.

If in WinPub QoS I do not add LinuxRouter IP Address to the initial_peers, obviously the communication does not work (because the discovery cannot find the router), but if I remove WinPub IP Address from the initial_peers of the router configuration xml file. the communication is still working.

Why is this happening? I was expecting a non-working communication removing the WinPub IP address from the initial_peers of the xml router config file, because, since multicast is disabled, the router discovery should not be able to discover WinPub...

Thanks,

Luigi

ajimenez's picture
Offline
Last seen: 11 months 1 week ago
Joined: 09/29/2017
Posts: 21

Hi Luigi,

It is expected because it is not necessary to have the initial peers in both entities.
It may work in the next three scenarios:

  • Publisher (win) sets the initial_peers to RTI Routing Service (Linux) and RTI Routing Service (Linux) sets the initial_peers to the publisher (win).
  • Publisher (win) has the initial_peers of RTI Routing Service (Linux).
  • RTI Routing Service (Linux) sets the initial_peers to the publisher (win).

You can have more information about initial peers in the documentation.
Let me know if you understand it.

Best,
Antonio

Offline
Last seen: 1 year 8 months ago
Joined: 10/18/2017
Posts: 13

Hi Antonio,

yes it is as you said.

I solved setting

<accept_unknown_peers>false</accept_unknown_peers>

to every partecipant (the default value was true), in this way the communication works only if the peers of each entity are known by the other entity (i.e. in the initial_peers list), that is the desired behavior.

Do you think it is a correct solution?

Thanks for your help,

Luigi