1791 lines
76 KiB
Text
1791 lines
76 KiB
Text
default namespace = "https://cdds.io/config"
|
|
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
|
|
grammar {
|
|
start =
|
|
[ a:documentation [ xml:lang="en" """
|
|
CycloneDDS configuration""" ] ]
|
|
element CycloneDDS {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>The General element specifying Domain related settings.</p>""" ] ]
|
|
element Domain {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>Domain id this configuration applies to, or "any" if it applies to all
|
|
domain ids.</p><p>The default value is: "any".</p>""" ] ]
|
|
attribute Id {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>The Compatibility elements allows specifying various settings related
|
|
to compatability with standards and with other DDSI implementations.</p>""" ] ]
|
|
element Compatibility {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This option assumes ParticipantMessageData endpoints required by the
|
|
liveliness protocol are present in RTI participants even when not
|
|
properly advertised by the participant discovery protocol.</p><p>The
|
|
default value is: "false".</p>""" ] ]
|
|
element AssumeRtiHasPmdEndpoints {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies whether QoS settings set to default values are
|
|
explicitly published in the discovery protocol. Implementations are to
|
|
use the default value for QoS settings not published, which allows a
|
|
significant reduction of the amount of data that needs to be exchanged
|
|
for the discovery protocol, but this requires all implementations to
|
|
adhere to the default values specified by the specifications.</p>
|
|
|
|
<p>When interoperability is required with an implementation that does not
|
|
follow the specifications in this regard, setting this option to true
|
|
will help.</p><p>The default value is: "false".</p>""" ] ]
|
|
element ExplicitlyPublishQosSetToDefault {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This option specifies whether a network socket will be created for
|
|
each domain participant on a host. The specification seems to assume that
|
|
each participant has a unique address, and setting this option will
|
|
ensure this to be the case. This is not the defeault.</p>
|
|
|
|
<p>Disabling it slightly improves performance and reduces network traffic
|
|
somewhat. It also causes the set of port numbers needed by Cyclone DDS to
|
|
become predictable, which may be useful for firewall and NAT
|
|
configuration.</p><p>The default value is: "single".</p>""" ] ]
|
|
element ManySocketsMode {
|
|
("false"|"true"|"single"|"none"|"many")
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element sets the level of standards conformance of this instance
|
|
of the Cyclone DDS Service. Stricter conformance typically means less
|
|
interoperability with other implementations. Currently three modes are
|
|
defined:</p>
|
|
|
|
<ul><li><i>pedantic</i>: very strictly conform to the specification,
|
|
ultimately for compliancy testing, but currently of little value because
|
|
it adheres even to what will most likely turn out to be editing errors in
|
|
the DDSI standard. Arguably, as long as no errata have been published it
|
|
is the current text that is in effect, and that is what pedantic
|
|
currently does.</li>
|
|
|
|
<li><i>strict</i>: a slightly less strict view of the standard than does
|
|
pedantic: it follows the established behaviour where the standard is
|
|
obviously in error.</li>
|
|
|
|
<li><i>lax</i>: attempt to provide the smoothest possible
|
|
interoperability, anticipating future revisions of elements in the
|
|
standard in areas that other implementations do not adhere to, even
|
|
though there is no good reason not to.</li></ul>
|
|
|
|
<p>The default setting is "lax".</p><p>The default value is:
|
|
"lax".</p>""" ] ]
|
|
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" """
|
|
<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><p>The
|
|
default value is: "".</p>""" ] ]
|
|
element Governance {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies the library to be loaded as the DDS Security
|
|
Access Control plugin.</p>""" ] ]
|
|
element Library {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This element names the finalization function of Access Control plugin.
|
|
This function is called to let the plugin release its
|
|
resources.</p><p>The default value is:
|
|
"finalize_access_control".</p>""" ] ]
|
|
attribute finalizeFunction {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<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><p>The default value
|
|
is: "init_access_control".</p>""" ] ]
|
|
attribute initFunction {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<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><p>The default value is:
|
|
"dds_security_ac".</p>""" ] ]
|
|
attribute path {
|
|
text
|
|
}?
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<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><p>The
|
|
default value is: "".</p>""" ] ]
|
|
element Permissions {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<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><p>The default value is:
|
|
"".</p>""" ] ]
|
|
element PermissionsCA {
|
|
text
|
|
}?
|
|
}?
|
|
& [ 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" """
|
|
<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 {
|
|
text
|
|
}
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<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 {
|
|
text
|
|
}
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>The authentication handshake tokens may contain optional fields to be
|
|
included for finding interoperability problems.
|
|
|
|
If this parameter is set to true the optional fields are included in the
|
|
handshake token exchange.</p><p>The default value is:
|
|
"false".</p>""" ] ]
|
|
element IncludeOptionalFields {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies the library to be loaded as the DDS Security
|
|
Access Control plugin.</p>""" ] ]
|
|
element Library {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This element names the finalization function of Authentication plugin.
|
|
This function is called to let the plugin release its
|
|
resources.</p><p>The default value is:
|
|
"finalize_authentication".</p>""" ] ]
|
|
attribute finalizeFunction {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<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><p>The default value
|
|
is: "init_authentication".</p>""" ] ]
|
|
attribute initFunction {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<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><p>The default value is:
|
|
"dds_security_auth".</p>""" ] ]
|
|
attribute path {
|
|
text
|
|
}?
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<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><p>The
|
|
default value is: "".</p>""" ] ]
|
|
element Password {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<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 {
|
|
text
|
|
}
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>Trusted CA Directory which contains trusted CA certificates as
|
|
separated files.</p><p>The default value is: "".</p>""" ] ]
|
|
element TrustedCADirectory {
|
|
text
|
|
}?
|
|
}?
|
|
& [ 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" """
|
|
<p>This element specifies the library to be loaded as the DDS Security
|
|
Cryptographic plugin.</p>""" ] ]
|
|
element Library {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This element names the finalization function of Cryptographic plugin.
|
|
This function is called to let the plugin release its
|
|
resources.</p><p>The default value is: "finalize_crypto".</p>""" ] ]
|
|
attribute finalizeFunction {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<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><p>The default value
|
|
is: "init_crypto".</p>""" ] ]
|
|
attribute initFunction {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<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><p>The default value is:
|
|
"dds_security_crypto".</p>""" ] ]
|
|
attribute path {
|
|
text
|
|
}?
|
|
}?
|
|
}?
|
|
}*
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>The Discovery element allows specifying various parameters related to
|
|
the discovery of peers.</p>""" ] ]
|
|
element Discovery {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This setting controls for how long endpoints discovered via a Cloud
|
|
discovery service will survive after the discovery service disappeared,
|
|
allowing reconnect without loss of data when the discovery service
|
|
restarts (or another instance takes over).</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: "30 s".</p>""" ] ]
|
|
element DSGracePeriod {
|
|
duration_inf
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies the default multicast address for all traffic
|
|
other than participant discovery packets. It defaults to
|
|
Discovery/SPDPMulticastAddress.</p><p>The default value is:
|
|
"auto".</p>""" ] ]
|
|
element DefaultMulticastAddress {
|
|
text
|
|
}?
|
|
& [ 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: "default".</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:
|
|
"9".</p>""" ] ]
|
|
element MaxAutoParticipantIndex {
|
|
xsd:integer
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies the DDSI participant index used by this
|
|
instance of the Cyclone DDS service for discovery purposes. Only one such
|
|
participant id is used, independent of the number of actual
|
|
DomainParticipants on the node. It is either:</p>
|
|
|
|
<ul><li><i>auto</i>: which will attempt to automatically determine an
|
|
available participant index (see also Discovery/MaxAutoParticipantIndex),
|
|
or</li>
|
|
|
|
<li>a non-negative integer less than 120, or</li>
|
|
|
|
<li><i>none</i>:, which causes it to use arbitrary port numbers for
|
|
unicast sockets which entirely removes the constraints on the participant
|
|
index but makes unicast discovery impossible.</li></ul>
|
|
|
|
<p>The default is <i>auto</i>. The participant index is part of the port
|
|
number calculation and if predictable port numbers are needed and fixing
|
|
the participant index has no adverse effects, it is recommended that the
|
|
second be option be used.</p><p>The default value is:
|
|
"none".</p>""" ] ]
|
|
element ParticipantIndex {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element statically configures addresses for discovery.</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>""" ] ]
|
|
element Peers {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This element statically configures a fault tolerant group of addresses
|
|
for discovery. Each member of the group is tried in sequence until one
|
|
succeeds.</p>""" ] ]
|
|
element Group {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This element statically configures an addresses for discovery.</p>""" ] ]
|
|
element Peer {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies an IP address to which discovery packets must
|
|
be sent, in addition to the default multicast address (see also
|
|
General/AllowMulticast). Both a hostnames and a numerical IP address is
|
|
accepted; the hostname or IP address may be suffixed with :PORT to
|
|
explicitly set the port to which it must be sent. Multiple Peers may be
|
|
specified.</p>""" ] ]
|
|
attribute Address {
|
|
text
|
|
}
|
|
}*
|
|
}*
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element statically configures an addresses for discovery.</p>""" ] ]
|
|
element Peer {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies an IP address to which discovery packets must
|
|
be sent, in addition to the default multicast address (see also
|
|
General/AllowMulticast). Both a hostnames and a numerical IP address is
|
|
accepted; the hostname or IP address may be suffixed with :PORT to
|
|
explicitly set the port to which it must be sent. Multiple Peers may be
|
|
specified.</p>""" ] ]
|
|
attribute Address {
|
|
text
|
|
}
|
|
}*
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>The Ports element allows specifying various parameters related to the
|
|
port numbers used for discovery. These all have default values specified
|
|
by the DDSI 2.1 specification and rarely need to be changed.</p>""" ] ]
|
|
element Ports {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies the base port number (refer to the DDSI 2.1
|
|
specification, section 9.6.1, constant PB).</p><p>The default value is:
|
|
"7400".</p>""" ] ]
|
|
element Base {
|
|
xsd:integer
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies the domain gain, relating domain ids to sets of
|
|
port numbers (refer to the DDSI 2.1 specification, section 9.6.1,
|
|
constant DG).</p><p>The default value is: "250".</p>""" ] ]
|
|
element DomainGain {
|
|
xsd:integer
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<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: "1".</p>""" ] ]
|
|
element MulticastDataOffset {
|
|
xsd:integer
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies the port number for multicast meta traffic
|
|
(refer to the DDSI 2.1 specification, section 9.6.1, constant
|
|
d0).</p><p>The default value is: "0".</p>""" ] ]
|
|
element MulticastMetaOffset {
|
|
xsd:integer
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies the participant gain, relating p0, articipant
|
|
index to sets of port numbers (refer to the DDSI 2.1 specification,
|
|
section 9.6.1, constant PG).</p><p>The default value is:
|
|
"2".</p>""" ] ]
|
|
element ParticipantGain {
|
|
xsd:integer
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<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: "11".</p>""" ] ]
|
|
element UnicastDataOffset {
|
|
xsd:integer
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies the port number for unicast meta traffic (refer
|
|
to the DDSI 2.1 specification, section 9.6.1, constant d1).</p><p>The
|
|
default value is: "10".</p>""" ] ]
|
|
element UnicastMetaOffset {
|
|
xsd:integer
|
|
}?
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies the interval between spontaneous transmissions
|
|
of participant discovery packets.</p>
|
|
|
|
<p>The unit must be specified explicitly. Recognised units: ns, us, ms,
|
|
s, min, hr, day.</p><p>The default value is: "30 s".</p>""" ] ]
|
|
element SPDPInterval {
|
|
duration
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies the multicast address that is used as the
|
|
destination for the participant discovery packets. In IPv4 mode the
|
|
default is the (standardised) 239.255.0.1, in IPv6 mode it becomes
|
|
ff02::ffff:239.255.0.1, which is a non-standardised link-local multicast
|
|
address.</p><p>The default value is: "239.255.0.1".</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: "".</p>""" ] ]
|
|
element Tag {
|
|
text
|
|
}?
|
|
}*
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>The General element specifies overall Cyclone DDS service
|
|
settings.</p>""" ] ]
|
|
element General {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This element controls whether Cyclone DDS uses multicasts for data
|
|
traffic.</p>
|
|
|
|
<p>It is a comma-separated list of some of the following keywords:
|
|
"spdp", "asm", "ssm", or either of "false" or "true", or "default".</p>
|
|
|
|
<ul>
|
|
|
|
<li><i>spdp</i>: enables the use of ASM (any-source multicast) for
|
|
participant discovery, joining the multicast group on the discovery
|
|
socket, transmitting SPDP messages to this group, but never advertising
|
|
nor using any multicast address in any discovery message, thus forcing
|
|
unicast communications for all endpoint discovery and user data.</li>
|
|
|
|
<li><i>asm</i>: enables the use of ASM for all traffic, including
|
|
receiving SPDP but not transmitting SPDP messages via multicast</li>
|
|
|
|
<li><i>ssm</i>: enables the use of SSM (source-specific multicast) for
|
|
all non-SPDP traffic (if supported)</li>
|
|
|
|
</ul>
|
|
|
|
<p>When set to "false" all multicasting is disabled. The default, "true"
|
|
enables full use of multicasts. Listening for multicasts can be
|
|
controlled by General/MulticastRecvNetworkInterfaceAddresses.</p>
|
|
|
|
<p>"default" maps on spdp if the network is a WiFi network, on true if it
|
|
is a wired network</p><p>The default value is: "default".</p>""" ] ]
|
|
element AllowMulticast {
|
|
xsd:token { pattern = "default|((false|spdp|asm|ssm|true)(,(false|spdp|asm|ssm|true))*)" }
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element allows setting the SO_DONTROUTE option for outgoing
|
|
packets, to bypass the local routing tables. This is generally useful
|
|
only when the routing tables cannot be trusted, which is highly
|
|
unusual.</p><p>The default value is: "false".</p>""" ] ]
|
|
element DontRoute {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies whether Cyclone DDS allows IP multicast packets
|
|
to be visible to all DDSI participants in the same node, including
|
|
itself. It must be "true" for intra-node multicast communications, but if
|
|
a node runs only a single Cyclone DDS service and does not host any other
|
|
DDSI-capable programs, it should be set to "false" for improved
|
|
performance.</p><p>The default value is: "true".</p>""" ] ]
|
|
element EnableMulticastLoopback {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element allows explicitly overruling the network address Cyclone
|
|
DDS advertises in the discovery protocol, which by default is the address
|
|
of the preferred network interface (General/NetworkInterfaceAddress), to
|
|
allow Cyclone DDS to communicate across a Network Address Translation
|
|
(NAT) device.</p><p>The default value is: "auto".</p>""" ] ]
|
|
element ExternalNetworkAddress {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies the network mask of the external network
|
|
address. This element is relevant only when an external network address
|
|
(General/ExternalNetworkAddress) is explicitly configured. In this case
|
|
locators received via the discovery protocol that are within the same
|
|
external subnet (as defined by this mask) will be translated to an
|
|
internal address by replacing the network portion of the external address
|
|
with the corresponding portion of the preferred network interface
|
|
address. This option is IPv4-only.</p><p>The default value is:
|
|
"0.0.0.0".</p>""" ] ]
|
|
element ExternalNetworkMask {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies the size of DDSI sample fragments generated by
|
|
Cyclone DDS. Samples larger than FragmentSize are fragmented into
|
|
fragments of FragmentSize bytes each, except the last one, which may be
|
|
smaller. The DDSI spec mandates a minimum fragment size of 1025 bytes,
|
|
but Cyclone DDS will do whatever size is requested, accepting fragments
|
|
of which the size is at least the minimum of 1025 and FragmentSize.</p>
|
|
|
|
<p>The unit must be specified explicitly. Recognised units: B (bytes), kB
|
|
& KiB (2<sup>10</sup> bytes), MB & MiB (2<sup>20</sup> bytes), GB & GiB
|
|
(2<sup>30</sup> bytes).</p><p>The default value is: "1280
|
|
B".</p>""" ] ]
|
|
element FragmentSize {
|
|
memsize
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies the maximum size of the UDP payload that
|
|
Cyclone DDS will generate. Cyclone DDS will try to maintain this limit
|
|
within the bounds of the DDSI specification, which means that in some
|
|
cases (especially for very low values of MaxMessageSize) larger payloads
|
|
may sporadically be observed (currently up to 1192 B).</p>
|
|
|
|
<p>On some networks it may be necessary to set this item to keep the
|
|
packetsize below the MTU to prevent IP fragmentation. In those cases, it
|
|
is generally advisable to also consider reducing
|
|
Internal/FragmentSize.</p>
|
|
|
|
<p>The unit must be specified explicitly. Recognised units: B (bytes), kB
|
|
& KiB (2<sup>10</sup> bytes), MB & MiB (2<sup>20</sup> bytes), GB & GiB
|
|
(2<sup>30</sup> bytes).</p><p>The default value is: "4096
|
|
B".</p>""" ] ]
|
|
element MaxMessageSize {
|
|
memsize
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies on which network interfaces Cyclone DDS listens
|
|
to multicasts. The following options are available:</p>
|
|
|
|
<ul>
|
|
|
|
<li><i>all</i>: listen for multicasts on all multicast-capable
|
|
interfaces; or</li>
|
|
|
|
<li><i>any</i>: listen for multicasts on the operating system default
|
|
interface; or</li>
|
|
|
|
<li><i>preferred</i>: listen for multicasts on the preferred interface
|
|
(General/NetworkInterfaceAddress); or</li>
|
|
|
|
<li><i>none</i>: does not listen for multicasts on any interface; or</li>
|
|
|
|
<li>a comma-separated list of network addresses: configures Cyclone DDS
|
|
to listen for multicasts on all of the listed addresses.</li>
|
|
|
|
</ul>
|
|
|
|
<p>If Cyclone DDS is in IPv6 mode and the address of the preferred
|
|
network interface is a link-local address, "all" is treated as a synonym
|
|
for "preferred" and a comma-separated list is treated as "preferred" if
|
|
it contains the preferred interface and as "none" if not.</p><p>The
|
|
default value is: "preferred".</p>""" ] ]
|
|
element MulticastRecvNetworkInterfaceAddresses {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies the time-to-live setting for outgoing multicast
|
|
packets.</p><p>The default value is: "32".</p>""" ] ]
|
|
element MulticastTimeToLive {
|
|
xsd:integer
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies the preferred network interface for use by
|
|
Cyclone DDS. The preferred network interface determines the IP address
|
|
that Cyclone DDS advertises in the discovery protocol (but see also
|
|
General/ExternalNetworkAddress), and is also the only interface over
|
|
which multicasts are transmitted. The interface can be identified by its
|
|
IP address, network interface name or network portion of the address. If
|
|
the value "auto" is entered here, Cyclone DDS will select what it
|
|
considers the most suitable interface.</p><p>The default value is:
|
|
"auto".</p>""" ] ]
|
|
element NetworkInterfaceAddress {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>When false (default) Cyclone DDS uses unicast for data whenever there
|
|
a single unicast suffices. Setting this to true makes it prefer
|
|
multicasting data, falling back to unicast only when no multicast address
|
|
is available.</p><p>The default value is: "false".</p>""" ] ]
|
|
element PreferMulticast {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element allows selecting the transport to be used (udp, udp6,
|
|
tcp, tcp6, raweth)</p><p>The default value is: "default".</p>""" ] ]
|
|
element Transport {
|
|
("default"|"udp"|"udp6"|"tcp"|"tcp6"|"raweth")
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>Deprecated (use Transport instead)</p><p>The default value is:
|
|
"default".</p>""" ] ]
|
|
element UseIPv6 {
|
|
("false"|"true"|"default")
|
|
}?
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>The Internal elements deal with a variety of settings that evolving
|
|
and that are not necessarily fully supported. For the vast majority of
|
|
the Internal settings, the functionality per-se is supported, but the
|
|
right to change the way the options control the functionality is
|
|
reserved. This includes renaming or moving options.</p>""" ] ]
|
|
element Internal {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>Proxy readers that are assumed to sill be retrieving historical data
|
|
get this many samples retransmitted when they NACK something, even if
|
|
some of these samples have sequence numbers outside the set covered by
|
|
the NACK.</p><p>The default value is: "0".</p>""" ] ]
|
|
element AccelerateRexmitBlockSize {
|
|
xsd:integer
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element controls which network interfaces are assumed to be
|
|
capable of multicasting even when the interface flags returned by the
|
|
operating system state it is not (this provides a workaround for some
|
|
platforms). It is a comma-separated lists of patterns (with ? and *
|
|
wildcards) against which the interface names are matched.</p><p>The
|
|
default value is: "".</p>""" ] ]
|
|
element AssumeMulticastCapable {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This setting controls the interval with which a reader will continue
|
|
NACK'ing missing samples in the absence of a response from the writer, as
|
|
a protection mechanism against writers incorrectly stopping the sending
|
|
of HEARTBEAT messages.</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: "1 s".</p>""" ] ]
|
|
element AutoReschedNackDelay {
|
|
duration_inf
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element controls which participants will have which built-in
|
|
endpoints for the discovery and liveliness protocols. Valid values
|
|
are:</p>
|
|
|
|
<ul><li><i>full</i>: all participants have all endpoints;</li>
|
|
|
|
<li><i>writers</i>: all participants have the writers, but just one has
|
|
the readers;</li>
|
|
|
|
<li><i>minimal</i>: only one participant has built-in
|
|
endpoints.</li></ul>
|
|
|
|
<p>The default is <i>writers</i>, as this is thought to be compliant and
|
|
reasonably efficient. <i>Minimal</i> may or may not be compliant but is
|
|
most efficient, and <i>full</i> is inefficient but certain to be
|
|
compliant. See also Internal/ConservativeBuiltinReaderStartup.</p><p>The
|
|
default value is: "writers".</p>""" ] ]
|
|
element BuiltinEndpointSet {
|
|
("full"|"writers"|"minimal")
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>The ControlTopic element allows configured whether Cyclone DDS
|
|
provides a special control interface via a predefined topic or not.<p>""" ] ]
|
|
element ControlTopic {
|
|
empty
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element sets the maximum number of extra threads for an
|
|
experimental, undocumented and unsupported direct mode.</p><p>The default
|
|
value is: "1".</p>""" ] ]
|
|
element DDSI2DirectMaxThreads {
|
|
xsd:integer
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element sets the maximum number of samples that can be
|
|
defragmented simultaneously for a reliable writer. This has to be large
|
|
enough to handle retransmissions of historical data in addition to new
|
|
samples.</p><p>The default value is: "16".</p>""" ] ]
|
|
element DefragReliableMaxSamples {
|
|
xsd:integer
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element sets the maximum number of samples that can be
|
|
defragmented simultaneously for a best-effort writers.</p><p>The default
|
|
value is: "4".</p>""" ] ]
|
|
element DefragUnreliableMaxSamples {
|
|
xsd:integer
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element controls the Maximum size of a delivery queue, expressed
|
|
in samples. Once a delivery queue is full, incoming samples destined for
|
|
that queue are dropped until space becomes available again.</p><p>The
|
|
default value is: "256".</p>""" ] ]
|
|
element DeliveryQueueMaxSamples {
|
|
xsd:integer
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element enables expensive checks in builds with assertions
|
|
enabled and is ignored otherwise. Recognised categories are:</p>
|
|
|
|
<ul><li><i>whc</i>: writer history cache checking</li>
|
|
|
|
<li><i>rhc</i>: reader history cache checking</li>
|
|
|
|
<p>In addition, there is the keyword <i>all</i> that enables all
|
|
checks.</p><p>The default value is: "".</p>""" ] ]
|
|
element EnableExpensiveChecks {
|
|
xsd:token { pattern = "((whc|rhc|all)(,(whc|rhc|all))*)|" }
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>When true, include keyhashes in outgoing data for topics with
|
|
keys.</p><p>The default value is: "false".</p>""" ] ]
|
|
element GenerateKeyhash {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This elemnents allows configuring the base interval for sending writer
|
|
heartbeats and the bounds within it can vary.</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: "100 ms".</p>""" ] ]
|
|
element HeartbeatInterval {
|
|
[ 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: "8 s".</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: "5 ms".</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: "20 ms".</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
|
|
committed to delivering it.</p><p>The default value is:
|
|
"false".</p>""" ] ]
|
|
element LateAckMode {
|
|
xsd:boolean
|
|
}?
|
|
& [ 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: "10 s".</p>""" ] ]
|
|
element LeaseDuration {
|
|
duration
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element controls whether or not implementation should internally
|
|
monitor its own liveliness. If liveliness monitoring is enabled, stack
|
|
traces can be dumped automatically when some thread appears to have
|
|
stopped making progress.</p><p>The default value is:
|
|
"false".</p>""" ] ]
|
|
element LivelinessMonitoring {
|
|
[ 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: "1s".</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: "true".</p>""" ] ]
|
|
attribute StackTraces {
|
|
xsd:boolean
|
|
}?
|
|
& xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This elements configures the maximum number of DCPS domain
|
|
participants this Cyclone DDS instance is willing to service. 0 is
|
|
unlimited.</p><p>The default value is: "0".</p>""" ] ]
|
|
element MaxParticipants {
|
|
xsd:integer
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This setting limits the maximum number of bytes queued for
|
|
retransmission. The default value of 0 is unlimited unless an
|
|
AuxiliaryBandwidthLimit has been set, in which case it becomes NackDelay
|
|
* AuxiliaryBandwidthLimit. It must be large enough to contain the largest
|
|
sample that may need to be retransmitted.</p>
|
|
|
|
<p>The unit must be specified explicitly. Recognised units: B (bytes), kB
|
|
& KiB (2<sup>10</sup> bytes), MB & MiB (2<sup>20</sup> bytes), GB & GiB
|
|
(2<sup>30</sup> bytes).</p><p>The default value is: "50
|
|
kB".</p>""" ] ]
|
|
element MaxQueuedRexmitBytes {
|
|
memsize
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This settings limits the maximum number of samples queued for
|
|
retransmission.</p><p>The default value is: "200".</p>""" ] ]
|
|
element MaxQueuedRexmitMessages {
|
|
xsd:integer
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This setting controls the maximum (CDR) serialised size of samples
|
|
that Cyclone DDS will forward in either direction. Samples larger than
|
|
this are discarded with a warning.</p>
|
|
|
|
<p>The unit must be specified explicitly. Recognised units: B (bytes), kB
|
|
& KiB (2<sup>10</sup> bytes), MB & MiB (2<sup>20</sup> bytes), GB & GiB
|
|
(2<sup>30</sup> bytes).</p><p>The default value is: "2147483647
|
|
B".</p>""" ] ]
|
|
element MaxSampleSize {
|
|
memsize
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element enables heartbeat-to-ack latency among Cyclone DDS
|
|
services by prepending timestamps to Heartbeat and AckNack messages and
|
|
calculating round trip times. This is non-standard behaviour. The
|
|
measured latencies are quite noisy and are currently not used
|
|
anywhere.</p><p>The default value is: "false".</p>""" ] ]
|
|
element MeasureHbToAckLatency {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This setting controls the minimum size of socket receive buffers. The
|
|
operating system provides some size receive buffer upon creation of the
|
|
socket, this option can be used to increase the size of the buffer beyond
|
|
that initially provided by the operating system. If the buffer size
|
|
cannot be increased to the specified size, an error is reported.</p>
|
|
|
|
<p>The default setting is the word "default", which means Cyclone DDS
|
|
will attempt to increase the buffer size to 1MB, but will silently accept
|
|
a smaller buffer should that attempt fail.</p>
|
|
|
|
<p>The unit must be specified explicitly. Recognised units: B (bytes), kB
|
|
& KiB (2<sup>10</sup> bytes), MB & MiB (2<sup>20</sup> bytes), GB & GiB
|
|
(2<sup>30</sup> bytes).</p><p>The default value is:
|
|
"default".</p>""" ] ]
|
|
element MinimumSocketReceiveBufferSize {
|
|
memsize
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This setting controls the minimum size of socket send buffers. This
|
|
setting can only increase the size of the send buffer, if the operating
|
|
system by default creates a larger buffer, it is left unchanged.</p>
|
|
|
|
<p>The unit must be specified explicitly. Recognised units: B (bytes), kB
|
|
& KiB (2<sup>10</sup> bytes), MB & MiB (2<sup>20</sup> bytes), GB & GiB
|
|
(2<sup>30</sup> bytes).</p><p>The default value is: "64
|
|
KiB".</p>""" ] ]
|
|
element MinimumSocketSendBufferSize {
|
|
memsize
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element allows configuring a service that dumps a text
|
|
description of part the internal state to TCP clients. By default (-1),
|
|
this is disabled; specifying 0 means a kernel-allocated port is used; a
|
|
positive number is used as the TCP port number.</p><p>The default value
|
|
is: "-1".</p>""" ] ]
|
|
element MonitorPort {
|
|
xsd:integer
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element controls whether all traffic is handled by a single
|
|
receive thread (false) or whether multiple receive threads may be used to
|
|
improve latency (true). By default it is disabled on Windows because it
|
|
appears that one cannot count on being able to send packets to oneself,
|
|
which is necessary to stop the thread during shutdown. 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: "default".</p>""" ] ]
|
|
element MultipleReceiveThreads {
|
|
[ 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:
|
|
"4294967295".</p>""" ] ]
|
|
attribute maxretries {
|
|
xsd:integer
|
|
}?
|
|
& ("false"|"true"|"default")
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This setting controls the delay between receipt of a HEARTBEAT
|
|
indicating missing samples and a NACK (ignored when the HEARTBEAT
|
|
requires an answer). However, no NACK is sent if a NACK had been
|
|
scheduled already for a response earlier than the delay requests: then
|
|
that NACK will incorporate the latest information.</p>
|
|
|
|
<p>The unit must be specified explicitly. Recognised units: ns, us, ms,
|
|
s, min, hr, day.</p><p>The default value is: "10 ms".</p>""" ] ]
|
|
element NackDelay {
|
|
duration
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This setting controls the delay between the discovering a remote
|
|
writer and sending a pre-emptive AckNack to discover the range of data
|
|
available.</p>
|
|
|
|
<p>The unit must be specified explicitly. Recognised units: ns, us, ms,
|
|
s, min, hr, day.</p><p>The default value is: "10 ms".</p>""" ] ]
|
|
element PreEmptiveAckDelay {
|
|
duration
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element sets the maximum size in samples of a primary re-order
|
|
administration. Each proxy writer has one primary re-order administration
|
|
to buffer the packet flow in case some packets arrive out of order. Old
|
|
samples are forwarded to secondary re-order administrations associated
|
|
with readers in need of historical data.</p><p>The default value is:
|
|
"128".</p>""" ] ]
|
|
element PrimaryReorderMaxSamples {
|
|
xsd:integer
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element controls whether retransmits are prioritized over new
|
|
data, speeding up recovery.</p><p>The default value is:
|
|
"true".</p>""" ] ]
|
|
element PrioritizeRetransmit {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element controls for how long a remote participant that was
|
|
previously deleted will remain on a blacklist to prevent rediscovery,
|
|
giving the software on a node time to perform any cleanup actions it
|
|
needs to do. To some extent this delay is required internally by Cyclone
|
|
DDS, but in the default configuration with the 'enforce' attribute set to
|
|
false, Cyclone DDS will reallow rediscovery as soon as it has cleared its
|
|
internal administration. Setting it to too small a value may result in
|
|
the entry being pruned from the blacklist before Cyclone DDS is ready, it
|
|
is therefore recommended to set it to at least several seconds.</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: "10s".</p>""" ] ]
|
|
element RediscoveryBlacklistDuration {
|
|
[ 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: "false".</p>""" ] ]
|
|
attribute enforce {
|
|
xsd:boolean
|
|
}?
|
|
& duration_inf
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This elements controls the addressing and timing of retransmits.
|
|
Possible values are:</p>
|
|
|
|
<ul><li><i>never</i>: retransmit only to the NACK-ing reader;</li>
|
|
|
|
<li><i>adaptive</i>: attempt to combine retransmits needed for
|
|
reliability, but send historical (transient-local) data to the requesting
|
|
reader only;</li>
|
|
|
|
<li><i>always</i>: do not distinguish between different causes, always
|
|
try to merge.</li></ul>
|
|
|
|
<p>The default is <i>never</i>. See also
|
|
Internal/RetransmitMergingPeriod.</p><p>The default value is:
|
|
"never".</p>""" ] ]
|
|
element RetransmitMerging {
|
|
("never"|"adaptive"|"always")
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This setting determines the size of the time window in which a NACK of
|
|
some sample is ignored because a retransmit of that sample has been
|
|
multicasted too recently. This setting has no effect on unicasted
|
|
retransmits.</p>
|
|
|
|
<p>See also Internal/RetransmitMerging.</p>
|
|
|
|
<p>The unit must be specified explicitly. Recognised units: ns, us, ms,
|
|
s, min, hr, day.</p><p>The default value is: "5 ms".</p>""" ] ]
|
|
element RetransmitMergingPeriod {
|
|
duration
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>Whether or not to locally retry pushing a received best-effort sample
|
|
into the reader caches when resource limits are reached.</p><p>The
|
|
default value is: "false".</p>""" ] ]
|
|
element RetryOnRejectBestEffort {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>Maximum pseudo-random delay in milliseconds between discovering a
|
|
remote participant and responding to it.</p>
|
|
|
|
<p>The unit must be specified explicitly. Recognised units: ns, us, ms,
|
|
s, min, hr, day.</p><p>The default value is: "0 ms".</p>""" ] ]
|
|
element SPDPResponseMaxDelay {
|
|
duration
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This setting allows the timing of scheduled events to be rounded up so
|
|
that more events can be handled in a single cycle of the event queue. The
|
|
default is 0 and causes no rounding at all, i.e. are scheduled exactly,
|
|
whereas a value of 10ms would mean that events are rounded up to the
|
|
nearest 10 milliseconds.</p>
|
|
|
|
<p>The unit must be specified explicitly. Recognised units: ns, us, ms,
|
|
s, min, hr, day.</p><p>The default value is: "0 ms".</p>""" ] ]
|
|
element ScheduleTimeRounding {
|
|
duration
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element sets the maximum size in samples of a secondary re-order
|
|
administration. The secondary re-order administration is per reader in
|
|
need of historical data.</p><p>The default value is: "128".</p>""" ] ]
|
|
element SecondaryReorderMaxSamples {
|
|
xsd:integer
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element controls whether the actual sending of packets occurs on
|
|
the same thread that prepares them, or is done asynchronously by another
|
|
thread.</p><p>The default value is: "false".</p>""" ] ]
|
|
element SendAsync {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element controls whether Cyclone DDS advertises all the domain
|
|
participants it serves in DDSI (when set to <i>false</i>), or rather only
|
|
one domain participant (the one corresponding to the Cyclone DDS process;
|
|
when set to <i>true</i>). In the latter case Cyclone DDS becomes the
|
|
virtual owner of all readers and writers of all domain participants,
|
|
dramatically reducing discovery traffic (a similar effect can be obtained
|
|
by setting Internal/BuiltinEndpointSet to "minimal" but with less loss of
|
|
information).</p><p>The default value is: "false".</p>""" ] ]
|
|
element SquashParticipants {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element controls whether samples sent by a writer with QoS
|
|
settings transport_priority >= SynchronousDeliveryPriorityThreshold and a
|
|
latency_budget at most this element's value will be delivered
|
|
synchronously from the "recv" thread, all others will be delivered
|
|
asynchronously through delivery queues. This reduces latency at the
|
|
expense of aggregate bandwidth.</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: "inf".</p>""" ] ]
|
|
element SynchronousDeliveryLatencyBound {
|
|
duration_inf
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element controls whether samples sent by a writer with QoS
|
|
settings latency_budget <= SynchronousDeliveryLatencyBound and
|
|
transport_priority greater than or equal to this element's value will be
|
|
delivered synchronously from the "recv" thread, all others will be
|
|
delivered asynchronously through delivery queues. This reduces latency at
|
|
the expense of aggregate bandwidth.</p><p>The default value is:
|
|
"0".</p>""" ] ]
|
|
element SynchronousDeliveryPriorityThreshold {
|
|
xsd:integer
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>Testing options.</p>""" ] ]
|
|
element Test {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This element controls the fraction of outgoing packets to drop,
|
|
specified as samples per thousand.</p><p>The default value is:
|
|
"0".</p>""" ] ]
|
|
element XmitLossiness {
|
|
xsd:integer
|
|
}?
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element controls whether the response to a newly discovered
|
|
participant is sent as a unicasted SPDP packet, instead of rescheduling
|
|
the periodic multicasted one. There is no known benefit to setting this
|
|
to <i>false</i>.</p><p>The default value is: "true".</p>""" ] ]
|
|
element UnicastResponseToSPDPMessages {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>Do not use.</p><p>The default value is: "0".</p>""" ] ]
|
|
element UseMulticastIfMreqn {
|
|
xsd:integer
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>Watermarks for flow-control.</p>""" ] ]
|
|
element Watermarks {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This element controls whether Cyclone DDS will adapt the high-water
|
|
mark to current traffic conditions, based on retransmit requests and
|
|
transmit pressure.</p><p>The default value is: "true".</p>""" ] ]
|
|
element WhcAdaptive {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element sets the maximum allowed high-water mark for the Cyclone
|
|
DDS WHCs, expressed in bytes. A writer is suspended when the WHC reaches
|
|
this size.</p>
|
|
|
|
<p>The unit must be specified explicitly. Recognised units: B (bytes), kB
|
|
& KiB (2<sup>10</sup> bytes), MB & MiB (2<sup>20</sup> bytes), GB & GiB
|
|
(2<sup>30</sup> bytes).</p><p>The default value is: "100
|
|
kB".</p>""" ] ]
|
|
element WhcHigh {
|
|
memsize
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element sets the initial level of the high-water mark for the
|
|
Cyclone DDS WHCs, expressed in bytes.</p>
|
|
|
|
<p>The unit must be specified explicitly. Recognised units: B (bytes), kB
|
|
& KiB (2<sup>10</sup> bytes), MB & MiB (2<sup>20</sup> bytes), GB & GiB
|
|
(2<sup>30</sup> bytes).</p><p>The default value is: "30
|
|
kB".</p>""" ] ]
|
|
element WhcHighInit {
|
|
memsize
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element sets the low-water mark for the Cyclone DDS WHCs,
|
|
expressed in bytes. A suspended writer resumes transmitting when its
|
|
Cyclone DDS WHC shrinks to this size.</p>
|
|
|
|
<p>The unit must be specified explicitly. Recognised units: B (bytes), kB
|
|
& KiB (2<sup>10</sup> bytes), MB & MiB (2<sup>20</sup> bytes), GB & GiB
|
|
(2<sup>30</sup> bytes).</p><p>The default value is: "1 kB".</p>""" ] ]
|
|
element WhcLow {
|
|
memsize
|
|
}?
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element enables the batching of write operations. By default each
|
|
write operation writes through the write cache and out onto the
|
|
transport. Enabling write batching causes multiple small write operations
|
|
to be aggregated within the write cache into a single larger write. This
|
|
gives greater throughput at the expense of latency. Currently there is no
|
|
mechanism for the write cache to automatically flush itself, so that if
|
|
write batching is enabled, the application may havee to use the
|
|
dds_write_flush function to ensure thta all samples are
|
|
written.</p><p>The default value is: "false".</p>""" ] ]
|
|
element WriteBatch {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This setting controls the maximum duration for which actual deletion
|
|
of a reliable writer with unacknowledged data in its history will be
|
|
postponed to provide proper reliable transmission.<p>
|
|
|
|
<p>The unit must be specified explicitly. Recognised units: ns, us, ms,
|
|
s, min, hr, day.</p><p>The default value is: "1 s".</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
|
|
partitions.</p>""" ] ]
|
|
element Partitioning {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>The IgnoredPartitions element specifies DCPS partition/topic
|
|
combinations that are not distributed over the network.</p>""" ] ]
|
|
element IgnoredPartitions {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This element can be used to prevent certain combinations of DCPS
|
|
partition and topic from being transmitted over the network. Cyclone DDS
|
|
will complete ignore readers and writers for which all DCPS partitions as
|
|
well as their topic is ignored, not even creating DDSI readers and
|
|
writers to mirror the DCPS ones.</p>""" ] ]
|
|
element IgnoredPartition {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This attribute specifies a partition and a topic expression, separated
|
|
by a single '.', that are used to determine if a given partition and
|
|
topic will be ignored or not. The expressions may use the usual wildcards
|
|
'*' and '?'. Cyclone DDS will consider an wildcard DCPS partition to
|
|
match an expression iff there exists a string that satisfies both
|
|
expressions.</p>""" ] ]
|
|
attribute DCPSPartitionTopic {
|
|
text
|
|
}
|
|
}*
|
|
}*
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>The NetworkPartitions element specifies the Cyclone DDS network
|
|
partitions.</p>""" ] ]
|
|
element NetworkPartitions {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This element defines a Cyclone DDS network partition.</p>""" ] ]
|
|
element NetworkPartition {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This attribute specifies the multicast addresses associated with the
|
|
network partition as a comma-separated list. Readers matching this
|
|
network partition (cf. Partitioning/PartitionMappings) will listen for
|
|
multicasts on all of these addresses and advertise them in the discovery
|
|
protocol. The writers will select the most suitable address from the
|
|
addresses advertised by the readers.</p>""" ] ]
|
|
attribute Address {
|
|
text
|
|
}
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This attribute is a placeholder.</p><p>The default value is:
|
|
"true".</p>""" ] ]
|
|
attribute Connected {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This attribute specifies the name of this Cyclone DDS network
|
|
partition. Two network partitions cannot have the same name.</p>""" ] ]
|
|
attribute Name {
|
|
text
|
|
}
|
|
}*
|
|
}*
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>The PartitionMappings element specifies the mapping from DCPS
|
|
partition/topic combinations to Cyclone DDS network partitions.</p>""" ] ]
|
|
element PartitionMappings {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This element defines a mapping from a DCPS partition/topic combination
|
|
to a Cyclone DDS network partition. This allows partitioning data flows
|
|
by using special multicast addresses for part of the data and possibly
|
|
also encrypting the data flow.</p>""" ] ]
|
|
element PartitionMapping {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This attribute specifies a partition and a topic expression, separated
|
|
by a single '.', that are used to determine if a given partition and
|
|
topic maps to the Cyclone DDS network partition named by the
|
|
NetworkPartition attribute in this PartitionMapping element. The
|
|
expressions may use the usual wildcards '*' and '?'. Cyclone DDS will
|
|
consider a wildcard DCPS partition to match an expression if there exists
|
|
a string that satisfies both expressions.</p>""" ] ]
|
|
attribute DCPSPartitionTopic {
|
|
text
|
|
}
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This attribute specifies which Cyclone DDS network partition is to be
|
|
used for DCPS partition/topic combinations matching the
|
|
DCPSPartitionTopic attribute within this PartitionMapping element.</p>""" ] ]
|
|
attribute NetworkPartition {
|
|
text
|
|
}
|
|
}*
|
|
}*
|
|
}*
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>The SSL element allows specifying various parameters related to using
|
|
SSL/TLS for DDSI over TCP.</p>""" ] ]
|
|
element SSL {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>If disabled this allows SSL connections to occur even if an X509
|
|
certificate fails verification.</p><p>The default value is:
|
|
"true".</p>""" ] ]
|
|
element CertificateVerification {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>The set of ciphers used by SSL/TLS</p><p>The default value is:
|
|
"ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH".</p>""" ] ]
|
|
element Ciphers {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This enables SSL/TLS for TCP.</p><p>The default value is:
|
|
"false".</p>""" ] ]
|
|
element Enable {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>The SSL/TLS random entropy file name.</p><p>The default value is:
|
|
"".</p>""" ] ]
|
|
element EntropyFile {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>The SSL/TLS key pass phrase for encrypted keys.</p><p>The default
|
|
value is: "secret".</p>""" ] ]
|
|
element KeyPassphrase {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>The SSL/TLS key and certificate store file name. The keystore must be
|
|
in PEM format.</p><p>The default value is: "keystore".</p>""" ] ]
|
|
element KeystoreFile {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>The minimum TLS version that may be negotiated, valid values are 1.2
|
|
and 1.3.</p><p>The default value is: "1.3".</p>""" ] ]
|
|
element MinimumTLSVersion {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This enables the use of self signed X509 certificates.</p><p>The
|
|
default value is: "false".</p>""" ] ]
|
|
element SelfSignedCertificates {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This enables an SSL server checking the X509 certificate of a
|
|
connecting client.</p><p>The default value is: "true".</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>""" ] ]
|
|
element Sizing {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies the size of one allocation unit in the receive
|
|
buffer. Must be greater than the maximum packet size by a modest amount
|
|
(too large packets are dropped). Each allocation is shrunk immediately
|
|
after processing a message, or freed straightaway.</p>
|
|
|
|
<p>The unit must be specified explicitly. Recognised units: B (bytes), kB
|
|
& KiB (2<sup>10</sup> bytes), MB & MiB (2<sup>20</sup> bytes), GB & GiB
|
|
(2<sup>30</sup> bytes).</p><p>The default value is: "128
|
|
KiB".</p>""" ] ]
|
|
element ReceiveBufferChunkSize {
|
|
memsize
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element sets the size of a single receive buffer. Many receive
|
|
buffers may be needed. The minimum workable size a little bit larger than
|
|
Sizing/ReceiveBufferChunkSize, and the value used is taken as the
|
|
configured value and the actual minimum workable size.</p>
|
|
|
|
<p>The unit must be specified explicitly. Recognised units: B (bytes), kB
|
|
& KiB (2<sup>10</sup> bytes), MB & MiB (2<sup>20</sup> bytes), GB & GiB
|
|
(2<sup>30</sup> bytes).</p><p>The default value is: "1
|
|
MiB".</p>""" ] ]
|
|
element ReceiveBufferSize {
|
|
memsize
|
|
}?
|
|
}*
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>The TCP element allows specifying various parameters related to
|
|
running DDSI over TCP.</p>""" ] ]
|
|
element TCP {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>Setting this to true means the unicast addresses in SPDP packets will
|
|
be ignored and the peer address from the TCP connection will be used
|
|
instead. This may help work around incorrectly advertised addresses when
|
|
using TCP.</p><p>The default value is: "false".</p>""" ] ]
|
|
element AlwaysUsePeeraddrForUnicast {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element enables the optional TCP transport - deprecated, use
|
|
General/Transport instead.</p><p>The default value is:
|
|
"default".</p>""" ] ]
|
|
element Enable {
|
|
("false"|"true"|"default")
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element enables the TCP_NODELAY socket option, preventing
|
|
multiple DDSI messages being sent in the same TCP request. Setting this
|
|
option typically optimises latency over throughput.</p><p>The default
|
|
value is: "true".</p>""" ] ]
|
|
element NoDelay {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies the TCP port number on which Cyclone DDS
|
|
accepts connections. If the port is set it is used in entity locators,
|
|
published with DDSI discovery. Dynamically allocated if zero. Disabled if
|
|
-1 or not configured. If disabled other DDSI services will not be able to
|
|
establish connections with the service, the service can only communicate
|
|
by establishing connections to other services.</p><p>The default value
|
|
is: "-1".</p>""" ] ]
|
|
element Port {
|
|
xsd:integer
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies the timeout for blocking TCP read operations.
|
|
If this timeout expires then the connection is closed.</p>
|
|
|
|
<p>The unit must be specified explicitly. Recognised units: ns, us, ms,
|
|
s, min, hr, day.</p><p>The default value is: "2 s".</p>""" ] ]
|
|
element ReadTimeout {
|
|
duration
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies the timeout for blocking TCP write operations.
|
|
If this timeout expires then the connection is closed.</p>
|
|
|
|
<p>The unit must be specified explicitly. Recognised units: ns, us, ms,
|
|
s, min, hr, day.</p><p>The default value is: "2 s".</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
|
|
(TCP or UDP).</p>""" ] ]
|
|
element ThreadPool {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This element enables the optional thread pool.</p><p>The default value
|
|
is: "false".</p>""" ] ]
|
|
element Enable {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This elements configures the maximum number of threads in the thread
|
|
pool.</p><p>The default value is: "8".</p>""" ] ]
|
|
element ThreadMax {
|
|
xsd:integer
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This elements configures the initial number of threads in the thread
|
|
pool.</p><p>The default value is: "4".</p>""" ] ]
|
|
element Threads {
|
|
xsd:integer
|
|
}?
|
|
}*
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element is used to set thread properties.</p>""" ] ]
|
|
element Threads {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This element is used to set thread properties.</p>""" ] ]
|
|
element Thread {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>The Name of the thread for which properties are being set. The
|
|
following threads exist:</p>
|
|
|
|
<ul><li><i>gc</i>: garbage collector thread involved in deleting
|
|
entities;</li>
|
|
|
|
<li><i>recv</i>: receive thread, taking data from the network and running
|
|
the protocol state machine;</li>
|
|
|
|
<li><i>dq.builtins</i>: delivery thread for DDSI-builtin data, primarily
|
|
for discovery;</li>
|
|
|
|
<li><i>lease</i>: DDSI liveliness monitoring;</li>
|
|
|
|
<li><i>tev</i>: general timed-event handling, retransmits and
|
|
discovery;</li>
|
|
|
|
<li><i>fsm</i>: finite state machine thread for handling security
|
|
handshake;</li>
|
|
|
|
<li><i>xmit.CHAN</i>: transmit thread for channel CHAN;</li>
|
|
|
|
<li><i>dq.CHAN</i>: delivery thread for channel CHAN;</li>
|
|
|
|
<li><i>tev.CHAN</i>: timed-event thread for channel CHAN.</li></ul>""" ] ]
|
|
attribute Name {
|
|
text
|
|
}
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element configures the scheduling properties of the thread.</p>""" ] ]
|
|
element Scheduling {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies the thread scheduling class (<i>realtime</i>,
|
|
<i>timeshare</i> or <i>default</i>). The user may need special privileges
|
|
from the underlying operating system to be able to assign some of the
|
|
privileged scheduling classes.</p><p>The default value is:
|
|
"default".</p>""" ] ]
|
|
element Class {
|
|
("realtime"|"timeshare"|"default")
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element specifies the thread priority (decimal integer or
|
|
<i>default</i>). Only priorities that are supported by the underlying
|
|
operating system can be assigned to this element. The user may need
|
|
special privileges from the underlying operating system to be able to
|
|
assign some of the privileged priorities.</p><p>The default value is:
|
|
"default".</p>""" ] ]
|
|
element Priority {
|
|
text
|
|
}?
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element configures the stack size for this thread. The default
|
|
value <i>default</i> leaves the stack size at the operating system
|
|
default.</p>
|
|
|
|
<p>The unit must be specified explicitly. Recognised units: B (bytes), kB
|
|
& KiB (2<sup>10</sup> bytes), MB & MiB (2<sup>20</sup> bytes), GB & GiB
|
|
(2<sup>30</sup> bytes).</p><p>The default value is:
|
|
"default".</p>""" ] ]
|
|
element StackSize {
|
|
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
|
|
track the DDSI service during application development.</p>""" ] ]
|
|
element Tracing {
|
|
[ a:documentation [ xml:lang="en" """
|
|
<p>This option specifies whether the output is to be appended to an
|
|
existing log file. The default is to create a new log file each time,
|
|
which is generally the best option if a detailed log is
|
|
generated.</p><p>The default value is: "false".</p>""" ] ]
|
|
element AppendToFile {
|
|
xsd:boolean
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element enables individual logging categories. These are enabled
|
|
in addition to those enabled by Tracing/Verbosity. Recognised categories
|
|
are:</p>
|
|
|
|
<ul><li><i>fatal</i>: all fatal errors, errors causing immediate
|
|
termination</li>
|
|
|
|
<li><i>error</i>: failures probably impacting correctness but not
|
|
necessarily causing immediate termination</li>
|
|
|
|
<li><i>warning</i>: abnormal situations that will likely not impact
|
|
correctness</li>
|
|
|
|
<li><i>config</i>: full dump of the configuration</li>
|
|
|
|
<li><i>info</i>: general informational notices</li>
|
|
|
|
<li><i>discovery</i>: all discovery activity</li>
|
|
|
|
<li><i>data</i>: include data content of samples in traces</li>
|
|
|
|
<li><i>radmin</i>: receive buffer administration</li>
|
|
|
|
<li><i>timing</i>: periodic reporting of CPU loads per thread</li>
|
|
|
|
<li><i>traffic</i>: periodic reporting of total outgoing data</li>
|
|
|
|
<li><i>whc</i>: tracing of writer history cache changes</li>
|
|
|
|
<li><i>tcp</i>: tracing of TCP-specific activity</li>
|
|
|
|
<li><i>topic</i>: tracing of topic definitions</li>
|
|
|
|
<li>>i>plist</i>: tracing of discovery parameter list interpretation</li>
|
|
</ul>
|
|
|
|
<p>In addition, there is the keyword <i>trace</i> that enables all but
|
|
<i>radmin</i>, <i>topic</i>, <i>plist</i> and <i>whc</i></p>.
|
|
|
|
<p>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
|
|
is <i>trace</i>.</p><p>The default value is: "".</p>""" ] ]
|
|
element Category {
|
|
xsd:token { pattern = "((fatal|error|warning|info|config|discovery|data|radmin|timing|traffic|topic|tcp|plist|whc|throttle|rhc|content|trace)(,(fatal|error|warning|info|config|discovery|data|radmin|timing|traffic|topic|tcp|plist|whc|throttle|rhc|content|trace))*)|" }
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This option specifies where the logging is printed to. Note that
|
|
<i>stdout</i> and <i>stderr</i> are treated as special values,
|
|
representing "standard out" and "standard error" respectively. No file is
|
|
created unless logging categories are enabled using the Tracing/Verbosity
|
|
or Tracing/EnabledCategory settings.</p><p>The default value is:
|
|
"cyclonedds.log".</p>""" ] ]
|
|
element OutputFile {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This option specifies the file to which received and sent packets will
|
|
be logged in the "pcap" format suitable for analysis using common
|
|
networking tools, such as WireShark. IP and UDP headers are ficitious, in
|
|
particular the destination address of received packets. The TTL may be
|
|
used to distinguish between sent and received packets: it is 255 for sent
|
|
packets and 128 for received ones. Currently IPv4 only.</p><p>The default
|
|
value is: "".</p>""" ] ]
|
|
element PacketCaptureFile {
|
|
text
|
|
}?
|
|
& [ a:documentation [ xml:lang="en" """
|
|
<p>This element enables standard groups of categories, based on a desired
|
|
verbosity level. This is in addition to the categories enabled by the
|
|
Tracing/Category setting. Recognised verbosity levels and the categories
|
|
they map to are:</p>
|
|
|
|
<ul><li><i>none</i>: no Cyclone DDS log</li>
|
|
|
|
<li><i>severe</i>: error and fatal</li>
|
|
|
|
<li><i>warning</i>: <i>severe</i> + warning</li>
|
|
|
|
<li><i>info</i>: <i>warning</i> + info</li>
|
|
|
|
<li><i>config</i>: <i>info</i> + config</li>
|
|
|
|
<li><i>fine</i>: <i>config</i> + discovery</li>
|
|
|
|
<li><i>finer</i>: <i>fine</i> + traffic and timing</li>
|
|
|
|
<li><i>finest</i>: <i>finer</i> + trace</li></ul>
|
|
|
|
<p>While <i>none</i> prevents any message from being written to a Cyclone
|
|
DDS log file.</p>
|
|
|
|
<p>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 <i>config</i>, <i>fine</i> and
|
|
<i>finest</i>.</p><p>The default value is: "none".</p>""" ] ]
|
|
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)" }
|
|
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" }
|
|
}
|