Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some work participant discovery #2086

Open
wants to merge 13 commits into
base: master
Choose a base branch
from
Open
58 changes: 50 additions & 8 deletions docs/manual/config/config_file_reference.rst
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ The default value is: ``lax``
//CycloneDDS/Domain/Discovery
=============================

Children: :ref:`DSGracePeriod<//CycloneDDS/Domain/Discovery/DSGracePeriod>`, :ref:`DefaultMulticastAddress<//CycloneDDS/Domain/Discovery/DefaultMulticastAddress>`, :ref:`EnableTopicDiscoveryEndpoints<//CycloneDDS/Domain/Discovery/EnableTopicDiscoveryEndpoints>`, :ref:`ExternalDomainId<//CycloneDDS/Domain/Discovery/ExternalDomainId>`, :ref:`LeaseDuration<//CycloneDDS/Domain/Discovery/LeaseDuration>`, :ref:`MaxAutoParticipantIndex<//CycloneDDS/Domain/Discovery/MaxAutoParticipantIndex>`, :ref:`ParticipantIndex<//CycloneDDS/Domain/Discovery/ParticipantIndex>`, :ref:`Peers<//CycloneDDS/Domain/Discovery/Peers>`, :ref:`Ports<//CycloneDDS/Domain/Discovery/Ports>`, :ref:`SPDPInterval<//CycloneDDS/Domain/Discovery/SPDPInterval>`, :ref:`SPDPMulticastAddress<//CycloneDDS/Domain/Discovery/SPDPMulticastAddress>`, :ref:`Tag<//CycloneDDS/Domain/Discovery/Tag>`
Children: :ref:`DSGracePeriod<//CycloneDDS/Domain/Discovery/DSGracePeriod>`, :ref:`DefaultMulticastAddress<//CycloneDDS/Domain/Discovery/DefaultMulticastAddress>`, :ref:`DiscoveredLocatorPruneDelay<//CycloneDDS/Domain/Discovery/DiscoveredLocatorPruneDelay>`, :ref:`EnableTopicDiscoveryEndpoints<//CycloneDDS/Domain/Discovery/EnableTopicDiscoveryEndpoints>`, :ref:`ExternalDomainId<//CycloneDDS/Domain/Discovery/ExternalDomainId>`, :ref:`InitialLocatorPruneDelay<//CycloneDDS/Domain/Discovery/InitialLocatorPruneDelay>`, :ref:`LeaseDuration<//CycloneDDS/Domain/Discovery/LeaseDuration>`, :ref:`MaxAutoParticipantIndex<//CycloneDDS/Domain/Discovery/MaxAutoParticipantIndex>`, :ref:`ParticipantIndex<//CycloneDDS/Domain/Discovery/ParticipantIndex>`, :ref:`Peers<//CycloneDDS/Domain/Discovery/Peers>`, :ref:`Ports<//CycloneDDS/Domain/Discovery/Ports>`, :ref:`SPDPInterval<//CycloneDDS/Domain/Discovery/SPDPInterval>`, :ref:`SPDPMulticastAddress<//CycloneDDS/Domain/Discovery/SPDPMulticastAddress>`, :ref:`Tag<//CycloneDDS/Domain/Discovery/Tag>`

The Discovery element allows you to specify various parameters related to the discovery of peers.

Expand Down Expand Up @@ -143,6 +143,20 @@ This element specifies the default multicast address for all traffic other than
The default value is: ``auto``


.. _`//CycloneDDS/Domain/Discovery/DiscoveredLocatorPruneDelay`:

//CycloneDDS/Domain/Discovery/DiscoveredLocatorPruneDelay
---------------------------------------------------------

Number-with-unit

This element specifies the time for which discovered (unicast) participant locators are pinged after a participant at that address disappeared because of a lease expiry. Locators for participants for which notice of graceful termination was received are not retained.

Valid values are finite durations with an explicit unit or the keyword 'inf' for infinity. Recognised units: ns, us, ms, s, min, hr, day.

The default value is: ``60s``


.. _`//CycloneDDS/Domain/Discovery/EnableTopicDiscoveryEndpoints`:

//CycloneDDS/Domain/Discovery/EnableTopicDiscoveryEndpoints
Expand All @@ -167,6 +181,20 @@ An override for the domain id is used to discovery and determine the port number
The default value is: ``default``


