How do I know UDP checksum is enabled on my OS?

A simple way to tell whether UDP checksum is enabled is to use Wireshark or tcpdump to display the UDP header.

Look at the udp checksum field in the UDP header. If this field is 0x0000, then UDP checksum is disabled; otherwise it is enabled.

For example, on a Linux machine, the following command can be used to determine if UDP checksum is enabled:

tcpdump udp port 7400 and 'udp[6:2] == 0'

For information on which ports are used by the middleware, see the Discovery chapter in the RTI Connext Core Libraries and Utilities User's Manual. By default, for DDS domain 0, port number 7400 is used. However, you can use any UDP port (even a non-DDS port) in the tcpdump command, since the checksum setting applies to all packets sent on UDP.

Platform:
Keywords:

Comments

If not enabled, can we use builtin.udp transport property to enable it or is this a generic NIC configuration issue unrelated to DDS?

Hi dwinchester,

The checksum in UDP cannot be enabled from DDS as it is a parameter from the OS.
In RTI Connext DDS 5.3.0 you will find the property "use_checksum" which controls if the checksum is computed or not. For more information check the User's Manual "Table 15.3 Properties for Builtin UDPv6 Transport".
We have also introduced in this version a CRC verification that can be enabled at RTI TCP level and at Participant level:
* You have available two RTI TCP Transport properties: "send_crc" and "force_crc_check". You can find more information in the User's Manual, "Table 37.1 Properties for NDDS_Transport_TCPv4_Property_t".
* You can find more information regarding the CRC verification at Participant level in order to identify corrupted RTPS messages in the User's Manual, "8.3.13 Getting Participant Protocol Status" section and in "Table 8.20 DDS_WireProtocolQosPolicy".

Regards,
Isabel

Hi dwinchester,

There was a documentation bug and what I explained in the previous message regarding "use_checksum" is not correct.
The "use_checksum" is only available for UDPv4, but not for UDPv6. That means that in UDPv6 you cannot turn off the checksum.

Regards,
Isabel