100% packetloss on latency measurements 2x00/4x00 series
Introduction | The ByteBlower 4x00 and 2x00 servers have hardware that is capable of doing hardware timestamping. This hardware timestamping can in combination with checksum calculations in software lead to bad checksums. Note: This issue has been resolved by making software timestamping the default. |
Fix | As the software accuracy of timestamping has increased a lot, the default configuration for these models has changed to software timestamping and this issue is resolved. If the system should still use hardware timestamping, the solutions below can help. |
IPv4 workaround | In IPv4 the UDP checksum is optional. By setting it to 0 you disable the checksum and thereby also the checks on the receiving side. So your DUT won't drop the packets. The screenshot below shows you where you can set the UDP checksum to 0. Go to the Frame-view and under the "Layer 4" tab you can change the checksum. |
IPv6 workaround | In IPv6, the UDP checksum is mandatory. So you can't use the same trick as on IPv4. Here we will have to change the UDP length. As explained in the following article ( Background: Adding FrameTags to your ByteBlower frame - structure and behaviour) the time tag is added normally at the end of the UDP packet. If we subtract the length of a time tag (8 bytes) from the UDP length, then the time tag will not influence the UDP checksum, and therefore the checksum will still be correct when the time tag is added by the network-card. The screenshot below shows you where and how you can change the UDP length value. Go to the Frame-view and under the "Layer 4"-tab you can change the Total Length. In this example the frame is 64Bytes. The UDPLength is dus 0x0A and minus 8 makes a UDPLength of 0x02 BUT: Since the time tag is not covered by the UDPlength, some DUT can remove those last 8 bytes and remove the time tag. |