xref: /OK3568_Linux_fs/kernel/tools/testing/selftests/bpf/test_xdp_meta.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun#!/bin/sh
2*4882a593Smuzhiyun
3*4882a593Smuzhiyuncleanup()
4*4882a593Smuzhiyun{
5*4882a593Smuzhiyun	if [ "$?" = "0" ]; then
6*4882a593Smuzhiyun		echo "selftests: test_xdp_meta [PASS]";
7*4882a593Smuzhiyun	else
8*4882a593Smuzhiyun		echo "selftests: test_xdp_meta [FAILED]";
9*4882a593Smuzhiyun	fi
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun	set +e
12*4882a593Smuzhiyun	ip link del veth1 2> /dev/null
13*4882a593Smuzhiyun	ip netns del ns1 2> /dev/null
14*4882a593Smuzhiyun	ip netns del ns2 2> /dev/null
15*4882a593Smuzhiyun}
16*4882a593Smuzhiyun
17*4882a593Smuzhiyunip link set dev lo xdp off 2>/dev/null > /dev/null
18*4882a593Smuzhiyunif [ $? -ne 0 ];then
19*4882a593Smuzhiyun	echo "selftests: [SKIP] Could not run test without the ip xdp support"
20*4882a593Smuzhiyun	exit 0
21*4882a593Smuzhiyunfi
22*4882a593Smuzhiyunset -e
23*4882a593Smuzhiyun
24*4882a593Smuzhiyunip netns add ns1
25*4882a593Smuzhiyunip netns add ns2
26*4882a593Smuzhiyun
27*4882a593Smuzhiyuntrap cleanup 0 2 3 6 9
28*4882a593Smuzhiyun
29*4882a593Smuzhiyunip link add veth1 type veth peer name veth2
30*4882a593Smuzhiyun
31*4882a593Smuzhiyunip link set veth1 netns ns1
32*4882a593Smuzhiyunip link set veth2 netns ns2
33*4882a593Smuzhiyun
34*4882a593Smuzhiyunip netns exec ns1 ip addr add 10.1.1.11/24 dev veth1
35*4882a593Smuzhiyunip netns exec ns2 ip addr add 10.1.1.22/24 dev veth2
36*4882a593Smuzhiyun
37*4882a593Smuzhiyunip netns exec ns1 tc qdisc add dev veth1 clsact
38*4882a593Smuzhiyunip netns exec ns2 tc qdisc add dev veth2 clsact
39*4882a593Smuzhiyun
40*4882a593Smuzhiyunip netns exec ns1 tc filter add dev veth1 ingress bpf da obj test_xdp_meta.o sec t
41*4882a593Smuzhiyunip netns exec ns2 tc filter add dev veth2 ingress bpf da obj test_xdp_meta.o sec t
42*4882a593Smuzhiyun
43*4882a593Smuzhiyunip netns exec ns1 ip link set dev veth1 xdp obj test_xdp_meta.o sec x
44*4882a593Smuzhiyunip netns exec ns2 ip link set dev veth2 xdp obj test_xdp_meta.o sec x
45*4882a593Smuzhiyun
46*4882a593Smuzhiyunip netns exec ns1 ip link set dev veth1 up
47*4882a593Smuzhiyunip netns exec ns2 ip link set dev veth2 up
48*4882a593Smuzhiyun
49*4882a593Smuzhiyunip netns exec ns1 ping -c 1 10.1.1.22
50*4882a593Smuzhiyunip netns exec ns2 ping -c 1 10.1.1.11
51*4882a593Smuzhiyun
52*4882a593Smuzhiyunexit 0
53