What is the expected behavior of the --skip-rx-copy flag for UDP and TCP? #1904
-
I'd like to solidify my understanding of the expected throughput improvement as per the @davidBar-On tagging you since it was your feature. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
For TCP, The result is that with |
Beta Was this translation helpful? Give feedback.
--skip-rx-copy
usesMSG_TRUNC
socket option, to skip copying the received data from the TCP/UDP stack buffer into the user's buffer. For iperf3 this is used for not including the overhead of data copy between the buffers.For TCP,
MSG_TRUNC
does not copy any data, regardless of thesize
parameter value. For UDP, thesize
parameters specify how much data from the received datagram (packet) should be copied. iperf3 uses the first bytes of the UDP datagram for the time the packet was sent (sec
,usec
) and for the packet count (pcount
) - total 16 bytes. Therefore iperf3 needs to read the header of the received UDP datagram and cannot ignore all of it.The result is that with
--skip-rx-copy
, TC…