1 /**************************************************************************** 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_USER_IOCTL_CMDS_H 20 #define MLX5_USER_IOCTL_CMDS_H 21 #include <linux/types.h> 22 #include <rdma/ib_user_ioctl_cmds.h> 23 enum mlx5_ib_create_flow_action_attrs { 24 MLX5_IB_ATTR_CREATE_FLOW_ACTION_FLAGS = (1U << UVERBS_ID_NS_SHIFT), 25 }; 26 enum mlx5_ib_alloc_dm_attrs { 27 MLX5_IB_ATTR_ALLOC_DM_RESP_START_OFFSET = (1U << UVERBS_ID_NS_SHIFT), 28 MLX5_IB_ATTR_ALLOC_DM_RESP_PAGE_INDEX, 29 MLX5_IB_ATTR_ALLOC_DM_REQ_TYPE, 30 }; 31 enum mlx5_ib_devx_methods { 32 MLX5_IB_METHOD_DEVX_OTHER = (1U << UVERBS_ID_NS_SHIFT), 33 MLX5_IB_METHOD_DEVX_QUERY_UAR, 34 MLX5_IB_METHOD_DEVX_QUERY_EQN, 35 MLX5_IB_METHOD_DEVX_SUBSCRIBE_EVENT, 36 }; 37 enum mlx5_ib_devx_other_attrs { 38 MLX5_IB_ATTR_DEVX_OTHER_CMD_IN = (1U << UVERBS_ID_NS_SHIFT), 39 MLX5_IB_ATTR_DEVX_OTHER_CMD_OUT, 40 }; 41 enum mlx5_ib_devx_obj_create_attrs { 42 MLX5_IB_ATTR_DEVX_OBJ_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 43 MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_IN, 44 MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_OUT, 45 }; 46 enum mlx5_ib_devx_query_uar_attrs { 47 MLX5_IB_ATTR_DEVX_QUERY_UAR_USER_IDX = (1U << UVERBS_ID_NS_SHIFT), 48 MLX5_IB_ATTR_DEVX_QUERY_UAR_DEV_IDX, 49 }; 50 enum mlx5_ib_devx_obj_destroy_attrs { 51 MLX5_IB_ATTR_DEVX_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 52 }; 53 enum mlx5_ib_devx_obj_modify_attrs { 54 MLX5_IB_ATTR_DEVX_OBJ_MODIFY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 55 MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_IN, 56 MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_OUT, 57 }; 58 enum mlx5_ib_devx_obj_query_attrs { 59 MLX5_IB_ATTR_DEVX_OBJ_QUERY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 60 MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_IN, 61 MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_OUT, 62 }; 63 enum mlx5_ib_devx_obj_query_async_attrs { 64 MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 65 MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_CMD_IN, 66 MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_FD, 67 MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_WR_ID, 68 MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_OUT_LEN, 69 }; 70 enum mlx5_ib_devx_subscribe_event_attrs { 71 MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_FD_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 72 MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_OBJ_HANDLE, 73 MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_TYPE_NUM_LIST, 74 MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_FD_NUM, 75 MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_COOKIE, 76 }; 77 enum mlx5_ib_devx_query_eqn_attrs { 78 MLX5_IB_ATTR_DEVX_QUERY_EQN_USER_VEC = (1U << UVERBS_ID_NS_SHIFT), 79 MLX5_IB_ATTR_DEVX_QUERY_EQN_DEV_EQN, 80 }; 81 enum mlx5_ib_devx_obj_methods { 82 MLX5_IB_METHOD_DEVX_OBJ_CREATE = (1U << UVERBS_ID_NS_SHIFT), 83 MLX5_IB_METHOD_DEVX_OBJ_DESTROY, 84 MLX5_IB_METHOD_DEVX_OBJ_MODIFY, 85 MLX5_IB_METHOD_DEVX_OBJ_QUERY, 86 MLX5_IB_METHOD_DEVX_OBJ_ASYNC_QUERY, 87 }; 88 enum mlx5_ib_devx_umem_reg_attrs { 89 MLX5_IB_ATTR_DEVX_UMEM_REG_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 90 MLX5_IB_ATTR_DEVX_UMEM_REG_ADDR, 91 MLX5_IB_ATTR_DEVX_UMEM_REG_LEN, 92 MLX5_IB_ATTR_DEVX_UMEM_REG_ACCESS, 93 MLX5_IB_ATTR_DEVX_UMEM_REG_OUT_ID, 94 }; 95 enum mlx5_ib_devx_umem_dereg_attrs { 96 MLX5_IB_ATTR_DEVX_UMEM_DEREG_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 97 }; 98 enum mlx5_ib_devx_umem_methods { 99 MLX5_IB_METHOD_DEVX_UMEM_REG = (1U << UVERBS_ID_NS_SHIFT), 100 MLX5_IB_METHOD_DEVX_UMEM_DEREG, 101 }; 102 enum mlx5_ib_devx_async_cmd_fd_alloc_attrs { 103 MLX5_IB_ATTR_DEVX_ASYNC_CMD_FD_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 104 }; 105 enum mlx5_ib_devx_async_event_fd_alloc_attrs { 106 MLX5_IB_ATTR_DEVX_ASYNC_EVENT_FD_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 107 MLX5_IB_ATTR_DEVX_ASYNC_EVENT_FD_ALLOC_FLAGS, 108 }; 109 enum mlx5_ib_devx_async_cmd_fd_methods { 110 MLX5_IB_METHOD_DEVX_ASYNC_CMD_FD_ALLOC = (1U << UVERBS_ID_NS_SHIFT), 111 }; 112 enum mlx5_ib_devx_async_event_fd_methods { 113 MLX5_IB_METHOD_DEVX_ASYNC_EVENT_FD_ALLOC = (1U << UVERBS_ID_NS_SHIFT), 114 }; 115 enum mlx5_ib_objects { 116 MLX5_IB_OBJECT_DEVX = (1U << UVERBS_ID_NS_SHIFT), 117 MLX5_IB_OBJECT_DEVX_OBJ, 118 MLX5_IB_OBJECT_DEVX_UMEM, 119 MLX5_IB_OBJECT_FLOW_MATCHER, 120 MLX5_IB_OBJECT_DEVX_ASYNC_CMD_FD, 121 MLX5_IB_OBJECT_DEVX_ASYNC_EVENT_FD, 122 }; 123 enum mlx5_ib_flow_matcher_create_attrs { 124 MLX5_IB_ATTR_FLOW_MATCHER_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 125 MLX5_IB_ATTR_FLOW_MATCHER_MATCH_MASK, 126 MLX5_IB_ATTR_FLOW_MATCHER_FLOW_TYPE, 127 MLX5_IB_ATTR_FLOW_MATCHER_MATCH_CRITERIA, 128 MLX5_IB_ATTR_FLOW_MATCHER_FLOW_FLAGS, 129 MLX5_IB_ATTR_FLOW_MATCHER_FT_TYPE, 130 }; 131 enum mlx5_ib_flow_matcher_destroy_attrs { 132 MLX5_IB_ATTR_FLOW_MATCHER_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 133 }; 134 enum mlx5_ib_flow_matcher_methods { 135 MLX5_IB_METHOD_FLOW_MATCHER_CREATE = (1U << UVERBS_ID_NS_SHIFT), 136 MLX5_IB_METHOD_FLOW_MATCHER_DESTROY, 137 }; 138 #define MLX5_IB_DW_MATCH_PARAM 0x80 139 struct mlx5_ib_match_params { 140 __u32 match_params[MLX5_IB_DW_MATCH_PARAM]; 141 }; 142 enum mlx5_ib_flow_type { 143 MLX5_IB_FLOW_TYPE_NORMAL, 144 MLX5_IB_FLOW_TYPE_SNIFFER, 145 MLX5_IB_FLOW_TYPE_ALL_DEFAULT, 146 MLX5_IB_FLOW_TYPE_MC_DEFAULT, 147 }; 148 enum mlx5_ib_create_flow_attrs { 149 MLX5_IB_ATTR_CREATE_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 150 MLX5_IB_ATTR_CREATE_FLOW_MATCH_VALUE, 151 MLX5_IB_ATTR_CREATE_FLOW_DEST_QP, 152 MLX5_IB_ATTR_CREATE_FLOW_DEST_DEVX, 153 MLX5_IB_ATTR_CREATE_FLOW_MATCHER, 154 MLX5_IB_ATTR_CREATE_FLOW_ARR_FLOW_ACTIONS, 155 MLX5_IB_ATTR_CREATE_FLOW_TAG, 156 MLX5_IB_ATTR_CREATE_FLOW_ARR_COUNTERS_DEVX, 157 MLX5_IB_ATTR_CREATE_FLOW_ARR_COUNTERS_DEVX_OFFSET, 158 }; 159 enum mlx5_ib_destoy_flow_attrs { 160 MLX5_IB_ATTR_DESTROY_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 161 }; 162 enum mlx5_ib_flow_methods { 163 MLX5_IB_METHOD_CREATE_FLOW = (1U << UVERBS_ID_NS_SHIFT), 164 MLX5_IB_METHOD_DESTROY_FLOW, 165 }; 166 enum mlx5_ib_flow_action_methods { 167 MLX5_IB_METHOD_FLOW_ACTION_CREATE_MODIFY_HEADER = (1U << UVERBS_ID_NS_SHIFT), 168 MLX5_IB_METHOD_FLOW_ACTION_CREATE_PACKET_REFORMAT, 169 }; 170 enum mlx5_ib_create_flow_action_create_modify_header_attrs { 171 MLX5_IB_ATTR_CREATE_MODIFY_HEADER_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 172 MLX5_IB_ATTR_CREATE_MODIFY_HEADER_ACTIONS_PRM, 173 MLX5_IB_ATTR_CREATE_MODIFY_HEADER_FT_TYPE, 174 }; 175 enum mlx5_ib_create_flow_action_create_packet_reformat_attrs { 176 MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 177 MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_TYPE, 178 MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_FT_TYPE, 179 MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_DATA_BUF, 180 }; 181 #endif 182