cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

mlx5_user_ioctl_cmds.h (10188B)


      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 MLX5_USER_IOCTL_CMDS_H
     34#define MLX5_USER_IOCTL_CMDS_H
     35
     36#include <linux/types.h>
     37#include <rdma/ib_user_ioctl_cmds.h>
     38
     39enum mlx5_ib_create_flow_action_attrs {
     40	/* This attribute belong to the driver namespace */
     41	MLX5_IB_ATTR_CREATE_FLOW_ACTION_FLAGS = (1U << UVERBS_ID_NS_SHIFT),
     42};
     43
     44enum mlx5_ib_dm_methods {
     45	MLX5_IB_METHOD_DM_MAP_OP_ADDR  = (1U << UVERBS_ID_NS_SHIFT),
     46	MLX5_IB_METHOD_DM_QUERY,
     47};
     48
     49enum mlx5_ib_dm_map_op_addr_attrs {
     50	MLX5_IB_ATTR_DM_MAP_OP_ADDR_REQ_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
     51	MLX5_IB_ATTR_DM_MAP_OP_ADDR_REQ_OP,
     52	MLX5_IB_ATTR_DM_MAP_OP_ADDR_RESP_START_OFFSET,
     53	MLX5_IB_ATTR_DM_MAP_OP_ADDR_RESP_PAGE_INDEX,
     54};
     55
     56enum mlx5_ib_query_dm_attrs {
     57	MLX5_IB_ATTR_QUERY_DM_REQ_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
     58	MLX5_IB_ATTR_QUERY_DM_RESP_START_OFFSET,
     59	MLX5_IB_ATTR_QUERY_DM_RESP_PAGE_INDEX,
     60	MLX5_IB_ATTR_QUERY_DM_RESP_LENGTH,
     61};
     62
     63enum mlx5_ib_alloc_dm_attrs {
     64	MLX5_IB_ATTR_ALLOC_DM_RESP_START_OFFSET = (1U << UVERBS_ID_NS_SHIFT),
     65	MLX5_IB_ATTR_ALLOC_DM_RESP_PAGE_INDEX,
     66	MLX5_IB_ATTR_ALLOC_DM_REQ_TYPE,
     67};
     68
     69enum mlx5_ib_devx_methods {
     70	MLX5_IB_METHOD_DEVX_OTHER  = (1U << UVERBS_ID_NS_SHIFT),
     71	MLX5_IB_METHOD_DEVX_QUERY_UAR,
     72	MLX5_IB_METHOD_DEVX_QUERY_EQN,
     73	MLX5_IB_METHOD_DEVX_SUBSCRIBE_EVENT,
     74};
     75
     76enum  mlx5_ib_devx_other_attrs {
     77	MLX5_IB_ATTR_DEVX_OTHER_CMD_IN = (1U << UVERBS_ID_NS_SHIFT),
     78	MLX5_IB_ATTR_DEVX_OTHER_CMD_OUT,
     79};
     80
     81enum mlx5_ib_devx_obj_create_attrs {
     82	MLX5_IB_ATTR_DEVX_OBJ_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
     83	MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_IN,
     84	MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_OUT,
     85};
     86
     87enum  mlx5_ib_devx_query_uar_attrs {
     88	MLX5_IB_ATTR_DEVX_QUERY_UAR_USER_IDX = (1U << UVERBS_ID_NS_SHIFT),
     89	MLX5_IB_ATTR_DEVX_QUERY_UAR_DEV_IDX,
     90};
     91
     92enum mlx5_ib_devx_obj_destroy_attrs {
     93	MLX5_IB_ATTR_DEVX_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
     94};
     95
     96enum mlx5_ib_devx_obj_modify_attrs {
     97	MLX5_IB_ATTR_DEVX_OBJ_MODIFY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
     98	MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_IN,
     99	MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_OUT,
    100};
    101
    102enum mlx5_ib_devx_obj_query_attrs {
    103	MLX5_IB_ATTR_DEVX_OBJ_QUERY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
    104	MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_IN,
    105	MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_OUT,
    106};
    107
    108enum mlx5_ib_devx_obj_query_async_attrs {
    109	MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
    110	MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_CMD_IN,
    111	MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_FD,
    112	MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_WR_ID,
    113	MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_OUT_LEN,
    114};
    115
    116enum mlx5_ib_devx_subscribe_event_attrs {
    117	MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_FD_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
    118	MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_OBJ_HANDLE,
    119	MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_TYPE_NUM_LIST,
    120	MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_FD_NUM,
    121	MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_COOKIE,
    122};
    123
    124enum  mlx5_ib_devx_query_eqn_attrs {
    125	MLX5_IB_ATTR_DEVX_QUERY_EQN_USER_VEC = (1U << UVERBS_ID_NS_SHIFT),
    126	MLX5_IB_ATTR_DEVX_QUERY_EQN_DEV_EQN,
    127};
    128
    129enum mlx5_ib_devx_obj_methods {
    130	MLX5_IB_METHOD_DEVX_OBJ_CREATE = (1U << UVERBS_ID_NS_SHIFT),
    131	MLX5_IB_METHOD_DEVX_OBJ_DESTROY,
    132	MLX5_IB_METHOD_DEVX_OBJ_MODIFY,
    133	MLX5_IB_METHOD_DEVX_OBJ_QUERY,
    134	MLX5_IB_METHOD_DEVX_OBJ_ASYNC_QUERY,
    135};
    136
    137enum mlx5_ib_var_alloc_attrs {
    138	MLX5_IB_ATTR_VAR_OBJ_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
    139	MLX5_IB_ATTR_VAR_OBJ_ALLOC_MMAP_OFFSET,
    140	MLX5_IB_ATTR_VAR_OBJ_ALLOC_MMAP_LENGTH,
    141	MLX5_IB_ATTR_VAR_OBJ_ALLOC_PAGE_ID,
    142};
    143
    144enum mlx5_ib_var_obj_destroy_attrs {
    145	MLX5_IB_ATTR_VAR_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
    146};
    147
    148enum mlx5_ib_var_obj_methods {
    149	MLX5_IB_METHOD_VAR_OBJ_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
    150	MLX5_IB_METHOD_VAR_OBJ_DESTROY,
    151};
    152
    153enum mlx5_ib_uar_alloc_attrs {
    154	MLX5_IB_ATTR_UAR_OBJ_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
    155	MLX5_IB_ATTR_UAR_OBJ_ALLOC_TYPE,
    156	MLX5_IB_ATTR_UAR_OBJ_ALLOC_MMAP_OFFSET,
    157	MLX5_IB_ATTR_UAR_OBJ_ALLOC_MMAP_LENGTH,
    158	MLX5_IB_ATTR_UAR_OBJ_ALLOC_PAGE_ID,
    159};
    160
    161enum mlx5_ib_uar_obj_destroy_attrs {
    162	MLX5_IB_ATTR_UAR_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
    163};
    164
    165enum mlx5_ib_uar_obj_methods {
    166	MLX5_IB_METHOD_UAR_OBJ_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
    167	MLX5_IB_METHOD_UAR_OBJ_DESTROY,
    168};
    169
    170enum mlx5_ib_devx_umem_reg_attrs {
    171	MLX5_IB_ATTR_DEVX_UMEM_REG_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
    172	MLX5_IB_ATTR_DEVX_UMEM_REG_ADDR,
    173	MLX5_IB_ATTR_DEVX_UMEM_REG_LEN,
    174	MLX5_IB_ATTR_DEVX_UMEM_REG_ACCESS,
    175	MLX5_IB_ATTR_DEVX_UMEM_REG_OUT_ID,
    176	MLX5_IB_ATTR_DEVX_UMEM_REG_PGSZ_BITMAP,
    177};
    178
    179enum mlx5_ib_devx_umem_dereg_attrs {
    180	MLX5_IB_ATTR_DEVX_UMEM_DEREG_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
    181};
    182
    183enum mlx5_ib_pp_obj_methods {
    184	MLX5_IB_METHOD_PP_OBJ_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
    185	MLX5_IB_METHOD_PP_OBJ_DESTROY,
    186};
    187
    188enum mlx5_ib_pp_alloc_attrs {
    189	MLX5_IB_ATTR_PP_OBJ_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
    190	MLX5_IB_ATTR_PP_OBJ_ALLOC_CTX,
    191	MLX5_IB_ATTR_PP_OBJ_ALLOC_FLAGS,
    192	MLX5_IB_ATTR_PP_OBJ_ALLOC_INDEX,
    193};
    194
    195enum mlx5_ib_pp_obj_destroy_attrs {
    196	MLX5_IB_ATTR_PP_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
    197};
    198
    199enum mlx5_ib_devx_umem_methods {
    200	MLX5_IB_METHOD_DEVX_UMEM_REG = (1U << UVERBS_ID_NS_SHIFT),
    201	MLX5_IB_METHOD_DEVX_UMEM_DEREG,
    202};
    203
    204enum mlx5_ib_devx_async_cmd_fd_alloc_attrs {
    205	MLX5_IB_ATTR_DEVX_ASYNC_CMD_FD_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
    206};
    207
    208enum mlx5_ib_devx_async_event_fd_alloc_attrs {
    209	MLX5_IB_ATTR_DEVX_ASYNC_EVENT_FD_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
    210	MLX5_IB_ATTR_DEVX_ASYNC_EVENT_FD_ALLOC_FLAGS,
    211};
    212
    213enum mlx5_ib_devx_async_cmd_fd_methods {
    214	MLX5_IB_METHOD_DEVX_ASYNC_CMD_FD_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
    215};
    216
    217enum mlx5_ib_devx_async_event_fd_methods {
    218	MLX5_IB_METHOD_DEVX_ASYNC_EVENT_FD_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
    219};
    220
    221enum mlx5_ib_objects {
    222	MLX5_IB_OBJECT_DEVX = (1U << UVERBS_ID_NS_SHIFT),
    223	MLX5_IB_OBJECT_DEVX_OBJ,
    224	MLX5_IB_OBJECT_DEVX_UMEM,
    225	MLX5_IB_OBJECT_FLOW_MATCHER,
    226	MLX5_IB_OBJECT_DEVX_ASYNC_CMD_FD,
    227	MLX5_IB_OBJECT_DEVX_ASYNC_EVENT_FD,
    228	MLX5_IB_OBJECT_VAR,
    229	MLX5_IB_OBJECT_PP,
    230	MLX5_IB_OBJECT_UAR,
    231};
    232
    233enum mlx5_ib_flow_matcher_create_attrs {
    234	MLX5_IB_ATTR_FLOW_MATCHER_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
    235	MLX5_IB_ATTR_FLOW_MATCHER_MATCH_MASK,
    236	MLX5_IB_ATTR_FLOW_MATCHER_FLOW_TYPE,
    237	MLX5_IB_ATTR_FLOW_MATCHER_MATCH_CRITERIA,
    238	MLX5_IB_ATTR_FLOW_MATCHER_FLOW_FLAGS,
    239	MLX5_IB_ATTR_FLOW_MATCHER_FT_TYPE,
    240};
    241
    242enum mlx5_ib_flow_matcher_destroy_attrs {
    243	MLX5_IB_ATTR_FLOW_MATCHER_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
    244};
    245
    246enum mlx5_ib_flow_matcher_methods {
    247	MLX5_IB_METHOD_FLOW_MATCHER_CREATE = (1U << UVERBS_ID_NS_SHIFT),
    248	MLX5_IB_METHOD_FLOW_MATCHER_DESTROY,
    249};
    250
    251enum mlx5_ib_device_query_context_attrs {
    252	MLX5_IB_ATTR_QUERY_CONTEXT_RESP_UCTX = (1U << UVERBS_ID_NS_SHIFT),
    253};
    254
    255#define MLX5_IB_DW_MATCH_PARAM 0xA0
    256
    257struct mlx5_ib_match_params {
    258	__u32	match_params[MLX5_IB_DW_MATCH_PARAM];
    259};
    260
    261enum mlx5_ib_flow_type {
    262	MLX5_IB_FLOW_TYPE_NORMAL,
    263	MLX5_IB_FLOW_TYPE_SNIFFER,
    264	MLX5_IB_FLOW_TYPE_ALL_DEFAULT,
    265	MLX5_IB_FLOW_TYPE_MC_DEFAULT,
    266};
    267
    268enum mlx5_ib_create_flow_flags {
    269	MLX5_IB_ATTR_CREATE_FLOW_FLAGS_DEFAULT_MISS = 1 << 0,
    270	MLX5_IB_ATTR_CREATE_FLOW_FLAGS_DROP = 1 << 1,
    271};
    272
    273enum mlx5_ib_create_flow_attrs {
    274	MLX5_IB_ATTR_CREATE_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
    275	MLX5_IB_ATTR_CREATE_FLOW_MATCH_VALUE,
    276	MLX5_IB_ATTR_CREATE_FLOW_DEST_QP,
    277	MLX5_IB_ATTR_CREATE_FLOW_DEST_DEVX,
    278	MLX5_IB_ATTR_CREATE_FLOW_MATCHER,
    279	MLX5_IB_ATTR_CREATE_FLOW_ARR_FLOW_ACTIONS,
    280	MLX5_IB_ATTR_CREATE_FLOW_TAG,
    281	MLX5_IB_ATTR_CREATE_FLOW_ARR_COUNTERS_DEVX,
    282	MLX5_IB_ATTR_CREATE_FLOW_ARR_COUNTERS_DEVX_OFFSET,
    283	MLX5_IB_ATTR_CREATE_FLOW_FLAGS,
    284};
    285
    286enum mlx5_ib_destroy_flow_attrs {
    287	MLX5_IB_ATTR_DESTROY_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
    288};
    289
    290enum mlx5_ib_flow_methods {
    291	MLX5_IB_METHOD_CREATE_FLOW = (1U << UVERBS_ID_NS_SHIFT),
    292	MLX5_IB_METHOD_DESTROY_FLOW,
    293};
    294
    295enum mlx5_ib_flow_action_methods {
    296	MLX5_IB_METHOD_FLOW_ACTION_CREATE_MODIFY_HEADER = (1U << UVERBS_ID_NS_SHIFT),
    297	MLX5_IB_METHOD_FLOW_ACTION_CREATE_PACKET_REFORMAT,
    298};
    299
    300enum mlx5_ib_create_flow_action_create_modify_header_attrs {
    301	MLX5_IB_ATTR_CREATE_MODIFY_HEADER_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
    302	MLX5_IB_ATTR_CREATE_MODIFY_HEADER_ACTIONS_PRM,
    303	MLX5_IB_ATTR_CREATE_MODIFY_HEADER_FT_TYPE,
    304};
    305
    306enum mlx5_ib_create_flow_action_create_packet_reformat_attrs {
    307	MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
    308	MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_TYPE,
    309	MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_FT_TYPE,
    310	MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_DATA_BUF,
    311};
    312
    313enum mlx5_ib_query_pd_attrs {
    314	MLX5_IB_ATTR_QUERY_PD_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
    315	MLX5_IB_ATTR_QUERY_PD_RESP_PDN,
    316};
    317
    318enum mlx5_ib_pd_methods {
    319	MLX5_IB_METHOD_PD_QUERY = (1U << UVERBS_ID_NS_SHIFT),
    320
    321};
    322
    323enum mlx5_ib_device_methods {
    324	MLX5_IB_METHOD_QUERY_PORT = (1U << UVERBS_ID_NS_SHIFT),
    325};
    326
    327enum mlx5_ib_query_port_attrs {
    328	MLX5_IB_ATTR_QUERY_PORT_PORT_NUM = (1U << UVERBS_ID_NS_SHIFT),
    329	MLX5_IB_ATTR_QUERY_PORT,
    330};
    331
    332#endif