blob: 22cf99e252c1426d9918a255823ad9a8da2c0a5e [file] [log] [blame]
Elliott Hughes180edef2023-11-02 00:08:05 +00001/*
2 * This file is auto-generated. Modifications will be lost.
3 *
4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5 * for more information.
6 */
Christopher Ferris6a9755d2017-01-13 14:09:31 -08007#ifndef MLX5_ABI_USER_H
8#define MLX5_ABI_USER_H
9#include <linux/types.h>
Christopher Ferris525ce912017-07-26 13:12:53 -070010#include <linux/if_ether.h>
Christopher Ferris9ce28842018-10-25 12:11:39 -070011#include <rdma/ib_user_ioctl_verbs.h>
Christopher Ferrisb830ddf2024-03-28 11:48:08 -070012#include <rdma/mlx5_user_ioctl_verbs.h>
Christopher Ferris6a9755d2017-01-13 14:09:31 -080013enum {
Christopher Ferris6a9755d2017-01-13 14:09:31 -080014 MLX5_QP_FLAG_SIGNATURE = 1 << 0,
15 MLX5_QP_FLAG_SCATTER_CQE = 1 << 1,
Christopher Ferris934ec942018-01-31 15:29:16 -080016 MLX5_QP_FLAG_TUNNEL_OFFLOADS = 1 << 2,
Christopher Ferris76a1d452018-06-27 14:12:29 -070017 MLX5_QP_FLAG_BFREG_INDEX = 1 << 3,
18 MLX5_QP_FLAG_TYPE_DCT = 1 << 4,
19 MLX5_QP_FLAG_TYPE_DCI = 1 << 5,
Christopher Ferris86a48372019-01-10 14:14:59 -080020 MLX5_QP_FLAG_TIR_ALLOW_SELF_LB_UC = 1 << 6,
21 MLX5_QP_FLAG_TIR_ALLOW_SELF_LB_MC = 1 << 7,
22 MLX5_QP_FLAG_ALLOW_SCATTER_CQE = 1 << 8,
Christopher Ferrisd842e432019-03-07 10:21:59 -080023 MLX5_QP_FLAG_PACKET_BASED_CREDIT_MODE = 1 << 9,
Christopher Ferrisaf09c702020-06-01 20:29:29 -070024 MLX5_QP_FLAG_UAR_PAGE_INDEX = 1 << 10,
Christopher Ferris2abfa9e2021-11-01 16:26:06 -070025 MLX5_QP_FLAG_DCI_STREAM = 1 << 11,
Christopher Ferris6a9755d2017-01-13 14:09:31 -080026};
27enum {
Christopher Ferris6a9755d2017-01-13 14:09:31 -080028 MLX5_SRQ_FLAG_SIGNATURE = 1 << 0,
29};
30enum {
31 MLX5_WQ_FLAG_SIGNATURE = 1 << 0,
Christopher Ferris6a9755d2017-01-13 14:09:31 -080032};
33#define MLX5_IB_UVERBS_ABI_VERSION 1
34struct mlx5_ib_alloc_ucontext_req {
Christopher Ferris525ce912017-07-26 13:12:53 -070035 __u32 total_num_bfregs;
36 __u32 num_low_latency_bfregs;
37};
38enum mlx5_lib_caps {
39 MLX5_LIB_CAP_4K_UAR = (__u64) 1 << 0,
Christopher Ferrisaf09c702020-06-01 20:29:29 -070040 MLX5_LIB_CAP_DYN_UAR = (__u64) 1 << 1,
Christopher Ferris6a9755d2017-01-13 14:09:31 -080041};
Christopher Ferris9ce28842018-10-25 12:11:39 -070042enum mlx5_ib_alloc_uctx_v2_flags {
43 MLX5_IB_ALLOC_UCTX_DEVX = 1 << 0,
44};
Christopher Ferris6a9755d2017-01-13 14:09:31 -080045struct mlx5_ib_alloc_ucontext_req_v2 {
Christopher Ferris525ce912017-07-26 13:12:53 -070046 __u32 total_num_bfregs;
47 __u32 num_low_latency_bfregs;
Christopher Ferris6a9755d2017-01-13 14:09:31 -080048 __u32 flags;
49 __u32 comp_mask;
50 __u8 max_cqe_version;
Christopher Ferris6a9755d2017-01-13 14:09:31 -080051 __u8 reserved0;
52 __u16 reserved1;
53 __u32 reserved2;
Christopher Ferris76a1d452018-06-27 14:12:29 -070054 __aligned_u64 lib_caps;
Christopher Ferris6a9755d2017-01-13 14:09:31 -080055};
Christopher Ferris6a9755d2017-01-13 14:09:31 -080056enum mlx5_ib_alloc_ucontext_resp_mask {
57 MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0,
Christopher Ferris9ce28842018-10-25 12:11:39 -070058 MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_DUMP_FILL_MKEY = 1UL << 1,
Christopher Ferris8177cdf2020-08-03 11:53:55 -070059 MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_ECE = 1UL << 2,
Christopher Ferris3a39c0b2021-09-02 00:03:38 +000060 MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_SQD2RTS = 1UL << 3,
61 MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_REAL_TIME_TS = 1UL << 4,
Christopher Ferris6cd53a52022-12-12 23:39:16 +000062 MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_MKEY_UPDATE_TAG = 1UL << 5,
Christopher Ferris6a9755d2017-01-13 14:09:31 -080063};
64enum mlx5_user_cmds_supp_uhw {
Christopher Ferris6a9755d2017-01-13 14:09:31 -080065 MLX5_USER_CMDS_SUPP_UHW_QUERY_DEVICE = 1 << 0,
Christopher Ferris48af7cb2017-02-21 12:35:09 -080066 MLX5_USER_CMDS_SUPP_UHW_CREATE_AH = 1 << 1,
Christopher Ferris6a9755d2017-01-13 14:09:31 -080067};
Christopher Ferris525ce912017-07-26 13:12:53 -070068enum mlx5_user_inline_mode {
69 MLX5_USER_INLINE_MODE_NA,
70 MLX5_USER_INLINE_MODE_NONE,
71 MLX5_USER_INLINE_MODE_L2,
72 MLX5_USER_INLINE_MODE_IP,
73 MLX5_USER_INLINE_MODE_TCP_UDP,
74};
Christopher Ferris76a1d452018-06-27 14:12:29 -070075enum {
76 MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM = 1 << 0,
77 MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM_REQ_METADATA = 1 << 1,
78 MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM_SPI_STEERING = 1 << 2,
79 MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM_FULL_OFFLOAD = 1 << 3,
80 MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM_TX_IV_IS_ESN = 1 << 4,
81};
Christopher Ferris6a9755d2017-01-13 14:09:31 -080082struct mlx5_ib_alloc_ucontext_resp {
Christopher Ferris48af7cb2017-02-21 12:35:09 -080083 __u32 qp_tab_size;
Christopher Ferris6a9755d2017-01-13 14:09:31 -080084 __u32 bf_reg_size;
Christopher Ferris525ce912017-07-26 13:12:53 -070085 __u32 tot_bfregs;
Christopher Ferris6a9755d2017-01-13 14:09:31 -080086 __u32 cache_line_size;
Christopher Ferris48af7cb2017-02-21 12:35:09 -080087 __u16 max_sq_desc_sz;
Christopher Ferris6a9755d2017-01-13 14:09:31 -080088 __u16 max_rq_desc_sz;
89 __u32 max_send_wqebb;
90 __u32 max_recv_wr;
Christopher Ferris48af7cb2017-02-21 12:35:09 -080091 __u32 max_srq_recv_wr;
Christopher Ferris6a9755d2017-01-13 14:09:31 -080092 __u16 num_ports;
Christopher Ferris76a1d452018-06-27 14:12:29 -070093 __u16 flow_action_flags;
Christopher Ferris6a9755d2017-01-13 14:09:31 -080094 __u32 comp_mask;
Christopher Ferris48af7cb2017-02-21 12:35:09 -080095 __u32 response_length;
Christopher Ferris6a9755d2017-01-13 14:09:31 -080096 __u8 cqe_version;
97 __u8 cmds_supp_uhw;
Christopher Ferris525ce912017-07-26 13:12:53 -070098 __u8 eth_min_inline;
Christopher Ferris76a1d452018-06-27 14:12:29 -070099 __u8 clock_info_versions;
100 __aligned_u64 hca_core_clock_offset;
Christopher Ferris525ce912017-07-26 13:12:53 -0700101 __u32 log_uar_size;
102 __u32 num_uars_per_page;
Christopher Ferris76a1d452018-06-27 14:12:29 -0700103 __u32 num_dyn_bfregs;
Christopher Ferris9ce28842018-10-25 12:11:39 -0700104 __u32 dump_fill_mkey;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800105};
106struct mlx5_ib_alloc_pd_resp {
107 __u32 pdn;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800108};
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800109struct mlx5_ib_tso_caps {
110 __u32 max_tso;
111 __u32 supported_qpts;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800112};
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800113struct mlx5_ib_rss_caps {
Christopher Ferris76a1d452018-06-27 14:12:29 -0700114 __aligned_u64 rx_hash_fields_mask;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800115 __u8 rx_hash_function;
116 __u8 reserved[7];
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800117};
118enum mlx5_ib_cqe_comp_res_format {
119 MLX5_IB_CQE_RES_FORMAT_HASH = 1 << 0,
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800120 MLX5_IB_CQE_RES_FORMAT_CSUM = 1 << 1,
Christopher Ferris9ce28842018-10-25 12:11:39 -0700121 MLX5_IB_CQE_RES_FORMAT_CSUM_STRIDX = 1 << 2,
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800122};
123struct mlx5_ib_cqe_comp_caps {
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800124 __u32 max_num;
125 __u32 supported_format;
126};
Christopher Ferris76a1d452018-06-27 14:12:29 -0700127enum mlx5_ib_packet_pacing_cap_flags {
128 MLX5_IB_PP_SUPPORT_BURST = 1 << 0,
129};
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800130struct mlx5_packet_pacing_caps {
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800131 __u32 qp_rate_limit_min;
132 __u32 qp_rate_limit_max;
133 __u32 supported_qpts;
Christopher Ferris76a1d452018-06-27 14:12:29 -0700134 __u8 cap_flags;
135 __u8 reserved[3];
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800136};
Christopher Ferris1308ad32017-11-14 17:32:13 -0800137enum mlx5_ib_mpw_caps {
138 MPW_RESERVED = 1 << 0,
139 MLX5_IB_ALLOW_MPW = 1 << 1,
140 MLX5_IB_SUPPORT_EMPW = 1 << 2,
141};
142enum mlx5_ib_sw_parsing_offloads {
143 MLX5_IB_SW_PARSING = 1 << 0,
144 MLX5_IB_SW_PARSING_CSUM = 1 << 1,
145 MLX5_IB_SW_PARSING_LSO = 1 << 2,
146};
147struct mlx5_ib_sw_parsing_caps {
148 __u32 sw_parsing_offloads;
149 __u32 supported_qpts;
150};
Christopher Ferris934ec942018-01-31 15:29:16 -0800151struct mlx5_ib_striding_rq_caps {
152 __u32 min_single_stride_log_num_of_bytes;
153 __u32 max_single_stride_log_num_of_bytes;
154 __u32 min_single_wqe_log_num_of_strides;
155 __u32 max_single_wqe_log_num_of_strides;
156 __u32 supported_qpts;
157 __u32 reserved;
158};
Christopher Ferris2abfa9e2021-11-01 16:26:06 -0700159struct mlx5_ib_dci_streams_caps {
160 __u8 max_log_num_concurent;
161 __u8 max_log_num_errored;
162};
Christopher Ferris934ec942018-01-31 15:29:16 -0800163enum mlx5_ib_query_dev_resp_flags {
164 MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_COMP = 1 << 0,
165 MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_PAD = 1 << 1,
Christopher Ferrisd842e432019-03-07 10:21:59 -0800166 MLX5_IB_QUERY_DEV_RESP_PACKET_BASED_CREDIT_MODE = 1 << 2,
Christopher Ferris24f97eb2019-05-20 12:58:13 -0700167 MLX5_IB_QUERY_DEV_RESP_FLAGS_SCAT2CQE_DCT = 1 << 3,
Christopher Ferris934ec942018-01-31 15:29:16 -0800168};
169enum mlx5_ib_tunnel_offloads {
170 MLX5_IB_TUNNELED_OFFLOADS_VXLAN = 1 << 0,
171 MLX5_IB_TUNNELED_OFFLOADS_GRE = 1 << 1,
Christopher Ferris9ce28842018-10-25 12:11:39 -0700172 MLX5_IB_TUNNELED_OFFLOADS_GENEVE = 1 << 2,
173 MLX5_IB_TUNNELED_OFFLOADS_MPLS_GRE = 1 << 3,
174 MLX5_IB_TUNNELED_OFFLOADS_MPLS_UDP = 1 << 4,
Christopher Ferris934ec942018-01-31 15:29:16 -0800175};
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800176struct mlx5_ib_query_device_resp {
177 __u32 comp_mask;
178 __u32 response_length;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800179 struct mlx5_ib_tso_caps tso_caps;
180 struct mlx5_ib_rss_caps rss_caps;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800181 struct mlx5_ib_cqe_comp_caps cqe_comp_caps;
182 struct mlx5_packet_pacing_caps packet_pacing_caps;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800183 __u32 mlx5_ib_support_multi_pkt_send_wqes;
Christopher Ferris934ec942018-01-31 15:29:16 -0800184 __u32 flags;
Christopher Ferris1308ad32017-11-14 17:32:13 -0800185 struct mlx5_ib_sw_parsing_caps sw_parsing_caps;
Christopher Ferris934ec942018-01-31 15:29:16 -0800186 struct mlx5_ib_striding_rq_caps striding_rq_caps;
187 __u32 tunnel_offloads_caps;
Christopher Ferris2abfa9e2021-11-01 16:26:06 -0700188 struct mlx5_ib_dci_streams_caps dci_streams_caps;
189 __u16 reserved;
Christopher Ferrisb830ddf2024-03-28 11:48:08 -0700190 struct mlx5_ib_uapi_reg reg_c0;
Christopher Ferris934ec942018-01-31 15:29:16 -0800191};
192enum mlx5_ib_create_cq_flags {
193 MLX5_IB_CREATE_CQ_FLAGS_CQE_128B_PAD = 1 << 0,
Christopher Ferrisaf09c702020-06-01 20:29:29 -0700194 MLX5_IB_CREATE_CQ_FLAGS_UAR_PAGE_INDEX = 1 << 1,
Christopher Ferris3a39c0b2021-09-02 00:03:38 +0000195 MLX5_IB_CREATE_CQ_FLAGS_REAL_TIME_TS = 1 << 2,
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800196};
197struct mlx5_ib_create_cq {
Christopher Ferris76a1d452018-06-27 14:12:29 -0700198 __aligned_u64 buf_addr;
199 __aligned_u64 db_addr;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800200 __u32 cqe_size;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800201 __u8 cqe_comp_en;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800202 __u8 cqe_comp_res_format;
Christopher Ferris934ec942018-01-31 15:29:16 -0800203 __u16 flags;
Christopher Ferrisaf09c702020-06-01 20:29:29 -0700204 __u16 uar_page_index;
205 __u16 reserved0;
206 __u32 reserved1;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800207};
208struct mlx5_ib_create_cq_resp {
209 __u32 cqn;
210 __u32 reserved;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800211};
212struct mlx5_ib_resize_cq {
Christopher Ferris76a1d452018-06-27 14:12:29 -0700213 __aligned_u64 buf_addr;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800214 __u16 cqe_size;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800215 __u16 reserved0;
216 __u32 reserved1;
217};
218struct mlx5_ib_create_srq {
Christopher Ferris76a1d452018-06-27 14:12:29 -0700219 __aligned_u64 buf_addr;
220 __aligned_u64 db_addr;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800221 __u32 flags;
222 __u32 reserved0;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800223 __u32 uidx;
224 __u32 reserved1;
225};
226struct mlx5_ib_create_srq_resp {
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800227 __u32 srqn;
228 __u32 reserved;
229};
Christopher Ferris2abfa9e2021-11-01 16:26:06 -0700230struct mlx5_ib_create_qp_dci_streams {
231 __u8 log_num_concurent;
232 __u8 log_num_errored;
233};
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800234struct mlx5_ib_create_qp {
Christopher Ferris76a1d452018-06-27 14:12:29 -0700235 __aligned_u64 buf_addr;
236 __aligned_u64 db_addr;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800237 __u32 sq_wqe_count;
238 __u32 rq_wqe_count;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800239 __u32 rq_wqe_shift;
240 __u32 flags;
241 __u32 uidx;
Christopher Ferris76a1d452018-06-27 14:12:29 -0700242 __u32 bfreg_index;
243 union {
244 __aligned_u64 sq_buf_addr;
245 __aligned_u64 access_key;
246 };
Christopher Ferris8177cdf2020-08-03 11:53:55 -0700247 __u32 ece_options;
Christopher Ferris2abfa9e2021-11-01 16:26:06 -0700248 struct mlx5_ib_create_qp_dci_streams dci_streams;
249 __u16 reserved;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800250};
251enum mlx5_rx_hash_function_flags {
252 MLX5_RX_HASH_FUNC_TOEPLITZ = 1 << 0,
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800253};
254enum mlx5_rx_hash_fields {
255 MLX5_RX_HASH_SRC_IPV4 = 1 << 0,
256 MLX5_RX_HASH_DST_IPV4 = 1 << 1,
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800257 MLX5_RX_HASH_SRC_IPV6 = 1 << 2,
258 MLX5_RX_HASH_DST_IPV6 = 1 << 3,
259 MLX5_RX_HASH_SRC_PORT_TCP = 1 << 4,
260 MLX5_RX_HASH_DST_PORT_TCP = 1 << 5,
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800261 MLX5_RX_HASH_SRC_PORT_UDP = 1 << 6,
Christopher Ferris934ec942018-01-31 15:29:16 -0800262 MLX5_RX_HASH_DST_PORT_UDP = 1 << 7,
Christopher Ferris76a1d452018-06-27 14:12:29 -0700263 MLX5_RX_HASH_IPSEC_SPI = 1 << 8,
264 MLX5_RX_HASH_INNER = (1UL << 31),
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800265};
266struct mlx5_ib_create_qp_rss {
Christopher Ferris76a1d452018-06-27 14:12:29 -0700267 __aligned_u64 rx_hash_fields_mask;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800268 __u8 rx_hash_function;
269 __u8 rx_key_len;
270 __u8 reserved[6];
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800271 __u8 rx_hash_key[128];
272 __u32 comp_mask;
Christopher Ferris934ec942018-01-31 15:29:16 -0800273 __u32 flags;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800274};
Christopher Ferris86a48372019-01-10 14:14:59 -0800275enum mlx5_ib_create_qp_resp_mask {
276 MLX5_IB_CREATE_QP_RESP_MASK_TIRN = 1UL << 0,
277 MLX5_IB_CREATE_QP_RESP_MASK_TISN = 1UL << 1,
278 MLX5_IB_CREATE_QP_RESP_MASK_RQN = 1UL << 2,
279 MLX5_IB_CREATE_QP_RESP_MASK_SQN = 1UL << 3,
Christopher Ferrisaeddbcf2019-07-08 12:45:46 -0700280 MLX5_IB_CREATE_QP_RESP_MASK_TIR_ICM_ADDR = 1UL << 4,
Christopher Ferris86a48372019-01-10 14:14:59 -0800281};
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800282struct mlx5_ib_create_qp_resp {
Christopher Ferris525ce912017-07-26 13:12:53 -0700283 __u32 bfreg_index;
Christopher Ferris8177cdf2020-08-03 11:53:55 -0700284 __u32 ece_options;
Christopher Ferris86a48372019-01-10 14:14:59 -0800285 __u32 comp_mask;
286 __u32 tirn;
287 __u32 tisn;
288 __u32 rqn;
289 __u32 sqn;
290 __u32 reserved1;
Christopher Ferrisaeddbcf2019-07-08 12:45:46 -0700291 __u64 tir_icm_addr;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800292};
293struct mlx5_ib_alloc_mw {
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800294 __u32 comp_mask;
295 __u8 num_klms;
296 __u8 reserved1;
297 __u16 reserved2;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800298};
Christopher Ferris934ec942018-01-31 15:29:16 -0800299enum mlx5_ib_create_wq_mask {
300 MLX5_IB_CREATE_WQ_STRIDING_RQ = (1 << 0),
301};
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800302struct mlx5_ib_create_wq {
Christopher Ferris76a1d452018-06-27 14:12:29 -0700303 __aligned_u64 buf_addr;
304 __aligned_u64 db_addr;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800305 __u32 rq_wqe_count;
306 __u32 rq_wqe_shift;
307 __u32 user_index;
308 __u32 flags;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800309 __u32 comp_mask;
Christopher Ferris934ec942018-01-31 15:29:16 -0800310 __u32 single_stride_log_num_of_bytes;
311 __u32 single_wqe_log_num_of_strides;
312 __u32 two_byte_shift_en;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800313};
314struct mlx5_ib_create_ah_resp {
315 __u32 response_length;
316 __u8 dmac[ETH_ALEN];
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800317 __u8 reserved[6];
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800318};
Christopher Ferris76a1d452018-06-27 14:12:29 -0700319struct mlx5_ib_burst_info {
320 __u32 max_burst_sz;
321 __u16 typical_pkt_sz;
322 __u16 reserved;
323};
324struct mlx5_ib_modify_qp {
325 __u32 comp_mask;
326 struct mlx5_ib_burst_info burst_info;
Christopher Ferris8177cdf2020-08-03 11:53:55 -0700327 __u32 ece_options;
Christopher Ferris76a1d452018-06-27 14:12:29 -0700328};
329struct mlx5_ib_modify_qp_resp {
330 __u32 response_length;
331 __u32 dctn;
Christopher Ferris8177cdf2020-08-03 11:53:55 -0700332 __u32 ece_options;
333 __u32 reserved;
Christopher Ferris76a1d452018-06-27 14:12:29 -0700334};
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800335struct mlx5_ib_create_wq_resp {
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800336 __u32 response_length;
337 __u32 reserved;
338};
339struct mlx5_ib_create_rwq_ind_tbl_resp {
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800340 __u32 response_length;
341 __u32 reserved;
342};
343struct mlx5_ib_modify_wq {
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800344 __u32 comp_mask;
345 __u32 reserved;
346};
Christopher Ferris76a1d452018-06-27 14:12:29 -0700347struct mlx5_ib_clock_info {
348 __u32 sign;
349 __u32 resv;
350 __aligned_u64 nsec;
351 __aligned_u64 cycles;
352 __aligned_u64 frac;
353 __u32 mult;
354 __u32 shift;
355 __aligned_u64 mask;
356 __aligned_u64 overflow_period;
357};
358enum mlx5_ib_mmap_cmd {
359 MLX5_IB_MMAP_REGULAR_PAGE = 0,
360 MLX5_IB_MMAP_GET_CONTIGUOUS_PAGES = 1,
361 MLX5_IB_MMAP_WC_PAGE = 2,
362 MLX5_IB_MMAP_NC_PAGE = 3,
363 MLX5_IB_MMAP_CORE_CLOCK = 5,
364 MLX5_IB_MMAP_ALLOC_WC = 6,
365 MLX5_IB_MMAP_CLOCK_INFO = 7,
366 MLX5_IB_MMAP_DEVICE_MEM = 8,
367};
368enum {
369 MLX5_IB_CLOCK_INFO_KERNEL_UPDATING = 1,
370};
371enum {
372 MLX5_IB_CLOCK_INFO_V1 = 0,
373};
Christopher Ferris9ce28842018-10-25 12:11:39 -0700374struct mlx5_ib_flow_counters_desc {
375 __u32 description;
376 __u32 index;
377};
378struct mlx5_ib_flow_counters_data {
379 RDMA_UAPI_PTR(struct mlx5_ib_flow_counters_desc *, counters_data);
380 __u32 ncounters;
381 __u32 reserved;
382};
383struct mlx5_ib_create_flow {
384 __u32 ncounters_data;
385 __u32 reserved;
386 struct mlx5_ib_flow_counters_data data[];
387};
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800388#endif