Supported versions¶
Version 2.14¶
Version 2.14.0 (latest)¶
Important
Fast DDS v2.14 will be the last minor version of Fast DDS v2, the next major release will be Fast DDS v3.0.0, stay tuned!
This release includes the following new features:
Add netmask filter transport configuration
Expose Security Authentication plugin Handshake Properties
Extend
LARGE_DATA
configuration optionsOpenOutputChannels / CloseOutputChannels that receive a LocatorSelectorEntry
Support GTest v1.14.0
Update Fast CDR submodule to v2.2.0
Update roadmap and release support
This release includes the following improvements:
Ignore custom PIDs defined in Fast DDS when they are received from other vendors
Add catch of out-of-range exception for thread settings port
Explicitly pass vendor ID to
readFromCdrMessage
TCP transport improvements:
TCPSendResources
cleanupTCP
non_blocking_send
moved to TCPTransportDescriptor
Various repository improvements and housekeeping:
Migrate communication tests to the DDS API
Migrate TCPReqRepHelloWorldReplier/Requester to the DDS API
Update APIs in video performance tests to the DDS API
Remove
FASTDDS_TODO_BEFORE
2.14Remove use of deprecated FindPythonInterp
Remove idl parser from .repos file
Force usage of semicolon in
FASTDDS_TODO_BEFORE
macroUbuntu example testing automation infrastructure
Multiple Github CI improvements:
Add nightly Ubuntu Github CI
Improve CI version management
Avoid running GitHub CI if PR has conflicts
Migrate apt package installation to eProsima-CI action
Include missing nightly for 3.0.x branch
Adapt nightly jobs for all supported versions
Pin CMake version and vm.mmap_rnd_bits in sanitizer workflows
Select reusable workflow version depending on target branch in nightly jobs
This release includes the following fixes:
Fix warnings when compiling for Windows x86
TCP first message loss (see TCPTransportDescriptor)
Fix warnings on tests on Windows 32bits
Protect asio exception hotfix
Fix CVE-2024-28231
Github CI fixes:
Fix CI documentation workflow label triggering
Fix nightly jobs
Fix input branch on reusable windows CI
Use correct version of GTest on DS ASan tests
Note
When upgrading to version 2.14.0 it is advisable to regenerate generated source from IDL files using Fast DDS-Gen v3.3.0.
Version 2.13¶
Version 2.13.3¶
This patch release includes the following improvements:
Enabling multiple interfaces through whitelist in TCP servers
Set LARGE_DATA Participants logic with the same listening ports
Check History QoS inconsistencies
This patch release includes the following fixes:
Prevent index overflow and correctly assert the end iterator in DataSharing
Fix the shared memory cleaning script
Fix TCP reconnection after open logical port failure
Fix data race on PDP
Fix doxygen docs warnings. Prepare for compiling with Doxygen 1.10.0
Add missing TypeLookup listeners
Restore Blackbox tests names
Add macOS Github CI
Set 2.11.x as EOL
Note
When upgrading to version 2.13.3 it is advisable to regenerate generated source from IDL files using Fast DDS-Gen v3.2.1.
Version 2.13.2¶
This patch release includes the following fixes and improvements:
Improve environment variable substitution algorithm
Add large data to the Advanced Configuration example
Discard already processed samples on
PDPListener
Ignore
0x8007
if coming from other vendorTCP unique client announced local port
TCP non-blocking send
TCP Client&Server Participant Decision-Making
Add non-throwing getters for socket info
Add a keyed fragmented change to the reader data instance only when it is completed
Include a variety of terminate process signals handlers in the discovery server
Make DataWriters always send the key hash on keyed topics
Update Fast DDS types with Fast DDS Gen to include
<cstdint>
in v1 typesAdd serialization for Log::Kind to ostream
Fix wrong log info messages on TCP
Return const reference in
get_log_resources
Remove unnecessary warning
Avoid a maybe-uninitialized warning
Add static cast to an unused variable
Prepare for v3.0.0 branch out
Windows CI fixes
Note
When upgrading to version 2.13.2 it is advisable to regenerate generated source from IDL files using Fast DDS-Gen v3.2.1.
Version 2.13.1¶
This release includes the following improvements:
Downgrade CMake minimum required version to 3.20.
Update PR template to include check for PR description, title and backports.
Update Fast CDR submodule to v2.1.3.
This patch release includes the following fixes:
Revert wrong fix for TCP deadlock on channel reuse.
Fix wrong history selection when removing PDP samples.
Fix data race when processing incoming PDP samples on different threads.
Fix DNS test filter in CMakeLists.
Fix deserialization of unions in generated code.
Note
When upgrading to version 2.13.1 it is advisable to regenerate generated source from IDL files using Fast DDS-Gen v3.2.1.
Version 2.13.0¶
This release includes the following features:
Support Monitor Service.
Enable configuration of thread settings for all threads (both through the C++ API and XML configuration files).
Support Autofill port (automatic assignment of a port) for TCP Transport listening port.
Support TCP for Discovery Server CLI and environment variable.
Usage of gtest_discover_tests.
Define a super client by environment variable.
Support adding interfaces to the interface whitelist by the name.
Add new methods to configure Builtin Transport.
Support DataRepresentationQos.
Change serialize function default behavior to omit the data representation.
Upgrade Fast CDR submodule to v2.1.2.
Update roadmap & platforms support.
This release includes the following improvements:
Rerun failed tests with ctest option instead of colcon’s.
Add CCache to all CI jobs.
This release includes the following fixes:
Fast DDS bugfixes
Fix compilation of XMLProfileParserTests when building without security.
Improve IgnoreNonExistentSegment test for Windows.
Add missing thread includes.
Fix warning in Mac rewarding unnecessary lambda capture.
Use SO_EXCLUSIVEADDRUSE for Win32 unicast listening sockets.
Fix gtest discovery timeout.
Mark on_participant_discovery overload removal.
Fix uninitialized member in BuiltinAttributes class.
Fix set affinity directive for Android.
Fix Monitor Service types & test without security.
Fix TCP deadlock on channel reuse.
Fix DNS filter in CMakeLists file for tests.
Fix memory issues related to ciphering payload.
Fix a bad-free when receiving a malformed DATA_FRAG submessage.
Fix CVE-2023-50257.
Fix compilation of Fast DDS Python tests.
Fix data race on writer destruction while sending heartbeat.
Fix build with TLS, when SECURITY=OFF and NO_TLS=OFF.
CI fixes:
Fix colcon on github CI.
Better handling of trigger events in docs CI.
Note
When upgrading to version 2.13.0 it is advisable to regenerate generated source from IDL files using Fast DDS-Gen v3.2.0.
Version 2.10¶
Version 2.10.3¶
This release includes the following features in an ABI compatible manner:
Support
Autofill port
(automatically set a port) for TCP Transport.Define a super client by environment variable
Support TCP Discovery server CLI and environment variable
Define methods (environment variable, rtps layer, xml) to configure transport scenarios
Custom pools on DDS layer (DataWriter and DataReader)
This release includes the following improvements:
Log warning upon receiver resource creation failure
Simplify code in
CDRMessage
Backport workflows from master
Rerun failed tests with ctest option instead of colcon’s
Use foonathan memory manager for reducing allocations in
SharedMemManager.hpp
Add CCache to all CI jobs
This release includes the following bugfixes:
Fix
RemoteBuiltinEndpointHonoring
blackbox testFix bad-free when receiving malformed DATA submessage
Fix clang warnings
Use STL implementation of
Timed/RecursiveTimedMutex
whenMSVC >= 19.36
Notify data-sharing listener at the end of a successful matching in intraprocess
Fix the clang build for clang 14
Fix
HelloWorld
Data-Sharing example idlFix the behaviour of
disable_positive_acks
periodFix
DomainParticipant::register_remote_type
return when negotiating typeFix Data Race when updating liveliness changed in WLP
Fix TCP sender resources creation
Fix flow controllers unit tests compilation when using
Fast CDR
from thirdpartyAdd XML parser
bit_bound
bounds checkAdd tests for reconnection with same GUID
Fix Github Windows CI
Fix PubSubAsReliable test
Use
FASTRTPS_NO_LIB
on unittest root folderFix missing mandatory attribute check in XML parser struct type
Fix mac address overflow on windows
Use
SO_EXCLUSIVEADDRUSE
for Win32 unicast listening socketsFix FileWatchTest for Github windows CI
Add missing thread include
Update TLS unit test certificates
Select correct .repos file on push events
Fix documentation CI branch
Fix TCP deadlock on channel reuse
Fix DNS filter in CMakeLists file for tests
Fix bad-free when receiving malformed DATA_FRAG submessage
Fix memory problem when ciphering payload
Fix build with TLS, but not security
Fix CVE-2023-50257
Fix data race on writer destruction while sending heartbeat
Fix comparison in
remove_from_pdp_reader_history
Fix data race in PDPListener and SecurityManager
Update PR template to include check for PR description, title and backports
Fix std::move warning
Revert “TCP deadlock on channel reuse”
Fix max clash with Windows CI
Remove unnecessary TCP warning
Discard already processed samples on
PDPListener
TCP unique client announced local port
Note
If you are upgrading from a version older than 1.7.0, it is required to regenerate generated source from IDL files using fastddsgen. If you are upgrading from any older version, regenerating the code is highly recommended.
Version 2.10.2¶
This release includes the following improvements:
Fix Data-Sharing delivery when data_count is zero
Improve performance of intraprocess plus data-sharing
Improve content filter expression parameters checks and verbosity
Improve validation on PID_PROPERTY_LIST deserialization
Participant ignore local endpoints
Pick smallest available participant ID for new participants
Improve endpoint QoS XML tags
Forward compatibility with boost interprocess 1.74+
Cap Thread Sanitizer memory usage to prevent runner shutdown
Allow participant XML profile with no <rtps> tag
Add unsupported note in API documentation to new ignore DomainParticipantListener callbacks
Add documentation version fallback
This release includes the following bugfixes:
Fixed long-standing reconnection issue on SHM transport
Fix null dereference when fuzzing
Fix segfault when creating two participant with same fixed id
Fix UBSan (Undefined Behavior Sanitizer) issues
Fix listener selection for on_requested_deadline_missed
Fix build on msvc 19.36.32528
Fix XML schema to set Transport descriptor kind as NOT mandatory
Fix missing includes
Fix overhead time unit
Fix request reply example spelling typo
Fix topic deletion after endpoint in examples
Fix Data-Sharing delivery when data_count is zero
Wait for log background thread initialization on the first queued entry
Fix alias resolve in DDSSQLFilter
Fix partition copy in QoS
Fix StatelessWriter locators filtering
Fix XMLParser null-dereference in parseLogConfig
Fix encapsulation format in WLP
Replace uint64_t by 8 in alignas specifier
Capture all Fast CDR exceptions
Security module: Honor allow_unauthenticated_participants flag
Explicitly register type object in ContentFilteredTopicExample
Avoid double definition of FASTDDS_ENFORCE_LOG_INFO
Fix API Fast DDS v2.10.0 API break calling correctly on_participant_discovery callbacks
Remove mutex from TimedEventImpl
Note
If you are upgrading from a version older than 1.7.0, it is required to regenerate generated source from IDL files using fastddsgen. If you are upgrading from any older version, regenerating the code is highly recommended.
Version 2.10.1¶
This release includes the following feature in an ABI compatible way:
ignore_participant()
implementation
This release includes the following bugfixes:
Fix repeated matched event notification.
Fix regression introduced by #3396.
Initial acknack backoff.
Fix regular expression in XML schema.
Correctly assign multicast port to multicast initial peers.
This release includes the following CI improvements:
Update runner and GCC version for Thread Sanitizer job.
Note
If you are upgrading from a version older than 1.7.0, it is required to regenerate generated source from IDL files using fastddsgen. If you are upgrading from any older version, regenerating the code is highly recommended.
Version 2.10.0¶
This minor release includes several new features, improvements and bugfixes.
Note
Mind that, even though this release is API compatible with previous v2.x versions, it is NOT ABI compatible with previous versions. This means that applications upgrading Fast DDS to v2.10.0 will require recompilation, though not source code modification.
Note
It is also advisable to regenerate the type support from the IDL files using Fast DDS-Gen v2.4.0. Furthermore, if upgrading to v2.10.0, it is also recommended to upgrade Fast CDR to v1.0.27.
This release includes the following features:
New on_unacknowledged_sample_removed callback in
DataWriterListener
.DomainParticipant ignore empty API.
RTPS
ReaderListener::on_incompatible_type
andWriterListener::on_incompatible_type
empty API.
This release includes the following improvements:
- Fast DDS improvements
Improve behavior when
STRICT_REALTIME
CMake option is not enabled.Using functors for
for_matched_readers
parameter.Improve auto GAPs in Data Sharing.
Use standard value for
PID_RELATED_SAMPLE_IDENTITY
.
- Contributions and repository quality
Update Pull Request template.
Update foonathan_memory quality declaration.
Update XSD schema.
Make network headers private avoiding exposing non-public API.
Improve Doxygen documentation for
ResourceLimitsQosPolicy
.
- Examples
- CI improvements
New workflow to check documentation build.
ASAN workflow updated to use Ubuntu 22.04.
- Dependencies
Upgrade internal type supports using latest Fast DDS-Gen release v2.4.0.
Upgrade Fast CDR submodule to v1.0.27.
- Fast DDS CLI
Handle
SIGTERM
signal.
- Community supported platforms
This release includes the following fixes:
- Security vulnerability
Fix chain of trust issues with a single CA certificate.
- Bugfixes
Fix RTPS StatelessWriter ACK check.
ASAN (Address Sanitizer) fixes.
UBSan (Undefined Behavior Sanitizer) fixes.
Export public API correctly in Windows.
Correctly handle builtin endpoints mask.
Fix backwards compatibility using SHM communication.
Protect against uncaught exception in SHM segment creation.
Fix build for GCC 5.
Validity check for first sequence number.
Fix crash when enabling DisablePositiveACKsQoSPolicy with remote best-effort readers.
- Synchronization fixes
Take mutex when removing local reader in WLP.
Fix data races in SecurityManager authentication process.
- CI fixes
Fix test building when using
GTEST_INDIVIDUAL
CMake option.Fix overflow in received samples in performance tests.
- Example fixes
Avoid creating entities within callbacks in DynamicHelloWorldExample.
Remove Asio dependency from DeadlineQoSExample.
- Repository fixes
Remove 2.7.x as active branch.
- Community supported platforms
Include right header when building for iOS.
Note
If you are upgrading from a version older than 1.7.0, it is required to regenerate generated source from IDL files using fastddsgen. If you are upgrading from any older version, regenerating the code is highly recommended.
Version 2.6¶
Version 2.6.7¶
This release includes the following features:
Support
Autofill port
(automatically set a port) for TCP Transport.Define a super client by environment variable
Support TCP Discovery server CLI and environment variable
Define methods (environment variable, rtps layer, xml) to configure transport scenarios
This release includes the following improvements:
Log warning message upon receiver resource creation failure.
Add tests for reconnection with same GUID
Use foonathan memory manager for reducing allocations in
SharedMemManager.hpp
Simplify code in
CDRMessage
.Rerun failed tests with ctest option instead of colcon’s.
Several improvements on CI jobs.
Upgrade CMake minimum requirement to 3.16.3
Update PR checklist template. Backports and Description
This release includes the following bugfixes:
Fix
DomainParticipant::register_remote_type
return when negotiating type.Fix
RemoteBuiltinEndpointHonoring
blackbox test.Allow participant profiles with no rtps tag.
Fix bad-free when receiving malformed DATA submessage.
Fix clang warnings
Use STL implementation of
Timed/RecursiveTimedMutex
whenMSVC >= 19.36
.Fix encapsulation format in WLP.
Fix the clang build for clang 14.
Notify data-sharing listener at the end of a successful matching in intraprocess.
Updatable disable_positive_acks period.
Fix Data Race when updating liveliness changed in WLP.
Fix TCP sender resources creation.
Fix flow controllers unit tests compilation when using Fast CDR from thirdparty.
Add XML parser bit_bound bounds check.
Use
FASTRTPS_NO_LIB
on unittest root folder.Use
SO_EXCLUSIVEADDRUSE
for Win32 unicast listening sockets.Fix mac address overflow on windows.
Fix
PubSubAsReliable
test.Fix
FileWatchTest
.Add missing thread include.
Fix missing mandatory attribute check in XML parser struct type.
Better handling of trigger events in docs CI.
Fix memory problem when ciphering payload
Select correct .repos file on push events
Update TLS unit test certificates
Fix bad-free when receiving malformed DATA_FRAG submessage
Fix data race on writer destruction while sending heartbeat
Fix DiscoveryServer list access deadlock
Fix c++11 support for fast discovery server tool
Fix CVE-2023-50257
Fix std::move warning
Fix Github Windows CI
Note
If you are upgrading from a version older than 1.7.0, it is required to regenerate generated source from IDL files using fastddsgen. If you are upgrading from any older version, regenerating the code is highly recommended.
Version 2.6.6¶
This release includes the following improvements:
Improve validation on PID_PROPERTY_LIST deserialization.
Improved CPU usage of timed events thread.
Improved performance on intraprocess + data-sharing.
Explicitly register type object in ContentFilteredTopicExample.
Improve installer generation with documentation version fallback.
Improve content filter expression parameters checks and verbosity.
This release includes the following bugfixes:
Fixed long-standing reconnection issues on SHM transport.
Correctly resolve alias in DDSQLFilter.
Fixed partition copy in QoS.
Added length checks to prevent nullptr memory copy calls.
Fixed XMLParser null-dereference when parsing log configuration.
Fixed SHM in 32-bit architectures.
Added missing include.
Avoid double definition of FASTDDS_ENFORCE_LOG_INFO.
Fixed statistics data_count with data-sharing.
Note
If you are upgrading from a version older than 1.7.0, it is required to regenerate generated source from IDL files using fastddsgen. If you are upgrading from any older version, regenerating the code is highly recommended.
Version 2.6.5¶
This release includes the following improvements:
Improve behavior when
STRICT_REALTIME
CMake option is not enabled.Using functors for
for_matched_readers
parameter.Improve auto GAPs in Data Sharing.
This release includes the following bugfixes:
Fix RTPS StatelessWriter ACK check.
Fix
total_read_
to be consistent with Reader’s History afterDataReader::get_first_untaken_info()
.Add deprecation notice to
ThroughputControllerDescriptor
.UBSan (Undefined Behavior Sanitizer) fixes.
Several dependencies fixes upgrading to Ubuntu 22.04.
Fix chain of trust issues with a single CA certificate.
Correctly handle builtin endpoints mask.
Take mutex when removing local reader in WLP.
Handle
SIGTERM
signal in Fast DDS CLI.Fix data races in SecurityManager authentication process.
Avoid creating entities within callbacks in DynamicHelloWorldExample.
Remove Asio dependency from DeadlineQoSExample.
Validity check for first sequence number.
Include right header when building for iOS.
Fix build on MSVC 19.
Correctly assign multicast port to multicast initial peers.
Select correct listener for
on_requested_deadline_missed()
.Forward compatibility with boost inter-process 1.74+.
Fix missing includes when building with GCC 13.
Honor
allow_unauthenticated_participants
flag.Capture all Fast CDR exceptions.
Fix example to delete Topic after deleting the corresponding Endpoint.
Protect against uncaught exception in SHM segment creation.
Initial acknack backoff.
Note
If you are upgrading from a version older than 1.7.0, it is required to regenerate generated source from IDL files using fastddsgen. If you are upgrading from any older version, regenerating the code is highly recommended.
Version 2.6.4¶
This release includes the following bugfixes:
Fix communication with asymmetric Ignore Participant flags.
Fix deadlock in Writer Liveliness Protocol when using intraprocess.
Fix notification lost.
Note
If you are upgrading from a version older than 1.7.0, it is required to regenerate generated source from IDL files using fastddsgen. If you are upgrading from any older version, regenerating the code is highly recommended.
Version 2.6.3¶
This release includes the following improvements:
Upgrade CMake minimum requirement to 3.13.
Improve
Guid_t
operator<
performance.
This release includes the following bugfixes:
Add python3 dependency to package.xml.
Fix complex member printing for DynamicDataHelper.
Fix selection of output locators.
Fix null references on XML parser.
Fix data races when creating DataWriters.
Send GAPs correctly when using separate sending.
Install Statistics IDL file.
Fixes for building in older compilers.
Fix deadlock when removing DomainParticipant when using SECURITY.
Ensure
shared_mutex
implementation is consistent throughout supported platforms.Other minor fixes and improvements.
Note
If you are upgrading from a version older than 1.7.0, it is required to regenerate generated source from IDL files using fastddsgen. If you are upgrading from any older version, regenerating the code is highly recommended.
Version 2.6.2¶
This release includes the following improvements:
Support for GCC 12.
Overload
DataReader::get_unread_count()
.Improve read/take performance when using topic with a great number of keys.
Improve rediscovery on lossy environments.
This release includes the following bugfixes:
Fixed several deadlocks and data races.
Fixed validation on
ParameterPropertyList_t
.Fixed wrong usage of
std::remove_if
.Fixed acknowledgement in DataSharing.
Other minor fixes.
Note
If you are upgrading from a version older than 1.7.0, it is required to regenerate generated source from IDL files using fastddsgen. If you are upgrading from any older version, regenerating the code is highly recommended.
Version 2.6.1¶
This release includes the following improvements:
Support for writer side content filtering
Support hexadecimal values on SQL filter
Support for
DataWriter::get_key_value()
Support for
DataReader::lookup_instance()
Support for SampleLostStatus on DataReader
Improved doxygen documentation
Some bugfixes are also included:
Fixed several lock order inversion issues
Fixed data race when closing UDP channels
Fixed empty partition validation checks
Fixed corner case with reliable writers and samples with a huge number of fragments
Other minor fixes and improvements
Note
If you are upgrading from a version older than 1.7.0, it is required to regenerate generated source from IDL files using fastddsgen. If you are upgrading from any older version, regenerating the code is highly recommended.
Version 2.6.0¶
This minor release is API compatible with the previous minor release, but introduces ABI breaks on two of the three public APIs:
Methods and attributes have been added on several classes of the DDS-PIM high-level API, so indexes of symbols on dynamic libraries may have changed. Some API is also being deprecated.
Methods and attributes have been added on several classes of the RTPS low-level API, so indexes of symbols on dynamic libraries may have changed.
Old Fast-RTPS high-level API remains ABI compatible.
This minor release includes the following features:
Add statistics physical information to DATA[p] using properties
Endpoint discovery RTPS API
on_sample_lost
RTPS APITransport layer API extension
It also includes the following improvements:
Support lowercase keywords on SQL filter
Separate initialization and enabling of BuiltinProtocols
Add
disable_positive_acks
to Static Discovery XMLSeveral updates in the DDS-PIM API
Support for octet vectors on XML parser
Update README and roadmap
Update Fast-CDR submodule to v1.0.24
Add new CMake option
APPEND_PROJECT_NAME_TO_INCLUDEDIR
Some bugfixes are also included:
Fix MatchedStatus
last_*_handle
Fix recommended statistics DataReaderQos to enable backwards compatibility
Fixes for supporting Python bindings in Windows platforms
Fix publishing physical data on statistics topic
Other minor fixes and improvements
Note
If you are upgrading from a version older than 1.7.0, it is required to regenerate generated source from IDL files using fastddsgen. If you are upgrading from any older version, regenerating the code is highly recommended.