You are here: Compatibility > Wire Protocol Compatibility

Wire Protocol Compatibility

General Information on RTPS (All Releases)

Connext DDS communicates over the wire using the formal Real-time Publish-Subscribe (RTPS) protocol. RTPS has been developed from the ground up with performance, interoperability and extensibility in mind. The RTPS protocol is an international standard managed by the OMG. The RTPS protocol has built-in extensibility mechanisms that enable new revisions to introduce new message types, extend the existing messages, or extend the Quality of Service settings in the product—without breaking interoperability.

RTPS 1.0 was introduced in 2001. The current version is 2.1. RTI plans to maintain interoperability between middleware versions based on RTPS 2.x.

Release-Specific Information for Connext DDS 5.x

Large Data with Endpoint Discovery

An endpoint (DataWriter or DataReader) created with Connext DDS 5.x will not be discovered by an application that uses a previous release (4.5f or lower) if any of these conditions are met:

The endpoint’s TypeObject is sent on the wire and its size is greater than 65535 bytes. For information on TypeObjects, see the RTI Connext DDS Core Libraries Getting Started Guide Addendum for Extensible Types.

The endpoint’s UserDataQosPolicy value is greater than 65535 bytes.

TypeObjects and UserDataQosPolicy values with a serialized size greater than 65535 bytes require extended parameterized encapsulation when they are sent as part of the endpoint discovery information. This parameterized encapsulation is not understood by previous Connext DDS releases.

Release-Specific Information for Connext DDS 4.5 and 5.x

Connext DDS 4.5 and 5.x are compatible with RTI Data Distribution Service 4.2 - 4.5, except as noted below.

RTPS Versions

Connext DDS 4.5 and 5.x support RTPS 2.1. Some earlier releases (see Table 1 ) supported RTPS 2.0 or 1.2. Because these RTPS versions are incompatible with each other, applications built with Connext DDS/RTI Data Distribution Service 4.2e and higher will not interoperate with applications built with RTI Data Distribution Service 4.2c or lower.

Table 1 RTPS Versions

 

RTPS Version

Connext DDS 4.5f and higher

2.1

Data Distribution Service 4.2e - 4.5e

2.1

Data Distribution Service 4.2c

2.0

Data Distribution Service 4.2b and lower

1.2

double, long long, unsigned long long or long double Wire Compatibility

If your Connext DDS application’s data type uses a ‘double,’ ‘long long,’ ‘unsigned long long,’ or ‘long double,’ it will not interoperate with applications built with RTI Data Distribution Service 4.2e or lower, unless you use the -use42eAlignment flag when generating code with rtiddsgen.

Sending ‘Large Data’ between RTI Data Distribution Service 4.4d and Older Releases

The ‘large data’ format in RTI Data Distribution Service 4.2e, 4.3, 4.4b and 4.4c is not compliant with RTPS 2.1. (‘Large data’ refers to data that cannot be sent as a single packet by the transport.)

This issue is resolved in Connext DDS and in RTI Data Distribution Service 4.4d-4.5e. As a result, by default, large data in Connext DDS and in RTI Data Distribution Service 4.4d-4.5e is not compatible with older versions of RTI Data Distribution Service. You can achieve backward compatibility by setting the following properties to 1.

dds.data_writer.protocol.use_43_large_data_format
dds.data_reader.protocol.use_43_large_data_format

The properties can be set per DataWriter/DataReader or per DomainParticipant.

For example:

<participant_qos>
    <property>
        <value>
           <element>
               <name>
                   dds.data_writer.protocol.use_43_large_data_format
               </name>
               <value>1</value>
           </element>
           <element>
               <name>
		   dds.data_reader.protocol.use_43_large_data_format
		</name>
               <value>1</value>
           </element>
       </value>
   </participant_qos>

© 2015 RTI