Replies: 2 comments
-
The issue may be related to the UDP checksum - see this stackoverflow issue and its resolution: "... datagram got dropped because of bad payload checksum (after being re-assembled). ... I figured out the NIC of machine C computed UDP checksum of all the packets regardless they were fragments or not. This resulted in all fragments payload's bytes 7 & 8 to be overwritten by this checksum. I've now fixed the problem in NIC card setup, and all is fine. Thanks a lot anyway!". Can you evaluate the de-fragmented packets using Wireshark (directly or by using the tcpdump |
Beta Was this translation helpful? Give feedback.
-
Like (I imagine) most network applications, iperf3 doesn't do any special handling for IPv6 fragmented packets...it relies on the underlying protocol stack to reassemble fragments. |
Beta Was this translation helpful? Give feedback.
-
This is related to issue #905 where sending udp ipv6 traffic shows up with 0.0 throughput. In my case, fragmented ipv6 packets are received on the interface of my machine (linux Ubuntu 22.04.1 qemu) verified with tcpdump but iperf3 shows 0.0 throughput. Are these v6 packets not making it up the stack to iperf3 or does iperf3 not handle v6 fragmented udp packets?
No fragmentation with 1452 packet size
iperf3 -t 20 -O 2 -i 1 -P 1 -p 5201 -u -l 1452 --get-server-output -b 1500M -c 1234::5678 -R
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-20.07 sec 3.50 GBytes 1.50 Gbits/sec 0.000 ms 0/2587113 (0%) sender
[ 5] 0.00-20.00 sec 2.19 GBytes 942 Mbits/sec 0.006 ms 961492/2582742 (37%) receiver
tcpdump snippet
16:25:10.058230 IP6 (flowlabel 0xab5e1, hlim 64, next-header UDP (17) payload length: 1460) 1234::5678.5201 > 9876::5432.47850: [udp sum ok] UDP, length 1452
16:25:10.058231 IP6 (flowlabel 0xab5e1, hlim 64, next-header UDP (17) payload length: 1460) 1234::5678.5201 > 9876::5432.47850: [udp sum ok] UDP, length 1452
16:25:10.058231 IP6 (flowlabel 0xab5e1, hlim 64, next-header UDP (17) payload length: 1460) 1234::5678.5201 > 9876::5432.47850: [udp sum ok] UDP, length 1452
Fragmentation with 1453 packet size and throughput is 0.00 despite packets received at the interface
iperf3 -t 20 -O 2 -i 1 -P 1 -p 5201 -u -l 1453 --get-server-output -b 1500M -c 1234::5678 -R
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-20.07 sec 3.50 GBytes 1.50 Gbits/sec 0.000 ms 0/2784202 (0%) sender
[ 5] 0.00-20.00 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (0%) receiver
tcpdump snippet
16:24:32.703369 IP6 (flowlabel 0xd93fe, hlim 64, next-header Fragment (44) payload length: 21) 1234::5678 > 9876::5432: frag (0xab62080c:1448|13)
16:24:32.703369 IP6 (flowlabel 0xd93fe, hlim 64, next-header Fragment (44) payload length: 1456) 1234::5678 > 9876::5432: frag (0x412b3b43:0|1448) 5201 > 55712: UDP, length 1453
16:24:32.703369 IP6 (flowlabel 0xd93fe, hlim 64, next-header Fragment (44) payload length: 21) 1234::5678 > 9876::5432: frag (0x412b3b43:1448|13)
16:24:32.703377 IP6 (flowlabel 0xd93fe, hlim 64, next-header Fragment (44) payload length: 1456) 1234::5678 > 9876::5432: frag (0xa7d0d9f4:0|1448) 5201 > 55712: UDP, length 1453
hostnamectl
Virtualization: qemu
Operating System: Ubuntu 22.04.1 LTS
Kernel: Linux 5.15.0-52-generic
Architecture: arm64
Hardware Vendor: QEMU
Hardware Model: QEMU Virtual Machine
Qemu on a MacMini with M1 chip.
iperf3 --version
iperf 3.9 (cJSON 1.7.13)
Beta Was this translation helpful? Give feedback.
All reactions