Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ Some of the highlights:

* Support for ROS2 Dashing and Eloquent (via an adaption layer).
* Support for an arbitrary number of concurrent DDS domains (fully independent instantiations of DDS) in a single process.
* Abstracting the notion of samples, types and reader history caches, allowing overriding the default implementations of these to get behaviours more suited to the applications.
* Abstracting the notion of samples, types and reader history caches, allowing overriding the default implementations of these to get behaviors more suited to the applications.
This is particularly relevant to language bindings and embedding Cyclone DDS in other frameworks, such as ROS2.
* Platform support is extended beyond the usual Linux/Windows/macOS: FreeRTOS is now known to work, as is Solaris 2.6 on sun4m machines.
* Acceptance of some malformed messages from certain implementations improved interoperability on the wire.
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ Zero-configuration discovery is also included in the standard and supported by a
DDS actually brings more: publish-subscribe messaging is a nice abstraction over "ordinary" networking, but plain publish-subscribe doesn't affect how one *thinks* about systems.
A very powerful architecture that truly changes the perspective on distributed systems is that of the "shared data space", in itself an old idea, and really just a distributed database.
Most shared data space designs have failed miserably in real-time control systems because they provided strong consistency guarantees and sacrificed too much performance and flexibility.
The *eventually consistent* shared data space of DDS has been very successful in helping with building systems that need to satisfy many "ilities": dependability, maintainability, extensibility, upgradeability, ...
The *eventually consistent* shared data space of DDS has been very successful in helping with building systems that need to satisfy many "ilities": dependability, maintainability, extensibility, upgradeability, etc.
Truth be told, that's why it was invented, and publish-subscribe messaging was simply an implementation technique.

Cyclone DDS aims at full coverage of the specs and today already covers most of this.
Expand Down
2 changes: 1 addition & 1 deletion docs/dev/data path - receive.svg

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this actually correct to delete?

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/dev/data path.graffle
Original file line number Diff line number Diff line change
Expand Up @@ -1795,7 +1795,7 @@ The deserializer operates from the
{\*\expandedcolortbl;;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0

\f0\fs18 \cf0 given that the kernel can only do groupWrite, and not deliver data to an individual reader, might as well design to that behaviour}</string>
\f0\fs18 \cf0 given that the kernel can only do groupWrite, and not deliver data to an individual reader, might as well design to that behavior}</string>
<key>VerticalPad</key>
<real>2</real>
</dict>
Expand Down
2 changes: 1 addition & 1 deletion docs/dev/dds_security_effort.md
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,7 @@ DDS_RETCODE_NOT_ALLOWED_BY_SECURITY in the ddsc API (not used)).

Maybe we have to do some additional cleanup when a failure is encountered.

Some tests probably have to be adjusted for the new behaviour.
Some tests probably have to be adjusted for the new behavior.


## Multiple configurations<a name="multiple-configurations" />
Expand Down
4 changes: 2 additions & 2 deletions docs/manual/about_dds/ddsi-transient_behavior.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
.. _`DDSI-specific transient-local behaviour`:
.. _`DDSI-specific transient-local behavior`:

***************************************
DDSI-Specific Transient-Local Behaviour
DDSI-Specific Transient-Local behavior
***************************************

The DCPS specification provides *transient-local*, *transient*,
Expand Down
2 changes: 1 addition & 1 deletion docs/manual/about_dds/discovery_participants.rst
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ writers with the two participants. For |var-project|, SEDP also exchanges inform
publishers, subscribers and topics in a manner compatible with OpenSplice.

The SEDP data is handled as reliable (see :ref:`reliable_coms`), transient-local data
(see :ref:`DDSI-specific transient-local behaviour`). Therefore, the SEDP Writers
(see :ref:`DDSI-specific transient-local behavior`). Therefore, the SEDP Writers
send Heartbeats. If the SEDP Readers detect they have not yet received all samples and send
AckNacks requesting re-transmissions, the Writer responds to these and eventually
receives a pure acknowledgement informing it that the reader has now received the
Expand Down
2 changes: 1 addition & 1 deletion docs/manual/about_dds/mapping_entities.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Mapping of DCPS Entities to DDSI Entities

