bpf, devmap: Move drop error path to devmap for XDP_REDIRECT
We want to change the current ndo_xdp_xmit drop semantics because it will allow us to implement better queue overflow handling. This is working towards the larger goal of a XDP TX queue-hook. Move XDP_REDIRECT error path handling from each XDP ethernet driver to devmap code. According to the new APIs, the driver running the ndo_xdp_xmit pointer, will break tx loop whenever the hw reports a tx error and it will just return to devmap caller the number of successfully transmitted frames. It will be devmap responsibility to free dropped frames. Move each XDP ndo_xdp_xmit capable driver to the new APIs: - veth - virtio-net - mvneta - mvpp2 - socionext - amazon ena - bnxt - freescale (dpaa2, dpaa) - xen-frontend - qede - ice - igb - ixgbe - i40e - mlx5 - ti (cpsw, cpsw-new) - tun - sfc Signed-off-by:Lorenzo Bianconi <lorenzo@kernel.org> Signed-off-by:
Daniel Borkmann <daniel@iogearbox.net> Reviewed-by:
Ioana Ciornei <ioana.ciornei@nxp.com> Reviewed-by:
Ilias Apalodimas <ilias.apalodimas@linaro.org> Reviewed-by:
Camelia Groza <camelia.groza@nxp.com> Acked-by:
Edward Cree <ecree.xilinx@gmail.com> Acked-by:
Jesper Dangaard Brouer <brouer@redhat.com> Acked-by:
Shay Agroskin <shayagr@amazon.com> Link: https://lore.kernel.org/bpf/ed670de24f951cfd77590decf0229a0ad7fd12f6.1615201152.git.lorenzo@kernel.org
Showing
- drivers/net/ethernet/amazon/ena/ena_netdev.c 9 additions, 12 deletionsdrivers/net/ethernet/amazon/ena/ena_netdev.c
- drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c 8 additions, 12 deletionsdrivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
- drivers/net/ethernet/freescale/dpaa/dpaa_eth.c 5 additions, 7 deletionsdrivers/net/ethernet/freescale/dpaa/dpaa_eth.c
- drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c 0 additions, 2 deletionsdrivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c
- drivers/net/ethernet/intel/i40e/i40e_txrx.c 7 additions, 8 deletionsdrivers/net/ethernet/intel/i40e/i40e_txrx.c
- drivers/net/ethernet/intel/ice/ice_txrx.c 7 additions, 8 deletionsdrivers/net/ethernet/intel/ice/ice_txrx.c
- drivers/net/ethernet/intel/igb/igb_main.c 5 additions, 6 deletionsdrivers/net/ethernet/intel/igb/igb_main.c
- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c 5 additions, 6 deletionsdrivers/net/ethernet/intel/ixgbe/ixgbe_main.c
- drivers/net/ethernet/marvell/mvneta.c 6 additions, 7 deletionsdrivers/net/ethernet/marvell/mvneta.c
- drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c 6 additions, 7 deletionsdrivers/net/ethernet/marvell/mvpp2/mvpp2_main.c
- drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c 6 additions, 9 deletionsdrivers/net/ethernet/mellanox/mlx5/core/en/xdp.c
- drivers/net/ethernet/qlogic/qede/qede_fp.c 7 additions, 12 deletionsdrivers/net/ethernet/qlogic/qede/qede_fp.c
- drivers/net/ethernet/sfc/tx.c 1 addition, 14 deletionsdrivers/net/ethernet/sfc/tx.c
- drivers/net/ethernet/socionext/netsec.c 7 additions, 9 deletionsdrivers/net/ethernet/socionext/netsec.c
- drivers/net/ethernet/ti/cpsw.c 6 additions, 8 deletionsdrivers/net/ethernet/ti/cpsw.c
- drivers/net/ethernet/ti/cpsw_new.c 6 additions, 8 deletionsdrivers/net/ethernet/ti/cpsw_new.c
- drivers/net/ethernet/ti/cpsw_priv.c 4 additions, 7 deletionsdrivers/net/ethernet/ti/cpsw_priv.c
- drivers/net/tun.c 9 additions, 6 deletionsdrivers/net/tun.c
- drivers/net/veth.c 15 additions, 13 deletionsdrivers/net/veth.c
- drivers/net/virtio_net.c 13 additions, 12 deletionsdrivers/net/virtio_net.c
Loading
Please register or sign in to comment