Path: blob/master/include/uapi/rdma/ib_user_ioctl_cmds.h
26292 views
/*1* Copyright (c) 2018, Mellanox Technologies inc. All rights reserved.2* Copyright (c) 2020, Intel Corporation. All rights reserved.3*4* This software is available to you under a choice of one of two5* licenses. You may choose to be licensed under the terms of the GNU6* General Public License (GPL) Version 2, available from the file7* COPYING in the main directory of this source tree, or the8* OpenIB.org BSD license below:9*10* Redistribution and use in source and binary forms, with or11* without modification, are permitted provided that the following12* conditions are met:13*14* - Redistributions of source code must retain the above15* copyright notice, this list of conditions and the following16* disclaimer.17*18* - Redistributions in binary form must reproduce the above19* copyright notice, this list of conditions and the following20* disclaimer in the documentation and/or other materials21* 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 OF25* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND26* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS27* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN28* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN29* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE30* SOFTWARE.31*/3233#ifndef IB_USER_IOCTL_CMDS_H34#define IB_USER_IOCTL_CMDS_H3536#define UVERBS_ID_NS_MASK 0xF00037#define UVERBS_ID_NS_SHIFT 123839enum uverbs_default_objects {40UVERBS_OBJECT_DEVICE, /* No instances of DEVICE are allowed */41UVERBS_OBJECT_PD,42UVERBS_OBJECT_COMP_CHANNEL,43UVERBS_OBJECT_CQ,44UVERBS_OBJECT_QP,45UVERBS_OBJECT_SRQ,46UVERBS_OBJECT_AH,47UVERBS_OBJECT_MR,48UVERBS_OBJECT_MW,49UVERBS_OBJECT_FLOW,50UVERBS_OBJECT_XRCD,51UVERBS_OBJECT_RWQ_IND_TBL,52UVERBS_OBJECT_WQ,53UVERBS_OBJECT_FLOW_ACTION,54UVERBS_OBJECT_DM,55UVERBS_OBJECT_COUNTERS,56UVERBS_OBJECT_ASYNC_EVENT,57UVERBS_OBJECT_DMAH,58};5960enum {61UVERBS_ID_DRIVER_NS = 1UL << UVERBS_ID_NS_SHIFT,62UVERBS_ATTR_UHW_IN = UVERBS_ID_DRIVER_NS,63UVERBS_ATTR_UHW_OUT,64UVERBS_ID_DRIVER_NS_WITH_UHW,65};6667enum uverbs_methods_device {68UVERBS_METHOD_INVOKE_WRITE,69UVERBS_METHOD_INFO_HANDLES,70UVERBS_METHOD_QUERY_PORT,71UVERBS_METHOD_GET_CONTEXT,72UVERBS_METHOD_QUERY_CONTEXT,73UVERBS_METHOD_QUERY_GID_TABLE,74UVERBS_METHOD_QUERY_GID_ENTRY,75};7677enum uverbs_attrs_invoke_write_cmd_attr_ids {78UVERBS_ATTR_CORE_IN,79UVERBS_ATTR_CORE_OUT,80UVERBS_ATTR_WRITE_CMD,81};8283enum uverbs_attrs_query_port_cmd_attr_ids {84UVERBS_ATTR_QUERY_PORT_PORT_NUM,85UVERBS_ATTR_QUERY_PORT_RESP,86};8788enum uverbs_attrs_get_context_attr_ids {89UVERBS_ATTR_GET_CONTEXT_NUM_COMP_VECTORS,90UVERBS_ATTR_GET_CONTEXT_CORE_SUPPORT,91UVERBS_ATTR_GET_CONTEXT_FD_ARR,92};9394enum uverbs_attrs_query_context_attr_ids {95UVERBS_ATTR_QUERY_CONTEXT_NUM_COMP_VECTORS,96UVERBS_ATTR_QUERY_CONTEXT_CORE_SUPPORT,97};9899enum uverbs_attrs_create_cq_cmd_attr_ids {100UVERBS_ATTR_CREATE_CQ_HANDLE,101UVERBS_ATTR_CREATE_CQ_CQE,102UVERBS_ATTR_CREATE_CQ_USER_HANDLE,103UVERBS_ATTR_CREATE_CQ_COMP_CHANNEL,104UVERBS_ATTR_CREATE_CQ_COMP_VECTOR,105UVERBS_ATTR_CREATE_CQ_FLAGS,106UVERBS_ATTR_CREATE_CQ_RESP_CQE,107UVERBS_ATTR_CREATE_CQ_EVENT_FD,108UVERBS_ATTR_CREATE_CQ_BUFFER_VA,109UVERBS_ATTR_CREATE_CQ_BUFFER_LENGTH,110UVERBS_ATTR_CREATE_CQ_BUFFER_FD,111UVERBS_ATTR_CREATE_CQ_BUFFER_OFFSET,112};113114enum uverbs_attrs_destroy_cq_cmd_attr_ids {115UVERBS_ATTR_DESTROY_CQ_HANDLE,116UVERBS_ATTR_DESTROY_CQ_RESP,117};118119enum uverbs_attrs_create_flow_action_esp {120UVERBS_ATTR_CREATE_FLOW_ACTION_ESP_HANDLE,121UVERBS_ATTR_FLOW_ACTION_ESP_ATTRS,122UVERBS_ATTR_FLOW_ACTION_ESP_ESN,123UVERBS_ATTR_FLOW_ACTION_ESP_KEYMAT,124UVERBS_ATTR_FLOW_ACTION_ESP_REPLAY,125UVERBS_ATTR_FLOW_ACTION_ESP_ENCAP,126};127128enum uverbs_attrs_modify_flow_action_esp {129UVERBS_ATTR_MODIFY_FLOW_ACTION_ESP_HANDLE =130UVERBS_ATTR_CREATE_FLOW_ACTION_ESP_HANDLE,131};132133enum uverbs_attrs_destroy_flow_action_esp {134UVERBS_ATTR_DESTROY_FLOW_ACTION_HANDLE,135};136137enum uverbs_attrs_create_qp_cmd_attr_ids {138UVERBS_ATTR_CREATE_QP_HANDLE,139UVERBS_ATTR_CREATE_QP_XRCD_HANDLE,140UVERBS_ATTR_CREATE_QP_PD_HANDLE,141UVERBS_ATTR_CREATE_QP_SRQ_HANDLE,142UVERBS_ATTR_CREATE_QP_SEND_CQ_HANDLE,143UVERBS_ATTR_CREATE_QP_RECV_CQ_HANDLE,144UVERBS_ATTR_CREATE_QP_IND_TABLE_HANDLE,145UVERBS_ATTR_CREATE_QP_USER_HANDLE,146UVERBS_ATTR_CREATE_QP_CAP,147UVERBS_ATTR_CREATE_QP_TYPE,148UVERBS_ATTR_CREATE_QP_FLAGS,149UVERBS_ATTR_CREATE_QP_SOURCE_QPN,150UVERBS_ATTR_CREATE_QP_EVENT_FD,151UVERBS_ATTR_CREATE_QP_RESP_CAP,152UVERBS_ATTR_CREATE_QP_RESP_QP_NUM,153};154155enum uverbs_attrs_destroy_qp_cmd_attr_ids {156UVERBS_ATTR_DESTROY_QP_HANDLE,157UVERBS_ATTR_DESTROY_QP_RESP,158};159160enum uverbs_methods_qp {161UVERBS_METHOD_QP_CREATE,162UVERBS_METHOD_QP_DESTROY,163};164165enum uverbs_attrs_create_srq_cmd_attr_ids {166UVERBS_ATTR_CREATE_SRQ_HANDLE,167UVERBS_ATTR_CREATE_SRQ_PD_HANDLE,168UVERBS_ATTR_CREATE_SRQ_XRCD_HANDLE,169UVERBS_ATTR_CREATE_SRQ_CQ_HANDLE,170UVERBS_ATTR_CREATE_SRQ_USER_HANDLE,171UVERBS_ATTR_CREATE_SRQ_MAX_WR,172UVERBS_ATTR_CREATE_SRQ_MAX_SGE,173UVERBS_ATTR_CREATE_SRQ_LIMIT,174UVERBS_ATTR_CREATE_SRQ_MAX_NUM_TAGS,175UVERBS_ATTR_CREATE_SRQ_TYPE,176UVERBS_ATTR_CREATE_SRQ_EVENT_FD,177UVERBS_ATTR_CREATE_SRQ_RESP_MAX_WR,178UVERBS_ATTR_CREATE_SRQ_RESP_MAX_SGE,179UVERBS_ATTR_CREATE_SRQ_RESP_SRQ_NUM,180};181182enum uverbs_attrs_destroy_srq_cmd_attr_ids {183UVERBS_ATTR_DESTROY_SRQ_HANDLE,184UVERBS_ATTR_DESTROY_SRQ_RESP,185};186187enum uverbs_methods_srq {188UVERBS_METHOD_SRQ_CREATE,189UVERBS_METHOD_SRQ_DESTROY,190};191192enum uverbs_methods_cq {193UVERBS_METHOD_CQ_CREATE,194UVERBS_METHOD_CQ_DESTROY,195};196197enum uverbs_attrs_create_wq_cmd_attr_ids {198UVERBS_ATTR_CREATE_WQ_HANDLE,199UVERBS_ATTR_CREATE_WQ_PD_HANDLE,200UVERBS_ATTR_CREATE_WQ_CQ_HANDLE,201UVERBS_ATTR_CREATE_WQ_USER_HANDLE,202UVERBS_ATTR_CREATE_WQ_TYPE,203UVERBS_ATTR_CREATE_WQ_EVENT_FD,204UVERBS_ATTR_CREATE_WQ_MAX_WR,205UVERBS_ATTR_CREATE_WQ_MAX_SGE,206UVERBS_ATTR_CREATE_WQ_FLAGS,207UVERBS_ATTR_CREATE_WQ_RESP_MAX_WR,208UVERBS_ATTR_CREATE_WQ_RESP_MAX_SGE,209UVERBS_ATTR_CREATE_WQ_RESP_WQ_NUM,210};211212enum uverbs_attrs_destroy_wq_cmd_attr_ids {213UVERBS_ATTR_DESTROY_WQ_HANDLE,214UVERBS_ATTR_DESTROY_WQ_RESP,215};216217enum uverbs_methods_wq {218UVERBS_METHOD_WQ_CREATE,219UVERBS_METHOD_WQ_DESTROY,220};221222enum uverbs_methods_actions_flow_action_ops {223UVERBS_METHOD_FLOW_ACTION_ESP_CREATE,224UVERBS_METHOD_FLOW_ACTION_DESTROY,225UVERBS_METHOD_FLOW_ACTION_ESP_MODIFY,226};227228enum uverbs_attrs_alloc_dm_cmd_attr_ids {229UVERBS_ATTR_ALLOC_DM_HANDLE,230UVERBS_ATTR_ALLOC_DM_LENGTH,231UVERBS_ATTR_ALLOC_DM_ALIGNMENT,232};233234enum uverbs_attrs_free_dm_cmd_attr_ids {235UVERBS_ATTR_FREE_DM_HANDLE,236};237238enum uverbs_methods_dm {239UVERBS_METHOD_DM_ALLOC,240UVERBS_METHOD_DM_FREE,241};242243enum uverbs_attrs_alloc_dmah_cmd_attr_ids {244UVERBS_ATTR_ALLOC_DMAH_HANDLE,245UVERBS_ATTR_ALLOC_DMAH_CPU_ID,246UVERBS_ATTR_ALLOC_DMAH_TPH_MEM_TYPE,247UVERBS_ATTR_ALLOC_DMAH_PH,248};249250enum uverbs_attrs_free_dmah_cmd_attr_ids {251UVERBS_ATTR_FREE_DMA_HANDLE,252};253254enum uverbs_methods_dmah {255UVERBS_METHOD_DMAH_ALLOC,256UVERBS_METHOD_DMAH_FREE,257};258259enum uverbs_attrs_reg_dm_mr_cmd_attr_ids {260UVERBS_ATTR_REG_DM_MR_HANDLE,261UVERBS_ATTR_REG_DM_MR_OFFSET,262UVERBS_ATTR_REG_DM_MR_LENGTH,263UVERBS_ATTR_REG_DM_MR_PD_HANDLE,264UVERBS_ATTR_REG_DM_MR_ACCESS_FLAGS,265UVERBS_ATTR_REG_DM_MR_DM_HANDLE,266UVERBS_ATTR_REG_DM_MR_RESP_LKEY,267UVERBS_ATTR_REG_DM_MR_RESP_RKEY,268};269270enum uverbs_methods_mr {271UVERBS_METHOD_DM_MR_REG,272UVERBS_METHOD_MR_DESTROY,273UVERBS_METHOD_ADVISE_MR,274UVERBS_METHOD_QUERY_MR,275UVERBS_METHOD_REG_DMABUF_MR,276UVERBS_METHOD_REG_MR,277};278279enum uverbs_attrs_mr_destroy_ids {280UVERBS_ATTR_DESTROY_MR_HANDLE,281};282283enum uverbs_attrs_advise_mr_cmd_attr_ids {284UVERBS_ATTR_ADVISE_MR_PD_HANDLE,285UVERBS_ATTR_ADVISE_MR_ADVICE,286UVERBS_ATTR_ADVISE_MR_FLAGS,287UVERBS_ATTR_ADVISE_MR_SGE_LIST,288};289290enum uverbs_attrs_query_mr_cmd_attr_ids {291UVERBS_ATTR_QUERY_MR_HANDLE,292UVERBS_ATTR_QUERY_MR_RESP_LKEY,293UVERBS_ATTR_QUERY_MR_RESP_RKEY,294UVERBS_ATTR_QUERY_MR_RESP_LENGTH,295UVERBS_ATTR_QUERY_MR_RESP_IOVA,296};297298enum uverbs_attrs_reg_dmabuf_mr_cmd_attr_ids {299UVERBS_ATTR_REG_DMABUF_MR_HANDLE,300UVERBS_ATTR_REG_DMABUF_MR_PD_HANDLE,301UVERBS_ATTR_REG_DMABUF_MR_OFFSET,302UVERBS_ATTR_REG_DMABUF_MR_LENGTH,303UVERBS_ATTR_REG_DMABUF_MR_IOVA,304UVERBS_ATTR_REG_DMABUF_MR_FD,305UVERBS_ATTR_REG_DMABUF_MR_ACCESS_FLAGS,306UVERBS_ATTR_REG_DMABUF_MR_RESP_LKEY,307UVERBS_ATTR_REG_DMABUF_MR_RESP_RKEY,308};309310enum uverbs_attrs_reg_mr_cmd_attr_ids {311UVERBS_ATTR_REG_MR_HANDLE,312UVERBS_ATTR_REG_MR_PD_HANDLE,313UVERBS_ATTR_REG_MR_DMA_HANDLE,314UVERBS_ATTR_REG_MR_IOVA,315UVERBS_ATTR_REG_MR_ADDR,316UVERBS_ATTR_REG_MR_LENGTH,317UVERBS_ATTR_REG_MR_ACCESS_FLAGS,318UVERBS_ATTR_REG_MR_FD,319UVERBS_ATTR_REG_MR_FD_OFFSET,320UVERBS_ATTR_REG_MR_RESP_LKEY,321UVERBS_ATTR_REG_MR_RESP_RKEY,322};323324enum uverbs_attrs_create_counters_cmd_attr_ids {325UVERBS_ATTR_CREATE_COUNTERS_HANDLE,326};327328enum uverbs_attrs_destroy_counters_cmd_attr_ids {329UVERBS_ATTR_DESTROY_COUNTERS_HANDLE,330};331332enum uverbs_attrs_read_counters_cmd_attr_ids {333UVERBS_ATTR_READ_COUNTERS_HANDLE,334UVERBS_ATTR_READ_COUNTERS_BUFF,335UVERBS_ATTR_READ_COUNTERS_FLAGS,336};337338enum uverbs_methods_actions_counters_ops {339UVERBS_METHOD_COUNTERS_CREATE,340UVERBS_METHOD_COUNTERS_DESTROY,341UVERBS_METHOD_COUNTERS_READ,342};343344enum uverbs_attrs_info_handles_id {345UVERBS_ATTR_INFO_OBJECT_ID,346UVERBS_ATTR_INFO_TOTAL_HANDLES,347UVERBS_ATTR_INFO_HANDLES_LIST,348};349350enum uverbs_methods_pd {351UVERBS_METHOD_PD_DESTROY,352};353354enum uverbs_attrs_pd_destroy_ids {355UVERBS_ATTR_DESTROY_PD_HANDLE,356};357358enum uverbs_methods_mw {359UVERBS_METHOD_MW_DESTROY,360};361362enum uverbs_attrs_mw_destroy_ids {363UVERBS_ATTR_DESTROY_MW_HANDLE,364};365366enum uverbs_methods_xrcd {367UVERBS_METHOD_XRCD_DESTROY,368};369370enum uverbs_attrs_xrcd_destroy_ids {371UVERBS_ATTR_DESTROY_XRCD_HANDLE,372};373374enum uverbs_methods_ah {375UVERBS_METHOD_AH_DESTROY,376};377378enum uverbs_attrs_ah_destroy_ids {379UVERBS_ATTR_DESTROY_AH_HANDLE,380};381382enum uverbs_methods_rwq_ind_tbl {383UVERBS_METHOD_RWQ_IND_TBL_DESTROY,384};385386enum uverbs_attrs_rwq_ind_tbl_destroy_ids {387UVERBS_ATTR_DESTROY_RWQ_IND_TBL_HANDLE,388};389390enum uverbs_methods_flow {391UVERBS_METHOD_FLOW_DESTROY,392};393394enum uverbs_attrs_flow_destroy_ids {395UVERBS_ATTR_DESTROY_FLOW_HANDLE,396};397398enum uverbs_method_async_event {399UVERBS_METHOD_ASYNC_EVENT_ALLOC,400};401402enum uverbs_attrs_async_event_create {403UVERBS_ATTR_ASYNC_EVENT_ALLOC_FD_HANDLE,404};405406enum uverbs_attrs_query_gid_table_cmd_attr_ids {407UVERBS_ATTR_QUERY_GID_TABLE_ENTRY_SIZE,408UVERBS_ATTR_QUERY_GID_TABLE_FLAGS,409UVERBS_ATTR_QUERY_GID_TABLE_RESP_ENTRIES,410UVERBS_ATTR_QUERY_GID_TABLE_RESP_NUM_ENTRIES,411};412413enum uverbs_attrs_query_gid_entry_cmd_attr_ids {414UVERBS_ATTR_QUERY_GID_ENTRY_PORT,415UVERBS_ATTR_QUERY_GID_ENTRY_GID_INDEX,416UVERBS_ATTR_QUERY_GID_ENTRY_FLAGS,417UVERBS_ATTR_QUERY_GID_ENTRY_RESP_ENTRY,418};419420#endif421422423