Skip to content

Releases: OpenDDS/OpenDDS

OpenDDS 3.12

01 Sep 14:47
Compare
Choose a tag to compare

Release notes for Version 3.12 of OpenDDS

Fixes:
  • RtpsUdpDataLink::remove_sample locking
  • track latency only when needed for LatencyBudget QoS or statistics
  • corrected counters for sample rejected/lost liveliness lost total_count_change
  • get_key_value() corrected return value for errors
  • setting DCPSBitTransportPort without DCPSBitTransportIPAddress had no effect
  • writer side association wasn't removed after the the reader had unsubscribed
  • memory leaks
  • issue with unregistered instances when deleting DataWriter
  • problem with multiple transport instances in a single transport config
  • EntityFactory QoS didn't enable child objects when the factory was enabled
Notes:
  • configure supports ACE+TAO from DOCGroup repository as an option
  • configure improvements for using external ACE+TAO, cross-compiling on Windows
  • coverity fixes
  • improved Bench performance test
  • Docker Hub now has an OpenDDS docker image

Using the GitHub "releases" page

Download OpenDDS-3.12.zip (Windows) or OpenDDS-3.12.tar.gz (Linux/Solaris/MacOSX) instead of using the GitHub-generated "source code" links.

OpenDDS 3.11.1

01 Sep 14:37
Compare
Choose a tag to compare

This is a bug-fix-only release that fixes an issue present in 3.11:

  • Updated locking for RtpsUdpDataLink::remove_sample

OpenDDS 3.11

12 May 20:46
Compare
Choose a tag to compare

Release notes for Version 3.11 of OpenDDS

Additions:
  • Support for Visual Studio 2017
  • Content-filter expressions can now use 64-bit integer literals
  • tcp transport has a new wait_for_acknowledgements implementation
  • DataWriter's HISTORY QoS processing now allows replacing old samples with new ones without blocking
Fixes:
  • Improved robustness of DEADLINE QoS processing
  • Uses of content-filter expressions are now checked for the correct number of parameters
  • Fixed versioned namespace support
  • Improved support for IPv6
  • Improved robustness of rtps_udp transport, especially when used with static discovery
  • Use of the constant PARTICIPANT_QOS_DEFAULT no longer initializes the domain participant factory
  • Bug fixes in the OpenDDS Wireshark dissector (for sample dissection)
Notes:
  • The QoS XML Handler library is now decoupled from DDS4CCM, it requires xerces

Using the GitHub "releases" page

Download OpenDDS-3.11.zip (Windows) or OpenDDS-3.11.tar.gz (Linux/Solaris/MacOSX) instead of using the GitHub-generated "source code" links.

OpenDDS 3.10

27 Jan 22:39
Compare
Choose a tag to compare

Release notes for Version 3.10 of OpenDDS

Additions:
  • Added support for versioned namespaces
  • Reworked TypeSupport implementation in order to reduce exposure of internal headers to user code
  • Added read/take_instance_w_condition (not in DDS spec)
  • Time Based Filter QoS: fixed GitHub issue #268, samples can now be held and delivered after the timeout
  • C++11 updates to the ishapes example: make use of C++11 shared_ptr and to_string instead of using boost
  • When C++11 is enabled, use noexcept(false) where necessary
  • Extended TypeSupport to allow unregistering of types from a domain participant (not in DDS spec)
  • RtpsDiscovery: allow config to specify which interface's MAC addr is used in GUIDs
  • Wireshark dissector updates: support for more IDL constructs in data sample dissection
Fixes:
  • Liveliness QoS: fixed incorrect "liveliness lost" for automatic liveliness with sporadic writers
  • Fixed RTPS ParticipantMessageData entityIds used by automatic and by-participant liveliness
  • Fixed make install problem when DESTDIR is specified
  • Allow fallback to next transport implementation when active side fails to connect using the first one
  • Updated TypeSupport::get_type_name() to match the DDS spec
Stability Improvements:
  • Fixed many issues included in recent Coverity Scan defect reports
  • Fixed a few reference counting issues in internal classes
Notes:
  • This is the final version we will test with TAO 2.0a, please upgrade to a newer TAO (see README.md)

Using the GitHub "releases" page

Download OpenDDS-3.10.zip (Windows) or OpenDDS-3.10.tar.gz (Linux/Solaris/MacOSX) instead of using the GitHub-generated "source code" links.

OpenDDS 3.9

30 Sep 17:54
Compare
Choose a tag to compare

