162306a36Sopenharmony_ci/*
262306a36Sopenharmony_ci * Copyright (c) 2018, Mellanox Technologies inc.  All rights reserved.
362306a36Sopenharmony_ci *
462306a36Sopenharmony_ci * This software is available to you under a choice of one of two
562306a36Sopenharmony_ci * licenses.  You may choose to be licensed under the terms of the GNU
662306a36Sopenharmony_ci * General Public License (GPL) Version 2, available from the file
762306a36Sopenharmony_ci * COPYING in the main directory of this source tree, or the
862306a36Sopenharmony_ci * OpenIB.org BSD license below:
962306a36Sopenharmony_ci *
1062306a36Sopenharmony_ci *     Redistribution and use in source and binary forms, with or
1162306a36Sopenharmony_ci *     without modification, are permitted provided that the following
1262306a36Sopenharmony_ci *     conditions are met:
1362306a36Sopenharmony_ci *
1462306a36Sopenharmony_ci *      - Redistributions of source code must retain the above
1562306a36Sopenharmony_ci *        copyright notice, this list of conditions and the following
1662306a36Sopenharmony_ci *        disclaimer.
1762306a36Sopenharmony_ci *
1862306a36Sopenharmony_ci *      - Redistributions in binary form must reproduce the above
1962306a36Sopenharmony_ci *        copyright notice, this list of conditions and the following
2062306a36Sopenharmony_ci *        disclaimer in the documentation and/or other materials
2162306a36Sopenharmony_ci *        provided with the distribution.
2262306a36Sopenharmony_ci *
2362306a36Sopenharmony_ci * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
2462306a36Sopenharmony_ci * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
2562306a36Sopenharmony_ci * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
2662306a36Sopenharmony_ci * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
2762306a36Sopenharmony_ci * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
2862306a36Sopenharmony_ci * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
2962306a36Sopenharmony_ci * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
3062306a36Sopenharmony_ci * SOFTWARE.
3162306a36Sopenharmony_ci */
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci#ifndef MLX5_USER_IOCTL_CMDS_H
3462306a36Sopenharmony_ci#define MLX5_USER_IOCTL_CMDS_H
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci#include <linux/types.h>
3762306a36Sopenharmony_ci#include <rdma/ib_user_ioctl_cmds.h>
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_cienum mlx5_ib_create_flow_action_attrs {
4062306a36Sopenharmony_ci	/* This attribute belong to the driver namespace */
4162306a36Sopenharmony_ci	MLX5_IB_ATTR_CREATE_FLOW_ACTION_FLAGS = (1U << UVERBS_ID_NS_SHIFT),
4262306a36Sopenharmony_ci};
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_cienum mlx5_ib_dm_methods {
4562306a36Sopenharmony_ci	MLX5_IB_METHOD_DM_MAP_OP_ADDR  = (1U << UVERBS_ID_NS_SHIFT),
4662306a36Sopenharmony_ci	MLX5_IB_METHOD_DM_QUERY,
4762306a36Sopenharmony_ci};
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_cienum mlx5_ib_dm_map_op_addr_attrs {
5062306a36Sopenharmony_ci	MLX5_IB_ATTR_DM_MAP_OP_ADDR_REQ_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
5162306a36Sopenharmony_ci	MLX5_IB_ATTR_DM_MAP_OP_ADDR_REQ_OP,
5262306a36Sopenharmony_ci	MLX5_IB_ATTR_DM_MAP_OP_ADDR_RESP_START_OFFSET,
5362306a36Sopenharmony_ci	MLX5_IB_ATTR_DM_MAP_OP_ADDR_RESP_PAGE_INDEX,
5462306a36Sopenharmony_ci};
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_cienum mlx5_ib_query_dm_attrs {
5762306a36Sopenharmony_ci	MLX5_IB_ATTR_QUERY_DM_REQ_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
5862306a36Sopenharmony_ci	MLX5_IB_ATTR_QUERY_DM_RESP_START_OFFSET,
5962306a36Sopenharmony_ci	MLX5_IB_ATTR_QUERY_DM_RESP_PAGE_INDEX,
6062306a36Sopenharmony_ci	MLX5_IB_ATTR_QUERY_DM_RESP_LENGTH,
6162306a36Sopenharmony_ci};
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_cienum mlx5_ib_alloc_dm_attrs {
6462306a36Sopenharmony_ci	MLX5_IB_ATTR_ALLOC_DM_RESP_START_OFFSET = (1U << UVERBS_ID_NS_SHIFT),
6562306a36Sopenharmony_ci	MLX5_IB_ATTR_ALLOC_DM_RESP_PAGE_INDEX,
6662306a36Sopenharmony_ci	MLX5_IB_ATTR_ALLOC_DM_REQ_TYPE,
6762306a36Sopenharmony_ci};
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_cienum mlx5_ib_devx_methods {
7062306a36Sopenharmony_ci	MLX5_IB_METHOD_DEVX_OTHER  = (1U << UVERBS_ID_NS_SHIFT),
7162306a36Sopenharmony_ci	MLX5_IB_METHOD_DEVX_QUERY_UAR,
7262306a36Sopenharmony_ci	MLX5_IB_METHOD_DEVX_QUERY_EQN,
7362306a36Sopenharmony_ci	MLX5_IB_METHOD_DEVX_SUBSCRIBE_EVENT,
7462306a36Sopenharmony_ci};
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_cienum  mlx5_ib_devx_other_attrs {
7762306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_OTHER_CMD_IN = (1U << UVERBS_ID_NS_SHIFT),
7862306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_OTHER_CMD_OUT,
7962306a36Sopenharmony_ci};
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_cienum mlx5_ib_devx_obj_create_attrs {
8262306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_OBJ_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
8362306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_IN,
8462306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_OUT,
8562306a36Sopenharmony_ci};
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_cienum  mlx5_ib_devx_query_uar_attrs {
8862306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_QUERY_UAR_USER_IDX = (1U << UVERBS_ID_NS_SHIFT),
8962306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_QUERY_UAR_DEV_IDX,
9062306a36Sopenharmony_ci};
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_cienum mlx5_ib_devx_obj_destroy_attrs {
9362306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
9462306a36Sopenharmony_ci};
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_cienum mlx5_ib_devx_obj_modify_attrs {
9762306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_OBJ_MODIFY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
9862306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_IN,
9962306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_OUT,
10062306a36Sopenharmony_ci};
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_cienum mlx5_ib_devx_obj_query_attrs {
10362306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_OBJ_QUERY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
10462306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_IN,
10562306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_OUT,
10662306a36Sopenharmony_ci};
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_cienum mlx5_ib_devx_obj_query_async_attrs {
10962306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
11062306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_CMD_IN,
11162306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_FD,
11262306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_WR_ID,
11362306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_OUT_LEN,
11462306a36Sopenharmony_ci};
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_cienum mlx5_ib_devx_subscribe_event_attrs {
11762306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_FD_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
11862306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_OBJ_HANDLE,
11962306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_TYPE_NUM_LIST,
12062306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_FD_NUM,
12162306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_SUBSCRIBE_EVENT_COOKIE,
12262306a36Sopenharmony_ci};
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_cienum  mlx5_ib_devx_query_eqn_attrs {
12562306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_QUERY_EQN_USER_VEC = (1U << UVERBS_ID_NS_SHIFT),
12662306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_QUERY_EQN_DEV_EQN,
12762306a36Sopenharmony_ci};
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_cienum mlx5_ib_devx_obj_methods {
13062306a36Sopenharmony_ci	MLX5_IB_METHOD_DEVX_OBJ_CREATE = (1U << UVERBS_ID_NS_SHIFT),
13162306a36Sopenharmony_ci	MLX5_IB_METHOD_DEVX_OBJ_DESTROY,
13262306a36Sopenharmony_ci	MLX5_IB_METHOD_DEVX_OBJ_MODIFY,
13362306a36Sopenharmony_ci	MLX5_IB_METHOD_DEVX_OBJ_QUERY,
13462306a36Sopenharmony_ci	MLX5_IB_METHOD_DEVX_OBJ_ASYNC_QUERY,
13562306a36Sopenharmony_ci};
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_cienum mlx5_ib_var_alloc_attrs {
13862306a36Sopenharmony_ci	MLX5_IB_ATTR_VAR_OBJ_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
13962306a36Sopenharmony_ci	MLX5_IB_ATTR_VAR_OBJ_ALLOC_MMAP_OFFSET,
14062306a36Sopenharmony_ci	MLX5_IB_ATTR_VAR_OBJ_ALLOC_MMAP_LENGTH,
14162306a36Sopenharmony_ci	MLX5_IB_ATTR_VAR_OBJ_ALLOC_PAGE_ID,
14262306a36Sopenharmony_ci};
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_cienum mlx5_ib_var_obj_destroy_attrs {
14562306a36Sopenharmony_ci	MLX5_IB_ATTR_VAR_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
14662306a36Sopenharmony_ci};
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_cienum mlx5_ib_var_obj_methods {
14962306a36Sopenharmony_ci	MLX5_IB_METHOD_VAR_OBJ_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
15062306a36Sopenharmony_ci	MLX5_IB_METHOD_VAR_OBJ_DESTROY,
15162306a36Sopenharmony_ci};
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_cienum mlx5_ib_uar_alloc_attrs {
15462306a36Sopenharmony_ci	MLX5_IB_ATTR_UAR_OBJ_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
15562306a36Sopenharmony_ci	MLX5_IB_ATTR_UAR_OBJ_ALLOC_TYPE,
15662306a36Sopenharmony_ci	MLX5_IB_ATTR_UAR_OBJ_ALLOC_MMAP_OFFSET,
15762306a36Sopenharmony_ci	MLX5_IB_ATTR_UAR_OBJ_ALLOC_MMAP_LENGTH,
15862306a36Sopenharmony_ci	MLX5_IB_ATTR_UAR_OBJ_ALLOC_PAGE_ID,
15962306a36Sopenharmony_ci};
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_cienum mlx5_ib_uar_obj_destroy_attrs {
16262306a36Sopenharmony_ci	MLX5_IB_ATTR_UAR_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
16362306a36Sopenharmony_ci};
16462306a36Sopenharmony_ci
16562306a36Sopenharmony_cienum mlx5_ib_uar_obj_methods {
16662306a36Sopenharmony_ci	MLX5_IB_METHOD_UAR_OBJ_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
16762306a36Sopenharmony_ci	MLX5_IB_METHOD_UAR_OBJ_DESTROY,
16862306a36Sopenharmony_ci};
16962306a36Sopenharmony_ci
17062306a36Sopenharmony_cienum mlx5_ib_devx_umem_reg_attrs {
17162306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_UMEM_REG_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
17262306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_UMEM_REG_ADDR,
17362306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_UMEM_REG_LEN,
17462306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_UMEM_REG_ACCESS,
17562306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_UMEM_REG_OUT_ID,
17662306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_UMEM_REG_PGSZ_BITMAP,
17762306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_UMEM_REG_DMABUF_FD,
17862306a36Sopenharmony_ci};
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_cienum mlx5_ib_devx_umem_dereg_attrs {
18162306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_UMEM_DEREG_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
18262306a36Sopenharmony_ci};
18362306a36Sopenharmony_ci
18462306a36Sopenharmony_cienum mlx5_ib_pp_obj_methods {
18562306a36Sopenharmony_ci	MLX5_IB_METHOD_PP_OBJ_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
18662306a36Sopenharmony_ci	MLX5_IB_METHOD_PP_OBJ_DESTROY,
18762306a36Sopenharmony_ci};
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_cienum mlx5_ib_pp_alloc_attrs {
19062306a36Sopenharmony_ci	MLX5_IB_ATTR_PP_OBJ_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
19162306a36Sopenharmony_ci	MLX5_IB_ATTR_PP_OBJ_ALLOC_CTX,
19262306a36Sopenharmony_ci	MLX5_IB_ATTR_PP_OBJ_ALLOC_FLAGS,
19362306a36Sopenharmony_ci	MLX5_IB_ATTR_PP_OBJ_ALLOC_INDEX,
19462306a36Sopenharmony_ci};
19562306a36Sopenharmony_ci
19662306a36Sopenharmony_cienum mlx5_ib_pp_obj_destroy_attrs {
19762306a36Sopenharmony_ci	MLX5_IB_ATTR_PP_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
19862306a36Sopenharmony_ci};
19962306a36Sopenharmony_ci
20062306a36Sopenharmony_cienum mlx5_ib_devx_umem_methods {
20162306a36Sopenharmony_ci	MLX5_IB_METHOD_DEVX_UMEM_REG = (1U << UVERBS_ID_NS_SHIFT),
20262306a36Sopenharmony_ci	MLX5_IB_METHOD_DEVX_UMEM_DEREG,
20362306a36Sopenharmony_ci};
20462306a36Sopenharmony_ci
20562306a36Sopenharmony_cienum mlx5_ib_devx_async_cmd_fd_alloc_attrs {
20662306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_ASYNC_CMD_FD_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
20762306a36Sopenharmony_ci};
20862306a36Sopenharmony_ci
20962306a36Sopenharmony_cienum mlx5_ib_devx_async_event_fd_alloc_attrs {
21062306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_ASYNC_EVENT_FD_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
21162306a36Sopenharmony_ci	MLX5_IB_ATTR_DEVX_ASYNC_EVENT_FD_ALLOC_FLAGS,
21262306a36Sopenharmony_ci};
21362306a36Sopenharmony_ci
21462306a36Sopenharmony_cienum mlx5_ib_devx_async_cmd_fd_methods {
21562306a36Sopenharmony_ci	MLX5_IB_METHOD_DEVX_ASYNC_CMD_FD_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
21662306a36Sopenharmony_ci};
21762306a36Sopenharmony_ci
21862306a36Sopenharmony_cienum mlx5_ib_devx_async_event_fd_methods {
21962306a36Sopenharmony_ci	MLX5_IB_METHOD_DEVX_ASYNC_EVENT_FD_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
22062306a36Sopenharmony_ci};
22162306a36Sopenharmony_ci
22262306a36Sopenharmony_cienum mlx5_ib_objects {
22362306a36Sopenharmony_ci	MLX5_IB_OBJECT_DEVX = (1U << UVERBS_ID_NS_SHIFT),
22462306a36Sopenharmony_ci	MLX5_IB_OBJECT_DEVX_OBJ,
22562306a36Sopenharmony_ci	MLX5_IB_OBJECT_DEVX_UMEM,
22662306a36Sopenharmony_ci	MLX5_IB_OBJECT_FLOW_MATCHER,
22762306a36Sopenharmony_ci	MLX5_IB_OBJECT_DEVX_ASYNC_CMD_FD,
22862306a36Sopenharmony_ci	MLX5_IB_OBJECT_DEVX_ASYNC_EVENT_FD,
22962306a36Sopenharmony_ci	MLX5_IB_OBJECT_VAR,
23062306a36Sopenharmony_ci	MLX5_IB_OBJECT_PP,
23162306a36Sopenharmony_ci	MLX5_IB_OBJECT_UAR,
23262306a36Sopenharmony_ci	MLX5_IB_OBJECT_STEERING_ANCHOR,
23362306a36Sopenharmony_ci};
23462306a36Sopenharmony_ci
23562306a36Sopenharmony_cienum mlx5_ib_flow_matcher_create_attrs {
23662306a36Sopenharmony_ci	MLX5_IB_ATTR_FLOW_MATCHER_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
23762306a36Sopenharmony_ci	MLX5_IB_ATTR_FLOW_MATCHER_MATCH_MASK,
23862306a36Sopenharmony_ci	MLX5_IB_ATTR_FLOW_MATCHER_FLOW_TYPE,
23962306a36Sopenharmony_ci	MLX5_IB_ATTR_FLOW_MATCHER_MATCH_CRITERIA,
24062306a36Sopenharmony_ci	MLX5_IB_ATTR_FLOW_MATCHER_FLOW_FLAGS,
24162306a36Sopenharmony_ci	MLX5_IB_ATTR_FLOW_MATCHER_FT_TYPE,
24262306a36Sopenharmony_ci};
24362306a36Sopenharmony_ci
24462306a36Sopenharmony_cienum mlx5_ib_flow_matcher_destroy_attrs {
24562306a36Sopenharmony_ci	MLX5_IB_ATTR_FLOW_MATCHER_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
24662306a36Sopenharmony_ci};
24762306a36Sopenharmony_ci
24862306a36Sopenharmony_cienum mlx5_ib_flow_matcher_methods {
24962306a36Sopenharmony_ci	MLX5_IB_METHOD_FLOW_MATCHER_CREATE = (1U << UVERBS_ID_NS_SHIFT),
25062306a36Sopenharmony_ci	MLX5_IB_METHOD_FLOW_MATCHER_DESTROY,
25162306a36Sopenharmony_ci};
25262306a36Sopenharmony_ci
25362306a36Sopenharmony_cienum mlx5_ib_flow_steering_anchor_create_attrs {
25462306a36Sopenharmony_ci	MLX5_IB_ATTR_STEERING_ANCHOR_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
25562306a36Sopenharmony_ci	MLX5_IB_ATTR_STEERING_ANCHOR_FT_TYPE,
25662306a36Sopenharmony_ci	MLX5_IB_ATTR_STEERING_ANCHOR_PRIORITY,
25762306a36Sopenharmony_ci	MLX5_IB_ATTR_STEERING_ANCHOR_FT_ID,
25862306a36Sopenharmony_ci};
25962306a36Sopenharmony_ci
26062306a36Sopenharmony_cienum mlx5_ib_flow_steering_anchor_destroy_attrs {
26162306a36Sopenharmony_ci	MLX5_IB_ATTR_STEERING_ANCHOR_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
26262306a36Sopenharmony_ci};
26362306a36Sopenharmony_ci
26462306a36Sopenharmony_cienum mlx5_ib_steering_anchor_methods {
26562306a36Sopenharmony_ci	MLX5_IB_METHOD_STEERING_ANCHOR_CREATE = (1U << UVERBS_ID_NS_SHIFT),
26662306a36Sopenharmony_ci	MLX5_IB_METHOD_STEERING_ANCHOR_DESTROY,
26762306a36Sopenharmony_ci};
26862306a36Sopenharmony_ci
26962306a36Sopenharmony_cienum mlx5_ib_device_query_context_attrs {
27062306a36Sopenharmony_ci	MLX5_IB_ATTR_QUERY_CONTEXT_RESP_UCTX = (1U << UVERBS_ID_NS_SHIFT),
27162306a36Sopenharmony_ci};
27262306a36Sopenharmony_ci
27362306a36Sopenharmony_ci#define MLX5_IB_DW_MATCH_PARAM 0xA0
27462306a36Sopenharmony_ci
27562306a36Sopenharmony_cistruct mlx5_ib_match_params {
27662306a36Sopenharmony_ci	__u32	match_params[MLX5_IB_DW_MATCH_PARAM];
27762306a36Sopenharmony_ci};
27862306a36Sopenharmony_ci
27962306a36Sopenharmony_cienum mlx5_ib_flow_type {
28062306a36Sopenharmony_ci	MLX5_IB_FLOW_TYPE_NORMAL,
28162306a36Sopenharmony_ci	MLX5_IB_FLOW_TYPE_SNIFFER,
28262306a36Sopenharmony_ci	MLX5_IB_FLOW_TYPE_ALL_DEFAULT,
28362306a36Sopenharmony_ci	MLX5_IB_FLOW_TYPE_MC_DEFAULT,
28462306a36Sopenharmony_ci};
28562306a36Sopenharmony_ci
28662306a36Sopenharmony_cienum mlx5_ib_create_flow_flags {
28762306a36Sopenharmony_ci	MLX5_IB_ATTR_CREATE_FLOW_FLAGS_DEFAULT_MISS = 1 << 0,
28862306a36Sopenharmony_ci	MLX5_IB_ATTR_CREATE_FLOW_FLAGS_DROP = 1 << 1,
28962306a36Sopenharmony_ci};
29062306a36Sopenharmony_ci
29162306a36Sopenharmony_cienum mlx5_ib_create_flow_attrs {
29262306a36Sopenharmony_ci	MLX5_IB_ATTR_CREATE_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
29362306a36Sopenharmony_ci	MLX5_IB_ATTR_CREATE_FLOW_MATCH_VALUE,
29462306a36Sopenharmony_ci	MLX5_IB_ATTR_CREATE_FLOW_DEST_QP,
29562306a36Sopenharmony_ci	MLX5_IB_ATTR_CREATE_FLOW_DEST_DEVX,
29662306a36Sopenharmony_ci	MLX5_IB_ATTR_CREATE_FLOW_MATCHER,
29762306a36Sopenharmony_ci	MLX5_IB_ATTR_CREATE_FLOW_ARR_FLOW_ACTIONS,
29862306a36Sopenharmony_ci	MLX5_IB_ATTR_CREATE_FLOW_TAG,
29962306a36Sopenharmony_ci	MLX5_IB_ATTR_CREATE_FLOW_ARR_COUNTERS_DEVX,
30062306a36Sopenharmony_ci	MLX5_IB_ATTR_CREATE_FLOW_ARR_COUNTERS_DEVX_OFFSET,
30162306a36Sopenharmony_ci	MLX5_IB_ATTR_CREATE_FLOW_FLAGS,
30262306a36Sopenharmony_ci};
30362306a36Sopenharmony_ci
30462306a36Sopenharmony_cienum mlx5_ib_destroy_flow_attrs {
30562306a36Sopenharmony_ci	MLX5_IB_ATTR_DESTROY_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
30662306a36Sopenharmony_ci};
30762306a36Sopenharmony_ci
30862306a36Sopenharmony_cienum mlx5_ib_flow_methods {
30962306a36Sopenharmony_ci	MLX5_IB_METHOD_CREATE_FLOW = (1U << UVERBS_ID_NS_SHIFT),
31062306a36Sopenharmony_ci	MLX5_IB_METHOD_DESTROY_FLOW,
31162306a36Sopenharmony_ci};
31262306a36Sopenharmony_ci
31362306a36Sopenharmony_cienum mlx5_ib_flow_action_methods {
31462306a36Sopenharmony_ci	MLX5_IB_METHOD_FLOW_ACTION_CREATE_MODIFY_HEADER = (1U << UVERBS_ID_NS_SHIFT),
31562306a36Sopenharmony_ci	MLX5_IB_METHOD_FLOW_ACTION_CREATE_PACKET_REFORMAT,
31662306a36Sopenharmony_ci};
31762306a36Sopenharmony_ci
31862306a36Sopenharmony_cienum mlx5_ib_create_flow_action_create_modify_header_attrs {
31962306a36Sopenharmony_ci	MLX5_IB_ATTR_CREATE_MODIFY_HEADER_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
32062306a36Sopenharmony_ci	MLX5_IB_ATTR_CREATE_MODIFY_HEADER_ACTIONS_PRM,
32162306a36Sopenharmony_ci	MLX5_IB_ATTR_CREATE_MODIFY_HEADER_FT_TYPE,
32262306a36Sopenharmony_ci};
32362306a36Sopenharmony_ci
32462306a36Sopenharmony_cienum mlx5_ib_create_flow_action_create_packet_reformat_attrs {
32562306a36Sopenharmony_ci	MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
32662306a36Sopenharmony_ci	MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_TYPE,
32762306a36Sopenharmony_ci	MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_FT_TYPE,
32862306a36Sopenharmony_ci	MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_DATA_BUF,
32962306a36Sopenharmony_ci};
33062306a36Sopenharmony_ci
33162306a36Sopenharmony_cienum mlx5_ib_query_pd_attrs {
33262306a36Sopenharmony_ci	MLX5_IB_ATTR_QUERY_PD_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
33362306a36Sopenharmony_ci	MLX5_IB_ATTR_QUERY_PD_RESP_PDN,
33462306a36Sopenharmony_ci};
33562306a36Sopenharmony_ci
33662306a36Sopenharmony_cienum mlx5_ib_pd_methods {
33762306a36Sopenharmony_ci	MLX5_IB_METHOD_PD_QUERY = (1U << UVERBS_ID_NS_SHIFT),
33862306a36Sopenharmony_ci
33962306a36Sopenharmony_ci};
34062306a36Sopenharmony_ci
34162306a36Sopenharmony_cienum mlx5_ib_device_methods {
34262306a36Sopenharmony_ci	MLX5_IB_METHOD_QUERY_PORT = (1U << UVERBS_ID_NS_SHIFT),
34362306a36Sopenharmony_ci};
34462306a36Sopenharmony_ci
34562306a36Sopenharmony_cienum mlx5_ib_query_port_attrs {
34662306a36Sopenharmony_ci	MLX5_IB_ATTR_QUERY_PORT_PORT_NUM = (1U << UVERBS_ID_NS_SHIFT),
34762306a36Sopenharmony_ci	MLX5_IB_ATTR_QUERY_PORT,
34862306a36Sopenharmony_ci};
34962306a36Sopenharmony_ci
35062306a36Sopenharmony_ci#endif
351