RDMA/mlx5: Enable decap and packet reformat on FDB
authorMaor Gottlieb <maorg@mellanox.com>
Wed, 12 Jun 2019 12:20:14 +0000 (15:20 +0300)
committerDoug Ledford <dledford@redhat.com>
Wed, 19 Jun 2019 02:44:52 +0000 (22:44 -0400)
If FDB flow tables support decap operation, enable it on creation,
This allows to perform decapsulation of tunnelled packets by steering
rules. If FDB flow tables support reformat operation, enable it on
creation as well.

Signed-off-by: Maor Gottlieb <maorg@mellanox.com>
Reviewed-by: Petr Vorel <pvorel@suse.cz>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/mlx5/main.c

index 6a69be02ed0db17324612f170d86ae338c2db48c..3b1985215cb9012a817a48734313c0a370349f38 100644 (file)
@@ -3924,6 +3924,11 @@ _get_flow_table(struct mlx5_ib_dev *dev,
        } else if (fs_matcher->ns_type == MLX5_FLOW_NAMESPACE_FDB) {
                max_table_size = BIT(
                        MLX5_CAP_ESW_FLOWTABLE_FDB(dev->mdev, log_max_ft_size));
+               if (MLX5_CAP_ESW_FLOWTABLE_FDB(dev->mdev, decap) && esw_encap)
+                       flags |= MLX5_FLOW_TABLE_TUNNEL_EN_DECAP;
+               if (MLX5_CAP_ESW_FLOWTABLE_FDB(dev->mdev, reformat_l3_tunnel_to_l2) &&
+                   esw_encap)
+                       flags |= MLX5_FLOW_TABLE_TUNNEL_EN_REFORMAT;
                priority = FDB_BYPASS_PATH;
        }