1 /* 2 * This header was generated from the Linux kernel headers by update_headers.py, 3 * to provide necessary information from kernel to userspace, such as constants, 4 * structures, and macros, and thus, contains no copyrightable information. 5 */ 6 #ifndef MLX5_USER_IOCTL_CMDS_H 7 #define MLX5_USER_IOCTL_CMDS_H 8 #include <linux/types.h> 9 #include <rdma/ib_user_ioctl_cmds.h> 10 enum mlx5_ib_create_flow_action_attrs { 11 12 MLX5_IB_ATTR_CREATE_FLOW_ACTION_FLAGS = (1U << UVERBS_ID_NS_SHIFT), 13 }; 14 enum mlx5_ib_alloc_dm_attrs { 15 MLX5_IB_ATTR_ALLOC_DM_RESP_START_OFFSET = (1U << UVERBS_ID_NS_SHIFT), 16 MLX5_IB_ATTR_ALLOC_DM_RESP_PAGE_INDEX, 17 }; 18 enum mlx5_ib_devx_methods { 19 MLX5_IB_METHOD_DEVX_OTHER = (1U << UVERBS_ID_NS_SHIFT), 20 MLX5_IB_METHOD_DEVX_QUERY_UAR, 21 MLX5_IB_METHOD_DEVX_QUERY_EQN, 22 }; 23 enum mlx5_ib_devx_other_attrs { 24 MLX5_IB_ATTR_DEVX_OTHER_CMD_IN = (1U << UVERBS_ID_NS_SHIFT), 25 MLX5_IB_ATTR_DEVX_OTHER_CMD_OUT, 26 }; 27 enum mlx5_ib_devx_obj_create_attrs { 28 MLX5_IB_ATTR_DEVX_OBJ_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 29 MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_IN, 30 MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_OUT, 31 }; 32 enum mlx5_ib_devx_query_uar_attrs { 33 MLX5_IB_ATTR_DEVX_QUERY_UAR_USER_IDX = (1U << UVERBS_ID_NS_SHIFT), 34 MLX5_IB_ATTR_DEVX_QUERY_UAR_DEV_IDX, 35 }; 36 enum mlx5_ib_devx_obj_destroy_attrs { 37 MLX5_IB_ATTR_DEVX_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 38 }; 39 enum mlx5_ib_devx_obj_modify_attrs { 40 MLX5_IB_ATTR_DEVX_OBJ_MODIFY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 41 MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_IN, 42 MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_OUT, 43 }; 44 enum mlx5_ib_devx_obj_query_attrs { 45 MLX5_IB_ATTR_DEVX_OBJ_QUERY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 46 MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_IN, 47 MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_OUT, 48 }; 49 enum mlx5_ib_devx_query_eqn_attrs { 50 MLX5_IB_ATTR_DEVX_QUERY_EQN_USER_VEC = (1U << UVERBS_ID_NS_SHIFT), 51 MLX5_IB_ATTR_DEVX_QUERY_EQN_DEV_EQN, 52 }; 53 enum mlx5_ib_devx_obj_methods { 54 MLX5_IB_METHOD_DEVX_OBJ_CREATE = (1U << UVERBS_ID_NS_SHIFT), 55 MLX5_IB_METHOD_DEVX_OBJ_DESTROY, 56 MLX5_IB_METHOD_DEVX_OBJ_MODIFY, 57 MLX5_IB_METHOD_DEVX_OBJ_QUERY, 58 }; 59 enum mlx5_ib_devx_umem_reg_attrs { 60 MLX5_IB_ATTR_DEVX_UMEM_REG_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 61 MLX5_IB_ATTR_DEVX_UMEM_REG_ADDR, 62 MLX5_IB_ATTR_DEVX_UMEM_REG_LEN, 63 MLX5_IB_ATTR_DEVX_UMEM_REG_ACCESS, 64 MLX5_IB_ATTR_DEVX_UMEM_REG_OUT_ID, 65 }; 66 enum mlx5_ib_devx_umem_dereg_attrs { 67 MLX5_IB_ATTR_DEVX_UMEM_DEREG_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 68 }; 69 enum mlx5_ib_devx_umem_methods { 70 MLX5_IB_METHOD_DEVX_UMEM_REG = (1U << UVERBS_ID_NS_SHIFT), 71 MLX5_IB_METHOD_DEVX_UMEM_DEREG, 72 }; 73 enum mlx5_ib_objects { 74 MLX5_IB_OBJECT_DEVX = (1U << UVERBS_ID_NS_SHIFT), 75 MLX5_IB_OBJECT_DEVX_OBJ, 76 MLX5_IB_OBJECT_DEVX_UMEM, 77 MLX5_IB_OBJECT_FLOW_MATCHER, 78 }; 79 enum mlx5_ib_flow_matcher_create_attrs { 80 MLX5_IB_ATTR_FLOW_MATCHER_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 81 MLX5_IB_ATTR_FLOW_MATCHER_MATCH_MASK, 82 MLX5_IB_ATTR_FLOW_MATCHER_FLOW_TYPE, 83 MLX5_IB_ATTR_FLOW_MATCHER_MATCH_CRITERIA, 84 }; 85 enum mlx5_ib_flow_matcher_destroy_attrs { 86 MLX5_IB_ATTR_FLOW_MATCHER_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 87 }; 88 enum mlx5_ib_flow_matcher_methods { 89 MLX5_IB_METHOD_FLOW_MATCHER_CREATE = (1U << UVERBS_ID_NS_SHIFT), 90 MLX5_IB_METHOD_FLOW_MATCHER_DESTROY, 91 }; 92 #define MLX5_IB_DW_MATCH_PARAM 0x80 93 struct mlx5_ib_match_params { 94 __u32 match_params[MLX5_IB_DW_MATCH_PARAM]; 95 }; 96 enum mlx5_ib_flow_type { 97 MLX5_IB_FLOW_TYPE_NORMAL, 98 MLX5_IB_FLOW_TYPE_SNIFFER, 99 MLX5_IB_FLOW_TYPE_ALL_DEFAULT, 100 MLX5_IB_FLOW_TYPE_MC_DEFAULT, 101 }; 102 enum mlx5_ib_create_flow_attrs { 103 MLX5_IB_ATTR_CREATE_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 104 MLX5_IB_ATTR_CREATE_FLOW_MATCH_VALUE, 105 MLX5_IB_ATTR_CREATE_FLOW_DEST_QP, 106 MLX5_IB_ATTR_CREATE_FLOW_DEST_DEVX, 107 MLX5_IB_ATTR_CREATE_FLOW_MATCHER, 108 }; 109 enum mlx5_ib_destoy_flow_attrs { 110 MLX5_IB_ATTR_DESTROY_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 111 }; 112 enum mlx5_ib_flow_methods { 113 MLX5_IB_METHOD_CREATE_FLOW = (1U << UVERBS_ID_NS_SHIFT), 114 MLX5_IB_METHOD_DESTROY_FLOW, 115 }; 116 #endif 117