Commit | Line | Data |
---|---|---|
c6475a0b AY |
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 | ||
fd44e385 | 36 | #include <linux/types.h> |
c6475a0b AY |
37 | #include <rdma/ib_user_ioctl_cmds.h> |
38 | ||
39 | enum 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 | ||
24da0016 AL |
44 | enum mlx5_ib_alloc_dm_attrs { |
45 | MLX5_IB_ATTR_ALLOC_DM_RESP_START_OFFSET = (1U << UVERBS_ID_NS_SHIFT), | |
46 | MLX5_IB_ATTR_ALLOC_DM_RESP_PAGE_INDEX, | |
47 | }; | |
c6475a0b | 48 | |
8aa8c95c YH |
49 | enum mlx5_ib_devx_methods { |
50 | MLX5_IB_METHOD_DEVX_OTHER = (1U << UVERBS_ID_NS_SHIFT), | |
7c043e90 | 51 | MLX5_IB_METHOD_DEVX_QUERY_UAR, |
f6fe01b7 | 52 | MLX5_IB_METHOD_DEVX_QUERY_EQN, |
8aa8c95c YH |
53 | }; |
54 | ||
55 | enum mlx5_ib_devx_other_attrs { | |
56 | MLX5_IB_ATTR_DEVX_OTHER_CMD_IN = (1U << UVERBS_ID_NS_SHIFT), | |
57 | MLX5_IB_ATTR_DEVX_OTHER_CMD_OUT, | |
58 | }; | |
59 | ||
7efce369 YH |
60 | enum mlx5_ib_devx_obj_create_attrs { |
61 | MLX5_IB_ATTR_DEVX_OBJ_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | |
62 | MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_IN, | |
63 | MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_OUT, | |
64 | }; | |
65 | ||
7c043e90 YH |
66 | enum mlx5_ib_devx_query_uar_attrs { |
67 | MLX5_IB_ATTR_DEVX_QUERY_UAR_USER_IDX = (1U << UVERBS_ID_NS_SHIFT), | |
68 | MLX5_IB_ATTR_DEVX_QUERY_UAR_DEV_IDX, | |
69 | }; | |
70 | ||
7efce369 YH |
71 | enum mlx5_ib_devx_obj_destroy_attrs { |
72 | MLX5_IB_ATTR_DEVX_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | |
73 | }; | |
74 | ||
e662e14d YH |
75 | enum mlx5_ib_devx_obj_modify_attrs { |
76 | MLX5_IB_ATTR_DEVX_OBJ_MODIFY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | |
77 | MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_IN, | |
78 | MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_OUT, | |
79 | }; | |
80 | ||
81 | enum mlx5_ib_devx_obj_query_attrs { | |
82 | MLX5_IB_ATTR_DEVX_OBJ_QUERY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | |
83 | MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_IN, | |
84 | MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_OUT, | |
85 | }; | |
86 | ||
f6fe01b7 YH |
87 | enum mlx5_ib_devx_query_eqn_attrs { |
88 | MLX5_IB_ATTR_DEVX_QUERY_EQN_USER_VEC = (1U << UVERBS_ID_NS_SHIFT), | |
89 | MLX5_IB_ATTR_DEVX_QUERY_EQN_DEV_EQN, | |
90 | }; | |
91 | ||
7efce369 YH |
92 | enum mlx5_ib_devx_obj_methods { |
93 | MLX5_IB_METHOD_DEVX_OBJ_CREATE = (1U << UVERBS_ID_NS_SHIFT), | |
94 | MLX5_IB_METHOD_DEVX_OBJ_DESTROY, | |
e662e14d YH |
95 | MLX5_IB_METHOD_DEVX_OBJ_MODIFY, |
96 | MLX5_IB_METHOD_DEVX_OBJ_QUERY, | |
7efce369 YH |
97 | }; |
98 | ||
aeae9457 YH |
99 | enum mlx5_ib_devx_umem_reg_attrs { |
100 | MLX5_IB_ATTR_DEVX_UMEM_REG_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | |
101 | MLX5_IB_ATTR_DEVX_UMEM_REG_ADDR, | |
102 | MLX5_IB_ATTR_DEVX_UMEM_REG_LEN, | |
103 | MLX5_IB_ATTR_DEVX_UMEM_REG_ACCESS, | |
104 | MLX5_IB_ATTR_DEVX_UMEM_REG_OUT_ID, | |
105 | }; | |
106 | ||
107 | enum mlx5_ib_devx_umem_dereg_attrs { | |
108 | MLX5_IB_ATTR_DEVX_UMEM_DEREG_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | |
109 | }; | |
110 | ||
111 | enum mlx5_ib_devx_umem_methods { | |
112 | MLX5_IB_METHOD_DEVX_UMEM_REG = (1U << UVERBS_ID_NS_SHIFT), | |
113 | MLX5_IB_METHOD_DEVX_UMEM_DEREG, | |
114 | }; | |
115 | ||
fd44e385 | 116 | enum mlx5_ib_objects { |
8aa8c95c | 117 | MLX5_IB_OBJECT_DEVX = (1U << UVERBS_ID_NS_SHIFT), |
7efce369 | 118 | MLX5_IB_OBJECT_DEVX_OBJ, |
aeae9457 | 119 | MLX5_IB_OBJECT_DEVX_UMEM, |
fd44e385 YH |
120 | MLX5_IB_OBJECT_FLOW_MATCHER, |
121 | }; | |
122 | ||
123 | enum mlx5_ib_flow_matcher_create_attrs { | |
124 | MLX5_IB_ATTR_FLOW_MATCHER_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | |
125 | MLX5_IB_ATTR_FLOW_MATCHER_MATCH_MASK, | |
126 | MLX5_IB_ATTR_FLOW_MATCHER_FLOW_TYPE, | |
127 | MLX5_IB_ATTR_FLOW_MATCHER_MATCH_CRITERIA, | |
128 | }; | |
129 | ||
130 | enum mlx5_ib_flow_matcher_destroy_attrs { | |
131 | MLX5_IB_ATTR_FLOW_MATCHER_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | |
132 | }; | |
133 | ||
134 | enum mlx5_ib_flow_matcher_methods { | |
135 | MLX5_IB_METHOD_FLOW_MATCHER_CREATE = (1U << UVERBS_ID_NS_SHIFT), | |
136 | MLX5_IB_METHOD_FLOW_MATCHER_DESTROY, | |
137 | }; | |
138 | ||
139 | #define MLX5_IB_DW_MATCH_PARAM 0x80 | |
140 | ||
141 | struct mlx5_ib_match_params { | |
142 | __u32 match_params[MLX5_IB_DW_MATCH_PARAM]; | |
143 | }; | |
144 | ||
145 | enum mlx5_ib_flow_type { | |
146 | MLX5_IB_FLOW_TYPE_NORMAL, | |
147 | MLX5_IB_FLOW_TYPE_SNIFFER, | |
148 | MLX5_IB_FLOW_TYPE_ALL_DEFAULT, | |
149 | MLX5_IB_FLOW_TYPE_MC_DEFAULT, | |
8aa8c95c YH |
150 | }; |
151 | ||
32269441 YH |
152 | enum mlx5_ib_create_flow_attrs { |
153 | MLX5_IB_ATTR_CREATE_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | |
154 | MLX5_IB_ATTR_CREATE_FLOW_MATCH_VALUE, | |
155 | MLX5_IB_ATTR_CREATE_FLOW_DEST_QP, | |
156 | MLX5_IB_ATTR_CREATE_FLOW_DEST_DEVX, | |
157 | MLX5_IB_ATTR_CREATE_FLOW_MATCHER, | |
158 | }; | |
159 | ||
160 | enum mlx5_ib_destoy_flow_attrs { | |
161 | MLX5_IB_ATTR_DESTROY_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | |
162 | }; | |
163 | ||
164 | enum mlx5_ib_flow_methods { | |
165 | MLX5_IB_METHOD_CREATE_FLOW = (1U << UVERBS_ID_NS_SHIFT), | |
166 | MLX5_IB_METHOD_DESTROY_FLOW, | |
167 | }; | |
168 | ||
b4749bf2 MB |
169 | enum mlx5_ib_flow_action_methods { |
170 | MLX5_IB_METHOD_FLOW_ACTION_CREATE_MODIFY_HEADER = (1U << UVERBS_ID_NS_SHIFT), | |
08aeb97c | 171 | MLX5_IB_METHOD_FLOW_ACTION_CREATE_PACKET_REFORMAT, |
b4749bf2 MB |
172 | }; |
173 | ||
174 | enum mlx5_ib_create_flow_action_create_modify_header_attrs { | |
175 | MLX5_IB_ATTR_CREATE_MODIFY_HEADER_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | |
176 | MLX5_IB_ATTR_CREATE_MODIFY_HEADER_ACTIONS_PRM, | |
177 | MLX5_IB_ATTR_CREATE_MODIFY_HEADER_FT_TYPE, | |
178 | }; | |
179 | ||
08aeb97c MB |
180 | enum mlx5_ib_create_flow_action_create_packet_reformat_attrs { |
181 | MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | |
182 | MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_TYPE, | |
183 | MLX5_IB_ATTR_CREATE_PACKET_REFORMAT_FT_TYPE, | |
184 | }; | |
185 | ||
24da0016 | 186 | #endif |