While implementing PoC building blocks for eBPF code XDP+TC that can manipulate VLANs headers, I discovered a bug in generic-XDP.
The fix should be backported to stable kernels. Even-though generic-XDP was introduced in v4.12, I think the bug is not exposed until v4.14 in the mentined fixes commit. --- Jesper Dangaard Brouer (3): net: fix generic XDP to handle if eth header was mangled bpf: make TC vlan bpf_helpers avail to selftests selftests/bpf: add XDP selftests for modifying and popping VLAN headers net/core/dev.c | 14 + tools/testing/selftests/bpf/Makefile | 6 - tools/testing/selftests/bpf/bpf_helpers.h | 4 tools/testing/selftests/bpf/test_xdp_vlan.c | 292 ++++++++++++++++++++++++++ tools/testing/selftests/bpf/test_xdp_vlan.sh | 195 +++++++++++++++++ 5 files changed, 509 insertions(+), 2 deletions(-) create mode 100644 tools/testing/selftests/bpf/test_xdp_vlan.c create mode 100755 tools/testing/selftests/bpf/test_xdp_vlan.sh --