2 # SPDX-License-Identifier: GPL-2.0
4 # +------------------------------------------------+ +----------------------+
5 # | H1 (vrf) | | H2 (vrf) |
6 # | + $h1.555 + $h1.777 | | + $h2 |
7 # | | 192.0.2.1/28 | 192.0.2.17/28 | | | 192.0.2.130/28 |
8 # | | 2001:db8:1::1/64 | 2001:db8:3::1/64 | | | 192.0.2.146/28 |
9 # | | .-----------------' | | | 2001:db8:2::2/64 |
10 # | |/ | | | 2001:db8:4::2/64 |
12 # +----|-------------------------------------------+ +--|-------------------+
14 # +----|--------------------------------------------------|-------------------+
16 # | +--|-------------------------------+ + $swp2 |
17 # | | + $swp1 | 192.0.2.129/28 |
18 # | | vid 555 777 | 192.0.2.145/28 |
19 # | | | 2001:db8:2::1/64 |
20 # | | + BR1 (802.1q) | 2001:db8:4::1/64 |
21 # | | vid 555 pvid untagged | |
22 # | | 192.0.2.2/28 | |
23 # | | 192.0.2.18/28 | |
24 # | | 2001:db8:1::2/64 | |
25 # | | 2001:db8:3::2/64 | |
26 # | +----------------------------------+ |
27 # +---------------------------------------------------------------------------+
49 vlan_create $h1 555 v$h1 192.0.2.1/28 2001:db8:1::1/64
50 ip -4 route add 192.0.2.128/28 vrf v$h1 nexthop via 192.0.2.2
51 ip -6 route add 2001:db8:2::/64 vrf v$h1 nexthop via 2001:db8:1::2
53 vlan_create $h1 777 v$h1 192.0.2.17/28 2001:db8:3::1/64
54 ip -4 route add 192.0.2.144/28 vrf v$h1 nexthop via 192.0.2.18
55 ip -6 route add 2001:db8:4::/64 vrf v$h1 nexthop via 2001:db8:3::2
60 ip -6 route del 2001:db8:4::/64 vrf v$h1
61 ip -4 route del 192.0.2.144/28 vrf v$h1
64 ip -6 route del 2001:db8:2::/64 vrf v$h1
65 ip -4 route del 192.0.2.128/28 vrf v$h1
73 simple_if_init $h2 192.0.2.130/28 2001:db8:2::2/64 \
74 192.0.2.146/28 2001:db8:4::2/64
75 ip -4 route add 192.0.2.0/28 vrf v$h2 nexthop via 192.0.2.129
76 ip -4 route add 192.0.2.16/28 vrf v$h2 nexthop via 192.0.2.145
77 ip -6 route add 2001:db8:1::/64 vrf v$h2 nexthop via 2001:db8:2::1
78 ip -6 route add 2001:db8:3::/64 vrf v$h2 nexthop via 2001:db8:4::1
83 ip -6 route del 2001:db8:3::/64 vrf v$h2
84 ip -6 route del 2001:db8:1::/64 vrf v$h2
85 ip -4 route del 192.0.2.16/28 vrf v$h2
86 ip -4 route del 192.0.2.0/28 vrf v$h2
87 simple_if_fini $h2 192.0.2.146/28 2001:db8:4::2/64 \
88 192.0.2.130/28 2001:db8:2::2/64
93 ip link add name br1 type bridge vlan_filtering 1 vlan_default_pvid 0
94 ip link set dev br1 up
96 ip link set dev $swp1 master br1
97 ip link set dev $swp1 up
99 bridge vlan add dev br1 vid 555 self pvid untagged
100 bridge vlan add dev $swp1 vid 555
101 bridge vlan add dev $swp1 vid 777
103 __addr_add_del br1 add 192.0.2.2/28 2001:db8:1::2/64
104 __addr_add_del br1 add 192.0.2.18/28 2001:db8:3::2/64
106 ip link set dev $swp2 up
107 __addr_add_del $swp2 add 192.0.2.129/28 2001:db8:2::1/64
108 __addr_add_del $swp2 add 192.0.2.145/28 2001:db8:4::1/64
113 __addr_add_del $swp2 del 192.0.2.145/28 2001:db8:4::1/64
114 __addr_add_del $swp2 del 192.0.2.129/28 2001:db8:2::1/64
115 ip link set dev $swp2 down
117 __addr_add_del br1 del 192.0.2.18/28 2001:db8:3::2/64
118 __addr_add_del br1 del 192.0.2.2/28 2001:db8:1::2/64
119 ip link set dev $swp1 down
120 ip link set dev $swp1 nomaster
145 log_info "Configure VLAN 555 as PVID"
147 bridge vlan add dev br1 vid 555 self pvid untagged
148 bridge vlan del dev br1 vid 777 self
154 log_info "Configure VLAN 777 as PVID"
156 bridge vlan add dev br1 vid 777 self pvid untagged
157 bridge vlan del dev br1 vid 555 self
179 bridge vlan add dev br1 vid 333 self
180 check_err $? "Can't add a non-PVID VLAN"
181 bridge vlan del dev br1 vid 333 self
182 check_err $? "Can't remove a non-PVID VLAN"
189 ping_test $h1.555 192.0.2.130
194 ping6_test $h1.555 2001:db8:2::2
199 ping_test_fails $h1.555 192.0.2.130 ": via 555"
204 ping6_test_fails $h1.555 2001:db8:2::2 ": via 555"
209 ping_test $h1.777 192.0.2.146 ": via 777"
214 ping6_test $h1.777 2001:db8:4::2 ": via 777"