2.1. General Compatibility 7.4.0
This section describes compatibility issues that affect an upgrade to 7.4.0. It describes general, wire, and other compatibility issues between Connext 7.4.0 and previous releases.
Unless noted otherwise, the issues in this section do not apply to RTI Connext Micro.
Attention
For important information on new and removed platforms and features in release 7.4.0, see What’s New in 7.4.0. See also individual products’ Release Notes.
See Product-Specific Compatibility 7.4.0 for specific issues.
See RTI Connext Performance Benchmarks for performance details in this release.
2.1.1. Wire Compatibility
2.1.1.1. RTPS Versions
See Compatibility, in the RTI Connext DDS Core Libraries Release Notes for information about the RTPS versions supported for each Connext release.
2.1.1.2. Best-effort DataReader from before 6.1.0 cannot receive MultiChannel RTPS fragmented data from synchronous DataWriter in 7.4.0
You cannot have a best-effort DataReader from a release below 6.1.0 receiving MultiChannel RTPS fragmented data from a 7.4.0 DataWriter publishing synchronously. This backward compatibility had to be broken because of the fix for RTI Issue ID CORE-14668.
2.1.2. Transport Compatibility
2.1.2.1. Real-Time WAN Transport updated message_size_max value may cause messages to be dropped from previous versions
The message_size_max
for the RTI Real-Time WAN Transport has been
decreased from 65535 to 1400 to avoid issues related to IP fragmentation that
are common in WAN environments. (See What’s New in 7.4.0
in the RTI Real-Time WAN Transport Release Notes.) Because of this change,
RTPS messages with serialized sizes larger than 1400 bytes may be dropped by
the current release and the following error message will appear when two
DomainParticipants discover each other:
ERROR [PARSE MESSAGE|0x01015772,0xEFEA70AC,0xB9D66813:0x000100C7{Entity=DR,MessageKind=DATA}|
RECEIVE FROM 0x0101C23E,0x7B2BF1E0,0xA1CDCA5F:0x000100C2|:0x000001C1{Domain=0}|ASSERT REMOTE DP|
LC:Discovery] PRESParticipant_checkTransportInfoMatching:INVALID CONFIGURATION |
the message_size_max, 65507, for udpv4_wan, of the remote participant (guid: 0x0101C23E,
0x7B2BF1E0,0xA1CDCA5F, name: '<UNKNOWN>'), does not match the message_size_max, 1400, of the local
participant (guid: 0x01015772,0xEFEA70AC,0xB9D66813, name: '<UNKNOWN>'). Will lose RTPS packets
with size > 1400.
The messages are dropped because the DDS_ReceiverPoolQosPolicy::buffer_size
default value is set to an AUTO value that takes the maximum value of the
message_size_max
across all installed transports in a DomainParticipant.
Because it is a maximum across all installed transports, if you have another
transport installed (such as the builtin shared memory or UDPv4 transports)
and have not changed the message_size_max
for those transports, then you
will not have a problem with dropped messages, even if you see the error
message about dropped packets for the UDPv4_WAN transport.
You can avoid dropped messages by doing one of the following:
Update the
message_size_max
in versions before 7.4.0 to 1400. You can use theBuiltinQosSnippetLib::Transport.UDP.WAN
snippet. This QoS snippet enables the Real-Time WAN Transport, sets themessage_size_max
to 1400, and enables asynchronous publishing, which was required in previous releases to support data fragmentation when using reliable communication (that requirement has been removed in this release). For example:<qos_profile name=”MyProfile”> <base_name> <element>BuiltinQosSnippetLib::Transport.UDP.WAN</element> </base_name> .... </qos_profile>
Change the value of the
DDS_ReceiverPoolQosPolicy::buffer_size
QoS to be as large as themessage_size_max
of the application running a previous version of Connext (65535 if it was left to the default). For example:<qos_profile name=”MyProfile”> <domain_participant_qos> <receiver_pool> <buffer_size>65535</buffer_size> </receiver_pool> .... </domain_participant_qos> .... </qos_profile>
Update the
message_size_max
in 7.4.0 to be the same as the previous version (65535 if it was previously left untouched). For example:<qos_profile name=”MyProfile”> <domain_participant_qos> <transport_builtin> <udpv4_wan> <message_size_max>65535</message_size_max> </udpv4_wan> </transport_builtin> .... </domain_participant_qos> .... </qos_profile>
This solution has the disadvantage that you are likely to run into issues related to IP fragmentation. For more information about IP fragmentation and DDS fragmentation, see Disabling IP Fragmentation for Real-Time WAN Transport in the RTI Connext Core Libraries User’s Manual.