Back to home page

OSCL-LXR

 
 

    


0001 #!/bin/sh
0002 
0003 # Kselftest framework requirement - SKIP code is 4.
0004 readonly KSFT_SKIP=4
0005 readonly NS1="ns1-$(mktemp -u XXXXXX)"
0006 readonly NS2="ns2-$(mktemp -u XXXXXX)"
0007 
0008 cleanup()
0009 {
0010         if [ "$?" = "0" ]; then
0011                 echo "selftests: test_xdp_meta [PASS]";
0012         else
0013                 echo "selftests: test_xdp_meta [FAILED]";
0014         fi
0015 
0016         set +e
0017         ip link del veth1 2> /dev/null
0018         ip netns del ${NS1} 2> /dev/null
0019         ip netns del ${NS2} 2> /dev/null
0020 }
0021 
0022 ip link set dev lo xdp off 2>/dev/null > /dev/null
0023 if [ $? -ne 0 ];then
0024         echo "selftests: [SKIP] Could not run test without the ip xdp support"
0025         exit $KSFT_SKIP
0026 fi
0027 set -e
0028 
0029 ip netns add ${NS1}
0030 ip netns add ${NS2}
0031 
0032 trap cleanup 0 2 3 6 9
0033 
0034 ip link add veth1 type veth peer name veth2
0035 
0036 ip link set veth1 netns ${NS1}
0037 ip link set veth2 netns ${NS2}
0038 
0039 ip netns exec ${NS1} ip addr add 10.1.1.11/24 dev veth1
0040 ip netns exec ${NS2} ip addr add 10.1.1.22/24 dev veth2
0041 
0042 ip netns exec ${NS1} tc qdisc add dev veth1 clsact
0043 ip netns exec ${NS2} tc qdisc add dev veth2 clsact
0044 
0045 ip netns exec ${NS1} tc filter add dev veth1 ingress bpf da obj test_xdp_meta.o sec t
0046 ip netns exec ${NS2} tc filter add dev veth2 ingress bpf da obj test_xdp_meta.o sec t
0047 
0048 ip netns exec ${NS1} ip link set dev veth1 xdp obj test_xdp_meta.o sec x
0049 ip netns exec ${NS2} ip link set dev veth2 xdp obj test_xdp_meta.o sec x
0050 
0051 ip netns exec ${NS1} ip link set dev veth1 up
0052 ip netns exec ${NS2} ip link set dev veth2 up
0053 
0054 ip netns exec ${NS1} ping -c 1 10.1.1.22
0055 ip netns exec ${NS2} ping -c 1 10.1.1.11
0056 
0057 exit 0