selftests, bpf: Add test for veth native XDP
Add a test case for veth native XDP. It checks if XDP_PASS, XDP_TX and XDP_REDIRECT work properly. $ cd tools/testing/selftests/bpf $ make \ TEST_CUSTOM_PROGS= \ TEST_GEN_PROGS= \ TEST_GEN_PROGS_EXTENDED= \ TEST_PROGS_EXTENDED= \ TEST_PROGS="test_xdp_veth.sh" \ run_tests TAP version 13 1..1 # selftests: bpf: test_xdp_veth.sh # PING 10.1.1.33 (10.1.1.33) 56(84) bytes of data. # 64 bytes from 10.1.1.33: icmp_seq=1 ttl=64 time=0.073 ms # # --- 10.1.1.33 ping statistics --- # 1 packets transmitted, 1 received, 0% packet loss, time 0ms # rtt min/avg/max/mdev = 0.073/0.073/0.073/0.000 ms # selftests: xdp_veth [PASS] ok 1 selftests: bpf: test_xdp_veth.sh Signed-off-by: Toshiaki Makita <toshiaki.makita1@gmail.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:

committed by
Alexei Starovoitov

parent
0bed61371f
commit
88091ff56b
31
tools/testing/selftests/bpf/progs/xdp_redirect_map.c
Normal file
31
tools/testing/selftests/bpf/progs/xdp_redirect_map.c
Normal file
@@ -0,0 +1,31 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
#include <linux/bpf.h>
|
||||
#include "bpf_helpers.h"
|
||||
|
||||
struct bpf_map_def SEC("maps") tx_port = {
|
||||
.type = BPF_MAP_TYPE_DEVMAP,
|
||||
.key_size = sizeof(int),
|
||||
.value_size = sizeof(int),
|
||||
.max_entries = 8,
|
||||
};
|
||||
|
||||
SEC("redirect_map_0")
|
||||
int xdp_redirect_map_0(struct xdp_md *xdp)
|
||||
{
|
||||
return bpf_redirect_map(&tx_port, 0, 0);
|
||||
}
|
||||
|
||||
SEC("redirect_map_1")
|
||||
int xdp_redirect_map_1(struct xdp_md *xdp)
|
||||
{
|
||||
return bpf_redirect_map(&tx_port, 1, 0);
|
||||
}
|
||||
|
||||
SEC("redirect_map_2")
|
||||
int xdp_redirect_map_2(struct xdp_md *xdp)
|
||||
{
|
||||
return bpf_redirect_map(&tx_port, 2, 0);
|
||||
}
|
||||
|
||||
char _license[] SEC("license") = "GPL";
|
12
tools/testing/selftests/bpf/progs/xdp_tx.c
Normal file
12
tools/testing/selftests/bpf/progs/xdp_tx.c
Normal file
@@ -0,0 +1,12 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
#include <linux/bpf.h>
|
||||
#include "bpf_helpers.h"
|
||||
|
||||
SEC("tx")
|
||||
int xdp_tx(struct xdp_md *xdp)
|
||||
{
|
||||
return XDP_TX;
|
||||
}
|
||||
|
||||
char _license[] SEC("license") = "GPL";
|
Reference in New Issue
Block a user