.. _`//CycloneDDS/Domain/Discovery/InitialLocatorPruneDelay`:

//CycloneDDS/Domain/Discovery/InitialLocatorPruneDelay
------------------------------------------------------

Number-with-unit

This element specifies the default time for configured peer locators are initially ping and after disappearance of the last participant at that address until it is pruned. It can be overridden for individual peers.

Valid values are finite durations with an explicit unit or the keyword 'inf' for infinity. Recognised units: ns, us, ms, s, min, hr, day.

The default value is: ``30s``


.. _`//CycloneDDS/Domain/Discovery/LeaseDuration`:

//CycloneDDS/Domain/Discovery/LeaseDuration
Expand All @@ -187,9 +215,9 @@ The default value is: ``10 s``

Integer

This element specifies the maximum DDSI participant index selected by this instance of the Cyclone DDS service if the Discovery/ParticipantIndex is "auto".
This element specifies the maximum DDSI participant index selected by this instance of the Cyclone DDS service if the Discovery/ParticipantIndex is "auto". This also determines the range of port numbers pinged by default for unicast participant discovery.

The default value is: ``9``
The default value is: ``99``


.. _`//CycloneDDS/Domain/Discovery/ParticipantIndex`:
Expand Down Expand Up @@ -244,7 +272,7 @@ The default value is: ``default``
//CycloneDDS/Domain/Discovery/Peers/Peer
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Attributes: :ref:`Address<//CycloneDDS/Domain/Discovery/Peers/Peer[@Address]>`
Attributes: :ref:`Address<//CycloneDDS/Domain/Discovery/Peers/Peer[@Address]>`, :ref:`PruneDelay<//CycloneDDS/Domain/Discovery/Peers/Peer[@PruneDelay]>`

This element statically configures addresses for discovery.

Expand All @@ -261,6 +289,20 @@ This element specifies an IP address to which discovery packets must be sent, in
The default value is: ``<empty>``


.. _`//CycloneDDS/Domain/Discovery/Peers/Peer[@PruneDelay]`:

//CycloneDDS/Domain/Discovery/Peers/Peer[@PruneDelay]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Number-with-unit

This element specifies the duration for which the locator must be pinged for participant discovery before it is pruned as a useless address. The value "default" means the value in Discovery/InitialLocatorPruneDelay is used.

Valid values are finite durations with an explicit unit or the keyword 'inf' for infinity. Recognised units: ns, us, ms, s, min, hr, day.

The default value is: ``default``


.. _`//CycloneDDS/Domain/Discovery/Ports`:

//CycloneDDS/Domain/Discovery/Ports
Expand Down Expand Up @@ -2716,12 +2758,12 @@ The categorisation of tracing output is incomplete and hence most of the verbosi
The default value is: ``none``

..
generated from ddsi_config.h[e6e75c7c07b3b91a92715063cfd8abdd0fbd8b08]
generated from ddsi_config.h[dbf9996a8b49da8e7cb4b62ab157ba80a073cd81]
generated from ddsi__cfgunits.h[bd22f0c0ed210501d0ecd3b07c992eca549ef5aa]
generated from ddsi__cfgelems.h[69679834d0a592a339803ed27e3966adc900d592]
generated from ddsi_config.c[8d7ef0ae962a47cb2138de27ac0f6751e3393c66]
generated from ddsi__cfgelems.h[a8b3ad5170f4e86fd7c1f29c5677c332930ea6a4]
generated from ddsi_config.c[94a98ea7709bca260c9cfb5cf43396b0d5e3c953]
generated from _confgen.h[9554f1d72645c0b8bb66ffbfbc3c0fb664fc1a43]
generated from _confgen.c[237308acd53897a34e8c643e16e05a61d73ffd65]
generated from _confgen.c[86c631048046ed4e14c46dba40e5253b50a748fe]
generated from generate_rnc.c[b50e4b7ab1d04b2bc1d361a0811247c337b74934]
generated from generate_md.c[789b92e422631684352909cfb8bf43f6ceb16a01]
generated from generate_rst.c[3c4b523fbb57c8e4a7e247379d06a8021ccc21c4]
Expand Down
46 changes: 38 additions & 8 deletions docs/manual/options.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ The default value is: `lax`