Each DCPS domain participant in a domain has a corresponding DDSI participant.
These DDSI participants drive the discovery of participants, readers, and writers
via the discovery protocols (:ref:`discovery_behaviour`). By default, each DDSI participant
via the discovery protocols (:ref:`discovery_behavior`). By default, each DDSI participant
has a unique address on the network in the form of its own UDP/IP socket with a unique
port number.

Expand Down
2 changes: 1 addition & 1 deletion docs/manual/about_dds/publishers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Publishers
A Publisher is a producer of data on a Domain. It uses the :ref:`domainparticipants_bm` to gain
access to the Domain and is created using it. That is, the Publisher passes down the
Domain from its parent class DomainParticipant. A Publisher allows the :ref:`datawriters_bm`
associated with it to share the same behaviour, for example:
associated with it to share the same behavior, for example:

- Liveliness notifications
- :ref:`qos_bm`
Expand Down
2 changes: 1 addition & 1 deletion docs/manual/about_dds/qos.rst
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ being accessed:


For a detailed explanation of the different QoSPolicies and their effects on the
behaviour of CycloneDDS, refer to the |url::dds_spec| v1.4 section 2.2.3.
behavior of CycloneDDS, refer to the |url::dds_spec| v1.4 section 2.2.3.

Default and Inherited QoSes
---------------------------
Expand Down
4 changes: 2 additions & 2 deletions docs/manual/about_dds/reliable_communication.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ AckNack messages to inform the writer of samples received and not received. When
writer indicates that it requires a response to a heartbeat, the readers sends an AckNack
message (even when no samples are missing).

Combining these behaviours allows the writer to remove old samples from its WHC when it fills
Combining these behaviors allows the writer to remove old samples from its WHC when it fills
up the cache, enabling readers to receive all data reliably.

The default |var-project-short| behaviour is to never to consider readers unresponsive. The
The default |var-project-short| behavior is to never to consider readers unresponsive. The
DDSI specification does not define how to handle a situation where readers do not respond
to a heartbeat, or fail to receive samples from a writer after a re-transmission request.
A solution to this situation is to periodically check the participant containing the reader.
Expand Down
2 changes: 1 addition & 1 deletion docs/manual/about_dds/subscribers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Subscribers

A Subscriber is a consumer of data on a Domain. It uses the :ref:`domainparticipants_bm`
to gain access to the Domain and is created using it. A Subscriber allows the
:ref:`datareaders_bm` associated with it to share the same behaviour, such as:
:ref:`datareaders_bm` associated with it to share the same behavior, such as:

- Liveliness notifications
- :ref:`qos_bm`
Expand Down
20 changes: 10 additions & 10 deletions docs/manual/config/config_file_reference.rst
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ One of: lax, strict, pedantic
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:
* pedantic: very strictly conform to the specification, ultimately for compliance 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, the current text is in effect, and that is what pedantic currently does.

* strict: a relatively less strict view of the standard than does pedantic: it follows the established behaviour where the standard is obviously in error.
* strict: a relatively less strict view of the standard than does pedantic: it follows the established behavior where the standard is obviously in error.

* lax: 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.

Expand Down Expand Up @@ -302,7 +302,7 @@ This attribute determines controls the localhost will automatically be added to

* true: always

* default: if multicast discovery is unavailable *
* default: if multicast discovery is unavailable *

The default value is: ``default``

Expand Down Expand Up @@ -639,7 +639,7 @@ The default value is: ``empty``

Text

Provide an initial seed for the entity naming. Your string will be hashed to provide the random state. When provided, the same sequence of names is generated every run. Creating your entities in the same order will ensure they are the same between runs. If you run multiple nodes, set this via environment variable to ensure every node generates unique names. A random starting seed is chosen when left empty, (the default).
Provide an initial seed for the entity naming. Your string will be hashed to provide the random state. When provided, the same sequence of names is generated every run. Creating your entities in the same order will ensure they are the same between runs. If you run multiple nodes, set this via environment variable to ensure every node generates unique names. A random starting seed is chosen when left empty, (the default).

The default value is: ``<empty>``

Expand Down Expand Up @@ -710,7 +710,7 @@ This element defines a network interface. You can set autodetermine="true" to au

Text

This attribute specifies the address of the interface. With ipv4 allows matching on the network part if the host part is set to zero.
This attribute specifies the address of the interface. With ipv4 allows matching on the network part if the host part is set to zero.

The default value is: ``<empty>``

Expand Down Expand Up @@ -773,7 +773,7 @@ The default value is: ``default``

