I send mixtures of large UDP packets back-to-back with small UDP packets. The large packets get fragmented to my MTU.
- On RHEL6 (CentOS6), the small UDP packets always arrive at the receivers in the correct order with respect to the final fragment of any previous large packet.
- On RHEL7, this no longer is the case. The small packet can get transmitted in-between the fragments of the larger packet, thus causing the receiver to see the small packet BEFORE the reassembled large packet.
As near as I can tell with ethtool, the configuration of the NIC is the same on both machines (It's actually the same machine and I swap hard drives).
So, my question is... What controls this behavior in RHEL7+? It's not udp-fragmentation-offload (That's set the same in both configurations). I'd like to find out how to force the fragments to be transmitted as a complete group, with no interfering packets, in RHEL7+.
Thanks,
XL600
If you just would like to force the fragmented UDP packets to be sequential in order without packets in-between, you could enforce this behaviour by:
But in general, it is not good to rely on this. Better to have reader code that does not make this assumption.