@@ -12,6 +12,14 @@ ALL_TESTS="
1212 test_ip6gretap
1313 test_gretap_forbidden_cpu
1414 test_ip6gretap_forbidden_cpu
15+ test_gretap_forbidden_egress
16+ test_ip6gretap_forbidden_egress
17+ test_gretap_untagged_egress
18+ test_ip6gretap_untagged_egress
19+ test_gretap_fdb_roaming
20+ test_ip6gretap_fdb_roaming
21+ test_gretap_stp
22+ test_ip6gretap_stp
1523"
1624
1725NUM_NETIFS=6
@@ -43,12 +51,14 @@ setup_prepare()
4351
4452 ip link set dev $swp3 master br1
4553 bridge vlan add dev $swp3 vid 555
54+ bridge vlan add dev $swp2 vid 555
4655}
4756
4857cleanup ()
4958{
5059 pre_cleanup
5160
61+ ip link set dev $swp2 nomaster
5262 ip link set dev $swp3 nomaster
5363 vlan_destroy $h3 555
5464 vlan_destroy br1 555
@@ -112,6 +122,125 @@ test_ip6gretap_forbidden_cpu()
112122 test_span_gre_forbidden_cpu gt6 " mirror to ip6gretap"
113123}
114124
125+ test_span_gre_forbidden_egress ()
126+ {
127+ local tundev=$1 ; shift
128+ local what=$1 ; shift
129+
130+ RET=0
131+
132+ mirror_install $swp1 ingress $tundev " matchall $tcflags "
133+ quick_test_span_gre_dir $tundev ingress
134+
135+ bridge vlan del dev $swp3 vid 555
136+ sleep 1
137+ fail_test_span_gre_dir $tundev ingress
138+
139+ bridge vlan add dev $swp3 vid 555
140+ # Re-prime FDB
141+ arping -I br1.555 192.0.2.130 -fqc 1
142+ sleep 1
143+ quick_test_span_gre_dir $tundev ingress
144+
145+ mirror_uninstall $swp1 ingress
146+
147+ log_test " $what : vlan forbidden at a bridge egress ($tcflags )"
148+ }
149+
150+ test_gretap_forbidden_egress ()
151+ {
152+ test_span_gre_forbidden_egress gt4 " mirror to gretap"
153+ }
154+
155+ test_ip6gretap_forbidden_egress ()
156+ {
157+ test_span_gre_forbidden_egress gt6 " mirror to ip6gretap"
158+ }
159+
160+ test_span_gre_untagged_egress ()
161+ {
162+ local tundev=$1 ; shift
163+ local what=$1 ; shift
164+
165+ RET=0
166+
167+ mirror_install $swp1 ingress $tundev " matchall $tcflags "
168+
169+ quick_test_span_gre_dir $tundev ingress
170+ quick_test_span_vlan_dir $h3 555 ingress
171+
172+ bridge vlan add dev $swp3 vid 555 pvid untagged
173+ sleep 1
174+ quick_test_span_gre_dir $tundev ingress
175+ fail_test_span_vlan_dir $h3 555 ingress
176+
177+ bridge vlan add dev $swp3 vid 555
178+ sleep 1
179+ quick_test_span_gre_dir $tundev ingress
180+ quick_test_span_vlan_dir $h3 555 ingress
181+
182+ mirror_uninstall $swp1 ingress
183+
184+ log_test " $what : vlan untagged at a bridge egress ($tcflags )"
185+ }
186+
187+ test_gretap_untagged_egress ()
188+ {
189+ test_span_gre_untagged_egress gt4 " mirror to gretap"
190+ }
191+
192+ test_ip6gretap_untagged_egress ()
193+ {
194+ test_span_gre_untagged_egress gt6 " mirror to ip6gretap"
195+ }
196+
197+ test_span_gre_fdb_roaming ()
198+ {
199+ local tundev=$1 ; shift
200+ local what=$1 ; shift
201+ local h3mac=$( mac_get $h3 )
202+
203+ RET=0
204+
205+ mirror_install $swp1 ingress $tundev " matchall $tcflags "
206+ quick_test_span_gre_dir $tundev ingress
207+
208+ bridge fdb del dev $swp3 $h3mac vlan 555 master
209+ bridge fdb add dev $swp2 $h3mac vlan 555 master
210+ sleep 1
211+ fail_test_span_gre_dir $tundev ingress
212+
213+ bridge fdb del dev $swp2 $h3mac vlan 555 master
214+ # Re-prime FDB
215+ arping -I br1.555 192.0.2.130 -fqc 1
216+ sleep 1
217+ quick_test_span_gre_dir $tundev ingress
218+
219+ mirror_uninstall $swp1 ingress
220+
221+ log_test " $what : MAC roaming ($tcflags )"
222+ }
223+
224+ test_gretap_fdb_roaming ()
225+ {
226+ test_span_gre_fdb_roaming gt4 " mirror to gretap"
227+ }
228+
229+ test_ip6gretap_fdb_roaming ()
230+ {
231+ test_span_gre_fdb_roaming gt6 " mirror to ip6gretap"
232+ }
233+
234+ test_gretap_stp ()
235+ {
236+ full_test_span_gre_stp gt4 $swp3 " mirror to gretap"
237+ }
238+
239+ test_ip6gretap_stp ()
240+ {
241+ full_test_span_gre_stp gt6 $swp3 " mirror to ip6gretap"
242+ }
243+
115244test_all ()
116245{
117246 slow_path_trap_install $swp1 ingress
0 commit comments