blob: 7dfc357df7879848c5b799eaf6c817921c3f174d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
XDP_LOADER=${XDP_LOADER:-./xdp-loader}
XDP_BENCH=${XDP_BENCH:-./xdp-bench}
ALL_TESTS="test_drop test_pass test_tx test_rxq_stats test_redirect test_redirect_cpu test_redirect_map test_redirect_map_egress test_redirect_multi test_redirect_multi_egress"
test_basic()
{
action=$1
export XDP_SAMPLE_IMMEDIATE_EXIT=1
check_run $XDP_BENCH $action $NS -vv
check_run $XDP_BENCH $action $NS -p read-data -vv
check_run $XDP_BENCH $action $NS -p swap-macs -vv
check_run $XDP_BENCH $action $NS -m skb -vv
check_run $XDP_BENCH $action $NS -e -vv
}
test_drop()
{
test_basic drop
}
test_pass()
{
test_basic pass
}
test_tx()
{
test_basic tx
}
test_rxq_stats()
{
skip_if_missing_veth_rxq
export XDP_SAMPLE_IMMEDIATE_EXIT=1
check_run $XDP_BENCH drop $NS -r -vv
}
test_redirect()
{
export XDP_SAMPLE_IMMEDIATE_EXIT=1
check_run ip link add dev btest0 type veth peer name btest1
check_run $XDP_BENCH redirect btest0 btest1 -vv
check_run $XDP_BENCH redirect btest0 btest1 -s -vv
check_run $XDP_BENCH redirect btest0 btest1 -m skb -vv
check_run $XDP_BENCH redirect btest0 btest1 -e -vv
ip link del dev btest0
}
test_redirect_cpu()
{
skip_if_missing_cpumap_attach
export XDP_SAMPLE_IMMEDIATE_EXIT=1
check_run ip link add dev btest0 type veth peer name btest1
check_run $XDP_BENCH redirect-cpu btest0 -c 0 -vv
check_run $XDP_BENCH redirect-cpu btest0 -c 0 -m skb -vv
check_run $XDP_BENCH redirect-cpu btest0 -c 0 -p touch -vv
check_run $XDP_BENCH redirect-cpu btest0 -c 0 -p round-robin -vv
check_run $XDP_BENCH redirect-cpu btest0 -c 0 -p l4-proto -vv
check_run $XDP_BENCH redirect-cpu btest0 -c 0 -p l4-filter -vv
check_run $XDP_BENCH redirect-cpu btest0 -c 0 -p l4-hash -vv
is_progmap_supported || export LIBXDP_SKIP_DISPATCHER=1
check_run $XDP_BENCH redirect-cpu btest0 -c 0 -r drop -vv
check_run $XDP_BENCH redirect-cpu btest0 -c 0 -r pass -vv
check_run $XDP_BENCH redirect-cpu btest0 -c 0 -r redirect -D btest1 -vv
ip link del dev btest0
}
test_redirect_map()
{
export XDP_SAMPLE_IMMEDIATE_EXIT=1
check_run ip link add dev btest0 type veth peer name btest1
check_run $XDP_BENCH redirect-map btest0 btest1 -vv
check_run $XDP_BENCH redirect-map btest0 btest1 -s -vv
check_run $XDP_BENCH redirect-map btest0 btest1 -m skb -vv
check_run $XDP_BENCH redirect-map btest0 btest1 -e -vv
ip link del dev btest0
}
test_redirect_map_egress()
{
skip_if_missing_cpumap_attach
export XDP_SAMPLE_IMMEDIATE_EXIT=1
check_run ip link add dev btest0 type veth peer name btest1
is_progmap_supported || export LIBXDP_SKIP_DISPATCHER=1
check_run $XDP_BENCH redirect-map btest0 btest1 -X -vv
ip link del dev btest0
}
test_redirect_multi()
{
export XDP_SAMPLE_IMMEDIATE_EXIT=1
check_run ip link add dev btest0 type veth peer name btest1
check_run ip link add dev btest2 type veth peer name btest3
check_run $XDP_BENCH redirect-multi btest0 btest1 btest2 btest3 -vv
check_run $XDP_BENCH redirect-multi btest0 btest1 btest2 btest3 -s -vv
check_run $XDP_BENCH redirect-multi btest0 btest1 btest2 btest3 -m skb -vv
check_run $XDP_BENCH redirect-multi btest0 btest1 btest2 btest3 -e -vv
ip link del dev btest0
ip link del dev btest2
}
test_redirect_multi_egress()
{
skip_if_missing_cpumap_attach
export XDP_SAMPLE_IMMEDIATE_EXIT=1
is_progmap_supported || export LIBXDP_SKIP_DISPATCHER=1
check_run ip link add dev btest0 type veth peer name btest1
check_run ip link add dev btest2 type veth peer name btest3
check_run $XDP_BENCH redirect-multi btest0 btest1 btest2 btest3 -X -vv
ip link del dev btest0
ip link del dev btest2
}
cleanup_tests()
{
ip link del dev btest0 >/dev/null 2>&1
ip link del dev btest2 >/dev/null 2>&1
$XDP_LOADER unload $NS --all >/dev/null 2>&1
$XDP_LOADER clean >/dev/null 2>&1
}
|