10.2. What’s New in 4.1.0

RTI Connext Micro 4.1.0 is a feature release. See the Connext Releases page on the RTI website for more information on RTI’s software release model.

The following features are new since Connext Micro 4.0.1.

10.2.1. Platform-independent code is now separate from OS and network stack integration

This release includes precompiled Connext Micro binaries in two formats:

  • Platform Independent Libraries (PIL): binaries that support the basic features of Connext Micro.

  • Platform Support Libraries (PSL): binaries that support OS and network stack integration.

This split allows for different platform-specific PSLs to be written for the same PIL without needing to recompile the Connext Micro code. Previous releases of Connext Micro were delivered as integrated libraries with the OS and network stack code included, which could not be changed without recompiling the entire library. See the Library types section for more information on this change.

Since these split libraries are provided precompiled, Connext Micro can be used out-of-the-box without building the source code first; see Getting Started and Developing Applications. However, RTI also provides the source code for the PSL with supported architectures. Refer to Building the PSL for instructions on how to build your own PSL from source.

Warning

Split libraries do not automatically register the UDP transport. This is because Connext Micro makes no assumptions about which transports are available when using split libraries. In order to use the UDP transport included in the PSL, add the following code before creating a DomainParticipant:

/* Register the UDP transport */
struct UDP_InterfaceFactoryProperty *udp_property;

/* allocate and set udp_property */

RT_Registry_register(registry,NETIO_DEFAULT_UDP_NAME,
         UDP_InterfaceFactory_get_interface(),
         (struct RT_ComponentFactoryProperty*)udp_property,NULL),

DDS_StringSeq_set_maximum(&participant_qos.transports.enabled_transports,1);
DDS_StringSeq_set_length(&participant_qos.transports.enabled_transports,1);
*DDS_StringSeq_get_reference(&participant_qos.transports.enabled_transports,0) = DDS_String_dup("_udp");

DDS_StringSeq_set_maximum(&participant_qos.discovery.enabled_transports,1);
DDS_StringSeq_set_length(&participant_qos.discovery.enabled_transports,1);
*DDS_StringSeq_get_reference(&participant_qos.discovery.enabled_transports,0) = DDS_String_dup("_udp://");

DDS_StringSeq_set_maximum(&participant_qos.user_traffic.enabled_transports,1);
DDS_StringSeq_set_length(&participant_qos.user_traffic.enabled_transports,1);
*DDS_StringSeq_get_reference(&participant_qos.user_traffic.enabled_transports,0)
= DDS_String_dup("_udp://");

10.2.2. Transfer large data samples quickly with Zero Copy v2

This release adds a new transport, Zero Copy v2, which can perform Zero Copy data transfer. Zero Copy transfer allows you to move large data samples without copying them, which increases throughput and reduces latency.

You can now set up Zero Copy transfer to use either the Shared Memory Transport (which was available in previous versions of Connext Micro) or the new Zero Copy v2 transport. The main difference between the two transports is that the Shared Memory Transport is interoperable with Connext Professional and the Zero Copy v2 transport is interoperable with select versions of Connext Cert.

For more details, refer to Zero Copy Transfer and Zero Copy v2 Transport.

10.2.3. Enable and configure Zero Copy transfer with MAG

This release allows you to enable and configure the Zero Copy v2 Transport while defining an application in XML format. Micro Application Generator (MAG) will then create the necessary code to enable and configure the Zero Copy transport in Connext Micro.

For details on how to enable Zero Copy v2 with MAG, refer to MAG Command-Line Options and Transport and Discovery Configuration.

10.2.4. Enhance data reliability by detecting and discarding corrupted RTPS messages

This release adds support for detecting and discarding corrupted RTPS messages. This improves data reliability and provides basic security by ensuring that the data has not been modified in transit.

A Cyclic Redundancy Check (CRC) is computed over the DDS RTPS message (including the RTPS Header), which is sent as a new RTPS submessage. The subscribing application can detect this new submessage and validate the contained CRC. Optionally, when a corrupted RTPS message is detected, the message can be dropped.

To enable the use of CRC in a DomainParticipant, there are three new fields in the WireProtocolQoSPolicy:

  • compute_crc: when enabled at the sending application, sends the CRC.

  • check_crc: when enabled, drops corrupted messages.

  • require_crc: when enabled, ignores participants with compute_crc set to false.

Refer to Message Integrity Checking for details.

10.2.5. Develop more reliable applications with MAG

This release adds support to Micro Application Generator (MAG) for the Cyclic Redundancy Check feature (see Enhance data reliability by detecting and discarding corrupted RTPS messages). This allows you to develop applications with MAG that have improved data reliability and basic security.

MAG now supports the following fields in the WireProtocolQosPolicy:

  • compute_crc

  • check_crc

  • require_crc

  • computed_crc_kind

  • allowed_crc_mask

Refer to Message Integrity Checking for details.

10.2.6. Guarantee compatibility with Connext Professional with MAG when using the Shared Memory Transport

This release adds support to Micro Application Generator (MAG) for the dds.transport.minimum_compatibility_version property, which you can set via the PROPERTY QoS policy for the DomainParticipant.

dds.transport.minimum_compatibility_version changes the value of the new field pro_minimum_compatibility_version that has been added to the shared memory interface factory property. This property sets the minimum version of Connext Professional to be compatible with when using shared memory.

The default value for this field is DDS_PRODUCTVERSION_UNKNOWN.

Refer to SHMEM Configuration for details.

10.2.7. Improve control of data distribution to multicast addresses with new UDP transport options

This release adds the following new options to the UDP transport to further control how Connext Micro sends data to multicast addresses:

  • disable_multicast_bind: controls whether Connext Micro will bind to a multicast address receive address (if set to 0) or bind to ANY multicast address (if set to 1).

  • multicast_loopback_disable: controls whether Connext Micro puts multicast packets onto the loopback interface.

  • disable_multicast_interface_select: controls whether Connext Micro will use multicast_interface or allow_interface/deny_interface to select the interface for sending to multicast addresses.

Refer to UDP Transport for more information on these options.

10.2.8. Develop applications with new UDP transport options with MAG

This release adds support to Micro Application Generator (MAG) for the following new fields when configuring the UDP transport:

Refer to UDP Configuration for more information on these properties.