selftests: mlxsw: extack: Disable IPv6 autogen on bridges
authorPetr Machata <petrm@nvidia.com>
Tue, 20 Jun 2023 13:55:55 +0000 (15:55 +0200)
committerJakub Kicinski <kuba@kernel.org>
Wed, 21 Jun 2023 21:02:52 +0000 (14:02 -0700)
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>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/drivers/net/mlxsw/extack.sh

index 7a0a99c..6fd422d 100755 (executable)
@@ -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 $?