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 }; 30 enum mlx5_ib_devx_methods { 31 MLX5_IB_METHOD_DEVX_OTHER = (1U << UVERBS_ID_NS_SHIFT), 32 MLX5_IB_METHOD_DEVX_QUERY_UAR, 33 MLX5_IB_METHOD_DEVX_QUERY_EQN, 34 }; 35 enum mlx5_ib_devx_other_attrs { 36 MLX5_IB_ATTR_DEVX_OTHER_CMD_IN = (1U << UVERBS_ID_NS_SHIFT), 37 MLX5_IB_ATTR_DEVX_OTHER_CMD_OUT, 38 }; 39 enum mlx5_ib_devx_obj_create_attrs { 40 MLX5_IB_ATTR_DEVX_OBJ_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 41 MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_IN, 42 MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_OUT, 43 }; 44 enum mlx5_ib_devx_query_uar_attrs { 45 MLX5_IB_ATTR_DEVX_QUERY_UAR_USER_IDX = (1U << UVERBS_ID_NS_SHIFT), 46 MLX5_IB_ATTR_DEVX_QUERY_UAR_DEV_IDX, 47 }; 48 enum mlx5_ib_devx_obj_destroy_attrs { 49 MLX5_IB_ATTR_DEVX_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 50 }; 51 enum mlx5_ib_devx_obj_modify_attrs { 52 MLX5_IB_ATTR_DEVX_OBJ_MODIFY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 53 MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_IN, 54 MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_OUT, 55 }; 56 enum mlx5_ib_devx_obj_query_attrs { 57 MLX5_IB_ATTR_DEVX_OBJ_QUERY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 58 MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_IN, 59 MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_OUT, 60 }; 61 enum mlx5_ib_devx_query_eqn_attrs { 62 MLX5_IB_ATTR_DEVX_QUERY_EQN_USER_VEC = (1U << UVERBS_ID_NS_SHIFT), 63 MLX5_IB_ATTR_DEVX_QUERY_EQN_DEV_EQN, 64 }; 65 enum mlx5_ib_devx_obj_methods { 66 MLX5_IB_METHOD_DEVX_OBJ_CREATE = (1U << UVERBS_ID_NS_SHIFT), 67 MLX5_IB_METHOD_DEVX_OBJ_DESTROY, 68 MLX5_IB_METHOD_DEVX_OBJ_MODIFY, 69 MLX5_IB_METHOD_DEVX_OBJ_QUERY, 70 }; 71 enum mlx5_ib_devx_umem_reg_attrs { 72 MLX5_IB_ATTR_DEVX_UMEM_REG_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 73 MLX5_IB_ATTR_DEVX_UMEM_REG_ADDR, 74 MLX5_IB_ATTR_DEVX_UMEM_REG_LEN, 75 MLX5_IB_ATTR_DEVX_UMEM_REG_ACCESS, 76 MLX5_IB_ATTR_DEVX_UMEM_REG_OUT_ID, 77 }; 78 enum mlx5_ib_devx_umem_dereg_attrs { 79 MLX5_IB_ATTR_DEVX_UMEM_DEREG_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 80 }; 81 enum mlx5_ib_devx_umem_methods { 82 MLX5_IB_METHOD_DEVX_UMEM_REG = (1U << UVERBS_ID_NS_SHIFT), 83 MLX5_IB_METHOD_DEVX_UMEM_DEREG, 84 }; 85 enum mlx5_ib_objects { 86 MLX5_IB_OBJECT_DEVX = (1U << UVERBS_ID_NS_SHIFT), 87 MLX5_IB_OBJECT_DEVX_OBJ, 88 MLX5_IB_OBJECT_DEVX_UMEM, 89 MLX5_IB_OBJECT_FLOW_MATCHER, 90 }; 91 enum mlx5_ib_flow_matcher_create_attrs { 92 MLX5_IB_ATTR_FLOW_MATCHER_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 93 MLX5_IB_ATTR_FLOW_MATCHER_MATCH_MASK, 94 MLX5_IB_ATTR_FLOW_MATCHER_FLOW_TYPE, 95 MLX5_IB_ATTR_FLOW_MATCHER_MATCH_CRITERIA, 96 MLX5_IB_ATTR_FLOW_MATCHER_FLOW_FLAGS, 97 }; 98 enum mlx5_ib_flow_matcher_destroy_attrs { 99 MLX5_IB_ATTR_FLOW_MATCHER_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 100 }; 101 enum mlx5_ib_flow_matcher_methods { 102 MLX5_IB_METHOD_FLOW_MATCHER_CREATE = (1U << UVERBS_ID_NS_SHIFT), 103 MLX5_IB_METHOD_FLOW_MATCHER_DESTROY, 104 }; 105 #define MLX5_IB_DW_MATCH_PARAM 0x80 106 struct mlx5_ib_match_params { 107 __u32 match_params[MLX5_IB_DW_MATCH_PARAM]; 108 }; 109 enum mlx5_ib_flow_type { 110 MLX5_IB_FLOW_TYPE_NORMAL, 111 MLX5_IB_FLOW_TYPE_SNIFFER, 112 MLX5_IB_FLOW_TYPE_ALL_DEFAULT, 113 MLX5_IB_FLOW_TYPE_MC_DEFAULT, 114 }; 115 enum mlx5_ib_create_flow_attrs { 116 MLX5_IB_ATTR_CREATE_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 117 MLX5_IB_ATTR_CREATE_FLOW_MATCH_VALUE, 118 MLX5_IB_ATTR_CREATE_FLOW_DEST_QP, 119 MLX5_IB_ATTR_CREATE_FLOW_DEST_DEVX, 120 MLX5_IB_ATTR_CREATE_FLOW_MATCHER, 121 MLX5_IB_ATTR_CREATE_FLOW_ARR_FLOW_ACTIONS, 122 MLX5_IB_ATTR_CREATE_FLOW_TAG, 123 MLX5_IB_ATTR_CREATE_FLOW_ARR_COUNTERS_DEVX, 124 }; 125 enum mlx5_ib_destoy_flow_attrs { 126 MLX5_IB_ATTR_DESTROY_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 127 }; 128 enum mlx5_ib_flow_methods { 129 MLX5_IB_METHOD_CREATE_FLOW = (1U << UVERBS_ID_NS_SHIFT), 130 MLX5_IB_METHOD_DESTROY_FLOW, 131 }; 132 enum mlx5_ib_flow_action_methods { 133 MLX5_IB_METHOD_FLOW_ACTION_CREATE_MODIFY_HEADER = (1U << UVERBS_ID_NS_SHIFT), 134 MLX5_IB_METHOD_FLOW_ACTION_CREATE_PACKET_REFORMAT, 135 }; 136 enum mlx5_ib_create_flow_action_create_modify_header_attrs { 137 MLX5_IB_ATTR_CREATE_MODIFY_HEADER_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 138 MLX5_IB_ATTR_CREATE_MODIFY_HEADER_ACTIONS_PRM, 139 MLX5_IB_ATTR_CREATE_MODIFY_HEADER_FT_TYPE, 140 }; 141 enum mlx5_ib_create_flow_action_create_packet_reformat_attrs { 142 MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_HANDLE = (1U << UVERBS_ID_NS_SHIFT), 143 MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_TYPE, 144 MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_FT_TYPE, 145 MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_DATA_BUF, 146 }; 147 #endif 148