-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'mlxsw-Support-bridge-router-interfaces-with-non-default…
…-VLAN' Ido Schimmel says: ==================== mlxsw: Support bridge router interfaces with non-default VLAN Petr says: When traffic is inserted on a router interface associated with an 802.1q bridge, the VLAN that the traffic appears on is determined by PVID of the bridge device itself. However currently mlxsw always configures such traffic to be forwarded to VLAN 1, regardless of the bridge PVID. Fix the problem by modifying the FID-handling code to assign such traffic not to FID that corresponds to VLAN 1, but to a FID that corresponds to the configured PVID. Bail out if there is no PVID. This is implemented in patches #1 and #2. From that point on, also forbid any changes to bridge device PVID, because such changes would not be reflected. This is implemented in patches #3, #4 and #5. Finally in patch #6, introduce tests that use bridge as a routed interface, and test mlxsw in both the currently-supported scenario of using PVID 1, and the newly-supported one of using a custom PVID. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
- Loading branch information
Showing
5 changed files
with
323 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
113 changes: 113 additions & 0 deletions
113
tools/testing/selftests/net/forwarding/router_bridge.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,113 @@ | ||
#!/bin/bash | ||
# SPDX-License-Identifier: GPL-2.0 | ||
|
||
ALL_TESTS=" | ||
ping_ipv4 | ||
ping_ipv6 | ||
" | ||
NUM_NETIFS=4 | ||
source lib.sh | ||
|
||
h1_create() | ||
{ | ||
simple_if_init $h1 192.0.2.1/28 2001:db8:1::1/64 | ||
ip -4 route add 192.0.2.128/28 vrf v$h1 nexthop via 192.0.2.2 | ||
ip -6 route add 2001:db8:2::/64 vrf v$h1 nexthop via 2001:db8:1::2 | ||
} | ||
|
||
h1_destroy() | ||
{ | ||
ip -6 route del 2001:db8:2::/64 vrf v$h1 | ||
ip -4 route del 192.0.2.128/28 vrf v$h1 | ||
simple_if_fini $h1 192.0.2.1/28 2001:db8:1::1/64 | ||
} | ||
|
||
h2_create() | ||
{ | ||
simple_if_init $h2 192.0.2.130/28 2001:db8:2::2/64 | ||
ip -4 route add 192.0.2.0/28 vrf v$h2 nexthop via 192.0.2.129 | ||
ip -6 route add 2001:db8:1::/64 vrf v$h2 nexthop via 2001:db8:2::1 | ||
} | ||
|
||
h2_destroy() | ||
{ | ||
ip -6 route del 2001:db8:1::/64 vrf v$h2 | ||
ip -4 route del 192.0.2.0/28 vrf v$h2 | ||
simple_if_fini $h2 192.0.2.130/28 2001:db8:2::2/64 | ||
} | ||
|
||
router_create() | ||
{ | ||
ip link add name br1 type bridge vlan_filtering 1 | ||
ip link set dev br1 up | ||
|
||
ip link set dev $swp1 master br1 | ||
ip link set dev $swp1 up | ||
__addr_add_del br1 add 192.0.2.2/28 2001:db8:1::2/64 | ||
|
||
ip link set dev $swp2 up | ||
__addr_add_del $swp2 add 192.0.2.129/28 2001:db8:2::1/64 | ||
} | ||
|
||
router_destroy() | ||
{ | ||
__addr_add_del $swp2 del 192.0.2.129/28 2001:db8:2::1/64 | ||
ip link set dev $swp2 down | ||
|
||
__addr_add_del br1 del 192.0.2.2/28 2001:db8:1::2/64 | ||
ip link set dev $swp1 down | ||
ip link set dev $swp1 nomaster | ||
|
||
ip link del dev br1 | ||
} | ||
|
||
setup_prepare() | ||
{ | ||
h1=${NETIFS[p1]} | ||
swp1=${NETIFS[p2]} | ||
|
||
swp2=${NETIFS[p3]} | ||
h2=${NETIFS[p4]} | ||
|
||
vrf_prepare | ||
|
||
h1_create | ||
h2_create | ||
|
||
router_create | ||
|
||
forwarding_enable | ||
} | ||
|
||
cleanup() | ||
{ | ||
pre_cleanup | ||
|
||
forwarding_restore | ||
|
||
router_destroy | ||
|
||
h2_destroy | ||
h1_destroy | ||
|
||
vrf_cleanup | ||
} | ||
|
||
ping_ipv4() | ||
{ | ||
ping_test $h1 192.0.2.130 | ||
} | ||
|
||
ping_ipv6() | ||
{ | ||
ping6_test $h1 2001:db8:2::2 | ||
} | ||
|
||
trap cleanup EXIT | ||
|
||
setup_prepare | ||
setup_wait | ||
|
||
tests_run | ||
|
||
exit $EXIT_STATUS |
Oops, something went wrong.