|
@@ -7,6 +7,7 @@
|
|
|
ret=0
|
|
|
|
|
|
PAUSE_ON_FAIL=${PAUSE_ON_FAIL:=no}
|
|
|
+IP="ip -netns testns"
|
|
|
|
|
|
log_test()
|
|
|
{
|
|
@@ -32,19 +33,19 @@ setup()
|
|
|
{
|
|
|
set -e
|
|
|
ip netns add testns
|
|
|
- ip -netns testns link set dev lo up
|
|
|
+ $IP link set dev lo up
|
|
|
|
|
|
- ip -netns testns link add dummy0 type dummy
|
|
|
- ip -netns testns link set dev dummy0 up
|
|
|
- ip -netns testns address add 198.51.100.1/24 dev dummy0
|
|
|
- ip -netns testns -6 address add 2001:db8:1::1/64 dev dummy0
|
|
|
+ $IP link add dummy0 type dummy
|
|
|
+ $IP link set dev dummy0 up
|
|
|
+ $IP address add 198.51.100.1/24 dev dummy0
|
|
|
+ $IP -6 address add 2001:db8:1::1/64 dev dummy0
|
|
|
set +e
|
|
|
|
|
|
}
|
|
|
|
|
|
cleanup()
|
|
|
{
|
|
|
- ip -netns testns link del dev dummy0 &> /dev/null
|
|
|
+ $IP link del dev dummy0 &> /dev/null
|
|
|
ip netns del testns
|
|
|
}
|
|
|
|
|
@@ -56,19 +57,19 @@ fib_unreg_unicast_test()
|
|
|
setup
|
|
|
|
|
|
echo " Start point"
|
|
|
- ip -netns testns route get fibmatch 198.51.100.2 &> /dev/null
|
|
|
+ $IP route get fibmatch 198.51.100.2 &> /dev/null
|
|
|
log_test $? 0 "IPv4 fibmatch"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:1::2 &> /dev/null
|
|
|
+ $IP -6 route get fibmatch 2001:db8:1::2 &> /dev/null
|
|
|
log_test $? 0 "IPv6 fibmatch"
|
|
|
|
|
|
set -e
|
|
|
- ip -netns testns link del dev dummy0
|
|
|
+ $IP link del dev dummy0
|
|
|
set +e
|
|
|
|
|
|
echo " Nexthop device deleted"
|
|
|
- ip -netns testns route get fibmatch 198.51.100.2 &> /dev/null
|
|
|
+ $IP route get fibmatch 198.51.100.2 &> /dev/null
|
|
|
log_test $? 2 "IPv4 fibmatch - no route"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:1::2 &> /dev/null
|
|
|
+ $IP -6 route get fibmatch 2001:db8:1::2 &> /dev/null
|
|
|
log_test $? 2 "IPv6 fibmatch - no route"
|
|
|
|
|
|
cleanup
|
|
@@ -83,43 +84,43 @@ fib_unreg_multipath_test()
|
|
|
setup
|
|
|
|
|
|
set -e
|
|
|
- ip -netns testns link add dummy1 type dummy
|
|
|
- ip -netns testns link set dev dummy1 up
|
|
|
- ip -netns testns address add 192.0.2.1/24 dev dummy1
|
|
|
- ip -netns testns -6 address add 2001:db8:2::1/64 dev dummy1
|
|
|
+ $IP link add dummy1 type dummy
|
|
|
+ $IP link set dev dummy1 up
|
|
|
+ $IP address add 192.0.2.1/24 dev dummy1
|
|
|
+ $IP -6 address add 2001:db8:2::1/64 dev dummy1
|
|
|
|
|
|
- ip -netns testns route add 203.0.113.0/24 \
|
|
|
+ $IP route add 203.0.113.0/24 \
|
|
|
nexthop via 198.51.100.2 dev dummy0 \
|
|
|
nexthop via 192.0.2.2 dev dummy1
|
|
|
- ip -netns testns -6 route add 2001:db8:3::/64 \
|
|
|
+ $IP -6 route add 2001:db8:3::/64 \
|
|
|
nexthop via 2001:db8:1::2 dev dummy0 \
|
|
|
nexthop via 2001:db8:2::2 dev dummy1
|
|
|
set +e
|
|
|
|
|
|
echo " Start point"
|
|
|
- ip -netns testns route get fibmatch 203.0.113.1 &> /dev/null
|
|
|
+ $IP route get fibmatch 203.0.113.1 &> /dev/null
|
|
|
log_test $? 0 "IPv4 fibmatch"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:3::1 &> /dev/null
|
|
|
+ $IP -6 route get fibmatch 2001:db8:3::1 &> /dev/null
|
|
|
log_test $? 0 "IPv6 fibmatch"
|
|
|
|
|
|
set -e
|
|
|
- ip -netns testns link del dev dummy0
|
|
|
+ $IP link del dev dummy0
|
|
|
set +e
|
|
|
|
|
|
echo " One nexthop device deleted"
|
|
|
- ip -netns testns route get fibmatch 203.0.113.1 &> /dev/null
|
|
|
+ $IP route get fibmatch 203.0.113.1 &> /dev/null
|
|
|
log_test $? 2 "IPv4 - multipath route removed on delete"
|
|
|
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:3::1 &> /dev/null
|
|
|
+ $IP -6 route get fibmatch 2001:db8:3::1 &> /dev/null
|
|
|
# In IPv6 we do not flush the entire multipath route.
|
|
|
log_test $? 0 "IPv6 - multipath down to single path"
|
|
|
|
|
|
set -e
|
|
|
- ip -netns testns link del dev dummy1
|
|
|
+ $IP link del dev dummy1
|
|
|
set +e
|
|
|
|
|
|
echo " Second nexthop device deleted"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:3::1 &> /dev/null
|
|
|
+ $IP -6 route get fibmatch 2001:db8:3::1 &> /dev/null
|
|
|
log_test $? 2 "IPv6 - no route"
|
|
|
|
|
|
cleanup
|
|
@@ -139,19 +140,19 @@ fib_down_unicast_test()
|
|
|
setup
|
|
|
|
|
|
echo " Start point"
|
|
|
- ip -netns testns route get fibmatch 198.51.100.2 &> /dev/null
|
|
|
+ $IP route get fibmatch 198.51.100.2 &> /dev/null
|
|
|
log_test $? 0 "IPv4 fibmatch"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:1::2 &> /dev/null
|
|
|
+ $IP -6 route get fibmatch 2001:db8:1::2 &> /dev/null
|
|
|
log_test $? 0 "IPv6 fibmatch"
|
|
|
|
|
|
set -e
|
|
|
- ip -netns testns link set dev dummy0 down
|
|
|
+ $IP link set dev dummy0 down
|
|
|
set +e
|
|
|
|
|
|
echo " Route deleted on down"
|
|
|
- ip -netns testns route get fibmatch 198.51.100.2 &> /dev/null
|
|
|
+ $IP route get fibmatch 198.51.100.2 &> /dev/null
|
|
|
log_test $? 2 "IPv4 fibmatch"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:1::2 &> /dev/null
|
|
|
+ $IP -6 route get fibmatch 2001:db8:1::2 &> /dev/null
|
|
|
log_test $? 2 "IPv6 fibmatch"
|
|
|
|
|
|
cleanup
|
|
@@ -162,31 +163,31 @@ fib_down_multipath_test_do()
|
|
|
local down_dev=$1
|
|
|
local up_dev=$2
|
|
|
|
|
|
- ip -netns testns route get fibmatch 203.0.113.1 \
|
|
|
+ $IP route get fibmatch 203.0.113.1 \
|
|
|
oif $down_dev &> /dev/null
|
|
|
log_test $? 2 "IPv4 fibmatch on down device"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:3::1 \
|
|
|
+ $IP -6 route get fibmatch 2001:db8:3::1 \
|
|
|
oif $down_dev &> /dev/null
|
|
|
log_test $? 2 "IPv6 fibmatch on down device"
|
|
|
|
|
|
- ip -netns testns route get fibmatch 203.0.113.1 \
|
|
|
+ $IP route get fibmatch 203.0.113.1 \
|
|
|
oif $up_dev &> /dev/null
|
|
|
log_test $? 0 "IPv4 fibmatch on up device"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:3::1 \
|
|
|
+ $IP -6 route get fibmatch 2001:db8:3::1 \
|
|
|
oif $up_dev &> /dev/null
|
|
|
log_test $? 0 "IPv6 fibmatch on up device"
|
|
|
|
|
|
- ip -netns testns route get fibmatch 203.0.113.1 | \
|
|
|
+ $IP route get fibmatch 203.0.113.1 | \
|
|
|
grep $down_dev | grep -q "dead linkdown"
|
|
|
log_test $? 0 "IPv4 flags on down device"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:3::1 | \
|
|
|
+ $IP -6 route get fibmatch 2001:db8:3::1 | \
|
|
|
grep $down_dev | grep -q "dead linkdown"
|
|
|
log_test $? 0 "IPv6 flags on down device"
|
|
|
|
|
|
- ip -netns testns route get fibmatch 203.0.113.1 | \
|
|
|
+ $IP route get fibmatch 203.0.113.1 | \
|
|
|
grep $up_dev | grep -q "dead linkdown"
|
|
|
log_test $? 1 "IPv4 flags on up device"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:3::1 | \
|
|
|
+ $IP -6 route get fibmatch 2001:db8:3::1 | \
|
|
|
grep $up_dev | grep -q "dead linkdown"
|
|
|
log_test $? 1 "IPv6 flags on up device"
|
|
|
}
|
|
@@ -199,53 +200,53 @@ fib_down_multipath_test()
|
|
|
setup
|
|
|
|
|
|
set -e
|
|
|
- ip -netns testns link add dummy1 type dummy
|
|
|
- ip -netns testns link set dev dummy1 up
|
|
|
+ $IP link add dummy1 type dummy
|
|
|
+ $IP link set dev dummy1 up
|
|
|
|
|
|
- ip -netns testns address add 192.0.2.1/24 dev dummy1
|
|
|
- ip -netns testns -6 address add 2001:db8:2::1/64 dev dummy1
|
|
|
+ $IP address add 192.0.2.1/24 dev dummy1
|
|
|
+ $IP -6 address add 2001:db8:2::1/64 dev dummy1
|
|
|
|
|
|
- ip -netns testns route add 203.0.113.0/24 \
|
|
|
+ $IP route add 203.0.113.0/24 \
|
|
|
nexthop via 198.51.100.2 dev dummy0 \
|
|
|
nexthop via 192.0.2.2 dev dummy1
|
|
|
- ip -netns testns -6 route add 2001:db8:3::/64 \
|
|
|
+ $IP -6 route add 2001:db8:3::/64 \
|
|
|
nexthop via 2001:db8:1::2 dev dummy0 \
|
|
|
nexthop via 2001:db8:2::2 dev dummy1
|
|
|
set +e
|
|
|
|
|
|
echo " Verify start point"
|
|
|
- ip -netns testns route get fibmatch 203.0.113.1 &> /dev/null
|
|
|
+ $IP route get fibmatch 203.0.113.1 &> /dev/null
|
|
|
log_test $? 0 "IPv4 fibmatch"
|
|
|
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:3::1 &> /dev/null
|
|
|
+ $IP -6 route get fibmatch 2001:db8:3::1 &> /dev/null
|
|
|
log_test $? 0 "IPv6 fibmatch"
|
|
|
|
|
|
set -e
|
|
|
- ip -netns testns link set dev dummy0 down
|
|
|
+ $IP link set dev dummy0 down
|
|
|
set +e
|
|
|
|
|
|
echo " One device down, one up"
|
|
|
fib_down_multipath_test_do "dummy0" "dummy1"
|
|
|
|
|
|
set -e
|
|
|
- ip -netns testns link set dev dummy0 up
|
|
|
- ip -netns testns link set dev dummy1 down
|
|
|
+ $IP link set dev dummy0 up
|
|
|
+ $IP link set dev dummy1 down
|
|
|
set +e
|
|
|
|
|
|
echo " Other device down and up"
|
|
|
fib_down_multipath_test_do "dummy1" "dummy0"
|
|
|
|
|
|
set -e
|
|
|
- ip -netns testns link set dev dummy0 down
|
|
|
+ $IP link set dev dummy0 down
|
|
|
set +e
|
|
|
|
|
|
echo " Both devices down"
|
|
|
- ip -netns testns route get fibmatch 203.0.113.1 &> /dev/null
|
|
|
+ $IP route get fibmatch 203.0.113.1 &> /dev/null
|
|
|
log_test $? 2 "IPv4 fibmatch"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:3::1 &> /dev/null
|
|
|
+ $IP -6 route get fibmatch 2001:db8:3::1 &> /dev/null
|
|
|
log_test $? 2 "IPv6 fibmatch"
|
|
|
|
|
|
- ip -netns testns link del dev dummy1
|
|
|
+ $IP link del dev dummy1
|
|
|
cleanup
|
|
|
}
|
|
|
|
|
@@ -264,55 +265,55 @@ fib_carrier_local_test()
|
|
|
setup
|
|
|
|
|
|
set -e
|
|
|
- ip -netns testns link set dev dummy0 carrier on
|
|
|
+ $IP link set dev dummy0 carrier on
|
|
|
set +e
|
|
|
|
|
|
echo " Start point"
|
|
|
- ip -netns testns route get fibmatch 198.51.100.1 &> /dev/null
|
|
|
+ $IP route get fibmatch 198.51.100.1 &> /dev/null
|
|
|
log_test $? 0 "IPv4 fibmatch"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:1::1 &> /dev/null
|
|
|
+ $IP -6 route get fibmatch 2001:db8:1::1 &> /dev/null
|
|
|
log_test $? 0 "IPv6 fibmatch"
|
|
|
|
|
|
- ip -netns testns route get fibmatch 198.51.100.1 | \
|
|
|
+ $IP route get fibmatch 198.51.100.1 | \
|
|
|
grep -q "linkdown"
|
|
|
log_test $? 1 "IPv4 - no linkdown flag"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:1::1 | \
|
|
|
+ $IP -6 route get fibmatch 2001:db8:1::1 | \
|
|
|
grep -q "linkdown"
|
|
|
log_test $? 1 "IPv6 - no linkdown flag"
|
|
|
|
|
|
set -e
|
|
|
- ip -netns testns link set dev dummy0 carrier off
|
|
|
+ $IP link set dev dummy0 carrier off
|
|
|
sleep 1
|
|
|
set +e
|
|
|
|
|
|
echo " Carrier off on nexthop"
|
|
|
- ip -netns testns route get fibmatch 198.51.100.1 &> /dev/null
|
|
|
+ $IP route get fibmatch 198.51.100.1 &> /dev/null
|
|
|
log_test $? 0 "IPv4 fibmatch"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:1::1 &> /dev/null
|
|
|
+ $IP -6 route get fibmatch 2001:db8:1::1 &> /dev/null
|
|
|
log_test $? 0 "IPv6 fibmatch"
|
|
|
|
|
|
- ip -netns testns route get fibmatch 198.51.100.1 | \
|
|
|
+ $IP route get fibmatch 198.51.100.1 | \
|
|
|
grep -q "linkdown"
|
|
|
log_test $? 1 "IPv4 - linkdown flag set"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:1::1 | \
|
|
|
+ $IP -6 route get fibmatch 2001:db8:1::1 | \
|
|
|
grep -q "linkdown"
|
|
|
log_test $? 1 "IPv6 - linkdown flag set"
|
|
|
|
|
|
set -e
|
|
|
- ip -netns testns address add 192.0.2.1/24 dev dummy0
|
|
|
- ip -netns testns -6 address add 2001:db8:2::1/64 dev dummy0
|
|
|
+ $IP address add 192.0.2.1/24 dev dummy0
|
|
|
+ $IP -6 address add 2001:db8:2::1/64 dev dummy0
|
|
|
set +e
|
|
|
|
|
|
echo " Route to local address with carrier down"
|
|
|
- ip -netns testns route get fibmatch 192.0.2.1 &> /dev/null
|
|
|
+ $IP route get fibmatch 192.0.2.1 &> /dev/null
|
|
|
log_test $? 0 "IPv4 fibmatch"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:2::1 &> /dev/null
|
|
|
+ $IP -6 route get fibmatch 2001:db8:2::1 &> /dev/null
|
|
|
log_test $? 0 "IPv6 fibmatch"
|
|
|
|
|
|
- ip -netns testns route get fibmatch 192.0.2.1 | \
|
|
|
+ $IP route get fibmatch 192.0.2.1 | \
|
|
|
grep -q "linkdown"
|
|
|
log_test $? 1 "IPv4 linkdown flag set"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:2::1 | \
|
|
|
+ $IP -6 route get fibmatch 2001:db8:2::1 | \
|
|
|
grep -q "linkdown"
|
|
|
log_test $? 1 "IPv6 linkdown flag set"
|
|
|
|
|
@@ -329,54 +330,54 @@ fib_carrier_unicast_test()
|
|
|
setup
|
|
|
|
|
|
set -e
|
|
|
- ip -netns testns link set dev dummy0 carrier on
|
|
|
+ $IP link set dev dummy0 carrier on
|
|
|
set +e
|
|
|
|
|
|
echo " Start point"
|
|
|
- ip -netns testns route get fibmatch 198.51.100.2 &> /dev/null
|
|
|
+ $IP route get fibmatch 198.51.100.2 &> /dev/null
|
|
|
log_test $? 0 "IPv4 fibmatch"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:1::2 &> /dev/null
|
|
|
+ $IP -6 route get fibmatch 2001:db8:1::2 &> /dev/null
|
|
|
log_test $? 0 "IPv6 fibmatch"
|
|
|
|
|
|
- ip -netns testns route get fibmatch 198.51.100.2 | \
|
|
|
+ $IP route get fibmatch 198.51.100.2 | \
|
|
|
grep -q "linkdown"
|
|
|
log_test $? 1 "IPv4 no linkdown flag"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:1::2 | \
|
|
|
+ $IP -6 route get fibmatch 2001:db8:1::2 | \
|
|
|
grep -q "linkdown"
|
|
|
log_test $? 1 "IPv6 no linkdown flag"
|
|
|
|
|
|
set -e
|
|
|
- ip -netns testns link set dev dummy0 carrier off
|
|
|
+ $IP link set dev dummy0 carrier off
|
|
|
set +e
|
|
|
|
|
|
echo " Carrier down"
|
|
|
- ip -netns testns route get fibmatch 198.51.100.2 &> /dev/null
|
|
|
+ $IP route get fibmatch 198.51.100.2 &> /dev/null
|
|
|
log_test $? 0 "IPv4 fibmatch"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:1::2 &> /dev/null
|
|
|
+ $IP -6 route get fibmatch 2001:db8:1::2 &> /dev/null
|
|
|
log_test $? 0 "IPv6 fibmatch"
|
|
|
|
|
|
- ip -netns testns route get fibmatch 198.51.100.2 | \
|
|
|
+ $IP route get fibmatch 198.51.100.2 | \
|
|
|
grep -q "linkdown"
|
|
|
log_test $? 0 "IPv4 linkdown flag set"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:1::2 | \
|
|
|
+ $IP -6 route get fibmatch 2001:db8:1::2 | \
|
|
|
grep -q "linkdown"
|
|
|
log_test $? 0 "IPv6 linkdown flag set"
|
|
|
|
|
|
set -e
|
|
|
- ip -netns testns address add 192.0.2.1/24 dev dummy0
|
|
|
- ip -netns testns -6 address add 2001:db8:2::1/64 dev dummy0
|
|
|
+ $IP address add 192.0.2.1/24 dev dummy0
|
|
|
+ $IP -6 address add 2001:db8:2::1/64 dev dummy0
|
|
|
set +e
|
|
|
|
|
|
echo " Second address added with carrier down"
|
|
|
- ip -netns testns route get fibmatch 192.0.2.2 &> /dev/null
|
|
|
+ $IP route get fibmatch 192.0.2.2 &> /dev/null
|
|
|
log_test $? 0 "IPv4 fibmatch"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:2::2 &> /dev/null
|
|
|
+ $IP -6 route get fibmatch 2001:db8:2::2 &> /dev/null
|
|
|
log_test $? 0 "IPv6 fibmatch"
|
|
|
|
|
|
- ip -netns testns route get fibmatch 192.0.2.2 | \
|
|
|
+ $IP route get fibmatch 192.0.2.2 | \
|
|
|
grep -q "linkdown"
|
|
|
log_test $? 0 "IPv4 linkdown flag set"
|
|
|
- ip -netns testns -6 route get fibmatch 2001:db8:2::2 | \
|
|
|
+ $IP -6 route get fibmatch 2001:db8:2::2 | \
|
|
|
grep -q "linkdown"
|
|
|
log_test $? 0 "IPv6 linkdown flag set"
|
|
|
|