@@ -225,23 +225,18 @@ struct mlx5_query_device_ex {
struct ibv_query_device_ex ibv_cmd;
};
-struct mlx5_striding_rq_caps {
- struct mlx5dv_striding_rq_caps caps;
- __u32 reserved;
-};
-
struct mlx5_query_device_ex_resp {
struct ib_uverbs_ex_query_device_resp ibv_resp;
__u32 comp_mask;
__u32 response_length;
- struct ibv_tso_caps tso_caps;
+ struct mlx5_ib_tso_caps tso_caps;
struct mlx5_ib_rss_caps rss_caps; /* vendor data channel */
- struct mlx5dv_cqe_comp_caps cqe_comp_caps;
+ struct mlx5_ib_cqe_comp_caps cqe_comp_caps;
struct mlx5_packet_pacing_caps packet_pacing_caps;
__u32 support_multi_pkt_send_wqe;
__u32 flags; /* Use enum mlx5_query_dev_resp_flags */
- struct mlx5dv_sw_parsing_caps sw_parsing_caps;
- struct mlx5_striding_rq_caps striding_rq_caps;
+ struct mlx5_ib_sw_parsing_caps sw_parsing_caps;
+ struct mlx5_ib_striding_rq_caps striding_rq_caps;
__u32 tunnel_offloads_caps;
__u32 reserved;
};
@@ -2617,7 +2617,8 @@ int mlx5_query_device_ex(struct ibv_context *context,
if (err)
return err;
- attr->tso_caps = resp.tso_caps;
+ attr->tso_caps.max_tso = resp.tso_caps.max_tso;
+ attr->tso_caps.supported_qpts = resp.tso_caps.supported_qpts;
attr->rss_caps.rx_hash_fields_mask = resp.rss_caps.rx_hash_fields_mask;
attr->rss_caps.rx_hash_function = resp.rss_caps.rx_hash_function;
attr->packet_pacing_caps.qp_rate_limit_min =
@@ -2633,9 +2634,22 @@ int mlx5_query_device_ex(struct ibv_context *context,
if (resp.support_multi_pkt_send_wqe & MLX5_IB_SUPPORT_EMPW)
mctx->vendor_cap_flags |= MLX5_VENDOR_CAP_FLAGS_ENHANCED_MPW;
- mctx->cqe_comp_caps = resp.cqe_comp_caps;
- mctx->sw_parsing_caps = resp.sw_parsing_caps;
- mctx->striding_rq_caps = resp.striding_rq_caps.caps;
+ mctx->cqe_comp_caps.max_num = resp.cqe_comp_caps.max_num;
+ mctx->cqe_comp_caps.supported_format = resp.cqe_comp_caps.supported_format;
+ mctx->sw_parsing_caps.sw_parsing_offloads =
+ resp.sw_parsing_caps.sw_parsing_offloads;
+ mctx->sw_parsing_caps.supported_qpts =
+ resp.sw_parsing_caps.supported_qpts;
+ mctx->striding_rq_caps.min_single_stride_log_num_of_bytes =
+ resp.striding_rq_caps.min_single_stride_log_num_of_bytes;
+ mctx->striding_rq_caps.max_single_stride_log_num_of_bytes =
+ resp.striding_rq_caps.max_single_stride_log_num_of_bytes;
+ mctx->striding_rq_caps.min_single_wqe_log_num_of_strides =
+ resp.striding_rq_caps.min_single_wqe_log_num_of_strides;
+ mctx->striding_rq_caps.max_single_wqe_log_num_of_strides =
+ resp.striding_rq_caps.max_single_wqe_log_num_of_strides;
+ mctx->striding_rq_caps.supported_qpts =
+ resp.striding_rq_caps.supported_qpts;
mctx->tunnel_offloads_caps = resp.tunnel_offloads_caps;
mctx->packet_pacing_caps = resp.packet_pacing_caps;