common/mlx5: add read ASO flow hit HCA capability
authorDekel Peled <dekelp@nvidia.com>
Sun, 1 Nov 2020 17:57:46 +0000 (17:57 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 3 Nov 2020 22:35:07 +0000 (23:35 +0100)
Read and store the device capability of FLOW_HIT_ASO general object,
using the DevX API.

Signed-off-by: Dekel Peled <dekelp@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
drivers/common/mlx5/mlx5_devx_cmds.c
drivers/common/mlx5/mlx5_devx_cmds.h
drivers/common/mlx5/mlx5_prm.h

index 2efcdfe..b792ce1 100644 (file)
@@ -719,6 +719,9 @@ mlx5_devx_cmd_query_hca_attr(void *ctx,
        attr->regex = MLX5_GET(cmd_hca_cap, hcattr, regexp);
        attr->regexp_num_of_engines = MLX5_GET(cmd_hca_cap, hcattr,
                                               regexp_num_of_engines);
+       attr->flow_hit_aso = !!(MLX5_GET64(cmd_hca_cap, hcattr,
+                                          general_obj_types) &
+                               MLX5_GENERAL_OBJ_TYPES_CAP_FLOW_HIT_ASO);
        if (attr->qos.sup) {
                MLX5_SET(query_hca_cap_in, in, op_mod,
                         MLX5_GET_HCA_CAP_OP_MOD_QOS_CAP |
index e314209..553b26c 100644 (file)
@@ -102,6 +102,7 @@ struct mlx5_hca_attr {
        uint32_t num_lag_ports:4; /* Number of ports can be bonded. */
        uint32_t dev_freq_khz; /* Timestamp counter frequency, kHz. */
        uint32_t scatter_fcs_w_decap_disable:1;
+       uint32_t flow_hit_aso:1; /* General obj type FLOW_HIT_ASO supported. */
        uint32_t regex:1;
        uint32_t regexp_num_of_engines;
        uint32_t log_max_ft_sampler_num:8;
index cb2c971..0a13ab1 100644 (file)
@@ -1050,6 +1050,8 @@ enum {
                        (1ULL << MLX5_GENERAL_OBJ_TYPE_VIRTIO_Q_COUNTERS)
 #define MLX5_GENERAL_OBJ_TYPES_CAP_PARSE_GRAPH_FLEX_NODE \
                        (1ULL << MLX5_GENERAL_OBJ_TYPE_FLEX_PARSE_GRAPH)
+#define MLX5_GENERAL_OBJ_TYPES_CAP_FLOW_HIT_ASO \
+                       (1ULL << MLX5_GENERAL_OBJ_TYPE_FLOW_HIT_ASO)
 
 enum {
        MLX5_HCA_CAP_OPMOD_GET_MAX   = 0,