mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-20 04:44:26 +08:00
mlxsw: Convert existing consumers to use new API for parsing configuration
Convert VxLAN and PTP modules to increase parsing depth using new API that was added in the previous patch. Separate MPRS register's configuration to VxLAN related configuration and parsing depth configuration. Handle each one using the appropriate API. Signed-off-by: Amit Cohen <amcohen@nvidia.com> Signed-off-by: Ido Schimmel <idosch@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
2d91f0803b
commit
0071e7cdc3
@ -238,10 +238,14 @@ static int mlxsw_sp1_nve_vxlan_init(struct mlxsw_sp_nve *nve,
|
||||
struct mlxsw_sp *mlxsw_sp = nve->mlxsw_sp;
|
||||
int err;
|
||||
|
||||
err = __mlxsw_sp_nve_inc_parsing_depth_get(mlxsw_sp, config->udp_dport);
|
||||
err = mlxsw_sp_parsing_vxlan_udp_dport_set(mlxsw_sp, config->udp_dport);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
err = mlxsw_sp_parsing_depth_inc(mlxsw_sp);
|
||||
if (err)
|
||||
goto err_parsing_depth_inc;
|
||||
|
||||
err = mlxsw_sp1_nve_vxlan_config_set(mlxsw_sp, config);
|
||||
if (err)
|
||||
goto err_config_set;
|
||||
@ -263,7 +267,9 @@ err_promote_decap:
|
||||
err_rtdp_set:
|
||||
mlxsw_sp1_nve_vxlan_config_clear(mlxsw_sp);
|
||||
err_config_set:
|
||||
__mlxsw_sp_nve_inc_parsing_depth_put(mlxsw_sp, 0);
|
||||
mlxsw_sp_parsing_depth_dec(mlxsw_sp);
|
||||
err_parsing_depth_inc:
|
||||
mlxsw_sp_parsing_vxlan_udp_dport_set(mlxsw_sp, 0);
|
||||
return err;
|
||||
}
|
||||
|
||||
@ -275,7 +281,8 @@ static void mlxsw_sp1_nve_vxlan_fini(struct mlxsw_sp_nve *nve)
|
||||
mlxsw_sp_router_nve_demote_decap(mlxsw_sp, config->ul_tb_id,
|
||||
config->ul_proto, &config->ul_sip);
|
||||
mlxsw_sp1_nve_vxlan_config_clear(mlxsw_sp);
|
||||
__mlxsw_sp_nve_inc_parsing_depth_put(mlxsw_sp, 0);
|
||||
mlxsw_sp_parsing_depth_dec(mlxsw_sp);
|
||||
mlxsw_sp_parsing_vxlan_udp_dport_set(mlxsw_sp, 0);
|
||||
}
|
||||
|
||||
static int
|
||||
@ -412,10 +419,14 @@ static int mlxsw_sp2_nve_vxlan_init(struct mlxsw_sp_nve *nve,
|
||||
struct mlxsw_sp *mlxsw_sp = nve->mlxsw_sp;
|
||||
int err;
|
||||
|
||||
err = __mlxsw_sp_nve_inc_parsing_depth_get(mlxsw_sp, config->udp_dport);
|
||||
err = mlxsw_sp_parsing_vxlan_udp_dport_set(mlxsw_sp, config->udp_dport);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
err = mlxsw_sp_parsing_depth_inc(mlxsw_sp);
|
||||
if (err)
|
||||
goto err_parsing_depth_inc;
|
||||
|
||||
err = mlxsw_sp2_nve_vxlan_config_set(mlxsw_sp, config);
|
||||
if (err)
|
||||
goto err_config_set;
|
||||
@ -438,7 +449,9 @@ err_promote_decap:
|
||||
err_rtdp_set:
|
||||
mlxsw_sp2_nve_vxlan_config_clear(mlxsw_sp);
|
||||
err_config_set:
|
||||
__mlxsw_sp_nve_inc_parsing_depth_put(mlxsw_sp, 0);
|
||||
mlxsw_sp_parsing_depth_dec(mlxsw_sp);
|
||||
err_parsing_depth_inc:
|
||||
mlxsw_sp_parsing_vxlan_udp_dport_set(mlxsw_sp, 0);
|
||||
return err;
|
||||
}
|
||||
|
||||
@ -450,7 +463,8 @@ static void mlxsw_sp2_nve_vxlan_fini(struct mlxsw_sp_nve *nve)
|
||||
mlxsw_sp_router_nve_demote_decap(mlxsw_sp, config->ul_tb_id,
|
||||
config->ul_proto, &config->ul_sip);
|
||||
mlxsw_sp2_nve_vxlan_config_clear(mlxsw_sp);
|
||||
__mlxsw_sp_nve_inc_parsing_depth_put(mlxsw_sp, 0);
|
||||
mlxsw_sp_parsing_depth_dec(mlxsw_sp);
|
||||
mlxsw_sp_parsing_vxlan_udp_dport_set(mlxsw_sp, 0);
|
||||
}
|
||||
|
||||
const struct mlxsw_sp_nve_ops mlxsw_sp2_nve_vxlan_ops = {
|
||||
|
@ -975,14 +975,14 @@ static int mlxsw_sp1_ptp_mtpppc_update(struct mlxsw_sp_port *mlxsw_sp_port,
|
||||
}
|
||||
|
||||
if ((ing_types || egr_types) && !(orig_ing_types || orig_egr_types)) {
|
||||
err = mlxsw_sp_nve_inc_parsing_depth_get(mlxsw_sp);
|
||||
err = mlxsw_sp_parsing_depth_inc(mlxsw_sp);
|
||||
if (err) {
|
||||
netdev_err(mlxsw_sp_port->dev, "Failed to increase parsing depth");
|
||||
return err;
|
||||
}
|
||||
}
|
||||
if (!(ing_types || egr_types) && (orig_ing_types || orig_egr_types))
|
||||
mlxsw_sp_nve_inc_parsing_depth_put(mlxsw_sp);
|
||||
mlxsw_sp_parsing_depth_dec(mlxsw_sp);
|
||||
|
||||
return mlxsw_sp1_ptp_mtpppc_set(mlxsw_sp_port->mlxsw_sp,
|
||||
ing_types, egr_types);
|
||||
|
Loading…
Reference in New Issue
Block a user