root/include/uapi/rdma/ib_user_ioctl_cmds.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2  * Copyright (c) 2018, Mellanox Technologies inc.  All rights reserved.
   3  *
   4  * This software is available to you under a choice of one of two
   5  * licenses.  You may choose to be licensed under the terms of the GNU
   6  * General Public License (GPL) Version 2, available from the file
   7  * COPYING in the main directory of this source tree, or the
   8  * OpenIB.org BSD license below:
   9  *
  10  *     Redistribution and use in source and binary forms, with or
  11  *     without modification, are permitted provided that the following
  12  *     conditions are met:
  13  *
  14  *      - Redistributions of source code must retain the above
  15  *        copyright notice, this list of conditions and the following
  16  *        disclaimer.
  17  *
  18  *      - Redistributions in binary form must reproduce the above
  19  *        copyright notice, this list of conditions and the following
  20  *        disclaimer in the documentation and/or other materials
  21  *        provided with the distribution.
  22  *
  23  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  24  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  25  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  26  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
  27  * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
  28  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  29  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  30  * SOFTWARE.
  31  */
  32 
  33 #ifndef IB_USER_IOCTL_CMDS_H
  34 #define IB_USER_IOCTL_CMDS_H
  35 
  36 #define UVERBS_ID_NS_MASK 0xF000
  37 #define UVERBS_ID_NS_SHIFT 12
  38 
  39 #define UVERBS_UDATA_DRIVER_DATA_NS     1
  40 #define UVERBS_UDATA_DRIVER_DATA_FLAG   (1UL << UVERBS_ID_NS_SHIFT)
  41 
  42 enum uverbs_default_objects {
  43         UVERBS_OBJECT_DEVICE, /* No instances of DEVICE are allowed */
  44         UVERBS_OBJECT_PD,
  45         UVERBS_OBJECT_COMP_CHANNEL,
  46         UVERBS_OBJECT_CQ,
  47         UVERBS_OBJECT_QP,
  48         UVERBS_OBJECT_SRQ,
  49         UVERBS_OBJECT_AH,
  50         UVERBS_OBJECT_MR,
  51         UVERBS_OBJECT_MW,
  52         UVERBS_OBJECT_FLOW,
  53         UVERBS_OBJECT_XRCD,
  54         UVERBS_OBJECT_RWQ_IND_TBL,
  55         UVERBS_OBJECT_WQ,
  56         UVERBS_OBJECT_FLOW_ACTION,
  57         UVERBS_OBJECT_DM,
  58         UVERBS_OBJECT_COUNTERS,
  59 };
  60 
  61 enum {
  62         UVERBS_ATTR_UHW_IN = UVERBS_UDATA_DRIVER_DATA_FLAG,
  63         UVERBS_ATTR_UHW_OUT,
  64 };
  65 
  66 enum uverbs_methods_device {
  67         UVERBS_METHOD_INVOKE_WRITE,
  68         UVERBS_METHOD_INFO_HANDLES,
  69         UVERBS_METHOD_QUERY_PORT,
  70 };
  71 
  72 enum uverbs_attrs_invoke_write_cmd_attr_ids {
  73         UVERBS_ATTR_CORE_IN,
  74         UVERBS_ATTR_CORE_OUT,
  75         UVERBS_ATTR_WRITE_CMD,
  76 };
  77 
  78 enum uverbs_attrs_query_port_cmd_attr_ids {
  79         UVERBS_ATTR_QUERY_PORT_PORT_NUM,
  80         UVERBS_ATTR_QUERY_PORT_RESP,
  81 };
  82 
  83 enum uverbs_attrs_create_cq_cmd_attr_ids {
  84         UVERBS_ATTR_CREATE_CQ_HANDLE,
  85         UVERBS_ATTR_CREATE_CQ_CQE,
  86         UVERBS_ATTR_CREATE_CQ_USER_HANDLE,
  87         UVERBS_ATTR_CREATE_CQ_COMP_CHANNEL,
  88         UVERBS_ATTR_CREATE_CQ_COMP_VECTOR,
  89         UVERBS_ATTR_CREATE_CQ_FLAGS,
  90         UVERBS_ATTR_CREATE_CQ_RESP_CQE,
  91 };
  92 
  93 enum uverbs_attrs_destroy_cq_cmd_attr_ids {
  94         UVERBS_ATTR_DESTROY_CQ_HANDLE,
  95         UVERBS_ATTR_DESTROY_CQ_RESP,
  96 };
  97 
  98 enum uverbs_attrs_create_flow_action_esp {
  99         UVERBS_ATTR_CREATE_FLOW_ACTION_ESP_HANDLE,
 100         UVERBS_ATTR_FLOW_ACTION_ESP_ATTRS,
 101         UVERBS_ATTR_FLOW_ACTION_ESP_ESN,
 102         UVERBS_ATTR_FLOW_ACTION_ESP_KEYMAT,
 103         UVERBS_ATTR_FLOW_ACTION_ESP_REPLAY,
 104         UVERBS_ATTR_FLOW_ACTION_ESP_ENCAP,
 105 };
 106 
 107 enum uverbs_attrs_modify_flow_action_esp {
 108         UVERBS_ATTR_MODIFY_FLOW_ACTION_ESP_HANDLE =
 109                 UVERBS_ATTR_CREATE_FLOW_ACTION_ESP_HANDLE,
 110 };
 111 
 112 enum uverbs_attrs_destroy_flow_action_esp {
 113         UVERBS_ATTR_DESTROY_FLOW_ACTION_HANDLE,
 114 };
 115 
 116 enum uverbs_methods_cq {
 117         UVERBS_METHOD_CQ_CREATE,
 118         UVERBS_METHOD_CQ_DESTROY,
 119 };
 120 
 121 enum uverbs_methods_actions_flow_action_ops {
 122         UVERBS_METHOD_FLOW_ACTION_ESP_CREATE,
 123         UVERBS_METHOD_FLOW_ACTION_DESTROY,
 124         UVERBS_METHOD_FLOW_ACTION_ESP_MODIFY,
 125 };
 126 
 127 enum uverbs_attrs_alloc_dm_cmd_attr_ids {
 128         UVERBS_ATTR_ALLOC_DM_HANDLE,
 129         UVERBS_ATTR_ALLOC_DM_LENGTH,
 130         UVERBS_ATTR_ALLOC_DM_ALIGNMENT,
 131 };
 132 
 133 enum uverbs_attrs_free_dm_cmd_attr_ids {
 134         UVERBS_ATTR_FREE_DM_HANDLE,
 135 };
 136 
 137 enum uverbs_methods_dm {
 138         UVERBS_METHOD_DM_ALLOC,
 139         UVERBS_METHOD_DM_FREE,
 140 };
 141 
 142 enum uverbs_attrs_reg_dm_mr_cmd_attr_ids {
 143         UVERBS_ATTR_REG_DM_MR_HANDLE,
 144         UVERBS_ATTR_REG_DM_MR_OFFSET,
 145         UVERBS_ATTR_REG_DM_MR_LENGTH,
 146         UVERBS_ATTR_REG_DM_MR_PD_HANDLE,
 147         UVERBS_ATTR_REG_DM_MR_ACCESS_FLAGS,
 148         UVERBS_ATTR_REG_DM_MR_DM_HANDLE,
 149         UVERBS_ATTR_REG_DM_MR_RESP_LKEY,
 150         UVERBS_ATTR_REG_DM_MR_RESP_RKEY,
 151 };
 152 
 153 enum uverbs_methods_mr {
 154         UVERBS_METHOD_DM_MR_REG,
 155         UVERBS_METHOD_MR_DESTROY,
 156         UVERBS_METHOD_ADVISE_MR,
 157 };
 158 
 159 enum uverbs_attrs_mr_destroy_ids {
 160         UVERBS_ATTR_DESTROY_MR_HANDLE,
 161 };
 162 
 163 enum uverbs_attrs_advise_mr_cmd_attr_ids {
 164         UVERBS_ATTR_ADVISE_MR_PD_HANDLE,
 165         UVERBS_ATTR_ADVISE_MR_ADVICE,
 166         UVERBS_ATTR_ADVISE_MR_FLAGS,
 167         UVERBS_ATTR_ADVISE_MR_SGE_LIST,
 168 };
 169 
 170 enum uverbs_attrs_create_counters_cmd_attr_ids {
 171         UVERBS_ATTR_CREATE_COUNTERS_HANDLE,
 172 };
 173 
 174 enum uverbs_attrs_destroy_counters_cmd_attr_ids {
 175         UVERBS_ATTR_DESTROY_COUNTERS_HANDLE,
 176 };
 177 
 178 enum uverbs_attrs_read_counters_cmd_attr_ids {
 179         UVERBS_ATTR_READ_COUNTERS_HANDLE,
 180         UVERBS_ATTR_READ_COUNTERS_BUFF,
 181         UVERBS_ATTR_READ_COUNTERS_FLAGS,
 182 };
 183 
 184 enum uverbs_methods_actions_counters_ops {
 185         UVERBS_METHOD_COUNTERS_CREATE,
 186         UVERBS_METHOD_COUNTERS_DESTROY,
 187         UVERBS_METHOD_COUNTERS_READ,
 188 };
 189 
 190 enum uverbs_attrs_info_handles_id {
 191         UVERBS_ATTR_INFO_OBJECT_ID,
 192         UVERBS_ATTR_INFO_TOTAL_HANDLES,
 193         UVERBS_ATTR_INFO_HANDLES_LIST,
 194 };
 195 
 196 enum uverbs_methods_pd {
 197         UVERBS_METHOD_PD_DESTROY,
 198 };
 199 
 200 enum uverbs_attrs_pd_destroy_ids {
 201         UVERBS_ATTR_DESTROY_PD_HANDLE,
 202 };
 203 
 204 enum uverbs_methods_mw {
 205         UVERBS_METHOD_MW_DESTROY,
 206 };
 207 
 208 enum uverbs_attrs_mw_destroy_ids {
 209         UVERBS_ATTR_DESTROY_MW_HANDLE,
 210 };
 211 
 212 enum uverbs_methods_xrcd {
 213         UVERBS_METHOD_XRCD_DESTROY,
 214 };
 215 
 216 enum uverbs_attrs_xrcd_destroy_ids {
 217         UVERBS_ATTR_DESTROY_XRCD_HANDLE,
 218 };
 219 
 220 enum uverbs_methods_ah {
 221         UVERBS_METHOD_AH_DESTROY,
 222 };
 223 
 224 enum uverbs_attrs_ah_destroy_ids {
 225         UVERBS_ATTR_DESTROY_AH_HANDLE,
 226 };
 227 
 228 enum uverbs_methods_rwq_ind_tbl {
 229         UVERBS_METHOD_RWQ_IND_TBL_DESTROY,
 230 };
 231 
 232 enum uverbs_attrs_rwq_ind_tbl_destroy_ids {
 233         UVERBS_ATTR_DESTROY_RWQ_IND_TBL_HANDLE,
 234 };
 235 
 236 enum uverbs_methods_flow {
 237         UVERBS_METHOD_FLOW_DESTROY,
 238 };
 239 
 240 enum uverbs_attrs_flow_destroy_ids {
 241         UVERBS_ATTR_DESTROY_FLOW_HANDLE,
 242 };
 243 
 244 #endif

/* [<][>][^][v][top][bottom][index][help] */