Text

This attribute specifies the name of the interface.
This attribute specifies the name of the interface.

The default value is: ``<empty>``

Expand Down Expand Up @@ -1435,7 +1435,7 @@ The default value is: ``2147483647 B``

Boolean

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.
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 behavior. The measured latencies are quite noisy and are currently not used anywhere.

The default value is: ``false``

Expand Down Expand Up @@ -2179,7 +2179,7 @@ Examples file URIs:

Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg="sha-256"; boundary="----F9A8A198D6F08E1285A292ADF14DD04F"

This is an S/MIME signed message
This is an S/MIME signed message

------F9A8A198D6F08E1285A292ADF14DD04F

Expand All @@ -2191,7 +2191,7 @@ xsi:noNamespaceSchemaLocation="omg\_shared\_ca\_governance.xsd">

<domain\_access\_rules>

. . .
. . .

</domain\_access\_rules>

Expand Down Expand Up @@ -2960,8 +2960,8 @@ The default value is: ``none``

..
generated from ddsi_config.h[94ad20bdb44ea1f393ba906865b1da591bbe1b57]
generated from ddsi_config.c[9fb9ace4394a1b7d50f4e0fa3905bbba2a183e36]
generated from ddsi__cfgelems.h[6e57a9213340839aeac89e7417646451cc5bb706]
generated from ddsi_config.c[824f3aec4546af5fc49d767a9cb8d98b6554bcdd]
generated from ddsi__cfgelems.h[f09dba36857055fdfc4cf50554dd9133aa4c40d4]
generated from cfgunits.h[05f093223fce107d24dd157ebaafa351dc9df752]
generated from _confgen.h[bb9a0fc6ef1f7f7c46790ee00132e340e5fff36d]
generated from _confgen.c[0d833a6f2c98902f1249e63aed03a6164f0791d6]
Expand Down
4 changes: 2 additions & 2 deletions docs/manual/config/data-path-config.rst
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ Samples in DDS can be arbitrarily large, and do not always fit within a single d
DDSI can fragment samples so they can fit in UDP datagrams. IP has facilities to fragment
UDP datagrams into network packets. The DDSI specification (see |url::dds2.5| section 8.4.14.1.2)
describes how to send fragments (Data must only be fragmented if required). However, |var-project|
provides a fully configurable behaviour.
provides a fully configurable behavior.

If the serialised form of a sample is at least the size set in:
:ref:`General/FragmentSize <//CycloneDDS/Domain/General/FragmentSize>`,
Expand Down Expand Up @@ -141,7 +141,7 @@ Receiving of data is split into multiple threads:
- Liveliness assertions

- One or more delivery threads dedicated to the handling of application data:
- deserialisation
- deserialization
- delivery to the DCPS data reader caches

Fragmented data first enters the defragmentation stage, which is per proxy writer. The
Expand Down
12 changes: 6 additions & 6 deletions docs/manual/config/discovery-behavior.rst
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
.. include:: ../external-links.part.rst

.. index:: Discovery behaviour
.. index:: Discovery behavior

.. _discovery_behaviour:
.. _discovery_behavior:

###################
Discovery behaviour
Discovery behavior
###################

.. _proxy_participants_endpoints:
Expand Down Expand Up @@ -106,8 +106,8 @@ published by a writer:
- The **key value** index is used for retaining the current state of each instance in the WHC.

When a new sample overwrites the state of an instance, the key value index allows dropping
samples from the sequence number index. For transient-local behaviour (see
:ref:`DDSI-specific transient-local behaviour`), the key value index also allows retaining
samples from the sequence number index. For transient-local behavior (see
:ref:`DDSI-specific transient-local behavior`), the key value index also allows retaining
the current state of each instance even when all readers have acknowledged a sample.

Transient-local data always requires the key values index, and by default is also
Expand Down Expand Up @@ -149,7 +149,7 @@ The adaptive behavior can be disabled by setting
:ref:`Internal/Watermarks/WhcAdaptive <//CycloneDDS/Domain/Internal/Watermarks/WhcAdaptive>`
to ``false``.

