mirror of https://gitee.com/openkylin/linux.git
selftests: fib_tests: Add tests for ipv6 gateway with ipv4 route
Add tests for ipv6 gateway with ipv4 route. Tests include basic single path with ping to verify connectivity and multipath. Signed-off-by: David Ahern <dsahern@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d15662682d
commit
228ddb3315
|
@ -9,7 +9,8 @@ ret=0
|
|||
ksft_skip=4
|
||||
|
||||
# all tests in this script. Can be overridden with -t option
|
||||
TESTS="unregister down carrier nexthop ipv6_rt ipv4_rt ipv6_addr_metric ipv4_addr_metric ipv6_route_metrics ipv4_route_metrics"
|
||||
TESTS="unregister down carrier nexthop ipv6_rt ipv4_rt ipv6_addr_metric ipv4_addr_metric ipv6_route_metrics ipv4_route_metrics ipv4_route_v6_gw"
|
||||
|
||||
VERBOSE=0
|
||||
PAUSE_ON_FAIL=no
|
||||
PAUSE=no
|
||||
|
@ -48,6 +49,7 @@ setup()
|
|||
{
|
||||
set -e
|
||||
ip netns add ns1
|
||||
ip netns set ns1 auto
|
||||
$IP link set dev lo up
|
||||
ip netns exec ns1 sysctl -qw net.ipv4.ip_forward=1
|
||||
ip netns exec ns1 sysctl -qw net.ipv6.conf.all.forwarding=1
|
||||
|
@ -698,6 +700,7 @@ route_setup()
|
|||
set -e
|
||||
|
||||
ip netns add ns2
|
||||
ip netns set ns2 auto
|
||||
ip -netns ns2 link set dev lo up
|
||||
ip netns exec ns2 sysctl -qw net.ipv4.ip_forward=1
|
||||
ip netns exec ns2 sysctl -qw net.ipv6.conf.all.forwarding=1
|
||||
|
@ -1442,6 +1445,70 @@ ipv4_route_metrics_test()
|
|||
route_cleanup
|
||||
}
|
||||
|
||||
ipv4_route_v6_gw_test()
|
||||
{
|
||||
local rc
|
||||
|
||||
echo
|
||||
echo "IPv4 route with IPv6 gateway tests"
|
||||
|
||||
route_setup
|
||||
sleep 2
|
||||
|
||||
#
|
||||
# single path route
|
||||
#
|
||||
run_cmd "$IP ro add 172.16.104.0/24 via inet6 2001:db8:101::2"
|
||||
rc=$?
|
||||
log_test $rc 0 "Single path route with IPv6 gateway"
|
||||
if [ $rc -eq 0 ]; then
|
||||
check_route "172.16.104.0/24 via inet6 2001:db8:101::2 dev veth1"
|
||||
fi
|
||||
|
||||
run_cmd "ip netns exec ns1 ping -w1 -c1 172.16.104.1"
|
||||
log_test $rc 0 "Single path route with IPv6 gateway - ping"
|
||||
|
||||
run_cmd "$IP ro del 172.16.104.0/24 via inet6 2001:db8:101::2"
|
||||
rc=$?
|
||||
log_test $rc 0 "Single path route delete"
|
||||
if [ $rc -eq 0 ]; then
|
||||
check_route "172.16.112.0/24"
|
||||
fi
|
||||
|
||||
#
|
||||
# multipath - v6 then v4
|
||||
#
|
||||
run_cmd "$IP ro add 172.16.104.0/24 nexthop via inet6 2001:db8:101::2 dev veth1 nexthop via 172.16.103.2 dev veth3"
|
||||
rc=$?
|
||||
log_test $rc 0 "Multipath route add - v6 nexthop then v4"
|
||||
if [ $rc -eq 0 ]; then
|
||||
check_route "172.16.104.0/24 nexthop via inet6 2001:db8:101::2 dev veth1 weight 1 nexthop via 172.16.103.2 dev veth3 weight 1"
|
||||
fi
|
||||
|
||||
run_cmd "$IP ro del 172.16.104.0/24 nexthop via 172.16.103.2 dev veth3 nexthop via inet6 2001:db8:101::2 dev veth1"
|
||||
log_test $? 2 " Multipath route delete - nexthops in wrong order"
|
||||
|
||||
run_cmd "$IP ro del 172.16.104.0/24 nexthop via inet6 2001:db8:101::2 dev veth1 nexthop via 172.16.103.2 dev veth3"
|
||||
log_test $? 0 " Multipath route delete exact match"
|
||||
|
||||
#
|
||||
# multipath - v4 then v6
|
||||
#
|
||||
run_cmd "$IP ro add 172.16.104.0/24 nexthop via 172.16.103.2 dev veth3 nexthop via inet6 2001:db8:101::2 dev veth1"
|
||||
rc=$?
|
||||
log_test $rc 0 "Multipath route add - v4 nexthop then v6"
|
||||
if [ $rc -eq 0 ]; then
|
||||
check_route "172.16.104.0/24 nexthop via 172.16.103.2 dev veth3 weight 1 nexthop via inet6 2001:db8:101::2 dev veth1 weight 1"
|
||||
fi
|
||||
|
||||
run_cmd "$IP ro del 172.16.104.0/24 nexthop via inet6 2001:db8:101::2 dev veth1 nexthop via 172.16.103.2 dev veth3"
|
||||
log_test $? 2 " Multipath route delete - nexthops in wrong order"
|
||||
|
||||
run_cmd "$IP ro del 172.16.104.0/24 nexthop via 172.16.103.2 dev veth3 nexthop via inet6 2001:db8:101::2 dev veth1"
|
||||
log_test $? 0 " Multipath route delete exact match"
|
||||
|
||||
route_cleanup
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# usage
|
||||
|
@ -1511,6 +1578,7 @@ do
|
|||
ipv4_addr_metric) ipv4_addr_metric_test;;
|
||||
ipv6_route_metrics) ipv6_route_metrics_test;;
|
||||
ipv4_route_metrics) ipv4_route_metrics_test;;
|
||||
ipv4_route_v6_gw) ipv4_route_v6_gw_test;;
|
||||
|
||||
help) echo "Test names: $TESTS"; exit 0;;
|
||||
esac
|
||||
|
|
Loading…
Reference in New Issue