Merge branch 'master' into merge6

Signed-off-by: Martin Bremmer <martin.bremmer@adlinktech.com>
This commit is contained in:
Martin Bremmer 2019-12-13 12:59:37 +01:00
commit 660d495746
124 changed files with 5049 additions and 1672 deletions

View file

@ -1,3 +1,4 @@
default namespace = "https://cdds.io/config"
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
grammar {
start =
@ -79,7 +80,319 @@ though there is no good reason not to.</li></ul>
element StandardsConformance {
"lax"|"strict"|"pedantic"
}?
}?
}*
& [ a:documentation [ xml:lang="en" """
<p>This element is used to configure Cyclone DDS with the DDS Security
specification plugins and settings.</p>""" ] ]
element DDSSecurity {
[ a:documentation [ xml:lang="en" """
<p>This element configures the Access Control plugin of the DDS Security
specification.</p>""" ] ]
element AccessControl {
[ a:documentation [ xml:lang="en" """
RELOFF (cfg.access_control_properties.governance), pf_string,
BLURB("<p>URI to the shared Governance Document signed by the Permissions
CA in S/MIME format</p>
<p>URI schemes: file, data</p><br>
<p>Examples file URIs:</p>
<p><Governance>file:governance.smime</Governance></p>
<p><Governance>file:/home/myuser/governance.smime</Governance></p><br>
<p><Governance><![CDATA[data:,MIME-Version: 1.0</p>
<p>Content-Type: multipart/signed;
protocol="application/x-pkcs7-signature"; micalg="sha-256";
boundary="----F9A8A198D6F08E1285A292ADF14DD04F"</p>
<p>This is an S/MIME signed message </p>
<p>------F9A8A198D6F08E1285A292ADF14DD04F</p>
<p><?xml version="1.0" encoding="UTF-8"?></p>
<p><dds xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</p>
<p>xsi:noNamespaceSchemaLocation="omg_shared_ca_governance.xsd"></p>
<p><domain_access_rules></p>
<p> . . . </p>
<p></domain_access_rules></p>
<p></dds></p>
<p>...</p>
<p>------F9A8A198D6F08E1285A292ADF14DD04F</p>
<p>Content-Type: application/x-pkcs7-signature; name="smime.p7s"</p>
<p>Content-Transfer-Encoding: base64</p>
<p>Content-Disposition: attachment; filename="smime.p7s"</p>
<p>MIIDuAYJKoZIhv ...al5s=</p>
<p>------F9A8A198D6F08E1285A292ADF14DD04F-]]</Governance></p>""" ] ]
element Governance {
empty
}?
& [ a:documentation [ xml:lang="en" """
RELOFF (cfg.access_control_plugin), pf_string, BLURB("<p>This element
specifies the library to be loaded as the DDS Security Access Control
plugin.</p>""" ] ]
element Library {
[ a:documentation [ xml:lang="en" """
RELOFF (cfg.access_control_plugin.library_finalize), pf_string,
BLURB("<p>This element names the finalization function of Access Control
plugin. This function is called to let the plugin release its
resources.</p>""" ] ]
element finalizeFunction {
empty
}?
& [ a:documentation [ xml:lang="en" """
RELOFF (cfg.access_control_plugin.library_init), pf_string,
BLURB("<p>This element names the initialization function of Access
Control plugin. This function is called after loading the plugin library
for instantiation purposes. Init function must return an object that
implements DDS Security Access Control interface.</p>""" ] ]
element initFunction {
empty
}?
& [ a:documentation [ xml:lang="en" """
RELOFF (cfg.access_control_plugin.library_path), pf_string,
BLURB("<p>This element points to the path of Access Control plugin
library.</p>
<p>It can be either absolute path excluding file extension (
/usr/lib/dds_security_ac ) or single file without extension (
dds_security_ac ).</p>
<p>If single file is supplied, the library located by way of the current
working directory, or LD_LIBRARY_PATH for Unix systems, and PATH for
Windows systems.</p>""" ] ]
element path {
empty
}?
}?
& [ a:documentation [ xml:lang="en" """
RELOFF (cfg.access_control_properties.permissions), pf_string,
BLURB("<p>URI to the DomainParticipant permissions document signed by the
Permissions CA in S/MIME format</p>
<p>The permissions document specifies the permissions to be applied to a
domain.</p><br>
<p>Example file URIs:</p>
<p><Permissions>file:permissions_document.p7s</Permissions></p>
<p><Permissions>file:/path_to/permissions_document.p7s</Permissions></p>
<p>Example data URI:</p>
<p><Permissions><![CDATA[data:,.........]]</Permissions></p>""" ] ]
element Permissions {
empty
}?
& [ a:documentation [ xml:lang="en" """
RELOFF (cfg.access_control_properties.permissions_ca), pf_string,
BLURB("<p>URI to a X509 certificate for the PermissionsCA in PEM
format.</p>
<p>Supported URI schemes: file, data</p>
<p>The file and data schemas shall refer to a X.509 v3 certificate (see
X.509 v3 ITU-T Recommendation X.509 (2005) [39]) in PEM format.</p><br>
<p>Examples:</p><br>
<p><PermissionsCA>file:permissions_ca.pem</PermissionsCA></p>
<p><PermissionsCA>file:/home/myuser/permissions_ca.pem</PermissionsCA></p><br>
<p><PermissionsCA>data:<strong>,</strong>-----BEGIN CERTIFICATE-----</p>
<p>MIIC3DCCAcQCCQCWE5x+Z ... PhovK0mp2ohhRLYI0ZiyYQ==</p>
<p>-----END CERTIFICATE-----</PermissionsCA></p>""" ] ]
element PermissionsCA {
empty
}?
}?
& [ a:documentation [ xml:lang="en" """
<p>This element configures the Authentication plugin of the DDS Security
specification.</p>""" ] ]
element Authentication {
[ a:documentation [ xml:lang="en" """
RELOFF (cfg.authentication_properties.identity_ca), pf_string,
BLURB("<p>URI to the X509 certificate [39] of the Identity CA that is the
signer of Identity Certificate.</p>
<p>Supported URI schemes: file, data</p>
<p>The file and data schemas shall refer to a X.509 v3 certificate (see
X.509 v3 ITU-T Recommendation X.509 (2005) [39]) in PEM format.</p>
<p>Examples:</p>
<p><IdentityCA>file:identity_ca.pem</IdentityCA></p>
<p><IdentityCA>data:,-----BEGIN CERTIFICATE-----<br>
MIIC3DCCAcQCCQCWE5x+Z...PhovK0mp2ohhRLYI0ZiyYQ==<br>
-----END CERTIFICATE-----</IdentityCA></p>""" ] ]
element IdentityCA {
empty
}?
& [ a:documentation [ xml:lang="en" """
RELOFF (cfg.authentication_properties.identity_certificate), pf_string,
BLURB("<p>Identity certificate that will be used for identifying all
participants in the OSPL instance.<br>The content is URI to a X509
certificate signed by the IdentityCA in PEM format containing the signed
public key.</p>
<p>Supported URI schemes: file, data</p>
<p>Examples:</p>
<p><IdentityCertificate>file:participant1_identity_cert.pem</IdentityCertificate></p>
<p><IdentityCertificate>data:,-----BEGIN CERTIFICATE-----<br>
MIIDjjCCAnYCCQDCEu9...6rmT87dhTo=<br>
-----END CERTIFICATE-----</IdentityCertificate></p>""" ] ]
element IdentityCertificate {
empty
}?
& [ a:documentation [ xml:lang="en" """
RELOFF (cfg.authentication_plugin), pf_string, BLURB("<p>This element
specifies the library to be loaded as the DDS Security Access Control
plugin.</p>""" ] ]
element Library {
[ a:documentation [ xml:lang="en" """
RELOFF (cfg.authentication_plugin.library_finalize), pf_string,
BLURB("<p>This element names the finalization function of Authentication
plugin. This function is called to let the plugin release its
resources.</p>""" ] ]
element finalizeFunction {
empty
}?
& [ a:documentation [ xml:lang="en" """
RELOFF (cfg.authentication_plugin.library_init), pf_string,
BLURB("<p>This element names the initialization function of
Authentication plugin. This function is called after loading the plugin
library for instantiation purposes. Init function must return an object
that implements DDS Security Authentication interface.</p>""" ] ]
element initFunction {
empty
}?
& [ a:documentation [ xml:lang="en" """
RELOFF (cfg.authentication_plugin.library_path), pf_string,
BLURB("<p>This element points to the path of Authentication plugin
library.</p>
<p>It can be either absolute path excluding file extension (
/usr/lib/dds_security_auth ) or single file without extension (
dds_security_auth ).</p>
<p>If single file is supplied, the library located by way of the current
working directory, or LD_LIBRARY_PATH for Unix systems, and PATH for
Windows systems.</p>""" ] ]
element path {
empty
}?
}?
& [ a:documentation [ xml:lang="en" """
RELOFF (cfg.authentication_properties.password), pf_string, BLURB("<p>A
password used to decrypt the private_key.</p>
The value of the password property shall be interpreted as the Base64
encoding of the AES-128 key that shall be used to decrypt the private_key
using AES128-CBC.</p>
If the password property is not present, then the value supplied in the
private_key property must contain the unencrypted private key. </p>""" ] ]
element Password {
empty
}?
& [ a:documentation [ xml:lang="en" """
RELOFF (cfg.authentication_properties.private_key), pf_string,
BLURB("<p>URI to access the private Private Key for all of the
participants in the OSPL federation.</p>
<p>Supported URI schemes: file, data</p>
<p>Examples:</p>
<p><PrivateKey>file:identity_ca_private_key.pem</PrivateKey></p>
<p><PrivateKey>data:,-----BEGIN RSA PRIVATE KEY-----<br>
MIIEpAIBAAKCAQEA3HIh...AOBaaqSV37XBUJg==<br>
-----END RSA PRIVATE KEY-----</PrivateKey></p>""" ] ]
element PrivateKey {
empty
}?
& [ a:documentation [ xml:lang="en" """
RELOFF (cfg.authentication_properties.trusted_ca_dir), pf_string,
BLURB("<p>Trusted CA Directory which contains trusted CA certificates as
separated files.</p>""" ] ]
element TrustedCADirectory {
empty
}?
}?
& [ a:documentation [ xml:lang="en" """
<p>This element configures the Cryptographic plugin of the DDS Security
specification.</p>""" ] ]
element Cryptographic {
[ a:documentation [ xml:lang="en" """
RELOFF (cfg.cryptography_plugin), pf_string, BLURB("<p>This element
specifies the library to be loaded as the DDS Security Cryptographic
plugin.</p>""" ] ]
element Library {
[ a:documentation [ xml:lang="en" """
RELOFF (cfg.cryptography_plugin.library_finalize), pf_string,
BLURB("<p>This element names the finalization function of Cryptographic
plugin. This function is called to let the plugin release its
resources.</p>""" ] ]
element finalizeFunction {
empty
}?
& [ a:documentation [ xml:lang="en" """
RELOFF (cfg.cryptography_plugin.library_init), pf_string, BLURB("<p>This
element names the initialization function of Cryptographic plugin. This
function is called after loading the plugin library for instantiation
purposes. Init function must return an object that implements DDS
Security Cryptographic interface.</p>""" ] ]
element initFunction {
empty
}?
& [ a:documentation [ xml:lang="en" """
RELOFF (cfg.cryptography_plugin.library_path), pf_string, BLURB("<p>This
element points to the path of Cryptographic plugin library.</p>
<p>It can be either absolute path excluding file extension (
/usr/lib/dds_security_crypto ) or single file without extension (
dds_security_crypto ).</p>
<p>If single file is supplied, the library located by way of the current
working directory, or LD_LIBRARY_PATH for Unix systems, and PATH for
Windows systems.</p>""" ] ]
element path {
empty
}?
}?
}?
}*
& [ a:documentation [ xml:lang="en" """
<p>The Discovery element allows specifying various parameters related to
the discovery of peers.</p>""" ] ]
@ -110,6 +423,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:
@ -202,7 +524,7 @@ constant DG).</p><p>The default value is: &quot;250&quot;.</p>""" ] ]
xsd:integer
}?
& [ a:documentation [ xml:lang="en" """
<p>This element specifies the port number for multicast meta traffic
<p>This element specifies the port number for multicast data traffic
(refer to the DDSI 2.1 specification, section 9.6.1, constant
d2).</p><p>The default value is: &quot;1&quot;.</p>""" ] ]
element MulticastDataOffset {
@ -224,7 +546,7 @@ section 9.6.1, constant PG).</p><p>The default value is:
xsd:integer
}?
& [ a:documentation [ xml:lang="en" """
<p>This element specifies the port number for unicast meta traffic (refer
<p>This element specifies the port number for unicast data traffic (refer
to the DDSI 2.1 specification, section 9.6.1, constant d3).</p><p>The
default value is: &quot;11&quot;.</p>""" ] ]
element UnicastDataOffset {
@ -256,7 +578,13 @@ 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
settings.</p>""" ] ]
@ -558,7 +886,37 @@ heartbeats and the bounds within it can vary.</p>
'inf' for infinity. Recognised units: ns, us, ms, s, min, hr,
day.</p><p>The default value is: &quot;100 ms&quot;.</p>""" ] ]
element HeartbeatInterval {
duration_inf
[ a:documentation [ xml:lang="en" """
<p>This attribute sets the maximum interval for periodic heartbeats.</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: &quot;8 s&quot;.</p>""" ] ]
attribute max {
duration_inf
}?
& [ a:documentation [ xml:lang="en" """
<p>This attribute sets the minimum interval that must have passed since
the most recent heartbeat from a writer, before another asynchronous (not
directly related to writing) will be sent.</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: &quot;5 ms&quot;.</p>""" ] ]
attribute min {
duration_inf
}?
& [ a:documentation [ xml:lang="en" """
<p>This attribute sets the minimum interval for periodic heartbeats.
Other events may still cause heartbeats to go out.</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: &quot;20 ms&quot;.</p>""" ] ]
attribute minsched {
duration_inf
}?
& duration_inf
}?
& [ a:documentation [ xml:lang="en" """
<p>Ack a sample only when it has been delivered, instead of when
@ -582,7 +940,23 @@ traces can be dumped automatically when some thread appears to have
stopped making progress.</p><p>The default value is:
&quot;false&quot;.</p>""" ] ]
element LivelinessMonitoring {
xsd:boolean
[ a:documentation [ xml:lang="en" """
<p>This element controls the interval at which to check whether threads
have been making progress.</p>
<p>The unit must be specified explicitly. Recognised units: ns, us, ms,
s, min, hr, day.</p><p>The default value is: &quot;1s&quot;.</p>""" ] ]
attribute Interval {
duration
}?
& [ a:documentation [ xml:lang="en" """
<p>This element controls whether or not to write stack traces to the
Cyclone DDS trace when a thread fails to make progress (on select
platforms only).</p><p>The default value is: &quot;true&quot;.</p>""" ] ]
attribute StackTraces {
xsd:boolean
}?
& xsd:boolean
}?
& [ a:documentation [ xml:lang="en" """
<p>This elements configures the maximum number of DCPS domain
@ -678,7 +1052,17 @@ latency. Currently multiple receive threads are only used for
connectionless transport (e.g., UDP) and ManySocketsMode not set to
single (the default).</p><p>The default value is: &quot;true&quot;.</p>""" ] ]
element MultipleReceiveThreads {
xsd:boolean
[ a:documentation [ xml:lang="en" """
<p>Receive threads dedicated to a single socket can only be triggered for
termination by sending a packet. Reception of any packet will do, so
termination failure due to packet loss is exceedingly unlikely, but to
eliminate all risks, it will retry as many times as specified by this
attribute before aborting.</p><p>The default value is:
&quot;4294967295&quot;.</p>""" ] ]
attribute maxretries {
xsd:integer
}?
& xsd:boolean
}?
& [ a:documentation [ xml:lang="en" """
<p>This setting controls the delay between receipt of a HEARTBEAT
@ -734,7 +1118,17 @@ is therefore recommended to set it to at least several seconds.</p>
'inf' for infinity. Recognised units: ns, us, ms, s, min, hr,
day.</p><p>The default value is: &quot;10s&quot;.</p>""" ] ]
element RediscoveryBlacklistDuration {
duration_inf
[ a:documentation [ xml:lang="en" """
<p>This attribute controls whether the configured time during which
recently deleted participants will not be rediscovered (i.e., "black
listed") is enforced and following complete removal of the participant in
Cyclone DDS, or whether it can be rediscovered earlier provided all
traces of that participant have been removed already.</p><p>The default
value is: &quot;false&quot;.</p>""" ] ]
attribute enforce {
xsd:boolean
}?
& duration_inf
}?
& [ a:documentation [ xml:lang="en" """
<p>This elements controls the addressing and timing of retransmits.
@ -939,7 +1333,7 @@ s, min, hr, day.</p><p>The default value is: &quot;1 s&quot;.</p>""" ] ]
element WriterLingerDuration {
duration
}?
}?
}*
& [ a:documentation [ xml:lang="en" """
<p>The Partitioning element specifies Cyclone DDS network partitions and
how DCPS partition/topic combinations are mapped onto the network
@ -1029,7 +1423,7 @@ DCPSPartitionTopic attribute within this PartitionMapping element.</p>""" ] ]
}
}*
}*
}?
}*
& [ a:documentation [ xml:lang="en" """
<p>The SSL element allows specifying various parameters related to using
SSL/TLS for DDSI over TCP.</p>""" ] ]
@ -1089,7 +1483,7 @@ connecting client.</p><p>The default value is: &quot;true&quot;.</p>""" ] ]
element VerifyClient {
xsd:boolean
}?
}?
}*
& [ a:documentation [ xml:lang="en" """
<p>The Sizing element specifies a variety of configuration settings
dealing with expected system sizes, buffer sizes, &c.</p>""" ] ]
@ -1120,7 +1514,7 @@ MiB&quot;.</p>""" ] ]
element ReceiveBufferSize {
memsize
}?
}?
}*
& [ a:documentation [ xml:lang="en" """
<p>The TCP element allows specifying various parameters related to
running DDSI over TCP.</p>""" ] ]
@ -1177,7 +1571,7 @@ s, min, hr, day.</p><p>The default value is: &quot;2 s&quot;.</p>""" ] ]
element WriteTimeout {
duration
}?
}?
}*
& [ a:documentation [ xml:lang="en" """
<p>The ThreadPool element allows specifying various parameters related to
using a thread pool to send DDSI messages to multiple unicast addresses
@ -1201,7 +1595,7 @@ pool.</p><p>The default value is: &quot;4&quot;.</p>""" ] ]
element Threads {
xsd:integer
}?
}?
}*
& [ a:documentation [ xml:lang="en" """
<p>This element is used to set thread properties.</p>""" ] ]
element Threads {
@ -1270,7 +1664,7 @@ default.</p>
memsize
}?
}*
}?
}*
& [ a:documentation [ xml:lang="en" """
<p>The Tracing element controls the amount and type of information that
is written into the tracing log by the DDSI service. This is useful to
@ -1387,8 +1781,8 @@ verbosity levels are <i>config</i>, <i>fine</i> and
element Verbosity {
"finest"|"finer"|"fine"|"config"|"info"|"warning"|"severe"|"none"
}?
}?
}?
}*
}*
}
bandwidth = xsd:token { pattern = "0|(\d+(\.\d*)?([Ee][\-+]?\d+)?|\.\d+([Ee][\-+]?\d+)?) *([kMG]i?)?[Bb][p/]s" }
duration = xsd:token { pattern = "0|(\d+(\.\d*)?([Ee][\-+]?\d+)?|\.\d+([Ee][\-+]?\d+)?) *([num]?s|min|hr|day)" }

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="https://cdds.io/config" xmlns:config="https://cdds.io/config">
<xs:element name="CycloneDDS">
<xs:annotation>
<xs:documentation>
@ -7,7 +7,7 @@ CycloneDDS configuration</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" ref="Domain"/>
<xs:element minOccurs="0" ref="config:Domain"/>
</xs:sequence>
</xs:complexType>
</xs:element>
@ -18,15 +18,15 @@ CycloneDDS configuration</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" ref="Compatibility"/>
<xs:element minOccurs="0" ref="Discovery"/>
<xs:element minOccurs="0" ref="General"/>
<xs:element minOccurs="0" ref="Internal"/>
<xs:element minOccurs="0" ref="Partitioning"/>
<xs:element minOccurs="0" ref="SSL"/>
<xs:element minOccurs="0" ref="Sizing"/>
<xs:element minOccurs="0" ref="TCP"/>
<xs:element minOccurs="0" ref="ThreadPool"/>
<xs:element minOccurs="0" ref="config:Compatibility"/>
<xs:element minOccurs="0" ref="config:Discovery"/>
<xs:element minOccurs="0" ref="config:General"/>
<xs:element minOccurs="0" ref="config:Internal"/>
<xs:element minOccurs="0" ref="config:Partitioning"/>
<xs:element minOccurs="0" ref="config:SSL"/>
<xs:element minOccurs="0" ref="config:Sizing"/>
<xs:element minOccurs="0" ref="config:TCP"/>
<xs:element minOccurs="0" ref="config:ThreadPool"/>
<xs:element minOccurs="0" name="Threads">
<xs:annotation>
<xs:documentation>
@ -34,11 +34,11 @@ CycloneDDS configuration</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Thread"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="config:Thread"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" ref="Tracing"/>
<xs:element minOccurs="0" ref="config:Tracing"/>
</xs:all>
<xs:attribute name="Id">
<xs:annotation>
@ -57,10 +57,10 @@ to compatability with standards and with other DDSI implementations.&lt;/p&gt;</
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" ref="AssumeRtiHasPmdEndpoints"/>
<xs:element minOccurs="0" ref="ExplicitlyPublishQosSetToDefault"/>
<xs:element minOccurs="0" ref="ManySocketsMode"/>
<xs:element minOccurs="0" ref="StandardsConformance"/>
<xs:element minOccurs="0" ref="config:AssumeRtiHasPmdEndpoints"/>
<xs:element minOccurs="0" ref="config:ExplicitlyPublishQosSetToDefault"/>
<xs:element minOccurs="0" ref="config:ManySocketsMode"/>
<xs:element minOccurs="0" ref="config:StandardsConformance"/>
</xs:all>
</xs:complexType>
</xs:element>
@ -154,19 +154,21 @@ the discovery of peers.&lt;/p&gt;</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" ref="DSGracePeriod"/>
<xs:element minOccurs="0" ref="DefaultMulticastAddress"/>
<xs:element minOccurs="0" ref="EnableTopicDiscovery"/>
<xs:element minOccurs="0" ref="MaxAutoParticipantIndex"/>
<xs:element minOccurs="0" ref="ParticipantIndex"/>
<xs:element minOccurs="0" ref="Peers"/>
<xs:element minOccurs="0" ref="Ports"/>
<xs:element minOccurs="0" ref="SPDPInterval"/>
<xs:element minOccurs="0" ref="SPDPMulticastAddress"/>
<xs:element minOccurs="0" ref="config:DSGracePeriod"/>
<xs:element minOccurs="0" ref="config:DefaultMulticastAddress"/>
<xs:element minOccurs="0" ref="config:EnableTopicDiscovery"/>
<xs:element minOccurs="0" ref="config:ExternalDomainId"/>
<xs:element minOccurs="0" ref="config:MaxAutoParticipantIndex"/>
<xs:element minOccurs="0" ref="config:ParticipantIndex"/>
<xs:element minOccurs="0" ref="config:Peers"/>
<xs:element minOccurs="0" ref="config:Ports"/>
<xs:element minOccurs="0" ref="config:SPDPInterval"/>
<xs:element minOccurs="0" ref="config:SPDPMulticastAddress"/>
<xs:element minOccurs="0" ref="config:Tag"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="DSGracePeriod" type="duration_inf">
<xs:element name="DSGracePeriod" type="config:duration_inf">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This setting controls for how long endpoints discovered via a Cloud
@ -194,6 +196,16 @@ Discovery/SPDPMulticastAddress.&lt;/p&gt;&lt;p&gt;The default value is:
&lt;p&gt;Do not use.&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;true&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ExternalDomainId" type="xs:string">
<xs:annotation>
<xs:documentation>
&lt;p&gt;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.&lt;/p&gt;&lt;p&gt;The
default value is: &amp;quot;default&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MaxAutoParticipantIndex" type="xs:integer">
<xs:annotation>
<xs:documentation>
@ -238,8 +250,8 @@ second be option be used.&lt;/p&gt;&lt;p&gt;The default value is:
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Group"/>
<xs:element ref="Peer"/>
<xs:element ref="config:Group"/>
<xs:element ref="config:Peer"/>
</xs:choice>
</xs:complexType>
</xs:element>
@ -252,7 +264,7 @@ succeeds.&lt;/p&gt;</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Peer"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="config:Peer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
@ -284,13 +296,13 @@ by the DDSI 2.1 specification and rarely need to be changed.&lt;/p&gt;</xs:docum
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" ref="Base"/>
<xs:element minOccurs="0" ref="DomainGain"/>
<xs:element minOccurs="0" ref="MulticastDataOffset"/>
<xs:element minOccurs="0" ref="MulticastMetaOffset"/>
<xs:element minOccurs="0" ref="ParticipantGain"/>
<xs:element minOccurs="0" ref="UnicastDataOffset"/>
<xs:element minOccurs="0" ref="UnicastMetaOffset"/>
<xs:element minOccurs="0" ref="config:Base"/>
<xs:element minOccurs="0" ref="config:DomainGain"/>
<xs:element minOccurs="0" ref="config:MulticastDataOffset"/>
<xs:element minOccurs="0" ref="config:MulticastMetaOffset"/>
<xs:element minOccurs="0" ref="config:ParticipantGain"/>
<xs:element minOccurs="0" ref="config:UnicastDataOffset"/>
<xs:element minOccurs="0" ref="config:UnicastMetaOffset"/>
</xs:all>
</xs:complexType>
</xs:element>
@ -313,7 +325,7 @@ constant DG).&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;250&amp;quot;.&l
<xs:element name="MulticastDataOffset" type="xs:integer">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This element specifies the port number for multicast meta traffic
&lt;p&gt;This element specifies the port number for multicast data traffic
(refer to the DDSI 2.1 specification, section 9.6.1, constant
d2).&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;1&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
@ -338,7 +350,7 @@ section 9.6.1, constant PG).&lt;/p&gt;&lt;p&gt;The default value is:
<xs:element name="UnicastDataOffset" type="xs:integer">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This element specifies the port number for unicast meta traffic (refer
&lt;p&gt;This element specifies the port number for unicast data traffic (refer
to the DDSI 2.1 specification, section 9.6.1, constant d3).&lt;/p&gt;&lt;p&gt;The
default value is: &amp;quot;11&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
@ -351,7 +363,7 @@ to the DDSI 2.1 specification, section 9.6.1, constant d1).&lt;/p&gt;&lt;p&gt;Th
default value is: &amp;quot;10&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SPDPInterval" type="duration">
<xs:element name="SPDPInterval" type="config:duration">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This element specifies the interval between spontaneous transmissions
@ -371,6 +383,13 @@ ff02::ffff:239.255.0.1, which is a non-standardised link-local multicast
address.&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;239.255.0.1&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Tag" type="xs:string">
<xs:annotation>
<xs:documentation>
&lt;p&gt;String extension for domain id that remote participants must match to
be discovered.&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="General">
<xs:annotation>
<xs:documentation>
@ -379,19 +398,19 @@ settings.&lt;/p&gt;</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" ref="AllowMulticast"/>
<xs:element minOccurs="0" ref="DontRoute"/>
<xs:element minOccurs="0" ref="EnableMulticastLoopback"/>
<xs:element minOccurs="0" ref="ExternalNetworkAddress"/>
<xs:element minOccurs="0" ref="ExternalNetworkMask"/>
<xs:element minOccurs="0" ref="FragmentSize"/>
<xs:element minOccurs="0" ref="MaxMessageSize"/>
<xs:element minOccurs="0" ref="MulticastRecvNetworkInterfaceAddresses"/>
<xs:element minOccurs="0" ref="MulticastTimeToLive"/>
<xs:element minOccurs="0" ref="NetworkInterfaceAddress"/>
<xs:element minOccurs="0" ref="PreferMulticast"/>
<xs:element minOccurs="0" ref="Transport"/>
<xs:element minOccurs="0" ref="UseIPv6"/>
<xs:element minOccurs="0" ref="config:AllowMulticast"/>
<xs:element minOccurs="0" ref="config:DontRoute"/>
<xs:element minOccurs="0" ref="config:EnableMulticastLoopback"/>
<xs:element minOccurs="0" ref="config:ExternalNetworkAddress"/>
<xs:element minOccurs="0" ref="config:ExternalNetworkMask"/>
<xs:element minOccurs="0" ref="config:FragmentSize"/>
<xs:element minOccurs="0" ref="config:MaxMessageSize"/>
<xs:element minOccurs="0" ref="config:MulticastRecvNetworkInterfaceAddresses"/>
<xs:element minOccurs="0" ref="config:MulticastTimeToLive"/>
<xs:element minOccurs="0" ref="config:NetworkInterfaceAddress"/>
<xs:element minOccurs="0" ref="config:PreferMulticast"/>
<xs:element minOccurs="0" ref="config:Transport"/>
<xs:element minOccurs="0" ref="config:UseIPv6"/>
</xs:all>
</xs:complexType>
</xs:element>
@ -477,7 +496,7 @@ address. This option is IPv4-only.&lt;/p&gt;&lt;p&gt;The default value is:
&amp;quot;0.0.0.0&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="FragmentSize" type="memsize">
<xs:element name="FragmentSize" type="config:memsize">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This element specifies the size of DDSI sample fragments generated by
@ -493,7 +512,7 @@ of which the size is at least the minimum of 1025 and FragmentSize.&lt;/p&gt;
B&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MaxMessageSize" type="memsize">
<xs:element name="MaxMessageSize" type="config:memsize">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This element specifies the maximum size of the UDP payload that
@ -616,51 +635,51 @@ reserved. This includes renaming or moving options.&lt;/p&gt;</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" ref="AccelerateRexmitBlockSize"/>
<xs:element minOccurs="0" ref="AssumeMulticastCapable"/>
<xs:element minOccurs="0" ref="AutoReschedNackDelay"/>
<xs:element minOccurs="0" ref="BuiltinEndpointSet"/>
<xs:element minOccurs="0" ref="ControlTopic"/>
<xs:element minOccurs="0" ref="DDSI2DirectMaxThreads"/>
<xs:element minOccurs="0" ref="DefragReliableMaxSamples"/>
<xs:element minOccurs="0" ref="DefragUnreliableMaxSamples"/>
<xs:element minOccurs="0" ref="DeliveryQueueMaxSamples"/>
<xs:element minOccurs="0" ref="EnableExpensiveChecks"/>
<xs:element minOccurs="0" ref="GenerateKeyhash"/>
<xs:element minOccurs="0" ref="HeartbeatInterval"/>
<xs:element minOccurs="0" ref="LateAckMode"/>
<xs:element minOccurs="0" ref="LeaseDuration"/>
<xs:element minOccurs="0" ref="LivelinessMonitoring"/>
<xs:element minOccurs="0" ref="MaxParticipants"/>
<xs:element minOccurs="0" ref="MaxQueuedRexmitBytes"/>
<xs:element minOccurs="0" ref="MaxQueuedRexmitMessages"/>
<xs:element minOccurs="0" ref="MaxSampleSize"/>
<xs:element minOccurs="0" ref="MeasureHbToAckLatency"/>
<xs:element minOccurs="0" ref="MinimumSocketReceiveBufferSize"/>
<xs:element minOccurs="0" ref="MinimumSocketSendBufferSize"/>
<xs:element minOccurs="0" ref="MonitorPort"/>
<xs:element minOccurs="0" ref="MultipleReceiveThreads"/>
<xs:element minOccurs="0" ref="NackDelay"/>
<xs:element minOccurs="0" ref="PreEmptiveAckDelay"/>
<xs:element minOccurs="0" ref="PrimaryReorderMaxSamples"/>
<xs:element minOccurs="0" ref="PrioritizeRetransmit"/>
<xs:element minOccurs="0" ref="RediscoveryBlacklistDuration"/>
<xs:element minOccurs="0" ref="RetransmitMerging"/>
<xs:element minOccurs="0" ref="RetransmitMergingPeriod"/>
<xs:element minOccurs="0" ref="RetryOnRejectBestEffort"/>
<xs:element minOccurs="0" ref="SPDPResponseMaxDelay"/>
<xs:element minOccurs="0" ref="ScheduleTimeRounding"/>
<xs:element minOccurs="0" ref="SecondaryReorderMaxSamples"/>
<xs:element minOccurs="0" ref="SendAsync"/>
<xs:element minOccurs="0" ref="SquashParticipants"/>
<xs:element minOccurs="0" ref="SynchronousDeliveryLatencyBound"/>
<xs:element minOccurs="0" ref="SynchronousDeliveryPriorityThreshold"/>
<xs:element minOccurs="0" ref="Test"/>
<xs:element minOccurs="0" ref="UnicastResponseToSPDPMessages"/>
<xs:element minOccurs="0" ref="UseMulticastIfMreqn"/>
<xs:element minOccurs="0" ref="Watermarks"/>
<xs:element minOccurs="0" ref="WriteBatch"/>
<xs:element minOccurs="0" ref="WriterLingerDuration"/>
<xs:element minOccurs="0" ref="config:AccelerateRexmitBlockSize"/>
<xs:element minOccurs="0" ref="config:AssumeMulticastCapable"/>
<xs:element minOccurs="0" ref="config:AutoReschedNackDelay"/>
<xs:element minOccurs="0" ref="config:BuiltinEndpointSet"/>
<xs:element minOccurs="0" ref="config:ControlTopic"/>
<xs:element minOccurs="0" ref="config:DDSI2DirectMaxThreads"/>
<xs:element minOccurs="0" ref="config:DefragReliableMaxSamples"/>
<xs:element minOccurs="0" ref="config:DefragUnreliableMaxSamples"/>
<xs:element minOccurs="0" ref="config:DeliveryQueueMaxSamples"/>
<xs:element minOccurs="0" ref="config:EnableExpensiveChecks"/>
<xs:element minOccurs="0" ref="config:GenerateKeyhash"/>
<xs:element minOccurs="0" ref="config:HeartbeatInterval"/>
<xs:element minOccurs="0" ref="config:LateAckMode"/>
<xs:element minOccurs="0" ref="config:LeaseDuration"/>
<xs:element minOccurs="0" ref="config:LivelinessMonitoring"/>
<xs:element minOccurs="0" ref="config:MaxParticipants"/>
<xs:element minOccurs="0" ref="config:MaxQueuedRexmitBytes"/>
<xs:element minOccurs="0" ref="config:MaxQueuedRexmitMessages"/>
<xs:element minOccurs="0" ref="config:MaxSampleSize"/>
<xs:element minOccurs="0" ref="config:MeasureHbToAckLatency"/>
<xs:element minOccurs="0" ref="config:MinimumSocketReceiveBufferSize"/>
<xs:element minOccurs="0" ref="config:MinimumSocketSendBufferSize"/>
<xs:element minOccurs="0" ref="config:MonitorPort"/>
<xs:element minOccurs="0" ref="config:MultipleReceiveThreads"/>
<xs:element minOccurs="0" ref="config:NackDelay"/>
<xs:element minOccurs="0" ref="config:PreEmptiveAckDelay"/>
<xs:element minOccurs="0" ref="config:PrimaryReorderMaxSamples"/>
<xs:element minOccurs="0" ref="config:PrioritizeRetransmit"/>
<xs:element minOccurs="0" ref="config:RediscoveryBlacklistDuration"/>
<xs:element minOccurs="0" ref="config:RetransmitMerging"/>
<xs:element minOccurs="0" ref="config:RetransmitMergingPeriod"/>
<xs:element minOccurs="0" ref="config:RetryOnRejectBestEffort"/>
<xs:element minOccurs="0" ref="config:SPDPResponseMaxDelay"/>
<xs:element minOccurs="0" ref="config:ScheduleTimeRounding"/>
<xs:element minOccurs="0" ref="config:SecondaryReorderMaxSamples"/>
<xs:element minOccurs="0" ref="config:SendAsync"/>
<xs:element minOccurs="0" ref="config:SquashParticipants"/>
<xs:element minOccurs="0" ref="config:SynchronousDeliveryLatencyBound"/>
<xs:element minOccurs="0" ref="config:SynchronousDeliveryPriorityThreshold"/>
<xs:element minOccurs="0" ref="config:Test"/>
<xs:element minOccurs="0" ref="config:UnicastResponseToSPDPMessages"/>
<xs:element minOccurs="0" ref="config:UseMulticastIfMreqn"/>
<xs:element minOccurs="0" ref="config:Watermarks"/>
<xs:element minOccurs="0" ref="config:WriteBatch"/>
<xs:element minOccurs="0" ref="config:WriterLingerDuration"/>
</xs:all>
</xs:complexType>
</xs:element>
@ -684,7 +703,7 @@ wildcards) against which the interface names are matched.&lt;/p&gt;&lt;p&gt;The
default value is: &amp;quot;&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="AutoReschedNackDelay" type="duration_inf">
<xs:element name="AutoReschedNackDelay" type="config:duration_inf">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This setting controls the interval with which a reader will continue
@ -794,7 +813,7 @@ checks.&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;&amp;quot;.&lt;/p&gt;<
keys.&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;false&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="HeartbeatInterval" type="duration_inf">
<xs:element name="HeartbeatInterval">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This elemnents allows configuring the base interval for sending writer
@ -804,6 +823,45 @@ heartbeats and the bounds within it can vary.&lt;/p&gt;
'inf' for infinity. Recognised units: ns, us, ms, s, min, hr,
day.&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;100 ms&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="config:duration_inf">
<xs:attribute name="max" type="config:duration_inf">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This attribute sets the maximum interval for periodic heartbeats.&lt;/p&gt;
&lt;p&gt;Valid values are finite durations with an explicit unit or the keyword
'inf' for infinity. Recognised units: ns, us, ms, s, min, hr,
day.&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;8 s&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="min" type="config:duration_inf">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This attribute sets the minimum interval that must have passed since
the most recent heartbeat from a writer, before another asynchronous (not
directly related to writing) will be sent.&lt;/p&gt;
&lt;p&gt;Valid values are finite durations with an explicit unit or the keyword
'inf' for infinity. Recognised units: ns, us, ms, s, min, hr,
day.&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;5 ms&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="minsched" type="config:duration_inf">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This attribute sets the minimum interval for periodic heartbeats.
Other events may still cause heartbeats to go out.&lt;/p&gt;
&lt;p&gt;Valid values are finite durations with an explicit unit or the keyword
'inf' for infinity. Recognised units: ns, us, ms, s, min, hr,
day.&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;20 ms&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="LateAckMode" type="xs:boolean">
<xs:annotation>
@ -813,7 +871,7 @@ committed to delivering it.&lt;/p&gt;&lt;p&gt;The default value is:
&amp;quot;false&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="LeaseDuration" type="duration">
<xs:element name="LeaseDuration" type="config:duration">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This setting controls the default participant lease duration. &lt;p&gt;
@ -822,7 +880,7 @@ committed to delivering it.&lt;/p&gt;&lt;p&gt;The default value is:
s, min, hr, day.&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;10 s&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="LivelinessMonitoring" type="xs:boolean">
<xs:element name="LivelinessMonitoring">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This element controls whether or not implementation should internally
@ -831,6 +889,30 @@ traces can be dumped automatically when some thread appears to have
stopped making progress.&lt;/p&gt;&lt;p&gt;The default value is:
&amp;quot;false&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:boolean">
<xs:attribute name="Interval" type="config:duration">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This element controls the interval at which to check whether threads
have been making progress.&lt;/p&gt;
&lt;p&gt;The unit must be specified explicitly. Recognised units: ns, us, ms,
s, min, hr, day.&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;1s&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="StackTraces" type="xs:boolean">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This element controls whether or not to write stack traces to the
Cyclone DDS trace when a thread fails to make progress (on select
platforms only).&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;true&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="MaxParticipants" type="xs:integer">
<xs:annotation>
@ -840,7 +922,7 @@ participants this Cyclone DDS instance is willing to service. 0 is
unlimited.&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;0&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MaxQueuedRexmitBytes" type="memsize">
<xs:element name="MaxQueuedRexmitBytes" type="config:memsize">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This setting limits the maximum number of bytes queued for
@ -862,7 +944,7 @@ kB&amp;quot;.&lt;/p&gt;</xs:documentation>
retransmission.&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;200&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MaxSampleSize" type="memsize">
<xs:element name="MaxSampleSize" type="config:memsize">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This setting controls the maximum (CDR) serialised size of samples
@ -885,7 +967,7 @@ measured latencies are quite noisy and are currently not used
anywhere.&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;false&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MinimumSocketReceiveBufferSize" type="memsize">
<xs:element name="MinimumSocketReceiveBufferSize" type="config:memsize">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This setting controls the minimum size of socket receive buffers. The
@ -904,7 +986,7 @@ a smaller buffer should that attempt fail.&lt;/p&gt;
&amp;quot;default&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MinimumSocketSendBufferSize" type="memsize">
<xs:element name="MinimumSocketSendBufferSize" type="config:memsize">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This setting controls the minimum size of socket send buffers. This
@ -927,7 +1009,7 @@ positive number is used as the TCP port number.&lt;/p&gt;&lt;p&gt;The default va
is: &amp;quot;-1&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MultipleReceiveThreads" type="xs:boolean">
<xs:element name="MultipleReceiveThreads">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This element controls whether all traffic is handled by a single
@ -936,8 +1018,25 @@ latency. Currently multiple receive threads are only used for
connectionless transport (e.g., UDP) and ManySocketsMode not set to
single (the default).&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;true&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:boolean">
<xs:attribute name="maxretries" type="xs:integer">
<xs:annotation>
<xs:documentation>
&lt;p&gt;Receive threads dedicated to a single socket can only be triggered for
termination by sending a packet. Reception of any packet will do, so
termination failure due to packet loss is exceedingly unlikely, but to
eliminate all risks, it will retry as many times as specified by this
attribute before aborting.&lt;/p&gt;&lt;p&gt;The default value is:
&amp;quot;4294967295&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="NackDelay" type="duration">
<xs:element name="NackDelay" type="config:duration">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This setting controls the delay between receipt of a HEARTBEAT
@ -950,7 +1049,7 @@ that NACK will incorporate the latest information.&lt;/p&gt;
s, min, hr, day.&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;10 ms&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PreEmptiveAckDelay" type="duration">
<xs:element name="PreEmptiveAckDelay" type="config:duration">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This setting controls the delay between the discovering a remote
@ -980,7 +1079,7 @@ data, speeding up recovery.&lt;/p&gt;&lt;p&gt;The default value is:
&amp;quot;true&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="RediscoveryBlacklistDuration" type="duration_inf">
<xs:element name="RediscoveryBlacklistDuration">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This element controls for how long a remote participant that was
@ -997,6 +1096,23 @@ is therefore recommended to set it to at least several seconds.&lt;/p&gt;
'inf' for infinity. Recognised units: ns, us, ms, s, min, hr,
day.&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;10s&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="config:duration_inf">
<xs:attribute name="enforce" type="xs:boolean">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This attribute controls whether the configured time during which
recently deleted participants will not be rediscovered (i.e., "black
listed") is enforced and following complete removal of the participant in
Cyclone DDS, or whether it can be rediscovered earlier provided all
traces of that participant have been removed already.&lt;/p&gt;&lt;p&gt;The default
value is: &amp;quot;false&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="RetransmitMerging">
<xs:annotation>
@ -1025,7 +1141,7 @@ Internal/RetransmitMergingPeriod.&lt;/p&gt;&lt;p&gt;The default value is:
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="RetransmitMergingPeriod" type="duration">
<xs:element name="RetransmitMergingPeriod" type="config:duration">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This setting determines the size of the time window in which a NACK of
@ -1047,7 +1163,7 @@ into the reader caches when resource limits are reached.&lt;/p&gt;&lt;p&gt;The
default value is: &amp;quot;false&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SPDPResponseMaxDelay" type="duration">
<xs:element name="SPDPResponseMaxDelay" type="config:duration">
<xs:annotation>
<xs:documentation>
&lt;p&gt;Maximum pseudo-random delay in milliseconds between discovering a
@ -1057,7 +1173,7 @@ remote participant and responding to it.&lt;/p&gt;
s, min, hr, day.&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;0 ms&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ScheduleTimeRounding" type="duration">
<xs:element name="ScheduleTimeRounding" type="config:duration">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This setting allows the timing of scheduled events to be rounded up so
@ -1099,7 +1215,7 @@ by setting Internal/BuiltinEndpointSet to "minimal" but with less loss of
information).&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;false&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SynchronousDeliveryLatencyBound" type="duration_inf">
<xs:element name="SynchronousDeliveryLatencyBound" type="config:duration_inf">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This element controls whether samples sent by a writer with QoS
@ -1133,7 +1249,7 @@ the expense of aggregate bandwidth.&lt;/p&gt;&lt;p&gt;The default value is:
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" ref="XmitLossiness"/>
<xs:element minOccurs="0" ref="config:XmitLossiness"/>
</xs:sequence>
</xs:complexType>
</xs:element>
@ -1167,10 +1283,10 @@ to &lt;i&gt;false&lt;/i&gt;.&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;t
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" ref="WhcAdaptive"/>
<xs:element minOccurs="0" ref="WhcHigh"/>
<xs:element minOccurs="0" ref="WhcHighInit"/>
<xs:element minOccurs="0" ref="WhcLow"/>
<xs:element minOccurs="0" ref="config:WhcAdaptive"/>
<xs:element minOccurs="0" ref="config:WhcHigh"/>
<xs:element minOccurs="0" ref="config:WhcHighInit"/>
<xs:element minOccurs="0" ref="config:WhcLow"/>
</xs:all>
</xs:complexType>
</xs:element>
@ -1182,7 +1298,7 @@ mark to current traffic conditions, based on retransmit requests and
transmit pressure.&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;true&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="WhcHigh" type="memsize">
<xs:element name="WhcHigh" type="config:memsize">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This element sets the maximum allowed high-water mark for the Cyclone
@ -1195,7 +1311,7 @@ this size.&lt;/p&gt;
kB&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="WhcHighInit" type="memsize">
<xs:element name="WhcHighInit" type="config:memsize">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This element sets the initial level of the high-water mark for the
@ -1207,7 +1323,7 @@ Cyclone DDS WHCs, expressed in bytes.&lt;/p&gt;
kB&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="WhcLow" type="memsize">
<xs:element name="WhcLow" type="config:memsize">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This element sets the low-water mark for the Cyclone DDS WHCs,
@ -1233,7 +1349,7 @@ dds_write_flush function to ensure thta all samples are
written.&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;false&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="WriterLingerDuration" type="duration">
<xs:element name="WriterLingerDuration" type="config:duration">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This setting controls the maximum duration for which actual deletion
@ -1253,9 +1369,9 @@ partitions.&lt;/p&gt;</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="IgnoredPartitions"/>
<xs:element ref="NetworkPartitions"/>
<xs:element ref="PartitionMappings"/>
<xs:element ref="config:IgnoredPartitions"/>
<xs:element ref="config:NetworkPartitions"/>
<xs:element ref="config:PartitionMappings"/>
</xs:choice>
</xs:complexType>
</xs:element>
@ -1267,7 +1383,7 @@ combinations that are not distributed over the network.&lt;/p&gt;</xs:documentat
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="IgnoredPartition"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="config:IgnoredPartition"/>
</xs:sequence>
</xs:complexType>
</xs:element>
@ -1302,7 +1418,7 @@ partitions.&lt;/p&gt;</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="NetworkPartition"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="config:NetworkPartition"/>
</xs:sequence>
</xs:complexType>
</xs:element>
@ -1347,7 +1463,7 @@ partition/topic combinations to Cyclone DDS network partitions.&lt;/p&gt;</xs:do
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="PartitionMapping"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="config:PartitionMapping"/>
</xs:sequence>
</xs:complexType>
</xs:element>
@ -1390,8 +1506,8 @@ SSL/TLS for DDSI over TCP.&lt;/p&gt;</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" ref="CertificateVerification"/>
<xs:element minOccurs="0" ref="Ciphers"/>
<xs:element minOccurs="0" ref="config:CertificateVerification"/>
<xs:element minOccurs="0" ref="config:Ciphers"/>
<xs:element minOccurs="0" name="Enable" type="xs:boolean">
<xs:annotation>
<xs:documentation>
@ -1399,12 +1515,12 @@ SSL/TLS for DDSI over TCP.&lt;/p&gt;</xs:documentation>
&amp;quot;false&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" ref="EntropyFile"/>
<xs:element minOccurs="0" ref="KeyPassphrase"/>
<xs:element minOccurs="0" ref="KeystoreFile"/>
<xs:element minOccurs="0" ref="MinimumTLSVersion"/>
<xs:element minOccurs="0" ref="SelfSignedCertificates"/>
<xs:element minOccurs="0" ref="VerifyClient"/>
<xs:element minOccurs="0" ref="config:EntropyFile"/>
<xs:element minOccurs="0" ref="config:KeyPassphrase"/>
<xs:element minOccurs="0" ref="config:KeystoreFile"/>
<xs:element minOccurs="0" ref="config:MinimumTLSVersion"/>
<xs:element minOccurs="0" ref="config:SelfSignedCertificates"/>
<xs:element minOccurs="0" ref="config:VerifyClient"/>
</xs:all>
</xs:complexType>
</xs:element>
@ -1473,12 +1589,12 @@ dealing with expected system sizes, buffer sizes, &amp;c.&lt;/p&gt;</xs:document
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" ref="ReceiveBufferChunkSize"/>
<xs:element minOccurs="0" ref="ReceiveBufferSize"/>
<xs:element minOccurs="0" ref="config:ReceiveBufferChunkSize"/>
<xs:element minOccurs="0" ref="config:ReceiveBufferSize"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="ReceiveBufferChunkSize" type="memsize">
<xs:element name="ReceiveBufferChunkSize" type="config:memsize">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This element specifies the size of one allocation unit in the receive
@ -1492,7 +1608,7 @@ after processing a message, or freed straightaway.&lt;/p&gt;
KiB&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ReceiveBufferSize" type="memsize">
<xs:element name="ReceiveBufferSize" type="config:memsize">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This element sets the size of a single receive buffer. Many receive
@ -1514,7 +1630,7 @@ running DDSI over TCP.&lt;/p&gt;</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" ref="AlwaysUsePeeraddrForUnicast"/>
<xs:element minOccurs="0" ref="config:AlwaysUsePeeraddrForUnicast"/>
<xs:element minOccurs="0" name="Enable">
<xs:annotation>
<xs:documentation>
@ -1530,10 +1646,10 @@ General/Transport instead.&lt;/p&gt;&lt;p&gt;The default value is:
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element minOccurs="0" ref="NoDelay"/>
<xs:element minOccurs="0" ref="Port"/>
<xs:element minOccurs="0" ref="ReadTimeout"/>
<xs:element minOccurs="0" ref="WriteTimeout"/>
<xs:element minOccurs="0" ref="config:NoDelay"/>
<xs:element minOccurs="0" ref="config:Port"/>
<xs:element minOccurs="0" ref="config:ReadTimeout"/>
<xs:element minOccurs="0" ref="config:WriteTimeout"/>
</xs:all>
</xs:complexType>
</xs:element>
@ -1567,7 +1683,7 @@ by establishing connections to other services.&lt;/p&gt;&lt;p&gt;The default val
is: &amp;quot;-1&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ReadTimeout" type="duration">
<xs:element name="ReadTimeout" type="config:duration">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This element specifies the timeout for blocking TCP read operations.
@ -1577,7 +1693,7 @@ If this timeout expires then the connection is closed.&lt;/p&gt;
s, min, hr, day.&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;2 s&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="WriteTimeout" type="duration">
<xs:element name="WriteTimeout" type="config:duration">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This element specifies the timeout for blocking TCP write operations.
@ -1603,7 +1719,7 @@ using a thread pool to send DDSI messages to multiple unicast addresses
is: &amp;quot;false&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" ref="ThreadMax"/>
<xs:element minOccurs="0" ref="config:ThreadMax"/>
<xs:element minOccurs="0" name="Threads" type="xs:integer">
<xs:annotation>
<xs:documentation>
@ -1628,8 +1744,8 @@ pool.&lt;/p&gt;&lt;p&gt;The default value is: &amp;quot;8&amp;quot;.&lt;/p&gt;</
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" ref="Scheduling"/>
<xs:element minOccurs="0" ref="StackSize"/>
<xs:element minOccurs="0" ref="config:Scheduling"/>
<xs:element minOccurs="0" ref="config:StackSize"/>
</xs:all>
<xs:attribute name="Name" use="required">
<xs:annotation>
@ -1667,8 +1783,8 @@ discovery;&lt;/li&gt;
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" ref="Class"/>
<xs:element minOccurs="0" ref="Priority"/>
<xs:element minOccurs="0" ref="config:Class"/>
<xs:element minOccurs="0" ref="config:Priority"/>
</xs:all>
</xs:complexType>
</xs:element>
@ -1700,7 +1816,7 @@ assign some of the privileged priorities.&lt;/p&gt;&lt;p&gt;The default value is
&amp;quot;default&amp;quot;.&lt;/p&gt;</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="StackSize" type="memsize">
<xs:element name="StackSize" type="config:memsize">
<xs:annotation>
<xs:documentation>
&lt;p&gt;This element configures the stack size for this thread. The default
@ -1722,11 +1838,11 @@ track the DDSI service during application development.&lt;/p&gt;</xs:documentati
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" ref="AppendToFile"/>
<xs:element minOccurs="0" ref="Category"/>
<xs:element minOccurs="0" ref="OutputFile"/>
<xs:element minOccurs="0" ref="PacketCaptureFile"/>
<xs:element minOccurs="0" ref="Verbosity"/>
<xs:element minOccurs="0" ref="config:AppendToFile"/>
<xs:element minOccurs="0" ref="config:Category"/>
<xs:element minOccurs="0" ref="config:OutputFile"/>
<xs:element minOccurs="0" ref="config:PacketCaptureFile"/>
<xs:element minOccurs="0" ref="config:Verbosity"/>
</xs:all>
</xs:complexType>
</xs:element>