While the adaptive behaviour generally handles a variety of fast and slow writers and
While the adaptive behavior generally handles a variety of fast and slow writers and
readers quite well, the introduction of a very slow reader with small buffers in an
existing network that is transmitting data at high rates can cause a sudden stop while
the new reader tries to recover the large amount of data stored in the writer, before
Expand Down
4 changes: 2 additions & 2 deletions docs/manual/config/discovery-config.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,13 @@ be configured as 'addresses to be contacted', by specifying peers in:
:ref:`Discovery/Peers <//CycloneDDS/Domain/Discovery/Peers>`. Each time an
SPDP message is sent, it is sent to all of these addresses.

The default behaviour is to include each IP address several times in the set of addresses
The default behavior is to include each IP address several times in the set of addresses
(for participant indices 0 through
:ref:`Discovery/MaxAutoParticipantIndex <//CycloneDDS/Domain/Discovery/MaxAutoParticipantIndex>`).
Each IP address then has a different UDP port number, each corresponding to a participant index.
Configuring several peers in this way causes a large burst of packets to be sent each
time an SPDP message is sent out, and each local DDSI participant causes a burst of
its own messages. Because most participant indices are not used, this is wasteful behaviour and is
its own messages. Because most participant indices are not used, this is wasteful behavior and is
only attractive when it is known that there is a single DDSI process on that node.

.. todo:: clarify the above section.
Expand Down
10 changes: 5 additions & 5 deletions docs/manual/config/network_interfaces.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ network interface). The set of enabled interfaces determines the addresses that
advertises in the discovery information (see :ref:`discovery_participants_endpoints`).

-----------------
Default behaviour
Default behavior
-----------------

To determine the default network interface, the eligible interfaces are ranked by quality,
Expand Down Expand Up @@ -44,20 +44,20 @@ The default address family is IPv4. To change the address family to IPv6, set:

.. note::
|var-project| does not mix IPv4 and IPv6 addressing. Therefore, all DDSI participants in
the network must use the same addressing mode. When interoperating, this behaviour is
the network must use the same addressing mode. When interoperating, this behavior is
the same. That is, it looks at either IPv4 or IPv6 addresses in the advertised address
information in the SPDP and SEDP discovery protocols.

IPv6 link-local addresses are considered undesirable because they must be published
and received via the discovery mechanism (see :ref:`discovery_behaviour`). There is no way to
and received via the discovery mechanism (see :ref:`discovery_behavior`). There is no way to
determine to which interface a received link-local address is related.

If IPv6 is requested and the selected interface has a non-link-local address, |var-project|
operates in a *global addressing* mode and will only consider discovered non-link-local
addresses. In this mode, you can select any set of interfaces for listening to multicasts.

.. note::
This behaviour is identical to that when using IPv4, as IPv4 does not have
This behavior is identical to that when using IPv4, as IPv4 does not have
the formal notion of address scopes that IPv6 has. If only a link-local address is
available, |var-project| runs in a *link-local addressing* mode. In this mode, it accepts
any address in a discovery packet (assuming that a link-local address is valid on the selected
Expand All @@ -72,7 +72,7 @@ Multiple network interfaces

Multiple network interfaces can be used simultaneously by listing multiple
:ref:`NetworkInterface <//CycloneDDS/Domain/General/Interfaces/NetworkInterface>` elements.
The default behaviour still applies, but with extended network interfaces. For example,
The default behavior still applies, but with extended network interfaces. For example,
the SPDP packets advertise multiple addresses and sends these packets out on all interfaces.
If link-local addresses are used, the issue with *link-local addressing* gains importance.

Expand Down
2 changes: 1 addition & 1 deletion docs/manual/config/reporting-tracing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ The keyword *trace* enables all categories from *fatal* to *throttle*.

The *topic* and *plist* categories are useful only for particular classes of discovery failures.

The *radmin* and *whc* categories only help in analysing the detailed behaviour of those two
The *radmin* and *whc* categories only help in analysing the detailed behavior of those two
components and produce significant amounts of output.

The file location is set in the configuration: :ref:`OutputFile <//CycloneDDS/Domain/Tracing/OutputFile>`
Expand Down
2 changes: 1 addition & 1 deletion docs/manual/config/thread-config.rst
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ For each defined channel:
:widths: 20 80

* - ``dq.channel-name``
- Deserialisation and asynchronous delivery of all user data.
- Deserialization and asynchronous delivery of all user data.
* - ``tev.channel-name``
- Channel-specific "timed-event" handling transmission of control messages for reliable writers
and Readers and re-transmission of data on request.
Expand Down
Loading
Loading