Releases: OpenDDS/OpenDDS
OpenDDS 3.12
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
This is a bug-fix-only release that fixes an issue present in 3.11:
- Updated locking for RtpsUdpDataLink::remove_sample
OpenDDS 3.11
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
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
andto_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
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
- RESOURCE_LIMITS.max_samples_per_instance controls total samples that can be
- 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
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
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:
- OCI no longer builds with vc71, vc8, and GCC 4.1.1. If you require support
of these older platforms contact sales@ociweb.com. - The project repository is now at https://github.com/objectcomputing/OpenDDS
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
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
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
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.