diff options
author | Thomas Haller <thaller@redhat.com> | 2021-01-27 13:50:48 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2021-02-01 13:25:06 +0100 |
commit | 086c563ad095b23b895ec7ccdbc1ba0cf4fe387d (patch) | |
tree | 2609489d8b1cb89e8a6cdb1dd722eeb4ea012516 | |
parent | 087a3b4955cffd38a40e43d441ab1a9887e8bda9 (diff) | |
download | NetworkManager-th/ethtool-new-offload-features.tar.gz |
ethtool: add more offload features that kernel supportsth/ethtool-new-offload-features
New features:
- ethtool.feature-macsec-hw-offload
- ethtool.feature-netns-local
- ethtool.feature-rx-gro-list
- ethtool.feature-rx-udp-gro-forwarding
- ethtool.feature-tls-hw-rx-offload
- ethtool.feature-tx-gso-list
- ethtool.feature-tx-lockless
- ethtool.feature-tx-tunnel-remcsum-segmentation
- ethtool.feature-vlan-challenged
-rw-r--r-- | clients/cli/generate-docs-nm-settings-nmcli.xml.in | 9 | ||||
-rw-r--r-- | clients/common/nm-meta-setting-desc.c | 9 | ||||
-rw-r--r-- | libnm/nm-ethtool-utils.h | 10 | ||||
-rw-r--r-- | shared/nm-base/nm-base.h | 11 | ||||
-rw-r--r-- | shared/nm-base/nm-ethtool-base.c | 18 | ||||
-rw-r--r-- | shared/nm-platform/nm-platform-utils.c | 10 | ||||
-rw-r--r-- | src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-utils.c | 21 |
7 files changed, 86 insertions, 2 deletions
diff --git a/clients/cli/generate-docs-nm-settings-nmcli.xml.in b/clients/cli/generate-docs-nm-settings-nmcli.xml.in index aad43c8ed5..aedced14b8 100644 --- a/clients/cli/generate-docs-nm-settings-nmcli.xml.in +++ b/clients/cli/generate-docs-nm-settings-nmcli.xml.in @@ -460,6 +460,8 @@ <property name="feature-l2-fwd-offload" /> <property name="feature-loopback" /> <property name="feature-lro" /> + <property name="feature-macsec-hw-offload" /> + <property name="feature-netns-local" /> <property name="feature-ntuple" /> <property name="feature-rx" /> <property name="feature-rxhash" /> @@ -467,12 +469,15 @@ <property name="feature-rx-all" /> <property name="feature-rx-fcs" /> <property name="feature-rx-gro-hw" /> + <property name="feature-rx-gro-list" /> + <property name="feature-rx-udp-gro-forwarding" /> <property name="feature-rx-udp_tunnel-port-offload" /> <property name="feature-rx-vlan-filter" /> <property name="feature-rx-vlan-stag-filter" /> <property name="feature-rx-vlan-stag-hw-parse" /> <property name="feature-sg" /> <property name="feature-tls-hw-record" /> + <property name="feature-tls-hw-rx-offload" /> <property name="feature-tls-hw-tx-offload" /> <property name="feature-tso" /> <property name="feature-tx" /> @@ -486,10 +491,12 @@ <property name="feature-tx-fcoe-segmentation" /> <property name="feature-tx-gre-csum-segmentation" /> <property name="feature-tx-gre-segmentation" /> + <property name="feature-tx-gso-list" /> <property name="feature-tx-gso-partial" /> <property name="feature-tx-gso-robust" /> <property name="feature-tx-ipxip4-segmentation" /> <property name="feature-tx-ipxip6-segmentation" /> + <property name="feature-tx-lockless" /> <property name="feature-tx-nocache-copy" /> <property name="feature-tx-scatter-gather" /> <property name="feature-tx-scatter-gather-fraglist" /> @@ -498,10 +505,12 @@ <property name="feature-tx-tcp-ecn-segmentation" /> <property name="feature-tx-tcp-mangleid-segmentation" /> <property name="feature-tx-tcp-segmentation" /> + <property name="feature-tx-tunnel-remcsum-segmentation" /> <property name="feature-tx-udp-segmentation" /> <property name="feature-tx-udp_tnl-csum-segmentation" /> <property name="feature-tx-udp_tnl-segmentation" /> <property name="feature-tx-vlan-stag-hw-insert" /> + <property name="feature-vlan-challenged" /> <property name="coalesce-adaptive-rx" /> <property name="coalesce-adaptive-tx" /> <property name="coalesce-pkt-rate-high" /> diff --git a/clients/common/nm-meta-setting-desc.c b/clients/common/nm-meta-setting-desc.c index d30d6cd48f..850b124145 100644 --- a/clients/common/nm-meta-setting-desc.c +++ b/clients/common/nm-meta-setting-desc.c @@ -5504,6 +5504,8 @@ static const NMMetaPropertyInfo *const property_infos_ETHTOOL[] = { PROPERTY_INFO_ETHTOOL (FEATURE_L2_FWD_OFFLOAD), PROPERTY_INFO_ETHTOOL (FEATURE_LOOPBACK), PROPERTY_INFO_ETHTOOL (FEATURE_LRO), + PROPERTY_INFO_ETHTOOL (FEATURE_MACSEC_HW_OFFLOAD), + PROPERTY_INFO_ETHTOOL (FEATURE_NETNS_LOCAL), PROPERTY_INFO_ETHTOOL (FEATURE_NTUPLE), PROPERTY_INFO_ETHTOOL (FEATURE_RX), PROPERTY_INFO_ETHTOOL (FEATURE_RXHASH), @@ -5511,12 +5513,15 @@ static const NMMetaPropertyInfo *const property_infos_ETHTOOL[] = { PROPERTY_INFO_ETHTOOL (FEATURE_RX_ALL), PROPERTY_INFO_ETHTOOL (FEATURE_RX_FCS), PROPERTY_INFO_ETHTOOL (FEATURE_RX_GRO_HW), + PROPERTY_INFO_ETHTOOL (FEATURE_RX_GRO_LIST), + PROPERTY_INFO_ETHTOOL (FEATURE_RX_UDP_GRO_FORWARDING), PROPERTY_INFO_ETHTOOL (FEATURE_RX_UDP_TUNNEL_PORT_OFFLOAD), PROPERTY_INFO_ETHTOOL (FEATURE_RX_VLAN_FILTER), PROPERTY_INFO_ETHTOOL (FEATURE_RX_VLAN_STAG_FILTER), PROPERTY_INFO_ETHTOOL (FEATURE_RX_VLAN_STAG_HW_PARSE), PROPERTY_INFO_ETHTOOL (FEATURE_SG), PROPERTY_INFO_ETHTOOL (FEATURE_TLS_HW_RECORD), + PROPERTY_INFO_ETHTOOL (FEATURE_TLS_HW_RX_OFFLOAD), PROPERTY_INFO_ETHTOOL (FEATURE_TLS_HW_TX_OFFLOAD), PROPERTY_INFO_ETHTOOL (FEATURE_TSO), PROPERTY_INFO_ETHTOOL (FEATURE_TX), @@ -5530,10 +5535,12 @@ static const NMMetaPropertyInfo *const property_infos_ETHTOOL[] = { PROPERTY_INFO_ETHTOOL (FEATURE_TX_FCOE_SEGMENTATION), PROPERTY_INFO_ETHTOOL (FEATURE_TX_GRE_CSUM_SEGMENTATION), PROPERTY_INFO_ETHTOOL (FEATURE_TX_GRE_SEGMENTATION), + PROPERTY_INFO_ETHTOOL (FEATURE_TX_GSO_LIST), PROPERTY_INFO_ETHTOOL (FEATURE_TX_GSO_PARTIAL), PROPERTY_INFO_ETHTOOL (FEATURE_TX_GSO_ROBUST), PROPERTY_INFO_ETHTOOL (FEATURE_TX_IPXIP4_SEGMENTATION), PROPERTY_INFO_ETHTOOL (FEATURE_TX_IPXIP6_SEGMENTATION), + PROPERTY_INFO_ETHTOOL (FEATURE_TX_LOCKLESS), PROPERTY_INFO_ETHTOOL (FEATURE_TX_NOCACHE_COPY), PROPERTY_INFO_ETHTOOL (FEATURE_TX_SCATTER_GATHER), PROPERTY_INFO_ETHTOOL (FEATURE_TX_SCATTER_GATHER_FRAGLIST), @@ -5542,10 +5549,12 @@ static const NMMetaPropertyInfo *const property_infos_ETHTOOL[] = { PROPERTY_INFO_ETHTOOL (FEATURE_TX_TCP_ECN_SEGMENTATION), PROPERTY_INFO_ETHTOOL (FEATURE_TX_TCP_MANGLEID_SEGMENTATION), PROPERTY_INFO_ETHTOOL (FEATURE_TX_TCP_SEGMENTATION), + PROPERTY_INFO_ETHTOOL (FEATURE_TX_TUNNEL_REMCSUM_SEGMENTATION), PROPERTY_INFO_ETHTOOL (FEATURE_TX_UDP_SEGMENTATION), PROPERTY_INFO_ETHTOOL (FEATURE_TX_UDP_TNL_CSUM_SEGMENTATION), PROPERTY_INFO_ETHTOOL (FEATURE_TX_UDP_TNL_SEGMENTATION), PROPERTY_INFO_ETHTOOL (FEATURE_TX_VLAN_STAG_HW_INSERT), + PROPERTY_INFO_ETHTOOL (FEATURE_VLAN_CHALLENGED), PROPERTY_INFO_ETHTOOL (COALESCE_ADAPTIVE_RX), PROPERTY_INFO_ETHTOOL (COALESCE_ADAPTIVE_TX), PROPERTY_INFO_ETHTOOL (COALESCE_PKT_RATE_HIGH), diff --git a/libnm/nm-ethtool-utils.h b/libnm/nm-ethtool-utils.h index e8df3da242..3cb5972552 100644 --- a/libnm/nm-ethtool-utils.h +++ b/libnm/nm-ethtool-utils.h @@ -20,6 +20,8 @@ G_BEGIN_DECLS #define NM_ETHTOOL_OPTNAME_FEATURE_L2_FWD_OFFLOAD "feature-l2-fwd-offload" #define NM_ETHTOOL_OPTNAME_FEATURE_LOOPBACK "feature-loopback" #define NM_ETHTOOL_OPTNAME_FEATURE_LRO "feature-lro" +#define NM_ETHTOOL_OPTNAME_FEATURE_MACSEC_HW_OFFLOAD "feature-macsec-hw-offload" +#define NM_ETHTOOL_OPTNAME_FEATURE_NETNS_LOCAL "feature-netns-local" #define NM_ETHTOOL_OPTNAME_FEATURE_NTUPLE "feature-ntuple" #define NM_ETHTOOL_OPTNAME_FEATURE_RX "feature-rx" #define NM_ETHTOOL_OPTNAME_FEATURE_RXHASH "feature-rxhash" @@ -27,12 +29,15 @@ G_BEGIN_DECLS #define NM_ETHTOOL_OPTNAME_FEATURE_RX_ALL "feature-rx-all" #define NM_ETHTOOL_OPTNAME_FEATURE_RX_FCS "feature-rx-fcs" #define NM_ETHTOOL_OPTNAME_FEATURE_RX_GRO_HW "feature-rx-gro-hw" +#define NM_ETHTOOL_OPTNAME_FEATURE_RX_GRO_LIST "feature-rx-gro-list" +#define NM_ETHTOOL_OPTNAME_FEATURE_RX_UDP_GRO_FORWARDING "feature-rx-udp-gro-forwarding" #define NM_ETHTOOL_OPTNAME_FEATURE_RX_UDP_TUNNEL_PORT_OFFLOAD "feature-rx-udp_tunnel-port-offload" #define NM_ETHTOOL_OPTNAME_FEATURE_RX_VLAN_FILTER "feature-rx-vlan-filter" #define NM_ETHTOOL_OPTNAME_FEATURE_RX_VLAN_STAG_FILTER "feature-rx-vlan-stag-filter" #define NM_ETHTOOL_OPTNAME_FEATURE_RX_VLAN_STAG_HW_PARSE "feature-rx-vlan-stag-hw-parse" #define NM_ETHTOOL_OPTNAME_FEATURE_SG "feature-sg" #define NM_ETHTOOL_OPTNAME_FEATURE_TLS_HW_RECORD "feature-tls-hw-record" +#define NM_ETHTOOL_OPTNAME_FEATURE_TLS_HW_RX_OFFLOAD "feature-tls-hw-rx-offload" #define NM_ETHTOOL_OPTNAME_FEATURE_TLS_HW_TX_OFFLOAD "feature-tls-hw-tx-offload" #define NM_ETHTOOL_OPTNAME_FEATURE_TSO "feature-tso" #define NM_ETHTOOL_OPTNAME_FEATURE_TX "feature-tx" @@ -46,10 +51,12 @@ G_BEGIN_DECLS #define NM_ETHTOOL_OPTNAME_FEATURE_TX_FCOE_SEGMENTATION "feature-tx-fcoe-segmentation" #define NM_ETHTOOL_OPTNAME_FEATURE_TX_GRE_CSUM_SEGMENTATION "feature-tx-gre-csum-segmentation" #define NM_ETHTOOL_OPTNAME_FEATURE_TX_GRE_SEGMENTATION "feature-tx-gre-segmentation" +#define NM_ETHTOOL_OPTNAME_FEATURE_TX_GSO_LIST "feature-tx-gso-list" #define NM_ETHTOOL_OPTNAME_FEATURE_TX_GSO_PARTIAL "feature-tx-gso-partial" #define NM_ETHTOOL_OPTNAME_FEATURE_TX_GSO_ROBUST "feature-tx-gso-robust" #define NM_ETHTOOL_OPTNAME_FEATURE_TX_IPXIP4_SEGMENTATION "feature-tx-ipxip4-segmentation" #define NM_ETHTOOL_OPTNAME_FEATURE_TX_IPXIP6_SEGMENTATION "feature-tx-ipxip6-segmentation" +#define NM_ETHTOOL_OPTNAME_FEATURE_TX_LOCKLESS "feature-tx-lockless" #define NM_ETHTOOL_OPTNAME_FEATURE_TX_NOCACHE_COPY "feature-tx-nocache-copy" #define NM_ETHTOOL_OPTNAME_FEATURE_TX_SCATTER_GATHER "feature-tx-scatter-gather" #define NM_ETHTOOL_OPTNAME_FEATURE_TX_SCATTER_GATHER_FRAGLIST "feature-tx-scatter-gather-fraglist" @@ -59,11 +66,14 @@ G_BEGIN_DECLS #define NM_ETHTOOL_OPTNAME_FEATURE_TX_TCP_MANGLEID_SEGMENTATION \ "feature-tx-tcp-mangleid-segmentation" #define NM_ETHTOOL_OPTNAME_FEATURE_TX_TCP_SEGMENTATION "feature-tx-tcp-segmentation" +#define NM_ETHTOOL_OPTNAME_FEATURE_TX_TUNNEL_REMCSUM_SEGMENTATION \ + "feature-tx-tunnel-remcsum-segmentation" #define NM_ETHTOOL_OPTNAME_FEATURE_TX_UDP_SEGMENTATION "feature-tx-udp-segmentation" #define NM_ETHTOOL_OPTNAME_FEATURE_TX_UDP_TNL_CSUM_SEGMENTATION \ "feature-tx-udp_tnl-csum-segmentation" #define NM_ETHTOOL_OPTNAME_FEATURE_TX_UDP_TNL_SEGMENTATION "feature-tx-udp_tnl-segmentation" #define NM_ETHTOOL_OPTNAME_FEATURE_TX_VLAN_STAG_HW_INSERT "feature-tx-vlan-stag-hw-insert" +#define NM_ETHTOOL_OPTNAME_FEATURE_VLAN_CHALLENGED "feature-vlan-challenged" #define NM_ETHTOOL_OPTNAME_COALESCE_ADAPTIVE_RX "coalesce-adaptive-rx" #define NM_ETHTOOL_OPTNAME_COALESCE_ADAPTIVE_TX "coalesce-adaptive-tx" diff --git a/shared/nm-base/nm-base.h b/shared/nm-base/nm-base.h index 1db21aebc1..fecdec6c34 100644 --- a/shared/nm-base/nm-base.h +++ b/shared/nm-base/nm-base.h @@ -54,6 +54,8 @@ typedef enum { NM_ETHTOOL_ID_FEATURE_L2_FWD_OFFLOAD, NM_ETHTOOL_ID_FEATURE_LOOPBACK, NM_ETHTOOL_ID_FEATURE_LRO, + NM_ETHTOOL_ID_FEATURE_MACSEC_HW_OFFLOAD, + NM_ETHTOOL_ID_FEATURE_NETNS_LOCAL, NM_ETHTOOL_ID_FEATURE_NTUPLE, NM_ETHTOOL_ID_FEATURE_RX, NM_ETHTOOL_ID_FEATURE_RXHASH, @@ -61,12 +63,15 @@ typedef enum { NM_ETHTOOL_ID_FEATURE_RX_ALL, NM_ETHTOOL_ID_FEATURE_RX_FCS, NM_ETHTOOL_ID_FEATURE_RX_GRO_HW, + NM_ETHTOOL_ID_FEATURE_RX_GRO_LIST, + NM_ETHTOOL_ID_FEATURE_RX_UDP_GRO_FORWARDING, NM_ETHTOOL_ID_FEATURE_RX_UDP_TUNNEL_PORT_OFFLOAD, NM_ETHTOOL_ID_FEATURE_RX_VLAN_FILTER, NM_ETHTOOL_ID_FEATURE_RX_VLAN_STAG_FILTER, NM_ETHTOOL_ID_FEATURE_RX_VLAN_STAG_HW_PARSE, NM_ETHTOOL_ID_FEATURE_SG, NM_ETHTOOL_ID_FEATURE_TLS_HW_RECORD, + NM_ETHTOOL_ID_FEATURE_TLS_HW_RX_OFFLOAD, NM_ETHTOOL_ID_FEATURE_TLS_HW_TX_OFFLOAD, NM_ETHTOOL_ID_FEATURE_TSO, NM_ETHTOOL_ID_FEATURE_TX, @@ -80,10 +85,12 @@ typedef enum { NM_ETHTOOL_ID_FEATURE_TX_FCOE_SEGMENTATION, NM_ETHTOOL_ID_FEATURE_TX_GRE_CSUM_SEGMENTATION, NM_ETHTOOL_ID_FEATURE_TX_GRE_SEGMENTATION, + NM_ETHTOOL_ID_FEATURE_TX_GSO_LIST, NM_ETHTOOL_ID_FEATURE_TX_GSO_PARTIAL, NM_ETHTOOL_ID_FEATURE_TX_GSO_ROBUST, NM_ETHTOOL_ID_FEATURE_TX_IPXIP4_SEGMENTATION, NM_ETHTOOL_ID_FEATURE_TX_IPXIP6_SEGMENTATION, + NM_ETHTOOL_ID_FEATURE_TX_LOCKLESS, NM_ETHTOOL_ID_FEATURE_TX_NOCACHE_COPY, NM_ETHTOOL_ID_FEATURE_TX_SCATTER_GATHER, NM_ETHTOOL_ID_FEATURE_TX_SCATTER_GATHER_FRAGLIST, @@ -92,11 +99,13 @@ typedef enum { NM_ETHTOOL_ID_FEATURE_TX_TCP_ECN_SEGMENTATION, NM_ETHTOOL_ID_FEATURE_TX_TCP_MANGLEID_SEGMENTATION, NM_ETHTOOL_ID_FEATURE_TX_TCP_SEGMENTATION, + NM_ETHTOOL_ID_FEATURE_TX_TUNNEL_REMCSUM_SEGMENTATION, NM_ETHTOOL_ID_FEATURE_TX_UDP_SEGMENTATION, NM_ETHTOOL_ID_FEATURE_TX_UDP_TNL_CSUM_SEGMENTATION, NM_ETHTOOL_ID_FEATURE_TX_UDP_TNL_SEGMENTATION, NM_ETHTOOL_ID_FEATURE_TX_VLAN_STAG_HW_INSERT, - _NM_ETHTOOL_ID_FEATURE_LAST = NM_ETHTOOL_ID_FEATURE_TX_VLAN_STAG_HW_INSERT, + NM_ETHTOOL_ID_FEATURE_VLAN_CHALLENGED, + _NM_ETHTOOL_ID_FEATURE_LAST = NM_ETHTOOL_ID_FEATURE_VLAN_CHALLENGED, _NM_ETHTOOL_ID_RING_FIRST = _NM_ETHTOOL_ID_FEATURE_LAST + 1, NM_ETHTOOL_ID_RING_RX = _NM_ETHTOOL_ID_RING_FIRST, diff --git a/shared/nm-base/nm-ethtool-base.c b/shared/nm-base/nm-ethtool-base.c index 9934aa06c1..1e482e55b6 100644 --- a/shared/nm-base/nm-ethtool-base.c +++ b/shared/nm-base/nm-ethtool-base.c @@ -51,6 +51,8 @@ const NMEthtoolData *const nm_ethtool_data[_NM_ETHTOOL_ID_NUM + 1] = { ETHT_DATA(FEATURE_L2_FWD_OFFLOAD), ETHT_DATA(FEATURE_LOOPBACK), ETHT_DATA(FEATURE_LRO), + ETHT_DATA(FEATURE_MACSEC_HW_OFFLOAD), + ETHT_DATA(FEATURE_NETNS_LOCAL), ETHT_DATA(FEATURE_NTUPLE), ETHT_DATA(FEATURE_RX), ETHT_DATA(FEATURE_RXHASH), @@ -58,12 +60,15 @@ const NMEthtoolData *const nm_ethtool_data[_NM_ETHTOOL_ID_NUM + 1] = { ETHT_DATA(FEATURE_RX_ALL), ETHT_DATA(FEATURE_RX_FCS), ETHT_DATA(FEATURE_RX_GRO_HW), + ETHT_DATA(FEATURE_RX_GRO_LIST), + ETHT_DATA(FEATURE_RX_UDP_GRO_FORWARDING), ETHT_DATA(FEATURE_RX_UDP_TUNNEL_PORT_OFFLOAD), ETHT_DATA(FEATURE_RX_VLAN_FILTER), ETHT_DATA(FEATURE_RX_VLAN_STAG_FILTER), ETHT_DATA(FEATURE_RX_VLAN_STAG_HW_PARSE), ETHT_DATA(FEATURE_SG), ETHT_DATA(FEATURE_TLS_HW_RECORD), + ETHT_DATA(FEATURE_TLS_HW_RX_OFFLOAD), ETHT_DATA(FEATURE_TLS_HW_TX_OFFLOAD), ETHT_DATA(FEATURE_TSO), ETHT_DATA(FEATURE_TX), @@ -77,10 +82,12 @@ const NMEthtoolData *const nm_ethtool_data[_NM_ETHTOOL_ID_NUM + 1] = { ETHT_DATA(FEATURE_TX_FCOE_SEGMENTATION), ETHT_DATA(FEATURE_TX_GRE_CSUM_SEGMENTATION), ETHT_DATA(FEATURE_TX_GRE_SEGMENTATION), + ETHT_DATA(FEATURE_TX_GSO_LIST), ETHT_DATA(FEATURE_TX_GSO_PARTIAL), ETHT_DATA(FEATURE_TX_GSO_ROBUST), ETHT_DATA(FEATURE_TX_IPXIP4_SEGMENTATION), ETHT_DATA(FEATURE_TX_IPXIP6_SEGMENTATION), + ETHT_DATA(FEATURE_TX_LOCKLESS), ETHT_DATA(FEATURE_TX_NOCACHE_COPY), ETHT_DATA(FEATURE_TX_SCATTER_GATHER), ETHT_DATA(FEATURE_TX_SCATTER_GATHER_FRAGLIST), @@ -89,10 +96,12 @@ const NMEthtoolData *const nm_ethtool_data[_NM_ETHTOOL_ID_NUM + 1] = { ETHT_DATA(FEATURE_TX_TCP_ECN_SEGMENTATION), ETHT_DATA(FEATURE_TX_TCP_MANGLEID_SEGMENTATION), ETHT_DATA(FEATURE_TX_TCP_SEGMENTATION), + ETHT_DATA(FEATURE_TX_TUNNEL_REMCSUM_SEGMENTATION), ETHT_DATA(FEATURE_TX_UDP_SEGMENTATION), ETHT_DATA(FEATURE_TX_UDP_TNL_CSUM_SEGMENTATION), ETHT_DATA(FEATURE_TX_UDP_TNL_SEGMENTATION), ETHT_DATA(FEATURE_TX_VLAN_STAG_HW_INSERT), + ETHT_DATA(FEATURE_VLAN_CHALLENGED), ETHT_DATA(RING_RX), ETHT_DATA(RING_RX_JUMBO), ETHT_DATA(RING_RX_MINI), @@ -134,11 +143,15 @@ static const guint8 _by_name[_NM_ETHTOOL_ID_NUM] = { NM_ETHTOOL_ID_FEATURE_L2_FWD_OFFLOAD, NM_ETHTOOL_ID_FEATURE_LOOPBACK, NM_ETHTOOL_ID_FEATURE_LRO, + NM_ETHTOOL_ID_FEATURE_MACSEC_HW_OFFLOAD, + NM_ETHTOOL_ID_FEATURE_NETNS_LOCAL, NM_ETHTOOL_ID_FEATURE_NTUPLE, NM_ETHTOOL_ID_FEATURE_RX, NM_ETHTOOL_ID_FEATURE_RX_ALL, NM_ETHTOOL_ID_FEATURE_RX_FCS, NM_ETHTOOL_ID_FEATURE_RX_GRO_HW, + NM_ETHTOOL_ID_FEATURE_RX_GRO_LIST, + NM_ETHTOOL_ID_FEATURE_RX_UDP_GRO_FORWARDING, NM_ETHTOOL_ID_FEATURE_RX_UDP_TUNNEL_PORT_OFFLOAD, NM_ETHTOOL_ID_FEATURE_RX_VLAN_FILTER, NM_ETHTOOL_ID_FEATURE_RX_VLAN_STAG_FILTER, @@ -147,6 +160,7 @@ static const guint8 _by_name[_NM_ETHTOOL_ID_NUM] = { NM_ETHTOOL_ID_FEATURE_RXVLAN, NM_ETHTOOL_ID_FEATURE_SG, NM_ETHTOOL_ID_FEATURE_TLS_HW_RECORD, + NM_ETHTOOL_ID_FEATURE_TLS_HW_RX_OFFLOAD, NM_ETHTOOL_ID_FEATURE_TLS_HW_TX_OFFLOAD, NM_ETHTOOL_ID_FEATURE_TSO, NM_ETHTOOL_ID_FEATURE_TX, @@ -159,10 +173,12 @@ static const guint8 _by_name[_NM_ETHTOOL_ID_NUM] = { NM_ETHTOOL_ID_FEATURE_TX_FCOE_SEGMENTATION, NM_ETHTOOL_ID_FEATURE_TX_GRE_CSUM_SEGMENTATION, NM_ETHTOOL_ID_FEATURE_TX_GRE_SEGMENTATION, + NM_ETHTOOL_ID_FEATURE_TX_GSO_LIST, NM_ETHTOOL_ID_FEATURE_TX_GSO_PARTIAL, NM_ETHTOOL_ID_FEATURE_TX_GSO_ROBUST, NM_ETHTOOL_ID_FEATURE_TX_IPXIP4_SEGMENTATION, NM_ETHTOOL_ID_FEATURE_TX_IPXIP6_SEGMENTATION, + NM_ETHTOOL_ID_FEATURE_TX_LOCKLESS, NM_ETHTOOL_ID_FEATURE_TX_NOCACHE_COPY, NM_ETHTOOL_ID_FEATURE_TX_SCATTER_GATHER, NM_ETHTOOL_ID_FEATURE_TX_SCATTER_GATHER_FRAGLIST, @@ -171,11 +187,13 @@ static const guint8 _by_name[_NM_ETHTOOL_ID_NUM] = { NM_ETHTOOL_ID_FEATURE_TX_TCP_MANGLEID_SEGMENTATION, NM_ETHTOOL_ID_FEATURE_TX_TCP_SEGMENTATION, NM_ETHTOOL_ID_FEATURE_TX_TCP6_SEGMENTATION, + NM_ETHTOOL_ID_FEATURE_TX_TUNNEL_REMCSUM_SEGMENTATION, NM_ETHTOOL_ID_FEATURE_TX_UDP_SEGMENTATION, NM_ETHTOOL_ID_FEATURE_TX_UDP_TNL_CSUM_SEGMENTATION, NM_ETHTOOL_ID_FEATURE_TX_UDP_TNL_SEGMENTATION, NM_ETHTOOL_ID_FEATURE_TX_VLAN_STAG_HW_INSERT, NM_ETHTOOL_ID_FEATURE_TXVLAN, + NM_ETHTOOL_ID_FEATURE_VLAN_CHALLENGED, NM_ETHTOOL_ID_RING_RX, NM_ETHTOOL_ID_RING_RX_JUMBO, NM_ETHTOOL_ID_RING_RX_MINI, diff --git a/shared/nm-platform/nm-platform-utils.c b/shared/nm-platform/nm-platform-utils.c index 59e4a24491..beadb483ba 100644 --- a/shared/nm-platform/nm-platform-utils.c +++ b/shared/nm-platform/nm-platform-utils.c @@ -468,14 +468,19 @@ static const NMEthtoolFeatureInfo _ethtool_feature_infos[_NM_ETHTOOL_ID_FEATURE_ ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_HW_TC_OFFLOAD, "hw-tc-offload"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_L2_FWD_OFFLOAD, "l2-fwd-offload"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_LOOPBACK, "loopback"), + ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_MACSEC_HW_OFFLOAD, "macsec-hw-offload"), + ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_NETNS_LOCAL, "netns-local"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_RX_ALL, "rx-all"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_RX_FCS, "rx-fcs"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_RX_GRO_HW, "rx-gro-hw"), + ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_RX_GRO_LIST, "rx-gro-list"), + ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_RX_UDP_GRO_FORWARDING, "rx-udp-gro-forwarding"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_RX_UDP_TUNNEL_PORT_OFFLOAD, "rx-udp_tunnel-port-offload"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_RX_VLAN_FILTER, "rx-vlan-filter"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_RX_VLAN_STAG_FILTER, "rx-vlan-stag-filter"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_RX_VLAN_STAG_HW_PARSE, "rx-vlan-stag-hw-parse"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TLS_HW_RECORD, "tls-hw-record"), + ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TLS_HW_RX_OFFLOAD, "tls-hw-rx-offload"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TLS_HW_TX_OFFLOAD, "tls-hw-tx-offload"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TX_CHECKSUM_FCOE_CRC, "tx-checksum-fcoe-crc"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TX_CHECKSUM_IPV4, "tx-checksum-ipv4"), @@ -486,10 +491,12 @@ static const NMEthtoolFeatureInfo _ethtool_feature_infos[_NM_ETHTOOL_ID_FEATURE_ ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TX_FCOE_SEGMENTATION, "tx-fcoe-segmentation"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TX_GRE_CSUM_SEGMENTATION, "tx-gre-csum-segmentation"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TX_GRE_SEGMENTATION, "tx-gre-segmentation"), + ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TX_GSO_LIST, "tx-gso-list"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TX_GSO_PARTIAL, "tx-gso-partial"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TX_GSO_ROBUST, "tx-gso-robust"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TX_IPXIP4_SEGMENTATION, "tx-ipxip4-segmentation"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TX_IPXIP6_SEGMENTATION, "tx-ipxip6-segmentation"), + ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TX_LOCKLESS, "tx-lockless"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TX_NOCACHE_COPY, "tx-nocache-copy"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TX_SCATTER_GATHER, "tx-scatter-gather"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TX_SCATTER_GATHER_FRAGLIST, "tx-scatter-gather-fraglist"), @@ -498,10 +505,13 @@ static const NMEthtoolFeatureInfo _ethtool_feature_infos[_NM_ETHTOOL_ID_FEATURE_ ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TX_TCP_ECN_SEGMENTATION, "tx-tcp-ecn-segmentation"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TX_TCP_MANGLEID_SEGMENTATION, "tx-tcp-mangleid-segmentation"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TX_TCP_SEGMENTATION, "tx-tcp-segmentation"), + ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TX_TUNNEL_REMCSUM_SEGMENTATION, + "tx-tunnel-remcsum-segmentation"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TX_UDP_SEGMENTATION, "tx-udp-segmentation"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TX_UDP_TNL_CSUM_SEGMENTATION, "tx-udp_tnl-csum-segmentation"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TX_UDP_TNL_SEGMENTATION, "tx-udp_tnl-segmentation"), ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_TX_VLAN_STAG_HW_INSERT, "tx-vlan-stag-hw-insert"), + ETHT_FEAT(NM_ETHTOOL_ID_FEATURE_VLAN_CHALLENGED, "vlan-challenged"), }; /* the number of kernel features that we handle. It essentially is the sum of all diff --git a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-utils.c b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-utils.c index 58d3e698ae..bb0a93d1ba 100644 --- a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-utils.c +++ b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-utils.c @@ -544,6 +544,8 @@ const char *const _nm_ethtool_ifcfg_names[] = { ETHT_NAME(NM_ETHTOOL_ID_FEATURE_L2_FWD_OFFLOAD, "l2-fwd-offload"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_LOOPBACK, "loopback"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_LRO, "lro"), + ETHT_NAME(NM_ETHTOOL_ID_FEATURE_MACSEC_HW_OFFLOAD, "macsec-hw-offload"), + ETHT_NAME(NM_ETHTOOL_ID_FEATURE_NETNS_LOCAL, "netns-local"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_NTUPLE, "ntuple"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_RX, "rx"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_RXHASH, "rxhash"), @@ -551,12 +553,15 @@ const char *const _nm_ethtool_ifcfg_names[] = { ETHT_NAME(NM_ETHTOOL_ID_FEATURE_RX_ALL, "rx-all"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_RX_FCS, "rx-fcs"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_RX_GRO_HW, "rx-gro-hw"), + ETHT_NAME(NM_ETHTOOL_ID_FEATURE_RX_GRO_LIST, "rx-gro-list"), + ETHT_NAME(NM_ETHTOOL_ID_FEATURE_RX_UDP_GRO_FORWARDING, "rx-udp-gro-forwarding"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_RX_UDP_TUNNEL_PORT_OFFLOAD, "rx-udp_tunnel-port-offload"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_RX_VLAN_FILTER, "rx-vlan-filter"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_RX_VLAN_STAG_FILTER, "rx-vlan-stag-filter"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_RX_VLAN_STAG_HW_PARSE, "rx-vlan-stag-hw-parse"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_SG, "sg"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TLS_HW_RECORD, "tls-hw-record"), + ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TLS_HW_RX_OFFLOAD, "tls-hw-rx-offload"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TLS_HW_TX_OFFLOAD, "tls-hw-tx-offload"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TSO, "tso"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TX, "tx"), @@ -570,10 +575,12 @@ const char *const _nm_ethtool_ifcfg_names[] = { ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TX_FCOE_SEGMENTATION, "tx-fcoe-segmentation"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TX_GRE_CSUM_SEGMENTATION, "tx-gre-csum-segmentation"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TX_GRE_SEGMENTATION, "tx-gre-segmentation"), + ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TX_GSO_LIST, "tx-gso-list"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TX_GSO_PARTIAL, "tx-gso-partial"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TX_GSO_ROBUST, "tx-gso-robust"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TX_IPXIP4_SEGMENTATION, "tx-ipxip4-segmentation"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TX_IPXIP6_SEGMENTATION, "tx-ipxip6-segmentation"), + ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TX_LOCKLESS, "tx-lockless"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TX_NOCACHE_COPY, "tx-nocache-copy"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TX_SCATTER_GATHER, "tx-scatter-gather"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TX_SCATTER_GATHER_FRAGLIST, "tx-scatter-gather-fraglist"), @@ -582,10 +589,13 @@ const char *const _nm_ethtool_ifcfg_names[] = { ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TX_TCP_ECN_SEGMENTATION, "tx-tcp-ecn-segmentation"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TX_TCP_MANGLEID_SEGMENTATION, "tx-tcp-mangleid-segmentation"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TX_TCP_SEGMENTATION, "tx-tcp-segmentation"), + ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TX_TUNNEL_REMCSUM_SEGMENTATION, + "tx-tunnel-remcsum-segmentation"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TX_UDP_SEGMENTATION, "tx-udp-segmentation"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TX_UDP_TNL_CSUM_SEGMENTATION, "tx-udp_tnl-csum-segmentation"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TX_UDP_TNL_SEGMENTATION, "tx-udp_tnl-segmentation"), ETHT_NAME(NM_ETHTOOL_ID_FEATURE_TX_VLAN_STAG_HW_INSERT, "tx-vlan-stag-hw-insert"), + ETHT_NAME(NM_ETHTOOL_ID_FEATURE_VLAN_CHALLENGED, "vlan-challenged"), ETHT_NAME(NM_ETHTOOL_ID_RING_RX, "rx"), ETHT_NAME(NM_ETHTOOL_ID_RING_RX_JUMBO, "rx-jumbo"), ETHT_NAME(NM_ETHTOOL_ID_RING_RX_MINI, "rx-mini"), @@ -648,6 +658,8 @@ static NM_UTILS_STRING_TABLE_LOOKUP_DEFINE( {"l2-fwd-offload", NM_ETHTOOL_ID_FEATURE_L2_FWD_OFFLOAD}, {"loopback", NM_ETHTOOL_ID_FEATURE_LOOPBACK}, {"lro", NM_ETHTOOL_ID_FEATURE_LRO}, + {"macsec-hw-offload", NM_ETHTOOL_ID_FEATURE_MACSEC_HW_OFFLOAD}, + {"netns-local", NM_ETHTOOL_ID_FEATURE_NETNS_LOCAL}, {"ntuple", NM_ETHTOOL_ID_FEATURE_NTUPLE}, {"rx", NM_ETHTOOL_ID_FEATURE_RX}, {"rx-all", NM_ETHTOOL_ID_FEATURE_RX_ALL}, @@ -655,9 +667,11 @@ static NM_UTILS_STRING_TABLE_LOOKUP_DEFINE( {"rx-fcs", NM_ETHTOOL_ID_FEATURE_RX_FCS}, {"rx-gro", NM_ETHTOOL_ID_FEATURE_GRO}, // kernel-only name {"rx-gro-hw", NM_ETHTOOL_ID_FEATURE_RX_GRO_HW}, + {"rx-gro-list", NM_ETHTOOL_ID_FEATURE_RX_GRO_LIST}, {"rx-hashing", NM_ETHTOOL_ID_FEATURE_RXHASH}, // kernel-only name {"rx-lro", NM_ETHTOOL_ID_FEATURE_LRO}, // kernel-only name {"rx-ntuple-filter", NM_ETHTOOL_ID_FEATURE_NTUPLE}, // kernel-only name + {"rx-udp-gro-forwarding", NM_ETHTOOL_ID_FEATURE_RX_UDP_GRO_FORWARDING}, {"rx-udp_tunnel-port-offload", NM_ETHTOOL_ID_FEATURE_RX_UDP_TUNNEL_PORT_OFFLOAD}, {"rx-vlan-filter", NM_ETHTOOL_ID_FEATURE_RX_VLAN_FILTER}, {"rx-vlan-hw-parse", NM_ETHTOOL_ID_FEATURE_RXVLAN}, // kernel-only name @@ -667,6 +681,7 @@ static NM_UTILS_STRING_TABLE_LOOKUP_DEFINE( {"rxvlan", NM_ETHTOOL_ID_FEATURE_RXVLAN}, {"sg", NM_ETHTOOL_ID_FEATURE_SG}, {"tls-hw-record", NM_ETHTOOL_ID_FEATURE_TLS_HW_RECORD}, + {"tls-hw-rx-offload", NM_ETHTOOL_ID_FEATURE_TLS_HW_RX_OFFLOAD}, {"tls-hw-tx-offload", NM_ETHTOOL_ID_FEATURE_TLS_HW_TX_OFFLOAD}, {"tso", NM_ETHTOOL_ID_FEATURE_TSO}, {"tx", NM_ETHTOOL_ID_FEATURE_TX}, @@ -680,10 +695,12 @@ static NM_UTILS_STRING_TABLE_LOOKUP_DEFINE( {"tx-generic-segmentation", NM_ETHTOOL_ID_FEATURE_GSO}, // kernel-only name {"tx-gre-csum-segmentation", NM_ETHTOOL_ID_FEATURE_TX_GRE_CSUM_SEGMENTATION}, {"tx-gre-segmentation", NM_ETHTOOL_ID_FEATURE_TX_GRE_SEGMENTATION}, + {"tx-gso-list", NM_ETHTOOL_ID_FEATURE_TX_GSO_LIST}, {"tx-gso-partial", NM_ETHTOOL_ID_FEATURE_TX_GSO_PARTIAL}, {"tx-gso-robust", NM_ETHTOOL_ID_FEATURE_TX_GSO_ROBUST}, {"tx-ipxip4-segmentation", NM_ETHTOOL_ID_FEATURE_TX_IPXIP4_SEGMENTATION}, {"tx-ipxip6-segmentation", NM_ETHTOOL_ID_FEATURE_TX_IPXIP6_SEGMENTATION}, + {"tx-lockless", NM_ETHTOOL_ID_FEATURE_TX_LOCKLESS}, {"tx-nocache-copy", NM_ETHTOOL_ID_FEATURE_TX_NOCACHE_COPY}, {"tx-scatter-gather", NM_ETHTOOL_ID_FEATURE_TX_SCATTER_GATHER}, {"tx-scatter-gather-fraglist", NM_ETHTOOL_ID_FEATURE_TX_SCATTER_GATHER_FRAGLIST}, @@ -692,12 +709,14 @@ static NM_UTILS_STRING_TABLE_LOOKUP_DEFINE( {"tx-tcp-mangleid-segmentation", NM_ETHTOOL_ID_FEATURE_TX_TCP_MANGLEID_SEGMENTATION}, {"tx-tcp-segmentation", NM_ETHTOOL_ID_FEATURE_TX_TCP_SEGMENTATION}, {"tx-tcp6-segmentation", NM_ETHTOOL_ID_FEATURE_TX_TCP6_SEGMENTATION}, + {"tx-tunnel-remcsum-segmentation", NM_ETHTOOL_ID_FEATURE_TX_TUNNEL_REMCSUM_SEGMENTATION}, {"tx-udp-segmentation", NM_ETHTOOL_ID_FEATURE_TX_UDP_SEGMENTATION}, {"tx-udp_tnl-csum-segmentation", NM_ETHTOOL_ID_FEATURE_TX_UDP_TNL_CSUM_SEGMENTATION}, {"tx-udp_tnl-segmentation", NM_ETHTOOL_ID_FEATURE_TX_UDP_TNL_SEGMENTATION}, {"tx-vlan-hw-insert", NM_ETHTOOL_ID_FEATURE_TXVLAN}, // kernel-only name {"tx-vlan-stag-hw-insert", NM_ETHTOOL_ID_FEATURE_TX_VLAN_STAG_HW_INSERT}, - {"txvlan", NM_ETHTOOL_ID_FEATURE_TXVLAN}, ); + {"txvlan", NM_ETHTOOL_ID_FEATURE_TXVLAN}, + {"vlan-challenged", NM_ETHTOOL_ID_FEATURE_VLAN_CHALLENGED}, ); static NM_UTILS_STRING_TABLE_LOOKUP_DEFINE( _get_ethtoolid_ring_by_name, |