mirror_ubuntu-kernels/drivers/net/ethernet/freescale
Shenwei Wang 6d6b39f180 net: fec: add initial XDP support
This patch adds the initial XDP support to Freescale driver. It supports
XDP_PASS, XDP_DROP and XDP_REDIRECT actions. Upcoming patches will add
support for XDP_TX and Zero Copy features.

As the patch is rather large, the part of codes to collect the
statistics is separated and will prepare a dedicated patch for that
part.

I just tested with the application of xdpsock.
  -- Native here means running command of "xdpsock -i eth0"
  -- SKB-Mode means running command of "xdpsock -S -i eth0"

The following are the testing result relating to XDP mode:

root@imx8qxpc0mek:~/bpf# ./xdpsock -i eth0
 sock0@eth0:0 rxdrop xdp-drv
                   pps            pkts           1.00
rx                 371347         2717794
tx                 0              0

root@imx8qxpc0mek:~/bpf# ./xdpsock -S -i eth0
 sock0@eth0:0 rxdrop xdp-skb
                   pps            pkts           1.00
rx                 202229         404528
tx                 0              0

root@imx8qxpc0mek:~/bpf# ./xdp2 eth0
proto 0:     496708 pkt/s
proto 0:     505469 pkt/s
proto 0:     505283 pkt/s
proto 0:     505443 pkt/s
proto 0:     505465 pkt/s

root@imx8qxpc0mek:~/bpf# ./xdp2 -S eth0
proto 0:          0 pkt/s
proto 17:     118778 pkt/s
proto 17:     118989 pkt/s
proto 0:          1 pkt/s
proto 17:     118987 pkt/s
proto 0:          0 pkt/s
proto 17:     118943 pkt/s
proto 17:     118976 pkt/s
proto 0:          1 pkt/s
proto 17:     119006 pkt/s
proto 0:          0 pkt/s
proto 17:     119071 pkt/s
proto 17:     119092 pkt/s

Signed-off-by: Shenwei Wang <shenwei.wang@nxp.com>
Reported-by: kernel test robot <lkp@intel.com>
Link: https://lore.kernel.org/r/20221031185350.2045675-1-shenwei.wang@nxp.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2022-11-03 10:28:07 +01:00
..
dpaa Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-10-24 13:44:11 -07:00
dpaa2 net: dpaa2: Add some debug prints on deferred probe 2022-10-31 17:35:24 -07:00
enetc net: enetc: survive memory pressure without crashing 2022-10-27 11:32:25 -07:00
fman Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-10-24 13:44:11 -07:00
fs_enet net: ethernet: remove fs_mii_disconnect and fs_mii_connect declarations 2022-09-19 14:08:14 -07:00
fec_main.c net: fec: add initial XDP support 2022-11-03 10:28:07 +01:00
fec_mpc52xx_phy.c powerpc/mpc5xxx: Switch mpc5xxx_get_bus_frequency() to use fwnode 2022-06-22 12:51:49 +10:00
fec_mpc52xx.c powerpc/mpc5xxx: Switch mpc5xxx_get_bus_frequency() to use fwnode 2022-06-22 12:51:49 +10:00
fec_mpc52xx.h
fec_ptp.c net: fec: Add support for periodic output signal of PPS 2022-10-24 12:40:58 +01:00
fec.h net: fec: add initial XDP support 2022-11-03 10:28:07 +01:00
fsl_pq_mdio.c net: freescale: convert comma to semicolon 2020-12-09 16:23:08 -08:00
gianfar_ethtool.c net: ethernet: move from strlcpy with unused retval to strscpy 2022-08-31 14:11:26 -07:00
gianfar.c net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
gianfar.h eth: gfar: remove a copy of the NAPI_POLL_WEIGHT define 2022-04-29 11:56:42 +01:00
Kconfig net: fec: using page pool to manage RX buffers 2022-10-03 12:43:59 +01:00
Makefile net: enetc: fix link error again 2021-04-22 13:23:07 -07:00
ucc_geth_ethtool.c net: ethernet: move from strlcpy with unused retval to strscpy 2022-08-31 14:11:26 -07:00
ucc_geth.c net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
ucc_geth.h ethernet: ucc_geth: simplify rx/tx allocations 2021-01-21 12:19:56 -08:00
xgmac_mdio.c net: freescale: xgmac: Do not dereference fwnode in struct device 2022-08-22 14:53:13 +01:00