Release notes for Version 3.9 of OpenDDS

Version 3.9 of OpenDDS.

  • Updated how DataWriter QoS is interpreted by internal data strucutres:
    • RESOURCE_LIMITS.max_samples_per_instance controls total samples that can be
      stored per instance, independent of HISTORY
    • HISTORY.depth controls number of samples (per instance) that will be made
      available to late-joining readers if DURABILITY is enabled
      • KEEP_ALL history uses max_samples_per_instance as its depth
    • WriteDataContainer is more eager to remove samples that are no longer needed
    • WriteDataContainer will not remove samples that are required to implement
      DURABILITY, hence if RELIABILITY is enabled this can block a write() just
      like other "no resource available" scenarios
  • Fixed an RTPS interoperability issue with the new ParticipantMessageData
    messages (used for liveliness)
  • Enhanced RTPS support for DURABILITY QoS enabling faster reader/writer
    associations when DURABILITY is in use (set to TRANSIENT_LOCAL)
  • RTPS Discovery has a new option "SpdpLocalAddress" which can be used to
    bind SPDP's socket to a particular network interface
  • InfoRepo discovery will use TAO's BiDir GIOP feature to reduce number
    of sockets needed (disable with -DCPSBidirGIOP 0)
  • Intermediate Type Language (itl), a helper library used by the OpenDDS
    wireshark dissector, is now included in the source tree in
    tools/IntermediateTypeLang. itl depends on the 3rd-pary lib rapidjson.
    When running the configure script, use --rapidjson=
  • Corrected makefile generation for Java bindings with IDL bounded strings
  • Fixed a bug where some header files would be missing from "make install"
  • "make install" now works with Java bindings
  • Configure script: now supports FreeBSD, Mac OS X El Capitan,
    and cross-compiles for Linux targets (Raspberry Pi and Intel Edison tested).
    The configure script attempts to find the JDK if invoked with --java.
  • cross-compilation now works with Java bindings, including use of JRE compact1

Using the GitHub "releases" page

Download OpenDDS-3.9.zip (Windows) or OpenDDS-3.9.tar.gz (Linux/Solaris/MacOSX) instead of using the GitHub-generated "source code" links.

OpenDDS 3.8

04 Jan 15:43
Compare
Choose a tag to compare

Release notes for Version 3.8 of OpenDDS

  • Improved support for Safety Profile
  • OpenDDS multicast transport (reliable mode) now guarantees in-order delivery
  • Added a "default address" configuration parameter that sets an overall default for binding to a specific network interface
  • Fixed bugs in transport framework, udp transport, InfoRepo discovery, static discovery, and the Liveliness and Durability QoS policies

Using the GitHub "releases" page

Download OpenDDS-3.8.zip (Windows) or OpenDDS-3.8.tar.gz (Linux/Solaris/MacOSX) instead of using the GitHub-generated "source code" links.

OpenDDS 3.7

14 Jan 23:24
Compare
Choose a tag to compare

Release notes for Version 3.7 of OpenDDS

Additions:

  • Implements FACE Transport Services API v2.1, FACE safety base and
    FACE safety extended profiles (Future Airborne Capability Environment).
  • Implements DDS 1.4 and RTPS 2.2.
  • Support allocations from memory pool in safety profile builds. Introduced
    standard library containers and strings, as well as TAO sequences that
    allocate from this pool.
  • To support FACE TS, the IDL struct DDS::SampleInfo has a new field
    "opendds_reserved_publication_seq" as an extension to the DDS specification.
  • Updated opendds_idl for FACE support, moving some of the code-generation
    from tao_idl to opendds_idl when targeting FACE TS.
  • Support IDL fixed type inside of DCPS_DATA_TYPE (used with FACE TS).
  • Type-specific DataWriterImpl and DataReaderImpl are now templates. Code
    generation now introduces a typedef of these.
  • Content filtering now supports modulus (MOD) operator as an extension.
  • Added a static (configuration-based) discovery mechanism.
  • RTPS Discovery is now supported when OpenDDS is built without built-in topics.
  • RTPS Discovery has a new configuration parameter SedpLocalAddress which
    configures the rtps_udp transport used internally by discovery in the same way
    that local_address configures a user-created rtps_udp transport instance.
  • Support non-default liveliness QOS in rtps_udp transport.
  • Support wait_for_acknowledgements in rtps_udp transport.
  • Support command line option -DCPSRTISerialization when integrating with RTI
    DDS using RTPS, to account for a different serialization algorithm.
  • Configure script handles some cross-compile builds and safety profile.
  • Support for new Visual Studio compilers (vc11, vc12, and vc14).
  • Support for clang builds on Mac OS X.
  • Removed support for old GCC compilers (<= 3.3).
  • opendds_idl command-line option -Gitl is a replacement for -Gws. Wireshark
    dissector now reads ITL files, rather than .ini files.

