Exclude network channels from documentation
They are not supported yet. Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
parent
d429045255
commit
a25b69be7d
4 changed files with 68 additions and 410 deletions
|
@ -5,13 +5,14 @@ if 0;
|
|||
use strict;
|
||||
use Data::Dumper;
|
||||
|
||||
if (@ARGV != 2) {
|
||||
print STDERR "usage: $0 input output_basename\n";
|
||||
if (@ARGV != 3) {
|
||||
print STDERR "usage: $0 input output.md output.rnc\n";
|
||||
exit 2;
|
||||
}
|
||||
|
||||
my $input = $ARGV[0];
|
||||
my $output = $ARGV[1];
|
||||
my $output_md = $ARGV[1];
|
||||
my $output_rnc = $ARGV[2];
|
||||
|
||||
# This "perl" script extracts the configuration elements and their types and descriptions
|
||||
# from the source and generates a RELAX NG Compact Form (RNC) and a MarkDown version of
|
||||
|
@ -31,6 +32,13 @@ my $output = $ARGV[1];
|
|||
# - knowledge of conversion functions in here
|
||||
# - hard definitions of enums in here
|
||||
# - some other hard-coded knowledge of the top level nodes
|
||||
#
|
||||
# INCANTATION
|
||||
#
|
||||
# trang is a tool for converting (among other things) RNC to XSD
|
||||
#
|
||||
# perl -w ../docs/makernc.pl ../src/core/ddsi/src/q_config.c ../docs/manual/options.md ../etc/cyclonedds.rnc \
|
||||
# && java -jar trang-20091111/trang.jar -I rnc -O xsd ../etc/cyclonedds.rnc ../etc/cyclonedds.xsd
|
||||
$|=1;
|
||||
my $debug = 0;
|
||||
|
||||
|
@ -140,14 +148,15 @@ while (my ($k, $v) = each %typehint2xmltype) {
|
|||
die "script error: values of enum type $k unknown\n" if $v eq "Enum" && $enum_values{$k} eq "";
|
||||
}
|
||||
|
||||
my %tab2elems;
|
||||
my %elem;
|
||||
my %typehint_seen;
|
||||
|
||||
my %tables;
|
||||
|
||||
my @root = read_config ($input);
|
||||
|
||||
{
|
||||
open my $fh, ">", "${output}.rnc" or die "can't open ${output}.rnc";
|
||||
open my $fh, ">", "$output_rnc" or die "can't open $output_rnc";
|
||||
print $fh "namespace a = \"http://relaxng.org/ns/compatibility/annotations/1.0\"\n";
|
||||
print $fh "grammar {\n";
|
||||
print $fh " start =\n";
|
||||
|
@ -161,7 +170,7 @@ my @root = read_config ($input);
|
|||
}
|
||||
|
||||
{
|
||||
open my $fh, ">", "${output}.md" or die "can't open ${output}.md";
|
||||
open my $fh, ">", "$output_md" or die "can't open $output_md";
|
||||
my $sep_blurb = "";
|
||||
conv_table($fh, \&conv_to_md, \@root, "/", " ", "", \$sep_blurb);
|
||||
close $fh;
|
||||
|
@ -216,7 +225,6 @@ sub store_entry {
|
|||
$name =~ s/\|.*//; # aliases are not visible in osplconf
|
||||
my $ltable = lc $table;
|
||||
my $lname = lc $name;
|
||||
push @{$tab2elems{$ltable}}, $name;
|
||||
die "error: no mapping defined for type $typehint\n" if $typehint2xmltype{$typehint} eq "";
|
||||
my $ub = exists $typehint2unit{$typehint} && exists $unit_blurb{$typehint2unit{$typehint}} ? $unit_blurb{$typehint2unit{$typehint}} : "";
|
||||
if ($kind eq "GROUP" || $kind eq "MGROUP") {
|
||||
|
@ -250,15 +258,15 @@ sub store_entry {
|
|||
|
||||
my $desc = clean_description($description).$ub;
|
||||
$desc .= "<p>The default value is: "$defaultvalue".</p>" if defined $defaultvalue;
|
||||
$elem{"$ltable/$lname"} = { kind => $kind, kstr => $kstr,
|
||||
my $fs;
|
||||
push @{$tables{$table}}, { table => $table, name => $name,
|
||||
kind => $kind, kstr => $kstr,
|
||||
subtables => $subtables, multiplicity => $multiplicity,
|
||||
min_occ => $min_occ, max_occ => $max_occ, root => 0,
|
||||
defaultvalue => $defaultvalue, typehint => $typehint,
|
||||
description => $desc };
|
||||
# typehint_seen is for verifying no bogus type hints are defined in this script
|
||||
$typehint_seen{$typehint} = 1;
|
||||
#printf "%s - $s\n", "$ltable/$lname", $elem{"$ltable/lname"};
|
||||
#$typehint = "";
|
||||
}
|
||||
|
||||
sub fmtblurb {
|
||||
|
@ -449,38 +457,55 @@ sub conv_to_md {
|
|||
}
|
||||
|
||||
sub conv_table {
|
||||
my ($fh, $convsub, $tablesref, $fqname, $indent, $prefix, $closure) = @_;
|
||||
my (@ts, @ns);
|
||||
for (@$tablesref) {
|
||||
next unless exists $tab2elems{$_};
|
||||
for (my $i = 0; $i < @{$tab2elems{$_}}; $i++) {
|
||||
push @ts, $_;
|
||||
}
|
||||
push @ns, sort @{$tab2elems{$_}};
|
||||
}
|
||||
my ($fh, $convsub, $tablenames, $fqname, $indent, $prefix, $closure) = @_;
|
||||
my $elems = 0;
|
||||
for (my $i = 0; $i < @ns; $i++) {
|
||||
my $fs = $elem{lc "$ts[$i]/$ns[$i]"};
|
||||
for (@$tablenames) {
|
||||
next unless exists $tables{$_};
|
||||
for my $fs (sort { $a->{name} cmp $b->{name} } @{$tables{$_}}) {
|
||||
my $fqname1;
|
||||
if ($fs->{kind} eq "ATTR") {
|
||||
die unless $elems == 0;
|
||||
$fqname1 = "${fqname}[\@$ns[$i]]";
|
||||
$fqname1 = "${fqname}[\@$fs->{name}]";
|
||||
} else {
|
||||
$fqname1 = "$fqname/$ns[$i]";
|
||||
$fqname1 = "$fqname/$fs->{name}";
|
||||
$elems++;
|
||||
}
|
||||
&$convsub ($fh, $fs, $ns[$i], $fqname1, $indent, ($ts[$i] eq "unsupp_cfgelems") ? "<b>Internal</b>" : $prefix, $closure);
|
||||
my $prefix1 = ($fs->{table} eq "unsupp_cfgelems") ? "<b>Internal</b>" : $prefix;
|
||||
&$convsub ($fh, $fs, $fs->{name}, $fqname1, $indent, $prefix1, $closure);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub read_config {
|
||||
my %incl = (# included options
|
||||
'DDSI_INCLUDE_SSL' => 1,
|
||||
'DDSI_INCLUDE_NETWORK_PARTITIONS' => 1,
|
||||
'DDSI_INCLUDE_SSM' => 1,
|
||||
# excluded options
|
||||
'DDSI_INCLUDE_NETWORK_CHANNELS' => 0,
|
||||
'DDSI_INCLUDE_BANDWIDTH_LIMITING' => 0);
|
||||
my ($input) = @_;
|
||||
my ($name, $table, $kind, @subtables, $multiplicity, $defaultvalue, $typehint, $description);
|
||||
my ($gobbling_description, $in_table, $rest, $deprecated);
|
||||
my @stk = (); # stack of conditional nesting, for each: copy/discard/ignore
|
||||
open FH, "<", $input or die "can't open $input\n";
|
||||
while (<FH>) {
|
||||
chomp;
|
||||
|
||||
# ignore parts guarded by #if/#ifdef/#if!/#ifndef if $incl says so
|
||||
if (/^\s*\#\s*if(n?def|\s*!)?\s*([A-Za-z_][A-Za-z_0-9]*)\s*(?:\/(?:\/.*|\*.*?\*\/)\s*)?$/) {
|
||||
my $x = (not defined $1 || $1 eq "def") ? -1 : 1; my $var = $2;
|
||||
die if $var =~ /^DDSI_INCLUDE_/ && !exists $incl{$var};
|
||||
push @stk, (not defined $incl{$var}) ? 0 : $incl{$var} ? $x : -$x;
|
||||
} elsif (/^\s*\#\s*if/) { # ignore any other conditional
|
||||
push @stk, 0;
|
||||
} elsif (/^\s*\#\s*else/) {
|
||||
$stk[$#stk] = -$stk[$#stk];
|
||||
} elsif (/^\s*\#\s*endif/) {
|
||||
pop @stk;
|
||||
}
|
||||
next if grep {$_ < 0} @stk;
|
||||
|
||||
if ($gobbling_description) {
|
||||
$description .= $_;
|
||||
#print " .. $_\n";
|
||||
|
@ -489,7 +514,8 @@ sub read_config {
|
|||
if ($gobbling_description && /(^|")(\s*\)) *\} *, *$/) {
|
||||
$gobbling_description = 0;
|
||||
my @st = @subtables;
|
||||
store_entry ($name, $table, $kind, \@st, $multiplicity, $defaultvalue, $typehint, $description) unless $deprecated;
|
||||
store_entry ($name, $table, $kind, \@st, $multiplicity, $defaultvalue, $typehint, $description)
|
||||
unless $deprecated;
|
||||
next;
|
||||
}
|
||||
|
||||
|
@ -624,7 +650,8 @@ sub read_config {
|
|||
# description ending on same line
|
||||
$description = $1;
|
||||
my @st = @subtables;
|
||||
store_entry ($name, $table, $kind, \@st, $multiplicity, $defaultvalue, $typehint, $description) unless $deprecated;
|
||||
store_entry ($name, $table, $kind, \@st, $multiplicity, $defaultvalue, $typehint, $description)
|
||||
unless $deprecated;
|
||||
} else {
|
||||
# strip the quotes &c. once the full text has been gathered
|
||||
$description = $rest;
|
||||
|
@ -636,11 +663,10 @@ sub read_config {
|
|||
}
|
||||
close FH;
|
||||
|
||||
#print "$tab2elems{cyclonedds_root_cfgelems}\n";
|
||||
my @rootnames = @{$tab2elems{cyclonedds_root_cfgelems}};
|
||||
die "error: cyclonedds_root_cfgelems has no or multiple entries\n" if @rootnames != 1;
|
||||
die "error: root_cfgelems doesn't exist\n" unless exists $tab2elems{root_cfgelems};
|
||||
my $root = $elem{lc "cyclonedds_root_cfgelems/$rootnames[0]"};
|
||||
my @roots = @{$tables{cyclonedds_root_cfgelems}};
|
||||
die "error: cyclonedds_root_cfgelems has no or multiple entries\n" if @roots != 1;
|
||||
die "error: root_cfgelems doesn't exist\n" unless exists $tables{root_cfgelems};
|
||||
my $root = $roots[0];
|
||||
die "error: root_cfgelems doesn't exist\n" unless defined $root;
|
||||
$root->{min_occ} = $root->{max_occ} = $root->{isroot} = 1;
|
||||
while (my ($k, $v) = each %typehint_seen) {
|
||||
|
|
|
@ -8,7 +8,7 @@ CycloneDDS configuration
|
|||
## //CycloneDDS/Domain
|
||||
Attributes: [Id](#cycloneddsdomainid)
|
||||
|
||||
Children: [Channels](#cycloneddsdomainchannels), [Compatibility](#cycloneddsdomaincompatibility), [Discovery](#cycloneddsdomaindiscovery), [General](#cycloneddsdomaingeneral), [Internal](#cycloneddsdomaininternal), [Partitioning](#cycloneddsdomainpartitioning), [SSL](#cycloneddsdomainssl), [Sizing](#cycloneddsdomainsizing), [TCP](#cycloneddsdomaintcp), [ThreadPool](#cycloneddsdomainthreadpool), [Threads](#cycloneddsdomainthreads), [Tracing](#cycloneddsdomaintracing)
|
||||
Children: [Compatibility](#cycloneddsdomaincompatibility), [Discovery](#cycloneddsdomaindiscovery), [General](#cycloneddsdomaingeneral), [Internal](#cycloneddsdomaininternal), [Partitioning](#cycloneddsdomainpartitioning), [SSL](#cycloneddsdomainssl), [Sizing](#cycloneddsdomainsizing), [TCP](#cycloneddsdomaintcp), [ThreadPool](#cycloneddsdomainthreadpool), [Threads](#cycloneddsdomainthreads), [Tracing](#cycloneddsdomaintracing)
|
||||
|
||||
|
||||
The General element specifying Domain related settings.
|
||||
|
@ -23,113 +23,6 @@ domain ids.
|
|||
The default value is: "any".
|
||||
|
||||
|
||||
### //CycloneDDS/Domain/Channels
|
||||
Children: [Channel](#cycloneddsdomainchannelschannel)
|
||||
|
||||
|
||||
This element is used to group a set of channels. The channels are
|
||||
independent data paths through Cyclone DDS and by using separate threads
|
||||
and setting their priorities appropriately, chanenls can be used to map
|
||||
transport priorities to operating system scheduler priorities, ensuring
|
||||
system-wide end-to-end priority preservation.
|
||||
|
||||
|
||||
#### //CycloneDDS/Domain/Channels/Channel
|
||||
Attributes: [Name](#cycloneddsdomainchannelschannelname), [TransportPriority](#cycloneddsdomainchannelschanneltransportpriority)
|
||||
|
||||
Children: [AuxiliaryBandwidthLimit](#cycloneddsdomainchannelschannelauxiliarybandwidthlimit), [DataBandwidthLimit](#cycloneddsdomainchannelschanneldatabandwidthlimit), [DiffServField](#cycloneddsdomainchannelschanneldiffservfield)
|
||||
|
||||
|
||||
This element defines a channel.
|
||||
|
||||
|
||||
#### //CycloneDDS/Domain/Channels/Channel[@Name]
|
||||
Text
|
||||
|
||||
This attribute specifies name of this channel. The name should uniquely
|
||||
identify the channel.
|
||||
|
||||
|
||||
#### //CycloneDDS/Domain/Channels/Channel[@TransportPriority]
|
||||
Integer
|
||||
|
||||
This attribute sets the transport priority threshold for the channel.
|
||||
Each DCPS data writer has a "transport_priority" QoS and this QoS is used
|
||||
to select a channel for use by this writer. The selected channel is the
|
||||
one with the largest threshold not greater than the writer's transport
|
||||
priority, and if no such channel exists, the channel with the lowest
|
||||
threshold.
|
||||
|
||||
The default value is: "0".
|
||||
|
||||
|
||||
##### //CycloneDDS/Domain/Channels/Channel/AuxiliaryBandwidthLimit
|
||||
Number-with-unit
|
||||
|
||||
This element specifies the maximum transmit rate of auxiliary traffic on
|
||||
this channel (e.g. retransmits, heartbeats, etc). Bandwidth limiting uses
|
||||
a leaky bucket scheme. The default value "inf" means Cyclone DDS imposes
|
||||
no limitation, the underlying operating system and hardware will likely
|
||||
limit the maimum transmit rate.
|
||||
|
||||
The unit must be specified explicitly. Recognised units: Xb/s, Xbps for
|
||||
bits/s or XB/s, XBps for bytes/s; where X is an optional prefix: k for
|
||||
10^3, Ki for 2<sup>10</sup>, M for 10<sup>6</sup>, Mi for 2<sup>20</sup>,
|
||||
G for 10<sup>9</sup>, Gi for 2<sup>30</sup>.
|
||||
|
||||
The default value is: "inf".
|
||||
|
||||
|
||||
##### //CycloneDDS/Domain/Channels/Channel/DataBandwidthLimit
|
||||
Number-with-unit
|
||||
|
||||
This element specifies the maximum transmit rate of new samples and
|
||||
directly related data, for this channel. Bandwidth limiting uses a leaky
|
||||
bucket scheme. The default value "inf" means Cyclone DDS imposes no
|
||||
limitation, the underlying operating system and hardware will likely
|
||||
limit the maimum transmit rate.
|
||||
|
||||
The unit must be specified explicitly. Recognised units: Xb/s, Xbps for
|
||||
bits/s or XB/s, XBps for bytes/s; where X is an optional prefix: k for
|
||||
10^3, Ki for 2<sup>10</sup>, M for 10<sup>6</sup>, Mi for 2<sup>20</sup>,
|
||||
G for 10<sup>9</sup>, Gi for 2<sup>30</sup>.
|
||||
|
||||
The default value is: "inf".
|
||||
|
||||
|
||||
##### //CycloneDDS/Domain/Channels/Channel/DiffServField
|
||||
Integer
|
||||
|
||||
This element describes the DiffServ setting the channel will apply to the
|
||||
networking messages. This parameter determines the value of the diffserv
|
||||
field of the IP version 4 packets sent on this channel which allows QoS
|
||||
setting to be applied to the network traffic send on this channel.<br/>
|
||||
|
||||
Windows platform support for setting the diffserv field is dependent on
|
||||
the OS version.<br/>
|
||||
|
||||
For Windows versions XP SP2 and 2003 to use the diffserv field the
|
||||
following parameter should be added to the register:<br/><br>
|
||||
|
||||
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters\DisableUserTOSSetting<br/><br/>
|
||||
|
||||
The type of this parameter is a DWORD and its value should be set to 0 to
|
||||
allow setting of the diffserv field.<br/><br/>
|
||||
|
||||
For Windows version 7 or higher a new API (qWAVE) has been introduced.
|
||||
For these platforms the specified diffserv value is mapped to one of the
|
||||
support traffic types.
|
||||
|
||||
The mapping is as follows: 1-8 background traffic; 9-40 excellent
|
||||
traffic; 41-55 audio/video traffic; 56 voice traffic; 57-63 control
|
||||
traffic.
|
||||
|
||||
When an application is run without Administrative priveleges then only
|
||||
the diffserv value of 0, 8, 40 or 56 is allowed.
|
||||
|
||||
The default value is: "0".
|
||||
|
||||
|
||||
### //CycloneDDS/Domain/Compatibility
|
||||
Children: [AssumeRtiHasPmdEndpoints](#cycloneddsdomaincompatibilityassumertihaspmdendpoints), [ExplicitlyPublishQosSetToDefault](#cycloneddsdomaincompatibilityexplicitlypublishqossettodefault), [ManySocketsMode](#cycloneddsdomaincompatibilitymanysocketsmode), [StandardsConformance](#cycloneddsdomaincompatibilitystandardsconformance)
|
||||
|
||||
|
@ -641,7 +534,7 @@ The default value is: "default".
|
|||
|
||||
|
||||
### //CycloneDDS/Domain/Internal
|
||||
Children: [AccelerateRexmitBlockSize](#cycloneddsdomaininternalacceleraterexmitblocksize), [AssumeMulticastCapable](#cycloneddsdomaininternalassumemulticastcapable), [AutoReschedNackDelay](#cycloneddsdomaininternalautoreschednackdelay), [AuxiliaryBandwidthLimit](#cycloneddsdomaininternalauxiliarybandwidthlimit), [BuiltinEndpointSet](#cycloneddsdomaininternalbuiltinendpointset), [ControlTopic](#cycloneddsdomaininternalcontroltopic), [DDSI2DirectMaxThreads](#cycloneddsdomaininternalddsi2directmaxthreads), [DefragReliableMaxSamples](#cycloneddsdomaininternaldefragreliablemaxsamples), [DefragUnreliableMaxSamples](#cycloneddsdomaininternaldefragunreliablemaxsamples), [DeliveryQueueMaxSamples](#cycloneddsdomaininternaldeliveryqueuemaxsamples), [EnableExpensiveChecks](#cycloneddsdomaininternalenableexpensivechecks), [GenerateKeyhash](#cycloneddsdomaininternalgeneratekeyhash), [HeartbeatInterval](#cycloneddsdomaininternalheartbeatinterval), [LateAckMode](#cycloneddsdomaininternallateackmode), [LeaseDuration](#cycloneddsdomaininternalleaseduration), [LivelinessMonitoring](#cycloneddsdomaininternallivelinessmonitoring), [MaxParticipants](#cycloneddsdomaininternalmaxparticipants), [MaxQueuedRexmitBytes](#cycloneddsdomaininternalmaxqueuedrexmitbytes), [MaxQueuedRexmitMessages](#cycloneddsdomaininternalmaxqueuedrexmitmessages), [MaxSampleSize](#cycloneddsdomaininternalmaxsamplesize), [MeasureHbToAckLatency](#cycloneddsdomaininternalmeasurehbtoacklatency), [MinimumSocketReceiveBufferSize](#cycloneddsdomaininternalminimumsocketreceivebuffersize), [MinimumSocketSendBufferSize](#cycloneddsdomaininternalminimumsocketsendbuffersize), [MonitorPort](#cycloneddsdomaininternalmonitorport), [MultipleReceiveThreads](#cycloneddsdomaininternalmultiplereceivethreads), [NackDelay](#cycloneddsdomaininternalnackdelay), [PreEmptiveAckDelay](#cycloneddsdomaininternalpreemptiveackdelay), [PrimaryReorderMaxSamples](#cycloneddsdomaininternalprimaryreordermaxsamples), [PrioritizeRetransmit](#cycloneddsdomaininternalprioritizeretransmit), [RediscoveryBlacklistDuration](#cycloneddsdomaininternalrediscoveryblacklistduration), [RetransmitMerging](#cycloneddsdomaininternalretransmitmerging), [RetransmitMergingPeriod](#cycloneddsdomaininternalretransmitmergingperiod), [RetryOnRejectBestEffort](#cycloneddsdomaininternalretryonrejectbesteffort), [SPDPResponseMaxDelay](#cycloneddsdomaininternalspdpresponsemaxdelay), [ScheduleTimeRounding](#cycloneddsdomaininternalscheduletimerounding), [SecondaryReorderMaxSamples](#cycloneddsdomaininternalsecondaryreordermaxsamples), [SendAsync](#cycloneddsdomaininternalsendasync), [SquashParticipants](#cycloneddsdomaininternalsquashparticipants), [SynchronousDeliveryLatencyBound](#cycloneddsdomaininternalsynchronousdeliverylatencybound), [SynchronousDeliveryPriorityThreshold](#cycloneddsdomaininternalsynchronousdeliveryprioritythreshold), [Test](#cycloneddsdomaininternaltest), [UnicastResponseToSPDPMessages](#cycloneddsdomaininternalunicastresponsetospdpmessages), [UseMulticastIfMreqn](#cycloneddsdomaininternalusemulticastifmreqn), [Watermarks](#cycloneddsdomaininternalwatermarks), [WriteBatch](#cycloneddsdomaininternalwritebatch), [WriterLingerDuration](#cycloneddsdomaininternalwriterlingerduration)
|
||||
Children: [AccelerateRexmitBlockSize](#cycloneddsdomaininternalacceleraterexmitblocksize), [AssumeMulticastCapable](#cycloneddsdomaininternalassumemulticastcapable), [AutoReschedNackDelay](#cycloneddsdomaininternalautoreschednackdelay), [BuiltinEndpointSet](#cycloneddsdomaininternalbuiltinendpointset), [ControlTopic](#cycloneddsdomaininternalcontroltopic), [DDSI2DirectMaxThreads](#cycloneddsdomaininternalddsi2directmaxthreads), [DefragReliableMaxSamples](#cycloneddsdomaininternaldefragreliablemaxsamples), [DefragUnreliableMaxSamples](#cycloneddsdomaininternaldefragunreliablemaxsamples), [DeliveryQueueMaxSamples](#cycloneddsdomaininternaldeliveryqueuemaxsamples), [EnableExpensiveChecks](#cycloneddsdomaininternalenableexpensivechecks), [GenerateKeyhash](#cycloneddsdomaininternalgeneratekeyhash), [HeartbeatInterval](#cycloneddsdomaininternalheartbeatinterval), [LateAckMode](#cycloneddsdomaininternallateackmode), [LeaseDuration](#cycloneddsdomaininternalleaseduration), [LivelinessMonitoring](#cycloneddsdomaininternallivelinessmonitoring), [MaxParticipants](#cycloneddsdomaininternalmaxparticipants), [MaxQueuedRexmitBytes](#cycloneddsdomaininternalmaxqueuedrexmitbytes), [MaxQueuedRexmitMessages](#cycloneddsdomaininternalmaxqueuedrexmitmessages), [MaxSampleSize](#cycloneddsdomaininternalmaxsamplesize), [MeasureHbToAckLatency](#cycloneddsdomaininternalmeasurehbtoacklatency), [MinimumSocketReceiveBufferSize](#cycloneddsdomaininternalminimumsocketreceivebuffersize), [MinimumSocketSendBufferSize](#cycloneddsdomaininternalminimumsocketsendbuffersize), [MonitorPort](#cycloneddsdomaininternalmonitorport), [MultipleReceiveThreads](#cycloneddsdomaininternalmultiplereceivethreads), [NackDelay](#cycloneddsdomaininternalnackdelay), [PreEmptiveAckDelay](#cycloneddsdomaininternalpreemptiveackdelay), [PrimaryReorderMaxSamples](#cycloneddsdomaininternalprimaryreordermaxsamples), [PrioritizeRetransmit](#cycloneddsdomaininternalprioritizeretransmit), [RediscoveryBlacklistDuration](#cycloneddsdomaininternalrediscoveryblacklistduration), [RetransmitMerging](#cycloneddsdomaininternalretransmitmerging), [RetransmitMergingPeriod](#cycloneddsdomaininternalretransmitmergingperiod), [RetryOnRejectBestEffort](#cycloneddsdomaininternalretryonrejectbesteffort), [SPDPResponseMaxDelay](#cycloneddsdomaininternalspdpresponsemaxdelay), [ScheduleTimeRounding](#cycloneddsdomaininternalscheduletimerounding), [SecondaryReorderMaxSamples](#cycloneddsdomaininternalsecondaryreordermaxsamples), [SendAsync](#cycloneddsdomaininternalsendasync), [SquashParticipants](#cycloneddsdomaininternalsquashparticipants), [SynchronousDeliveryLatencyBound](#cycloneddsdomaininternalsynchronousdeliverylatencybound), [SynchronousDeliveryPriorityThreshold](#cycloneddsdomaininternalsynchronousdeliveryprioritythreshold), [Test](#cycloneddsdomaininternaltest), [UnicastResponseToSPDPMessages](#cycloneddsdomaininternalunicastresponsetospdpmessages), [UseMulticastIfMreqn](#cycloneddsdomaininternalusemulticastifmreqn), [Watermarks](#cycloneddsdomaininternalwatermarks), [WriteBatch](#cycloneddsdomaininternalwritebatch), [WriterLingerDuration](#cycloneddsdomaininternalwriterlingerduration)
|
||||
|
||||
|
||||
The Internal elements deal with a variety of settings that evolving and
|
||||
|
@ -687,25 +580,6 @@ Valid values are finite durations with an explicit unit or the keyword
|
|||
The default value is: "1 s".
|
||||
|
||||
|
||||
#### //CycloneDDS/Domain/Internal/AuxiliaryBandwidthLimit
|
||||
Number-with-unit
|
||||
|
||||
This element specifies the maximum transmit rate of auxiliary traffic not
|
||||
bound to a specific channel, such as discovery traffic, as well as
|
||||
auxiliary traffic related to a certain channel if that channel has
|
||||
elected to share this global AuxiliaryBandwidthLimit. Bandwidth limiting
|
||||
uses a leaky bucket scheme. The default value "inf" means Cyclone DDS
|
||||
imposes no limitation, the underlying operating system and hardware will
|
||||
likely limit the maimum transmit rate.
|
||||
|
||||
The unit must be specified explicitly. Recognised units: Xb/s, Xbps for
|
||||
bits/s or XB/s, XBps for bytes/s; where X is an optional prefix: k for
|
||||
10^3, Ki for 2<sup>10</sup>, M for 10<sup>6</sup>, Mi for 2<sup>20</sup>,
|
||||
G for 10<sup>9</sup>, Gi for 2<sup>30</sup>.
|
||||
|
||||
The default value is: "inf".
|
||||
|
||||
|
||||
#### //CycloneDDS/Domain/Internal/BuiltinEndpointSet
|
||||
One of: full, writers, minimal
|
||||
|
||||
|
|
|
@ -14,98 +14,6 @@ domain ids.</p><p>The default value is: "any".</p>""" ] ]
|
|||
text
|
||||
}?
|
||||
& [ a:documentation [ xml:lang="en" """
|
||||
<p>This element is used to group a set of channels. The channels are
|
||||
independent data paths through Cyclone DDS and by using separate threads
|
||||
and setting their priorities appropriately, chanenls can be used to map
|
||||
transport priorities to operating system scheduler priorities, ensuring
|
||||
system-wide end-to-end priority preservation.</p>""" ] ]
|
||||
element Channels {
|
||||
[ a:documentation [ xml:lang="en" """
|
||||
<p>This element defines a channel.</p>""" ] ]
|
||||
element Channel {
|
||||
[ a:documentation [ xml:lang="en" """
|
||||
<p>This attribute specifies name of this channel. The name should
|
||||
uniquely identify the channel.</p>""" ] ]
|
||||
attribute Name {
|
||||
text
|
||||
}
|
||||
& [ a:documentation [ xml:lang="en" """
|
||||
<p>This attribute sets the transport priority threshold for the channel.
|
||||
Each DCPS data writer has a "transport_priority" QoS and this QoS is used
|
||||
to select a channel for use by this writer. The selected channel is the
|
||||
one with the largest threshold not greater than the writer's transport
|
||||
priority, and if no such channel exists, the channel with the lowest
|
||||
threshold.</p><p>The default value is: "0".</p>""" ] ]
|
||||
attribute TransportPriority {
|
||||
xsd:integer
|
||||
}?
|
||||
& [ a:documentation [ xml:lang="en" """
|
||||
<p>This element specifies the maximum transmit rate of auxiliary traffic
|
||||
on this channel (e.g. retransmits, heartbeats, etc). Bandwidth limiting
|
||||
uses a leaky bucket scheme. The default value "inf" means Cyclone DDS
|
||||
imposes no limitation, the underlying operating system and hardware will
|
||||
likely limit the maimum transmit rate.</p>
|
||||
|
||||
<p>The unit must be specified explicitly. Recognised units: <i>X</i>b/s,
|
||||
<i>X</i>bps for bits/s or <i>X</i>B/s, <i>X</i>Bps for bytes/s; where
|
||||
<i>X</i> is an optional prefix: k for 10<sup>3</sup>, Ki for
|
||||
2<sup>10</sup>, M for 10<sup>6</sup>, Mi for 2<sup>20</sup>, G for
|
||||
10<sup>9</sup>, Gi for 2<sup>30</sup>.</p><p>The default value is:
|
||||
"inf".</p>""" ] ]
|
||||
element AuxiliaryBandwidthLimit {
|
||||
bandwidth
|
||||
}?
|
||||
& [ a:documentation [ xml:lang="en" """
|
||||
<p>This element specifies the maximum transmit rate of new samples and
|
||||
directly related data, for this channel. Bandwidth limiting uses a leaky
|
||||
bucket scheme. The default value "inf" means Cyclone DDS imposes no
|
||||
limitation, the underlying operating system and hardware will likely
|
||||
limit the maimum transmit rate.</p>
|
||||
|
||||
<p>The unit must be specified explicitly. Recognised units: <i>X</i>b/s,
|
||||
<i>X</i>bps for bits/s or <i>X</i>B/s, <i>X</i>Bps for bytes/s; where
|
||||
<i>X</i> is an optional prefix: k for 10<sup>3</sup>, Ki for
|
||||
2<sup>10</sup>, M for 10<sup>6</sup>, Mi for 2<sup>20</sup>, G for
|
||||
10<sup>9</sup>, Gi for 2<sup>30</sup>.</p><p>The default value is:
|
||||
"inf".</p>""" ] ]
|
||||
element DataBandwidthLimit {
|
||||
bandwidth
|
||||
}?
|
||||
& [ a:documentation [ xml:lang="en" """
|
||||
<p>This element describes the DiffServ setting the channel will apply to
|
||||
the networking messages. This parameter determines the value of the
|
||||
diffserv field of the IP version 4 packets sent on this channel which
|
||||
allows QoS setting to be applied to the network traffic send on this
|
||||
channel.<br/>
|
||||
|
||||
Windows platform support for setting the diffserv field is dependent on
|
||||
the OS version.<br/>
|
||||
|
||||
For Windows versions XP SP2 and 2003 to use the diffserv field the
|
||||
following parameter should be added to the register:<br/><br>
|
||||
|
||||
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters\DisableUserTOSSetting<br/><br/>
|
||||
|
||||
The type of this parameter is a DWORD and its value should be set to 0 to
|
||||
allow setting of the diffserv field.<br/><br/>
|
||||
|
||||
For Windows version 7 or higher a new API (qWAVE) has been introduced.
|
||||
For these platforms the specified diffserv value is mapped to one of the
|
||||
support traffic types.
|
||||
|
||||
The mapping is as follows: 1-8 background traffic; 9-40 excellent
|
||||
traffic; 41-55 audio/video traffic; 56 voice traffic; 57-63 control
|
||||
traffic.
|
||||
|
||||
When an application is run without Administrative priveleges then only
|
||||
the diffserv value of 0, 8, 40 or 56 is allowed.</p><p>The default value
|
||||
is: "0".</p>""" ] ]
|
||||
element DiffServField {
|
||||
xsd:integer
|
||||
}?
|
||||
}*
|
||||
}?
|
||||
& [ 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 {
|
||||
|
@ -567,24 +475,6 @@ day.</p><p>The default value is: "1 s".</p>""" ] ]
|
|||
duration_inf
|
||||
}?
|
||||
& [ a:documentation [ xml:lang="en" """
|
||||
<p>This element specifies the maximum transmit rate of auxiliary traffic
|
||||
not bound to a specific channel, such as discovery traffic, as well as
|
||||
auxiliary traffic related to a certain channel if that channel has
|
||||
elected to share this global AuxiliaryBandwidthLimit. Bandwidth limiting
|
||||
uses a leaky bucket scheme. The default value "inf" means Cyclone DDS
|
||||
imposes no limitation, the underlying operating system and hardware will
|
||||
likely limit the maimum transmit rate.</p>
|
||||
|
||||
<p>The unit must be specified explicitly. Recognised units: <i>X</i>b/s,
|
||||
<i>X</i>bps for bits/s or <i>X</i>B/s, <i>X</i>Bps for bytes/s; where
|
||||
<i>X</i> is an optional prefix: k for 10<sup>3</sup>, Ki for
|
||||
2<sup>10</sup>, M for 10<sup>6</sup>, Mi for 2<sup>20</sup>, G for
|
||||
10<sup>9</sup>, Gi for 2<sup>30</sup>.</p><p>The default value is:
|
||||
"inf".</p>""" ] ]
|
||||
element AuxiliaryBandwidthLimit {
|
||||
bandwidth
|
||||
}?
|
||||
& [ 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>
|
||||
|
|
|
@ -18,7 +18,6 @@ CycloneDDS configuration</xs:documentation>
|
|||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element minOccurs="0" ref="Channels"/>
|
||||
<xs:element minOccurs="0" ref="Compatibility"/>
|
||||
<xs:element minOccurs="0" ref="Discovery"/>
|
||||
<xs:element minOccurs="0" ref="General"/>
|
||||
|
@ -50,118 +49,6 @@ domain ids.</p><p>The default value is: &quot;any&quot;.<
|
|||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="Channels">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<p>This element is used to group a set of channels. The channels are
|
||||
independent data paths through Cyclone DDS and by using separate threads
|
||||
and setting their priorities appropriately, chanenls can be used to map
|
||||
transport priorities to operating system scheduler priorities, ensuring
|
||||
system-wide end-to-end priority preservation.</p></xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Channel"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="Channel">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<p>This element defines a channel.</p></xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element minOccurs="0" name="AuxiliaryBandwidthLimit" type="bandwidth">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<p>This element specifies the maximum transmit rate of auxiliary traffic
|
||||
on this channel (e.g. retransmits, heartbeats, etc). Bandwidth limiting
|
||||
uses a leaky bucket scheme. The default value "inf" means Cyclone DDS
|
||||
imposes no limitation, the underlying operating system and hardware will
|
||||
likely limit the maimum transmit rate.</p>
|
||||
|
||||
<p>The unit must be specified explicitly. Recognised units: <i>X</i>b/s,
|
||||
<i>X</i>bps for bits/s or <i>X</i>B/s, <i>X</i>Bps for bytes/s; where
|
||||
<i>X</i> is an optional prefix: k for 10<sup>3</sup>, Ki for
|
||||
2<sup>10</sup>, M for 10<sup>6</sup>, Mi for 2<sup>20</sup>, G for
|
||||
10<sup>9</sup>, Gi for 2<sup>30</sup>.</p><p>The default value is:
|
||||
&quot;inf&quot;.</p></xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element minOccurs="0" ref="DataBandwidthLimit"/>
|
||||
<xs:element minOccurs="0" ref="DiffServField"/>
|
||||
</xs:all>
|
||||
<xs:attribute name="Name" use="required">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<p>This attribute specifies name of this channel. The name should
|
||||
uniquely identify the channel.</p></xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
<xs:attribute name="TransportPriority" type="xs:integer">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<p>This attribute sets the transport priority threshold for the channel.
|
||||
Each DCPS data writer has a "transport_priority" QoS and this QoS is used
|
||||
to select a channel for use by this writer. The selected channel is the
|
||||
one with the largest threshold not greater than the writer's transport
|
||||
priority, and if no such channel exists, the channel with the lowest
|
||||
threshold.</p><p>The default value is: &quot;0&quot;.</p></xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="DataBandwidthLimit" type="bandwidth">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<p>This element specifies the maximum transmit rate of new samples and
|
||||
directly related data, for this channel. Bandwidth limiting uses a leaky
|
||||
bucket scheme. The default value "inf" means Cyclone DDS imposes no
|
||||
limitation, the underlying operating system and hardware will likely
|
||||
limit the maimum transmit rate.</p>
|
||||
|
||||
<p>The unit must be specified explicitly. Recognised units: <i>X</i>b/s,
|
||||
<i>X</i>bps for bits/s or <i>X</i>B/s, <i>X</i>Bps for bytes/s; where
|
||||
<i>X</i> is an optional prefix: k for 10<sup>3</sup>, Ki for
|
||||
2<sup>10</sup>, M for 10<sup>6</sup>, Mi for 2<sup>20</sup>, G for
|
||||
10<sup>9</sup>, Gi for 2<sup>30</sup>.</p><p>The default value is:
|
||||
&quot;inf&quot;.</p></xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="DiffServField" type="xs:integer">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<p>This element describes the DiffServ setting the channel will apply to
|
||||
the networking messages. This parameter determines the value of the
|
||||
diffserv field of the IP version 4 packets sent on this channel which
|
||||
allows QoS setting to be applied to the network traffic send on this
|
||||
channel.<br/>
|
||||
|
||||
Windows platform support for setting the diffserv field is dependent on
|
||||
the OS version.<br/>
|
||||
|
||||
For Windows versions XP SP2 and 2003 to use the diffserv field the
|
||||
following parameter should be added to the register:<br/><br>
|
||||
|
||||
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TcpIp\Parameters\DisableUserTOSSetting<br/><br/>
|
||||
|
||||
The type of this parameter is a DWORD and its value should be set to 0 to
|
||||
allow setting of the diffserv field.<br/><br/>
|
||||
|
||||
For Windows version 7 or higher a new API (qWAVE) has been introduced.
|
||||
For these platforms the specified diffserv value is mapped to one of the
|
||||
support traffic types.
|
||||
|
||||
The mapping is as follows: 1-8 background traffic; 9-40 excellent
|
||||
traffic; 41-55 audio/video traffic; 56 voice traffic; 57-63 control
|
||||
traffic.
|
||||
|
||||
When an application is run without Administrative priveleges then only
|
||||
the diffserv value of 0, 8, 40 or 56 is allowed.</p><p>The default value
|
||||
is: &quot;0&quot;.</p></xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="Compatibility">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
|
@ -732,25 +619,6 @@ reserved. This includes renaming or moving options.</p></xs:documentation>
|
|||
<xs:element minOccurs="0" ref="AccelerateRexmitBlockSize"/>
|
||||
<xs:element minOccurs="0" ref="AssumeMulticastCapable"/>
|
||||
<xs:element minOccurs="0" ref="AutoReschedNackDelay"/>
|
||||
<xs:element minOccurs="0" name="AuxiliaryBandwidthLimit" type="bandwidth">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<p>This element specifies the maximum transmit rate of auxiliary traffic
|
||||
not bound to a specific channel, such as discovery traffic, as well as
|
||||
auxiliary traffic related to a certain channel if that channel has
|
||||
elected to share this global AuxiliaryBandwidthLimit. Bandwidth limiting
|
||||
uses a leaky bucket scheme. The default value "inf" means Cyclone DDS
|
||||
imposes no limitation, the underlying operating system and hardware will
|
||||
likely limit the maimum transmit rate.</p>
|
||||
|
||||
<p>The unit must be specified explicitly. Recognised units: <i>X</i>b/s,
|
||||
<i>X</i>bps for bits/s or <i>X</i>B/s, <i>X</i>Bps for bytes/s; where
|
||||
<i>X</i> is an optional prefix: k for 10<sup>3</sup>, Ki for
|
||||
2<sup>10</sup>, M for 10<sup>6</sup>, Mi for 2<sup>20</sup>, G for
|
||||
10<sup>9</sup>, Gi for 2<sup>30</sup>.</p><p>The default value is:
|
||||
&quot;inf&quot;.</p></xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element minOccurs="0" ref="BuiltinEndpointSet"/>
|
||||
<xs:element minOccurs="0" ref="ControlTopic"/>
|
||||
<xs:element minOccurs="0" ref="DDSI2DirectMaxThreads"/>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue