esnet / esnet/iperf

Reduce default UDP Package size to physically MTU - use WSA Registered IO on windows to receive UDP packages

Open
#1,107 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
8.8k
Forks
1.5k
PR merge metrics
No merged PRs in 30d

Description

I found out, what's the reason, that the UDP RSS Queues aren't working: The Intel(R) Ethernet Converged Network Adapter X550-T2 does not send Jumbo Packages even if configured (other NIC does), so all UDP packages larger than the default 1500MTU are split into IP packages. IP packages do not have ports and the UDP-RSS-Hashing algorithm can't work. Even if it would know that the IP package is part of an UDP package.

The only way is to reduce the MTU size on the sending side of iperf to the physically MTU.
Also windows does not receive more than one UDP package from the kernel, when using the default WINSOCK API. Which will result in very high CPU load. To solve this iperf should use the WSA Registered I/O API.

_Originally posted by @Febbe in https://github.com/esnet/iperf/issues/1049#issuecomment-766829448_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.