Re: [PATCH net 3/3] net: ethtool: sync netdev_features_strings order with enum netdev_features

From: Michal Kubecek
Date: Mon Jun 22 2020 - 18:10:25 EST


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@xxxxx>

Reviewed-by: Michal Kubecek <mkubecek@xxxxxxx>

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
>
>

Attachment: signature.asc
Description: PGP signature