Why does DDS communication stop after some time while using switches?
RTI Connext DDS uses multicast for the discovery process in the default setting. When a host needs to join a multicast group, the network stack of the host sends out an IGMP Membership Report message also known as the join message. These messages are forwarded through the LAN to the local IGMP querier which is usually a multicast router. This multicast router sends out IGMP Query messages at regular intervals to the hosts and expects IGMP Membership Report messages to confirm that they are still interested in the multicast data. The intermediate LAN could contain a L2 switch with IGMP snooping enabled, which examines these IGMP Membership Report messages and creates a list of ports that have hosts that want to join the multicast group. This prevents flooding of the entire network. This port list information is refreshed when the hosts send the Membership Report message. In the absence of a Multicast router in the network, there are no IGMP Queries and hence no response from the hosts via Membership Report messages after the initial message. This can trigger the IGMP Snooping Group Timeout at the switch and the port list information can get cleared out resulting in multicast messages getting dropped at the switch.
Participant liveliness is maintained by sending participant DATAs periodically via multicast while using default settings. In the absence of a multicast router in the network, these messages will get blocked at the IGMP snooping enabled switch once the IGMP Snooping Group Timeout has occurred, typically after a few minutes. Eventually this participant is considered stale and the participant along with all of its entities will be removed from the records of all other participants. In order to prevent this situation one of the two options mentioned below can be used.
Option 1: Increase the Group Timeout value to a large duration or set it to never timeout. This will prevent the switch from clearing out the port list information and hence will not block multicast messages.
Option 2: Use IGMP Snooping Querier. The IGMP Snooping Querier is available in popular switches which support IGMP snooping. This Querier mimics a multicast router by sending out IGMP Query messages to the hosts and the Membership Report messages from the host allows the switch to refresh the port list information preventing the Snooping Group Timeout from occurring.