systemd-link: Add support to configure tx-tcp6-segmentation (#6859)
closes #6854 tcp-segmentation-offload: off tx-tcp-segmentation: off tx-tcp-ecn-segmentation: off [fixed] tx-tcp-mangleid-segmentation: off tx-tcp6-segmentation: off <==========================
This commit is contained in:
parent
c9f7fb0f3c
commit
ffa69a04be
|
@ -490,6 +490,14 @@
|
||||||
TCP segmentation offload. Takes a boolean value.
|
TCP segmentation offload. Takes a boolean value.
|
||||||
Defaults to "unset".</para>
|
Defaults to "unset".</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term><varname>TCP6SegmentationOffload=</varname></term>
|
||||||
|
<listitem>
|
||||||
|
<para>The TCP6 Segmentation Offload (tx-tcp6-segmentation) when true enables
|
||||||
|
TCP6 segmentation offload. Takes a boolean value.
|
||||||
|
Defaults to "unset".</para>
|
||||||
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><varname>GenericSegmentationOffload=</varname></term>
|
<term><varname>GenericSegmentationOffload=</varname></term>
|
||||||
|
|
|
@ -66,11 +66,12 @@ DEFINE_STRING_TABLE_LOOKUP(port, NetDevPort);
|
||||||
DEFINE_CONFIG_PARSE_ENUM(config_parse_port, port, NetDevPort, "Failed to parse Port setting");
|
DEFINE_CONFIG_PARSE_ENUM(config_parse_port, port, NetDevPort, "Failed to parse Port setting");
|
||||||
|
|
||||||
static const char* const netdev_feature_table[_NET_DEV_FEAT_MAX] = {
|
static const char* const netdev_feature_table[_NET_DEV_FEAT_MAX] = {
|
||||||
[NET_DEV_FEAT_GSO] = "tx-generic-segmentation",
|
[NET_DEV_FEAT_GSO] = "tx-generic-segmentation",
|
||||||
[NET_DEV_FEAT_GRO] = "rx-gro",
|
[NET_DEV_FEAT_GRO] = "rx-gro",
|
||||||
[NET_DEV_FEAT_LRO] = "rx-lro",
|
[NET_DEV_FEAT_LRO] = "rx-lro",
|
||||||
[NET_DEV_FEAT_TSO] = "tx-tcp-segmentation",
|
[NET_DEV_FEAT_TSO] = "tx-tcp-segmentation",
|
||||||
[NET_DEV_FEAT_UFO] = "tx-udp-fragmentation",
|
[NET_DEV_FEAT_TSO6] = "tx-tcp6-segmentation",
|
||||||
|
[NET_DEV_FEAT_UFO] = "tx-udp-fragmentation",
|
||||||
};
|
};
|
||||||
|
|
||||||
int ethtool_connect(int *ret) {
|
int ethtool_connect(int *ret) {
|
||||||
|
|
|
@ -53,6 +53,7 @@ typedef enum NetDevFeature {
|
||||||
NET_DEV_FEAT_GRO,
|
NET_DEV_FEAT_GRO,
|
||||||
NET_DEV_FEAT_LRO,
|
NET_DEV_FEAT_LRO,
|
||||||
NET_DEV_FEAT_TSO,
|
NET_DEV_FEAT_TSO,
|
||||||
|
NET_DEV_FEAT_TSO6,
|
||||||
NET_DEV_FEAT_UFO,
|
NET_DEV_FEAT_UFO,
|
||||||
_NET_DEV_FEAT_MAX,
|
_NET_DEV_FEAT_MAX,
|
||||||
_NET_DEV_FEAT_INVALID = -1
|
_NET_DEV_FEAT_INVALID = -1
|
||||||
|
|
|
@ -39,6 +39,7 @@ Link.WakeOnLan, config_parse_wol, 0,
|
||||||
Link.Port, config_parse_port, 0, offsetof(link_config, port)
|
Link.Port, config_parse_port, 0, offsetof(link_config, port)
|
||||||
Link.GenericSegmentationOffload, config_parse_tristate, 0, offsetof(link_config, features[NET_DEV_FEAT_GSO])
|
Link.GenericSegmentationOffload, config_parse_tristate, 0, offsetof(link_config, features[NET_DEV_FEAT_GSO])
|
||||||
Link.TCPSegmentationOffload, config_parse_tristate, 0, offsetof(link_config, features[NET_DEV_FEAT_TSO])
|
Link.TCPSegmentationOffload, config_parse_tristate, 0, offsetof(link_config, features[NET_DEV_FEAT_TSO])
|
||||||
|
Link.TCP6SegmentationOffload, config_parse_tristate, 0, offsetof(link_config, features[NET_DEV_FEAT_TSO6])
|
||||||
Link.UDPSegmentationOffload, config_parse_tristate, 0, offsetof(link_config, features[NET_DEV_FEAT_UFO])
|
Link.UDPSegmentationOffload, config_parse_tristate, 0, offsetof(link_config, features[NET_DEV_FEAT_UFO])
|
||||||
Link.GenericReceiveOffload, config_parse_tristate, 0, offsetof(link_config, features[NET_DEV_FEAT_GRO])
|
Link.GenericReceiveOffload, config_parse_tristate, 0, offsetof(link_config, features[NET_DEV_FEAT_GRO])
|
||||||
Link.LargeReceiveOffload, config_parse_tristate, 0, offsetof(link_config, features[NET_DEV_FEAT_LRO])
|
Link.LargeReceiveOffload, config_parse_tristate, 0, offsetof(link_config, features[NET_DEV_FEAT_LRO])
|
||||||
|
|
Loading…
Reference in a new issue