how to config qos for 2 app on different ip to talk to each other

2 posts / 0 new
Last post
Offline
Last seen: 1 month 5 days ago
Joined: 05/20/2020
Posts: 7
how to config qos for 2 app on different ip to talk to each other

Hi I am new to DDS, i have an app1 on machine1 ip:130.16.3.100 /24 gw 130.16.3.254 trying to talk to app2 on machine2 ip: 130.17.3.21 /24 gw 130.17.3.254, they are connected to a switch which route the traffic to each other via the gw

I have added <discovery><initial_peers><element>119@builtin.udpv4://130.17.3.21</element></initial_peers></discovery> on app1 USER_QOS_PROFILES.xml

and <discovery><initial_peers><element>119@builtin.udpv4://130.16.3.100</element></initial_peers></discovery>  on app2 USER_QOS_PROFILES.xml

 

the machines can ping each other but both app cannot pub/sub to each other, anyone know how to configure the QOS?   

 

 

 

Howard's picture
Offline
Last seen: 2 days 3 hours ago
Joined: 11/29/2012
Posts: 608

Well, generally, the configuration of app1 to have app2's host in its <initial_peers> list and vice versa is the way to go when the hosts are on different subnets.

(although, not sure you want to have the "119@" prefix, unless you reall have 120 DomainParticipants in the same domain on the same machine that the other machine has to discover.  By using "119@", you've configured DDS to send 120 discovery "pings" every 30 seconds to the other machine, and vice versa, and unless those apps actually exist, those are waste of CPU and network bandwidth)

So, what could be happening is that discovery is not completing because one or both of the hosts have a firewall turned on.

You can use wireshark to get the packets being sent when the applications start up.  You should see DATA(p)'s, which are the periodic DomainParticipant discovery "pings" being sent/received by both hosts to each other.  After DATA(p)'s are received, then you should see DATA(w) and DATA(r) messages which are discovery messages for DataWriters and DataReaders, respectively.  If you see DATA(p)'s but don't see any DATA(w) or DATA(r)'s being exchanged by apps 1 and 2, then it's likely a firewall issue.