Commit 3dd7d40b authored by David S. Miller's avatar David S. Miller

Merge branch 'mlxsw-fixes'

Ido Schimmel says:

====================
mlxsw: MAC profiles occupancy fix

Patch #1 fixes a router interface (RIF) MAC profiles occupancy bug that
was merged in the last cycle.

Patch #2 adds a selftest that fails without the fix.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 5f9562eb 20617717
...@@ -8494,7 +8494,8 @@ mlxsw_sp_rif_mac_profile_replace(struct mlxsw_sp *mlxsw_sp, ...@@ -8494,7 +8494,8 @@ mlxsw_sp_rif_mac_profile_replace(struct mlxsw_sp *mlxsw_sp,
u8 mac_profile; u8 mac_profile;
int err; int err;
if (!mlxsw_sp_rif_mac_profile_is_shared(rif)) if (!mlxsw_sp_rif_mac_profile_is_shared(rif) &&
!mlxsw_sp_rif_mac_profile_find(mlxsw_sp, new_mac))
return mlxsw_sp_rif_mac_profile_edit(rif, new_mac); return mlxsw_sp_rif_mac_profile_edit(rif, new_mac);
err = mlxsw_sp_rif_mac_profile_get(mlxsw_sp, new_mac, err = mlxsw_sp_rif_mac_profile_get(mlxsw_sp, new_mac,
......
...@@ -72,6 +72,35 @@ rif_mac_profile_replacement_test() ...@@ -72,6 +72,35 @@ rif_mac_profile_replacement_test()
ip link set $h1.10 address $h1_10_mac ip link set $h1.10 address $h1_10_mac
} }
rif_mac_profile_consolidation_test()
{
local count=$1; shift
local h1_20_mac
RET=0
if [[ $count -eq 1 ]]; then
return
fi
h1_20_mac=$(mac_get $h1.20)
# Set the MAC of $h1.20 to that of $h1.10 and confirm that they are
# using the same MAC profile.
ip link set $h1.20 address 00:11:11:11:11:11
check_err $?
occ=$(devlink -j resource show $DEVLINK_DEV \
| jq '.[][][] | select(.name=="rif_mac_profiles") |.["occ"]')
[[ $occ -eq $((count - 1)) ]]
check_err $? "MAC profile occupancy did not decrease"
log_test "RIF MAC profile consolidation"
ip link set $h1.20 address $h1_20_mac
}
rif_mac_profile_shared_replacement_test() rif_mac_profile_shared_replacement_test()
{ {
local count=$1; shift local count=$1; shift
...@@ -104,6 +133,7 @@ rif_mac_profile_edit_test() ...@@ -104,6 +133,7 @@ rif_mac_profile_edit_test()
create_max_rif_mac_profiles $count create_max_rif_mac_profiles $count
rif_mac_profile_replacement_test rif_mac_profile_replacement_test
rif_mac_profile_consolidation_test $count
rif_mac_profile_shared_replacement_test $count rif_mac_profile_shared_replacement_test $count
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment