brintos

brintos / linux-shallow public Read only

0
0
Text · 4.0 KiB · 0182eb2 Raw
191 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03 4# +------------------------+                           +----------------------+5# | H1 (vrf)               |                           |             H2 (vrf) |6# |    + $h1               |                           |  + $h2               |7# |    | 192.0.2.1/28      |                           |  | 192.0.2.130/28    |8# |    | 2001:db8:1::1/64  |                           |  | 2001:db8:2::2/64  |9# |    |                   |                           |  |                   |10# +----|-------------------+                           +--|-------------------+11#      |                                                  |12# +----|--------------------------------------------------|-------------------+13# | SW |                                                  |                   |14# | +--|-----------------------------+                    + $swp2             |15# | |  + $swp1      BR1 (802.1q)     |                      192.0.2.129/28    |16# | |               192.0.2.2/28     |                      2001:db8:2::1/64  |17# | |               2001:db8:1::1/64 |                                        |18# | |                                |                                        |19# | +--------------------------------+                                        |20# +---------------------------------------------------------------------------+21 22ALL_TESTS="23	ping_ipv424	ping_ipv625	config_remaster26	ping_ipv427	ping_ipv628	config_remove_pvid29	ping_ipv4_fails30	ping_ipv6_fails31	config_add_pvid32	ping_ipv433	ping_ipv634	config_late_pvid35	ping_ipv436	ping_ipv637"38NUM_NETIFS=439source lib.sh40 41h1_create()42{43	simple_if_init $h1 192.0.2.1/28 2001:db8:1::1/6444	ip -4 route add 192.0.2.128/28 vrf v$h1 nexthop via 192.0.2.245	ip -6 route add 2001:db8:2::/64 vrf v$h1 nexthop via 2001:db8:1::246}47 48h1_destroy()49{50	ip -6 route del 2001:db8:2::/64 vrf v$h151	ip -4 route del 192.0.2.128/28 vrf v$h152	simple_if_fini $h1 192.0.2.1/28 2001:db8:1::1/6453}54 55h2_create()56{57	simple_if_init $h2 192.0.2.130/28 2001:db8:2::2/6458	ip -4 route add 192.0.2.0/28 vrf v$h2 nexthop via 192.0.2.12959	ip -6 route add 2001:db8:1::/64 vrf v$h2 nexthop via 2001:db8:2::160}61 62h2_destroy()63{64	ip -6 route del 2001:db8:1::/64 vrf v$h265	ip -4 route del 192.0.2.0/28 vrf v$h266	simple_if_fini $h2 192.0.2.130/28 2001:db8:2::2/6467}68 69router_create()70{71	ip link add name br1 address $(mac_get $swp1) \72		type bridge vlan_filtering 173	ip link set dev br1 up74 75	ip link set dev $swp1 master br176	ip link set dev $swp1 up77	__addr_add_del br1 add 192.0.2.2/28 2001:db8:1::2/6478 79	ip link set dev $swp2 up80	__addr_add_del $swp2 add 192.0.2.129/28 2001:db8:2::1/6481}82 83router_destroy()84{85	__addr_add_del $swp2 del 192.0.2.129/28 2001:db8:2::1/6486	ip link set dev $swp2 down87 88	__addr_add_del br1 del 192.0.2.2/28 2001:db8:1::2/6489	ip link set dev $swp1 down90	ip link set dev $swp1 nomaster91 92	ip link del dev br193}94 95config_remaster()96{97	log_info "Remaster bridge slave"98 99	ip link set dev $swp1 nomaster100	sleep 2101	ip link set dev $swp1 master br1102}103 104config_remove_pvid()105{106	log_info "Remove PVID from the bridge"107 108	bridge vlan add dev br1 vid 1 self109	sleep 2110}111 112config_add_pvid()113{114	log_info "Add PVID to the bridge"115 116	bridge vlan add dev br1 vid 1 self pvid untagged117	sleep 2118}119 120config_late_pvid()121{122	log_info "Add bridge PVID after enslaving port"123 124	ip link set dev $swp1 nomaster125	ip link set dev br1 type bridge vlan_default_pvid 0126	sleep 2127	ip link set dev $swp1 master br1128	ip link set dev br1 type bridge vlan_default_pvid 1129}130 131setup_prepare()132{133	h1=${NETIFS[p1]}134	swp1=${NETIFS[p2]}135 136	swp2=${NETIFS[p3]}137	h2=${NETIFS[p4]}138 139	vrf_prepare140 141	h1_create142	h2_create143 144	router_create145 146	forwarding_enable147}148 149cleanup()150{151	pre_cleanup152 153	forwarding_restore154 155	router_destroy156 157	h2_destroy158	h1_destroy159 160	vrf_cleanup161}162 163ping_ipv4()164{165	ping_test $h1 192.0.2.130166}167 168ping_ipv6()169{170	ping6_test $h1 2001:db8:2::2171}172 173ping_ipv4_fails()174{175	ping_test_fails $h1 192.0.2.130176}177 178ping_ipv6_fails()179{180	ping6_test_fails $h1 2001:db8:2::2181}182 183trap cleanup EXIT184 185setup_prepare186setup_wait187 188tests_run189 190exit $EXIT_STATUS191