lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Tue, 23 Jun 2020 00:10:20 +0200
From:   Michal Kubecek <mkubecek@...e.cz>
To:     netdev@...r.kernel.org
Cc:     Alexander Lobakin <alobakin@...me>,
        "David S. Miller" <davem@...emloft.net>,
        Jakub Kicinski <kuba@...nel.org>,
        Florian Fainelli <f.fainelli@...il.com>,
        Andrew Lunn <andrew@...n.ch>, Jiri Pirko <jiri@...lanox.com>,
        Antoine Tenart <antoine.tenart@...tlin.com>,
        Steffen Klassert <steffen.klassert@...unet.com>,
        Aya Levin <ayal@...lanox.com>,
        Tom Herbert <therbert@...gle.com>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH net 3/3] net: ethtool: sync netdev_features_strings order
 with enum netdev_features

On Fri, Jun 19, 2020 at 06:39:59PM +0000, Alexander Lobakin wrote:
> The ordering of netdev_features_strings[] makes no sense when it comes
> to user interaction, as list of features in `ethtool -k` input is sorted
> according to the corresponding bit's position.
> Instead, it *does* make sense when it comes to adding new netdev_features
> or modifying existing ones. We have at least 2 occasions of forgetting to
> add the strings for newly introduced features, and one of them existed
> since 3.1x times till now.
> 
> Let's keep this stringtable sorted according to bit's position in enum
> netdev_features, as this simplifies both reading and modification of the
> source code and can help not to miss or forget anything.
> 
> Signed-off-by: Alexander Lobakin <alobakin@...me>

Reviewed-by: Michal Kubecek <mkubecek@...e.cz>

This would also rather belong to net-next, IMHO.

Michal

