122c88526SDaniel Borkmann#!/bin/sh 222c88526SDaniel Borkmann 3*98af3746SWang YufenBPF_FILE="test_xdp_meta.bpf.o" 4d4b6f87eSPo-Hsu Lin# Kselftest framework requirement - SKIP code is 4. 5d4b6f87eSPo-Hsu Linreadonly KSFT_SKIP=4 636d9970eSHangbin Liureadonly NS1="ns1-$(mktemp -u XXXXXX)" 736d9970eSHangbin Liureadonly NS2="ns2-$(mktemp -u XXXXXX)" 8d4b6f87eSPo-Hsu Lin 922c88526SDaniel Borkmanncleanup() 1022c88526SDaniel Borkmann{ 1122c88526SDaniel Borkmann if [ "$?" = "0" ]; then 1222c88526SDaniel Borkmann echo "selftests: test_xdp_meta [PASS]"; 1322c88526SDaniel Borkmann else 1422c88526SDaniel Borkmann echo "selftests: test_xdp_meta [FAILED]"; 1522c88526SDaniel Borkmann fi 1622c88526SDaniel Borkmann 1722c88526SDaniel Borkmann set +e 187b4eb53dSYonghong Song ip link del veth1 2> /dev/null 1936d9970eSHangbin Liu ip netns del ${NS1} 2> /dev/null 2036d9970eSHangbin Liu ip netns del ${NS2} 2> /dev/null 2122c88526SDaniel Borkmann} 2222c88526SDaniel Borkmann 2322c88526SDaniel Borkmannip link set dev lo xdp off 2>/dev/null > /dev/null 2422c88526SDaniel Borkmannif [ $? -ne 0 ];then 2522c88526SDaniel Borkmann echo "selftests: [SKIP] Could not run test without the ip xdp support" 26d4b6f87eSPo-Hsu Lin exit $KSFT_SKIP 2722c88526SDaniel Borkmannfi 2822c88526SDaniel Borkmannset -e 2922c88526SDaniel Borkmann 3036d9970eSHangbin Liuip netns add ${NS1} 3136d9970eSHangbin Liuip netns add ${NS2} 3222c88526SDaniel Borkmann 3322c88526SDaniel Borkmanntrap cleanup 0 2 3 6 9 3422c88526SDaniel Borkmann 3522c88526SDaniel Borkmannip link add veth1 type veth peer name veth2 3622c88526SDaniel Borkmann 3736d9970eSHangbin Liuip link set veth1 netns ${NS1} 3836d9970eSHangbin Liuip link set veth2 netns ${NS2} 3922c88526SDaniel Borkmann 4036d9970eSHangbin Liuip netns exec ${NS1} ip addr add 10.1.1.11/24 dev veth1 4136d9970eSHangbin Liuip netns exec ${NS2} ip addr add 10.1.1.22/24 dev veth2 4222c88526SDaniel Borkmann 4336d9970eSHangbin Liuip netns exec ${NS1} tc qdisc add dev veth1 clsact 4436d9970eSHangbin Liuip netns exec ${NS2} tc qdisc add dev veth2 clsact 4522c88526SDaniel Borkmann 46*98af3746SWang Yufenip netns exec ${NS1} tc filter add dev veth1 ingress bpf da obj ${BPF_FILE} sec t 47*98af3746SWang Yufenip netns exec ${NS2} tc filter add dev veth2 ingress bpf da obj ${BPF_FILE} sec t 4822c88526SDaniel Borkmann 49*98af3746SWang Yufenip netns exec ${NS1} ip link set dev veth1 xdp obj ${BPF_FILE} sec x 50*98af3746SWang Yufenip netns exec ${NS2} ip link set dev veth2 xdp obj ${BPF_FILE} sec x 5122c88526SDaniel Borkmann 5236d9970eSHangbin Liuip netns exec ${NS1} ip link set dev veth1 up 5336d9970eSHangbin Liuip netns exec ${NS2} ip link set dev veth2 up 5422c88526SDaniel Borkmann 5536d9970eSHangbin Liuip netns exec ${NS1} ping -c 1 10.1.1.22 5636d9970eSHangbin Liuip netns exec ${NS2} ping -c 1 10.1.1.11 5722c88526SDaniel Borkmann 5822c88526SDaniel Borkmannexit 0 59