From: Horatiu Vultur <horatiu.vultur@xxxxxxxxxxxxx> Date: Wed, 9 Nov 2022 21:46:09 +0100 > Add support for xdp in lan966x driver. Currently only XDP_PASS and > XDP_DROP are supported. > > The first 2 patches are just moving things around just to simplify > the code for when the xdp is added. > Patch 3 actually adds the xdp. Currently the only supported actions > are XDP_PASS and XDP_DROP. In the future this will be extended with > XDP_TX and XDP_REDIRECT. > Patch 4 changes to use page pool API, because the handling of the > pages is similar with what already lan966x driver is doing. In this > way is possible to remove some of the code. > > All these changes give a small improvement on the RX side: > Before: > iperf3 -c 10.96.10.1 -R > [ 5] 0.00-10.01 sec 514 MBytes 430 Mbits/sec 0 sender > [ 5] 0.00-10.00 sec 509 MBytes 427 Mbits/sec receiver > > After: > iperf3 -c 10.96.10.1 -R > [ 5] 0.00-10.02 sec 540 MBytes 452 Mbits/sec 0 sender > [ 5] 0.00-10.01 sec 537 MBytes 450 Mbits/sec receiver A bit confusing name 'max_mtu' which in fact represents the max frame len + skb overhead (4th patch), but it's more of a personal taste probably. For the series: Reviewed-by: Alexander Lobakin <alexandr.lobakin@xxxxxxxxx> Nice stuff! I hear time to time that XDP is for 10G+ NICs only, but I'm not a fan of such, and this series proves once again XDP fits any hardware ^.^ > > --- > v2->v3: > - inline lan966x_xdp_port_present > - update max_len of page_pool_params not to be the page size anymore but > actually be rx->max_mtu. > > v1->v2: > - rebase on net-next, once the fixes for FDMA and MTU were accepted > - drop patch 2, which changes the MTU as is not needed anymore > - allow to run xdp programs on frames bigger than 4KB > > Horatiu Vultur (4): > net: lan966x: Add define IFH_LEN_BYTES > net: lan966x: Split function lan966x_fdma_rx_get_frame > net: lan966x: Add basic XDP support > net: lan96x: Use page_pool API > > .../net/ethernet/microchip/lan966x/Kconfig | 1 + > .../net/ethernet/microchip/lan966x/Makefile | 3 +- > .../ethernet/microchip/lan966x/lan966x_fdma.c | 181 +++++++++++------- > .../ethernet/microchip/lan966x/lan966x_ifh.h | 1 + > .../ethernet/microchip/lan966x/lan966x_main.c | 7 +- > .../ethernet/microchip/lan966x/lan966x_main.h | 33 ++++ > .../ethernet/microchip/lan966x/lan966x_xdp.c | 76 ++++++++ > 7 files changed, 236 insertions(+), 66 deletions(-) > create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_xdp.c > > -- > 2.38.0 Thanks, Olek