linux/include/uapi/rdma/ib_user_ioctl_cmds.h
<<
>>
Prefs
   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
  42enum 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
  61enum {
  62        UVERBS_ATTR_UHW_IN = UVERBS_UDATA_DRIVER_DATA_FLAG,
  63        UVERBS_ATTR_UHW_OUT,
  64};
  65
  66enum uverbs_methods_device {
  67        UVERBS_METHOD_INVOKE_WRITE,
  68        UVERBS_METHOD_INFO_HANDLES,
  69        UVERBS_METHOD_QUERY_PORT,
  70};
  71
  72enum uverbs_attrs_invoke_write_cmd_attr_ids {
  73        UVERBS_ATTR_CORE_IN,
  74        UVERBS_ATTR_CORE_OUT,
  75        UVERBS_ATTR_WRITE_CMD,
  76};
  77
  78enum uverbs_attrs_query_port_cmd_attr_ids {
  79        UVERBS_ATTR_QUERY_PORT_PORT_NUM,
  80        UVERBS_ATTR_QUERY_PORT_RESP,
  81};
  82
  83enum 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
  93enum uverbs_attrs_destroy_cq_cmd_attr_ids {
  94        UVERBS_ATTR_DESTROY_CQ_HANDLE,
  95        UVERBS_ATTR_DESTROY_CQ_RESP,
  96};
  97
  98enum 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
 107enum uverbs_attrs_modify_flow_action_esp {
 108        UVERBS_ATTR_MODIFY_FLOW_ACTION_ESP_HANDLE =
 109                UVERBS_ATTR_CREATE_FLOW_ACTION_ESP_HANDLE,
 110};
 111
 112enum uverbs_attrs_destroy_flow_action_esp {
 113        UVERBS_ATTR_DESTROY_FLOW_ACTION_HANDLE,
 114};
 115
 116enum uverbs_methods_cq {
 117        UVERBS_METHOD_CQ_CREATE,
 118        UVERBS_METHOD_CQ_DESTROY,
 119};
 120
 121enum 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
 127enum 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
 133enum uverbs_attrs_free_dm_cmd_attr_ids {
 134        UVERBS_ATTR_FREE_DM_HANDLE,
 135};
 136
 137enum uverbs_methods_dm {
 138        UVERBS_METHOD_DM_ALLOC,
 139        UVERBS_METHOD_DM_FREE,
 140};
 141
 142enum 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
 153enum uverbs_methods_mr {
 154        UVERBS_METHOD_DM_MR_REG,
 155        UVERBS_METHOD_MR_DESTROY,
 156        UVERBS_METHOD_ADVISE_MR,
 157};
 158
 159enum uverbs_attrs_mr_destroy_ids {
 160        UVERBS_ATTR_DESTROY_MR_HANDLE,
 161};
 162
 163enum 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
 170enum uverbs_attrs_create_counters_cmd_attr_ids {
 171        UVERBS_ATTR_CREATE_COUNTERS_HANDLE,
 172};
 173
 174enum uverbs_attrs_destroy_counters_cmd_attr_ids {
 175        UVERBS_ATTR_DESTROY_COUNTERS_HANDLE,
 176};
 177
 178enum 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
 184enum uverbs_methods_actions_counters_ops {
 185        UVERBS_METHOD_COUNTERS_CREATE,
 186        UVERBS_METHOD_COUNTERS_DESTROY,
 187        UVERBS_METHOD_COUNTERS_READ,
 188};
 189
 190enum 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
 196enum uverbs_methods_pd {
 197        UVERBS_METHOD_PD_DESTROY,
 198};
 199
 200enum uverbs_attrs_pd_destroy_ids {
 201        UVERBS_ATTR_DESTROY_PD_HANDLE,
 202};
 203
 204enum uverbs_methods_mw {
 205        UVERBS_METHOD_MW_DESTROY,
 206};
 207
 208enum uverbs_attrs_mw_destroy_ids {
 209        UVERBS_ATTR_DESTROY_MW_HANDLE,
 210};
 211
 212enum uverbs_methods_xrcd {
 213        UVERBS_METHOD_XRCD_DESTROY,
 214};
 215
 216enum uverbs_attrs_xrcd_destroy_ids {
 217        UVERBS_ATTR_DESTROY_XRCD_HANDLE,
 218};
 219
 220enum uverbs_methods_ah {
 221        UVERBS_METHOD_AH_DESTROY,
 222};
 223
 224enum uverbs_attrs_ah_destroy_ids {
 225        UVERBS_ATTR_DESTROY_AH_HANDLE,
 226};
 227
 228enum uverbs_methods_rwq_ind_tbl {
 229        UVERBS_METHOD_RWQ_IND_TBL_DESTROY,
 230};
 231
 232enum uverbs_attrs_rwq_ind_tbl_destroy_ids {
 233        UVERBS_ATTR_DESTROY_RWQ_IND_TBL_HANDLE,
 234};
 235
 236enum uverbs_methods_flow {
 237        UVERBS_METHOD_FLOW_DESTROY,
 238};
 239
 240enum uverbs_attrs_flow_destroy_ids {
 241        UVERBS_ATTR_DESTROY_FLOW_HANDLE,
 242};
 243
 244#endif
 245