Skip to content

Commit 976fd1f

Browse files
liuhangbindavem330
authored andcommitted
selftests/net: convert xfrm_policy.sh to run it in unique namespace
Here is the test result after conversion. # ./xfrm_policy.sh PASS: policy before exception matches PASS: ping to .254 bypassed ipsec tunnel (exceptions) PASS: direct policy matches (exceptions) PASS: policy matches (exceptions) PASS: ping to .254 bypassed ipsec tunnel (exceptions and block policies) PASS: direct policy matches (exceptions and block policies) PASS: policy matches (exceptions and block policies) PASS: ping to .254 bypassed ipsec tunnel (exceptions and block policies after hresh changes) PASS: direct policy matches (exceptions and block policies after hresh changes) PASS: policy matches (exceptions and block policies after hresh changes) PASS: ping to .254 bypassed ipsec tunnel (exceptions and block policies after hthresh change in ns3) PASS: direct policy matches (exceptions and block policies after hthresh change in ns3) PASS: policy matches (exceptions and block policies after hthresh change in ns3) PASS: ping to .254 bypassed ipsec tunnel (exceptions and block policies after htresh change to normal) PASS: direct policy matches (exceptions and block policies after htresh change to normal) PASS: policy matches (exceptions and block policies after htresh change to normal) PASS: policies with repeated htresh change Acked-by: David Ahern <[email protected]> Signed-off-by: Hangbin Liu <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 098f1ce commit 976fd1f

File tree

1 file changed

+69
-69
lines changed

1 file changed

+69
-69
lines changed

tools/testing/selftests/net/xfrm_policy.sh

Lines changed: 69 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@
1818
# ns1: ping 10.0.2.254: does NOT pass via ipsec tunnel (exception)
1919
# ns2: ping 10.0.1.254: does NOT pass via ipsec tunnel (exception)
2020

21-
# Kselftest framework requirement - SKIP code is 4.
22-
ksft_skip=4
21+
source lib.sh
2322
ret=0
2423
policy_checks_ok=1
2524

