Re: [PATCH net-next 7/8] net/mlx5e: XDP TX forwarding support
flat view
From: Jesper Dangaard Brouer <hidden>
Date: 2016-09-20 08:29:46
On Mon, 19 Sep 2016 16:58:58 +0300 Tariq Toukan [off-list ref] wrote:
quoted hunk ↗ jump to hunk
+ act = bpf_prog_run_xdp(prog, &xdp); + switch (act) { + case XDP_PASS: + return false; + case XDP_TX: + consumed = mlx5e_xmit_xdp_frame(&rq->channel->xdp_sq, di, + MLX5_RX_HEADROOM, + len); + rq->stats.xdp_tx += consumed; + return consumed; + default: + bpf_warn_invalid_xdp_action(act); + return false;
This looks wrong. According to the specification[1] and comment in the code /include/uapi/linux/bpf.h: "Unknown return codes will result in packet drop"
+ case XDP_ABORTED:
It is not clearly defined, but I believe XDP_ABORTED should also result in a warning (calling bpf_warn_invalid_xdp_action(act)).
quoted hunk ↗ jump to hunk
+ case XDP_DROP: + rq->stats.xdp_drop++; + mlx5e_page_release(rq, di, true); + return true; + }
I've started documenting XDP[2], as this patch clearly shows there is a need to have a specification, given already the second driver supporting XDP gets these details wrong. [1] https://prototype-kernel.readthedocs.io/en/latest/networking/XDP/implementation/xdp_actions.html#xdp-aborted [2] https://prototype-kernel.readthedocs.io/en/latest/networking/XDP/index.html -- Best regards, Jesper Dangaard Brouer MSc.CS, Principal Kernel Engineer at Red Hat Author of http://www.iptv-analyzer.org LinkedIn: http://www.linkedin.com/in/brouer