From: Yu Watanabe Date: Mon, 12 Jan 2026 09:32:23 +0000 (+0900) Subject: udev/net: support more ethtool features X-Git-Tag: v260-rc1~382 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4ac445c152dcdb86fad7c74b633d7f1df9ba3933;p=thirdparty%2Fsystemd.git udev/net: support more ethtool features Closes #39318. --- diff --git a/man/systemd.link.xml b/man/systemd.link.xml index e9c367341a2..602f19b6003 100644 --- a/man/systemd.link.xml +++ b/man/systemd.link.xml @@ -934,6 +934,28 @@ + + ScatterGather= + + Takes a boolean. If set to true, enables offload feature where the hardware builds a network + packet from multiple non-contiguous memory buffers. + When unset, the kernel's default will be used. This corresponds to the command + ethtool -K INTERFACE tx-scatter-gather on|off. + + + + + + ScatterGatherFragmentList= + + Takes a boolean. If set to true, enables offload feature where the hardware builds a network + packet from a chained list of socket buffers. + When unset, the kernel's default will be used. This corresponds to the command + ethtool -K INTERFACE tx-scatter-gather-fraglist on|off. + + + + TCPSegmentationOffload= @@ -943,6 +965,29 @@ + + TCPECNSegmentationOffload= + + Takes a boolean. If set to true, TCP Segmentation Offload (TSO) is performed even when ECN + (Explicit Congestion Notification) flags are active in the TCP stream. + When unset, the kernel's default will be used. This corresponds to the command + ethtool -K INTERFACE tx-tcp-ecn-segmentation on|off. + + + + + + TCPMangleIdSegmentationOffload= + + Takes a boolean. If set to true, TCP Segmentation Offload (TSO) is performed even if the + hardware is incapable of correctly incrementing the IPv4 Identification (ID) field for each + resulting packet. + When unset, the kernel's default will be used. This corresponds to the command + ethtool -K INTERFACE tx-tcp-mangleid-segmentation on|off. + + + + TCP6SegmentationOffload= @@ -991,6 +1036,26 @@ + + GenericReceiveOffloadList= + + Takes a boolean. If set to true, Generic Receive Offload (GRO) List for UDP is enabled. + When unset, the kernel's default will be used. This corresponds to the command + ethtool -K INTERFACE rx-gro-list on|off. + + + + + + GenericReceiveOffloadUDPForwarding= + + Takes a boolean. If set to true, Generic Receive Offload (GRO) for aggregating incoming UDP packets is enabled. + When unset, the kernel's default will be used. This corresponds to the command + ethtool -K INTERFACE rx-udp-gro-forwarding on|off. + + + + LargeReceiveOffload= diff --git a/src/udev/net/link-config-gperf.gperf b/src/udev/net/link-config-gperf.gperf index ef3ebf41cd5..ef68dab339f 100644 --- a/src/udev/net/link-config-gperf.gperf +++ b/src/udev/net/link-config-gperf.gperf @@ -72,13 +72,19 @@ Link.WakeOnLanPassword, config_parse_wol_password, /* ethtool features */ Link.ReceiveChecksumOffload, config_parse_tristate, 0, offsetof(LinkConfig, features[NET_DEV_FEAT_RXCSUM]) Link.TransmitChecksumOffload, config_parse_tristate, 0, offsetof(LinkConfig, features[NET_DEV_FEAT_TXCSUM]) +Link.ScatterGather, config_parse_tristate, 0, offsetof(LinkConfig, features[NET_DEV_FEAT_SG]) +Link.ScatterGatherFragmentList, config_parse_tristate, 0, offsetof(LinkConfig, features[NET_DEV_FEAT_FRAGLIST]) Link.GenericSegmentationOffload, config_parse_tristate, 0, offsetof(LinkConfig, features[NET_DEV_FEAT_GSO]) Link.TCPSegmentationOffload, config_parse_tristate, 0, offsetof(LinkConfig, features[NET_DEV_FEAT_TSO]) +Link.TCPECNSegmentationOffload, config_parse_tristate, 0, offsetof(LinkConfig, features[NET_DEV_FEAT_TSO_ECN]) +Link.TCPMangleIdSegmentationOffload, config_parse_tristate, 0, offsetof(LinkConfig, features[NET_DEV_FEAT_TSO_MANGLEID]) Link.TCP6SegmentationOffload, config_parse_tristate, 0, offsetof(LinkConfig, features[NET_DEV_FEAT_TSO6]) Link.PartialGenericSegmentationOffload, config_parse_tristate, 0, offsetof(LinkConfig, features[NET_DEV_FEAT_GSO_PARTIAL]) Link.UDPSegmentationOffload, config_parse_warn_compat, DISABLED_LEGACY, 0 Link.GenericReceiveOffload, config_parse_tristate, 0, offsetof(LinkConfig, features[NET_DEV_FEAT_GRO]) Link.GenericReceiveOffloadHardware, config_parse_tristate, 0, offsetof(LinkConfig, features[NET_DEV_FEAT_GRO_HW]) +Link.GenericReceiveOffloadList, config_parse_tristate, 0, offsetof(LinkConfig, features[NET_DEV_FEAT_GRO_FRAGLIST]) +Link.GenericReceiveOffloadUDPForwarding, config_parse_tristate, 0, offsetof(LinkConfig, features[NET_DEV_FEAT_GRO_UDP_FWD]) Link.LargeReceiveOffload, config_parse_tristate, 0, offsetof(LinkConfig, features[NET_DEV_FEAT_LRO]) Link.ReceiveVLANCTAGHardwareAcceleration, config_parse_tristate, 0, offsetof(LinkConfig, features[NET_DEV_FEAT_HW_VLAN_CTAG_RX]) Link.TransmitVLANCTAGHardwareAcceleration, config_parse_tristate, 0, offsetof(LinkConfig, features[NET_DEV_FEAT_HW_VLAN_CTAG_TX])