Skip to content

Added Generic Segmentation Offload support for UDP protocol. - #921

Closed
yazimut wants to merge 1 commit into
esnet:masterfrom
Aquantia:master-esnet
Closed

Added Generic Segmentation Offload support for UDP protocol.#921
yazimut wants to merge 1 commit into
esnet:masterfrom
Aquantia:master-esnet

Conversation

@yazimut

@yazimut yazimut commented Oct 21, 2019

Copy link
Copy Markdown

Generic Segmentation Offload allows you to reduce the load on the CPU by transferring routine work from the kernel to the network card. This option is activated using the key "--udp-gso N", where "N' is the segment size.
Linux kernel began supporting UDP GSO from version 4.18.0. Also it could be software or hardware supporting. Hardware supporting could be only if network card and its driver are supporting UDP GSO. You may check it using "ethtool -k " - find "tx-udp-segmentation" parameter. If it equals "on" - hardware supporting is enabled, if "off" - disabled, if "off [fixed] - your interface doesn't support GSO".
e.g. On the AQC107 10Gbps card, that supports UDP GSO, CPU loading is falling from 100% to 25% (about these values). Bitrate is increasing from 300Mbps to 2.6Gbps (about these values) - comparing "-l 100" and "-l 6400 --udp-gso 100".

PLEASE NOTE the following text from the iperf3 license. Submitting a
pull request to the iperf3 repository constitutes "[making]
Enhancements available...publicly":

You are under no obligation whatsoever to provide any bug fixes, patches, or
upgrades to the features, functionality or performance of the source code
("Enhancements") to anyone; however, if you choose to make your Enhancements
available either publicly, or directly to Lawrence Berkeley National
Laboratory, without imposing a separate written license agreement for such
Enhancements, then you hereby grant the following license: a non-exclusive,
royalty-free perpetual license to install, use, modify, prepare derivative
works, incorporate into other computer software, distribute, and sublicense
such enhancements or derivative works thereof, in binary and source code form.

The complete iperf3 license is available in the LICENSE file in the
top directory of the iperf3 source tree.

  • Version of iperf3 (or development branch, such as master or
    3.1-STABLE) to which this pull request applies: latest

@yazimut
yazimut requested a review from bmah888 February 19, 2020 20:38
@yazimut yazimut closed this Feb 24, 2020
@yazimut yazimut reopened this Feb 24, 2020
@yazimut
yazimut force-pushed the master-esnet branch 3 times, most recently from 17843d8 to 27bbf13 Compare February 24, 2020 12:49
@gegles

gegles commented Aug 8, 2025

Copy link
Copy Markdown
Contributor

Please, take a look at #1925, hopefully this can become the definitive PR for this feature

@bmah888

bmah888 commented Apr 2, 2026

Copy link
Copy Markdown
Contributor

PR #1925 was committed with this functionality. Thanks for your submission!

@bmah888 bmah888 closed this Apr 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants