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 withcompute_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.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
orallow_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.
10.2.9. Build Connext Micro libraries conveniently with symlinks¶
This release adds support for using the cmake --install
command with
symbolic links (symlinks) as well as full paths.
Refer to Building Connext Micro for Common Platforms for more information on how to use CMake build commands.