Commit f0288210 authored by Eli Cohen's avatar Eli Cohen Committed by Saeed Mahameed
Browse files

net/mlx5e: Add support for tc trap



Support tc trap such that packets can explicitly be forwarded to slow
path if they match a specific rule.

In the example below, we want packets with src IP equals 7.7.7.8 to be
forwarded to software, in which case it will get to the appropriate
representor net device.

$ tc filter add dev eth1 protocol ip prio 1 root flower skip_sw \
    src_ip 7.7.7.8 action trap

Signed-off-by: default avatarEli Cohen <eli@mellanox.com>
Reviewed-by: default avatarRoi Dayan <roid@nvidia.com>
Reviewed-by: default avatarAriel Levkovich <lariel@nvidia.com>
Reviewed-by: default avatarMaor Dickman <maord@nvidia.com>
Signed-off-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
parent cd1ef966
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -3943,6 +3943,16 @@ static int parse_tc_fdb_actions(struct mlx5e_priv *priv,
			action |= MLX5_FLOW_CONTEXT_ACTION_DROP |
				  MLX5_FLOW_CONTEXT_ACTION_COUNT;
			break;
		case FLOW_ACTION_TRAP:
			if (!flow_offload_has_one_action(flow_action)) {
				NL_SET_ERR_MSG_MOD(extack,
						   "action trap is supported as a sole action only");
				return -EOPNOTSUPP;
			}
			action |= (MLX5_FLOW_CONTEXT_ACTION_FWD_DEST |
				   MLX5_FLOW_CONTEXT_ACTION_COUNT);
			attr->flags |= MLX5_ESW_ATTR_FLAG_SLOW_PATH;
			break;
		case FLOW_ACTION_MPLS_PUSH:
			if (!MLX5_CAP_ESW_FLOWTABLE_FDB(priv->mdev,
							reformat_l2_to_l3_tunnel) ||