selftests/bpf: introduce XDP compliance test tool
authorLorenzo Bianconi <lorenzo@kernel.org>
Wed, 1 Feb 2023 10:24:24 +0000 (11:24 +0100)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 3 Feb 2023 04:48:24 +0000 (20:48 -0800)
commit4dba3e7852b7717a20ba206ab23ad289a0a5c504
tree2b2ed1a72d237cba78d026aedc5f6afb205659b5
parent84050074e51b68e6f1d3e89ebe8f8f6d73472ec3
selftests/bpf: introduce XDP compliance test tool

Introduce xdp_features tool in order to test XDP features supported by
the NIC and match them against advertised ones.
In order to test supported/advertised XDP features, xdp_features must
run on the Device Under Test (DUT) and on a Tester device.
xdp_features opens a control TCP channel between DUT and Tester devices
to send control commands from Tester to the DUT and a UDP data channel
where the Tester sends UDP 'echo' packets and the DUT is expected to
reply back with the same packet. DUT installs multiple XDP programs on the
NIC to test XDP capabilities and reports back to the Tester some XDP stats.
Currently xdp_features supports the following XDP features:
- XDP_DROP
- XDP_ABORTED
- XDP_PASS
- XDP_TX
- XDP_REDIRECT
- XDP_NDO_XMIT

Co-developed-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Acked-by: Stanislav Fomichev <sdf@google.com>
Link: https://lore.kernel.org/r/7c1af8e7e6ef0614cf32fa9e6bdaa2d8d605f859.1675245258.git.lorenzo@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/testing/selftests/bpf/.gitignore
tools/testing/selftests/bpf/Makefile
tools/testing/selftests/bpf/progs/xdp_features.c [new file with mode: 0644]
tools/testing/selftests/bpf/test_xdp_features.sh [new file with mode: 0755]
tools/testing/selftests/bpf/xdp_features.c [new file with mode: 0644]
tools/testing/selftests/bpf/xdp_features.h [new file with mode: 0644]