* [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw
@ 2023-06-20 13:55 Petr Machata
2023-06-20 13:55 ` [PATCH net-next 01/16] selftests: forwarding: q_in_vni: Disable IPv6 autogen on bridges Petr Machata
` (16 more replies)
0 siblings, 17 replies; 18+ messages in thread
From: Petr Machata @ 2023-06-20 13:55 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev
Cc: Petr Machata, Ido Schimmel, Danielle Ratson, Amit Cohen,
Shuah Khan, linux-kselftest, mlxsw
The mlxsw driver currently makes the assumption that the user applies
configuration in a bottom-up manner. Thus netdevices need to be added to
the bridge before IP addresses are configured on that bridge or SVI added
on top of it. Enslaving a netdevice to another netdevice that already has
uppers is in fact forbidden by mlxsw for this reason. Despite this safety,
it is rather easy to get into situations where the offloaded configuration
is just plain wrong.
Over the course of the following several patchsets, mlxsw code is going to
be adjusted to diminish the space of wrongly offloaded configurations.
Ideally the offload state will reflect the actual state, regardless of the
sequence of operation used to construct that state.
Several selftests build configurations that will not be offloadable in the
future on some systems. The reason is that what will get offloaded is the
actual configuration, not the configuration steps.
For example, when a port is added to a bridge that has an IP address, that
bridge will get a RIF, which it would not have with the current code. But
on Nvidia Spectrum-1 machines, MAC addresses of all RIFs need to have the
same prefix, which the bridge will violate. The RIF thus couldn't be
created, and the enslavement is therefore canceled, because it would lead
to an unoffloadable configuration. This breaks some selftests.
In this patchset, adjust selftests to avoid the configurations that mlxsw
would be incapable of offloading, while maintaining relevance with regards
to the feature that is being tested. There are generally two cases of
fixes:
- Disabling IPv6 autogen on bridges that do not participate in routing,
either because of the abovementioned requirement to keep the same MAC
prefix on all in-HW router interfaces, or, on 802.1ad bridges, because
in-HW router interfaces are not supported at all.
- Setting the bridge MAC address to what it will become after the first
member port is attached, so that the in-HW router interface is created
with a supported MAC address.
The patchset is then split thus:
- Patches #1-#7 adjust generic selftests
- Patches #8-#16 adjust mlxsw-specific selftests
Petr Machata (16):
selftests: forwarding: q_in_vni: Disable IPv6 autogen on bridges
selftests: forwarding: dual_vxlan_bridge: Disable IPv6 autogen on
bridges
selftests: forwarding: skbedit_priority: Disable IPv6 autogen on a
bridge
selftests: forwarding: pedit_dsfield: Disable IPv6 autogen on a bridge
selftests: forwarding: mirror_gre_*: Disable IPv6 autogen on bridges
selftests: forwarding: mirror_gre_*: Use port MAC for bridge address
selftests: forwarding: router_bridge: Use port MAC for bridge address
selftests: mlxsw: q_in_q_veto: Disable IPv6 autogen on bridges
selftests: mlxsw: extack: Disable IPv6 autogen on bridges
selftests: mlxsw: mirror_gre_scale: Disable IPv6 autogen on a bridge
selftests: mlxsw: qos_dscp_bridge: Disable IPv6 autogen on a bridge
selftests: mlxsw: qos_ets_strict: Disable IPv6 autogen on bridges
selftests: mlxsw: qos_mc_aware: Disable IPv6 autogen on bridges
selftests: mlxsw: spectrum: q_in_vni_veto: Disable IPv6 autogen on a
bridge
selftests: mlxsw: vxlan: Disable IPv6 autogen on bridges
selftests: mlxsw: one_armed_router: Use port MAC for bridge address
.../selftests/drivers/net/mlxsw/extack.sh | 24 ++++++++---
.../drivers/net/mlxsw/mirror_gre_scale.sh | 1 +
.../drivers/net/mlxsw/one_armed_router.sh | 3 +-
.../drivers/net/mlxsw/q_in_q_veto.sh | 8 ++++
.../drivers/net/mlxsw/qos_dscp_bridge.sh | 1 +
.../drivers/net/mlxsw/qos_ets_strict.sh | 8 +++-
.../drivers/net/mlxsw/qos_mc_aware.sh | 2 +
.../net/mlxsw/spectrum/q_in_vni_veto.sh | 1 +
.../selftests/drivers/net/mlxsw/vxlan.sh | 41 ++++++++++++++-----
.../net/forwarding/dual_vxlan_bridge.sh | 1 +
.../net/forwarding/mirror_gre_bound.sh | 1 +
.../net/forwarding/mirror_gre_bridge_1d.sh | 3 +-
.../forwarding/mirror_gre_bridge_1d_vlan.sh | 3 +-
.../forwarding/mirror_gre_bridge_1q_lag.sh | 3 +-
.../net/forwarding/mirror_topo_lib.sh | 1 +
.../selftests/net/forwarding/pedit_dsfield.sh | 4 +-
.../selftests/net/forwarding/q_in_vni.sh | 1 +
.../selftests/net/forwarding/router_bridge.sh | 3 +-
.../net/forwarding/skbedit_priority.sh | 4 +-
19 files changed, 88 insertions(+), 25 deletions(-)
--
2.40.1
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH net-next 01/16] selftests: forwarding: q_in_vni: Disable IPv6 autogen on bridges
2023-06-20 13:55 [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw Petr Machata
@ 2023-06-20 13:55 ` Petr Machata
2023-06-20 13:55 ` [PATCH net-next 02/16] selftests: forwarding: dual_vxlan_bridge: " Petr Machata
` (15 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Petr Machata @ 2023-06-20 13:55 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev
Cc: Petr Machata, Ido Schimmel, Danielle Ratson, Amit Cohen,
Shuah Khan, linux-kselftest, mlxsw
In a future patch, mlxsw will start adding RIFs to uppers of front panel
port netdevices, if they have an IP address.
This will cause this selftest to fail spuriously. The swp enslavement to
the 802.1ad bridge is not allowed, because RIFs are not allowed to be
created for 802.1ad bridges, but the address indicates one needs to be
created.
Fix by disabling automatic IPv6 address generation for the HW-offloaded
bridge in this selftest, thus exempting it from mlxsw router attention.
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Amit Cohen <amcohen@nvidia.com>
---
tools/testing/selftests/net/forwarding/q_in_vni.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/testing/selftests/net/forwarding/q_in_vni.sh b/tools/testing/selftests/net/forwarding/q_in_vni.sh
index 4c50c0234bce..798b13525c02 100755
--- a/tools/testing/selftests/net/forwarding/q_in_vni.sh
+++ b/tools/testing/selftests/net/forwarding/q_in_vni.sh
@@ -137,6 +137,7 @@ switch_create()
{
ip link add name br1 type bridge vlan_filtering 1 vlan_protocol 802.1ad \
vlan_default_pvid 0 mcast_snooping 0
+ ip link set dev br1 addrgenmode none
# Make sure the bridge uses the MAC address of the local port and not
# that of the VxLAN's device.
ip link set dev br1 address $(mac_get $swp1)
--
2.40.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH net-next 02/16] selftests: forwarding: dual_vxlan_bridge: Disable IPv6 autogen on bridges
2023-06-20 13:55 [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw Petr Machata
2023-06-20 13:55 ` [PATCH net-next 01/16] selftests: forwarding: q_in_vni: Disable IPv6 autogen on bridges Petr Machata
@ 2023-06-20 13:55 ` Petr Machata
2023-06-20 13:55 ` [PATCH net-next 03/16] selftests: forwarding: skbedit_priority: Disable IPv6 autogen on a bridge Petr Machata
` (14 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Petr Machata @ 2023-06-20 13:55 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev
Cc: Petr Machata, Ido Schimmel, Danielle Ratson, Amit Cohen,
Shuah Khan, linux-kselftest, mlxsw
In a future patch, mlxsw will start adding RIFs to uppers of front panel
port netdevices, if they have an IP address.
This will cause this selftest to fail spuriously. The swp enslavement to
the 802.1ad bridge is not allowed, because RIFs are not allowed to be
created for 802.1ad bridges, but the address indicates one needs to be
created.
Fix by disabling automatic IPv6 address generation for the HW-offloaded
bridge in this selftest, thus exempting it from mlxsw router attention.
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Amit Cohen <amcohen@nvidia.com>
---
tools/testing/selftests/net/forwarding/dual_vxlan_bridge.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/testing/selftests/net/forwarding/dual_vxlan_bridge.sh b/tools/testing/selftests/net/forwarding/dual_vxlan_bridge.sh
index 5148d97a5df8..68ee92df3e07 100755
--- a/tools/testing/selftests/net/forwarding/dual_vxlan_bridge.sh
+++ b/tools/testing/selftests/net/forwarding/dual_vxlan_bridge.sh
@@ -132,6 +132,7 @@ switch_create()
#### BR1 ####
ip link add name br1 type bridge vlan_filtering 1 \
vlan_protocol 802.1ad vlan_default_pvid 0 mcast_snooping 0
+ ip link set dev br1 addrgenmode none
# Make sure the bridge uses the MAC address of the local port and not
# that of the VxLAN's device.
ip link set dev br1 address $(mac_get $swp1)
--
2.40.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH net-next 03/16] selftests: forwarding: skbedit_priority: Disable IPv6 autogen on a bridge
2023-06-20 13:55 [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw Petr Machata
2023-06-20 13:55 ` [PATCH net-next 01/16] selftests: forwarding: q_in_vni: Disable IPv6 autogen on bridges Petr Machata
2023-06-20 13:55 ` [PATCH net-next 02/16] selftests: forwarding: dual_vxlan_bridge: " Petr Machata
@ 2023-06-20 13:55 ` Petr Machata
2023-06-20 13:55 ` [PATCH net-next 04/16] selftests: forwarding: pedit_dsfield: " Petr Machata
` (13 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Petr Machata @ 2023-06-20 13:55 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev
Cc: Petr Machata, Ido Schimmel, Danielle Ratson, Amit Cohen,
Shuah Khan, linux-kselftest, mlxsw
In a future patch, mlxsw will start adding RIFs to uppers of front panel
port netdevices, if they have an IP address.
At the time that the front panel port is enslaved to the bridge, the bridge
MAC address does not have the same prefix as other interfaces in the
system. On Nvidia Spectrum-1 machines all the RIFs have to have the same
38-bit MAC address prefix. Since the bridge does not obey this limitation,
the RIF cannot be created, and the enslavement attempt is vetoed on the
grounds of the configuration not being offloadable.
The selftest itself however checks operation of pedit on IPv4 and IPv6
dsfield and its parts. The bridge thus does not need to participate in
routing traffic and the IP address or the RIF are irrelevant.
Fix by disabling automatic IPv6 address generation for the HW-offloaded
bridge in this selftest, thus exempting it from mlxsw router attention.
Since the bridge is only used for L2 forwarding, this change should not
hinder usefulness of this selftest for testing SW datapath or HW datapaths
in other devices.
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Danielle Ratson <danieller@nvidia.com>
---
tools/testing/selftests/net/forwarding/pedit_dsfield.sh | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/net/forwarding/pedit_dsfield.sh b/tools/testing/selftests/net/forwarding/pedit_dsfield.sh
index 64fbd211d907..af008fbf2725 100755
--- a/tools/testing/selftests/net/forwarding/pedit_dsfield.sh
+++ b/tools/testing/selftests/net/forwarding/pedit_dsfield.sh
@@ -60,7 +60,9 @@ h2_destroy()
switch_create()
{
- ip link add name br1 up type bridge vlan_filtering 1
+ ip link add name br1 type bridge vlan_filtering 1
+ ip link set dev br1 addrgenmode none
+ ip link set dev br1 up
ip link set dev $swp1 master br1
ip link set dev $swp1 up
ip link set dev $swp2 master br1
--
2.40.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH net-next 04/16] selftests: forwarding: pedit_dsfield: Disable IPv6 autogen on a bridge
2023-06-20 13:55 [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw Petr Machata
` (2 preceding siblings ...)
2023-06-20 13:55 ` [PATCH net-next 03/16] selftests: forwarding: skbedit_priority: Disable IPv6 autogen on a bridge Petr Machata
@ 2023-06-20 13:55 ` Petr Machata
2023-06-20 13:55 ` [PATCH net-next 05/16] selftests: forwarding: mirror_gre_*: Disable IPv6 autogen on bridges Petr Machata
` (12 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Petr Machata @ 2023-06-20 13:55 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev
Cc: Petr Machata, Ido Schimmel, Danielle Ratson, Amit Cohen,
Shuah Khan, linux-kselftest, mlxsw
In a future patch, mlxsw will start adding RIFs to uppers of front panel
port netdevices, if they have an IP address.
At the time that the front panel port is enslaved to the bridge, the bridge
MAC address does not have the same prefix as other interfaces in the
system. On Nvidia Spectrum-1 machines all the RIFs have to have the same
38-bit MAC address prefix. Since the bridge does not obey this limitation,
the RIF cannot be created, and the enslavement attempt is vetoed on the
grounds of the configuration not being offloadable.
The selftest itself however checks whether skbedit changes packet priority
as appropriate. The bridge thus does not need to participate in routing
traffic and the IP address or the RIF are irrelevant.
Fix by disabling automatic IPv6 address generation for the HW-offloaded
bridge in this selftest, thus exempting it from mlxsw router attention.
Since the bridge is only used for L2 forwarding, this change should not
hinder usefulness of this selftest for testing SW datapath or HW datapaths
in other devices.
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Danielle Ratson <danieller@nvidia.com>
---
tools/testing/selftests/net/forwarding/skbedit_priority.sh | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/net/forwarding/skbedit_priority.sh b/tools/testing/selftests/net/forwarding/skbedit_priority.sh
index bde11dc27873..3dd5fcbd3eaa 100755
--- a/tools/testing/selftests/net/forwarding/skbedit_priority.sh
+++ b/tools/testing/selftests/net/forwarding/skbedit_priority.sh
@@ -54,7 +54,9 @@ h2_destroy()
switch_create()
{
- ip link add name br1 up type bridge vlan_filtering 1
+ ip link add name br1 type bridge vlan_filtering 1
+ ip link set dev br1 addrgenmode none
+ ip link set dev br1 up
ip link set dev $swp1 master br1
ip link set dev $swp1 up
ip link set dev $swp2 master br1
--
2.40.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH net-next 05/16] selftests: forwarding: mirror_gre_*: Disable IPv6 autogen on bridges
2023-06-20 13:55 [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw Petr Machata
` (3 preceding siblings ...)
2023-06-20 13:55 ` [PATCH net-next 04/16] selftests: forwarding: pedit_dsfield: " Petr Machata
@ 2023-06-20 13:55 ` Petr Machata
2023-06-20 13:55 ` [PATCH net-next 06/16] selftests: forwarding: mirror_gre_*: Use port MAC for bridge address Petr Machata
` (11 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Petr Machata @ 2023-06-20 13:55 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev
Cc: Petr Machata, Ido Schimmel, Danielle Ratson, Amit Cohen,
Shuah Khan, linux-kselftest, mlxsw
In a future patch, mlxsw will start adding RIFs to uppers of front panel
port netdevices, if they have an IP address.
At the time that the front panel port is enslaved to the bridge, the bridge
MAC address does not have the same prefix as other interfaces in the
system. On Nvidia Spectrum-1 machines all the RIFs have to have the same
38-bit MAC address prefix. Since the bridge does not obey this limitation,
the RIF cannot be created, and the enslavement attempt is vetoed on the
grounds of the configuration not being offloadable.
These two selftests however check mirroring traffic to a gretap netdevice.
The bridge here does not participate in routing traffic and the IP address
or the RIF are irrelevant.
Fix by disabling automatic IPv6 address generation for the HW-offloaded
bridges in these selftests, thus exempting them from mlxsw router
attention. Since the bridges are only used for L2 forwarding, this change
should not hinder usefulness of this selftest for testing SW datapath or HW
datapaths in other devices.
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Danielle Ratson <danieller@nvidia.com>
---
tools/testing/selftests/net/forwarding/mirror_gre_bound.sh | 1 +
tools/testing/selftests/net/forwarding/mirror_topo_lib.sh | 1 +
2 files changed, 2 insertions(+)
diff --git a/tools/testing/selftests/net/forwarding/mirror_gre_bound.sh b/tools/testing/selftests/net/forwarding/mirror_gre_bound.sh
index 360ca133bead..6c257ec03756 100755
--- a/tools/testing/selftests/net/forwarding/mirror_gre_bound.sh
+++ b/tools/testing/selftests/net/forwarding/mirror_gre_bound.sh
@@ -98,6 +98,7 @@ switch_create()
# Bridge between H1 and H2.
ip link add name br1 type bridge vlan_filtering 1
+ ip link set dev br1 addrgenmode none
ip link set dev br1 up
ip link set dev $swp1 master br1
diff --git a/tools/testing/selftests/net/forwarding/mirror_topo_lib.sh b/tools/testing/selftests/net/forwarding/mirror_topo_lib.sh
index 04979e5962e7..bb1adbb7b98a 100644
--- a/tools/testing/selftests/net/forwarding/mirror_topo_lib.sh
+++ b/tools/testing/selftests/net/forwarding/mirror_topo_lib.sh
@@ -60,6 +60,7 @@ mirror_topo_switch_create()
ip link set dev $swp3 up
ip link add name br1 type bridge vlan_filtering 1
+ ip link set dev br1 addrgenmode none
ip link set dev br1 up
ip link set dev $swp1 master br1
--
2.40.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH net-next 06/16] selftests: forwarding: mirror_gre_*: Use port MAC for bridge address
2023-06-20 13:55 [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw Petr Machata
` (4 preceding siblings ...)
2023-06-20 13:55 ` [PATCH net-next 05/16] selftests: forwarding: mirror_gre_*: Disable IPv6 autogen on bridges Petr Machata
@ 2023-06-20 13:55 ` Petr Machata
2023-06-20 13:55 ` [PATCH net-next 07/16] selftests: forwarding: router_bridge: " Petr Machata
` (10 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Petr Machata @ 2023-06-20 13:55 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev
Cc: Petr Machata, Ido Schimmel, Danielle Ratson, Amit Cohen,
Shuah Khan, linux-kselftest, mlxsw
In a future patch, mlxsw will start adding RIFs to uppers of front panel
port netdevices, if they have an IP address.
At the time that the front panel port is enslaved to the bridge, the bridge
MAC address does not have the same prefix as other interfaces in the
system. On Nvidia Spectrum-1 machines all the RIFs have to have the same
38-bit MAC address prefix. Since the bridge does not obey this limitation,
the RIF cannot be created, and the enslavement attempt is vetoed on the
grounds of the configuration not being offloadable.
The bridge eventually inherits MAC address from its first member, after the
enslavement is acked. A number of (mainly VXLAN) selftests already work
around the problem by setting the MAC address to whatever it will
eventually be anyway. Do the same for several mirror_gre selftests.
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Danielle Ratson <danieller@nvidia.com>
---
tools/testing/selftests/net/forwarding/mirror_gre_bridge_1d.sh | 3 ++-
.../selftests/net/forwarding/mirror_gre_bridge_1d_vlan.sh | 3 ++-
.../selftests/net/forwarding/mirror_gre_bridge_1q_lag.sh | 3 ++-
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/tools/testing/selftests/net/forwarding/mirror_gre_bridge_1d.sh b/tools/testing/selftests/net/forwarding/mirror_gre_bridge_1d.sh
index aec752a22e9e..04fd14b0a9b7 100755
--- a/tools/testing/selftests/net/forwarding/mirror_gre_bridge_1d.sh
+++ b/tools/testing/selftests/net/forwarding/mirror_gre_bridge_1d.sh
@@ -65,7 +65,8 @@ setup_prepare()
vrf_prepare
mirror_gre_topo_create
- ip link add name br2 type bridge vlan_filtering 0
+ ip link add name br2 address $(mac_get $swp3) \
+ type bridge vlan_filtering 0
ip link set dev br2 up
ip link set dev $swp3 master br2
diff --git a/tools/testing/selftests/net/forwarding/mirror_gre_bridge_1d_vlan.sh b/tools/testing/selftests/net/forwarding/mirror_gre_bridge_1d_vlan.sh
index 1b27f2b0f196..f35313c76fac 100755
--- a/tools/testing/selftests/net/forwarding/mirror_gre_bridge_1d_vlan.sh
+++ b/tools/testing/selftests/net/forwarding/mirror_gre_bridge_1d_vlan.sh
@@ -35,7 +35,8 @@ setup_prepare()
vrf_prepare
mirror_gre_topo_create
- ip link add name br2 type bridge vlan_filtering 0
+ ip link add name br2 address $(mac_get $swp3) \
+ type bridge vlan_filtering 0
ip link set dev br2 up
vlan_create $swp3 555
diff --git a/tools/testing/selftests/net/forwarding/mirror_gre_bridge_1q_lag.sh b/tools/testing/selftests/net/forwarding/mirror_gre_bridge_1q_lag.sh
index 91e431cd919e..c53148b1dc63 100755
--- a/tools/testing/selftests/net/forwarding/mirror_gre_bridge_1q_lag.sh
+++ b/tools/testing/selftests/net/forwarding/mirror_gre_bridge_1q_lag.sh
@@ -140,7 +140,8 @@ switch_create()
ip link set dev $swp3 up
ip link set dev $swp4 up
- ip link add name br1 type bridge vlan_filtering 1
+ ip link add name br1 address $(mac_get $swp3) \
+ type bridge vlan_filtering 1
team_create lag loadbalance $swp3 $swp4
ip link set dev lag master br1
--
2.40.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH net-next 07/16] selftests: forwarding: router_bridge: Use port MAC for bridge address
2023-06-20 13:55 [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw Petr Machata
` (5 preceding siblings ...)
2023-06-20 13:55 ` [PATCH net-next 06/16] selftests: forwarding: mirror_gre_*: Use port MAC for bridge address Petr Machata
@ 2023-06-20 13:55 ` Petr Machata
2023-06-20 13:55 ` [PATCH net-next 08/16] selftests: mlxsw: q_in_q_veto: Disable IPv6 autogen on bridges Petr Machata
` (9 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Petr Machata @ 2023-06-20 13:55 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev
Cc: Petr Machata, Ido Schimmel, Danielle Ratson, Amit Cohen,
Shuah Khan, linux-kselftest, mlxsw
In a future patch, mlxsw will start adding RIFs to uppers of front panel
port netdevices, if they have an IP address.
At the time that the front panel port is enslaved to the bridge, the bridge
MAC address does not have the same prefix as other interfaces in the
system. On Nvidia Spectrum-1 machines all the RIFs have to have the same
38-bit MAC address prefix. Since the bridge does not obey this limitation,
the RIF cannot be created, and the enslavement attempt is vetoed on the
grounds of the configuration not being offloadable.
The bridge eventually inherits MAC address from its first member, after the
enslavement is acked. A number of (mainly VXLAN) selftests already work
around the problem by setting the MAC address to whatever it will
eventually be anyway. Do the same here.
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Danielle Ratson <danieller@nvidia.com>
---
tools/testing/selftests/net/forwarding/router_bridge.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/net/forwarding/router_bridge.sh b/tools/testing/selftests/net/forwarding/router_bridge.sh
index ebc596a272f7..8ce0aed54ece 100755
--- a/tools/testing/selftests/net/forwarding/router_bridge.sh
+++ b/tools/testing/selftests/net/forwarding/router_bridge.sh
@@ -38,7 +38,8 @@ h2_destroy()
router_create()
{
- ip link add name br1 type bridge vlan_filtering 1
+ ip link add name br1 address $(mac_get $swp1) \
+ type bridge vlan_filtering 1
ip link set dev br1 up
ip link set dev $swp1 master br1
--
2.40.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH net-next 08/16] selftests: mlxsw: q_in_q_veto: Disable IPv6 autogen on bridges
2023-06-20 13:55 [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw Petr Machata
` (6 preceding siblings ...)
2023-06-20 13:55 ` [PATCH net-next 07/16] selftests: forwarding: router_bridge: " Petr Machata
@ 2023-06-20 13:55 ` Petr Machata
2023-06-20 13:55 ` [PATCH net-next 09/16] selftests: mlxsw: extack: " Petr Machata
` (8 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Petr Machata @ 2023-06-20 13:55 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev
Cc: Petr Machata, Ido Schimmel, Danielle Ratson, Amit Cohen,
Shuah Khan, linux-kselftest, mlxsw
In a future patch, mlxsw will start adding RIFs to uppers of front panel
port netdevices, if they have an IP address.
The swp enslavement to the 802.1ad bridge is not allowed, because RIFs are
not allowed to be created for 802.1ad bridges, but the address indicates
one needs to be created. Thus the veto selftests fail already during the
port enslavement. Then the attempt to create a VLAN on top of the same
bridge is not vetoed, because the bridge is not related to mlxsw, and the
selftest fails.
Fix by disabling automatic IPv6 address generation for the bridges in this
selftest, thus exempting them from the mlxsw router attention.
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Amit Cohen <amcohen@nvidia.com>
---
tools/testing/selftests/drivers/net/mlxsw/q_in_q_veto.sh | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/tools/testing/selftests/drivers/net/mlxsw/q_in_q_veto.sh b/tools/testing/selftests/drivers/net/mlxsw/q_in_q_veto.sh
index 7edaed8eb86a..00d55b0e98c1 100755
--- a/tools/testing/selftests/drivers/net/mlxsw/q_in_q_veto.sh
+++ b/tools/testing/selftests/drivers/net/mlxsw/q_in_q_veto.sh
@@ -48,6 +48,7 @@ create_vlan_upper_on_top_of_bridge()
ip link add dev br0 type bridge vlan_filtering 1 \
vlan_protocol $bridge_proto vlan_default_pvid 0 mcast_snooping 0
+ ip link set dev br0 addrgenmode none
ip link set dev br0 up
ip link set dev $swp1 master br0
@@ -88,6 +89,7 @@ create_8021ad_vlan_upper_on_top_bridge_port()
ip link add dev br0 type bridge vlan_filtering 1 \
vlan_default_pvid 0 mcast_snooping 0
+ ip link set dev br0 addrgenmode none
ip link set dev $swp1 master br0
ip link set dev br0 up
@@ -155,6 +157,7 @@ create_vlan_upper_on_top_front_panel_enslaved_to_8021ad_bridge()
ip link add dev br0 type bridge vlan_filtering 1 \
vlan_protocol 802.1ad vlan_default_pvid 0 mcast_snooping 0
+ ip link set dev br0 addrgenmode none
ip link set dev br0 up
ip link set dev $swp1 master br0
@@ -177,6 +180,7 @@ create_vlan_upper_on_top_lag_enslaved_to_8021ad_bridge()
ip link add dev br0 type bridge vlan_filtering 1 \
vlan_protocol 802.1ad vlan_default_pvid 0 mcast_snooping 0
+ ip link set dev br0 addrgenmode none
ip link set dev br0 up
ip link add name bond1 type bond mode 802.3ad
@@ -203,6 +207,7 @@ enslave_front_panel_with_vlan_upper_to_8021ad_bridge()
ip link add dev br0 type bridge vlan_filtering 1 \
vlan_protocol 802.1ad vlan_default_pvid 0 mcast_snooping 0
+ ip link set dev br0 addrgenmode none
ip link set dev br0 up
ip link add name $swp1.100 link $swp1 type vlan id 100
@@ -225,6 +230,7 @@ enslave_lag_with_vlan_upper_to_8021ad_bridge()
ip link add dev br0 type bridge vlan_filtering 1 \
vlan_protocol 802.1ad vlan_default_pvid 0 mcast_snooping 0
+ ip link set dev br0 addrgenmode none
ip link set dev br0 up
ip link add name bond1 type bond mode 802.3ad
@@ -252,6 +258,7 @@ add_ip_address_to_8021ad_bridge()
ip link add dev br0 type bridge vlan_filtering 1 \
vlan_protocol 802.1ad vlan_default_pvid 0 mcast_snooping 0
+ ip link set dev br0 addrgenmode none
ip link set dev br0 up
ip link set dev $swp1 master br0
@@ -273,6 +280,7 @@ switch_bridge_protocol_from_8021q_to_8021ad()
ip link add dev br0 type bridge vlan_filtering 1 \
vlan_protocol 802.1ad vlan_default_pvid 0 mcast_snooping 0
+ ip link set dev br0 addrgenmode none
ip link set dev br0 up
ip link set dev $swp1 master br0
--
2.40.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH net-next 09/16] selftests: mlxsw: extack: Disable IPv6 autogen on bridges
2023-06-20 13:55 [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw Petr Machata
` (7 preceding siblings ...)
2023-06-20 13:55 ` [PATCH net-next 08/16] selftests: mlxsw: q_in_q_veto: Disable IPv6 autogen on bridges Petr Machata
@ 2023-06-20 13:55 ` Petr Machata
2023-06-20 13:55 ` [PATCH net-next 10/16] selftests: mlxsw: mirror_gre_scale: Disable IPv6 autogen on a bridge Petr Machata
` (7 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Petr Machata @ 2023-06-20 13:55 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev
Cc: Petr Machata, Ido Schimmel, Danielle Ratson, Amit Cohen,
Shuah Khan, linux-kselftest, mlxsw
In a future patch, mlxsw will start adding RIFs to uppers of front panel
port netdevices, if they have an IP address.
At the time that the front panel port is enslaved to the bridge (this holds
for all bridges used here), the bridge MAC address does not have the same
prefix as other interfaces in the system. On Nvidia Spectrum-1 machines all
the RIFs have to have the same 38-bit MAC address prefix. Since the bridge
does not obey this limitation, the RIF cannot be created, and the
enslavement attempt is vetoed on the grounds of the configuration not being
offloadable.
The selftest itself however checks whether a different vetoed aspect of the
configuration provides an extack. The IP address or the RIF are irrelevant.
Fix by disabling automatic IPv6 address generation for the HW-offloaded
bridges in this selftest, thus exempting them from mlxsw router attention.
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Danielle Ratson <danieller@nvidia.com>
---
.../selftests/drivers/net/mlxsw/extack.sh | 24 ++++++++++++++-----
1 file changed, 18 insertions(+), 6 deletions(-)
diff --git a/tools/testing/selftests/drivers/net/mlxsw/extack.sh b/tools/testing/selftests/drivers/net/mlxsw/extack.sh
index 7a0a99c1d22f..6fd422d38fe8 100755
--- a/tools/testing/selftests/drivers/net/mlxsw/extack.sh
+++ b/tools/testing/selftests/drivers/net/mlxsw/extack.sh
@@ -35,7 +35,9 @@ netdev_pre_up_test()
{
RET=0
- ip link add name br1 up type bridge vlan_filtering 0 mcast_snooping 0
+ ip link add name br1 type bridge vlan_filtering 0 mcast_snooping 0
+ ip link set dev br1 addrgenmode none
+ ip link set dev br1 up
ip link add name vx1 up type vxlan id 1000 \
local 192.0.2.17 remote 192.0.2.18 \
dstport 4789 nolearning noudpcsum tos inherit ttl 100
@@ -46,7 +48,9 @@ netdev_pre_up_test()
ip link set dev $swp1 master br1
check_err $?
- ip link add name br2 up type bridge vlan_filtering 0 mcast_snooping 0
+ ip link add name br2 type bridge vlan_filtering 0 mcast_snooping 0
+ ip link set dev br2 addrgenmode none
+ ip link set dev br2 up
ip link add name vx2 up type vxlan id 2000 \
local 192.0.2.17 remote 192.0.2.18 \
dstport 4789 nolearning noudpcsum tos inherit ttl 100
@@ -81,7 +85,9 @@ vxlan_vlan_add_test()
{
RET=0
- ip link add name br1 up type bridge vlan_filtering 1 mcast_snooping 0
+ ip link add name br1 type bridge vlan_filtering 1 mcast_snooping 0
+ ip link set dev br1 addrgenmode none
+ ip link set dev br1 up
# Unsupported configuration: mlxsw demands VXLAN with "noudpcsum".
ip link add name vx1 up type vxlan id 1000 \
@@ -117,7 +123,9 @@ vxlan_bridge_create_test()
dstport 4789 tos inherit ttl 100
# Test with VLAN-aware bridge.
- ip link add name br1 up type bridge vlan_filtering 1 mcast_snooping 0
+ ip link add name br1 type bridge vlan_filtering 1 mcast_snooping 0
+ ip link set dev br1 addrgenmode none
+ ip link set dev br1 up
ip link set dev vx1 master br1
@@ -142,8 +150,12 @@ bridge_create_test()
{
RET=0
- ip link add name br1 up type bridge vlan_filtering 1
- ip link add name br2 up type bridge vlan_filtering 1
+ ip link add name br1 type bridge vlan_filtering 1
+ ip link set dev br1 addrgenmode none
+ ip link set dev br1 up
+ ip link add name br2 type bridge vlan_filtering 1
+ ip link set dev br2 addrgenmode none
+ ip link set dev br2 up
ip link set dev $swp1 master br1
check_err $?
--
2.40.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH net-next 10/16] selftests: mlxsw: mirror_gre_scale: Disable IPv6 autogen on a bridge
2023-06-20 13:55 [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw Petr Machata
` (8 preceding siblings ...)
2023-06-20 13:55 ` [PATCH net-next 09/16] selftests: mlxsw: extack: " Petr Machata
@ 2023-06-20 13:55 ` Petr Machata
2023-06-20 13:55 ` [PATCH net-next 11/16] selftests: mlxsw: qos_dscp_bridge: " Petr Machata
` (6 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Petr Machata @ 2023-06-20 13:55 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev
Cc: Petr Machata, Ido Schimmel, Danielle Ratson, Amit Cohen,
Shuah Khan, linux-kselftest, mlxsw
In a future patch, mlxsw will start adding RIFs to uppers of front panel
port netdevices, if they have an IP address.
At the time that the front panel port is enslaved to the bridge, the bridge
MAC address does not have the same prefix as other interfaces in the
system. On Nvidia Spectrum-1 machines all the RIFs have to have the same
38-bit MAC address prefix. Since the bridge does not obey this limitation,
the RIF cannot be created, and the enslavement attempt is vetoed on the
grounds of the configuration not being offloadable.
The selftest itself however checks how many mirroring sessions a machine is
capable of offloading. The IP address or the RIF are irrelevant.
Fix by disabling automatic IPv6 address generation for the HW-offloaded
bridge in this selftest, thus exempting it from mlxsw router attention.
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Danielle Ratson <danieller@nvidia.com>
---
tools/testing/selftests/drivers/net/mlxsw/mirror_gre_scale.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/testing/selftests/drivers/net/mlxsw/mirror_gre_scale.sh b/tools/testing/selftests/drivers/net/mlxsw/mirror_gre_scale.sh
index e00435753008..e5589e2fca85 100644
--- a/tools/testing/selftests/drivers/net/mlxsw/mirror_gre_scale.sh
+++ b/tools/testing/selftests/drivers/net/mlxsw/mirror_gre_scale.sh
@@ -165,6 +165,7 @@ mirror_gre_setup_prepare()
simple_if_init $h3
ip link add name br1 type bridge vlan_filtering 1
+ ip link set dev br1 addrgenmode none
ip link set dev br1 up
ip link set dev $swp1 master br1
--
2.40.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH net-next 11/16] selftests: mlxsw: qos_dscp_bridge: Disable IPv6 autogen on a bridge
2023-06-20 13:55 [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw Petr Machata
` (9 preceding siblings ...)
2023-06-20 13:55 ` [PATCH net-next 10/16] selftests: mlxsw: mirror_gre_scale: Disable IPv6 autogen on a bridge Petr Machata
@ 2023-06-20 13:55 ` Petr Machata
2023-06-20 13:55 ` [PATCH net-next 12/16] selftests: mlxsw: qos_ets_strict: Disable IPv6 autogen on bridges Petr Machata
` (5 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Petr Machata @ 2023-06-20 13:55 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev
Cc: Petr Machata, Ido Schimmel, Danielle Ratson, Amit Cohen,
Shuah Khan, linux-kselftest, mlxsw
In a future patch, mlxsw will start adding RIFs to uppers of front panel
port netdevices, if they have an IP address.
At the time that the front panel port is enslaved to the bridge, the bridge
MAC address does not have the same prefix as other interfaces in the
system. On Nvidia Spectrum-1 machines all the RIFs have to have the same
38-bit MAC address prefix. Since the bridge does not obey this limitation,
the RIF cannot be created, and the enslavement attempt is vetoed on the
grounds of the configuration not being offloadable.
The selftest itself however checks DCB DSCP-based prioritization, and the
bridge serves for its L2 forwarding capabilities, and does not need to
participate in routing traffic. The IP address or the RIF are irrelevant.
Fix by disabling automatic IPv6 address generation for the HW-offloaded
bridge in this selftest, thus exempting it from mlxsw router attention.
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Danielle Ratson <danieller@nvidia.com>
---
tools/testing/selftests/drivers/net/mlxsw/qos_dscp_bridge.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/testing/selftests/drivers/net/mlxsw/qos_dscp_bridge.sh b/tools/testing/selftests/drivers/net/mlxsw/qos_dscp_bridge.sh
index 87c41f5727c9..914c63d6318a 100755
--- a/tools/testing/selftests/drivers/net/mlxsw/qos_dscp_bridge.sh
+++ b/tools/testing/selftests/drivers/net/mlxsw/qos_dscp_bridge.sh
@@ -65,6 +65,7 @@ h2_destroy()
switch_create()
{
ip link add name br1 type bridge vlan_filtering 1
+ ip link set dev br1 addrgenmode none
ip link set dev br1 up
ip link set dev $swp1 master br1
ip link set dev $swp1 up
--
2.40.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH net-next 12/16] selftests: mlxsw: qos_ets_strict: Disable IPv6 autogen on bridges
2023-06-20 13:55 [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw Petr Machata
` (10 preceding siblings ...)
2023-06-20 13:55 ` [PATCH net-next 11/16] selftests: mlxsw: qos_dscp_bridge: " Petr Machata
@ 2023-06-20 13:55 ` Petr Machata
2023-06-20 13:55 ` [PATCH net-next 13/16] selftests: mlxsw: qos_mc_aware: " Petr Machata
` (4 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Petr Machata @ 2023-06-20 13:55 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev
Cc: Petr Machata, Ido Schimmel, Danielle Ratson, Amit Cohen,
Shuah Khan, linux-kselftest, mlxsw
In a future patch, mlxsw will start adding RIFs to uppers of front panel
port netdevices, if they have an IP address.
At the time that the front panel port is enslaved to the bridge (this holds
for both bridges used here), the bridge MAC address does not have the same
prefix as other interfaces in the system. On Nvidia Spectrum-1 machines all
the RIFs have to have the same 38-bit MAC address prefix. Since the bridge
does not obey this limitation, the RIF cannot be created, and the
enslavement attempt is vetoed on the grounds of the configuration not being
offloadable.
The selftest itself however checks traffic prioritization and scheduling,
and the bridges serve for their L2 forwarding capabilities, and do not need
to participate in routing traffic. The IP addresses or the RIFs are
irrelevant.
Fix by disabling automatic IPv6 address generation for the HW-offloaded
bridges in this selftest, thus exempting them from mlxsw router attention.
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Danielle Ratson <danieller@nvidia.com>
---
.../testing/selftests/drivers/net/mlxsw/qos_ets_strict.sh | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/drivers/net/mlxsw/qos_ets_strict.sh b/tools/testing/selftests/drivers/net/mlxsw/qos_ets_strict.sh
index 690d8daa71b4..fee74f215cec 100755
--- a/tools/testing/selftests/drivers/net/mlxsw/qos_ets_strict.sh
+++ b/tools/testing/selftests/drivers/net/mlxsw/qos_ets_strict.sh
@@ -138,11 +138,15 @@ switch_create()
vlan_create $swp3 111
vlan_create $swp3 222
- ip link add name br111 up type bridge vlan_filtering 0
+ ip link add name br111 type bridge vlan_filtering 0
+ ip link set dev br111 addrgenmode none
+ ip link set dev br111 up
ip link set dev $swp1.111 master br111
ip link set dev $swp3.111 master br111
- ip link add name br222 up type bridge vlan_filtering 0
+ ip link add name br222 type bridge vlan_filtering 0
+ ip link set dev br222 addrgenmode none
+ ip link set dev br222 up
ip link set dev $swp2.222 master br222
ip link set dev $swp3.222 master br222
--
2.40.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH net-next 13/16] selftests: mlxsw: qos_mc_aware: Disable IPv6 autogen on bridges
2023-06-20 13:55 [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw Petr Machata
` (11 preceding siblings ...)
2023-06-20 13:55 ` [PATCH net-next 12/16] selftests: mlxsw: qos_ets_strict: Disable IPv6 autogen on bridges Petr Machata
@ 2023-06-20 13:55 ` Petr Machata
2023-06-20 13:56 ` [PATCH net-next 14/16] selftests: mlxsw: spectrum: q_in_vni_veto: Disable IPv6 autogen on a bridge Petr Machata
` (3 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Petr Machata @ 2023-06-20 13:55 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev
Cc: Petr Machata, Ido Schimmel, Danielle Ratson, Amit Cohen,
Shuah Khan, linux-kselftest, mlxsw
In a future patch, mlxsw will start adding RIFs to uppers of front panel
port netdevices, if they have an IP address.
At the time that the front panel port is enslaved to the bridge (this holds
for both bridges used here), the bridge MAC address does not have the same
prefix as other interfaces in the system. On Nvidia Spectrum-1 machines all
the RIFs have to have the same 38-bit MAC address prefix. Since the bridge
does not obey this limitation, the RIF cannot be created, and the
enslavement attempt is vetoed on the grounds of the configuration not being
offloadable.
The selftest itself however checks traffic prioritization and scheduling,
and the bridges serve for their L2 forwarding capabilities, and do not need
to participate in routing traffic. The IP addresses or the RIFs are
irrelevant.
Fix by disabling automatic IPv6 address generation for the HW-offloaded
bridges in this selftest, thus exempting them from mlxsw router attention.
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Danielle Ratson <danieller@nvidia.com>
---
tools/testing/selftests/drivers/net/mlxsw/qos_mc_aware.sh | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tools/testing/selftests/drivers/net/mlxsw/qos_mc_aware.sh b/tools/testing/selftests/drivers/net/mlxsw/qos_mc_aware.sh
index c8e55fa91660..6d892de43fa8 100755
--- a/tools/testing/selftests/drivers/net/mlxsw/qos_mc_aware.sh
+++ b/tools/testing/selftests/drivers/net/mlxsw/qos_mc_aware.sh
@@ -135,11 +135,13 @@ switch_create()
prio bands 8 priomap 7 7 7 7 7 7 7 7
ip link add name br1 type bridge vlan_filtering 0
+ ip link set dev br1 addrgenmode none
ip link set dev br1 up
ip link set dev $swp1 master br1
ip link set dev $swp3 master br1
ip link add name br111 type bridge vlan_filtering 0
+ ip link set dev br111 addrgenmode none
ip link set dev br111 up
ip link set dev $swp2.111 master br111
ip link set dev $swp3.111 master br111
--
2.40.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH net-next 14/16] selftests: mlxsw: spectrum: q_in_vni_veto: Disable IPv6 autogen on a bridge
2023-06-20 13:55 [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw Petr Machata
` (12 preceding siblings ...)
2023-06-20 13:55 ` [PATCH net-next 13/16] selftests: mlxsw: qos_mc_aware: " Petr Machata
@ 2023-06-20 13:56 ` Petr Machata
2023-06-20 13:56 ` [PATCH net-next 15/16] selftests: mlxsw: vxlan: Disable IPv6 autogen on bridges Petr Machata
` (2 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Petr Machata @ 2023-06-20 13:56 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev
Cc: Petr Machata, Ido Schimmel, Danielle Ratson, Amit Cohen,
Shuah Khan, linux-kselftest, mlxsw
In a future patch, mlxsw will start adding RIFs to uppers of front panel
port netdevices, if they have an IP address.
At the time that the front panel port is enslaved to the bridge, the bridge
MAC address does not have the same prefix as other interfaces in the
system. On Nvidia Spectrum-1 machines all the RIFs have to have the same
38-bit MAC address prefix. Since the bridge does not obey this limitation,
the RIF cannot be created, and the enslavement attempt is vetoed on the
grounds of the configuration not being offloadable.
The selftest itself however checks vetoing of a different aspect of the
configuration and the bridge does not need to participate in routing
traffic. The IP address or the RIF are irrelevant.
Fix by disabling automatic IPv6 address generation for the HW-offloaded
bridge in this selftest, thus exempting it from mlxsw router attention.
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Danielle Ratson <danieller@nvidia.com>
---
.../selftests/drivers/net/mlxsw/spectrum/q_in_vni_veto.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/testing/selftests/drivers/net/mlxsw/spectrum/q_in_vni_veto.sh b/tools/testing/selftests/drivers/net/mlxsw/spectrum/q_in_vni_veto.sh
index f0443b1b05b9..60753d46a2d4 100755
--- a/tools/testing/selftests/drivers/net/mlxsw/spectrum/q_in_vni_veto.sh
+++ b/tools/testing/selftests/drivers/net/mlxsw/spectrum/q_in_vni_veto.sh
@@ -34,6 +34,7 @@ create_vxlan_on_top_of_8021ad_bridge()
ip link add dev br0 type bridge vlan_filtering 1 vlan_protocol 802.1ad \
vlan_default_pvid 0 mcast_snooping 0
+ ip link set dev br0 addrgenmode none
ip link set dev br0 up
ip link add name vx100 type vxlan id 1000 local 192.0.2.17 dstport \
--
2.40.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH net-next 15/16] selftests: mlxsw: vxlan: Disable IPv6 autogen on bridges
2023-06-20 13:55 [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw Petr Machata
` (13 preceding siblings ...)
2023-06-20 13:56 ` [PATCH net-next 14/16] selftests: mlxsw: spectrum: q_in_vni_veto: Disable IPv6 autogen on a bridge Petr Machata
@ 2023-06-20 13:56 ` Petr Machata
2023-06-20 13:56 ` [PATCH net-next 16/16] selftests: mlxsw: one_armed_router: Use port MAC for bridge address Petr Machata
2023-06-21 21:10 ` [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw patchwork-bot+netdevbpf
16 siblings, 0 replies; 18+ messages in thread
From: Petr Machata @ 2023-06-20 13:56 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev
Cc: Petr Machata, Ido Schimmel, Danielle Ratson, Amit Cohen,
Shuah Khan, linux-kselftest, mlxsw
In a future patch, mlxsw will start adding RIFs to uppers of front panel
port netdevices, if they have an IP address.
At the time that the front panel port is enslaved to the bridge (this holds
for all bridges used here), the bridge MAC address does not have the same
prefix as other interfaces in the system. On Nvidia Spectrum-1 machines all
the RIFs have to have the same 38-bit MAC address prefix. Since the bridge
does not obey this limitation, the RIF cannot be created, and the
enslavement attempt is vetoed on the grounds of the configuration not being
offloadable.
The selftest itself however checks various aspects of VXLAN offloading and
the bridges do not need to participate in routing traffic. The IP addresses
or the RIFs are irrelevant.
Fix by disabling automatic IPv6 address generation for the HW-offloaded
bridges in this selftest, thus exempting them from mlxsw router attention.
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Danielle Ratson <danieller@nvidia.com>
---
.../selftests/drivers/net/mlxsw/vxlan.sh | 41 ++++++++++++++-----
1 file changed, 31 insertions(+), 10 deletions(-)
diff --git a/tools/testing/selftests/drivers/net/mlxsw/vxlan.sh b/tools/testing/selftests/drivers/net/mlxsw/vxlan.sh
index 99a332b712f0..4687b0a7dffb 100755
--- a/tools/testing/selftests/drivers/net/mlxsw/vxlan.sh
+++ b/tools/testing/selftests/drivers/net/mlxsw/vxlan.sh
@@ -444,8 +444,12 @@ offload_indication_setup_create()
{
# Create a simple setup with two bridges, each with a VxLAN device
# and one local port
- ip link add name br0 up type bridge mcast_snooping 0
- ip link add name br1 up type bridge mcast_snooping 0
+ ip link add name br0 type bridge mcast_snooping 0
+ ip link set dev br0 addrgenmode none
+ ip link set dev br0 up
+ ip link add name br1 type bridge mcast_snooping 0
+ ip link set dev br1 addrgenmode none
+ ip link set dev br1 up
ip link set dev $swp1 master br0
ip link set dev $swp2 master br1
@@ -646,8 +650,12 @@ offload_indication_decap_route_test()
RET=0
- ip link add name br0 up type bridge mcast_snooping 0
- ip link add name br1 up type bridge mcast_snooping 0
+ ip link add name br0 type bridge mcast_snooping 0
+ ip link set dev br0 addrgenmode none
+ ip link set dev br0 up
+ ip link add name br1 type bridge mcast_snooping 0
+ ip link set dev br1 addrgenmode none
+ ip link set dev br1 up
ip link set dev $swp1 master br0
ip link set dev $swp2 master br1
ip link set dev vxlan0 master br0
@@ -780,7 +788,9 @@ __offload_indication_join_vxlan_first()
offload_indication_join_vxlan_first()
{
- ip link add dev br0 up type bridge mcast_snooping 0
+ ip link add dev br0 type bridge mcast_snooping 0
+ ip link set dev br0 addrgenmode none
+ ip link set dev br0 up
ip link add name vxlan0 up type vxlan id 10 nolearning $UDPCSUM_FLAFS \
ttl 20 tos inherit local $LOCAL_IP_1 dstport 4789
@@ -815,7 +825,9 @@ __offload_indication_join_vxlan_last()
offload_indication_join_vxlan_last()
{
- ip link add dev br0 up type bridge mcast_snooping 0
+ ip link add dev br0 type bridge mcast_snooping 0
+ ip link set dev br0 addrgenmode none
+ ip link set dev br0 up
ip link add name vxlan0 up type vxlan id 10 nolearning $UDPCSUM_FLAFS \
ttl 20 tos inherit local $LOCAL_IP_1 dstport 4789
@@ -842,6 +854,7 @@ sanitization_vlan_aware_test()
RET=0
ip link add dev br0 type bridge mcast_snooping 0 vlan_filtering 1
+ ip link set dev br0 addrgenmode none
ip link add name vxlan10 up master br0 type vxlan id 10 nolearning \
$UDPCSUM_FLAFS ttl 20 tos inherit local $LOCAL_IP_1 dstport 4789
@@ -915,8 +928,10 @@ offload_indication_vlan_aware_setup_create()
{
# Create a simple setup with two VxLAN devices and a single VLAN-aware
# bridge
- ip link add name br0 up type bridge mcast_snooping 0 vlan_filtering 1 \
+ ip link add name br0 type bridge mcast_snooping 0 vlan_filtering 1 \
vlan_default_pvid 0
+ ip link set dev br0 addrgenmode none
+ ip link set dev br0 up
ip link set dev $swp1 master br0
@@ -1060,8 +1075,10 @@ offload_indication_vlan_aware_decap_route_test()
offload_indication_vlan_aware_join_vxlan_first()
{
- ip link add dev br0 up type bridge mcast_snooping 0 \
+ ip link add dev br0 type bridge mcast_snooping 0 \
vlan_filtering 1 vlan_default_pvid 1
+ ip link set dev br0 addrgenmode none
+ ip link set dev br0 up
ip link add name vxlan0 up type vxlan id 10 nolearning $UDPCSUM_FLAFS \
ttl 20 tos inherit local $LOCAL_IP_1 dstport 4789
@@ -1073,8 +1090,10 @@ offload_indication_vlan_aware_join_vxlan_first()
offload_indication_vlan_aware_join_vxlan_last()
{
- ip link add dev br0 up type bridge mcast_snooping 0 \
+ ip link add dev br0 type bridge mcast_snooping 0 \
vlan_filtering 1 vlan_default_pvid 1
+ ip link set dev br0 addrgenmode none
+ ip link set dev br0 up
ip link add name vxlan0 up type vxlan id 10 nolearning $UDPCSUM_FLAFS \
ttl 20 tos inherit local $LOCAL_IP_1 dstport 4789
@@ -1091,8 +1110,10 @@ offload_indication_vlan_aware_l3vni_test()
RET=0
sysctl_set net.ipv6.conf.default.disable_ipv6 1
- ip link add dev br0 up type bridge mcast_snooping 0 \
+ ip link add dev br0 type bridge mcast_snooping 0 \
vlan_filtering 1 vlan_default_pvid 0
+ ip link set dev br0 addrgenmode none
+ ip link set dev br0 up
ip link add name vxlan0 up type vxlan id 10 nolearning $UDPCSUM_FLAFS \
ttl 20 tos inherit local $LOCAL_IP_1 dstport 4789
--
2.40.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH net-next 16/16] selftests: mlxsw: one_armed_router: Use port MAC for bridge address
2023-06-20 13:55 [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw Petr Machata
` (14 preceding siblings ...)
2023-06-20 13:56 ` [PATCH net-next 15/16] selftests: mlxsw: vxlan: Disable IPv6 autogen on bridges Petr Machata
@ 2023-06-20 13:56 ` Petr Machata
2023-06-21 21:10 ` [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw patchwork-bot+netdevbpf
16 siblings, 0 replies; 18+ messages in thread
From: Petr Machata @ 2023-06-20 13:56 UTC (permalink / raw)
To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
netdev
Cc: Petr Machata, Ido Schimmel, Danielle Ratson, Amit Cohen,
Shuah Khan, linux-kselftest, mlxsw
In a future patch, mlxsw will start adding RIFs to uppers of front panel
port netdevices, if they have an IP address.
At the time that the front panel port is enslaved to the bridge, the bridge
MAC address does not have the same prefix as other interfaces in the
system. On Nvidia Spectrum-1 machines all the RIFs have to have the same
38-bit MAC address prefix. Since the bridge does not obey this limitation,
the RIF cannot be created, and the enslavement attempt is vetoed on the
grounds of the configuration not being offloadable.
The bridge eventually inherits MAC address from its first member, after the
enslavement is acked. A number of (mainly VXLAN) selftests already work
around the problem by setting the MAC address to whatever it will
eventually be anyway. Do the same for this selftest.
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Danielle Ratson <danieller@nvidia.com>
---
tools/testing/selftests/drivers/net/mlxsw/one_armed_router.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/drivers/net/mlxsw/one_armed_router.sh b/tools/testing/selftests/drivers/net/mlxsw/one_armed_router.sh
index f02d83e94576..fca0e1e642c6 100755
--- a/tools/testing/selftests/drivers/net/mlxsw/one_armed_router.sh
+++ b/tools/testing/selftests/drivers/net/mlxsw/one_armed_router.sh
@@ -83,7 +83,8 @@ h2_destroy()
switch_create()
{
- ip link add name br0 type bridge mcast_snooping 0
+ ip link add name br0 address $(mac_get $swp1) \
+ type bridge mcast_snooping 0
ip link set dev br0 up
ip link set dev $swp1 master br0
--
2.40.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw
2023-06-20 13:55 [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw Petr Machata
` (15 preceding siblings ...)
2023-06-20 13:56 ` [PATCH net-next 16/16] selftests: mlxsw: one_armed_router: Use port MAC for bridge address Petr Machata
@ 2023-06-21 21:10 ` patchwork-bot+netdevbpf
16 siblings, 0 replies; 18+ messages in thread
From: patchwork-bot+netdevbpf @ 2023-06-21 21:10 UTC (permalink / raw)
To: Petr Machata
Cc: davem, edumazet, kuba, pabeni, netdev, idosch, danieller, amcohen,
shuah, linux-kselftest, mlxsw
Hello:
This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Tue, 20 Jun 2023 15:55:46 +0200 you wrote:
> The mlxsw driver currently makes the assumption that the user applies
> configuration in a bottom-up manner. Thus netdevices need to be added to
> the bridge before IP addresses are configured on that bridge or SVI added
> on top of it. Enslaving a netdevice to another netdevice that already has
> uppers is in fact forbidden by mlxsw for this reason. Despite this safety,
> it is rather easy to get into situations where the offloaded configuration
> is just plain wrong.
>
> [...]
Here is the summary with links:
- [net-next,01/16] selftests: forwarding: q_in_vni: Disable IPv6 autogen on bridges
https://git.kernel.org/netdev/net-next/c/8c3736ce595b
- [net-next,02/16] selftests: forwarding: dual_vxlan_bridge: Disable IPv6 autogen on bridges
https://git.kernel.org/netdev/net-next/c/c801533304ca
- [net-next,03/16] selftests: forwarding: skbedit_priority: Disable IPv6 autogen on a bridge
https://git.kernel.org/netdev/net-next/c/d7442b7d288e
- [net-next,04/16] selftests: forwarding: pedit_dsfield: Disable IPv6 autogen on a bridge
https://git.kernel.org/netdev/net-next/c/f61018dc3e21
- [net-next,05/16] selftests: forwarding: mirror_gre_*: Disable IPv6 autogen on bridges
https://git.kernel.org/netdev/net-next/c/92c3bb5393db
- [net-next,06/16] selftests: forwarding: mirror_gre_*: Use port MAC for bridge address
https://git.kernel.org/netdev/net-next/c/8fd32576e650
- [net-next,07/16] selftests: forwarding: router_bridge: Use port MAC for bridge address
https://git.kernel.org/netdev/net-next/c/5e71bf50c2e2
- [net-next,08/16] selftests: mlxsw: q_in_q_veto: Disable IPv6 autogen on bridges
https://git.kernel.org/netdev/net-next/c/8cfdd300a5e9
- [net-next,09/16] selftests: mlxsw: extack: Disable IPv6 autogen on bridges
https://git.kernel.org/netdev/net-next/c/a758dc469a9c
- [net-next,10/16] selftests: mlxsw: mirror_gre_scale: Disable IPv6 autogen on a bridge
https://git.kernel.org/netdev/net-next/c/32b3a7bf8570
- [net-next,11/16] selftests: mlxsw: qos_dscp_bridge: Disable IPv6 autogen on a bridge
https://git.kernel.org/netdev/net-next/c/6349f9bbbfb2
- [net-next,12/16] selftests: mlxsw: qos_ets_strict: Disable IPv6 autogen on bridges
https://git.kernel.org/netdev/net-next/c/ec7023e6745e
- [net-next,13/16] selftests: mlxsw: qos_mc_aware: Disable IPv6 autogen on bridges
https://git.kernel.org/netdev/net-next/c/ea2d5f757e91
- [net-next,14/16] selftests: mlxsw: spectrum: q_in_vni_veto: Disable IPv6 autogen on a bridge
https://git.kernel.org/netdev/net-next/c/08035d8e354d
- [net-next,15/16] selftests: mlxsw: vxlan: Disable IPv6 autogen on bridges
https://git.kernel.org/netdev/net-next/c/5541577521cc
- [net-next,16/16] selftests: mlxsw: one_armed_router: Use port MAC for bridge address
https://git.kernel.org/netdev/net-next/c/664bc72dd200
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2023-06-21 21:10 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-20 13:55 [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw Petr Machata
2023-06-20 13:55 ` [PATCH net-next 01/16] selftests: forwarding: q_in_vni: Disable IPv6 autogen on bridges Petr Machata
2023-06-20 13:55 ` [PATCH net-next 02/16] selftests: forwarding: dual_vxlan_bridge: " Petr Machata
2023-06-20 13:55 ` [PATCH net-next 03/16] selftests: forwarding: skbedit_priority: Disable IPv6 autogen on a bridge Petr Machata
2023-06-20 13:55 ` [PATCH net-next 04/16] selftests: forwarding: pedit_dsfield: " Petr Machata
2023-06-20 13:55 ` [PATCH net-next 05/16] selftests: forwarding: mirror_gre_*: Disable IPv6 autogen on bridges Petr Machata
2023-06-20 13:55 ` [PATCH net-next 06/16] selftests: forwarding: mirror_gre_*: Use port MAC for bridge address Petr Machata
2023-06-20 13:55 ` [PATCH net-next 07/16] selftests: forwarding: router_bridge: " Petr Machata
2023-06-20 13:55 ` [PATCH net-next 08/16] selftests: mlxsw: q_in_q_veto: Disable IPv6 autogen on bridges Petr Machata
2023-06-20 13:55 ` [PATCH net-next 09/16] selftests: mlxsw: extack: " Petr Machata
2023-06-20 13:55 ` [PATCH net-next 10/16] selftests: mlxsw: mirror_gre_scale: Disable IPv6 autogen on a bridge Petr Machata
2023-06-20 13:55 ` [PATCH net-next 11/16] selftests: mlxsw: qos_dscp_bridge: " Petr Machata
2023-06-20 13:55 ` [PATCH net-next 12/16] selftests: mlxsw: qos_ets_strict: Disable IPv6 autogen on bridges Petr Machata
2023-06-20 13:55 ` [PATCH net-next 13/16] selftests: mlxsw: qos_mc_aware: " Petr Machata
2023-06-20 13:56 ` [PATCH net-next 14/16] selftests: mlxsw: spectrum: q_in_vni_veto: Disable IPv6 autogen on a bridge Petr Machata
2023-06-20 13:56 ` [PATCH net-next 15/16] selftests: mlxsw: vxlan: Disable IPv6 autogen on bridges Petr Machata
2023-06-20 13:56 ` [PATCH net-next 16/16] selftests: mlxsw: one_armed_router: Use port MAC for bridge address Petr Machata
2023-06-21 21:10 ` [PATCH net-next 00/16] selftests: Preparations for out-of-order-operations patches in mlxsw patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).