mlxsw: spectrum: router: Squash the default route table to main
authorYotam Gigi <yotamg@mellanox.com>
Wed, 27 Sep 2017 06:23:19 +0000 (08:23 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 27 Sep 2017 18:33:28 +0000 (11:33 -0700)
Currently, the mlxsw Spectrum driver offloads only either the RT_TABLE_MAIN
FIB table or the VRF tables, so the RT_TABLE_LOCAL table is squashed to the
RT_TABLE_MAIN table to allow local routes to be offloaded too.

By default, multicast MFC routes which are not assigned to any user
requested table are put in the RT_TABLE_DEFAULT table.

Due to the fact that offloading multicast MFC routes support in Spectrum
router logic is going to be introduced soon, squash the default table to
MAIN too.

Signed-off-by: Yotam Gigi <yotamg@mellanox.com>
Reviewed-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c

index 321f735..28c0c84 100644 (file)
@@ -693,8 +693,8 @@ static int mlxsw_sp_vr_lpm_tree_unbind(struct mlxsw_sp *mlxsw_sp,
 
 static u32 mlxsw_sp_fix_tb_id(u32 tb_id)
 {
-       /* For our purpose, squash main and local table into one */
-       if (tb_id == RT_TABLE_LOCAL)
+       /* For our purpose, squash main, default and local tables into one */
+       if (tb_id == RT_TABLE_LOCAL || tb_id == RT_TABLE_DEFAULT)
                tb_id = RT_TABLE_MAIN;
        return tb_id;
 }