net: ethernet: ti: am65-cpsw: Add minimal XDP support
authorJulien Panis <jpanis@baylibre.com>
Fri, 12 Apr 2024 15:38:34 +0000 (17:38 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 15 Apr 2024 12:18:18 +0000 (13:18 +0100)
commit8acacc40f7337527ff84cd901ed2ef0a2b95b2b6
tree512c840a3c0bef87abede0e40e0ed2f6218a249e
parent84d767a3c0b5e6b7d13bcaa64405c0613138161f
net: ethernet: ti: am65-cpsw: Add minimal XDP support

This patch adds XDP (eXpress Data Path) support to TI AM65 CPSW
Ethernet driver. The following features are implemented:
- NETDEV_XDP_ACT_BASIC (XDP_PASS, XDP_TX, XDP_DROP, XDP_ABORTED)
- NETDEV_XDP_ACT_REDIRECT (XDP_REDIRECT)
- NETDEV_XDP_ACT_NDO_XMIT (ndo_xdp_xmit callback)

The page pool memory model is used to get better performance.
Below are benchmark results obtained for the receiver with iperf3 default
parameters:
- Without page pool: 495 Mbits/sec
- With page pool: 605 Mbits/sec (actually 610 Mbits/sec, with a 5 Mbits/sec
loss due to extra processing in the hot path to handle XDP).

Signed-off-by: Julien Panis <jpanis@baylibre.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ti/am65-cpsw-nuss.c
drivers/net/ethernet/ti/am65-cpsw-nuss.h