1*d44e1310SMichal Kubecek // SPDX-License-Identifier: GPL-2.0-only 2*d44e1310SMichal Kubecek 3*d44e1310SMichal Kubecek #include "common.h" 4*d44e1310SMichal Kubecek 5*d44e1310SMichal Kubecek const char netdev_features_strings[NETDEV_FEATURE_COUNT][ETH_GSTRING_LEN] = { 6*d44e1310SMichal Kubecek [NETIF_F_SG_BIT] = "tx-scatter-gather", 7*d44e1310SMichal Kubecek [NETIF_F_IP_CSUM_BIT] = "tx-checksum-ipv4", 8*d44e1310SMichal Kubecek [NETIF_F_HW_CSUM_BIT] = "tx-checksum-ip-generic", 9*d44e1310SMichal Kubecek [NETIF_F_IPV6_CSUM_BIT] = "tx-checksum-ipv6", 10*d44e1310SMichal Kubecek [NETIF_F_HIGHDMA_BIT] = "highdma", 11*d44e1310SMichal Kubecek [NETIF_F_FRAGLIST_BIT] = "tx-scatter-gather-fraglist", 12*d44e1310SMichal Kubecek [NETIF_F_HW_VLAN_CTAG_TX_BIT] = "tx-vlan-hw-insert", 13*d44e1310SMichal Kubecek 14*d44e1310SMichal Kubecek [NETIF_F_HW_VLAN_CTAG_RX_BIT] = "rx-vlan-hw-parse", 15*d44e1310SMichal Kubecek [NETIF_F_HW_VLAN_CTAG_FILTER_BIT] = "rx-vlan-filter", 16*d44e1310SMichal Kubecek [NETIF_F_HW_VLAN_STAG_TX_BIT] = "tx-vlan-stag-hw-insert", 17*d44e1310SMichal Kubecek [NETIF_F_HW_VLAN_STAG_RX_BIT] = "rx-vlan-stag-hw-parse", 18*d44e1310SMichal Kubecek [NETIF_F_HW_VLAN_STAG_FILTER_BIT] = "rx-vlan-stag-filter", 19*d44e1310SMichal Kubecek [NETIF_F_VLAN_CHALLENGED_BIT] = "vlan-challenged", 20*d44e1310SMichal Kubecek [NETIF_F_GSO_BIT] = "tx-generic-segmentation", 21*d44e1310SMichal Kubecek [NETIF_F_LLTX_BIT] = "tx-lockless", 22*d44e1310SMichal Kubecek [NETIF_F_NETNS_LOCAL_BIT] = "netns-local", 23*d44e1310SMichal Kubecek [NETIF_F_GRO_BIT] = "rx-gro", 24*d44e1310SMichal Kubecek [NETIF_F_GRO_HW_BIT] = "rx-gro-hw", 25*d44e1310SMichal Kubecek [NETIF_F_LRO_BIT] = "rx-lro", 26*d44e1310SMichal Kubecek 27*d44e1310SMichal Kubecek [NETIF_F_TSO_BIT] = "tx-tcp-segmentation", 28*d44e1310SMichal Kubecek [NETIF_F_GSO_ROBUST_BIT] = "tx-gso-robust", 29*d44e1310SMichal Kubecek [NETIF_F_TSO_ECN_BIT] = "tx-tcp-ecn-segmentation", 30*d44e1310SMichal Kubecek [NETIF_F_TSO_MANGLEID_BIT] = "tx-tcp-mangleid-segmentation", 31*d44e1310SMichal Kubecek [NETIF_F_TSO6_BIT] = "tx-tcp6-segmentation", 32*d44e1310SMichal Kubecek [NETIF_F_FSO_BIT] = "tx-fcoe-segmentation", 33*d44e1310SMichal Kubecek [NETIF_F_GSO_GRE_BIT] = "tx-gre-segmentation", 34*d44e1310SMichal Kubecek [NETIF_F_GSO_GRE_CSUM_BIT] = "tx-gre-csum-segmentation", 35*d44e1310SMichal Kubecek [NETIF_F_GSO_IPXIP4_BIT] = "tx-ipxip4-segmentation", 36*d44e1310SMichal Kubecek [NETIF_F_GSO_IPXIP6_BIT] = "tx-ipxip6-segmentation", 37*d44e1310SMichal Kubecek [NETIF_F_GSO_UDP_TUNNEL_BIT] = "tx-udp_tnl-segmentation", 38*d44e1310SMichal Kubecek [NETIF_F_GSO_UDP_TUNNEL_CSUM_BIT] = "tx-udp_tnl-csum-segmentation", 39*d44e1310SMichal Kubecek [NETIF_F_GSO_PARTIAL_BIT] = "tx-gso-partial", 40*d44e1310SMichal Kubecek [NETIF_F_GSO_SCTP_BIT] = "tx-sctp-segmentation", 41*d44e1310SMichal Kubecek [NETIF_F_GSO_ESP_BIT] = "tx-esp-segmentation", 42*d44e1310SMichal Kubecek [NETIF_F_GSO_UDP_L4_BIT] = "tx-udp-segmentation", 43*d44e1310SMichal Kubecek 44*d44e1310SMichal Kubecek [NETIF_F_FCOE_CRC_BIT] = "tx-checksum-fcoe-crc", 45*d44e1310SMichal Kubecek [NETIF_F_SCTP_CRC_BIT] = "tx-checksum-sctp", 46*d44e1310SMichal Kubecek [NETIF_F_FCOE_MTU_BIT] = "fcoe-mtu", 47*d44e1310SMichal Kubecek [NETIF_F_NTUPLE_BIT] = "rx-ntuple-filter", 48*d44e1310SMichal Kubecek [NETIF_F_RXHASH_BIT] = "rx-hashing", 49*d44e1310SMichal Kubecek [NETIF_F_RXCSUM_BIT] = "rx-checksum", 50*d44e1310SMichal Kubecek [NETIF_F_NOCACHE_COPY_BIT] = "tx-nocache-copy", 51*d44e1310SMichal Kubecek [NETIF_F_LOOPBACK_BIT] = "loopback", 52*d44e1310SMichal Kubecek [NETIF_F_RXFCS_BIT] = "rx-fcs", 53*d44e1310SMichal Kubecek [NETIF_F_RXALL_BIT] = "rx-all", 54*d44e1310SMichal Kubecek [NETIF_F_HW_L2FW_DOFFLOAD_BIT] = "l2-fwd-offload", 55*d44e1310SMichal Kubecek [NETIF_F_HW_TC_BIT] = "hw-tc-offload", 56*d44e1310SMichal Kubecek [NETIF_F_HW_ESP_BIT] = "esp-hw-offload", 57*d44e1310SMichal Kubecek [NETIF_F_HW_ESP_TX_CSUM_BIT] = "esp-tx-csum-hw-offload", 58*d44e1310SMichal Kubecek [NETIF_F_RX_UDP_TUNNEL_PORT_BIT] = "rx-udp_tunnel-port-offload", 59*d44e1310SMichal Kubecek [NETIF_F_HW_TLS_RECORD_BIT] = "tls-hw-record", 60*d44e1310SMichal Kubecek [NETIF_F_HW_TLS_TX_BIT] = "tls-hw-tx-offload", 61*d44e1310SMichal Kubecek [NETIF_F_HW_TLS_RX_BIT] = "tls-hw-rx-offload", 62*d44e1310SMichal Kubecek }; 63*d44e1310SMichal Kubecek 64*d44e1310SMichal Kubecek const char 65*d44e1310SMichal Kubecek rss_hash_func_strings[ETH_RSS_HASH_FUNCS_COUNT][ETH_GSTRING_LEN] = { 66*d44e1310SMichal Kubecek [ETH_RSS_HASH_TOP_BIT] = "toeplitz", 67*d44e1310SMichal Kubecek [ETH_RSS_HASH_XOR_BIT] = "xor", 68*d44e1310SMichal Kubecek [ETH_RSS_HASH_CRC32_BIT] = "crc32", 69*d44e1310SMichal Kubecek }; 70*d44e1310SMichal Kubecek 71*d44e1310SMichal Kubecek const char 72*d44e1310SMichal Kubecek tunable_strings[__ETHTOOL_TUNABLE_COUNT][ETH_GSTRING_LEN] = { 73*d44e1310SMichal Kubecek [ETHTOOL_ID_UNSPEC] = "Unspec", 74*d44e1310SMichal Kubecek [ETHTOOL_RX_COPYBREAK] = "rx-copybreak", 75*d44e1310SMichal Kubecek [ETHTOOL_TX_COPYBREAK] = "tx-copybreak", 76*d44e1310SMichal Kubecek [ETHTOOL_PFC_PREVENTION_TOUT] = "pfc-prevention-tout", 77*d44e1310SMichal Kubecek }; 78*d44e1310SMichal Kubecek 79*d44e1310SMichal Kubecek const char 80*d44e1310SMichal Kubecek phy_tunable_strings[__ETHTOOL_PHY_TUNABLE_COUNT][ETH_GSTRING_LEN] = { 81*d44e1310SMichal Kubecek [ETHTOOL_ID_UNSPEC] = "Unspec", 82*d44e1310SMichal Kubecek [ETHTOOL_PHY_DOWNSHIFT] = "phy-downshift", 83*d44e1310SMichal Kubecek [ETHTOOL_PHY_FAST_LINK_DOWN] = "phy-fast-link-down", 84*d44e1310SMichal Kubecek [ETHTOOL_PHY_EDPD] = "phy-energy-detect-power-down", 85*d44e1310SMichal Kubecek }; 86