Add DOMAIN_ID, DOMAIN_TAG to config, discovery

This commits adds support for the DOMAIN_ID and DOMAIN_TAG parameters in
participant discovery, allowing multiple domains to share a port
number (a feature introduced in DDSI 2.3).  The tag can be configured
via Discovery/Tag.

This commit also introduces a setting Discovery/ExternalDomainId that
makes it possible to override the domain id on the network, both in what
is advertised in the DOMAIN_ID discovery parameter and in the
calculation of port numbers.  This way a single process can create two
independent domains that talk via the network, which is on occassion
useful in writing tests.

Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
Erik Boasson 2019-11-19 21:25:17 +01:00 committed by eboasson
parent 15179910d1
commit 08d9c296f1
13 changed files with 130 additions and 33 deletions

View file

@ -111,6 +111,15 @@ Discovery/SPDPMulticastAddress.</p><p>The default value is:
xsd:boolean
}?
& [ a:documentation [ xml:lang="en" """
<p>An override for the domain id, to be used in discovery and for
determining the port number mapping. This allows creating multiple
domains in a single process while making them appear as a single domain
on the network. The value "default" disables the override.</p><p>The
default value is: &quot;default&quot;.</p>""" ] ]
element ExternalDomainId {
text
}?
& [ a:documentation [ xml:lang="en" """
<p>This element specifies the maximum DDSI participant index selected by
this instance of the Cyclone DDS service if the
Discovery/ParticipantIndex is "auto".</p><p>The default value is:
@ -257,6 +266,12 @@ address.</p><p>The default value is: &quot;239.255.0.1&quot;.</p>""" ] ]
element SPDPMulticastAddress {
text
}?
& [ a:documentation [ xml:lang="en" """
<p>String extension for domain id that remote participants must match to
be discovered.</p><p>The default value is: &quot;&quot;.</p>""" ] ]
element Tag {
text
}?
}?
& [ a:documentation [ xml:lang="en" """
<p>The General element specifies overall Cyclone DDS service