### //CycloneDDS/Domain/Discovery
Children: [DSGracePeriod](#cycloneddsdomaindiscoverydsgraceperiod), [DefaultMulticastAddress](#cycloneddsdomaindiscoverydefaultmulticastaddress), [EnableTopicDiscoveryEndpoints](#cycloneddsdomaindiscoveryenabletopicdiscoveryendpoints), [ExternalDomainId](#cycloneddsdomaindiscoveryexternaldomainid), [LeaseDuration](#cycloneddsdomaindiscoveryleaseduration), [MaxAutoParticipantIndex](#cycloneddsdomaindiscoverymaxautoparticipantindex), [ParticipantIndex](#cycloneddsdomaindiscoveryparticipantindex), [Peers](#cycloneddsdomaindiscoverypeers), [Ports](#cycloneddsdomaindiscoveryports), [SPDPInterval](#cycloneddsdomaindiscoveryspdpinterval), [SPDPMulticastAddress](#cycloneddsdomaindiscoveryspdpmulticastaddress), [Tag](#cycloneddsdomaindiscoverytag)
Children: [DSGracePeriod](#cycloneddsdomaindiscoverydsgraceperiod), [DefaultMulticastAddress](#cycloneddsdomaindiscoverydefaultmulticastaddress), [DiscoveredLocatorPruneDelay](#cycloneddsdomaindiscoverydiscoveredlocatorprunedelay), [EnableTopicDiscoveryEndpoints](#cycloneddsdomaindiscoveryenabletopicdiscoveryendpoints), [ExternalDomainId](#cycloneddsdomaindiscoveryexternaldomainid), [InitialLocatorPruneDelay](#cycloneddsdomaindiscoveryinitiallocatorprunedelay), [LeaseDuration](#cycloneddsdomaindiscoveryleaseduration), [MaxAutoParticipantIndex](#cycloneddsdomaindiscoverymaxautoparticipantindex), [ParticipantIndex](#cycloneddsdomaindiscoveryparticipantindex), [Peers](#cycloneddsdomaindiscoverypeers), [Ports](#cycloneddsdomaindiscoveryports), [SPDPInterval](#cycloneddsdomaindiscoveryspdpinterval), [SPDPMulticastAddress](#cycloneddsdomaindiscoveryspdpmulticastaddress), [Tag](#cycloneddsdomaindiscoverytag)

The Discovery element allows you to specify various parameters related to the discovery of peers.

Expand All @@ -90,6 +90,16 @@ This element specifies the default multicast address for all traffic other than
The default value is: `auto`


#### //CycloneDDS/Domain/Discovery/DiscoveredLocatorPruneDelay
Number-with-unit

This element specifies the time for which discovered (unicast) participant locators are pinged after a participant at that address disappeared because of a lease expiry. Locators for participants for which notice of graceful termination was received are not retained.

Valid values are finite durations with an explicit unit or the keyword 'inf' for infinity. Recognised units: ns, us, ms, s, min, hr, day.

The default value is: `60s`


#### //CycloneDDS/Domain/Discovery/EnableTopicDiscoveryEndpoints
Boolean

Expand All @@ -106,6 +116,16 @@ An override for the domain id is used to discovery and determine the port number
The default value is: `default`


#### //CycloneDDS/Domain/Discovery/InitialLocatorPruneDelay
Number-with-unit

This element specifies the default time for configured peer locators are initially ping and after disappearance of the last participant at that address until it is pruned. It can be overridden for individual peers.

Valid values are finite durations with an explicit unit or the keyword 'inf' for infinity. Recognised units: ns, us, ms, s, min, hr, day.

The default value is: `30s`


#### //CycloneDDS/Domain/Discovery/LeaseDuration
Number-with-unit

Expand All @@ -118,9 +138,9 @@ The default value is: `10 s`
#### //CycloneDDS/Domain/Discovery/MaxAutoParticipantIndex
Integer

This element specifies the maximum DDSI participant index selected by this instance of the Cyclone DDS service if the Discovery/ParticipantIndex is "auto".
This element specifies the maximum DDSI participant index selected by this instance of the Cyclone DDS service if the Discovery/ParticipantIndex is "auto". This also determines the range of port numbers pinged by default for unicast participant discovery.

The default value is: `9`
The default value is: `99`


#### //CycloneDDS/Domain/Discovery/ParticipantIndex
Expand Down Expand Up @@ -157,7 +177,7 @@ The default value is: `default`


##### //CycloneDDS/Domain/Discovery/Peers/Peer
Attributes: [Address](#cycloneddsdomaindiscoverypeerspeeraddress)
Attributes: [Address](#cycloneddsdomaindiscoverypeerspeeraddress), [PruneDelay](#cycloneddsdomaindiscoverypeerspeerprunedelay)

This element statically configures addresses for discovery.

Expand All @@ -170,6 +190,16 @@ This element specifies an IP address to which discovery packets must be sent, in
The default value is: `<empty>`


##### //CycloneDDS/Domain/Discovery/Peers/Peer[@PruneDelay]
Number-with-unit

This element specifies the duration for which the locator must be pinged for participant discovery before it is pruned as a useless address. The value "default" means the value in Discovery/InitialLocatorPruneDelay is used.

Valid values are finite durations with an explicit unit or the keyword 'inf' for infinity. Recognised units: ns, us, ms, s, min, hr, day.

The default value is: `default`


#### //CycloneDDS/Domain/Discovery/Ports
Children: [Base](#cycloneddsdomaindiscoveryportsbase), [DomainGain](#cycloneddsdomaindiscoveryportsdomaingain), [MulticastDataOffset](#cycloneddsdomaindiscoveryportsmulticastdataoffset), [MulticastMetaOffset](#cycloneddsdomaindiscoveryportsmulticastmetaoffset), [ParticipantGain](#cycloneddsdomaindiscoveryportsparticipantgain), [UnicastDataOffset](#cycloneddsdomaindiscoveryportsunicastdataoffset), [UnicastMetaOffset](#cycloneddsdomaindiscoveryportsunicastmetaoffset)

Expand Down Expand Up @@ -1906,12 +1936,12 @@ While none prevents any message from being written to a DDSI2 log file.
The categorisation of tracing output is incomplete and hence most of the verbosity levels and categories are not of much use in the current release. This is an ongoing process and here we describe the target situation rather than the current situation. Currently, the most useful verbosity levels are config, fine and finest.

The default value is: `none`
<!--- generated from ddsi_config.h[e6e75c7c07b3b91a92715063cfd8abdd0fbd8b08] -->
<!--- generated from ddsi_config.h[dbf9996a8b49da8e7cb4b62ab157ba80a073cd81] -->
<!--- generated from ddsi__cfgunits.h[bd22f0c0ed210501d0ecd3b07c992eca549ef5aa] -->
<!--- generated from ddsi__cfgelems.h[69679834d0a592a339803ed27e3966adc900d592] -->
<!--- generated from ddsi_config.c[8d7ef0ae962a47cb2138de27ac0f6751e3393c66] -->
<!--- generated from ddsi__cfgelems.h[a8b3ad5170f4e86fd7c1f29c5677c332930ea6a4] -->
<!--- generated from ddsi_config.c[94a98ea7709bca260c9cfb5cf43396b0d5e3c953] -->
<!--- generated from _confgen.h[9554f1d72645c0b8bb66ffbfbc3c0fb664fc1a43] -->
<!--- generated from _confgen.c[237308acd53897a34e8c643e16e05a61d73ffd65] -->
<!--- generated from _confgen.c[86c631048046ed4e14c46dba40e5253b50a748fe] -->
<!--- generated from generate_rnc.c[b50e4b7ab1d04b2bc1d361a0811247c337b74934] -->
<!--- generated from generate_md.c[789b92e422631684352909cfb8bf43f6ceb16a01] -->
<!--- generated from generate_rst.c[3c4b523fbb57c8e4a7e247379d06a8021ccc21c4] -->
Expand Down
33 changes: 27 additions & 6 deletions etc/cyclonedds.rnc
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,13 @@ CycloneDDS configuration""" ] ]
text
}?
& [ a:documentation [ xml:lang="en" """
<p>This element specifies the time for which discovered (unicast) participant locators are pinged after a participant at that address disappeared because of a lease expiry. Locators for participants for which notice of graceful termination was received are not retained.</p>
<p>Valid values are finite durations with an explicit unit or the keyword 'inf' for infinity. Recognised units: ns, us, ms, s, min, hr, day.</p>
<p>The default value is: <code>60s</code></p>""" ] ]
element DiscoveredLocatorPruneDelay {
duration_inf
}?
& [ a:documentation [ xml:lang="en" """
<p>This element controls whether the built-in endpoints for topic discovery are created and used to exchange topic discovery information.</p>
<p>The default value is: <code>false</code></p>""" ] ]
element EnableTopicDiscoveryEndpoints {
Expand All @@ -76,15 +83,22 @@ CycloneDDS configuration""" ] ]
text
}?
& [ a:documentation [ xml:lang="en" """
<p>This element specifies the default time for configured peer locators are initially ping and after disappearance of the last participant at that address until it is pruned. It can be overridden for individual peers.</p>
<p>Valid values are finite durations with an explicit unit or the keyword 'inf' for infinity. Recognised units: ns, us, ms, s, min, hr, day.</p>
<p>The default value is: <code>30s</code></p>""" ] ]
element InitialLocatorPruneDelay {
duration_inf
}?
& [ a:documentation [ xml:lang="en" """
<p>This setting controls the default participant lease duration.<p>
<p>The unit must be specified explicitly. Recognised units: ns, us, ms, s, min, hr, day.</p>
<p>The default value is: <code>10 s</code></p>""" ] ]
element LeaseDuration {
duration
}?
& [ 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: <code>9</code></p>""" ] ]
<p>This element specifies the maximum DDSI participant index selected by this instance of the Cyclone DDS service if the Discovery/ParticipantIndex is "auto". This also determines the range of port numbers pinged by default for unicast participant discovery.</p>
<p>The default value is: <code>99</code></p>""" ] ]
element MaxAutoParticipantIndex {
xsd:integer
}?
Expand Down Expand Up @@ -118,6 +132,13 @@ CycloneDDS configuration""" ] ]
attribute Address {
text
}
& [ a:documentation [ xml:lang="en" """
<p>This element specifies the duration for which the locator must be pinged for participant discovery before it is pruned as a useless address. The value "default" means the value in Discovery/InitialLocatorPruneDelay is used.</p>
<p>Valid values are finite durations with an explicit unit or the keyword 'inf' for infinity. Recognised units: ns, us, ms, s, min, hr, day.</p>
<p>The default value is: <code>default</code></p>""" ] ]
attribute PruneDelay {
duration_inf
}?
}*
}?
& [ a:documentation [ xml:lang="en" """
Expand Down Expand Up @@ -1319,12 +1340,12 @@ MIIEpAIBAAKCAQEA3HIh...AOBaaqSV37XBUJg==<br>
duration_inf = xsd:token { pattern = "inf|0|(\d+(\.\d*)?([Ee][\-+]?\d+)?|\.\d+([Ee][\-+]?\d+)?) *([num]?s|min|hr|day)" }
memsize = xsd:token { pattern = "0|(\d+(\.\d*)?([Ee][\-+]?\d+)?|\.\d+([Ee][\-+]?\d+)?) *([kMG]i?)?B" }
}
# generated from ddsi_config.h[e6e75c7c07b3b91a92715063cfd8abdd0fbd8b08]
# generated from ddsi_config.h[dbf9996a8b49da8e7cb4b62ab157ba80a073cd81]
# generated from ddsi__cfgunits.h[bd22f0c0ed210501d0ecd3b07c992eca549ef5aa]
# generated from ddsi__cfgelems.h[69679834d0a592a339803ed27e3966adc900d592]
# generated from ddsi_config.c[8d7ef0ae962a47cb2138de27ac0f6751e3393c66]
# generated from ddsi__cfgelems.h[a8b3ad5170f4e86fd7c1f29c5677c332930ea6a4]
# generated from ddsi_config.c[94a98ea7709bca260c9cfb5cf43396b0d5e3c953]
# generated from _confgen.h[9554f1d72645c0b8bb66ffbfbc3c0fb664fc1a43]
# generated from _confgen.c[237308acd53897a34e8c643e16e05a61d73ffd65]
# generated from _confgen.c[86c631048046ed4e14c46dba40e5253b50a748fe]
# generated from generate_rnc.c[b50e4b7ab1d04b2bc1d361a0811247c337b74934]
# generated from generate_md.c[789b92e422631684352909cfb8bf43f6ceb16a01]
# generated from generate_rst.c[3c4b523fbb57c8e4a7e247379d06a8021ccc21c4]
Expand Down
Loading
Loading