2 # SPDX-License-Identifier: GPL-2.0
8 # veth0 <---|---> veth1
9 # Validate source address selection for route without gateway
16 ################################################################################
25 if [ ${rc} -eq ${expected} ]; then
26 printf "TEST: %-60s [ OK ]\n" "${msg}"
27 nsuccess
=$
((nsuccess
+1))
31 printf "TEST: %-60s [FAIL]\n" "${msg}"
32 if [ "${PAUSE_ON_FAIL}" = "yes" ]; then
34 echo "hit enter to continue, 'q' to quit"
36 [ "$a" = "q" ] && exit 1
40 [ "$VERBOSE" = "1" ] && echo
49 if [ "$VERBOSE" = "1" ]; then
55 if [ "$VERBOSE" = "1" -a -n "$out" ]; then
59 [ "$VERBOSE" = "1" ] && echo
64 ################################################################################
70 # Add a fake eth0 to support an ip address
71 ip
-n $h1 link add name eth0
type dummy
72 ip
-n $h1 link
set eth0 up
73 ip
-n $h1 address add
192.168.0.1/24 dev eth0
75 # Configure veths (same @mac, arp off)
76 ip
-n $h1 link add name veth0
type veth peer name veth1 netns
$h2
77 ip
-n $h1 link
set veth0 up
79 ip
-n $h2 link
set veth1 up
81 # Configure @IP in the peer netns
82 ip
-n $h2 address add
192.168.1.1/32 dev veth1
83 ip
-n $h2 route add default dev veth1
85 # Add a nexthop without @gw and use it in a route
86 ip
-n $h1 nexthop add id
1 dev veth0
87 ip
-n $h1 route add
192.168.1.1 nhid
1
97 ################################################################################
103 p
) PAUSE_ON_FAIL
=yes;;
110 run_cmd ip
-netns $h1 route get
192.168.1.1
111 log_test $?
0 "nexthop: get route with nexthop without gw"
112 run_cmd ip netns
exec $h1 ping -c1 192.168.1.1
113 log_test $?
0 "nexthop: ping through nexthop without gw"