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