-
Notifications
You must be signed in to change notification settings - Fork 8.1k
Open
Labels
EnhancementChanges/Updates/Additions to existing featuresChanges/Updates/Additions to existing featuresarea: Networking
Description
Summary
For those who are interested in the performance of the Zephyr network, zperf is of great significance. It is a convenient and out-of-box method for testing network performance.
- For UDP, The size of the package is highly sensitive to network performance. the maximum packet size is 1470 bytes (for IPv4) and 1450 bytes (for IPv6). We should use the maximum packet size.
This is also the default configuration of iperf, and it is also the recommended configuration for network performance testing in other RTOS systems.

- For TCP, CONFIG_PICOLIBC_USE_MODULE=y has a significant impact on performance.
Use nucleo_h743zi board with loopback
before:
tcp upload: 49.35 Mbps/s
after:
tcp upload: 56.52 Mbps/s
Use nucleo_h743zi board, default config
before:
tcp upload: 71.3Mbps/s
tcp download: 75.11 Mbps/s
after:
tcp upload: 75.3Mbps/s
tcp download: 94.39 Mbps/s
Use nucleo_h743zi board, with tx async mode pr93965
before:
tcp upload: 71.3Mbps/s
tcp download: 75.11 Mbps/s
after:
tcp upload: 92.9Mbps/s
tcp download: 94.5Mbps/s
Describe the solution you'd like
- Add to the prj.conf file of sample/net/zperf
# For speed optimizations
CONFIG_PICOLIBC_USE_MODULE=y
CONFIG_NET_ZPERF_MAX_PACKET_SIZE=1470
-
Update the zperf documentation and use the maximum packet size 1470 (IPv4) / 1450 (IPv6) instead of 1K.
-
zperf_shell.c, The help documentation for UDP upload cmd uses 1470 (for IPv4) and 1450 (for IPv6) instead of 1k.
Alternatives
No response
Additional Context
No response
Metadata
Metadata
Labels
EnhancementChanges/Updates/Additions to existing featuresChanges/Updates/Additions to existing featuresarea: Networking