1*8d67ca89SAndroid Build Coastguard Worker /* 2*8d67ca89SAndroid Build Coastguard Worker * This file is auto-generated. Modifications will be lost. 3*8d67ca89SAndroid Build Coastguard Worker * 4*8d67ca89SAndroid Build Coastguard Worker * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5*8d67ca89SAndroid Build Coastguard Worker * for more information. 6*8d67ca89SAndroid Build Coastguard Worker */ 7*8d67ca89SAndroid Build Coastguard Worker #ifndef MLX5_ABI_USER_H 8*8d67ca89SAndroid Build Coastguard Worker #define MLX5_ABI_USER_H 9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h> 10*8d67ca89SAndroid Build Coastguard Worker #include <linux/if_ether.h> 11*8d67ca89SAndroid Build Coastguard Worker #include <rdma/ib_user_ioctl_verbs.h> 12*8d67ca89SAndroid Build Coastguard Worker #include <rdma/mlx5_user_ioctl_verbs.h> 13*8d67ca89SAndroid Build Coastguard Worker enum { 14*8d67ca89SAndroid Build Coastguard Worker MLX5_QP_FLAG_SIGNATURE = 1 << 0, 15*8d67ca89SAndroid Build Coastguard Worker MLX5_QP_FLAG_SCATTER_CQE = 1 << 1, 16*8d67ca89SAndroid Build Coastguard Worker MLX5_QP_FLAG_TUNNEL_OFFLOADS = 1 << 2, 17*8d67ca89SAndroid Build Coastguard Worker MLX5_QP_FLAG_BFREG_INDEX = 1 << 3, 18*8d67ca89SAndroid Build Coastguard Worker MLX5_QP_FLAG_TYPE_DCT = 1 << 4, 19*8d67ca89SAndroid Build Coastguard Worker MLX5_QP_FLAG_TYPE_DCI = 1 << 5, 20*8d67ca89SAndroid Build Coastguard Worker MLX5_QP_FLAG_TIR_ALLOW_SELF_LB_UC = 1 << 6, 21*8d67ca89SAndroid Build Coastguard Worker MLX5_QP_FLAG_TIR_ALLOW_SELF_LB_MC = 1 << 7, 22*8d67ca89SAndroid Build Coastguard Worker MLX5_QP_FLAG_ALLOW_SCATTER_CQE = 1 << 8, 23*8d67ca89SAndroid Build Coastguard Worker MLX5_QP_FLAG_PACKET_BASED_CREDIT_MODE = 1 << 9, 24*8d67ca89SAndroid Build Coastguard Worker MLX5_QP_FLAG_UAR_PAGE_INDEX = 1 << 10, 25*8d67ca89SAndroid Build Coastguard Worker MLX5_QP_FLAG_DCI_STREAM = 1 << 11, 26*8d67ca89SAndroid Build Coastguard Worker }; 27*8d67ca89SAndroid Build Coastguard Worker enum { 28*8d67ca89SAndroid Build Coastguard Worker MLX5_SRQ_FLAG_SIGNATURE = 1 << 0, 29*8d67ca89SAndroid Build Coastguard Worker }; 30*8d67ca89SAndroid Build Coastguard Worker enum { 31*8d67ca89SAndroid Build Coastguard Worker MLX5_WQ_FLAG_SIGNATURE = 1 << 0, 32*8d67ca89SAndroid Build Coastguard Worker }; 33*8d67ca89SAndroid Build Coastguard Worker #define MLX5_IB_UVERBS_ABI_VERSION 1 34*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_alloc_ucontext_req { 35*8d67ca89SAndroid Build Coastguard Worker __u32 total_num_bfregs; 36*8d67ca89SAndroid Build Coastguard Worker __u32 num_low_latency_bfregs; 37*8d67ca89SAndroid Build Coastguard Worker }; 38*8d67ca89SAndroid Build Coastguard Worker enum mlx5_lib_caps { 39*8d67ca89SAndroid Build Coastguard Worker MLX5_LIB_CAP_4K_UAR = (__u64) 1 << 0, 40*8d67ca89SAndroid Build Coastguard Worker MLX5_LIB_CAP_DYN_UAR = (__u64) 1 << 1, 41*8d67ca89SAndroid Build Coastguard Worker }; 42*8d67ca89SAndroid Build Coastguard Worker enum mlx5_ib_alloc_uctx_v2_flags { 43*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_ALLOC_UCTX_DEVX = 1 << 0, 44*8d67ca89SAndroid Build Coastguard Worker }; 45*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_alloc_ucontext_req_v2 { 46*8d67ca89SAndroid Build Coastguard Worker __u32 total_num_bfregs; 47*8d67ca89SAndroid Build Coastguard Worker __u32 num_low_latency_bfregs; 48*8d67ca89SAndroid Build Coastguard Worker __u32 flags; 49*8d67ca89SAndroid Build Coastguard Worker __u32 comp_mask; 50*8d67ca89SAndroid Build Coastguard Worker __u8 max_cqe_version; 51*8d67ca89SAndroid Build Coastguard Worker __u8 reserved0; 52*8d67ca89SAndroid Build Coastguard Worker __u16 reserved1; 53*8d67ca89SAndroid Build Coastguard Worker __u32 reserved2; 54*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 lib_caps; 55*8d67ca89SAndroid Build Coastguard Worker }; 56*8d67ca89SAndroid Build Coastguard Worker enum mlx5_ib_alloc_ucontext_resp_mask { 57*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0, 58*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_DUMP_FILL_MKEY = 1UL << 1, 59*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_ECE = 1UL << 2, 60*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_SQD2RTS = 1UL << 3, 61*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_REAL_TIME_TS = 1UL << 4, 62*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_MKEY_UPDATE_TAG = 1UL << 5, 63*8d67ca89SAndroid Build Coastguard Worker }; 64*8d67ca89SAndroid Build Coastguard Worker enum mlx5_user_cmds_supp_uhw { 65*8d67ca89SAndroid Build Coastguard Worker MLX5_USER_CMDS_SUPP_UHW_QUERY_DEVICE = 1 << 0, 66*8d67ca89SAndroid Build Coastguard Worker MLX5_USER_CMDS_SUPP_UHW_CREATE_AH = 1 << 1, 67*8d67ca89SAndroid Build Coastguard Worker }; 68*8d67ca89SAndroid Build Coastguard Worker enum mlx5_user_inline_mode { 69*8d67ca89SAndroid Build Coastguard Worker MLX5_USER_INLINE_MODE_NA, 70*8d67ca89SAndroid Build Coastguard Worker MLX5_USER_INLINE_MODE_NONE, 71*8d67ca89SAndroid Build Coastguard Worker MLX5_USER_INLINE_MODE_L2, 72*8d67ca89SAndroid Build Coastguard Worker MLX5_USER_INLINE_MODE_IP, 73*8d67ca89SAndroid Build Coastguard Worker MLX5_USER_INLINE_MODE_TCP_UDP, 74*8d67ca89SAndroid Build Coastguard Worker }; 75*8d67ca89SAndroid Build Coastguard Worker enum { 76*8d67ca89SAndroid Build Coastguard Worker MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM = 1 << 0, 77*8d67ca89SAndroid Build Coastguard Worker MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM_REQ_METADATA = 1 << 1, 78*8d67ca89SAndroid Build Coastguard Worker MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM_SPI_STEERING = 1 << 2, 79*8d67ca89SAndroid Build Coastguard Worker MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM_FULL_OFFLOAD = 1 << 3, 80*8d67ca89SAndroid Build Coastguard Worker MLX5_USER_ALLOC_UCONTEXT_FLOW_ACTION_FLAGS_ESP_AES_GCM_TX_IV_IS_ESN = 1 << 4, 81*8d67ca89SAndroid Build Coastguard Worker }; 82*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_alloc_ucontext_resp { 83*8d67ca89SAndroid Build Coastguard Worker __u32 qp_tab_size; 84*8d67ca89SAndroid Build Coastguard Worker __u32 bf_reg_size; 85*8d67ca89SAndroid Build Coastguard Worker __u32 tot_bfregs; 86*8d67ca89SAndroid Build Coastguard Worker __u32 cache_line_size; 87*8d67ca89SAndroid Build Coastguard Worker __u16 max_sq_desc_sz; 88*8d67ca89SAndroid Build Coastguard Worker __u16 max_rq_desc_sz; 89*8d67ca89SAndroid Build Coastguard Worker __u32 max_send_wqebb; 90*8d67ca89SAndroid Build Coastguard Worker __u32 max_recv_wr; 91*8d67ca89SAndroid Build Coastguard Worker __u32 max_srq_recv_wr; 92*8d67ca89SAndroid Build Coastguard Worker __u16 num_ports; 93*8d67ca89SAndroid Build Coastguard Worker __u16 flow_action_flags; 94*8d67ca89SAndroid Build Coastguard Worker __u32 comp_mask; 95*8d67ca89SAndroid Build Coastguard Worker __u32 response_length; 96*8d67ca89SAndroid Build Coastguard Worker __u8 cqe_version; 97*8d67ca89SAndroid Build Coastguard Worker __u8 cmds_supp_uhw; 98*8d67ca89SAndroid Build Coastguard Worker __u8 eth_min_inline; 99*8d67ca89SAndroid Build Coastguard Worker __u8 clock_info_versions; 100*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 hca_core_clock_offset; 101*8d67ca89SAndroid Build Coastguard Worker __u32 log_uar_size; 102*8d67ca89SAndroid Build Coastguard Worker __u32 num_uars_per_page; 103*8d67ca89SAndroid Build Coastguard Worker __u32 num_dyn_bfregs; 104*8d67ca89SAndroid Build Coastguard Worker __u32 dump_fill_mkey; 105*8d67ca89SAndroid Build Coastguard Worker }; 106*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_alloc_pd_resp { 107*8d67ca89SAndroid Build Coastguard Worker __u32 pdn; 108*8d67ca89SAndroid Build Coastguard Worker }; 109*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_tso_caps { 110*8d67ca89SAndroid Build Coastguard Worker __u32 max_tso; 111*8d67ca89SAndroid Build Coastguard Worker __u32 supported_qpts; 112*8d67ca89SAndroid Build Coastguard Worker }; 113*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_rss_caps { 114*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 rx_hash_fields_mask; 115*8d67ca89SAndroid Build Coastguard Worker __u8 rx_hash_function; 116*8d67ca89SAndroid Build Coastguard Worker __u8 reserved[7]; 117*8d67ca89SAndroid Build Coastguard Worker }; 118*8d67ca89SAndroid Build Coastguard Worker enum mlx5_ib_cqe_comp_res_format { 119*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_CQE_RES_FORMAT_HASH = 1 << 0, 120*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_CQE_RES_FORMAT_CSUM = 1 << 1, 121*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_CQE_RES_FORMAT_CSUM_STRIDX = 1 << 2, 122*8d67ca89SAndroid Build Coastguard Worker }; 123*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_cqe_comp_caps { 124*8d67ca89SAndroid Build Coastguard Worker __u32 max_num; 125*8d67ca89SAndroid Build Coastguard Worker __u32 supported_format; 126*8d67ca89SAndroid Build Coastguard Worker }; 127*8d67ca89SAndroid Build Coastguard Worker enum mlx5_ib_packet_pacing_cap_flags { 128*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_PP_SUPPORT_BURST = 1 << 0, 129*8d67ca89SAndroid Build Coastguard Worker }; 130*8d67ca89SAndroid Build Coastguard Worker struct mlx5_packet_pacing_caps { 131*8d67ca89SAndroid Build Coastguard Worker __u32 qp_rate_limit_min; 132*8d67ca89SAndroid Build Coastguard Worker __u32 qp_rate_limit_max; 133*8d67ca89SAndroid Build Coastguard Worker __u32 supported_qpts; 134*8d67ca89SAndroid Build Coastguard Worker __u8 cap_flags; 135*8d67ca89SAndroid Build Coastguard Worker __u8 reserved[3]; 136*8d67ca89SAndroid Build Coastguard Worker }; 137*8d67ca89SAndroid Build Coastguard Worker enum mlx5_ib_mpw_caps { 138*8d67ca89SAndroid Build Coastguard Worker MPW_RESERVED = 1 << 0, 139*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_ALLOW_MPW = 1 << 1, 140*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_SUPPORT_EMPW = 1 << 2, 141*8d67ca89SAndroid Build Coastguard Worker }; 142*8d67ca89SAndroid Build Coastguard Worker enum mlx5_ib_sw_parsing_offloads { 143*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_SW_PARSING = 1 << 0, 144*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_SW_PARSING_CSUM = 1 << 1, 145*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_SW_PARSING_LSO = 1 << 2, 146*8d67ca89SAndroid Build Coastguard Worker }; 147*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_sw_parsing_caps { 148*8d67ca89SAndroid Build Coastguard Worker __u32 sw_parsing_offloads; 149*8d67ca89SAndroid Build Coastguard Worker __u32 supported_qpts; 150*8d67ca89SAndroid Build Coastguard Worker }; 151*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_striding_rq_caps { 152*8d67ca89SAndroid Build Coastguard Worker __u32 min_single_stride_log_num_of_bytes; 153*8d67ca89SAndroid Build Coastguard Worker __u32 max_single_stride_log_num_of_bytes; 154*8d67ca89SAndroid Build Coastguard Worker __u32 min_single_wqe_log_num_of_strides; 155*8d67ca89SAndroid Build Coastguard Worker __u32 max_single_wqe_log_num_of_strides; 156*8d67ca89SAndroid Build Coastguard Worker __u32 supported_qpts; 157*8d67ca89SAndroid Build Coastguard Worker __u32 reserved; 158*8d67ca89SAndroid Build Coastguard Worker }; 159*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_dci_streams_caps { 160*8d67ca89SAndroid Build Coastguard Worker __u8 max_log_num_concurent; 161*8d67ca89SAndroid Build Coastguard Worker __u8 max_log_num_errored; 162*8d67ca89SAndroid Build Coastguard Worker }; 163*8d67ca89SAndroid Build Coastguard Worker enum mlx5_ib_query_dev_resp_flags { 164*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_COMP = 1 << 0, 165*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_PAD = 1 << 1, 166*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_QUERY_DEV_RESP_PACKET_BASED_CREDIT_MODE = 1 << 2, 167*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_QUERY_DEV_RESP_FLAGS_SCAT2CQE_DCT = 1 << 3, 168*8d67ca89SAndroid Build Coastguard Worker }; 169*8d67ca89SAndroid Build Coastguard Worker enum mlx5_ib_tunnel_offloads { 170*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_TUNNELED_OFFLOADS_VXLAN = 1 << 0, 171*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_TUNNELED_OFFLOADS_GRE = 1 << 1, 172*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_TUNNELED_OFFLOADS_GENEVE = 1 << 2, 173*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_TUNNELED_OFFLOADS_MPLS_GRE = 1 << 3, 174*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_TUNNELED_OFFLOADS_MPLS_UDP = 1 << 4, 175*8d67ca89SAndroid Build Coastguard Worker }; 176*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_query_device_resp { 177*8d67ca89SAndroid Build Coastguard Worker __u32 comp_mask; 178*8d67ca89SAndroid Build Coastguard Worker __u32 response_length; 179*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_tso_caps tso_caps; 180*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_rss_caps rss_caps; 181*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_cqe_comp_caps cqe_comp_caps; 182*8d67ca89SAndroid Build Coastguard Worker struct mlx5_packet_pacing_caps packet_pacing_caps; 183*8d67ca89SAndroid Build Coastguard Worker __u32 mlx5_ib_support_multi_pkt_send_wqes; 184*8d67ca89SAndroid Build Coastguard Worker __u32 flags; 185*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_sw_parsing_caps sw_parsing_caps; 186*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_striding_rq_caps striding_rq_caps; 187*8d67ca89SAndroid Build Coastguard Worker __u32 tunnel_offloads_caps; 188*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_dci_streams_caps dci_streams_caps; 189*8d67ca89SAndroid Build Coastguard Worker __u16 reserved; 190*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_uapi_reg reg_c0; 191*8d67ca89SAndroid Build Coastguard Worker }; 192*8d67ca89SAndroid Build Coastguard Worker enum mlx5_ib_create_cq_flags { 193*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_CREATE_CQ_FLAGS_CQE_128B_PAD = 1 << 0, 194*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_CREATE_CQ_FLAGS_UAR_PAGE_INDEX = 1 << 1, 195*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_CREATE_CQ_FLAGS_REAL_TIME_TS = 1 << 2, 196*8d67ca89SAndroid Build Coastguard Worker }; 197*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_create_cq { 198*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 buf_addr; 199*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 db_addr; 200*8d67ca89SAndroid Build Coastguard Worker __u32 cqe_size; 201*8d67ca89SAndroid Build Coastguard Worker __u8 cqe_comp_en; 202*8d67ca89SAndroid Build Coastguard Worker __u8 cqe_comp_res_format; 203*8d67ca89SAndroid Build Coastguard Worker __u16 flags; 204*8d67ca89SAndroid Build Coastguard Worker __u16 uar_page_index; 205*8d67ca89SAndroid Build Coastguard Worker __u16 reserved0; 206*8d67ca89SAndroid Build Coastguard Worker __u32 reserved1; 207*8d67ca89SAndroid Build Coastguard Worker }; 208*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_create_cq_resp { 209*8d67ca89SAndroid Build Coastguard Worker __u32 cqn; 210*8d67ca89SAndroid Build Coastguard Worker __u32 reserved; 211*8d67ca89SAndroid Build Coastguard Worker }; 212*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_resize_cq { 213*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 buf_addr; 214*8d67ca89SAndroid Build Coastguard Worker __u16 cqe_size; 215*8d67ca89SAndroid Build Coastguard Worker __u16 reserved0; 216*8d67ca89SAndroid Build Coastguard Worker __u32 reserved1; 217*8d67ca89SAndroid Build Coastguard Worker }; 218*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_create_srq { 219*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 buf_addr; 220*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 db_addr; 221*8d67ca89SAndroid Build Coastguard Worker __u32 flags; 222*8d67ca89SAndroid Build Coastguard Worker __u32 reserved0; 223*8d67ca89SAndroid Build Coastguard Worker __u32 uidx; 224*8d67ca89SAndroid Build Coastguard Worker __u32 reserved1; 225*8d67ca89SAndroid Build Coastguard Worker }; 226*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_create_srq_resp { 227*8d67ca89SAndroid Build Coastguard Worker __u32 srqn; 228*8d67ca89SAndroid Build Coastguard Worker __u32 reserved; 229*8d67ca89SAndroid Build Coastguard Worker }; 230*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_create_qp_dci_streams { 231*8d67ca89SAndroid Build Coastguard Worker __u8 log_num_concurent; 232*8d67ca89SAndroid Build Coastguard Worker __u8 log_num_errored; 233*8d67ca89SAndroid Build Coastguard Worker }; 234*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_create_qp { 235*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 buf_addr; 236*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 db_addr; 237*8d67ca89SAndroid Build Coastguard Worker __u32 sq_wqe_count; 238*8d67ca89SAndroid Build Coastguard Worker __u32 rq_wqe_count; 239*8d67ca89SAndroid Build Coastguard Worker __u32 rq_wqe_shift; 240*8d67ca89SAndroid Build Coastguard Worker __u32 flags; 241*8d67ca89SAndroid Build Coastguard Worker __u32 uidx; 242*8d67ca89SAndroid Build Coastguard Worker __u32 bfreg_index; 243*8d67ca89SAndroid Build Coastguard Worker union { 244*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 sq_buf_addr; 245*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 access_key; 246*8d67ca89SAndroid Build Coastguard Worker }; 247*8d67ca89SAndroid Build Coastguard Worker __u32 ece_options; 248*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_create_qp_dci_streams dci_streams; 249*8d67ca89SAndroid Build Coastguard Worker __u16 reserved; 250*8d67ca89SAndroid Build Coastguard Worker }; 251*8d67ca89SAndroid Build Coastguard Worker enum mlx5_rx_hash_function_flags { 252*8d67ca89SAndroid Build Coastguard Worker MLX5_RX_HASH_FUNC_TOEPLITZ = 1 << 0, 253*8d67ca89SAndroid Build Coastguard Worker }; 254*8d67ca89SAndroid Build Coastguard Worker enum mlx5_rx_hash_fields { 255*8d67ca89SAndroid Build Coastguard Worker MLX5_RX_HASH_SRC_IPV4 = 1 << 0, 256*8d67ca89SAndroid Build Coastguard Worker MLX5_RX_HASH_DST_IPV4 = 1 << 1, 257*8d67ca89SAndroid Build Coastguard Worker MLX5_RX_HASH_SRC_IPV6 = 1 << 2, 258*8d67ca89SAndroid Build Coastguard Worker MLX5_RX_HASH_DST_IPV6 = 1 << 3, 259*8d67ca89SAndroid Build Coastguard Worker MLX5_RX_HASH_SRC_PORT_TCP = 1 << 4, 260*8d67ca89SAndroid Build Coastguard Worker MLX5_RX_HASH_DST_PORT_TCP = 1 << 5, 261*8d67ca89SAndroid Build Coastguard Worker MLX5_RX_HASH_SRC_PORT_UDP = 1 << 6, 262*8d67ca89SAndroid Build Coastguard Worker MLX5_RX_HASH_DST_PORT_UDP = 1 << 7, 263*8d67ca89SAndroid Build Coastguard Worker MLX5_RX_HASH_IPSEC_SPI = 1 << 8, 264*8d67ca89SAndroid Build Coastguard Worker MLX5_RX_HASH_INNER = (1UL << 31), 265*8d67ca89SAndroid Build Coastguard Worker }; 266*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_create_qp_rss { 267*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 rx_hash_fields_mask; 268*8d67ca89SAndroid Build Coastguard Worker __u8 rx_hash_function; 269*8d67ca89SAndroid Build Coastguard Worker __u8 rx_key_len; 270*8d67ca89SAndroid Build Coastguard Worker __u8 reserved[6]; 271*8d67ca89SAndroid Build Coastguard Worker __u8 rx_hash_key[128]; 272*8d67ca89SAndroid Build Coastguard Worker __u32 comp_mask; 273*8d67ca89SAndroid Build Coastguard Worker __u32 flags; 274*8d67ca89SAndroid Build Coastguard Worker }; 275*8d67ca89SAndroid Build Coastguard Worker enum mlx5_ib_create_qp_resp_mask { 276*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_CREATE_QP_RESP_MASK_TIRN = 1UL << 0, 277*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_CREATE_QP_RESP_MASK_TISN = 1UL << 1, 278*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_CREATE_QP_RESP_MASK_RQN = 1UL << 2, 279*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_CREATE_QP_RESP_MASK_SQN = 1UL << 3, 280*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_CREATE_QP_RESP_MASK_TIR_ICM_ADDR = 1UL << 4, 281*8d67ca89SAndroid Build Coastguard Worker }; 282*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_create_qp_resp { 283*8d67ca89SAndroid Build Coastguard Worker __u32 bfreg_index; 284*8d67ca89SAndroid Build Coastguard Worker __u32 ece_options; 285*8d67ca89SAndroid Build Coastguard Worker __u32 comp_mask; 286*8d67ca89SAndroid Build Coastguard Worker __u32 tirn; 287*8d67ca89SAndroid Build Coastguard Worker __u32 tisn; 288*8d67ca89SAndroid Build Coastguard Worker __u32 rqn; 289*8d67ca89SAndroid Build Coastguard Worker __u32 sqn; 290*8d67ca89SAndroid Build Coastguard Worker __u32 reserved1; 291*8d67ca89SAndroid Build Coastguard Worker __u64 tir_icm_addr; 292*8d67ca89SAndroid Build Coastguard Worker }; 293*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_alloc_mw { 294*8d67ca89SAndroid Build Coastguard Worker __u32 comp_mask; 295*8d67ca89SAndroid Build Coastguard Worker __u8 num_klms; 296*8d67ca89SAndroid Build Coastguard Worker __u8 reserved1; 297*8d67ca89SAndroid Build Coastguard Worker __u16 reserved2; 298*8d67ca89SAndroid Build Coastguard Worker }; 299*8d67ca89SAndroid Build Coastguard Worker enum mlx5_ib_create_wq_mask { 300*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_CREATE_WQ_STRIDING_RQ = (1 << 0), 301*8d67ca89SAndroid Build Coastguard Worker }; 302*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_create_wq { 303*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 buf_addr; 304*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 db_addr; 305*8d67ca89SAndroid Build Coastguard Worker __u32 rq_wqe_count; 306*8d67ca89SAndroid Build Coastguard Worker __u32 rq_wqe_shift; 307*8d67ca89SAndroid Build Coastguard Worker __u32 user_index; 308*8d67ca89SAndroid Build Coastguard Worker __u32 flags; 309*8d67ca89SAndroid Build Coastguard Worker __u32 comp_mask; 310*8d67ca89SAndroid Build Coastguard Worker __u32 single_stride_log_num_of_bytes; 311*8d67ca89SAndroid Build Coastguard Worker __u32 single_wqe_log_num_of_strides; 312*8d67ca89SAndroid Build Coastguard Worker __u32 two_byte_shift_en; 313*8d67ca89SAndroid Build Coastguard Worker }; 314*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_create_ah_resp { 315*8d67ca89SAndroid Build Coastguard Worker __u32 response_length; 316*8d67ca89SAndroid Build Coastguard Worker __u8 dmac[ETH_ALEN]; 317*8d67ca89SAndroid Build Coastguard Worker __u8 reserved[6]; 318*8d67ca89SAndroid Build Coastguard Worker }; 319*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_burst_info { 320*8d67ca89SAndroid Build Coastguard Worker __u32 max_burst_sz; 321*8d67ca89SAndroid Build Coastguard Worker __u16 typical_pkt_sz; 322*8d67ca89SAndroid Build Coastguard Worker __u16 reserved; 323*8d67ca89SAndroid Build Coastguard Worker }; 324*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_modify_qp { 325*8d67ca89SAndroid Build Coastguard Worker __u32 comp_mask; 326*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_burst_info burst_info; 327*8d67ca89SAndroid Build Coastguard Worker __u32 ece_options; 328*8d67ca89SAndroid Build Coastguard Worker }; 329*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_modify_qp_resp { 330*8d67ca89SAndroid Build Coastguard Worker __u32 response_length; 331*8d67ca89SAndroid Build Coastguard Worker __u32 dctn; 332*8d67ca89SAndroid Build Coastguard Worker __u32 ece_options; 333*8d67ca89SAndroid Build Coastguard Worker __u32 reserved; 334*8d67ca89SAndroid Build Coastguard Worker }; 335*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_create_wq_resp { 336*8d67ca89SAndroid Build Coastguard Worker __u32 response_length; 337*8d67ca89SAndroid Build Coastguard Worker __u32 reserved; 338*8d67ca89SAndroid Build Coastguard Worker }; 339*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_create_rwq_ind_tbl_resp { 340*8d67ca89SAndroid Build Coastguard Worker __u32 response_length; 341*8d67ca89SAndroid Build Coastguard Worker __u32 reserved; 342*8d67ca89SAndroid Build Coastguard Worker }; 343*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_modify_wq { 344*8d67ca89SAndroid Build Coastguard Worker __u32 comp_mask; 345*8d67ca89SAndroid Build Coastguard Worker __u32 reserved; 346*8d67ca89SAndroid Build Coastguard Worker }; 347*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_clock_info { 348*8d67ca89SAndroid Build Coastguard Worker __u32 sign; 349*8d67ca89SAndroid Build Coastguard Worker __u32 resv; 350*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 nsec; 351*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 cycles; 352*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 frac; 353*8d67ca89SAndroid Build Coastguard Worker __u32 mult; 354*8d67ca89SAndroid Build Coastguard Worker __u32 shift; 355*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 mask; 356*8d67ca89SAndroid Build Coastguard Worker __aligned_u64 overflow_period; 357*8d67ca89SAndroid Build Coastguard Worker }; 358*8d67ca89SAndroid Build Coastguard Worker enum mlx5_ib_mmap_cmd { 359*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_MMAP_REGULAR_PAGE = 0, 360*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_MMAP_GET_CONTIGUOUS_PAGES = 1, 361*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_MMAP_WC_PAGE = 2, 362*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_MMAP_NC_PAGE = 3, 363*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_MMAP_CORE_CLOCK = 5, 364*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_MMAP_ALLOC_WC = 6, 365*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_MMAP_CLOCK_INFO = 7, 366*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_MMAP_DEVICE_MEM = 8, 367*8d67ca89SAndroid Build Coastguard Worker }; 368*8d67ca89SAndroid Build Coastguard Worker enum { 369*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_CLOCK_INFO_KERNEL_UPDATING = 1, 370*8d67ca89SAndroid Build Coastguard Worker }; 371*8d67ca89SAndroid Build Coastguard Worker enum { 372*8d67ca89SAndroid Build Coastguard Worker MLX5_IB_CLOCK_INFO_V1 = 0, 373*8d67ca89SAndroid Build Coastguard Worker }; 374*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_flow_counters_desc { 375*8d67ca89SAndroid Build Coastguard Worker __u32 description; 376*8d67ca89SAndroid Build Coastguard Worker __u32 index; 377*8d67ca89SAndroid Build Coastguard Worker }; 378*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_flow_counters_data { 379*8d67ca89SAndroid Build Coastguard Worker RDMA_UAPI_PTR(struct mlx5_ib_flow_counters_desc *, counters_data); 380*8d67ca89SAndroid Build Coastguard Worker __u32 ncounters; 381*8d67ca89SAndroid Build Coastguard Worker __u32 reserved; 382*8d67ca89SAndroid Build Coastguard Worker }; 383*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_create_flow { 384*8d67ca89SAndroid Build Coastguard Worker __u32 ncounters_data; 385*8d67ca89SAndroid Build Coastguard Worker __u32 reserved; 386*8d67ca89SAndroid Build Coastguard Worker struct mlx5_ib_flow_counters_data data[]; 387*8d67ca89SAndroid Build Coastguard Worker }; 388*8d67ca89SAndroid Build Coastguard Worker #endif 389