mlxsw: spectrum_fid: Make flood index calculation more robust
authorIdo Schimmel <idosch@mellanox.com>
Sun, 25 Nov 2018 09:43:55 +0000 (09:43 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 27 Nov 2018 23:27:07 +0000 (15:27 -0800)
802.1D FIDs use a per-FID flood table, where the flood index into the
table is calculated by subtracting 4K from the FID's index.

Currently, 802.1D FIDs start at 4K, so the calculation is correct, but
if it was ever to change, the calculation will no longer be correct.

In addition, this change will allow us to reuse the flood index
calculation function in the next patch, where we are going to emulate
802.1Q FIDs using 802.1D FIDs.

Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Reviewed-by: Petr Machata <petrm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c

index 5008bf63d73bf1212ad2becb52fb3203fd63c40a..e1739cda25cb3b7953fcd607668d82c649f0db73 100644 (file)
@@ -607,7 +607,7 @@ mlxsw_sp_fid_8021d_compare(const struct mlxsw_sp_fid *fid, const void *arg)
 
 static u16 mlxsw_sp_fid_8021d_flood_index(const struct mlxsw_sp_fid *fid)
 {
-       return fid->fid_index - fid->fid_family->start_index;
+       return fid->fid_index - VLAN_N_VID;
 }
 
 static int mlxsw_sp_port_vp_mode_trans(struct mlxsw_sp_port *mlxsw_sp_port)