brintos

brintos / linux-shallow public Read only

0
0
Text · 3.2 KiB · 4537890 Raw
165 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03 4ALL_TESTS="5	vlan_modify_ingress6	vlan_modify_egress7"8 9NUM_NETIFS=410CHECK_TC="yes"11source lib.sh12 13h1_create()14{15	simple_if_init $h1 192.0.2.1/28 2001:db8:1::1/6416	vlan_create $h1 85 v$h1 192.0.2.17/28 2001:db8:2::1/6417}18 19h1_destroy()20{21	vlan_destroy $h1 8522	simple_if_fini $h1 192.0.2.1/28 2001:db8:1::1/6423}24 25h2_create()26{27	simple_if_init $h2 192.0.2.2/28 2001:db8:1::2/6428	vlan_create $h2 65 v$h2 192.0.2.18/28 2001:db8:2::2/6429}30 31h2_destroy()32{33	vlan_destroy $h2 6534	simple_if_fini $h2 192.0.2.2/28 2001:db8:1::2/6435}36 37switch_create()38{39	ip link add dev br0 type bridge vlan_filtering 1 mcast_snooping 040 41	ip link set dev $swp1 master br042	ip link set dev $swp2 master br043 44	ip link set dev br0 up45	ip link set dev $swp1 up46	ip link set dev $swp2 up47 48	bridge vlan add dev $swp1 vid 8549	bridge vlan add dev $swp2 vid 6550 51	bridge vlan add dev $swp2 vid 8552	bridge vlan add dev $swp1 vid 6553 54	tc qdisc add dev $swp1 clsact55	tc qdisc add dev $swp2 clsact56}57 58switch_destroy()59{60	tc qdisc del dev $swp2 clsact61	tc qdisc del dev $swp1 clsact62 63	bridge vlan del vid 65 dev $swp164	bridge vlan del vid 85 dev $swp265 66	bridge vlan del vid 65 dev $swp267	bridge vlan del vid 85 dev $swp168 69	ip link set dev $swp2 down70	ip link set dev $swp1 down71 72	ip link del dev br073}74 75setup_prepare()76{77	h1=${NETIFS[p1]}78	swp1=${NETIFS[p2]}79 80	swp2=${NETIFS[p3]}81	h2=${NETIFS[p4]}82 83	vrf_prepare84 85	h1_create86	h2_create87 88	switch_create89}90 91cleanup()92{93	pre_cleanup94 95	switch_destroy96 97	h2_destroy98	h1_destroy99 100	vrf_cleanup101}102 103vlan_modify_ingress()104{105	RET=0106 107	ping_do $h1.85 192.0.2.18108	check_fail $? "ping between two different vlans passed when should not"109 110	ping6_do $h1.85 2001:db8:2::2111	check_fail $? "ping6 between two different vlans passed when should not"112 113	tc filter add dev $swp1 ingress protocol all pref 1 handle 1 \114		flower action vlan modify id 65115	tc filter add dev $swp2 ingress protocol all pref 1 handle 1 \116		flower action vlan modify id 85117 118	ping_do $h1.85 192.0.2.18119	check_err $? "ping between two different vlans failed when should not"120 121	ping6_do $h1.85 2001:db8:2::2122	check_err $? "ping6 between two different vlans failed when should not"123 124	log_test "VLAN modify at ingress"125 126	tc filter del dev $swp2 ingress protocol all pref 1 handle 1 flower127	tc filter del dev $swp1 ingress protocol all pref 1 handle 1 flower128}129 130vlan_modify_egress()131{132	RET=0133 134	ping_do $h1.85 192.0.2.18135	check_fail $? "ping between two different vlans passed when should not"136 137	ping6_do $h1.85 2001:db8:2::2138	check_fail $? "ping6 between two different vlans passed when should not"139 140	tc filter add dev $swp1 egress protocol all pref 1 handle 1 \141		flower action vlan modify id 85142	tc filter add dev $swp2 egress protocol all pref 1 handle 1 \143		flower action vlan modify id 65144 145	ping_do $h1.85 192.0.2.18146	check_err $? "ping between two different vlans failed when should not"147 148	ping6_do $h1.85 2001:db8:2::2149	check_err $? "ping6 between two different vlans failed when should not"150 151	log_test "VLAN modify at egress"152 153	tc filter del dev $swp2 egress protocol all pref 1 handle 1 flower154	tc filter del dev $swp1 egress protocol all pref 1 handle 1 flower155}156 157trap cleanup EXIT158 159setup_prepare160setup_wait161 162tests_run163 164exit $EXIT_STATUS165