net: veth: Account total xdp_frame len running ndo_xdp_xmit
authorLorenzo Bianconi <lorenzo@kernel.org>
Fri, 11 Mar 2022 09:14:18 +0000 (10:14 +0100)
committerDaniel Borkmann <daniel@iogearbox.net>
Thu, 17 Mar 2022 19:33:52 +0000 (20:33 +0100)
commit5142239a22219921a7863cf00c9ab853c00689d8
tree5c43ec4b1efc07fee6947108900173ec562c9dea
parentad13baf4569152b00de11949b8c93aaa83c1243f
net: veth: Account total xdp_frame len running ndo_xdp_xmit

Even if this is a theoretical issue since it is not possible to perform
XDP_REDIRECT on a non-linear xdp_frame, veth driver does not account
paged area in ndo_xdp_xmit function pointer.
Introduce xdp_get_frame_len utility routine to get the xdp_frame full
length and account total frame size running XDP_REDIRECT of a
non-linear xdp frame into a veth device.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Toke Hoiland-Jorgensen <toke@redhat.com>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Link: https://lore.kernel.org/bpf/54f9fd3bb65d190daf2c0bbae2f852ff16cfbaa0.1646989407.git.lorenzo@kernel.org
drivers/net/veth.c
include/net/xdp.h