Ethernet Driver Features in 6.9

A report of features and offloads implemented by ethernet drivers in Linux kernel 6.9.

The content in this report is generated by a crude script that:

  • greps for occurrences of e.g. TC_SETUP_*
  • collates occurrences by driver directory
  • generates a feature matrix with a row per driver directory

Note that the results may not be a 1:1 mapping to actual drivers.

Switchdev Offloads - SWITCHDEV_*

Driver FDB_ADD_TO_BRIDGE FDB_DEL_TO_BRIDGE FDB_ADD_TO_DEVICE FDB_DEL_TO_DEVICE FDB_OFFLOADED PORT_OBJ_ADD PORT_OBJ_DEL PORT_ATTR_SET VXLAN_FDB_ADD_TO_BRIDGE VXLAN_FDB_DEL_TO_BRIDGE VXLAN_FDB_ADD_TO_DEVICE VXLAN_FDB_DEL_TO_DEVICE VXLAN_FDB_OFFLOADED
adi/adin1110 X X X X
freescale/dpaa2 X X X X X X
intel/ice X X X X X X X X
marvell/prestera X X X X X X X X
mellanox/mlx5 X X X X X X X X
mellanox/mlxsw X X X X X X X X X X X X X
microchip/lan966x X X X X X X X X
microchip/sparx5 X X X X X X X
mscc/ocelot_net X X X
rocker/rocker_main X X X X X X
rocker/rocker_ofdpa X X
ti/am65-cpsw-switchdev X X X X X X
ti/cpsw_switchdev X X X X X X

FIB Offloads - FIB_EVENT_*

Driver ENTRY_REPLACE ENTRY_APPEND ENTRY_ADD ENTRY_DEL RULE_ADD RULE_DEL NH_ADD NH_DEL VIF_ADD VIF_DEL
marvell/prestera X X
mellanox/mlx5 X X X X
mellanox/mlxsw X X X X X X X X X X
rocker/rocker_main X X X X

XDP features - NETDEV_XDP_*

Driver ACT_BASIC ACT_REDIRECT ACT_NDO_XMIT ACT_XSK_ZEROCOPY ACT_HW_OFFLOAD ACT_RX_SG ACT_NDO_XMIT_SG
amazon/ena X X
aquantia/atlantic X X X X X
broadcom/bnxt X X
cavium/thunder X
engleder/tsnep_main X X X X
freescale/dpaa X X X
freescale/dpaa2 X X X X
freescale/enetc X X X
freescale/fec_main X X
fungible/funeth X
google/gve X X X X
intel/i40e X X X X
intel/ice X X X
intel/igb X
intel/igc X X
intel/ixgbe X X
intel/ixgbevf X
marvell/mvneta X X X X X
marvell/mvpp2 X X X
marvell/octeontx2 X
mediatek/mtk_eth_soc X X X X
mellanox/mlx4 X
mellanox/mlx5 X X X X X
microchip/lan966x X X X
microsoft/mana X X X
netronome/nfp X X X X
pensando/ionic X X X X X
qlogic/qede X X
sfc/efx X X X
sfc/siena X X X
socionext/netsec X X
stmicro/stmmac X X
ti/cpsw X X
ti/cpsw_new X X X

XDP HW Offloads - (xdp_metadata_ops xmo_rx_*)

Driver timestamp hash vlan_tag
intel/ice X X X
intel/igc X X
mellanox/mlx4 X X
mellanox/mlx5 X X X
stmicro/stmmac X

tc offloads - TC_SETUP_*

Driver QDISC_MQPRIO CLSU32 CLSFLOWER CLSMATCHALL CLSBPF BLOCK QDISC_CBS QDISC_RED QDISC_PRIO QDISC_MQ QDISC_ETF ROOT_QDISC QDISC_GRED QDISC_TAPRIO FT QDISC_ETS QDISC_TBF QDISC_FIFO QDISC_HTB ACT
amd/xgbe X
aquantia/atlantic X
broadcom/bnx2x X
broadcom/bnxt X X X
chelsio/cxgb4 X X X X X
engleder/tsnep_selftests X
engleder/tsnep_tc X
freescale/dpaa X
freescale/dpaa2 X X X X X
freescale/enetc X X X X X X
hisilicon/hns3 X X X
intel/fm10k X
intel/i40e X X X
intel/iavf X X X
intel/ice X X X
intel/igb X X X X X
intel/igc X X X
intel/ixgbe X X X
marvell/mvneta X
marvell/octeontx2 X X X X
marvell/prestera X X X
mediatek/mtk_ppe_offload X X X
mediatek/mtk_wed X X X
mellanox/mlx4 X
mellanox/mlx5 X X X X X X X
mellanox/mlxsw X X X X X X X X
microchip/lan966x X X X X X X X X
microchip/sparx5 X X X X X X
mscc/ocelot_net X X X
netronome/nfp X X X X X X X X X X
qlogic/qede X X X
sfc/ef100_rep X X
sfc/falcon X
sfc/siena X
sfc/tc_bindings X X
sfc/tc_conntrack X
stmicro/stmmac X X X X X X
ti/am65-cpsw-qos X X X X
ti/cpsw_priv X X X X
ti/netcp_core X

