udev/net: support more ethtool features

Closes #39318.
This commit is contained in:
Yu Watanabe
2026-01-17 02:52:20 +09:00
parent b5100a4569
commit 4ac445c152
2 changed files with 71 additions and 0 deletions
+65
View File
@@ -934,6 +934,28 @@
<xi:include href="version-info.xml" xpointer="v245"/>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>ScatterGather=</varname></term>
<listitem>
<para>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
<command>ethtool -K <replaceable>INTERFACE</replaceable> tx-scatter-gather on|off</command>.</para>
<xi:include href="version-info.xml" xpointer="v260"/>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>ScatterGatherFragmentList=</varname></term>
<listitem>
<para>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
<command>ethtool -K <replaceable>INTERFACE</replaceable> tx-scatter-gather-fraglist on|off</command>.</para>
<xi:include href="version-info.xml" xpointer="v260"/>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>TCPSegmentationOffload=</varname></term>
<listitem>
@@ -943,6 +965,29 @@
<xi:include href="version-info.xml" xpointer="v232"/>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>TCPECNSegmentationOffload=</varname></term>
<listitem>
<para>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
<command>ethtool -K <replaceable>INTERFACE</replaceable> tx-tcp-ecn-segmentation on|off</command>.</para>
<xi:include href="version-info.xml" xpointer="v260"/>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>TCPMangleIdSegmentationOffload=</varname></term>
<listitem>
<para>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
<command>ethtool -K <replaceable>INTERFACE</replaceable> tx-tcp-mangleid-segmentation on|off</command>.</para>
<xi:include href="version-info.xml" xpointer="v260"/>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>TCP6SegmentationOffload=</varname></term>
<listitem>
@@ -991,6 +1036,26 @@
<xi:include href="version-info.xml" xpointer="v250"/>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>GenericReceiveOffloadList=</varname></term>
<listitem>
<para>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
<command>ethtool -K <replaceable>INTERFACE</replaceable> rx-gro-list on|off</command>.</para>
<xi:include href="version-info.xml" xpointer="v260"/>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>GenericReceiveOffloadUDPForwarding=</varname></term>
<listitem>
<para>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
<command>ethtool -K <replaceable>INTERFACE</replaceable> rx-udp-gro-forwarding on|off</command>.</para>
<xi:include href="version-info.xml" xpointer="v260"/>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>LargeReceiveOffload=</varname></term>
<listitem>
+6
View File
@@ -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])