Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 10ff5359 authored by Shahar Klein's avatar Shahar Klein Committed by Saeed Mahameed
Browse files

net/mlx5e: Explicitly set source e-switch in offloaded TC rules



Set a specific source e-switch when setting a rule that matches on the
ingress port.

Signed-off-by: default avatarShahar Klein <shahark@mellanox.com>
Reviewed-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
Reviewed-by: default avatarRoi Dayan <roid@mellanox.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
parent 3e99df87
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -2462,6 +2462,7 @@ static int parse_tc_fdb_actions(struct mlx5e_priv *priv, struct tcf_exts *exts,

	memset(attr, 0, sizeof(*attr));
	attr->in_rep = rpriv->rep;
	attr->in_mdev = priv->mdev;

	tcf_exts_to_list(exts, &actions);
	list_for_each_entry(a, &actions, list) {
+1 −0
Original line number Diff line number Diff line
@@ -231,6 +231,7 @@ struct mlx5_esw_flow_attr {
	struct mlx5_eswitch_rep *in_rep;
	struct mlx5_eswitch_rep *out_rep;
	struct mlx5_core_dev	*out_mdev;
	struct mlx5_core_dev	*in_mdev;

	int	action;
	__be16	vlan_proto;
+8 −0
Original line number Diff line number Diff line
@@ -93,8 +93,16 @@ mlx5_eswitch_add_offloaded_rule(struct mlx5_eswitch *esw,
	misc = MLX5_ADDR_OF(fte_match_param, spec->match_value, misc_parameters);
	MLX5_SET(fte_match_set_misc, misc, source_port, attr->in_rep->vport);

	if (MLX5_CAP_ESW(esw->dev, merged_eswitch))
		MLX5_SET(fte_match_set_misc, misc,
			 source_eswitch_owner_vhca_id,
			 MLX5_CAP_GEN(attr->in_mdev, vhca_id));

	misc = MLX5_ADDR_OF(fte_match_param, spec->match_criteria, misc_parameters);
	MLX5_SET_TO_ONES(fte_match_set_misc, misc, source_port);
	if (MLX5_CAP_ESW(esw->dev, merged_eswitch))
		MLX5_SET_TO_ONES(fte_match_set_misc, misc,
				 source_eswitch_owner_vhca_id);

	spec->match_criteria_enable = MLX5_MATCH_OUTER_HEADERS |
				      MLX5_MATCH_MISC_PARAMETERS;