mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
net/mlx5: E-Switch, Enable vport metadata matching if firmware supports it
As the ingress ACL rules save vhca id and vport number to packet's metadata REG_C_0, and the metadata matching for the rules in both fast path and slow path are all added, enable this feature if supported. Signed-off-by: Jianbo Liu <jianbol@mellanox.com> Reviewed-by: Roi Dayan <roid@mellanox.com> Reviewed-by: Mark Bloch <markb@mellanox.com> Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
This commit is contained in:
parent
669ff1e32f
commit
92ab1eb392
@ -1904,12 +1904,35 @@ out:
|
||||
return err;
|
||||
}
|
||||
|
||||
static bool
|
||||
esw_check_vport_match_metadata_supported(const struct mlx5_eswitch *esw)
|
||||
{
|
||||
if (!MLX5_CAP_ESW(esw->dev, esw_uplink_ingress_acl))
|
||||
return false;
|
||||
|
||||
if (!(MLX5_CAP_ESW_FLOWTABLE(esw->dev, fdb_to_vport_reg_c_id) &
|
||||
MLX5_FDB_TO_VPORT_REG_C_0))
|
||||
return false;
|
||||
|
||||
if (!MLX5_CAP_ESW_FLOWTABLE(esw->dev, flow_source))
|
||||
return false;
|
||||
|
||||
if (mlx5_core_is_ecpf_esw_manager(esw->dev) ||
|
||||
mlx5_ecpf_vport_exists(esw->dev))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static int esw_create_offloads_acl_tables(struct mlx5_eswitch *esw)
|
||||
{
|
||||
struct mlx5_vport *vport;
|
||||
int i, j;
|
||||
int err;
|
||||
|
||||
if (esw_check_vport_match_metadata_supported(esw))
|
||||
esw->flags |= MLX5_ESWITCH_VPORT_MATCH_METADATA;
|
||||
|
||||
mlx5_esw_for_all_vports(esw, i, vport) {
|
||||
err = esw_vport_ingress_common_config(esw, vport);
|
||||
if (err)
|
||||
|
Loading…
Reference in New Issue
Block a user