Patch set 52933–52940 v3

net/mlx5: add Direct Verbs E-Switch support

Submitter
Ori Kam
Applied on
dpdk-next-net-mlx (a8f1fc77f06cce154cd1133f84a575db80cc0ab4)
Date submitted
April 18, 2019, 1:16 p.m.

Test Results Apply Error

Checking patch drivers/net/mlx5/mlx5.c...
Checking patch drivers/net/mlx5/mlx5.h...
Checking patch drivers/net/mlx5/mlx5_flow_dv.c...
error: while searching for:
		dv = &dev_flow->dv;
		n = dv->actions_n;
		if (flow->actions & MLX5_FLOW_ACTION_DROP) {
			dv->hrxq = mlx5_hrxq_drop_new(dev);
			if (!dv->hrxq) {
				rte_flow_error_set
					(error, errno,
					 RTE_FLOW_ERROR_TYPE_UNSPECIFIED, NULL,
					 "cannot get drop hash queue");
				goto error;
			}
			dv->actions[n++] = dv->hrxq->action;
		} else if (flow->actions &
			   (MLX5_FLOW_ACTION_QUEUE | MLX5_FLOW_ACTION_RSS)) {
			struct mlx5_hrxq *hrxq;

error: patch failed: drivers/net/mlx5/mlx5_flow_dv.c:4056
Checking patch drivers/net/mlx5/mlx5_glue.c...
Checking patch drivers/net/mlx5/mlx5_glue.h...
Applied patch drivers/net/mlx5/mlx5.c cleanly.
Applied patch drivers/net/mlx5/mlx5.h cleanly.
Applying patch drivers/net/mlx5/mlx5_flow_dv.c with 1 reject...
Hunk #1 applied cleanly.
Rejected hunk #2.
Applied patch drivers/net/mlx5/mlx5_glue.c cleanly.
Applied patch drivers/net/mlx5/mlx5_glue.h cleanly.
diff a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c	(rejected hunks)
@@ -4056,15 +4057,20 @@ struct field_modify_info modify_tcp[] = {
 		dv = &dev_flow->dv;
 		n = dv->actions_n;
 		if (flow->actions & MLX5_FLOW_ACTION_DROP) {
-			dv->hrxq = mlx5_hrxq_drop_new(dev);
-			if (!dv->hrxq) {
-				rte_flow_error_set
-					(error, errno,
-					 RTE_FLOW_ERROR_TYPE_UNSPECIFIED, NULL,
-					 "cannot get drop hash queue");
-				goto error;
+			if (flow->transfer)
+				dv->actions[n++] = priv->sh->esw_drop_action;
+			else {
+				dv->hrxq = mlx5_hrxq_drop_new(dev);
+				if (!dv->hrxq) {
+					rte_flow_error_set
+						(error, errno,
+						 RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
+						 NULL,
+						 "cannot get drop hash queue");
+					goto error;
+				}
+				dv->actions[n++] = dv->hrxq->action;
 			}
-			dv->actions[n++] = dv->hrxq->action;
 		} else if (flow->actions &
 			   (MLX5_FLOW_ACTION_QUEUE | MLX5_FLOW_ACTION_RSS)) {
 			struct mlx5_hrxq *hrxq;