net/mlx5: DR, Allow connecting flow table to a lower/same level table
authorYevgeny Kliteynik <kliteyn@mellanox.com>
Mon, 20 Jan 2020 09:51:36 +0000 (11:51 +0200)
committerSaeed Mahameed <saeedm@mellanox.com>
Thu, 23 Jan 2020 06:28:37 +0000 (22:28 -0800)
Allow connecting SW steering source table to a lower/same level
destination table.
Lifting this limitation is required to support Connection Tracking.

Signed-off-by: Yevgeny Kliteynik <kliteyn@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_action.c

index 286fcec..6dec2a5 100644 (file)
@@ -677,9 +677,12 @@ int mlx5dr_actions_build_ste_arr(struct mlx5dr_matcher *matcher,
                                        goto out_invalid_arg;
                                }
                                if (action->dest_tbl.tbl->level <= matcher->tbl->level) {
+                                       mlx5_core_warn_once(dmn->mdev,
+                                                           "Connecting table to a lower/same level destination table\n");
                                        mlx5dr_dbg(dmn,
-                                                  "Destination table level should be higher than source table\n");
-                                       goto out_invalid_arg;
+                                                  "Connecting table at level %d to a destination table at level %d\n",
+                                                  matcher->tbl->level,
+                                                  action->dest_tbl.tbl->level);
                                }
                                attr.final_icm_addr = rx_rule ?
                                        action->dest_tbl.tbl->rx.s_anchor->chunk->icm_addr :