Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1#!/bin/bash
2# SPDX-License-Identifier: GPL-2.0
3
4ALL_TESTS="
5 ping_ipv4
6 ping_ipv6
7"
8NUM_NETIFS=4
9source lib.sh
10
11h1_create()
12{
13 simple_if_init $h1 192.0.2.1/28 2001:db8:1::1/64
14 ip -4 route add 192.0.2.128/28 vrf v$h1 nexthop via 192.0.2.2
15 ip -6 route add 2001:db8:2::/64 vrf v$h1 nexthop via 2001:db8:1::2
16}
17
18h1_destroy()
19{
20 ip -6 route del 2001:db8:2::/64 vrf v$h1
21 ip -4 route del 192.0.2.128/28 vrf v$h1
22 simple_if_fini $h1 192.0.2.1/28 2001:db8:1::1/64
23}
24
25h2_create()
26{
27 simple_if_init $h2 192.0.2.130/28 2001:db8:2::2/64
28 ip -4 route add 192.0.2.0/28 vrf v$h2 nexthop via 192.0.2.129
29 ip -6 route add 2001:db8:1::/64 vrf v$h2 nexthop via 2001:db8:2::1
30}
31
32h2_destroy()
33{
34 ip -6 route del 2001:db8:1::/64 vrf v$h2
35 ip -4 route del 192.0.2.0/28 vrf v$h2
36 simple_if_fini $h2 192.0.2.130/28 2001:db8:2::2/64
37}
38
39router_create()
40{
41 ip link add name br1 type bridge vlan_filtering 1
42 ip link set dev br1 up
43
44 ip link set dev $swp1 master br1
45 ip link set dev $swp1 up
46 __addr_add_del br1 add 192.0.2.2/28 2001:db8:1::2/64
47
48 ip link set dev $swp2 up
49 __addr_add_del $swp2 add 192.0.2.129/28 2001:db8:2::1/64
50}
51
52router_destroy()
53{
54 __addr_add_del $swp2 del 192.0.2.129/28 2001:db8:2::1/64
55 ip link set dev $swp2 down
56
57 __addr_add_del br1 del 192.0.2.2/28 2001:db8:1::2/64
58 ip link set dev $swp1 down
59 ip link set dev $swp1 nomaster
60
61 ip link del dev br1
62}
63
64setup_prepare()
65{
66 h1=${NETIFS[p1]}
67 swp1=${NETIFS[p2]}
68
69 swp2=${NETIFS[p3]}
70 h2=${NETIFS[p4]}
71
72 vrf_prepare
73
74 h1_create
75 h2_create
76
77 router_create
78
79 forwarding_enable
80}
81
82cleanup()
83{
84 pre_cleanup
85
86 forwarding_restore
87
88 router_destroy
89
90 h2_destroy
91 h1_destroy
92
93 vrf_cleanup
94}
95
96ping_ipv4()
97{
98 ping_test $h1 192.0.2.130
99}
100
101ping_ipv6()
102{
103 ping6_test $h1 2001:db8:2::2
104}
105
106trap cleanup EXIT
107
108setup_prepare
109setup_wait
110
111tests_run
112
113exit $EXIT_STATUS