blob: f41c88748c593db6c7cc5324ee03f42cce9426af [file] [log] [blame]
Christopher Ferris6a9755d2017-01-13 14:09:31 -08001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 *** To edit the content of this header, modify the corresponding
11 *** source file (e.g. under external/kernel-headers/original/) then
12 *** run bionic/libc/kernel/tools/update_all.py
13 ***
14 *** Any manual change here will be lost the next time this script will
15 *** be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef MLX5_ABI_USER_H
20#define MLX5_ABI_USER_H
21#include <linux/types.h>
Christopher Ferris525ce912017-07-26 13:12:53 -070022#include <linux/if_ether.h>
Christopher Ferris9ce28842018-10-25 12:11:39 -070023#include <rdma/ib_user_ioctl_verbs.h>
Christopher Ferris6a9755d2017-01-13 14:09:31 -080024enum {
Christopher Ferris6a9755d2017-01-13 14:09:31 -080025 MLX5_QP_FLAG_SIGNATURE = 1 << 0,
26 MLX5_QP_FLAG_SCATTER_CQE = 1 << 1,
Christopher Ferris934ec942018-01-31 15:29:16 -080027 MLX5_QP_FLAG_TUNNEL_OFFLOADS = 1 << 2,
Christopher Ferris76a1d452018-06-27 14:12:29 -070028 MLX5_QP_FLAG_BFREG_INDEX = 1 << 3,
29 MLX5_QP_FLAG_TYPE_DCT = 1 << 4,
30 MLX5_QP_FLAG_TYPE_DCI = 1 << 5,
Christopher Ferris86a48372019-01-10 14:14:59 -080031 MLX5_QP_FLAG_TIR_ALLOW_SELF_LB_UC = 1 << 6,
32 MLX5_QP_FLAG_TIR_ALLOW_SELF_LB_MC = 1 << 7,
33 MLX5_QP_FLAG_ALLOW_SCATTER_CQE = 1 << 8,
Christopher Ferrisd842e432019-03-07 10:21:59 -080034 MLX5_QP_FLAG_PACKET_BASED_CREDIT_MODE = 1 << 9,
Christopher Ferrisaf09c702020-06-01 20:29:29 -070035 MLX5_QP_FLAG_UAR_PAGE_INDEX = 1 << 10,
Christopher Ferris2abfa9e2021-11-01 16:26:06 -070036 MLX5_QP_FLAG_DCI_STREAM = 1 << 11,
Christopher Ferris6a9755d2017-01-13 14:09:31 -080037};
38enum {
Christopher Ferris6a9755d2017-01-13 14:09:31 -080039 MLX5_SRQ_FLAG_SIGNATURE = 1 << 0,
40};
41enum {
42 MLX5_WQ_FLAG_SIGNATURE = 1 << 0,
Christopher Ferris6a9755d2017-01-13 14:09:31 -080043};
44#define MLX5_IB_UVERBS_ABI_VERSION 1
45struct mlx5_ib_alloc_ucontext_req {
Christopher Ferris525ce912017-07-26 13:12:53 -070046 __u32 total_num_bfregs;
47 __u32 num_low_latency_bfregs;
48};
49enum mlx5_lib_caps {
50 MLX5_LIB_CAP_4K_UAR = (__u64) 1 << 0,
Christopher Ferrisaf09c702020-06-01 20:29:29 -070051 MLX5_LIB_CAP_DYN_UAR = (__u64) 1 << 1,
Christopher Ferris6a9755d2017-01-13 14:09:31 -080052};
Christopher Ferris9ce28842018-10-25 12:11:39 -070053enum mlx5_ib_alloc_uctx_v2_flags {
54 MLX5_IB_ALLOC_UCTX_DEVX = 1 << 0,
55};
Christopher Ferris6a9755d2017-01-13 14:09:31 -080056struct mlx5_ib_alloc_ucontext_req_v2 {
Christopher Ferris525ce912017-07-26 13:12:53 -070057 __u32 total_num_bfregs;
58 __u32 num_low_latency_bfregs;
Christopher Ferris6a9755d2017-01-13 14:09:31 -080059 __u32 flags;
60 __u32 comp_mask;
61 __u8 max_cqe_version;
Christopher Ferris6a9755d2017-01-13 14:09:31 -080062 __u8 reserved0;
63 __u16 reserved1;
64 __u32 reserved2;
Christopher Ferris76a1d452018-06-27 14:12:29 -070065 __aligned_u64 lib_caps;
Christopher Ferris6a9755d2017-01-13 14:09:31 -080066};
Christopher Ferris6a9755d2017-01-13 14:09:31 -080067enum mlx5_ib_alloc_ucontext_resp_mask {
68 MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0,
Christopher Ferris9ce28842018-10-25 12:11:39 -070069 MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_DUMP_FILL_MKEY = 1UL << 1,
Christopher Ferris8177cdf2020-08-03 11:53:55 -070070 MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_ECE = 1UL << 2,
Christopher Ferris3a39c0b2021-09-02 00:03:38 +000071 MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_SQD2RTS = 1UL << 3,
72 MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_REAL_TIME_TS = 1UL << 4,
Christopher Ferris6cd53a52022-12-12 23:39:16 +000073 MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_MKEY_UPDATE_TAG = 1UL << 5,
Christopher Ferris6a9755d2017-01-13 14:09:31 -080074};
75enum mlx5_user_cmds_supp_uhw {
Christopher Ferris6a9755d2017-01-13 14:09:31 -080076 MLX5_USER_CMDS_SUPP_UHW_QUERY_DEVICE = 1 << 0,
Christopher Ferris48af7cb2017-02-21 12:35:09 -080077 MLX5_USER_CMDS_SUPP_UHW_CREATE_AH = 1 << 1,
Christopher Ferris6a9755d2017-01-13 14:09:31 -080078};
Christopher Ferris525ce912017-07-26 13:12:53 -070079enum mlx5_user_inline_mode {
80 MLX5_USER_INLINE_MODE_NA,
81 MLX5_USER_INLINE_MODE_NONE,
82 MLX5_USER_INLINE_MODE_L2,
83 MLX5_USER_INLINE_MODE_IP,
84 MLX5_USER_INLINE_MODE_TCP_UDP,
85};
Christopher Ferris76a1d452018-06-27 14:12:29 -070086enum {
87 MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM = 1 << 0,
88 MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM_REQ_METADATA = 1 << 1,
89 MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM_SPI_STEERING = 1 << 2,
90 MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM_FULL_OFFLOAD = 1 << 3,
91 MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM_TX_IV_IS_ESN = 1 << 4,
92};
Christopher Ferris6a9755d2017-01-13 14:09:31 -080093struct mlx5_ib_alloc_ucontext_resp {
Christopher Ferris48af7cb2017-02-21 12:35:09 -080094 __u32 qp_tab_size;
Christopher Ferris6a9755d2017-01-13 14:09:31 -080095 __u32 bf_reg_size;
Christopher Ferris525ce912017-07-26 13:12:53 -070096 __u32 tot_bfregs;
Christopher Ferris6a9755d2017-01-13 14:09:31 -080097 __u32 cache_line_size;
Christopher Ferris48af7cb2017-02-21 12:35:09 -080098 __u16 max_sq_desc_sz;
Christopher Ferris6a9755d2017-01-13 14:09:31 -080099 __u16 max_rq_desc_sz;
100 __u32 max_send_wqebb;
101 __u32 max_recv_wr;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800102 __u32 max_srq_recv_wr;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800103 __u16 num_ports;
Christopher Ferris76a1d452018-06-27 14:12:29 -0700104 __u16 flow_action_flags;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800105 __u32 comp_mask;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800106 __u32 response_length;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800107 __u8 cqe_version;
108 __u8 cmds_supp_uhw;
Christopher Ferris525ce912017-07-26 13:12:53 -0700109 __u8 eth_min_inline;
Christopher Ferris76a1d452018-06-27 14:12:29 -0700110 __u8 clock_info_versions;
111 __aligned_u64 hca_core_clock_offset;
Christopher Ferris525ce912017-07-26 13:12:53 -0700112 __u32 log_uar_size;
113 __u32 num_uars_per_page;
Christopher Ferris76a1d452018-06-27 14:12:29 -0700114 __u32 num_dyn_bfregs;
Christopher Ferris9ce28842018-10-25 12:11:39 -0700115 __u32 dump_fill_mkey;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800116};
117struct mlx5_ib_alloc_pd_resp {
118 __u32 pdn;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800119};
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800120struct mlx5_ib_tso_caps {
121 __u32 max_tso;
122 __u32 supported_qpts;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800123};
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800124struct mlx5_ib_rss_caps {
Christopher Ferris76a1d452018-06-27 14:12:29 -0700125 __aligned_u64 rx_hash_fields_mask;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800126 __u8 rx_hash_function;
127 __u8 reserved[7];
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800128};
129enum mlx5_ib_cqe_comp_res_format {
130 MLX5_IB_CQE_RES_FORMAT_HASH = 1 << 0,
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800131 MLX5_IB_CQE_RES_FORMAT_CSUM = 1 << 1,
Christopher Ferris9ce28842018-10-25 12:11:39 -0700132 MLX5_IB_CQE_RES_FORMAT_CSUM_STRIDX = 1 << 2,
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800133};
134struct mlx5_ib_cqe_comp_caps {
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800135 __u32 max_num;
136 __u32 supported_format;
137};
Christopher Ferris76a1d452018-06-27 14:12:29 -0700138enum mlx5_ib_packet_pacing_cap_flags {
139 MLX5_IB_PP_SUPPORT_BURST = 1 << 0,
140};
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800141struct mlx5_packet_pacing_caps {
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800142 __u32 qp_rate_limit_min;
143 __u32 qp_rate_limit_max;
144 __u32 supported_qpts;
Christopher Ferris76a1d452018-06-27 14:12:29 -0700145 __u8 cap_flags;
146 __u8 reserved[3];
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800147};
Christopher Ferris1308ad32017-11-14 17:32:13 -0800148enum mlx5_ib_mpw_caps {
149 MPW_RESERVED = 1 << 0,
150 MLX5_IB_ALLOW_MPW = 1 << 1,
151 MLX5_IB_SUPPORT_EMPW = 1 << 2,
152};
153enum mlx5_ib_sw_parsing_offloads {
154 MLX5_IB_SW_PARSING = 1 << 0,
155 MLX5_IB_SW_PARSING_CSUM = 1 << 1,
156 MLX5_IB_SW_PARSING_LSO = 1 << 2,
157};
158struct mlx5_ib_sw_parsing_caps {
159 __u32 sw_parsing_offloads;
160 __u32 supported_qpts;
161};
Christopher Ferris934ec942018-01-31 15:29:16 -0800162struct mlx5_ib_striding_rq_caps {
163 __u32 min_single_stride_log_num_of_bytes;
164 __u32 max_single_stride_log_num_of_bytes;
165 __u32 min_single_wqe_log_num_of_strides;
166 __u32 max_single_wqe_log_num_of_strides;
167 __u32 supported_qpts;
168 __u32 reserved;
169};
Christopher Ferris2abfa9e2021-11-01 16:26:06 -0700170struct mlx5_ib_dci_streams_caps {
171 __u8 max_log_num_concurent;
172 __u8 max_log_num_errored;
173};
Christopher Ferris934ec942018-01-31 15:29:16 -0800174enum mlx5_ib_query_dev_resp_flags {
175 MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_COMP = 1 << 0,
176 MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_PAD = 1 << 1,
Christopher Ferrisd842e432019-03-07 10:21:59 -0800177 MLX5_IB_QUERY_DEV_RESP_PACKET_BASED_CREDIT_MODE = 1 << 2,
Christopher Ferris24f97eb2019-05-20 12:58:13 -0700178 MLX5_IB_QUERY_DEV_RESP_FLAGS_SCAT2CQE_DCT = 1 << 3,
Christopher Ferris934ec942018-01-31 15:29:16 -0800179};
180enum mlx5_ib_tunnel_offloads {
181 MLX5_IB_TUNNELED_OFFLOADS_VXLAN = 1 << 0,
182 MLX5_IB_TUNNELED_OFFLOADS_GRE = 1 << 1,
Christopher Ferris9ce28842018-10-25 12:11:39 -0700183 MLX5_IB_TUNNELED_OFFLOADS_GENEVE = 1 << 2,
184 MLX5_IB_TUNNELED_OFFLOADS_MPLS_GRE = 1 << 3,
185 MLX5_IB_TUNNELED_OFFLOADS_MPLS_UDP = 1 << 4,
Christopher Ferris934ec942018-01-31 15:29:16 -0800186};
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800187struct mlx5_ib_query_device_resp {
188 __u32 comp_mask;
189 __u32 response_length;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800190 struct mlx5_ib_tso_caps tso_caps;
191 struct mlx5_ib_rss_caps rss_caps;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800192 struct mlx5_ib_cqe_comp_caps cqe_comp_caps;
193 struct mlx5_packet_pacing_caps packet_pacing_caps;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800194 __u32 mlx5_ib_support_multi_pkt_send_wqes;
Christopher Ferris934ec942018-01-31 15:29:16 -0800195 __u32 flags;
Christopher Ferris1308ad32017-11-14 17:32:13 -0800196 struct mlx5_ib_sw_parsing_caps sw_parsing_caps;
Christopher Ferris934ec942018-01-31 15:29:16 -0800197 struct mlx5_ib_striding_rq_caps striding_rq_caps;
198 __u32 tunnel_offloads_caps;
Christopher Ferris2abfa9e2021-11-01 16:26:06 -0700199 struct mlx5_ib_dci_streams_caps dci_streams_caps;
200 __u16 reserved;
Christopher Ferris934ec942018-01-31 15:29:16 -0800201};
202enum mlx5_ib_create_cq_flags {
203 MLX5_IB_CREATE_CQ_FLAGS_CQE_128B_PAD = 1 << 0,
Christopher Ferrisaf09c702020-06-01 20:29:29 -0700204 MLX5_IB_CREATE_CQ_FLAGS_UAR_PAGE_INDEX = 1 << 1,
Christopher Ferris3a39c0b2021-09-02 00:03:38 +0000205 MLX5_IB_CREATE_CQ_FLAGS_REAL_TIME_TS = 1 << 2,
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800206};
207struct mlx5_ib_create_cq {
Christopher Ferris76a1d452018-06-27 14:12:29 -0700208 __aligned_u64 buf_addr;
209 __aligned_u64 db_addr;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800210 __u32 cqe_size;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800211 __u8 cqe_comp_en;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800212 __u8 cqe_comp_res_format;
Christopher Ferris934ec942018-01-31 15:29:16 -0800213 __u16 flags;
Christopher Ferrisaf09c702020-06-01 20:29:29 -0700214 __u16 uar_page_index;
215 __u16 reserved0;
216 __u32 reserved1;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800217};
218struct mlx5_ib_create_cq_resp {
219 __u32 cqn;
220 __u32 reserved;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800221};
222struct mlx5_ib_resize_cq {
Christopher Ferris76a1d452018-06-27 14:12:29 -0700223 __aligned_u64 buf_addr;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800224 __u16 cqe_size;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800225 __u16 reserved0;
226 __u32 reserved1;
227};
228struct mlx5_ib_create_srq {
Christopher Ferris76a1d452018-06-27 14:12:29 -0700229 __aligned_u64 buf_addr;
230 __aligned_u64 db_addr;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800231 __u32 flags;
232 __u32 reserved0;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800233 __u32 uidx;
234 __u32 reserved1;
235};
236struct mlx5_ib_create_srq_resp {
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800237 __u32 srqn;
238 __u32 reserved;
239};
Christopher Ferris2abfa9e2021-11-01 16:26:06 -0700240struct mlx5_ib_create_qp_dci_streams {
241 __u8 log_num_concurent;
242 __u8 log_num_errored;
243};
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800244struct mlx5_ib_create_qp {
Christopher Ferris76a1d452018-06-27 14:12:29 -0700245 __aligned_u64 buf_addr;
246 __aligned_u64 db_addr;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800247 __u32 sq_wqe_count;
248 __u32 rq_wqe_count;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800249 __u32 rq_wqe_shift;
250 __u32 flags;
251 __u32 uidx;
Christopher Ferris76a1d452018-06-27 14:12:29 -0700252 __u32 bfreg_index;
253 union {
254 __aligned_u64 sq_buf_addr;
255 __aligned_u64 access_key;
256 };
Christopher Ferris8177cdf2020-08-03 11:53:55 -0700257 __u32 ece_options;
Christopher Ferris2abfa9e2021-11-01 16:26:06 -0700258 struct mlx5_ib_create_qp_dci_streams dci_streams;
259 __u16 reserved;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800260};
261enum mlx5_rx_hash_function_flags {
262 MLX5_RX_HASH_FUNC_TOEPLITZ = 1 << 0,
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800263};
264enum mlx5_rx_hash_fields {
265 MLX5_RX_HASH_SRC_IPV4 = 1 << 0,
266 MLX5_RX_HASH_DST_IPV4 = 1 << 1,
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800267 MLX5_RX_HASH_SRC_IPV6 = 1 << 2,
268 MLX5_RX_HASH_DST_IPV6 = 1 << 3,
269 MLX5_RX_HASH_SRC_PORT_TCP = 1 << 4,
270 MLX5_RX_HASH_DST_PORT_TCP = 1 << 5,
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800271 MLX5_RX_HASH_SRC_PORT_UDP = 1 << 6,
Christopher Ferris934ec942018-01-31 15:29:16 -0800272 MLX5_RX_HASH_DST_PORT_UDP = 1 << 7,
Christopher Ferris76a1d452018-06-27 14:12:29 -0700273 MLX5_RX_HASH_IPSEC_SPI = 1 << 8,
274 MLX5_RX_HASH_INNER = (1UL << 31),
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800275};
276struct mlx5_ib_create_qp_rss {
Christopher Ferris76a1d452018-06-27 14:12:29 -0700277 __aligned_u64 rx_hash_fields_mask;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800278 __u8 rx_hash_function;
279 __u8 rx_key_len;
280 __u8 reserved[6];
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800281 __u8 rx_hash_key[128];
282 __u32 comp_mask;
Christopher Ferris934ec942018-01-31 15:29:16 -0800283 __u32 flags;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800284};
Christopher Ferris86a48372019-01-10 14:14:59 -0800285enum mlx5_ib_create_qp_resp_mask {
286 MLX5_IB_CREATE_QP_RESP_MASK_TIRN = 1UL << 0,
287 MLX5_IB_CREATE_QP_RESP_MASK_TISN = 1UL << 1,
288 MLX5_IB_CREATE_QP_RESP_MASK_RQN = 1UL << 2,
289 MLX5_IB_CREATE_QP_RESP_MASK_SQN = 1UL << 3,
Christopher Ferrisaeddbcf2019-07-08 12:45:46 -0700290 MLX5_IB_CREATE_QP_RESP_MASK_TIR_ICM_ADDR = 1UL << 4,
Christopher Ferris86a48372019-01-10 14:14:59 -0800291};
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800292struct mlx5_ib_create_qp_resp {
Christopher Ferris525ce912017-07-26 13:12:53 -0700293 __u32 bfreg_index;
Christopher Ferris8177cdf2020-08-03 11:53:55 -0700294 __u32 ece_options;
Christopher Ferris86a48372019-01-10 14:14:59 -0800295 __u32 comp_mask;
296 __u32 tirn;
297 __u32 tisn;
298 __u32 rqn;
299 __u32 sqn;
300 __u32 reserved1;
Christopher Ferrisaeddbcf2019-07-08 12:45:46 -0700301 __u64 tir_icm_addr;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800302};
303struct mlx5_ib_alloc_mw {
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800304 __u32 comp_mask;
305 __u8 num_klms;
306 __u8 reserved1;
307 __u16 reserved2;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800308};
Christopher Ferris934ec942018-01-31 15:29:16 -0800309enum mlx5_ib_create_wq_mask {
310 MLX5_IB_CREATE_WQ_STRIDING_RQ = (1 << 0),
311};
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800312struct mlx5_ib_create_wq {
Christopher Ferris76a1d452018-06-27 14:12:29 -0700313 __aligned_u64 buf_addr;
314 __aligned_u64 db_addr;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800315 __u32 rq_wqe_count;
316 __u32 rq_wqe_shift;
317 __u32 user_index;
318 __u32 flags;
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800319 __u32 comp_mask;
Christopher Ferris934ec942018-01-31 15:29:16 -0800320 __u32 single_stride_log_num_of_bytes;
321 __u32 single_wqe_log_num_of_strides;
322 __u32 two_byte_shift_en;
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800323};
324struct mlx5_ib_create_ah_resp {
325 __u32 response_length;
326 __u8 dmac[ETH_ALEN];
Christopher Ferris48af7cb2017-02-21 12:35:09 -0800327 __u8 reserved[6];
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800328};
Christopher Ferris76a1d452018-06-27 14:12:29 -0700329struct mlx5_ib_burst_info {
330 __u32 max_burst_sz;
331 __u16 typical_pkt_sz;
332 __u16 reserved;
333};
334struct mlx5_ib_modify_qp {
335 __u32 comp_mask;
336 struct mlx5_ib_burst_info burst_info;
Christopher Ferris8177cdf2020-08-03 11:53:55 -0700337 __u32 ece_options;
Christopher Ferris76a1d452018-06-27 14:12:29 -0700338};
339struct mlx5_ib_modify_qp_resp {
340 __u32 response_length;
341 __u32 dctn;
Christopher Ferris8177cdf2020-08-03 11:53:55 -0700342 __u32 ece_options;
343 __u32 reserved;
Christopher Ferris76a1d452018-06-27 14:12:29 -0700344};
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800345struct mlx5_ib_create_wq_resp {
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800346 __u32 response_length;
347 __u32 reserved;
348};
349struct mlx5_ib_create_rwq_ind_tbl_resp {
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800350 __u32 response_length;
351 __u32 reserved;
352};
353struct mlx5_ib_modify_wq {
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800354 __u32 comp_mask;
355 __u32 reserved;
356};
Christopher Ferris76a1d452018-06-27 14:12:29 -0700357struct mlx5_ib_clock_info {
358 __u32 sign;
359 __u32 resv;
360 __aligned_u64 nsec;
361 __aligned_u64 cycles;
362 __aligned_u64 frac;
363 __u32 mult;
364 __u32 shift;
365 __aligned_u64 mask;
366 __aligned_u64 overflow_period;
367};
368enum mlx5_ib_mmap_cmd {
369 MLX5_IB_MMAP_REGULAR_PAGE = 0,
370 MLX5_IB_MMAP_GET_CONTIGUOUS_PAGES = 1,
371 MLX5_IB_MMAP_WC_PAGE = 2,
372 MLX5_IB_MMAP_NC_PAGE = 3,
373 MLX5_IB_MMAP_CORE_CLOCK = 5,
374 MLX5_IB_MMAP_ALLOC_WC = 6,
375 MLX5_IB_MMAP_CLOCK_INFO = 7,
376 MLX5_IB_MMAP_DEVICE_MEM = 8,
377};
378enum {
379 MLX5_IB_CLOCK_INFO_KERNEL_UPDATING = 1,
380};
381enum {
382 MLX5_IB_CLOCK_INFO_V1 = 0,
383};
Christopher Ferris9ce28842018-10-25 12:11:39 -0700384struct mlx5_ib_flow_counters_desc {
385 __u32 description;
386 __u32 index;
387};
388struct mlx5_ib_flow_counters_data {
389 RDMA_UAPI_PTR(struct mlx5_ib_flow_counters_desc *, counters_data);
390 __u32 ncounters;
391 __u32 reserved;
392};
393struct mlx5_ib_create_flow {
394 __u32 ncounters_data;
395 __u32 reserved;
396 struct mlx5_ib_flow_counters_data data[];
397};
Christopher Ferris6a9755d2017-01-13 14:09:31 -0800398#endif