@@ -204,24 +203,24 @@ check_xfrm() {
204203
ip=$2
205204
local lret=0
206205

207-
ip netns exec ns1 ping -q -c 1 10.0.2.$ip > /dev/null
206+
ip netns exec ${ns[1]} ping -q -c 1 10.0.2.$ip > /dev/null
208207

209-
check_ipt_policy_count ns3
208+
check_ipt_policy_count ${ns[3]}
210209
if [ $? -ne $rval ] ; then
211210
lret=1
212211
fi
213-
check_ipt_policy_count ns4
212+
check_ipt_policy_count ${ns[4]}
214213
if [ $? -ne $rval ] ; then
215214
lret=1
216215
fi
217216

218-
ip netns exec ns2 ping -q -c 1 10.0.1.$ip > /dev/null
217+
ip netns exec ${ns[2]} ping -q -c 1 10.0.1.$ip > /dev/null
219218

220-
check_ipt_policy_count ns3
219+
check_ipt_policy_count ${ns[3]}
221220
if [ $? -ne $rval ] ; then
222221
lret=1
223222
fi
224-
check_ipt_policy_count ns4
223+
check_ipt_policy_count ${ns[4]}
225224
if [ $? -ne $rval ] ; then
226225
lret=1
227226
fi
@@ -270,11 +269,11 @@ check_hthresh_repeat()
270269
i=0
271270

272271
for i in $(seq 1 10);do
273-
ip -net ns1 xfrm policy update src e000:0001::0000 dst ff01::0014:0000:0001 dir in tmpl src :: dst :: proto esp mode tunnel priority 100 action allow || break
274-
ip -net ns1 xfrm policy set hthresh6 0 28 || break
272+
ip -net ${ns[1]} xfrm policy update src e000:0001::0000 dst ff01::0014:0000:0001 dir in tmpl src :: dst :: proto esp mode tunnel priority 100 action allow || break
273+
ip -net ${ns[1]} xfrm policy set hthresh6 0 28 || break
275274

276-
ip -net ns1 xfrm policy update src e000:0001::0000 dst ff01::01 dir in tmpl src :: dst :: proto esp mode tunnel priority 100 action allow || break
277-
ip -net ns1 xfrm policy set hthresh6 0 28 || break
275+
ip -net ${ns[1]} xfrm policy update src e000:0001::0000 dst ff01::01 dir in tmpl src :: dst :: proto esp mode tunnel priority 100 action allow || break
276+
ip -net ${ns[1]} xfrm policy set hthresh6 0 28 || break
278277
done
279278

280279
if [ $i -ne 10 ] ;then
@@ -347,79 +346,80 @@ if [ $? -ne 0 ];then
347346
exit $ksft_skip
348347
fi
349348

350-
for i in 1 2 3 4; do
351-
ip netns add ns$i
352-
ip -net ns$i link set lo up
353-
done
349+
setup_ns ns1 ns2 ns3 ns4
350+
ns[1]=$ns1
351+
ns[2]=$ns2
352+
ns[3]=$ns3
353+
ns[4]=$ns4
354354

355355
DEV=veth0
356-
ip link add $DEV netns ns1 type veth peer name eth1 netns ns3
357-
ip link add $DEV netns ns2 type veth peer name eth1 netns ns4
356+
ip link add $DEV netns ${ns[1]} type veth peer name eth1 netns ${ns[3]}
357+
ip link add $DEV netns ${ns[2]} type veth peer name eth1 netns ${ns[4]}
358358

359-
ip link add $DEV netns ns3 type veth peer name veth0 netns ns4
359+
ip link add $DEV netns ${ns[3]} type veth peer name veth0 netns ${ns[4]}
360360

361361
DEV=veth0
362362
for i in 1 2; do
363-
ip -net ns$i link set $DEV up
364-
ip -net ns$i addr add 10.0.$i.2/24 dev $DEV
365-
ip -net ns$i addr add dead:$i::2/64 dev $DEV
366-
367-
ip -net ns$i addr add 10.0.$i.253 dev $DEV
368-
ip -net ns$i addr add 10.0.$i.254 dev $DEV
369-
ip -net ns$i addr add dead:$i::fd dev $DEV
370-
ip -net ns$i addr add dead:$i::fe dev $DEV
363+
ip -net ${ns[$i]} link set $DEV up
364+
ip -net ${ns[$i]} addr add 10.0.$i.2/24 dev $DEV
365+
ip -net ${ns[$i]} addr add dead:$i::2/64 dev $DEV
366+
367+
ip -net ${ns[$i]} addr add 10.0.$i.253 dev $DEV
368+
ip -net ${ns[$i]} addr add 10.0.$i.254 dev $DEV
369+
ip -net ${ns[$i]} addr add dead:$i::fd dev $DEV
370+
ip -net ${ns[$i]} addr add dead:$i::fe dev $DEV
371371
done
372372

373373
for i in 3 4; do
374-
ip -net ns$i link set eth1 up
375-
ip -net ns$i link set veth0 up
374+
ip -net ${ns[$i]} link set eth1 up
375+
ip -net ${ns[$i]} link set veth0 up
376376
done
377377

378-
ip -net ns1 route add default via 10.0.1.1
379-
ip -net ns2 route add default via 10.0.2.1
378+
ip -net ${ns[1]} route add default via 10.0.1.1
379+
ip -net ${ns[2]} route add default via 10.0.2.1
380380

381-
ip -net ns3 addr add 10.0.1.1/24 dev eth1
382-
ip -net ns3 addr add 10.0.3.1/24 dev veth0
383-
ip -net ns3 addr add 2001:1::1/64 dev eth1
384-
ip -net ns3 addr add 2001:3::1/64 dev veth0
381+
ip -net ${ns[3]} addr add 10.0.1.1/24 dev eth1
382+
ip -net ${ns[3]} addr add 10.0.3.1/24 dev veth0
383+
ip -net ${ns[3]} addr add 2001:1::1/64 dev eth1
384+
ip -net ${ns[3]} addr add 2001:3::1/64 dev veth0
385385

386-
ip -net ns3 route add default via 10.0.3.10
386+
ip -net ${ns[3]} route add default via 10.0.3.10
387387

388-
ip -net ns4 addr add 10.0.2.1/24 dev eth1
389-
ip -net ns4 addr add 10.0.3.10/24 dev veth0
390-
ip -net ns4 addr add 2001:2::1/64 dev eth1
391-
ip -net ns4 addr add 2001:3::10/64 dev veth0
392-
ip -net ns4 route add default via 10.0.3.1
388+
ip -net ${ns[4]} addr add 10.0.2.1/24 dev eth1
389+
ip -net ${ns[4]} addr add 10.0.3.10/24 dev veth0
390+
ip -net ${ns[4]} addr add 2001:2::1/64 dev eth1
391+
ip -net ${ns[4]} addr add 2001:3::10/64 dev veth0
392+
ip -net ${ns[4]} route add default via 10.0.3.1
393393

394394
for j in 4 6; do
395395
for i in 3 4;do
396-
ip netns exec ns$i sysctl net.ipv$j.conf.eth1.forwarding=1 > /dev/null
397-
ip netns exec ns$i sysctl net.ipv$j.conf.veth0.forwarding=1 > /dev/null
396+
ip netns exec ${ns[$i]} sysctl net.ipv$j.conf.eth1.forwarding=1 > /dev/null
397+
ip netns exec ${ns[$i]} sysctl net.ipv$j.conf.veth0.forwarding=1 > /dev/null
398398
done
399399
done
400400

401401
# abuse iptables rule counter to check if ping matches a policy
402-
ip netns exec ns3 iptables -p icmp -A FORWARD -m policy --dir out --pol ipsec
403-
ip netns exec ns4 iptables -p icmp -A FORWARD -m policy --dir out --pol ipsec
402+
ip netns exec ${ns[3]} iptables -p icmp -A FORWARD -m policy --dir out --pol ipsec
403+
ip netns exec ${ns[4]} iptables -p icmp -A FORWARD -m policy --dir out --pol ipsec
404404
if [ $? -ne 0 ];then
405405
echo "SKIP: Could not insert iptables rule"
406-
for i in 1 2 3 4;do ip netns del ns$i;done
406+
cleanup_ns $ns1 $ns2 $ns3 $ns4
407407
exit $ksft_skip
408408
fi
409409

410410
# localip remoteip localnet remotenet
411-
do_esp ns3 10.0.3.1 10.0.3.10 10.0.1.0/24 10.0.2.0/24 $SPI1 $SPI2
412-
do_esp ns3 dead:3::1 dead:3::10 dead:1::/64 dead:2::/64 $SPI1 $SPI2
413-
do_esp ns4 10.0.3.10 10.0.3.1 10.0.2.0/24 10.0.1.0/24 $SPI2 $SPI1
414-
do_esp ns4 dead:3::10 dead:3::1 dead:2::/64 dead:1::/64 $SPI2 $SPI1
411+
do_esp ${ns[3]} 10.0.3.1 10.0.3.10 10.0.1.0/24 10.0.2.0/24 $SPI1 $SPI2
412+
do_esp ${ns[3]} dead:3::1 dead:3::10 dead:1::/64 dead:2::/64 $SPI1 $SPI2
413+
do_esp ${ns[4]} 10.0.3.10 10.0.3.1 10.0.2.0/24 10.0.1.0/24 $SPI2 $SPI1
414+
do_esp ${ns[4]} dead:3::10 dead:3::1 dead:2::/64 dead:1::/64 $SPI2 $SPI1
415415

416-
do_dummies4 ns3
417-
do_dummies6 ns4
416+
do_dummies4 ${ns[3]}
417+
do_dummies6 ${ns[4]}
418418

419-
do_esp_policy_get_check ns3 10.0.1.0/24 10.0.2.0/24
420-
do_esp_policy_get_check ns4 10.0.2.0/24 10.0.1.0/24
421-
do_esp_policy_get_check ns3 dead:1::/64 dead:2::/64
422-
do_esp_policy_get_check ns4 dead:2::/64 dead:1::/64
419+
do_esp_policy_get_check ${ns[3]} 10.0.1.0/24 10.0.2.0/24
420+
do_esp_policy_get_check ${ns[4]} 10.0.2.0/24 10.0.1.0/24
421+
do_esp_policy_get_check ${ns[3]} dead:1::/64 dead:2::/64
422+
do_esp_policy_get_check ${ns[4]} dead:2::/64 dead:1::/64
423423

424424
# ping to .254 should use ipsec, exception is not installed.
425425
check_xfrm 1 254
@@ -432,55 +432,55 @@ fi
432432

433433
# installs exceptions
434434
# localip remoteip encryptdst plaindst
435-
do_exception ns3 10.0.3.1 10.0.3.10 10.0.2.253 10.0.2.240/28
436-
do_exception ns4 10.0.3.10 10.0.3.1 10.0.1.253 10.0.1.240/28
435+
do_exception ${ns[3]} 10.0.3.1 10.0.3.10 10.0.2.253 10.0.2.240/28
436+
do_exception ${ns[4]} 10.0.3.10 10.0.3.1 10.0.1.253 10.0.1.240/28
437437

438-
do_exception ns3 dead:3::1 dead:3::10 dead:2::fd dead:2:f0::/96
439-
do_exception ns4 dead:3::10 dead:3::1 dead:1::fd dead:1:f0::/96
438+
do_exception ${ns[3]} dead:3::1 dead:3::10 dead:2::fd dead:2:f0::/96
439+
do_exception ${ns[4]} dead:3::10 dead:3::1 dead:1::fd dead:1:f0::/96
440440

441441
check_exceptions "exceptions"
442442
if [ $? -ne 0 ]; then
443443
ret=1
444444
fi
445445

446446
# insert block policies with adjacent/overlapping netmasks
447-
do_overlap ns3
447+
do_overlap ${ns[3]}
448448

449449
check_exceptions "exceptions and block policies"
450450
if [ $? -ne 0 ]; then
451451
ret=1
452452
fi
453453

454-
for n in ns3 ns4;do
454+
for n in ${ns[3]} ${ns[4]};do
455455
ip -net $n xfrm policy set hthresh4 28 24 hthresh6 126 125
456456
sleep $((RANDOM%5))
457457
done
458458

459459
check_exceptions "exceptions and block policies after hresh changes"
460460

461461
# full flush of policy db, check everything gets freed incl. internal meta data
462-
ip -net ns3 xfrm policy flush
462+
ip -net ${ns[3]} xfrm policy flush
463463

464-
do_esp_policy ns3 10.0.3.1 10.0.3.10 10.0.1.0/24 10.0.2.0/24
465-
do_exception ns3 10.0.3.1 10.0.3.10 10.0.2.253 10.0.2.240/28
464+
do_esp_policy ${ns[3]} 10.0.3.1 10.0.3.10 10.0.1.0/24 10.0.2.0/24
465+
do_exception ${ns[3]} 10.0.3.1 10.0.3.10 10.0.2.253 10.0.2.240/28
466466

467467
# move inexact policies to hash table
468-
ip -net ns3 xfrm policy set hthresh4 16 16
468+
ip -net ${ns[3]} xfrm policy set hthresh4 16 16
469469

470470
sleep $((RANDOM%5))
471471
check_exceptions "exceptions and block policies after hthresh change in ns3"
472472

473473
# restore original hthresh settings -- move policies back to tables
474-
for n in ns3 ns4;do
474+
for n in ${ns[3]} ${ns[4]};do
475475
ip -net $n xfrm policy set hthresh4 32 32 hthresh6 128 128
476476
sleep $((RANDOM%5))
477477
done
478478
check_exceptions "exceptions and block policies after htresh change to normal"
479479

480480
check_hthresh_repeat "policies with repeated htresh change"
481481

482-
check_random_order ns3 "policies inserted in random order"
482+
check_random_order ${ns[3]} "policies inserted in random order"
483483

484-
for i in 1 2 3 4;do ip netns del ns$i;done
484+
cleanup_ns $ns1 $ns2 $ns3 $ns4
485485

486486
exit $ret

0 commit comments

Comments
 (0)