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?
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.