selftests: New selftests for out-of-order-operations patches in mlxsw
Subsystems (5)
Petr Machata
maintainercover selftests: New selftests for out-of-order-operations patches in mlxsw
In the past, the mlxsw driver made the assumption that the user applies configuration in a bottom-up manner. Thus netdevices needed to be added to the bridge before IP addresses were configured on that bridge or SVI added on top of it, because whatever happened before a netdevice was mlxsw upper was generally ignored by mlxsw. Recently, several patch series were pushed to introduce the bookkeeping and replays necessary to offload the full state, not just the immediate configuration step.
In this patchset, introduce new selftests that directly exercise the out of order code paths in mlxsw.
- Patch #1 adds new tests into the existing selftest router_bridge.sh.
- Patches #2-#5 add new generic selftests.
- Patches #6-#8 add new mlxsw-specific selftests.
Petr Machata (8):
selftests: router_bridge: Add remastering tests
selftests: router_bridge_1d: Add a new selftest
selftests: router_bridge_vlan_upper: Add a new selftest
selftests: router_bridge_lag: Add a new selftest
selftests: router_bridge_1d_lag: Add a new selftest
selftests: mlxsw: rif_lag: Add a new selftest
selftests: mlxsw: rif_lag_vlan: Add a new selftest
selftests: mlxsw: rif_bridge: Add a new selftest
.../selftests/drivers/net/mlxsw/rif_bridge.sh | 183 ++++++++ .../selftests/drivers/net/mlxsw/rif_lag.sh | 136 ++++++ .../drivers/net/mlxsw/rif_lag_vlan.sh | 146 +++++++ .../testing/selftests/net/forwarding/Makefile | 4 + .../selftests/net/forwarding/router_bridge.sh | 26 ++ .../net/forwarding/router_bridge_1d.sh | 185 ++++++++ .../net/forwarding/router_bridge_1d_lag.sh | 408 ++++++++++++++++++ .../net/forwarding/router_bridge_lag.sh | 323 ++++++++++++++ .../forwarding/router_bridge_vlan_upper.sh | 169 ++++++++ 9 files changed, 1580 insertions(+) create mode 100755 tools/testing/selftests/drivers/net/mlxsw/rif_bridge.sh create mode 100755 tools/testing/selftests/drivers/net/mlxsw/rif_lag.sh create mode 100755 tools/testing/selftests/drivers/net/mlxsw/rif_lag_vlan.sh create mode 100755 tools/testing/selftests/net/forwarding/router_bridge_1d.sh create mode 100755 tools/testing/selftests/net/forwarding/router_bridge_1d_lag.sh create mode 100755 tools/testing/selftests/net/forwarding/router_bridge_lag.sh create mode 100755 tools/testing/selftests/net/forwarding/router_bridge_vlan_upper.sh
Signature · 1 line
2.41.0
Petr Machata
maintainerPATCH 1/8 selftests: router_bridge: Add remastering tests
Add two tests to deslave a port from and reenslave to a bridge. This should retain the ability of the system to forward traffic, but on an offloading driver that is sensitive to ordering of operations, it might not.
The first test does this configuration in a way that relies on vlan_default_pvid to assign the PVID. The second test disables that autoconfiguration and configures PVID by hand in a separate step.
--- .../selftests/net/forwarding/router_bridge.sh | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+)
tools/testing/selftests/net/forwarding/router_bridge.sh +26 -0
@@ -20,6 +20,9 @@ # +---------------------------------------------------------------------------+ ALL_TESTS=" + ping_ipv4 + ping_ipv6 + config_remaster ping_ipv4 ping_ipv6 config_remove_pvid
@@ -28,6 +31,9 @@ ALL_TESTS=" config_add_pvid ping_ipv4 ping_ipv6 + config_late_pvid + ping_ipv4 + ping_ipv6 " NUM_NETIFS=4 source lib.sh
@@ -86,6 +92,15 @@ router_destroy() ip link del dev br1 } +config_remaster() +{ + log_info "Remaster bridge slave" + + ip link set dev $swp1 nomaster + sleep 2 + ip link set dev $swp1 master br1 +} + config_remove_pvid() { log_info "Remove PVID from the bridge"
@@ -102,6 +117,17 @@ config_add_pvid() sleep 2 } +config_late_pvid() +{ + log_info "Add bridge PVID after enslaving port" + + ip link set dev $swp1 nomaster + ip link set dev br1 type bridge vlan_default_pvid 0 + sleep 2 + ip link set dev $swp1 master br1 + ip link set dev br1 type bridge vlan_default_pvid 1 +} + setup_prepare() { h1=${NETIFS[p1]}
Signature · 1 line
2.41.0
Petr Machata
maintainerPATCH 2/8 selftests: router_bridge_1d: Add a new selftest
In reply to Petr MachataAdd a selftest to verify that routing through a 1d bridge works when VLAN upper of a physical port is used instead of a physical port. Also verify that when a port is attached to an already-configured bridge, the configuration is applied.
--- .../testing/selftests/net/forwarding/Makefile | 1 + .../net/forwarding/router_bridge_1d.sh | 185 ++++++++++++++++++ 2 files changed, 186 insertions(+) create mode 100755 tools/testing/selftests/net/forwarding/router_bridge_1d.sh
tools/testing/selftests/net/forwarding/Makefile +1 -0
@@ -64,6 +64,7 @@ TEST_PROGS = bridge_igmp.sh \ q_in_vni_ipv6.sh \ q_in_vni.sh \ router_bridge.sh \ + router_bridge_1d.sh \ router_bridge_vlan.sh \ router_bridge_pvid_vlan_upper.sh \ router_bridge_vlan_upper_pvid.sh \
tools/testing/selftests/net/forwarding/router_bridge_1d.sh new file +185 -0
185 lines not on this page · raw message
Signature · 1 line
2.41.0
Petr Machata
maintainerPATCH 3/8 selftests: router_bridge_vlan_upper: Add a new selftest
In reply to Petr MachataAdd a selftest that verifies routing through VLAN bridge uppers.
--- .../testing/selftests/net/forwarding/Makefile | 1 + .../forwarding/router_bridge_vlan_upper.sh | 169 ++++++++++++++++++ 2 files changed, 170 insertions(+) create mode 100755 tools/testing/selftests/net/forwarding/router_bridge_vlan_upper.sh
tools/testing/selftests/net/forwarding/Makefile +1 -0
@@ -66,6 +66,7 @@ TEST_PROGS = bridge_igmp.sh \ router_bridge.sh \ router_bridge_1d.sh \ router_bridge_vlan.sh \ + router_bridge_vlan_upper.sh \ router_bridge_pvid_vlan_upper.sh \ router_bridge_vlan_upper_pvid.sh \ router_broadcast.sh \
tools/testing/selftests/net/forwarding/router_bridge_vlan_upper.sh new file +169 -0
169 lines not on this page · raw message
Signature · 1 line
2.41.0
Petr Machata
maintainerPATCH 4/8 selftests: router_bridge_lag: Add a new selftest
In reply to Petr MachataAdd a selftest to verify that routing through a bridge works when LAG is used instead of physical ports.
--- .../testing/selftests/net/forwarding/Makefile | 1 + .../net/forwarding/router_bridge_lag.sh | 323 ++++++++++++++++++ 2 files changed, 324 insertions(+) create mode 100755 tools/testing/selftests/net/forwarding/router_bridge_lag.sh
tools/testing/selftests/net/forwarding/Makefile +1 -0
@@ -65,6 +65,7 @@ TEST_PROGS = bridge_igmp.sh \ q_in_vni.sh \ router_bridge.sh \ router_bridge_1d.sh \ + router_bridge_lag.sh \ router_bridge_vlan.sh \ router_bridge_vlan_upper.sh \ router_bridge_pvid_vlan_upper.sh \
tools/testing/selftests/net/forwarding/router_bridge_lag.sh new file +323 -0
323 lines not on this page · raw message
Signature · 1 line
2.41.0
Petr Machata
maintainerPATCH 5/8 selftests: router_bridge_1d_lag: Add a new selftest
In reply to Petr MachataAdd a selftest to verify that routing through several bridges works when LAG VLANs are used instead of physical ports, and that routing through LAG VLANs themselves works as physical ports are de/enslaved.
--- .../testing/selftests/net/forwarding/Makefile | 1 + .../net/forwarding/router_bridge_1d_lag.sh | 408 ++++++++++++++++++ 2 files changed, 409 insertions(+) create mode 100755 tools/testing/selftests/net/forwarding/router_bridge_1d_lag.sh
tools/testing/selftests/net/forwarding/Makefile +1 -0
@@ -65,6 +65,7 @@ TEST_PROGS = bridge_igmp.sh \ q_in_vni.sh \ router_bridge.sh \ router_bridge_1d.sh \ + router_bridge_1d_lag.sh \ router_bridge_lag.sh \ router_bridge_vlan.sh \ router_bridge_vlan_upper.sh \
tools/testing/selftests/net/forwarding/router_bridge_1d_lag.sh new file +408 -0
408 lines not on this page · raw message
Signature · 1 line
2.41.0
Petr Machata
maintainerPATCH 6/8 selftests: mlxsw: rif_lag: Add a new selftest
In reply to Petr MachataThis test verifies driver behavior with regards to creation of RIFs for a LAG as ports are added or removed to/from it.
--- .../selftests/drivers/net/mlxsw/rif_lag.sh | 136 ++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100755 tools/testing/selftests/drivers/net/mlxsw/rif_lag.sh
tools/testing/selftests/drivers/net/mlxsw/rif_lag.sh new file +136 -0
@@ -0,0 +1,136 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 + +lib_dir=$(dirname $0)/../../../net/forwarding + +ALL_TESTS=" + lag_rif_add + lag_rif_nomaster + lag_rif_remaster + lag_rif_nomaster_addr +" + +NUM_NETIFS=2 +source $lib_dir/lib.sh +source $lib_dir/devlink_lib.sh + +setup_prepare() +{ + swp1=${NETIFS[p1]} + swp2=${NETIFS[p2]} + + team_create lag1 lacp + ip link set dev lag1 addrgenmode none + ip link set dev lag1 address $(mac_get $swp1) + + team_create lag2 lacp + ip link set dev lag2 addrgenmode none + ip link set dev lag2 address $(mac_get $swp2) + + ip link set dev $swp1 master lag1 + ip link set dev $swp1 up + + ip link set dev $swp2 master lag2 + ip link set dev $swp2 up +} + +cleanup() +{ + pre_cleanup + + ip link set dev $swp2 nomaster + ip link set dev $swp2 down + + ip link set dev $swp1 nomaster + ip link set dev $swp1 down + + ip link del dev lag2 + ip link del dev lag1 +} + +lag_rif_add() +{ + RET=0 + + local rifs_occ_t0=$(devlink_resource_occ_get rifs) + __addr_add_del lag1 add 192.0.2.2/28 + sleep 1 + local rifs_occ_t1=$(devlink_resource_occ_get rifs) + local expected_rifs=$((rifs_occ_t0 + 1)) + + ((expected_rifs == rifs_occ_t1)) + check_err $? "Expected $expected_rifs RIFs, $rifs_occ_t1 are used" + + log_test "Add RIF for LAG on address addition" +} + +lag_rif_nomaster() +{ + RET=0 + + local rifs_occ_t0=$(devlink_resource_occ_get rifs) + ip link set dev $swp1 nomaster + sleep 1 + local rifs_occ_t1=$(devlink_resource_occ_get rifs) + local expected_rifs=$((rifs_occ_t0 - 1)) + + ((expected_rifs == rifs_occ_t1)) + check_err $? "Expected $expected_rifs RIFs, $rifs_occ_t1 are used" + + log_test "Drop RIF for LAG on port deslavement" +} + +lag_rif_remaster() +{ + RET=0 + + local rifs_occ_t0=$(devlink_resource_occ_get rifs) + ip link set dev $swp1 down + ip link set dev $swp1 master lag1 + ip link set dev $swp1 up + setup_wait_dev $swp1 + local rifs_occ_t1=$(devlink_resource_occ_get rifs) + local expected_rifs=$((rifs_occ_t0 + 1)) + + ((expected_rifs == rifs_occ_t1)) + check_err $? "Expected $expected_rifs RIFs, $rifs_occ_t1 are used" + + log_test "Add RIF for LAG on port reenslavement" +} + +lag_rif_nomaster_addr() +{ + local rifs_occ_t0=$(devlink_resource_occ_get rifs) + + # Adding an address while the port is LAG'd shouldn't generate a RIF. + __addr_add_del $swp1 add 192.0.2.65/28 + sleep 1 + local rifs_occ_t1=$(devlink_resource_occ_get rifs) + local expected_rifs=$((rifs_occ_t0)) + + ((expected_rifs == rifs_occ_t1)) + check_err $? "After adding IP: Expected $expected_rifs RIFs, $rifs_occ_t1 are used" + + # Removing the port from LAG should drop RIF for the LAG (as tested in + # lag_rif_nomaster), but since the port now has an address, it should + # gain a RIF. + ip link set dev $swp1 nomaster + sleep 1 + local rifs_occ_t2=$(devlink_resource_occ_get rifs) + local expected_rifs=$((rifs_occ_t0)) + + ((expected_rifs == rifs_occ_t2)) + check_err $? "After deslaving: Expected $expected_rifs RIFs, $rifs_occ_t2 are used" + + __addr_add_del $swp1 del 192.0.2.65/28 + log_test "Add RIF for port on deslavement from LAG" +} + +trap cleanup EXIT + +setup_prepare +setup_wait + +tests_run + +exit $EXIT_STATUS
Signature · 1 line
2.41.0
Petr Machata
maintainerPATCH 7/8 selftests: mlxsw: rif_lag_vlan: Add a new selftest
In reply to Petr MachataThis test verifies driver behavior with regards to creation of RIFs for LAG VLAN uppers as ports are added or removed to/from the LAG.
--- .../drivers/net/mlxsw/rif_lag_vlan.sh | 146 ++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100755 tools/testing/selftests/drivers/net/mlxsw/rif_lag_vlan.sh
tools/testing/selftests/drivers/net/mlxsw/rif_lag_vlan.sh new file +146 -0
@@ -0,0 +1,146 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 + +lib_dir=$(dirname $0)/../../../net/forwarding + +ALL_TESTS=" + lag_rif_add + lag_rif_nomaster + lag_rif_remaster + lag_rif_nomaster_addr +" + +NUM_NETIFS=2 +source $lib_dir/lib.sh +source $lib_dir/devlink_lib.sh + +setup_prepare() +{ + swp1=${NETIFS[p1]} + swp2=${NETIFS[p2]} + + team_create lag1 lacp + ip link set dev lag1 addrgenmode none + ip link set dev lag1 address $(mac_get $swp1) + + team_create lag2 lacp + ip link set dev lag2 addrgenmode none + ip link set dev lag2 address $(mac_get $swp2) + + ip link set dev $swp1 master lag1 + ip link set dev $swp1 up + + ip link set dev $swp2 master lag2 + ip link set dev $swp2 up + + vlan_create lag1 100 + ip link set dev lag1.100 addrgenmode none + + vlan_create lag1 200 + ip link set dev lag1.200 addrgenmode none +} + +cleanup() +{ + pre_cleanup + + ip link del dev lag1.200 + ip link del dev lag1.100 + + ip link set dev $swp2 nomaster + ip link set dev $swp2 down + + ip link set dev $swp1 nomaster + ip link set dev $swp1 down + + ip link del dev lag2 + ip link del dev lag1 +} + +lag_rif_add() +{ + RET=0 + + local rifs_occ_t0=$(devlink_resource_occ_get rifs) + __addr_add_del lag1.100 add 192.0.2.2/28 + __addr_add_del lag1.200 add 192.0.2.18/28 + sleep 1 + local rifs_occ_t1=$(devlink_resource_occ_get rifs) + local expected_rifs=$((rifs_occ_t0 + 2)) + + ((expected_rifs == rifs_occ_t1)) + check_err $? "Expected $expected_rifs RIFs, $rifs_occ_t1 are used" + + log_test "Add RIFs for LAG VLANs on address addition" +} + +lag_rif_nomaster() +{ + RET=0 + + local rifs_occ_t0=$(devlink_resource_occ_get rifs) + ip link set dev $swp1 nomaster + sleep 1 + local rifs_occ_t1=$(devlink_resource_occ_get rifs) + local expected_rifs=$((rifs_occ_t0 - 2)) + + ((expected_rifs == rifs_occ_t1)) + check_err $? "Expected $expected_rifs RIFs, $rifs_occ_t1 are used" + + log_test "Drop RIFs for LAG VLANs on port deslavement" +} + +lag_rif_remaster() +{ + RET=0 + + local rifs_occ_t0=$(devlink_resource_occ_get rifs) + ip link set dev $swp1 down + ip link set dev $swp1 master lag1 + ip link set dev $swp1 up + setup_wait_dev $swp1 + local rifs_occ_t1=$(devlink_resource_occ_get rifs) + local expected_rifs=$((rifs_occ_t0 + 2)) + + ((expected_rifs == rifs_occ_t1)) + check_err $? "Expected $expected_rifs RIFs, $rifs_occ_t1 are used" + + log_test "Add RIFs for LAG VLANs on port reenslavement" +} + +lag_rif_nomaster_addr() +{ + local rifs_occ_t0=$(devlink_resource_occ_get rifs) + + # Adding an address while the port is LAG'd shouldn't generate a RIF. + __addr_add_del $swp1 add 192.0.2.65/28 + sleep 1 + local rifs_occ_t1=$(devlink_resource_occ_get rifs) + local expected_rifs=$((rifs_occ_t0)) + + ((expected_rifs == rifs_occ_t1)) + check_err $? "After adding IP: Expected $expected_rifs RIFs, $rifs_occ_t1 are used" + + # Removing the port from LAG should drop two RIFs for the LAG VLANs (as + # tested in lag_rif_nomaster), but since the port now has an address, it + # should gain a RIF. + ip link set dev $swp1 nomaster + sleep 1 + local rifs_occ_t2=$(devlink_resource_occ_get rifs) + local expected_rifs=$((rifs_occ_t0 - 1)) + + ((expected_rifs == rifs_occ_t2)) + check_err $? "After deslaving: Expected $expected_rifs RIFs, $rifs_occ_t2 are used" + + __addr_add_del $swp1 del 192.0.2.65/28 + log_test "Add RIF for port on deslavement from LAG" +} + +trap cleanup EXIT + +setup_prepare +setup_wait + +tests_run + +exit $EXIT_STATUS
Signature · 1 line
2.41.0
Petr Machata
maintainerPATCH 8/8 selftests: mlxsw: rif_bridge: Add a new selftest
In reply to Petr MachataThis test verifies driver behavior with regards to creation of RIFs for a bridge as LAGs are added or removed to/from it, and ports added or removed to/from the LAG.
--- .../selftests/drivers/net/mlxsw/rif_bridge.sh | 183 ++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100755 tools/testing/selftests/drivers/net/mlxsw/rif_bridge.sh
tools/testing/selftests/drivers/net/mlxsw/rif_bridge.sh new file +183 -0
@@ -0,0 +1,183 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 + +lib_dir=$(dirname $0)/../../../net/forwarding + +ALL_TESTS=" + bridge_rif_add + bridge_rif_nomaster + bridge_rif_remaster + bridge_rif_nomaster_addr + bridge_rif_nomaster_port + bridge_rif_remaster_port +" + +NUM_NETIFS=2 +source $lib_dir/lib.sh +source $lib_dir/devlink_lib.sh + +setup_prepare() +{ + swp1=${NETIFS[p1]} + swp2=${NETIFS[p2]} + + team_create lag1 lacp + ip link set dev lag1 addrgenmode none + ip link set dev lag1 address $(mac_get $swp1) + + team_create lag2 lacp + ip link set dev lag2 addrgenmode none + ip link set dev lag2 address $(mac_get $swp2) + + ip link add name br1 type bridge vlan_filtering 1 + ip link set dev br1 addrgenmode none + ip link set dev br1 address $(mac_get lag1) + ip link set dev br1 up + + ip link set dev lag1 master br1 + + ip link set dev $swp1 master lag1 + ip link set dev $swp1 up + + ip link set dev $swp2 master lag2 + ip link set dev $swp2 up +} + +cleanup() +{ + pre_cleanup + + ip link set dev $swp2 nomaster + ip link set dev $swp2 down + + ip link set dev $swp1 nomaster + ip link set dev $swp1 down + + ip link del dev lag2 + ip link set dev lag1 nomaster + ip link del dev lag1 + + ip link del dev br1 +} + +bridge_rif_add() +{ + RET=0 + + local rifs_occ_t0=$(devlink_resource_occ_get rifs) + __addr_add_del br1 add 192.0.2.2/28 + sleep 1 + local rifs_occ_t1=$(devlink_resource_occ_get rifs) + local expected_rifs=$((rifs_occ_t0 + 1)) + + ((expected_rifs == rifs_occ_t1)) + check_err $? "Expected $expected_rifs RIFs, $rifs_occ_t1 are used" + + log_test "Add RIF for bridge on address addition" +} + +bridge_rif_nomaster() +{ + RET=0 + + local rifs_occ_t0=$(devlink_resource_occ_get rifs) + ip link set dev lag1 nomaster + sleep 1 + local rifs_occ_t1=$(devlink_resource_occ_get rifs) + local expected_rifs=$((rifs_occ_t0 - 1)) + + ((expected_rifs == rifs_occ_t1)) + check_err $? "Expected $expected_rifs RIFs, $rifs_occ_t1 are used" + + log_test "Drop RIF for bridge on LAG deslavement" +} + +bridge_rif_remaster() +{ + RET=0 + + local rifs_occ_t0=$(devlink_resource_occ_get rifs) + ip link set dev lag1 master br1 + sleep 1 + local rifs_occ_t1=$(devlink_resource_occ_get rifs) + local expected_rifs=$((rifs_occ_t0 + 1)) + + ((expected_rifs == rifs_occ_t1)) + check_err $? "Expected $expected_rifs RIFs, $rifs_occ_t1 are used" + + log_test "Add RIF for bridge on LAG reenslavement" +} + +bridge_rif_nomaster_addr() +{ + local rifs_occ_t0=$(devlink_resource_occ_get rifs) + + # Adding an address while the LAG is enslaved shouldn't generate a RIF. + __addr_add_del lag1 add 192.0.2.65/28 + sleep 1 + local rifs_occ_t1=$(devlink_resource_occ_get rifs) + local expected_rifs=$((rifs_occ_t0)) + + ((expected_rifs == rifs_occ_t1)) + check_err $? "After adding IP: Expected $expected_rifs RIFs, $rifs_occ_t1 are used" + + # Removing the LAG from the bridge should drop RIF for the bridge (as + # tested in bridge_rif_lag_nomaster), but since the LAG now has an + # address, it should gain a RIF. + ip link set dev lag1 nomaster + sleep 1 + local rifs_occ_t2=$(devlink_resource_occ_get rifs) + local expected_rifs=$((rifs_occ_t0)) + + ((expected_rifs == rifs_occ_t2)) + check_err $? "After deslaving: Expected $expected_rifs RIFs, $rifs_occ_t2 are used" + + log_test "Add RIF for LAG on deslavement from bridge" + + __addr_add_del lag1 del 192.0.2.65/28 + ip link set dev lag1 master br1 + sleep 1 +} + +bridge_rif_nomaster_port() +{ + RET=0 + + local rifs_occ_t0=$(devlink_resource_occ_get rifs) + ip link set dev $swp1 nomaster + sleep 1 + local rifs_occ_t1=$(devlink_resource_occ_get rifs) + local expected_rifs=$((rifs_occ_t0 - 1)) + + ((expected_rifs == rifs_occ_t1)) + check_err $? "Expected $expected_rifs RIFs, $rifs_occ_t1 are used" + + log_test "Drop RIF for bridge on deslavement of port from LAG" +} + +bridge_rif_remaster_port() +{ + RET=0 + + local rifs_occ_t0=$(devlink_resource_occ_get rifs) + ip link set dev $swp1 down + ip link set dev $swp1 master lag1 + ip link set dev $swp1 up + setup_wait_dev $swp1 + local rifs_occ_t1=$(devlink_resource_occ_get rifs) + local expected_rifs=$((rifs_occ_t0 + 1)) + + ((expected_rifs == rifs_occ_t1)) + check_err $? "Expected $expected_rifs RIFs, $rifs_occ_t1 are used" + + log_test "Add RIF for bridge on reenslavement of port to LAG" +} + +trap cleanup EXIT + +setup_prepare +setup_wait + +tests_run + +exit $EXIT_STATUS
Signature · 1 line
2.41.0
This series was applied to netdev/net-next.git (main) by David S. Miller <[email protected]>:
Hello:
This series was applied to netdev/net-next.git (main) by David S. Miller <[email protected]>:
Quoted 9 lines · On Mon, 31 Jul 2023 17:47:14 +0200 you wrote:
In the past, the mlxsw driver made the assumption that the user applies configuration in a bottom-up manner. Thus netdevices needed to be added to the bridge before IP addresses were configured on that bridge or SVI added on top of it, because whatever happened before a netdevice was mlxsw upper was generally ignored by mlxsw. Recently, several patch series were pushed to introduce the bookkeeping and replays necessary to offload the full state, not just the immediate configuration step.
[...]
Here is the summary with links:
- [net-next,1/8] selftests: router_bridge: Add remastering tests
https://git.kernel.org/netdev/net-next/c/eb1388553ef4 - [net-next,2/8] selftests: router_bridge_1d: Add a new selftest https://git.kernel.org/netdev/net-next/c/0a06e0c1af97 - [net-next,3/8] selftests: router_bridge_vlan_upper: Add a new selftest https://git.kernel.org/netdev/net-next/c/49e15dec8b90 - [net-next,4/8] selftests: router_bridge_lag: Add a new selftest https://git.kernel.org/netdev/net-next/c/3f0c4e70a9ef - [net-next,5/8] selftests: router_bridge_1d_lag: Add a new selftest https://git.kernel.org/netdev/net-next/c/24e84656e432 - [net-next,6/8] selftests: mlxsw: rif_lag: Add a new selftest https://git.kernel.org/netdev/net-next/c/4308967d98c3 - [net-next,7/8] selftests: mlxsw: rif_lag_vlan: Add a new selftest https://git.kernel.org/netdev/net-next/c/6b3f46837c32 - [net-next,8/8] selftests: mlxsw: rif_bridge: Add a new selftest https://git.kernel.org/netdev/net-next/c/67d5ffb9ed51
You are awesome, thank you!
Signature · 2 lines
Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html