Skip to content

Commit 477ce6d

Browse files
Amit Cohendavem330
authored andcommitted
selftests: mlxsw: Add Q-in-VNI veto tests
Add tests to ensure that the forbidden and unsupported cases are indeed vetoed by mlxsw driver. Signed-off-by: Amit Cohen <[email protected]> Reviewed-by: Petr Machata <[email protected]> Signed-off-by: Ido Schimmel <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 4cec852 commit 477ce6d

File tree

2 files changed

+143
-0
lines changed

2 files changed

+143
-0
lines changed
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
#!/bin/bash
2+
# SPDX-License-Identifier: GPL-2.0
3+
4+
lib_dir=$(dirname $0)/../../../../net/forwarding
5+
6+
VXPORT=4789
7+
8+
ALL_TESTS="
9+
create_dot1d_and_dot1ad_vxlans
10+
"
11+
NUM_NETIFS=2
12+
source $lib_dir/lib.sh
13+
14+
setup_prepare()
15+
{
16+
swp1=${NETIFS[p1]}
17+
swp2=${NETIFS[p2]}
18+
19+
ip link set dev $swp1 up
20+
ip link set dev $swp2 up
21+
}
22+
23+
cleanup()
24+
{
25+
pre_cleanup
26+
27+
ip link set dev $swp2 down
28+
ip link set dev $swp1 down
29+
}
30+
31+
create_dot1d_and_dot1ad_vxlans()
32+
{
33+
RET=0
34+
35+
ip link add dev br0 type bridge vlan_filtering 1 vlan_protocol 802.1ad \
36+
vlan_default_pvid 0 mcast_snooping 0
37+
ip link set dev br0 up
38+
39+
ip link add name vx100 type vxlan id 1000 local 192.0.2.17 dstport \
40+
"$VXPORT" nolearning noudpcsum tos inherit ttl 100
41+
ip link set dev vx100 up
42+
43+
ip link set dev $swp1 master br0
44+
ip link set dev vx100 master br0
45+
bridge vlan add vid 100 dev vx100 pvid untagged
46+
47+
ip link add dev br1 type bridge vlan_filtering 0 mcast_snooping 0
48+
ip link set dev br1 up
49+
50+
ip link add name vx200 type vxlan id 2000 local 192.0.2.17 dstport \
51+
"$VXPORT" nolearning noudpcsum tos inherit ttl 100
52+
ip link set dev vx200 up
53+
54+
ip link set dev $swp2 master br1
55+
ip link set dev vx200 master br1 2>/dev/null
56+
check_fail $? "802.1d and 802.1ad VxLANs at the same time not rejected"
57+
58+
ip link set dev vx200 master br1 2>&1 >/dev/null \
59+
| grep -q mlxsw_spectrum
60+
check_err $? "802.1d and 802.1ad VxLANs at the same time rejected without extack"
61+
62+
log_test "create 802.1d and 802.1ad VxLANs"
63+
64+
ip link del dev vx200
65+
ip link del dev br1
66+
ip link del dev vx100
67+
ip link del dev br0
68+
}
69+
70+
trap cleanup EXIT
71+
72+
setup_prepare
73+
setup_wait
74+
75+
tests_run
76+
77+
exit $EXIT_STATUS
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
#!/bin/bash
2+
# SPDX-License-Identifier: GPL-2.0
3+
4+
lib_dir=$(dirname $0)/../../../../net/forwarding
5+
6+
VXPORT=4789
7+
8+
ALL_TESTS="
9+
create_vxlan_on_top_of_8021ad_bridge
10+
"
11+
NUM_NETIFS=2
12+
source $lib_dir/lib.sh
13+
14+
setup_prepare()
15+
{
16+
swp1=${NETIFS[p1]}
17+
swp2=${NETIFS[p2]}
18+
19+
ip link set dev $swp1 up
20+
ip link set dev $swp2 up
21+
}
22+
23+
cleanup()
24+
{
25+
pre_cleanup
26+
27+
ip link set dev $swp2 down
28+
ip link set dev $swp1 down
29+
}
30+
31+
create_vxlan_on_top_of_8021ad_bridge()
32+
{
33+
RET=0
34+
35+
ip link add dev br0 type bridge vlan_filtering 1 vlan_protocol 802.1ad \
36+
vlan_default_pvid 0 mcast_snooping 0
37+
ip link set dev br0 up
38+
39+
ip link add name vx100 type vxlan id 1000 local 192.0.2.17 dstport \
40+
"$VXPORT" nolearning noudpcsum tos inherit ttl 100
41+
ip link set dev vx100 up
42+
43+
ip link set dev $swp1 master br0
44+
ip link set dev vx100 master br0
45+
46+
bridge vlan add vid 100 dev vx100 pvid untagged 2>/dev/null
47+
check_fail $? "802.1ad bridge with VxLAN in Spectrum-1 not rejected"
48+
49+
bridge vlan add vid 100 dev vx100 pvid untagged 2>&1 >/dev/null \
50+
| grep -q mlxsw_spectrum
51+
check_err $? "802.1ad bridge with VxLAN in Spectrum-1 rejected without extack"
52+
53+
log_test "create VxLAN on top of 802.1ad bridge"
54+
55+
ip link del dev vx100
56+
ip link del dev br0
57+
}
58+
59+
trap cleanup EXIT
60+
61+
setup_prepare
62+
setup_wait
63+
64+
tests_run
65+
66+
exit $EXIT_STATUS

0 commit comments

Comments
 (0)