0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033 #ifndef MLX5_USER_IOCTL_CMDS_H
0034 #define MLX5_USER_IOCTL_CMDS_H
0035
0036 #include <linux/types.h>
0037 #include <rdma/ib_user_ioctl_cmds.h>
0038
0039 enum mlx5_ib_create_flow_action_attrs {
0040
0041 MLX5_IB_ATTR_CREATE_FLOW_ACTION_FLAGS = (1U << UVERBS_ID_NS_SHIFT),
0042 };
0043
0044 enum mlx5_ib_dm_methods {
0045 MLX5_IB_METHOD_DM_MAP_OP_ADDR = (1U << UVERBS_ID_NS_SHIFT),
0046 MLX5_IB_METHOD_DM_QUERY,
0047 };
0048
0049 enum mlx5_ib_dm_map_op_addr_attrs {
0050 MLX5_IB_ATTR_DM_MAP_OP_ADDR_REQ_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0051 MLX5_IB_ATTR_DM_MAP_OP_ADDR_REQ_OP,
0052 MLX5_IB_ATTR_DM_MAP_OP_ADDR_RESP_START_OFFSET,
0053 MLX5_IB_ATTR_DM_MAP_OP_ADDR_RESP_PAGE_INDEX,
0054 };
0055
0056 enum mlx5_ib_query_dm_attrs {
0057 MLX5_IB_ATTR_QUERY_DM_REQ_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0058 MLX5_IB_ATTR_QUERY_DM_RESP_START_OFFSET,
0059 MLX5_IB_ATTR_QUERY_DM_RESP_PAGE_INDEX,
0060 MLX5_IB_ATTR_QUERY_DM_RESP_LENGTH,
0061 };
0062
0063 enum mlx5_ib_alloc_dm_attrs {
0064 MLX5_IB_ATTR_ALLOC_DM_RESP_START_OFFSET = (1U << UVERBS_ID_NS_SHIFT),
0065 MLX5_IB_ATTR_ALLOC_DM_RESP_PAGE_INDEX,
0066 MLX5_IB_ATTR_ALLOC_DM_REQ_TYPE,
0067 };
0068
0069 enum mlx5_ib_devx_methods {
0070 MLX5_IB_METHOD_DEVX_OTHER = (1U << UVERBS_ID_NS_SHIFT),
0071 MLX5_IB_METHOD_DEVX_QUERY_UAR,
0072 MLX5_IB_METHOD_DEVX_QUERY_EQN,
0073 MLX5_IB_METHOD_DEVX_SUBSCRIBE_EVENT,
0074 };
0075
0076 enum mlx5_ib_devx_other_attrs {
0077 MLX5_IB_ATTR_DEVX_OTHER_CMD_IN = (1U << UVERBS_ID_NS_SHIFT),
0078 MLX5_IB_ATTR_DEVX_OTHER_CMD_OUT,
0079 };
0080
0081 enum mlx5_ib_devx_obj_create_attrs {
0082 MLX5_IB_ATTR_DEVX_OBJ_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0083 MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_IN,
0084 MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_OUT,
0085 };
0086
0087 enum mlx5_ib_devx_query_uar_attrs {
0088 MLX5_IB_ATTR_DEVX_QUERY_UAR_USER_IDX = (1U << UVERBS_ID_NS_SHIFT),
0089 MLX5_IB_ATTR_DEVX_QUERY_UAR_DEV_IDX,
0090 };
0091
0092 enum mlx5_ib_devx_obj_destroy_attrs {
0093 MLX5_IB_ATTR_DEVX_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0094 };
0095
0096 enum mlx5_ib_devx_obj_modify_attrs {
0097 MLX5_IB_ATTR_DEVX_OBJ_MODIFY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0098 MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_IN,
0099 MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_OUT,
0100 };
0101
0102 enum mlx5_ib_devx_obj_query_attrs {
0103 MLX5_IB_ATTR_DEVX_OBJ_QUERY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0104 MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_IN,
0105 MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_OUT,
0106 };
0107
0108 enum mlx5_ib_devx_obj_query_async_attrs {
0109 MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0110 MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_CMD_IN,
0111 MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_FD,
0112 MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_WR_ID,
0113 MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_OUT_LEN,
0114 };
0115
0116 enum mlx5_ib_devx_subscribe_event_attrs {
0117 MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_FD_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0118 MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_OBJ_HANDLE,
0119 MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_TYPE_NUM_LIST,
0120 MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_FD_NUM,
0121 MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_COOKIE,
0122 };
0123
0124 enum mlx5_ib_devx_query_eqn_attrs {
0125 MLX5_IB_ATTR_DEVX_QUERY_EQN_USER_VEC = (1U << UVERBS_ID_NS_SHIFT),
0126 MLX5_IB_ATTR_DEVX_QUERY_EQN_DEV_EQN,
0127 };
0128
0129 enum mlx5_ib_devx_obj_methods {
0130 MLX5_IB_METHOD_DEVX_OBJ_CREATE = (1U << UVERBS_ID_NS_SHIFT),
0131 MLX5_IB_METHOD_DEVX_OBJ_DESTROY,
0132 MLX5_IB_METHOD_DEVX_OBJ_MODIFY,
0133 MLX5_IB_METHOD_DEVX_OBJ_QUERY,
0134 MLX5_IB_METHOD_DEVX_OBJ_ASYNC_QUERY,
0135 };
0136
0137 enum mlx5_ib_var_alloc_attrs {
0138 MLX5_IB_ATTR_VAR_OBJ_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0139 MLX5_IB_ATTR_VAR_OBJ_ALLOC_MMAP_OFFSET,
0140 MLX5_IB_ATTR_VAR_OBJ_ALLOC_MMAP_LENGTH,
0141 MLX5_IB_ATTR_VAR_OBJ_ALLOC_PAGE_ID,
0142 };
0143
0144 enum mlx5_ib_var_obj_destroy_attrs {
0145 MLX5_IB_ATTR_VAR_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0146 };
0147
0148 enum mlx5_ib_var_obj_methods {
0149 MLX5_IB_METHOD_VAR_OBJ_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
0150 MLX5_IB_METHOD_VAR_OBJ_DESTROY,
0151 };
0152
0153 enum mlx5_ib_uar_alloc_attrs {
0154 MLX5_IB_ATTR_UAR_OBJ_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0155 MLX5_IB_ATTR_UAR_OBJ_ALLOC_TYPE,
0156 MLX5_IB_ATTR_UAR_OBJ_ALLOC_MMAP_OFFSET,
0157 MLX5_IB_ATTR_UAR_OBJ_ALLOC_MMAP_LENGTH,
0158 MLX5_IB_ATTR_UAR_OBJ_ALLOC_PAGE_ID,
0159 };
0160
0161 enum mlx5_ib_uar_obj_destroy_attrs {
0162 MLX5_IB_ATTR_UAR_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0163 };
0164
0165 enum mlx5_ib_uar_obj_methods {
0166 MLX5_IB_METHOD_UAR_OBJ_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
0167 MLX5_IB_METHOD_UAR_OBJ_DESTROY,
0168 };
0169
0170 enum mlx5_ib_devx_umem_reg_attrs {
0171 MLX5_IB_ATTR_DEVX_UMEM_REG_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0172 MLX5_IB_ATTR_DEVX_UMEM_REG_ADDR,
0173 MLX5_IB_ATTR_DEVX_UMEM_REG_LEN,
0174 MLX5_IB_ATTR_DEVX_UMEM_REG_ACCESS,
0175 MLX5_IB_ATTR_DEVX_UMEM_REG_OUT_ID,
0176 MLX5_IB_ATTR_DEVX_UMEM_REG_PGSZ_BITMAP,
0177 };
0178
0179 enum mlx5_ib_devx_umem_dereg_attrs {
0180 MLX5_IB_ATTR_DEVX_UMEM_DEREG_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0181 };
0182
0183 enum mlx5_ib_pp_obj_methods {
0184 MLX5_IB_METHOD_PP_OBJ_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
0185 MLX5_IB_METHOD_PP_OBJ_DESTROY,
0186 };
0187
0188 enum mlx5_ib_pp_alloc_attrs {
0189 MLX5_IB_ATTR_PP_OBJ_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0190 MLX5_IB_ATTR_PP_OBJ_ALLOC_CTX,
0191 MLX5_IB_ATTR_PP_OBJ_ALLOC_FLAGS,
0192 MLX5_IB_ATTR_PP_OBJ_ALLOC_INDEX,
0193 };
0194
0195 enum mlx5_ib_pp_obj_destroy_attrs {
0196 MLX5_IB_ATTR_PP_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0197 };
0198
0199 enum mlx5_ib_devx_umem_methods {
0200 MLX5_IB_METHOD_DEVX_UMEM_REG = (1U << UVERBS_ID_NS_SHIFT),
0201 MLX5_IB_METHOD_DEVX_UMEM_DEREG,
0202 };
0203
0204 enum mlx5_ib_devx_async_cmd_fd_alloc_attrs {
0205 MLX5_IB_ATTR_DEVX_ASYNC_CMD_FD_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0206 };
0207
0208 enum mlx5_ib_devx_async_event_fd_alloc_attrs {
0209 MLX5_IB_ATTR_DEVX_ASYNC_EVENT_FD_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0210 MLX5_IB_ATTR_DEVX_ASYNC_EVENT_FD_ALLOC_FLAGS,
0211 };
0212
0213 enum mlx5_ib_devx_async_cmd_fd_methods {
0214 MLX5_IB_METHOD_DEVX_ASYNC_CMD_FD_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
0215 };
0216
0217 enum mlx5_ib_devx_async_event_fd_methods {
0218 MLX5_IB_METHOD_DEVX_ASYNC_EVENT_FD_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
0219 };
0220
0221 enum mlx5_ib_objects {
0222 MLX5_IB_OBJECT_DEVX = (1U << UVERBS_ID_NS_SHIFT),
0223 MLX5_IB_OBJECT_DEVX_OBJ,
0224 MLX5_IB_OBJECT_DEVX_UMEM,
0225 MLX5_IB_OBJECT_FLOW_MATCHER,
0226 MLX5_IB_OBJECT_DEVX_ASYNC_CMD_FD,
0227 MLX5_IB_OBJECT_DEVX_ASYNC_EVENT_FD,
0228 MLX5_IB_OBJECT_VAR,
0229 MLX5_IB_OBJECT_PP,
0230 MLX5_IB_OBJECT_UAR,
0231 MLX5_IB_OBJECT_STEERING_ANCHOR,
0232 };
0233
0234 enum mlx5_ib_flow_matcher_create_attrs {
0235 MLX5_IB_ATTR_FLOW_MATCHER_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0236 MLX5_IB_ATTR_FLOW_MATCHER_MATCH_MASK,
0237 MLX5_IB_ATTR_FLOW_MATCHER_FLOW_TYPE,
0238 MLX5_IB_ATTR_FLOW_MATCHER_MATCH_CRITERIA,
0239 MLX5_IB_ATTR_FLOW_MATCHER_FLOW_FLAGS,
0240 MLX5_IB_ATTR_FLOW_MATCHER_FT_TYPE,
0241 };
0242
0243 enum mlx5_ib_flow_matcher_destroy_attrs {
0244 MLX5_IB_ATTR_FLOW_MATCHER_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0245 };
0246
0247 enum mlx5_ib_flow_matcher_methods {
0248 MLX5_IB_METHOD_FLOW_MATCHER_CREATE = (1U << UVERBS_ID_NS_SHIFT),
0249 MLX5_IB_METHOD_FLOW_MATCHER_DESTROY,
0250 };
0251
0252 enum mlx5_ib_flow_steering_anchor_create_attrs {
0253 MLX5_IB_ATTR_STEERING_ANCHOR_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0254 MLX5_IB_ATTR_STEERING_ANCHOR_FT_TYPE,
0255 MLX5_IB_ATTR_STEERING_ANCHOR_PRIORITY,
0256 MLX5_IB_ATTR_STEERING_ANCHOR_FT_ID,
0257 };
0258
0259 enum mlx5_ib_flow_steering_anchor_destroy_attrs {
0260 MLX5_IB_ATTR_STEERING_ANCHOR_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0261 };
0262
0263 enum mlx5_ib_steering_anchor_methods {
0264 MLX5_IB_METHOD_STEERING_ANCHOR_CREATE = (1U << UVERBS_ID_NS_SHIFT),
0265 MLX5_IB_METHOD_STEERING_ANCHOR_DESTROY,
0266 };
0267
0268 enum mlx5_ib_device_query_context_attrs {
0269 MLX5_IB_ATTR_QUERY_CONTEXT_RESP_UCTX = (1U << UVERBS_ID_NS_SHIFT),
0270 };
0271
0272 #define MLX5_IB_DW_MATCH_PARAM 0xA0
0273
0274 struct mlx5_ib_match_params {
0275 __u32 match_params[MLX5_IB_DW_MATCH_PARAM];
0276 };
0277
0278 enum mlx5_ib_flow_type {
0279 MLX5_IB_FLOW_TYPE_NORMAL,
0280 MLX5_IB_FLOW_TYPE_SNIFFER,
0281 MLX5_IB_FLOW_TYPE_ALL_DEFAULT,
0282 MLX5_IB_FLOW_TYPE_MC_DEFAULT,
0283 };
0284
0285 enum mlx5_ib_create_flow_flags {
0286 MLX5_IB_ATTR_CREATE_FLOW_FLAGS_DEFAULT_MISS = 1 << 0,
0287 MLX5_IB_ATTR_CREATE_FLOW_FLAGS_DROP = 1 << 1,
0288 };
0289
0290 enum mlx5_ib_create_flow_attrs {
0291 MLX5_IB_ATTR_CREATE_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0292 MLX5_IB_ATTR_CREATE_FLOW_MATCH_VALUE,
0293 MLX5_IB_ATTR_CREATE_FLOW_DEST_QP,
0294 MLX5_IB_ATTR_CREATE_FLOW_DEST_DEVX,
0295 MLX5_IB_ATTR_CREATE_FLOW_MATCHER,
0296 MLX5_IB_ATTR_CREATE_FLOW_ARR_FLOW_ACTIONS,
0297 MLX5_IB_ATTR_CREATE_FLOW_TAG,
0298 MLX5_IB_ATTR_CREATE_FLOW_ARR_COUNTERS_DEVX,
0299 MLX5_IB_ATTR_CREATE_FLOW_ARR_COUNTERS_DEVX_OFFSET,
0300 MLX5_IB_ATTR_CREATE_FLOW_FLAGS,
0301 };
0302
0303 enum mlx5_ib_destroy_flow_attrs {
0304 MLX5_IB_ATTR_DESTROY_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0305 };
0306
0307 enum mlx5_ib_flow_methods {
0308 MLX5_IB_METHOD_CREATE_FLOW = (1U << UVERBS_ID_NS_SHIFT),
0309 MLX5_IB_METHOD_DESTROY_FLOW,
0310 };
0311
0312 enum mlx5_ib_flow_action_methods {
0313 MLX5_IB_METHOD_FLOW_ACTION_CREATE_MODIFY_HEADER = (1U << UVERBS_ID_NS_SHIFT),
0314 MLX5_IB_METHOD_FLOW_ACTION_CREATE_PACKET_REFORMAT,
0315 };
0316
0317 enum mlx5_ib_create_flow_action_create_modify_header_attrs {
0318 MLX5_IB_ATTR_CREATE_MODIFY_HEADER_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0319 MLX5_IB_ATTR_CREATE_MODIFY_HEADER_ACTIONS_PRM,
0320 MLX5_IB_ATTR_CREATE_MODIFY_HEADER_FT_TYPE,
0321 };
0322
0323 enum mlx5_ib_create_flow_action_create_packet_reformat_attrs {
0324 MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0325 MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_TYPE,
0326 MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_FT_TYPE,
0327 MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_DATA_BUF,
0328 };
0329
0330 enum mlx5_ib_query_pd_attrs {
0331 MLX5_IB_ATTR_QUERY_PD_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
0332 MLX5_IB_ATTR_QUERY_PD_RESP_PDN,
0333 };
0334
0335 enum mlx5_ib_pd_methods {
0336 MLX5_IB_METHOD_PD_QUERY = (1U << UVERBS_ID_NS_SHIFT),
0337
0338 };
0339
0340 enum mlx5_ib_device_methods {
0341 MLX5_IB_METHOD_QUERY_PORT = (1U << UVERBS_ID_NS_SHIFT),
0342 };
0343
0344 enum mlx5_ib_query_port_attrs {
0345 MLX5_IB_ATTR_QUERY_PORT_PORT_NUM = (1U << UVERBS_ID_NS_SHIFT),
0346 MLX5_IB_ATTR_QUERY_PORT,
0347 };
0348
0349 #endif