22.1 Simple Participant Discovery

This phase of the Simple Discovery Protocol is performed by the Simple Participant Discovery Protocol (SPDP).

During the Participant Discovery phase, DomainParticipants learn about each other. The DomainParticipant’s details are communicated to all other DomainParticipants in the same DDS domain by sending participant messages, also known as participant DATA submessages or participant announcements. The details include the DomainParticipant’s unique identifying key (GUID or Globally Unique ID described below), transport locators (addresses and port numbers), and QoS. These messages are sent on a periodic basis using best-effort communication.

Participant DATAs are sent periodically to maintain the liveliness of the DomainParticipant. They are also used to communicate changes in the DomainParticipant’s QoS. Only changes to QosPolicies that are part of the DomainParticipant’s built-in data (namely, the 47.30 USER_DATA QosPolicy) need to be propagated.

When receiving remote participant discovery information, Connext determines if the local participant matches the remote one. A ‘match’ between the local and remote participant occurs only if the local and remote participant have the same domain ID, domain tag, and at least one matching participant partition (see 16.3.4 Choosing a Domain ID and Creating Multiple DDS Domains, 16.3.5.1 Choosing a Domain Tag, and 46.5 PARTITION QosPolicy). This matching process occurs as soon as the local participant receives discovery information from the remote one. If there is no match, the discovery DATA is ignored, resulting in the remote participant (and all its associated entities) not being discovered.

When a DomainParticipant is deleted, a dispose participant message with the DomainParticipant's identifying GUID is sent.

The GUID is a unique reference to an entity. It is composed of a GUID prefix and an Entity ID. By default, the GUID prefix is a unique, randomly generated UUID. (For more on how the GUID is calculated, see 44.9.3 Controlling How the GUID is Set (rtps_auto_id_kind).) The IP address and process ID are stored in the DomainParticipant’s 44.9 WIRE_PROTOCOL QosPolicy (DDS Extension). The entityID is set by Connext (you may be able to change it in a future version).

Once a pair of participants have discovered each other, they can move on to the Endpoint Discovery phase, which is how DataWriters and DataReaders find each other.

You may replace Simple Participant Discovery with Limited Bandwidth Participant Discovery (LBPD), Simple Participant Discovery 2.0 (Experimental), or other discovery protocols. See builtin_discovery_plugins in the 44.3 DISCOVERY_CONFIG QosPolicy (DDS Extension) for more information.