Fixes:

  • Fixed many tests for minimum profile builds.
  • Enforced correct behavior of a reliable data writer when history QoS
    is set to KEEP_LAST with depth=1.
  • opendds_idl can now be specified in user_macros.GNU instead of always
    assuming it is in $DDS_ROOT/bin (for -type gnuace builds).
  • Fixed initial IPv6 support in windows builds.
  • Fixed disassociate handling of local entities on loopback interface.
  • Corrected wait_for_acknowedgements for non-reliable writers to return
    success immediately.
  • Allow disassociating readers to finish processing messages from active writer
    before removing.
  • Remove TcpDataLink from DataLinkSet when connect() fails. Previously, the
    datalink would remain and would be seen as a fully-connected datalink by new
    associations.
  • DCPSTransportDebugLevel 1 messages are now association-oriented.
  • Fixed durable resend out-of-order handling for rtps_udp transport.
  • Fixed handling of acknowledgements during shutdown of rtps_udp data link.
  • RTPS Discovery now ignores 'RTPX' messages seen during RTI integration.
  • Dissection of unions in wireshark dissector (requires ITL).
  • Corrected reference counting scheme for Recorder and Replayer objects:
    the reference-counted handle types changed from _rch to _var.

Notes:

Using the GitHub "releases" page

Download OpenDDS-3.7.zip (Windows) or OpenDDS-3.7.tar.gz (Linux/Solaris/MacOSX) instead of using the GitHub-generated "source code" links.

OpenDDS 3.6

15 Jan 14:35
Compare
Choose a tag to compare

Release notes for Version 3.6 of OpenDDS

Notes:

  • The discovery framework of OpenDDS has been refactored to be more
    asynchronous. This should make discovery faster and more reliable
    for both publishing and subscribing clients, regardless of the
    discovery mechanism used (RTPS or InfoRepo).
  • DataWriters now release locks more quickly than before. This allows the
    transport to be available to more threads when compared to 3.5.1.
  • Improved DDS specification compliance with regards to reliability,
    resource limits, and history qos settings. Specifically, reliable
    data writers may block for max_blocking_time and potentially return
    DDS::RETCODE_TIMEOUT in situations where they would have simply
    written the data in older version of OpenDDS. The new behavior
    is required by the DDS specification, see section 2.2.2.4.2.11
    of the version 1.4 specification for details. This change affects
    various operations of the data writer interface including the
    write and register operations.

Additions:

  • The wireshark dissector now supports wireshark versions 1.8.x, 1.10.x,
    1.12.x, and 1.99.1.
  • The modeling framework now support Eclipse 4.4 (Luna) and GMF 3.1.x
  • Added a public_address option for the tcp transport. This option
    allows a tcp transport instance to listen on one address (local_address)
    while advertising another address (public_address) to discovery.
    This feature was used to allow a proxy process between the subscriber
    and publisher in the TcpReconnect test, but may also be useful in
    other deployment scenarios, especially using OpenDDS through a firewall.

Fixes:

  • There were a number of concurrency and thread utilization improvements.
    These changes fixed a number of threading issues as well as improving
    the efficiency of publication.
  • Fixed some issues with RTPS discovery.
  • Fixed a number of issues related to the reconnect functionality of
    the tcp transport.
  • Fixed some bugs in the OpenDDS IPv6 support.
  • Eliminate duplicate samples received during durable resend.
  • Fixed memory leak at shutdown time in modeling library.

Tests:

  • Many updates to make test results more complete and deterministic.
  • Added a TcpReconnect test that exercised the ability of the tcp
    transport to seamlessly reconnect OpenDDS clients when the transport
    layer drops a connection.
  • Added a WriteDataContainer unit test to verify data writer memory
    management compliance with the DDS specification.
  • Added a PubScalability test that was used to test association and
    publications with large numbers of subscribers.
  • Added a packet reassembly unit test.

Using the GitHub "releases" page

