]> git.itanic.dy.fi Git - linux-stable/commitdiff
net/mlx5: DR, Check for modify_header_argument device capabilities
authorYevgeny Kliteynik <kliteyn@nvidia.com>
Mon, 29 Aug 2022 22:21:10 +0000 (01:21 +0300)
committerSaeed Mahameed <saeedm@nvidia.com>
Fri, 14 Apr 2023 22:06:21 +0000 (15:06 -0700)
Signed-off-by: Yevgeny Kliteynik <kliteyn@nvidia.com>
Reviewed-by: Alex Vesker <valex@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_cmd.c
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_types.h

index 229f3684100c4c634e4210a7e7b7cc128a9fb5e9..e2cbc2b5bc2701707ed6763bc557018e1301d24c 100644 (file)
@@ -132,6 +132,17 @@ int mlx5dr_cmd_query_device(struct mlx5_core_dev *mdev,
 
        caps->isolate_vl_tc = MLX5_CAP_GEN(mdev, isolate_vl_tc_new);
 
+       caps->support_modify_argument =
+               MLX5_CAP_GEN_64(mdev, general_obj_types) &
+               MLX5_GENERAL_OBJ_TYPES_CAP_HEADER_MODIFY_ARGUMENT;
+
+       if (caps->support_modify_argument) {
+               caps->log_header_modify_argument_granularity =
+                       MLX5_CAP_GEN(mdev, log_header_modify_argument_granularity);
+               caps->log_header_modify_argument_max_alloc =
+                       MLX5_CAP_GEN(mdev, log_header_modify_argument_max_alloc);
+       }
+
        /* geneve_tlv_option_0_exist is the indication of
         * STE support for lookup type flex_parser_ok
         */
index a1c549fed9ca3f77c8c996c289eb151ba589abff..9187e9d6ea54f8071ae77633b543634178ab7e25 100644 (file)
@@ -896,6 +896,9 @@ struct mlx5dr_cmd_caps {
        struct mlx5dr_vports vports;
        bool prio_tag_required;
        struct mlx5dr_roce_cap roce_caps;
+       u16 log_header_modify_argument_granularity;
+       u16 log_header_modify_argument_max_alloc;
+       bool support_modify_argument;
        u8 is_ecpf:1;
        u8 isolate_vl_tc:1;
 };