> ---
>  net/ethtool/common.c | 26 ++++++++++++++++++++------
>  1 file changed, 20 insertions(+), 6 deletions(-)
> 
> diff --git a/net/ethtool/common.c b/net/ethtool/common.c
> index c8e3fce6e48d..24f35d47832d 100644
> --- a/net/ethtool/common.c
> +++ b/net/ethtool/common.c
> @@ -8,25 +8,25 @@
>  const char netdev_features_strings[NETDEV_FEATURE_COUNT][ETH_GSTRING_LEN] = {
>  	[NETIF_F_SG_BIT]			= "tx-scatter-gather",
>  	[NETIF_F_IP_CSUM_BIT]			= "tx-checksum-ipv4",
> +
> +	/* __UNUSED_NETIF_F_1 - deprecated */
> +
>  	[NETIF_F_HW_CSUM_BIT]			= "tx-checksum-ip-generic",
>  	[NETIF_F_IPV6_CSUM_BIT]			= "tx-checksum-ipv6",
>  	[NETIF_F_HIGHDMA_BIT]			= "highdma",
>  	[NETIF_F_FRAGLIST_BIT]			= "tx-scatter-gather-fraglist",
>  	[NETIF_F_HW_VLAN_CTAG_TX_BIT]		= "tx-vlan-hw-insert",
> -
>  	[NETIF_F_HW_VLAN_CTAG_RX_BIT]		= "rx-vlan-hw-parse",
>  	[NETIF_F_HW_VLAN_CTAG_FILTER_BIT]	= "rx-vlan-filter",
> -	[NETIF_F_HW_VLAN_STAG_TX_BIT]		= "tx-vlan-stag-hw-insert",
> -	[NETIF_F_HW_VLAN_STAG_RX_BIT]		= "rx-vlan-stag-hw-parse",
> -	[NETIF_F_HW_VLAN_STAG_FILTER_BIT]	= "rx-vlan-stag-filter",
>  	[NETIF_F_VLAN_CHALLENGED_BIT]		= "vlan-challenged",
>  	[NETIF_F_GSO_BIT]			= "tx-generic-segmentation",
>  	[NETIF_F_LLTX_BIT]			= "tx-lockless",
>  	[NETIF_F_NETNS_LOCAL_BIT]		= "netns-local",
>  	[NETIF_F_GRO_BIT]			= "rx-gro",
> -	[NETIF_F_GRO_HW_BIT]			= "rx-gro-hw",
>  	[NETIF_F_LRO_BIT]			= "rx-lro",
>  
> +	/* NETIF_F_GSO_SHIFT = NETIF_F_TSO_BIT */
> +
>  	[NETIF_F_TSO_BIT]			= "tx-tcp-segmentation",
>  	[NETIF_F_GSO_ROBUST_BIT]		= "tx-gso-robust",
>  	[NETIF_F_TSO_ECN_BIT]			= "tx-tcp-ecn-segmentation",
> @@ -43,9 +43,14 @@ const char netdev_features_strings[NETDEV_FEATURE_COUNT][ETH_GSTRING_LEN] = {
>  	[NETIF_F_GSO_TUNNEL_REMCSUM_BIT]	= "tx-tunnel-remcsum-segmentation",
>  	[NETIF_F_GSO_SCTP_BIT]			= "tx-sctp-segmentation",
>  	[NETIF_F_GSO_ESP_BIT]			= "tx-esp-segmentation",
> +
> +	/* NETIF_F_GSO_UDP_BIT - deprecated */
> +
>  	[NETIF_F_GSO_UDP_L4_BIT]		= "tx-udp-segmentation",
>  	[NETIF_F_GSO_FRAGLIST_BIT]		= "tx-gso-list",
>  
> +	/* NETIF_F_GSO_LAST = NETIF_F_GSO_FRAGLIST_BIT */
> +
>  	[NETIF_F_FCOE_CRC_BIT]			= "tx-checksum-fcoe-crc",
>  	[NETIF_F_SCTP_CRC_BIT]			= "tx-checksum-sctp",
>  	[NETIF_F_FCOE_MTU_BIT]			= "fcoe-mtu",
> @@ -56,16 +61,25 @@ const char netdev_features_strings[NETDEV_FEATURE_COUNT][ETH_GSTRING_LEN] = {
>  	[NETIF_F_LOOPBACK_BIT]			= "loopback",
>  	[NETIF_F_RXFCS_BIT]			= "rx-fcs",
>  	[NETIF_F_RXALL_BIT]			= "rx-all",
> +	[NETIF_F_HW_VLAN_STAG_TX_BIT]		= "tx-vlan-stag-hw-insert",
> +	[NETIF_F_HW_VLAN_STAG_RX_BIT]		= "rx-vlan-stag-hw-parse",
> +	[NETIF_F_HW_VLAN_STAG_FILTER_BIT]	= "rx-vlan-stag-filter",
>  	[NETIF_F_HW_L2FW_DOFFLOAD_BIT]		= "l2-fwd-offload",
> +
>  	[NETIF_F_HW_TC_BIT]			= "hw-tc-offload",
>  	[NETIF_F_HW_ESP_BIT]			= "esp-hw-offload",
>  	[NETIF_F_HW_ESP_TX_CSUM_BIT]		= "esp-tx-csum-hw-offload",
>  	[NETIF_F_RX_UDP_TUNNEL_PORT_BIT]	= "rx-udp_tunnel-port-offload",
> -	[NETIF_F_HW_TLS_RECORD_BIT]		= "tls-hw-record",
>  	[NETIF_F_HW_TLS_TX_BIT]			= "tls-hw-tx-offload",
>  	[NETIF_F_HW_TLS_RX_BIT]			= "tls-hw-rx-offload",
> +
> +	[NETIF_F_GRO_HW_BIT]			= "rx-gro-hw",
> +	[NETIF_F_HW_TLS_RECORD_BIT]		= "tls-hw-record",
>  	[NETIF_F_GRO_FRAGLIST_BIT]		= "rx-gro-list",
> +
>  	[NETIF_F_HW_MACSEC_BIT]			= "macsec-hw-offload",
> +
> +	/* NETDEV_FEATURE_COUNT */
>  };
>  
>  const char
> -- 
> 2.27.0
> 
> 

Download attachment "signature.asc" of type "application/pgp-signature" (489 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