Download OpenDDS-3.6.zip (Windows) or OpenDDS-3.6.tar.gz (Linux/Solaris/MacOSX) instead of using the GitHub-generated "source code" links.

OpenDDS 3.5.1

15 Jan 15:00
Compare
Choose a tag to compare

Release notes for Version 3.5.1 of OpenDDS

Notes: Due to addition control messages in the 3.5.1 release, mixing 3.5.0
and 3.5.1 releases should work properly, but the 3.5.0 data readers can emit
the following error message when associating with a durable 3.5.1 data
writer:

ERROR: DataReaderImpl::data_received unexpected message_id = 11

Upgrade all endpoints to 3.5.1 to remove this error message.

Additions:

  • Support later (>= 4.7) versions of GCC compilers, and later (>= 2.0a)
    builds of TAO. Configure script now downloads 2.2a by default.
  • Added IDL compiler support for typedef of string fields within unions.
    Added Java IDL compiler support for struct forward declarations.
  • Updated UML design diagrams to reflect current code base.

Fixes:

  • DCPSInfoRepo no longer informs a subscriber about a crashed or killed
    publisher. This made associations of current publishers and subscribers
    delayed until timeout was reached.
  • Fixed deadlock condition in send_delayed_notifications() resulting from
    multiple datawriters.
  • Fixed deadlock in DataLinkSet::send_control().
  • Fixed deadlock in WaitSet::wait() and DataReaderImpl::data_received().
  • Fixed multicast transport with multiple participants in a single process.
  • Fixed parsing of -ReassociateDelay argument by DCPSInfoRepo.
  • Fixed crash of long-lived zero-copy sequence when it is destroyed and
    crash of zero-copy sequence accessing released instances.
  • Fixed unprotected access to DataWriterImpl::reader_info_, and
    TransportSendStrategy::pkt_chain_.
  • Fixed multiple RTPS crashes when participant is being deleted.
  • Fixed RTPS crash when a data reader is being deleted.
  • Fixed problem for non-unique repo ids for multicast when multiple
    (non-federated) DCPSInfoRepos are used on the same network.
  • Fixed crash caused by back-pressure in transport causing the most recent
    sample for an instance to be dropped.
  • Fixed error in reconstruction logic for fragmentation of udp and multicast
    transport packets.
  • Fixed PublisherImpl and SubscriberImpl to properly set a DataWriterImpl
    or DataReaderImpl entity's deleted flag during deletion to allow
    association checks to properly identify entities that are being deleted and
    not proceed in association.
  • Fixed problem for persisted DCPSInfoRepo where persisted participants
    were never dissociating.
  • Fixed activity improperly occuring when a partipant is being deleted
    that caused pure virtual function calls. In one case, waiting now takes
    place during deletion of a data writer until all control messages sent during
    unregistration of instances are account for. In another case fixed so
    TransportSendControlElement will delete itself before it reports to the listener
    that the message has been delivered/dropped.

Tests:

  • Many updates to make test results more deterministic.
  • Added Reliability test.
  • Added ManyToMany test to test associations with additional participants,
    publishers, subcribers, data readers and data writers.
  • Added PersistentInfoRepo test.
  • Restored thrasher medium and high test cases.
  • Rewrite Priority test to make it verify proper QOS functionality.
  • Rewrite LargeSample test to make it verify message contents are as expected.

Using the GitHub "releases" page

Download OpenDDS-3.5.1.zip (Windows) or OpenDDS-3.5.1.tar.gz (Linux/Solaris/MacOSX) instead of using the GitHub-generated "source code" links.

OpenDDS 3.5

15 Jan 17:29
Compare
Choose a tag to compare

Release notes for Version 3.5 of OpenDDS

  • Updates to RTPS support resulting from both interoperability
    testing (March 2013 OMG meeting) and user feedback.
  • Fixed a bug in the DataReader relating to the Deadline timer.
  • Generated TypeSupportImpl classes now contain nested typedefs that
    facilitate programming with C++ templates.
    See tests/DCPS/ManyTopicTest for an example of usage.
  • Added config options to bind RTPS-related multicast sockets to
    specific network interfaces. See the ChangeLog for details.
  • Fixed an opendds_idl code generated bug when typedefs of basic
    types are used as fields of structs.
  • Corrected a number of other bugs related to discovery and scaling.

Using the GitHub "releases" page

Download OpenDDS-3.5.zip (Windows) or OpenDDS-3.5.tar.gz (Linux/Solaris/MacOSX) instead of using the GitHub-generated "source code" links.