diff --git a/README.md b/README.md
index c4352a4..8a549c5 100644
--- a/README.md
+++ b/README.md
@@ -186,7 +186,7 @@ point to it. E.g. (on Linux):
$ cat cyclonedds.xml
-
+
diff --git a/docs/makernc.pl b/docs/makernc.pl
index bf09371..42033d1 100644
--- a/docs/makernc.pl
+++ b/docs/makernc.pl
@@ -156,7 +156,8 @@ my %tables;
my @root = read_config ($input);
{
- open my $fh, ">", "$output_rnc" or die "can't open $output_rnc";
+ open my $fh, ">:unix", "$output_rnc" or die "can't open $output_rnc";
+ print $fh "default namespace = \"https://cdds.io/config\"\n";
print $fh "namespace a = \"http://relaxng.org/ns/compatibility/annotations/1.0\"\n";
print $fh "grammar {\n";
print $fh " start =\n";
@@ -170,7 +171,7 @@ my @root = read_config ($input);
}
{
- open my $fh, ">", "$output_md" or die "can't open $output_md";
+ open my $fh, ">:unix", "$output_md" or die "can't open $output_md";
my $sep_blurb = "";
conv_table($fh, \&conv_to_md, \@root, "/", " ", "", \$sep_blurb);
close $fh;
@@ -315,12 +316,14 @@ sub conv_to_rnc {
print_description_rnc ($fh, $fs->{description}, $indent);
printf $fh "${indent}%s %s {\n", ($fs->{kind} eq "ATTR" ? "attribute" : "element"), $name;
+ my $sub_isfirst = 1;
+ conv_table($fh, \&conv_to_rnc, $fs->{subtables}, $fqname, "${indent} ", $prefix, \$sub_isfirst);
+ my $sep = $sub_isfirst ? "" : "& ";
+
if ($fs->{kind} eq "GROUP" || $fs->{kind} eq "MGROUP") {
- my $sub_isfirst = 1;
- conv_table($fh, \&conv_to_rnc, $fs->{subtables}, $fqname, "${indent} ", $prefix, \$sub_isfirst);
- printf $fh "${indent} empty\n" if $sub_isfirst;
+ printf $fh "${indent} ${sep}empty\n" if $sub_isfirst;
} elsif ($fs->{kstr} eq "Boolean") {
- printf $fh "${indent} xsd:boolean\n";
+ printf $fh "${indent} ${sep}xsd:boolean\n";
} elsif ($fs->{kstr} eq "Comma") {
die unless exists $comma_values{$fs->{typehint}};
my $pat = "";
@@ -337,13 +340,13 @@ sub conv_to_rnc {
}
}
$pat .= "|" if $allowempty;
- printf $fh "${indent} xsd:token { pattern = \"%s\" }\n", $pat;
+ printf $fh "${indent} ${sep}xsd:token { pattern = \"%s\" }\n", $pat;
} elsif ($fs->{kstr} eq "Enum") {
die unless exists $enum_values{$fs->{typehint}};
my @vs = split /;/, $enum_values{$fs->{typehint}};
- printf $fh "${indent} %s\n", (join '|', map { "\"$_\"" } @vs);
+ printf $fh "${indent} ${sep}%s\n", (join '|', map { "\"$_\"" } @vs);
} elsif ($fs->{kstr} eq "Int") {
- printf $fh "${indent} xsd:integer\n";
+ printf $fh "${indent} ${sep}xsd:integer\n";
#if (exists $range{$lctn} || exists $range{$fs->{typehint}}) {
# # integer with range
# my $rr = exists $range{$lctn} ? $range{$lctn} : $range{$fs->{typehint}};
@@ -351,9 +354,9 @@ sub conv_to_rnc {
#}
} elsif ($typehint2unit{$fs->{typehint}}) {
# number with unit
- printf $fh "${indent} $typehint2unit{$fs->{typehint}}\n";
+ printf $fh "${indent} ${sep}$typehint2unit{$fs->{typehint}}\n";
} elsif ($typehint2xmltype{$fs->{typehint}} =~ /String$/) {
- printf $fh "${indent} text\n";
+ printf $fh "${indent} ${sep}text\n";
} else {
die;
}
@@ -393,7 +396,7 @@ sub conv_to_md {
# Describe type (boolean, integer, &c.); for a group list its attributes and children as
# links to their descriptions
- if ($fs->{kind} eq "GROUP" || $fs->{kind} eq "MGROUP") {
+ {
my %children = ("attributes" => [], "elements" => []);
conv_table($fh, \&list_children_md, $fs->{subtables}, "", "${indent} ", $prefix, \%children);
if (@{$children{attributes}} > 0) {
@@ -406,6 +409,10 @@ sub conv_to_md {
my @ys = map { my $lt = lc "$fqname\[\@$_]"; $lt =~ s/[^a-z0-9]//g; "[$_](#$lt)" } @xs;
printf $fh "Children: %s\n\n", (join ', ', @ys);
}
+ }
+
+ if ($fs->{kind} eq "GROUP" || $fs->{kind} eq "MGROUP") {
+ # nothing to see here
} elsif ($fs->{kstr} eq "Boolean") {
printf $fh "Boolean\n";
} elsif ($fs->{kstr} eq "Comma") {
@@ -451,9 +458,7 @@ sub conv_to_md {
print_description_md ($fh, $fs->{description}, $indent);
# Generate attributes & children
- if ($fs->{kind} eq "GROUP" || $fs->{kind} eq "MGROUP") {
- conv_table($fh, \&conv_to_md, $fs->{subtables}, $fqname, "${indent} ", $prefix, $separator_blurb_ref);
- }
+ conv_table($fh, \&conv_to_md, $fs->{subtables}, $fqname, "${indent} ", $prefix, $separator_blurb_ref);
}
sub conv_table {
diff --git a/docs/manual/options.md b/docs/manual/options.md
index 7f375ef..25caaf6 100644
--- a/docs/manual/options.md
+++ b/docs/manual/options.md
@@ -672,6 +672,8 @@ The default value is: "false".
#### //CycloneDDS/Domain/Internal/HeartbeatInterval
+Attributes: [max](#cycloneddsdomaininternalheartbeatintervalmax), [min](#cycloneddsdomaininternalheartbeatintervalmin), [minsched](#cycloneddsdomaininternalheartbeatintervalminsched)
+
Number-with-unit
This elemnents allows configuring the base interval for sending writer
@@ -683,6 +685,42 @@ Valid values are finite durations with an explicit unit or the keyword
The default value is: "100 ms".
+#### //CycloneDDS/Domain/Internal/HeartbeatInterval[@max]
+Number-with-unit
+
+This attribute sets the maximum interval for periodic heartbeats.
+
+Valid values are finite durations with an explicit unit or the keyword
+'inf' for infinity. Recognised units: ns, us, ms, s, min, hr, day.
+
+The default value is: "8 s".
+
+
+#### //CycloneDDS/Domain/Internal/HeartbeatInterval[@min]
+Number-with-unit
+
+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.
+
+Valid values are finite durations with an explicit unit or the keyword
+'inf' for infinity. Recognised units: ns, us, ms, s, min, hr, day.
+
+The default value is: "5 ms".
+
+
+#### //CycloneDDS/Domain/Internal/HeartbeatInterval[@minsched]
+Number-with-unit
+
+This attribute sets the minimum interval for periodic heartbeats. Other
+events may still cause heartbeats to go out.
+
+Valid values are finite durations with an explicit unit or the keyword
+'inf' for infinity. Recognised units: ns, us, ms, s, min, hr, day.
+
+The default value is: "20 ms".
+
+
#### //CycloneDDS/Domain/Internal/LateAckMode
Boolean
@@ -704,6 +742,8 @@ The default value is: "10 s".
#### //CycloneDDS/Domain/Internal/LivelinessMonitoring
+Attributes: [Interval](#cycloneddsdomaininternallivelinessmonitoringinterval), [StackTraces](#cycloneddsdomaininternallivelinessmonitoringstacktraces)
+
Boolean
This element controls whether or not implementation should internally
@@ -714,6 +754,28 @@ stopped making progress.
The default value is: "false".
+#### //CycloneDDS/Domain/Internal/LivelinessMonitoring[@Interval]
+Number-with-unit
+
+This element controls the interval at which to check whether threads have
+been making progress.
+
+The unit must be specified explicitly. Recognised units: ns, us, ms, s,
+min, hr, day.
+
+The default value is: "1s".
+
+
+#### //CycloneDDS/Domain/Internal/LivelinessMonitoring[@StackTraces]
+Boolean
+
+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).
+
+The default value is: "true".
+
+
#### //CycloneDDS/Domain/Internal/MaxParticipants
Integer
@@ -819,6 +881,8 @@ The default value is: "-1".
#### //CycloneDDS/Domain/Internal/MultipleReceiveThreads
+Attributes: [maxretries](#cycloneddsdomaininternalmultiplereceivethreadsmaxretries)
+
Boolean
This element controls whether all traffic is handled by a single receive
@@ -830,6 +894,18 @@ single (the default).
The default value is: "true".
+#### //CycloneDDS/Domain/Internal/MultipleReceiveThreads[@maxretries]
+Integer
+
+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.
+
+The default value is: "4294967295".
+
+
#### //CycloneDDS/Domain/Internal/NackDelay
Number-with-unit
@@ -880,6 +956,8 @@ The default value is: "true".
#### //CycloneDDS/Domain/Internal/RediscoveryBlacklistDuration
+Attributes: [enforce](#cycloneddsdomaininternalrediscoveryblacklistdurationenforce)
+
Number-with-unit
This element controls for how long a remote participant that was
@@ -898,6 +976,18 @@ Valid values are finite durations with an explicit unit or the keyword
The default value is: "10s".
+#### //CycloneDDS/Domain/Internal/RediscoveryBlacklistDuration[@enforce]
+Boolean
+
+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.
+
+The default value is: "false".
+
+
#### //CycloneDDS/Domain/Internal/RetransmitMerging
One of: never, adaptive, always
diff --git a/etc/cyclonedds.rnc b/etc/cyclonedds.rnc
index de54eef..12444a9 100644
--- a/etc/cyclonedds.rnc
+++ b/etc/cyclonedds.rnc
@@ -1,3 +1,4 @@
+default namespace = "https://cdds.io/config"
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
grammar {
start =
@@ -558,7 +559,37 @@ heartbeats and the bounds within it can vary.
'inf' for infinity. Recognised units: ns, us, ms, s, min, hr,
day.The default value is: "100 ms".
""" ] ]
element HeartbeatInterval {
- duration_inf
+ [ a:documentation [ xml:lang="en" """
+This attribute sets the maximum interval for periodic heartbeats.
+
+Valid values are finite durations with an explicit unit or the keyword
+'inf' for infinity. Recognised units: ns, us, ms, s, min, hr,
+day.
The default value is: "8 s".
""" ] ]
+ attribute max {
+ duration_inf
+ }?
+ & [ a:documentation [ xml:lang="en" """
+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.
+
+Valid values are finite durations with an explicit unit or the keyword
+'inf' for infinity. Recognised units: ns, us, ms, s, min, hr,
+day.
The default value is: "5 ms".
""" ] ]
+ attribute min {
+ duration_inf
+ }?
+ & [ a:documentation [ xml:lang="en" """
+This attribute sets the minimum interval for periodic heartbeats.
+Other events may still cause heartbeats to go out.
+
+Valid values are finite durations with an explicit unit or the keyword
+'inf' for infinity. Recognised units: ns, us, ms, s, min, hr,
+day.
The default value is: "20 ms".
""" ] ]
+ attribute minsched {
+ duration_inf
+ }?
+ & duration_inf
}?
& [ a:documentation [ xml:lang="en" """
Ack a sample only when it has been delivered, instead of when
@@ -582,7 +613,23 @@ traces can be dumped automatically when some thread appears to have
stopped making progress.
The default value is:
"false".
""" ] ]
element LivelinessMonitoring {
- xsd:boolean
+ [ a:documentation [ xml:lang="en" """
+This element controls the interval at which to check whether threads
+have been making progress.
+
+The unit must be specified explicitly. Recognised units: ns, us, ms,
+s, min, hr, day.
The default value is: "1s".
""" ] ]
+ attribute Interval {
+ duration
+ }?
+ & [ a:documentation [ xml:lang="en" """
+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).
The default value is: "true".
""" ] ]
+ attribute StackTraces {
+ xsd:boolean
+ }?
+ & xsd:boolean
}?
& [ a:documentation [ xml:lang="en" """
This elements configures the maximum number of DCPS domain
@@ -678,7 +725,17 @@ latency. Currently multiple receive threads are only used for
connectionless transport (e.g., UDP) and ManySocketsMode not set to
single (the default).
The default value is: "true".
""" ] ]
element MultipleReceiveThreads {
- xsd:boolean
+ [ a:documentation [ xml:lang="en" """
+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.
The default value is:
+"4294967295".
""" ] ]
+ attribute maxretries {
+ xsd:integer
+ }?
+ & xsd:boolean
}?
& [ a:documentation [ xml:lang="en" """
This setting controls the delay between receipt of a HEARTBEAT
@@ -734,7 +791,17 @@ is therefore recommended to set it to at least several seconds.
'inf' for infinity. Recognised units: ns, us, ms, s, min, hr,
day.The default value is: "10s".
""" ] ]
element RediscoveryBlacklistDuration {
- duration_inf
+ [ a:documentation [ xml:lang="en" """
+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.
The default
+value is: "false".
""" ] ]
+ attribute enforce {
+ xsd:boolean
+ }?
+ & duration_inf
}?
& [ a:documentation [ xml:lang="en" """
This elements controls the addressing and timing of retransmits.
diff --git a/etc/cyclonedds.xsd b/etc/cyclonedds.xsd
index da6da80..4e31f2f 100644
--- a/etc/cyclonedds.xsd
+++ b/etc/cyclonedds.xsd
@@ -1,9 +1,5 @@
-
-
+
@@ -11,7 +7,7 @@ CycloneDDS configuration
-
+
@@ -22,15 +18,15 @@ CycloneDDS configuration
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -38,11 +34,11 @@ CycloneDDS configuration
-
+
-
+
@@ -61,10 +57,10 @@ to compatability with standards and with other DDSI implementations.</p>
-
-
-
-
+
+
+
+
@@ -158,19 +154,19 @@ the discovery of peers.</p>
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
<p>This setting controls for how long endpoints discovered via a Cloud
@@ -242,8 +238,8 @@ second be option be used.</p><p>The default value is:
-
-
+
+
@@ -256,7 +252,7 @@ succeeds.</p>
-
+
@@ -288,13 +284,13 @@ by the DDSI 2.1 specification and rarely need to be changed.</p>
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -355,7 +351,7 @@ to the DDSI 2.1 specification, section 9.6.1, constant d1).</p><p>Th
default value is: "10".</p>
-
+
<p>This element specifies the interval between spontaneous transmissions
@@ -383,19 +379,19 @@ settings.</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -481,7 +477,7 @@ address. This option is IPv4-only.</p><p>The default value is:
"0.0.0.0".</p>
-
+
<p>This element specifies the size of DDSI sample fragments generated by
@@ -497,7 +493,7 @@ of which the size is at least the minimum of 1025 and FragmentSize.</p>
B".</p>
-
+
<p>This element specifies the maximum size of the UDP payload that
@@ -620,51 +616,51 @@ reserved. This includes renaming or moving options.</p>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -688,7 +684,7 @@ wildcards) against which the interface names are matched.</p><p>The
default value is: "".</p>
-
+
<p>This setting controls the interval with which a reader will continue
@@ -798,7 +794,7 @@ checks.</p><p>The default value is: "".</p><
keys.</p><p>The default value is: "false".</p>
-
+
<p>This elemnents allows configuring the base interval for sending writer
@@ -808,6 +804,45 @@ 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: "100 ms".</p>
+
+
+
+
+
+
+<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>
+
+
+
+
+
+<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>
+
+
+
+
+
+<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>
+
+
+
+
+
@@ -817,7 +852,7 @@ committed to delivering it.</p><p>The default value is:
"false".</p>
-
+
<p>This setting controls the default participant lease duration. <p>
@@ -826,7 +861,7 @@ committed to delivering it.</p><p>The default value is:
s, min, hr, day.</p><p>The default value is: "10 s".</p>
-
+
<p>This element controls whether or not implementation should internally
@@ -835,6 +870,30 @@ traces can be dumped automatically when some thread appears to have
stopped making progress.</p><p>The default value is:
"false".</p>
+
+
+
+
+
+
+<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>
+
+
+
+
+
+<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>
+
+
+
+
+
@@ -844,7 +903,7 @@ participants this Cyclone DDS instance is willing to service. 0 is
unlimited.</p><p>The default value is: "0".</p>
-
+
<p>This setting limits the maximum number of bytes queued for
@@ -866,7 +925,7 @@ kB".</p>
retransmission.</p><p>The default value is: "200".</p>
-
+
<p>This setting controls the maximum (CDR) serialised size of samples
@@ -889,7 +948,7 @@ measured latencies are quite noisy and are currently not used
anywhere.</p><p>The default value is: "false".</p>
-
+
<p>This setting controls the minimum size of socket receive buffers. The
@@ -908,7 +967,7 @@ a smaller buffer should that attempt fail.</p>
"default".</p>
-
+
<p>This setting controls the minimum size of socket send buffers. This
@@ -931,7 +990,7 @@ positive number is used as the TCP port number.</p><p>The default va
is: "-1".</p>
-
+
<p>This element controls whether all traffic is handled by a single
@@ -940,8 +999,25 @@ 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: "true".</p>
+
+
+
+
+
+
+<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>
+
+
+
+
+
-
+
<p>This setting controls the delay between receipt of a HEARTBEAT
@@ -954,7 +1030,7 @@ that NACK will incorporate the latest information.</p>
s, min, hr, day.</p><p>The default value is: "10 ms".</p>
-
+
<p>This setting controls the delay between the discovering a remote
@@ -984,7 +1060,7 @@ data, speeding up recovery.</p><p>The default value is:
"true".</p>
-
+
<p>This element controls for how long a remote participant that was
@@ -1001,6 +1077,23 @@ 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: "10s".</p>
+
+
+
+
+
+
+<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>
+
+
+
+
+
@@ -1029,7 +1122,7 @@ Internal/RetransmitMergingPeriod.</p><p>The default value is:
-
+
<p>This setting determines the size of the time window in which a NACK of
@@ -1051,7 +1144,7 @@ into the reader caches when resource limits are reached.</p><p>The
default value is: "false".</p>
-
+
<p>Maximum pseudo-random delay in milliseconds between discovering a
@@ -1061,7 +1154,7 @@ remote participant and responding to it.</p>
s, min, hr, day.</p><p>The default value is: "0 ms".</p>
-
+
<p>This setting allows the timing of scheduled events to be rounded up so
@@ -1103,7 +1196,7 @@ by setting Internal/BuiltinEndpointSet to "minimal" but with less loss of
information).</p><p>The default value is: "false".</p>
-
+
<p>This element controls whether samples sent by a writer with QoS
@@ -1137,7 +1230,7 @@ the expense of aggregate bandwidth.</p><p>The default value is:
-
+
@@ -1171,10 +1264,10 @@ to <i>false</i>.</p><p>The default value is: "t
-
-
-
-
+
+
+
+
@@ -1186,7 +1279,7 @@ mark to current traffic conditions, based on retransmit requests and
transmit pressure.</p><p>The default value is: "true".</p>
-
+
<p>This element sets the maximum allowed high-water mark for the Cyclone
@@ -1199,7 +1292,7 @@ this size.</p>
kB".</p>
-
+
<p>This element sets the initial level of the high-water mark for the
@@ -1211,7 +1304,7 @@ Cyclone DDS WHCs, expressed in bytes.</p>
kB".</p>
-
+
<p>This element sets the low-water mark for the Cyclone DDS WHCs,
@@ -1237,7 +1330,7 @@ dds_write_flush function to ensure thta all samples are
written.</p><p>The default value is: "false".</p>
-
+
<p>This setting controls the maximum duration for which actual deletion
@@ -1257,9 +1350,9 @@ partitions.</p>
-
-
-
+
+
+
@@ -1271,7 +1364,7 @@ combinations that are not distributed over the network.</p>
-
+
@@ -1306,7 +1399,7 @@ partitions.</p>
-
+
@@ -1351,7 +1444,7 @@ partition/topic combinations to Cyclone DDS network partitions.</p>
-
+
@@ -1394,8 +1487,8 @@ SSL/TLS for DDSI over TCP.</p>
-
-
+
+
@@ -1403,12 +1496,12 @@ SSL/TLS for DDSI over TCP.</p>
"false".</p>
-
-
-
-
-
-
+
+
+
+
+
+
@@ -1477,12 +1570,12 @@ dealing with expected system sizes, buffer sizes, &c.</p>
-
-
+
+
-
+
<p>This element specifies the size of one allocation unit in the receive
@@ -1496,7 +1589,7 @@ after processing a message, or freed straightaway.</p>
KiB".</p>
-
+
<p>This element sets the size of a single receive buffer. Many receive
@@ -1518,7 +1611,7 @@ running DDSI over TCP.</p>
-
+
@@ -1534,10 +1627,10 @@ General/Transport instead.</p><p>The default value is:
-
-
-
-
+
+
+
+
@@ -1571,7 +1664,7 @@ by establishing connections to other services.</p><p>The default val
is: "-1".</p>
-
+
<p>This element specifies the timeout for blocking TCP read operations.
@@ -1581,7 +1674,7 @@ If this timeout expires then the connection is closed.</p>
s, min, hr, day.</p><p>The default value is: "2 s".</p>
-
+
<p>This element specifies the timeout for blocking TCP write operations.
@@ -1607,7 +1700,7 @@ using a thread pool to send DDSI messages to multiple unicast addresses
is: "false".</p>
-
+
@@ -1632,8 +1725,8 @@ pool.</p><p>The default value is: "8".</p>
-
-
+
+
@@ -1671,8 +1764,8 @@ discovery;</li>
-
-
+
+
@@ -1704,7 +1797,7 @@ assign some of the privileged priorities.</p><p>The default value is
"default".</p>
-
+
<p>This element configures the stack size for this thread. The default
@@ -1726,11 +1819,11 @@ track the DDSI service during application development.</p>
-
-
-
-
-
+
+
+
+
+
diff --git a/src/core/ddsi/src/q_config.c b/src/core/ddsi/src/q_config.c
index 7664e8d..75ca4fe 100644
--- a/src/core/ddsi/src/q_config.c
+++ b/src/core/ddsi/src/q_config.c
@@ -832,6 +832,7 @@ static const struct cfgelem root_cfgelems[] = {
static const struct cfgelem root_cfgattrs[] = {
{ ATTR("xmlns"), 0, "", 0, 0, 0, uf_nop, 0, pf_nop, NULL },
{ ATTR("xmlns:xsi"), 0, "", 0, 0, 0, uf_nop, 0, pf_nop, NULL },
+ { ATTR("xsi:schemaLocation"), 0, "", 0, 0, 0, uf_nop, 0, pf_nop, NULL },
{ ATTR("xsi:noNamespaceSchemaLocation"), 0, "", 0, 0, 0, uf_nop, 0, pf_nop, NULL },
END_MARKER
};