Flow Action Offloads - FLOW_ACTION_*

Driver ACCEPT DROP TRAP GOTO REDIRECT MIRRED REDIRECT_INGRESS MIRRED_INGRESS VLAN_PUSH VLAN_POP VLAN_MANGLE TUNNEL_ENCAP TUNNEL_DECAP MANGLE ADD CSUM MARK PTYPE PRIORITY RX_QUEUE_MAPPING WAKE QUEUE SAMPLE POLICE CT CT_METADATA MPLS_PUSH MPLS_POP MPLS_MANGLE GATE PPPOE_PUSH JUMP PIPE VLAN_PUSH_ETH VLAN_POP_ETH CONTINUE
broadcom/bnxt X X X X X X X X
chelsio/cxgb4 X X X X X X X X X X X
freescale/dpaa2 X X X X
freescale/enetc X X X X X
intel/ice X X X X
marvell/mvpp2 X
marvell/octeontx2 X X X X X X X X X
marvell/prestera X X X X X X
mediatek/mtk_ppe_offload X X X X X X
mellanox/mlx5 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X
mellanox/mlxsw X X X X X X X X X X X X
microchip/lan966x X X X X X X X X
microchip/sparx5 X X X X X X X X X X
mscc/ocelot_flower X X X X X X X X X X X X
mscc/ocelot_net X X
mscc/ocelot_police X X X
netronome/nfp X X X X X X X X X X X X X X X X X X X X X X X
qlogic/qede X X
sfc/tc X X X X X X X X X X X
sfc/tc_conntrack X X
stmicro/stmmac X
ti/am65-cpsw-qos X X X X
ti/cpsw_priv X X X X

Flow Action Mangle Offloads - FLOW_ACT_MANGLE_HDR_TYPE_*

Driver ETH IP4 IP6 TCP UDP
broadcom/bnxt X X X X X
chelsio/cxgb4 X X X X X
mediatek/mtk_ppe_offload X X X X
mellanox/mlx5 X X X X X
mellanox/mlxsw X X X X
netronome/nfp X X X X X
sfc/tc X X X
sfc/tc_conntrack X X X

Netdev Features - NETIF_F_*

Finally, the mega table of netdev features.

