Add a new self-test case to verify RXE (Soft-RoCE) traffic using netkit virtual interfaces and an eBPF tcx ingress program to dump and parse RDMA transport headers (BTH, etc.).
The test results: # make -C tools/testing/selftests/ TARGETS=rdma run_tests make: Entering directory '/root/linux/tools/testing/selftests' clang -g -O2 -target bpf -D__TARGET_ARCH_x86 -I../../../../usr/include -I../../../../include/uapi -I../bpf -I/root/linux/tools/testing/selftests/rdma -c rxe_pkg_kernel_dump.c -o /root/linux/tools/testing/selftests/rdma/rxe_pkg_kernel_dump.o bpftool gen skeleton /root/linux/tools/testing/selftests/rdma/rxe_pkg_kernel_dump.o > /root/linux/tools/testing/selftests/rdma/rxe_pkg_kernel.skel.h gcc -D_GNU_SOURCE= -I/root/linux/tools/testing/selftests/../../../tools/testing/selftests -g -Wall -I../../../../usr/include -I../../../../include/uapi -I../bpf -I/root/linux/tools/testing/selftests/rdma rxe_pkg_user_dump.c -lbpf -lelf -lz -o /root/linux/tools/testing/selftests/rdma/rxe_netkit_dump # timeout set to 45 # selftests: rdma: rxe_rping_between_netns.sh # client DISCONNECT EVENT... ok 1 selftests: rdma: rxe_rping_between_netns.sh # timeout set to 45 # selftests: rdma: rxe_ipv6.sh ok 2 selftests: rdma: rxe_ipv6.sh # timeout set to 45 # selftests: rdma: rxe_socket_with_netns.sh ok 3 selftests: rdma: rxe_socket_with_netns.sh # timeout set to 45 # selftests: rdma: rxe_test_NETDEV_UNREGISTER.sh ok 4 selftests: rdma: rxe_test_NETDEV_UNREGISTER.sh # timeout set to 45 # selftests: rdma: rxe_sent_rcvd_bytes.sh # server DISCONNECT EVENT... # wait for RDMA_READ_ADV state 10 # client DISCONNECT EVENT... ok 5 selftests: rdma: rxe_sent_rcvd_bytes.sh # timeout set to 45 # selftests: rdma: rxe_netns_names.sh # 1..0 # SKIP rdma netns exclusive mode is not supported ok 6 selftests: rdma: rxe_netns_names.sh # SKIP # timeout set to 45 # selftests: rdma: rxe_pkg_netkit.sh # server DISCONNECT EVENT... # wait for RDMA_READ_ADV state 10 # ./rxe_pkg_netkit.sh: line 28: 9866 Killed "$CUR_WD/rxe_netkit_dump" ok 7 selftests: rdma: rxe_pkg_netkit.sh make: Leaving directory '/root/linux/tools/testing/selftests' --- V1 - > V2: Fix problems from sashiko --- Zhu Yanjun (2): selftests/rdma: Introduce eBPF kernel and user dump utilities for RXE selftests/rdma: Add netkit-based automated test script for RXE tools/testing/selftests/rdma/Makefile | 23 +- tools/testing/selftests/rdma/config | 3 + .../selftests/rdma/rxe_pkg_kernel_dump.c | 62 + .../testing/selftests/rdma/rxe_pkg_netkit.sh | 63 + .../selftests/rdma/rxe_pkg_user_dump.c | 1275 +++++++++++++++++ 5 files changed, 1425 insertions(+), 1 deletion(-) create mode 100644 tools/testing/selftests/rdma/rxe_pkg_kernel_dump.c create mode 100755 tools/testing/selftests/rdma/rxe_pkg_netkit.sh create mode 100644 tools/testing/selftests/rdma/rxe_pkg_user_dump.c -- 2.54.0
