File Index
Files and directories
Sign in
FILE

router_bridge_vlan_upper.sh

File preview with syntax highlighting.

linux-6.19.14/tools/testing/selftests/net/forwarding/router_bridge_vlan_upper.sh BASH
  1#!/bin/bash
  2# SPDX-License-Identifier: GPL-2.0
  3
  4# +------------------------+                           +----------------------+
  5# | H1 (vrf)               |                           |             H2 (vrf) |
  6# |    + $h1.555           |                           |  + $h2.777           |
  7# |    | 192.0.2.1/28      |                           |  | 192.0.2.18/28     |
  8# |    | 2001:db8:1::1/64  |                           |  | 2001:db8:2::2/64  |
  9# |    |                   |                           |  |                   |
 10# |    + $h1               |                           |  + $h2               |
 11# +----|-------------------+                           +--|-------------------+
 12#      |                                                  |
 13# +----|--------------------------------------------------|-------------------+
 14# | SW |                                                  |                   |
 15# | +--|--------------------------------------------------|-----------------+ |
 16# | |  + $swp1                   BR1 (802.1q)             + $swp2           | |
 17# | |                                                                       | |
 18# | +------+------------------------------------------+---------------------+ |
 19# |        |                                          |                       |
 20# |        + br1.555                                  + br1.777               |
 21# |          192.0.2.2/28                               192.0.2.17/28         |
 22# |          2001:db8:1::2/64                           2001:db8:2::1/64      |
 23# +---------------------------------------------------------------------------+
 24
 25ALL_TESTS="
 26	ping_ipv4
 27	ping_ipv6
 28	respin_config
 29	ping_ipv4
 30	ping_ipv6
 31"
 32NUM_NETIFS=4
 33source lib.sh
 34
 35h1_create()
 36{
 37	simple_if_init $h1
 38	vlan_create $h1 555 v$h1 192.0.2.1/28 2001:db8:1::1/64
 39	ip -4 route add 192.0.2.16/28 vrf v$h1 nexthop via 192.0.2.2
 40	ip -6 route add 2001:db8:2::/64 vrf v$h1 nexthop via 2001:db8:1::2
 41}
 42
 43h1_destroy()
 44{
 45	ip -6 route del 2001:db8:2::/64 vrf v$h1
 46	ip -4 route del 192.0.2.16/28 vrf v$h1
 47	vlan_destroy $h1 555
 48	simple_if_fini $h1
 49}
 50
 51h2_create()
 52{
 53	simple_if_init $h2
 54	vlan_create $h2 777 v$h2 192.0.2.18/28 2001:db8:2::2/64
 55	ip -4 route add 192.0.2.0/28 vrf v$h2 nexthop via 192.0.2.17
 56	ip -6 route add 2001:db8:1::/64 vrf v$h2 nexthop via 2001:db8:2::1
 57}
 58
 59h2_destroy()
 60{
 61	ip -6 route del 2001:db8:1::/64 vrf v$h2
 62	ip -4 route del 192.0.2.0/28 vrf v$h2
 63	vlan_destroy $h2 777
 64	simple_if_fini $h2
 65}
 66
 67router_create()
 68{
 69	ip link add name br1 address $(mac_get $swp1) \
 70		type bridge vlan_filtering 1
 71	ip link set dev br1 up
 72
 73	ip link set dev $swp1 master br1
 74	ip link set dev $swp2 master br1
 75	ip link set dev $swp1 up
 76	ip link set dev $swp2 up
 77
 78	bridge vlan add dev br1 vid 555 self
 79	bridge vlan add dev br1 vid 777 self
 80	bridge vlan add dev $swp1 vid 555
 81	bridge vlan add dev $swp2 vid 777
 82
 83	vlan_create br1 555 "" 192.0.2.2/28 2001:db8:1::2/64
 84	vlan_create br1 777 "" 192.0.2.17/28 2001:db8:2::1/64
 85}
 86
 87router_destroy()
 88{
 89	vlan_destroy br1 777
 90	vlan_destroy br1 555
 91
 92	bridge vlan del dev $swp2 vid 777
 93	bridge vlan del dev $swp1 vid 555
 94	bridge vlan del dev br1 vid 777 self
 95	bridge vlan del dev br1 vid 555 self
 96
 97	ip link set dev $swp2 down nomaster
 98	ip link set dev $swp1 down nomaster
 99
100	ip link set dev br1 down
101	ip link del dev br1
102}
103
104setup_prepare()
105{
106	h1=${NETIFS[p1]}
107	swp1=${NETIFS[p2]}
108
109	swp2=${NETIFS[p3]}
110	h2=${NETIFS[p4]}
111
112	vrf_prepare
113
114	h1_create
115	h2_create
116
117	router_create
118
119	forwarding_enable
120}
121
122cleanup()
123{
124	pre_cleanup
125
126	forwarding_restore
127
128	router_destroy
129
130	h2_destroy
131	h1_destroy
132
133	vrf_cleanup
134}
135
136ping_ipv4()
137{
138	ping_test $h1 192.0.2.18
139}
140
141ping_ipv6()
142{
143	ping6_test $h1 2001:db8:2::2
144}
145
146respin_config()
147{
148	log_info "Remaster bridge slave"
149
150	ip link set dev $swp2 nomaster
151	ip link set dev $swp1 nomaster
152
153	sleep 2
154
155	ip link set dev $swp1 master br1
156	ip link set dev $swp2 master br1
157
158	bridge vlan add dev $swp1 vid 555
159	bridge vlan add dev $swp2 vid 777
160}
161
162trap cleanup EXIT
163
164setup_prepare
165setup_wait
166
167tests_run
168
169exit $EXIT_STATUS
~/ Read-only file preview.