Skip to content

Commit 4f5f148

Browse files
rbmarlierekuba-moo
authored andcommitted
selftests: net: fib-onlink-tests: Convert to use namespaces by default
Currently, the test breaks if the SUT already has a default route configured for IPv6. Fix by avoiding the use of the default namespace. Fixes: 4ed591c ("net/ipv6: Allow onlink routes to have a device mismatch if it is the default route") Suggested-by: Fernando Fernandez Mancera <fmancera@suse.de> Signed-off-by: Ricardo B. Marlière <rbm@suse.com> Reviewed-by: Ido Schimmel <idosch@nvidia.com> Reviewed-by: Fernando Fernandez Mancera <fmancera@suse.de> Link: https://patch.msgid.link/20260113-selftests-net-fib-onlink-v2-1-89de2b931389@suse.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent 4d10edf commit 4f5f148

1 file changed

Lines changed: 30 additions & 41 deletions

File tree

tools/testing/selftests/net/fib-onlink-tests.sh

Lines changed: 30 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ log_subsection()
120120

121121
run_cmd()
122122
{
123-
local cmd="$*"
123+
local cmd="$1"
124124
local out
125125
local rc
126126

@@ -145,7 +145,7 @@ get_linklocal()
145145
local pfx
146146
local addr
147147

148-
addr=$(${pfx} ip -6 -br addr show dev ${dev} | \
148+
addr=$(${pfx} ${IP} -6 -br addr show dev ${dev} | \
149149
awk '{
150150
for (i = 3; i <= NF; ++i) {
151151
if ($i ~ /^fe80/)
@@ -173,58 +173,48 @@ setup()
173173

174174
set -e
175175

176-
# create namespace
177-
setup_ns PEER_NS
176+
# create namespaces
177+
setup_ns ns1
178+
IP="ip -netns $ns1"
179+
setup_ns ns2
178180

179181
# add vrf table
180-
ip li add ${VRF} type vrf table ${VRF_TABLE}
181-
ip li set ${VRF} up
182-
ip ro add table ${VRF_TABLE} unreachable default metric 8192
183-
ip -6 ro add table ${VRF_TABLE} unreachable default metric 8192
182+
${IP} li add ${VRF} type vrf table ${VRF_TABLE}
183+
${IP} li set ${VRF} up
184+
${IP} ro add table ${VRF_TABLE} unreachable default metric 8192
185+
${IP} -6 ro add table ${VRF_TABLE} unreachable default metric 8192
184186

185187
# create test interfaces
186-
ip li add ${NETIFS[p1]} type veth peer name ${NETIFS[p2]}
187-
ip li add ${NETIFS[p3]} type veth peer name ${NETIFS[p4]}
188-
ip li add ${NETIFS[p5]} type veth peer name ${NETIFS[p6]}
189-
ip li add ${NETIFS[p7]} type veth peer name ${NETIFS[p8]}
188+
${IP} li add ${NETIFS[p1]} type veth peer name ${NETIFS[p2]}
189+
${IP} li add ${NETIFS[p3]} type veth peer name ${NETIFS[p4]}
190+
${IP} li add ${NETIFS[p5]} type veth peer name ${NETIFS[p6]}
191+
${IP} li add ${NETIFS[p7]} type veth peer name ${NETIFS[p8]}
190192

191193
# enslave vrf interfaces
192194
for n in 5 7; do
193-
ip li set ${NETIFS[p${n}]} vrf ${VRF}
195+
${IP} li set ${NETIFS[p${n}]} vrf ${VRF}
194196
done
195197

196198
# add addresses
197199
for n in 1 3 5 7; do
198-
ip li set ${NETIFS[p${n}]} up
199-
ip addr add ${V4ADDRS[p${n}]}/24 dev ${NETIFS[p${n}]}
200-
ip addr add ${V6ADDRS[p${n}]}/64 dev ${NETIFS[p${n}]} nodad
200+
${IP} li set ${NETIFS[p${n}]} up
201+
${IP} addr add ${V4ADDRS[p${n}]}/24 dev ${NETIFS[p${n}]}
202+
${IP} addr add ${V6ADDRS[p${n}]}/64 dev ${NETIFS[p${n}]} nodad
201203
done
202204

203205
# move peer interfaces to namespace and add addresses
204206
for n in 2 4 6 8; do
205-
ip li set ${NETIFS[p${n}]} netns ${PEER_NS} up
206-
ip -netns ${PEER_NS} addr add ${V4ADDRS[p${n}]}/24 dev ${NETIFS[p${n}]}
207-
ip -netns ${PEER_NS} addr add ${V6ADDRS[p${n}]}/64 dev ${NETIFS[p${n}]} nodad
207+
${IP} li set ${NETIFS[p${n}]} netns ${ns2} up
208+
ip -netns $ns2 addr add ${V4ADDRS[p${n}]}/24 dev ${NETIFS[p${n}]}
209+
ip -netns $ns2 addr add ${V6ADDRS[p${n}]}/64 dev ${NETIFS[p${n}]} nodad
208210
done
209211

210-
ip -6 ro add default via ${V6ADDRS[p3]/::[0-9]/::64}
211-
ip -6 ro add table ${VRF_TABLE} default via ${V6ADDRS[p7]/::[0-9]/::64}
212+
${IP} -6 ro add default via ${V6ADDRS[p3]/::[0-9]/::64}
213+
${IP} -6 ro add table ${VRF_TABLE} default via ${V6ADDRS[p7]/::[0-9]/::64}
212214

213215
set +e
214216
}
215217

216-
cleanup()
217-
{
218-
# make sure we start from a clean slate
219-
cleanup_ns ${PEER_NS} 2>/dev/null
220-
for n in 1 3 5 7; do
221-
ip link del ${NETIFS[p${n}]} 2>/dev/null
222-
done
223-
ip link del ${VRF} 2>/dev/null
224-
ip ro flush table ${VRF_TABLE}
225-
ip -6 ro flush table ${VRF_TABLE}
226-
}
227-
228218
################################################################################
229219
# IPv4 tests
230220
#
@@ -241,7 +231,7 @@ run_ip()
241231
# dev arg may be empty
242232
[ -n "${dev}" ] && dev="dev ${dev}"
243233

244-
run_cmd ip ro add table "${table}" "${prefix}"/32 via "${gw}" "${dev}" onlink
234+
run_cmd "${IP} ro add table ${table} ${prefix}/32 via ${gw} ${dev} onlink"
245235
log_test $? ${exp_rc} "${desc}"
246236
}
247237

@@ -257,8 +247,8 @@ run_ip_mpath()
257247
# dev arg may be empty
258248
[ -n "${dev}" ] && dev="dev ${dev}"
259249

260-
run_cmd ip ro add table "${table}" "${prefix}"/32 \
261-
nexthop via ${nh1} nexthop via ${nh2}
250+
run_cmd "${IP} ro add table ${table} ${prefix}/32 \
251+
nexthop via ${nh1} nexthop via ${nh2}"
262252
log_test $? ${exp_rc} "${desc}"
263253
}
264254

@@ -339,7 +329,7 @@ run_ip6()
339329
# dev arg may be empty
340330
[ -n "${dev}" ] && dev="dev ${dev}"
341331

342-
run_cmd ip -6 ro add table "${table}" "${prefix}"/128 via "${gw}" "${dev}" onlink
332+
run_cmd "${IP} -6 ro add table ${table} ${prefix}/128 via ${gw} ${dev} onlink"
343333
log_test $? ${exp_rc} "${desc}"
344334
}
345335

@@ -353,8 +343,8 @@ run_ip6_mpath()
353343
local exp_rc="$6"
354344
local desc="$7"
355345

356-
run_cmd ip -6 ro add table "${table}" "${prefix}"/128 "${opts}" \
357-
nexthop via ${nh1} nexthop via ${nh2}
346+
run_cmd "${IP} -6 ro add table ${table} ${prefix}/128 ${opts} \
347+
nexthop via ${nh1} nexthop via ${nh2}"
358348
log_test $? ${exp_rc} "${desc}"
359349
}
360350

@@ -491,10 +481,9 @@ do
491481
esac
492482
done
493483

494-
cleanup
495484
setup
496485
run_onlink_tests
497-
cleanup
486+
cleanup_ns ${ns1} ${ns2}
498487

499488
if [ "$TESTS" != "none" ]; then
500489
printf "\nTests passed: %3d\n" ${nsuccess}

0 commit comments

Comments
 (0)