Skip to content

Commit 88a31b1

Browse files
Jiri Pirkokuba-moo
authored andcommitted
mlxsw: spectrum_router: Use eXtended mezzanine to offload IPv4 router
In case the eXtended mezzanine is present on the system, use it for IPv4 router offload. Signed-off-by: Jiri Pirko <[email protected]> Signed-off-by: Ido Schimmel <[email protected]> Signed-off-by: Jakub Kicinski <[email protected]>
1 parent dffd566 commit 88a31b1

File tree

3 files changed

+11
-1
lines changed

3 files changed

+11
-1
lines changed

drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9213,7 +9213,9 @@ int mlxsw_sp_router_init(struct mlxsw_sp *mlxsw_sp,
92139213
if (err)
92149214
goto err_xm_init;
92159215

9216-
router->proto_ll_ops[MLXSW_SP_L3_PROTO_IPV4] = &mlxsw_sp_router_ll_basic_ops;
9216+
router->proto_ll_ops[MLXSW_SP_L3_PROTO_IPV4] = mlxsw_sp_router_xm_ipv4_is_supported(mlxsw_sp) ?
9217+
&mlxsw_sp_router_ll_xm_ops :
9218+
&mlxsw_sp_router_ll_basic_ops;
92179219
router->proto_ll_ops[MLXSW_SP_L3_PROTO_IPV6] = &mlxsw_sp_router_ll_basic_ops;
92189220

92199221
err = mlxsw_sp_router_ll_op_ctx_init(router);

drivers/net/ethernet/mellanox/mlxsw/spectrum_router.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,5 +227,6 @@ extern const struct mlxsw_sp_router_ll_ops mlxsw_sp_router_ll_xm_ops;
227227

228228
int mlxsw_sp_router_xm_init(struct mlxsw_sp *mlxsw_sp);
229229
void mlxsw_sp_router_xm_fini(struct mlxsw_sp *mlxsw_sp);
230+
bool mlxsw_sp_router_xm_ipv4_is_supported(const struct mlxsw_sp *mlxsw_sp);
230231

231232
#endif /* _MLXSW_ROUTER_H_*/

drivers/net/ethernet/mellanox/mlxsw/spectrum_router_xm.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -803,3 +803,10 @@ void mlxsw_sp_router_xm_fini(struct mlxsw_sp *mlxsw_sp)
803803
rhashtable_destroy(&router_xm->ltable_ht);
804804
kfree(router_xm);
805805
}
806+
807+
bool mlxsw_sp_router_xm_ipv4_is_supported(const struct mlxsw_sp *mlxsw_sp)
808+
{
809+
struct mlxsw_sp_router_xm *router_xm = mlxsw_sp->router->xm;
810+
811+
return router_xm && router_xm->ipv4_supported;
812+
}

0 commit comments

Comments
 (0)