Driver SG IP_CSUM HW_CSUM IPV6_CSUM HIGHDMA FRAGLIST HW_VLAN_CTAG_TX HW_VLAN_CTAG_RX HW_VLAN_CTAG_FILTER VLAN_CHALLENGED GSO LLTX NETNS_LOCAL GRO LRO TSO TSO_ECN TSO_MANGLEID TSO6 FSO GSO_GRE GSO_GRE_CSUM GSO_IPXIP4 GSO_IPXIP6 GSO_UDP_TUNNEL GSO_UDP_TUNNEL_CSUM GSO_PARTIAL GSO_ESP GSO_UDP_L4 FCOE_CRC SCTP_CRC FCOE_MTU NTUPLE RXHASH RXCSUM LOOPBACK RXFCS RXALL HW_VLAN_STAG_TX HW_VLAN_STAG_RX HW_VLAN_STAG_FILTER HW_L2FW_DOFFLOAD HW_TC HW_ESP HW_ESP_TX_CSUM RX_UDP_TUNNEL_PORT HW_TLS_TX HW_TLS_RX GRO_HW HW_TLS_RECORD HW_MACSEC
3com/3c59x X X
3com/typhoon X X X
adaptec/starfire X X X
adi/adin1110 X
aeroflex/greth X X X
alacritech/slicoss X
alteon/acenic X X X
altera/altera_tse_main X X X
amazon/ena X X X X X X X X X
amd/amd8111e X
amd/xgbe X X X X X X X X X X X X X X
apm/xgene X X X X X X
apm/xgene-v2 X X
aquantia/atlantic X X X X X X X X X X X X X X X
asix/ax88796c_main X X
atheros/alx X X X X X
atheros/atl1c X X X X X X
atheros/atl1e X X X X X
atheros/atlx X X X X X X
broadcom/asp2 X X
broadcom/b44 X
broadcom/bcmsysport X X X X
broadcom/bgmac X
broadcom/bnx2 X X X X X X X X
broadcom/bnx2x X X X X X X X X X X X X X X X X X X X
broadcom/bnxt X X X X X X X X X X X X X X X X X X
broadcom/genet X X
broadcom/tg3 X X X X X X X X X X
brocade/bna X X X X X X X
cadence/macb_main X X X X X
calxeda/xgmac X X X
cavium/liquidio X X X X X X X X X X X X X X
cavium/thunder X X X X X X X X X
chelsio/cxgb X X X X X X
chelsio/cxgb3 X X X X X X X
chelsio/cxgb4 X X X X X X X X X X X X X X X X X X X
chelsio/cxgb4vf X X X X X X X
chelsio/inline_crypto X
cirrus/ep93xx_eth X
cisco/enic X X X X X X X X X X X X X
cortina/gemini X X X
davicom/dm9000 X X
davicom/dm9051 X
dlink/dl2k X
emulex/benet X X X X X X X X
engleder/tsnep_main X X
faraday/ftgmac100 X X X X X
freescale/dpaa X X X X X X
freescale/dpaa2 X X X X X X X X
freescale/enetc X X X X X X X X X
freescale/fec_main X X X X
freescale/fs_enet X
freescale/gianfar X X X X X X
freescale/gianfar_ethtool X X
fungible/funeth X X X X X X X X X X
google/gve X X X X X X X X X
hisilicon/hix5hd2_gmac X X
hisilicon/hns X X X X X X X
hisilicon/hns3 X X X X X X X X X X X X X X X X X
huawei/hinic X X X X X X X X X X X
ibm/ehea X X X X X X
ibm/emac X X
ibm/ibmveth X X X X X X X
ibm/ibmvnic X X X X X X X
intel/e100 X X X
intel/e1000 X X X X X X X X X X
intel/e1000e X X X X X X X X X X X X
intel/fm10k X X X X X X X X X X X X X X
intel/i40e X X X X X X X X X X X X X X X X X X X X X X X X X
intel/iavf X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X
intel/ice X X X X X X X X X X X X X X X X X X X X X X X X X X X X X
intel/idpf X X X X X X X X X X X X X X X X X X X X
intel/igb X X X X X X X X X X X X X X X X X X X X X X X
intel/igbvf X X X X X X X X X X X X X X X X X X
intel/igc X X X X X X X X X X X X X X X X X X X X X X
intel/ixgbe X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X
intel/ixgbevf X X X X X X X X X X X X X X X X X X X X X X X
jme X X X X X X X X X
marvell/mv643xx_eth X X
marvell/mvneta X X X
marvell/mvpp2 X X X X X X X X X
marvell/octeon_ep X X X X X X
marvell/octeon_ep_vf X X X X X X
marvell/octeontx2 X X X X X X X X X X X X X X
marvell/prestera X
marvell/skge X X X
marvell/sky2 X X X X X X
mediatek/mtk_eth_soc X X X X X X X X
mellanox/mlx4 X X X X X X X X X X X X X X X X X X
mellanox/mlx5 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X
mellanox/mlxsw X X X
micrel/ksz884x X X
microchip/lan743x_main X X
microchip/lan966x X X X X
microchip/sparx5 X X
microsoft/mana X X X X X X
mscc/ocelot X
mscc/ocelot_net X X X
myricom/myri10ge X X X X X
natsemi/ns83820 X X X X
neterion/s2io X X X X X X
netronome/nfp X X X X X X X X X X X X X X X X X X X X X
ni/nixge X
nvidia/forcedeth X X X X X X
oki-semi/pch_gbe X X
pasemi/pasemi_mac X X
pensando/ionic X X X X X X X X X X X X X X X X X
qlogic/netxen X X X X X X
qlogic/qede X X X X X X X X X X X X X X X X X
qlogic/qla3xxx X X
qlogic/qlcnic X X X X X X X X X X X
qualcomm/emac X X X X X
qualcomm/rmnet X X X X
realtek/8139cp X X X X
realtek/8139too X X X
realtek/r8169_main X X X X X X X X
renesas/ravb_main X X
renesas/sh_eth X X
rocker/rocker_main X
samsung/sxgbe X X X X X X X X X X X
sfc/ef10 X X X X X X X X X X X X
sfc/ef100_netdev X X
sfc/ef100_nic X X X X X X X X
sfc/ef100_rep X
sfc/ef100_rx X X
sfc/ef100_tx X X X
sfc/ef10_sriov X
sfc/efx X X X X X X
sfc/efx_common X X X
sfc/falcon X X X X X X X
sfc/mcdi_filters X
sfc/mcdi_port_common X
sfc/rx X
sfc/rx_common X X
sfc/siena X X X X X X X X X X X
sgi/ioc3-eth X X
silan/sc92031 X X
socionext/netsec X X X
socionext/sni_ave X
stmicro/stmmac X X X X X X X X X X X X X X X
sun/cassini X X
sun/ldmvsw X
sun/niu X X X
sun/sungem X X
sun/sunhme X X
sun/sunvnet X
sun/sunvnet_common X
synopsys/dwc-xlgmac-common X X X X X X X X X X X
synopsys/dwc-xlgmac-hw X X X X
synopsys/dwc-xlgmac-net X X X X
tehuti/tehuti X X X X X X X
ti/am65-cpsw-nuss X X X X X
ti/cpsw X
ti/cpsw_new X X
ti/icssg X
ti/netcp_core X X X
toshiba/ps3_gelic_net X X X
toshiba/spider_net X X X X X
tundra/tsi108_eth X
via/via-rhine X X X X
via/via-velocity X X X X
wangxun/libwx X X X X X X
wangxun/ngbe X X X X X X X X
wangxun/txgbe X X X X X X X X X X X X
wiznet/w5100 X
wiznet/w5300 X
xilinx/ll_temac_main X X X X X X X X X X X
xilinx/xilinx_axienet_main X X
kernel