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 <aloba...@pm.me>
Reviewed-by: Michal Kubecek <mkube...@suse.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 > >
signature.asc
Description: PGP signature