Skip to content

Commit

Permalink
selftests: rtnetlink: add erspan and ip6erspan
Browse files Browse the repository at this point in the history
Add test cases for ipv4, ipv6 erspan, v1 and v2 native mode
and external (collect metadata) mode.

Signed-off-by: William Tu <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
williamtu authored and davem330 committed Jan 2, 2018
1 parent ac0b715 commit ef27e2c
Showing 1 changed file with 131 additions and 0 deletions.
131 changes: 131 additions & 0 deletions tools/testing/selftests/net/rtnetlink.sh
Original file line number Diff line number Diff line change
Expand Up @@ -598,6 +598,135 @@ kci_test_ip6gretap()
ip netns del "$testns"
}

kci_test_erspan()
{
testns="testns"
DEV_NS=erspan00
ret=0

ip link help erspan 2>&1 | grep -q "^Usage:"
if [ $? -ne 0 ];then
echo "SKIP: erspan: iproute2 too old"
return 1
fi

ip netns add "$testns"
if [ $? -ne 0 ]; then
echo "SKIP erspan tests: cannot add net namespace $testns"
return 1
fi

# test native tunnel erspan v1
ip netns exec "$testns" ip link add dev "$DEV_NS" type erspan seq \
key 102 local 172.16.1.100 remote 172.16.1.200 \
erspan_ver 1 erspan 488
check_err $?

ip netns exec "$testns" ip addr add dev "$DEV_NS" 10.1.1.100/24
check_err $?

ip netns exec "$testns" ip link set dev $DEV_NS up
check_err $?

ip netns exec "$testns" ip link del "$DEV_NS"
check_err $?

# test native tunnel erspan v2
ip netns exec "$testns" ip link add dev "$DEV_NS" type erspan seq \
key 102 local 172.16.1.100 remote 172.16.1.200 \
erspan_ver 2 erspan_dir ingress erspan_hwid 7
check_err $?

ip netns exec "$testns" ip addr add dev "$DEV_NS" 10.1.1.100/24
check_err $?

ip netns exec "$testns" ip link set dev $DEV_NS up
check_err $?

ip netns exec "$testns" ip link del "$DEV_NS"
check_err $?

# test external mode
ip netns exec "$testns" ip link add dev "$DEV_NS" type erspan external
check_err $?

ip netns exec "$testns" ip link del "$DEV_NS"
check_err $?

if [ $ret -ne 0 ]; then
echo "FAIL: erspan"
return 1
fi
echo "PASS: erspan"

ip netns del "$testns"
}

kci_test_ip6erspan()
{
testns="testns"
DEV_NS=ip6erspan00
ret=0

ip link help ip6erspan 2>&1 | grep -q "^Usage:"
if [ $? -ne 0 ];then
echo "SKIP: ip6erspan: iproute2 too old"
return 1
fi

ip netns add "$testns"
if [ $? -ne 0 ]; then
echo "SKIP ip6erspan tests: cannot add net namespace $testns"
return 1
fi

# test native tunnel ip6erspan v1
ip netns exec "$testns" ip link add dev "$DEV_NS" type ip6erspan seq \
key 102 local fc00:100::1 remote fc00:100::2 \
erspan_ver 1 erspan 488
check_err $?

ip netns exec "$testns" ip addr add dev "$DEV_NS" 10.1.1.100/24
check_err $?

ip netns exec "$testns" ip link set dev $DEV_NS up
check_err $?

ip netns exec "$testns" ip link del "$DEV_NS"
check_err $?

# test native tunnel ip6erspan v2
ip netns exec "$testns" ip link add dev "$DEV_NS" type ip6erspan seq \
key 102 local fc00:100::1 remote fc00:100::2 \
erspan_ver 2 erspan_dir ingress erspan_hwid 7
check_err $?

ip netns exec "$testns" ip addr add dev "$DEV_NS" 10.1.1.100/24
check_err $?

ip netns exec "$testns" ip link set dev $DEV_NS up
check_err $?

ip netns exec "$testns" ip link del "$DEV_NS"
check_err $?

# test external mode
ip netns exec "$testns" ip link add dev "$DEV_NS" \
type ip6erspan external
check_err $?

ip netns exec "$testns" ip link del "$DEV_NS"
check_err $?

if [ $ret -ne 0 ]; then
echo "FAIL: ip6erspan"
return 1
fi
echo "PASS: ip6erspan"

ip netns del "$testns"
}

kci_test_rtnl()
{
kci_add_dummy
Expand All @@ -612,6 +741,8 @@ kci_test_rtnl()
kci_test_gre
kci_test_gretap
kci_test_ip6gretap
kci_test_erspan
kci_test_ip6erspan
kci_test_bridge
kci_test_addrlabel
kci_test_ifalias
Expand Down

0 comments on commit ef27e2c

Please sign in to comment.