net/bnxt: add cache table type for TCAM lookup
[dpdk.git] / drivers / net / bnxt / tf_ulp / ulp_template_db.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2014-2020 Broadcom
3  * All rights reserved.
4  */
5
6 /*
7  * date: Mon Mar  9 02:37:53 2020
8  * version: 0.0
9  */
10
11 #ifndef ULP_TEMPLATE_DB_H_
12 #define ULP_TEMPLATE_DB_H_
13
14 #define BNXT_ULP_REGFILE_MAX_SZ 16
15 #define BNXT_ULP_MAX_NUM_DEVICES 4
16 #define BNXT_ULP_LOG2_MAX_NUM_DEV 2
17 #define BNXT_ULP_CACHE_TBL_MAX_SZ 4
18 #define BNXT_ULP_CLASS_SIG_TBL_MAX_SZ 256
19 #define BNXT_ULP_CLASS_MATCH_LIST_MAX_SZ 2
20 #define BNXT_ULP_CLASS_HID_LOW_PRIME 7919
21 #define BNXT_ULP_CLASS_HID_HIGH_PRIME 7919
22 #define BNXT_ULP_CLASS_HID_SHFTR 0
23 #define BNXT_ULP_CLASS_HID_SHFTL 23
24 #define BNXT_ULP_CLASS_HID_MASK 255
25 #define BNXT_ULP_ACT_SIG_TBL_MAX_SZ 256
26 #define BNXT_ULP_ACT_MATCH_LIST_MAX_SZ 2
27 #define BNXT_ULP_ACT_HID_LOW_PRIME 7919
28 #define BNXT_ULP_ACT_HID_HIGH_PRIME 7919
29 #define BNXT_ULP_ACT_HID_SHFTR 0
30 #define BNXT_ULP_ACT_HID_SHFTL 23
31 #define BNXT_ULP_ACT_HID_MASK 255
32 #define BNXT_ULP_CACHE_TBL_IDENT_MAX_NUM 2
33 #define BNXT_ULP_DEF_IDENT_INFO_TBL_MAX_SZ 1
34
35 enum bnxt_ulp_action_bit {
36         BNXT_ULP_ACTION_BIT_MARK             = 0x0000000000000001,
37         BNXT_ULP_ACTION_BIT_DROP             = 0x0000000000000002,
38         BNXT_ULP_ACTION_BIT_COUNT            = 0x0000000000000004,
39         BNXT_ULP_ACTION_BIT_RSS              = 0x0000000000000008,
40         BNXT_ULP_ACTION_BIT_METER            = 0x0000000000000010,
41         BNXT_ULP_ACTION_BIT_VNIC             = 0x0000000000000020,
42         BNXT_ULP_ACTION_BIT_VPORT            = 0x0000000000000040,
43         BNXT_ULP_ACTION_BIT_VXLAN_DECAP      = 0x0000000000000080,
44         BNXT_ULP_ACTION_BIT_NVGRE_DECAP      = 0x0000000000000100,
45         BNXT_ULP_ACTION_BIT_OF_POP_MPLS      = 0x0000000000000200,
46         BNXT_ULP_ACTION_BIT_OF_PUSH_MPLS     = 0x0000000000000400,
47         BNXT_ULP_ACTION_BIT_MAC_SWAP         = 0x0000000000000800,
48         BNXT_ULP_ACTION_BIT_SET_MAC_SRC      = 0x0000000000001000,
49         BNXT_ULP_ACTION_BIT_SET_MAC_DST      = 0x0000000000002000,
50         BNXT_ULP_ACTION_BIT_OF_POP_VLAN      = 0x0000000000004000,
51         BNXT_ULP_ACTION_BIT_OF_PUSH_VLAN     = 0x0000000000008000,
52         BNXT_ULP_ACTION_BIT_OF_SET_VLAN_PCP  = 0x0000000000010000,
53         BNXT_ULP_ACTION_BIT_OF_SET_VLAN_VID  = 0x0000000000020000,
54         BNXT_ULP_ACTION_BIT_SET_IPV4_SRC     = 0x0000000000040000,
55         BNXT_ULP_ACTION_BIT_SET_IPV4_DST     = 0x0000000000080000,
56         BNXT_ULP_ACTION_BIT_SET_IPV6_SRC     = 0x0000000000100000,
57         BNXT_ULP_ACTION_BIT_SET_IPV6_DST     = 0x0000000000200000,
58         BNXT_ULP_ACTION_BIT_DEC_TTL          = 0x0000000000400000,
59         BNXT_ULP_ACTION_BIT_SET_TP_SRC       = 0x0000000000800000,
60         BNXT_ULP_ACTION_BIT_SET_TP_DST       = 0x0000000001000000,
61         BNXT_ULP_ACTION_BIT_VXLAN_ENCAP      = 0x0000000002000000,
62         BNXT_ULP_ACTION_BIT_NVGRE_ENCAP      = 0x0000000004000000,
63         BNXT_ULP_ACTION_BIT_LAST             = 0x0000000008000000
64 };
65
66 enum bnxt_ulp_hdr_bit {
67         BNXT_ULP_HDR_BIT_SVIF                = 0x0000000000000001,
68         BNXT_ULP_HDR_BIT_O_ETH               = 0x0000000000000002,
69         BNXT_ULP_HDR_BIT_OO_VLAN             = 0x0000000000000004,
70         BNXT_ULP_HDR_BIT_OI_VLAN             = 0x0000000000000008,
71         BNXT_ULP_HDR_BIT_O_IPV4              = 0x0000000000000010,
72         BNXT_ULP_HDR_BIT_O_IPV6              = 0x0000000000000020,
73         BNXT_ULP_HDR_BIT_O_TCP               = 0x0000000000000040,
74         BNXT_ULP_HDR_BIT_O_UDP               = 0x0000000000000080,
75         BNXT_ULP_HDR_BIT_T_VXLAN             = 0x0000000000000100,
76         BNXT_ULP_HDR_BIT_T_GRE               = 0x0000000000000200,
77         BNXT_ULP_HDR_BIT_I_ETH               = 0x0000000000000400,
78         BNXT_ULP_HDR_BIT_IO_VLAN             = 0x0000000000000800,
79         BNXT_ULP_HDR_BIT_II_VLAN             = 0x0000000000001000,
80         BNXT_ULP_HDR_BIT_I_IPV4              = 0x0000000000002000,
81         BNXT_ULP_HDR_BIT_I_IPV6              = 0x0000000000004000,
82         BNXT_ULP_HDR_BIT_I_TCP               = 0x0000000000008000,
83         BNXT_ULP_HDR_BIT_I_UDP               = 0x0000000000010000,
84         BNXT_ULP_HDR_BIT_LAST                = 0x0000000000020000
85 };
86
87 enum bnxt_ulp_act_type {
88         BNXT_ULP_ACT_TYPE_NOT_SUPPORTED = 0,
89         BNXT_ULP_ACT_TYPE_SUPPORTED = 1,
90         BNXT_ULP_ACT_TYPE_END = 2,
91         BNXT_ULP_ACT_TYPE_LAST = 3
92 };
93
94 enum bnxt_ulp_byte_order {
95         BNXT_ULP_BYTE_ORDER_BE = 0,
96         BNXT_ULP_BYTE_ORDER_LE = 1,
97         BNXT_ULP_BYTE_ORDER_LAST = 2
98 };
99
100 enum bnxt_ulp_cache_tbl_id {
101         BNXT_ULP_CACHE_TBL_ID_L2_CNTXT_TCAM_INGRESS = 0,
102         BNXT_ULP_CACHE_TBL_ID_L2_CNTXT_TCAM_EGRESS = 1,
103         BNXT_ULP_CACHE_TBL_ID_PROFILE_TCAM_INGRESS = 2,
104         BNXT_ULP_CACHE_TBL_ID_PROFILE_TCAM_EGRESS = 3,
105         BNXT_ULP_CACHE_TBL_ID_LAST = 4
106 };
107
108 enum bnxt_ulp_chf_idx {
109         BNXT_ULP_CHF_IDX_MPLS_TAG_NUM = 0,
110         BNXT_ULP_CHF_IDX_O_VTAG_NUM = 1,
111         BNXT_ULP_CHF_IDX_O_VTAG_PRESENT = 2,
112         BNXT_ULP_CHF_IDX_O_TWO_VTAGS = 3,
113         BNXT_ULP_CHF_IDX_I_VTAG_NUM = 4,
114         BNXT_ULP_CHF_IDX_I_VTAG_PRESENT = 5,
115         BNXT_ULP_CHF_IDX_I_TWO_VTAGS = 6,
116         BNXT_ULP_CHF_IDX_INCOMING_IF = 7,
117         BNXT_ULP_CHF_IDX_DIRECTION = 8,
118         BNXT_ULP_CHF_IDX_SVIF = 9,
119         BNXT_ULP_CHF_IDX_O_L3 = 10,
120         BNXT_ULP_CHF_IDX_I_L3 = 11,
121         BNXT_ULP_CHF_IDX_O_L4 = 12,
122         BNXT_ULP_CHF_IDX_I_L4 = 13,
123         BNXT_ULP_CHF_IDX_LAST = 14
124 };
125
126 enum bnxt_ulp_def_regfile_index {
127         BNXT_ULP_DEF_REGFILE_INDEX_DEF_PROF_FUNC_ID = 0,
128         BNXT_ULP_DEF_REGFILE_INDEX_LAST = 1
129 };
130
131 enum bnxt_ulp_device_id {
132         BNXT_ULP_DEVICE_ID_WH_PLUS = 0,
133         BNXT_ULP_DEVICE_ID_THOR = 1,
134         BNXT_ULP_DEVICE_ID_STINGRAY = 2,
135         BNXT_ULP_DEVICE_ID_STINGRAY2 = 3,
136         BNXT_ULP_DEVICE_ID_LAST = 4
137 };
138
139 enum bnxt_ulp_direction {
140         BNXT_ULP_DIRECTION_INGRESS = 0,
141         BNXT_ULP_DIRECTION_EGRESS = 1,
142         BNXT_ULP_DIRECTION_LAST = 2
143 };
144
145 enum bnxt_ulp_hdr_type {
146         BNXT_ULP_HDR_TYPE_NOT_SUPPORTED = 0,
147         BNXT_ULP_HDR_TYPE_SUPPORTED = 1,
148         BNXT_ULP_HDR_TYPE_END = 2,
149         BNXT_ULP_HDR_TYPE_LAST = 3
150 };
151
152 enum bnxt_ulp_mark_enable {
153         BNXT_ULP_MARK_ENABLE_NO = 0,
154         BNXT_ULP_MARK_ENABLE_YES = 1,
155         BNXT_ULP_MARK_ENABLE_LAST = 2
156 };
157
158 enum bnxt_ulp_mask_opc {
159         BNXT_ULP_MASK_OPC_SET_TO_CONSTANT = 0,
160         BNXT_ULP_MASK_OPC_SET_TO_HDR_FIELD = 1,
161         BNXT_ULP_MASK_OPC_SET_TO_REGFILE = 2,
162         BNXT_ULP_MASK_OPC_SET_TO_DEF_REGFILE = 3,
163         BNXT_ULP_MASK_OPC_ADD_PAD = 4,
164         BNXT_ULP_MASK_OPC_LAST = 5
165 };
166
167 enum bnxt_ulp_match_type {
168         BNXT_ULP_MATCH_TYPE_EM = 0,
169         BNXT_ULP_MATCH_TYPE_WC = 1,
170         BNXT_ULP_MATCH_TYPE_LAST = 2
171 };
172
173 enum bnxt_ulp_priority {
174         BNXT_ULP_PRIORITY_LEVEL_0 = 0,
175         BNXT_ULP_PRIORITY_LEVEL_1 = 1,
176         BNXT_ULP_PRIORITY_LEVEL_2 = 2,
177         BNXT_ULP_PRIORITY_LEVEL_3 = 3,
178         BNXT_ULP_PRIORITY_LEVEL_4 = 4,
179         BNXT_ULP_PRIORITY_LEVEL_5 = 5,
180         BNXT_ULP_PRIORITY_LEVEL_6 = 6,
181         BNXT_ULP_PRIORITY_LEVEL_7 = 7,
182         BNXT_ULP_PRIORITY_NOT_USED = 8,
183         BNXT_ULP_PRIORITY_LAST = 9
184 };
185
186 enum bnxt_ulp_regfile_index {
187         BNXT_ULP_REGFILE_INDEX_CLASS_TID = 0,
188         BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 = 1,
189         BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_1 = 2,
190         BNXT_ULP_REGFILE_INDEX_PROF_FUNC_ID_0 = 3,
191         BNXT_ULP_REGFILE_INDEX_PROF_FUNC_ID_1 = 4,
192         BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 = 5,
193         BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_1 = 6,
194         BNXT_ULP_REGFILE_INDEX_WC_PROFILE_ID_0 = 7,
195         BNXT_ULP_REGFILE_INDEX_WC_PROFILE_ID_1 = 8,
196         BNXT_ULP_REGFILE_INDEX_ACTION_PTR_MAIN = 9,
197         BNXT_ULP_REGFILE_INDEX_ACTION_PTR_0 = 10,
198         BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 = 11,
199         BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_1 = 12,
200         BNXT_ULP_REGFILE_INDEX_CRITICAL_RESOURCE = 13,
201         BNXT_ULP_REGFILE_INDEX_CACHE_ENTRY_PTR = 14,
202         BNXT_ULP_REGFILE_INDEX_NOT_USED = 15,
203         BNXT_ULP_REGFILE_INDEX_LAST = 16
204 };
205
206 enum bnxt_ulp_resource_func {
207         BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE = 0,
208         BNXT_ULP_RESOURCE_FUNC_EM_TABLE = 1,
209         BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE = 2,
210         BNXT_ULP_RESOURCE_FUNC_CACHE_TABLE = 3,
211         BNXT_ULP_RESOURCE_FUNC_IDENTIFIER = 4,
212         BNXT_ULP_RESOURCE_FUNC_HW_FID = 5,
213         BNXT_ULP_RESOURCE_FUNC_LAST = 6
214 };
215
216 enum bnxt_ulp_result_opc {
217         BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT = 0,
218         BNXT_ULP_RESULT_OPC_SET_TO_ACT_PROP = 1,
219         BNXT_ULP_RESULT_OPC_SET_TO_ENCAP_ACT_PROP_SZ = 2,
220         BNXT_ULP_RESULT_OPC_SET_TO_REGFILE = 3,
221         BNXT_ULP_RESULT_OPC_SET_TO_DEF_REGFILE = 4,
222         BNXT_ULP_RESULT_OPC_LAST = 5
223 };
224
225 enum bnxt_ulp_search_before_alloc {
226         BNXT_ULP_SEARCH_BEFORE_ALLOC_NO = 0,
227         BNXT_ULP_SEARCH_BEFORE_ALLOC_YES = 1,
228         BNXT_ULP_SEARCH_BEFORE_ALLOC_LAST = 2
229 };
230
231 enum bnxt_ulp_spec_opc {
232         BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT = 0,
233         BNXT_ULP_SPEC_OPC_SET_TO_HDR_FIELD = 1,
234         BNXT_ULP_SPEC_OPC_SET_TO_REGFILE = 2,
235         BNXT_ULP_SPEC_OPC_SET_TO_DEF_REGFILE = 3,
236         BNXT_ULP_SPEC_OPC_ADD_PAD = 4,
237         BNXT_ULP_SPEC_OPC_LAST = 5
238 };
239
240 enum bnxt_ulp_encap_vtag_encoding {
241         BNXT_ULP_ENCAP_VTAG_ENCODING_DTAG_ECAP_PRI = 4,
242         BNXT_ULP_ENCAP_VTAG_ENCODING_DTAG_REMAP_DIFFSERV = 5,
243         BNXT_ULP_ENCAP_VTAG_ENCODING_NO_TAG_ECAP_PRI = 6,
244         BNXT_ULP_ENCAP_VTAG_ENCODING_NO_TAG_REMAP_DIFFSERV = 7,
245         BNXT_ULP_ENCAP_VTAG_ENCODING_NO_TAG_REMAP_PRI_0 = 8,
246         BNXT_ULP_ENCAP_VTAG_ENCODING_NO_TAG_REMAP_PRI_1 = 9,
247         BNXT_ULP_ENCAP_VTAG_ENCODING_NO_TAG_REMAP_PRI_2 = 10,
248         BNXT_ULP_ENCAP_VTAG_ENCODING_NO_TAG_REMAP_PRI_3 = 11,
249         BNXT_ULP_ENCAP_VTAG_ENCODING_NO_TAG_REMAP_PRI_4 = 12,
250         BNXT_ULP_ENCAP_VTAG_ENCODING_NO_TAG_REMAP_PRI_5 = 13,
251         BNXT_ULP_ENCAP_VTAG_ENCODING_NO_TAG_REMAP_PRI_6 = 14,
252         BNXT_ULP_ENCAP_VTAG_ENCODING_NO_TAG_REMAP_PRI_7 = 15,
253         BNXT_ULP_ENCAP_VTAG_ENCODING_NOP = 0,
254         BNXT_ULP_ENCAP_VTAG_ENCODING_STAG_ECAP_PRI = 1,
255         BNXT_ULP_ENCAP_VTAG_ENCODING_STAG_IVLAN_PRI = 2,
256         BNXT_ULP_ENCAP_VTAG_ENCODING_STAG_REMAP_DIFFSERV = 3
257 };
258
259 enum bnxt_ulp_fdb_resource_flags {
260         BNXT_ULP_FDB_RESOURCE_FLAGS_DIR_EGR = 0x01,
261         BNXT_ULP_FDB_RESOURCE_FLAGS_DIR_INGR = 0x00
262 };
263
264 enum bnxt_ulp_fdb_type {
265         BNXT_ULP_FDB_TYPE_DEFAULT = 1,
266         BNXT_ULP_FDB_TYPE_REGULAR = 0
267 };
268
269 enum bnxt_ulp_flow_dir_bitmask {
270         BNXT_ULP_FLOW_DIR_BITMASK_EGR = 0x8000000000000000,
271         BNXT_ULP_FLOW_DIR_BITMASK_ING = 0x0000000000000000
272 };
273
274 enum bnxt_ulp_match_type_bitmask {
275         BNXT_ULP_MATCH_TYPE_BITMASK_EM = 0x0000000000000000,
276         BNXT_ULP_MATCH_TYPE_BITMASK_WM = 0x0000000000000001
277 };
278
279 enum bnxt_ulp_sym {
280         BNXT_ULP_SYM_BIG_ENDIAN = 0,
281         BNXT_ULP_SYM_DECAP_FUNC_NONE = 0,
282         BNXT_ULP_SYM_DECAP_FUNC_THRU_L2 = 11,
283         BNXT_ULP_SYM_DECAP_FUNC_THRU_L3 = 12,
284         BNXT_ULP_SYM_DECAP_FUNC_THRU_L4 = 13,
285         BNXT_ULP_SYM_DECAP_FUNC_THRU_TL2 = 3,
286         BNXT_ULP_SYM_DECAP_FUNC_THRU_TL3 = 8,
287         BNXT_ULP_SYM_DECAP_FUNC_THRU_TL4 = 9,
288         BNXT_ULP_SYM_DECAP_FUNC_THRU_TUN = 10,
289         BNXT_ULP_SYM_ECV_CUSTOM_EN_NO = 0,
290         BNXT_ULP_SYM_ECV_CUSTOM_EN_YES = 1,
291         BNXT_ULP_SYM_ECV_L2_EN_NO = 0,
292         BNXT_ULP_SYM_ECV_L2_EN_YES = 1,
293         BNXT_ULP_SYM_ECV_L3_TYPE_IPV4 = 4,
294         BNXT_ULP_SYM_ECV_L3_TYPE_IPV6 = 5,
295         BNXT_ULP_SYM_ECV_L3_TYPE_MPLS_8847 = 6,
296         BNXT_ULP_SYM_ECV_L3_TYPE_MPLS_8848 = 7,
297         BNXT_ULP_SYM_ECV_L3_TYPE_NONE = 0,
298         BNXT_ULP_SYM_ECV_L4_TYPE_NONE = 0,
299         BNXT_ULP_SYM_ECV_L4_TYPE_UDP = 4,
300         BNXT_ULP_SYM_ECV_L4_TYPE_UDP_CSUM = 5,
301         BNXT_ULP_SYM_ECV_L4_TYPE_UDP_ENTROPY = 6,
302         BNXT_ULP_SYM_ECV_L4_TYPE_UDP_ENTROPY_CSUM = 7,
303         BNXT_ULP_SYM_ECV_TUN_TYPE_GENERIC = 1,
304         BNXT_ULP_SYM_ECV_TUN_TYPE_GRE = 5,
305         BNXT_ULP_SYM_ECV_TUN_TYPE_NGE = 3,
306         BNXT_ULP_SYM_ECV_TUN_TYPE_NONE = 0,
307         BNXT_ULP_SYM_ECV_TUN_TYPE_NVGRE = 4,
308         BNXT_ULP_SYM_ECV_TUN_TYPE_VXLAN = 2,
309         BNXT_ULP_SYM_ECV_VALID_NO = 0,
310         BNXT_ULP_SYM_ECV_VALID_YES = 1,
311         BNXT_ULP_SYM_IP_PROTO_UDP = 17,
312         BNXT_ULP_SYM_L2_HDR_TYPE_DIX = 0,
313         BNXT_ULP_SYM_L2_HDR_TYPE_LLC = 2,
314         BNXT_ULP_SYM_L2_HDR_TYPE_LLC_SNAP = 1,
315         BNXT_ULP_SYM_L3_HDR_TYPE_ARP = 2,
316         BNXT_ULP_SYM_L3_HDR_TYPE_EAPOL = 4,
317         BNXT_ULP_SYM_L3_HDR_TYPE_FCOE = 6,
318         BNXT_ULP_SYM_L3_HDR_TYPE_IPV4 = 0,
319         BNXT_ULP_SYM_L3_HDR_TYPE_IPV6 = 1,
320         BNXT_ULP_SYM_L3_HDR_TYPE_PTP = 3,
321         BNXT_ULP_SYM_L3_HDR_TYPE_ROCE = 5,
322         BNXT_ULP_SYM_L3_HDR_TYPE_UPAR1 = 7,
323         BNXT_ULP_SYM_L3_HDR_TYPE_UPAR2 = 8,
324         BNXT_ULP_SYM_L4_HDR_TYPE_BTH_V1 = 5,
325         BNXT_ULP_SYM_L4_HDR_TYPE_ICMP = 2,
326         BNXT_ULP_SYM_L4_HDR_TYPE_TCP = 0,
327         BNXT_ULP_SYM_L4_HDR_TYPE_UDP = 1,
328         BNXT_ULP_SYM_L4_HDR_TYPE_UPAR1 = 3,
329         BNXT_ULP_SYM_L4_HDR_TYPE_UPAR2 = 4,
330         BNXT_ULP_SYM_LITTLE_ENDIAN = 1,
331         BNXT_ULP_SYM_MATCH_TYPE_EM = 0,
332         BNXT_ULP_SYM_MATCH_TYPE_WM = 1,
333         BNXT_ULP_SYM_NO = 0,
334         BNXT_ULP_SYM_PKT_TYPE_L2 = 0,
335         BNXT_ULP_SYM_POP_VLAN_NO = 0,
336         BNXT_ULP_SYM_POP_VLAN_YES = 1,
337         BNXT_ULP_SYM_STINGRAY2_LOOPBACK_PORT = 3,
338         BNXT_ULP_SYM_STINGRAY_LOOPBACK_PORT = 3,
339         BNXT_ULP_SYM_THOR_LOOPBACK_PORT = 3,
340         BNXT_ULP_SYM_TL2_HDR_TYPE_DIX = 0,
341         BNXT_ULP_SYM_TL3_HDR_TYPE_IPV4 = 0,
342         BNXT_ULP_SYM_TL3_HDR_TYPE_IPV6 = 1,
343         BNXT_ULP_SYM_TL4_HDR_TYPE_TCP = 0,
344         BNXT_ULP_SYM_TL4_HDR_TYPE_UDP = 1,
345         BNXT_ULP_SYM_TUN_HDR_TYPE_GENEVE = 1,
346         BNXT_ULP_SYM_TUN_HDR_TYPE_GRE = 3,
347         BNXT_ULP_SYM_TUN_HDR_TYPE_IPV4 = 4,
348         BNXT_ULP_SYM_TUN_HDR_TYPE_IPV6 = 5,
349         BNXT_ULP_SYM_TUN_HDR_TYPE_MPLS = 7,
350         BNXT_ULP_SYM_TUN_HDR_TYPE_NONE = 15,
351         BNXT_ULP_SYM_TUN_HDR_TYPE_NVGRE = 2,
352         BNXT_ULP_SYM_TUN_HDR_TYPE_PPPOE = 6,
353         BNXT_ULP_SYM_TUN_HDR_TYPE_UPAR1 = 8,
354         BNXT_ULP_SYM_TUN_HDR_TYPE_UPAR2 = 9,
355         BNXT_ULP_SYM_TUN_HDR_TYPE_VXLAN = 0,
356         BNXT_ULP_SYM_WH_PLUS_LOOPBACK_PORT = 3,
357         BNXT_ULP_SYM_YES = 1
358 };
359
360 enum bnxt_ulp_act_prop_sz {
361         BNXT_ULP_ACT_PROP_SZ_ENCAP_TUN_SZ = 4,
362         BNXT_ULP_ACT_PROP_SZ_ENCAP_IP_SZ = 4,
363         BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG_SZ = 4,
364         BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG_TYPE = 4,
365         BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG_NUM = 4,
366         BNXT_ULP_ACT_PROP_SZ_ENCAP_L3_TYPE = 4,
367         BNXT_ULP_ACT_PROP_SZ_MPLS_POP_NUM = 4,
368         BNXT_ULP_ACT_PROP_SZ_MPLS_PUSH_NUM = 4,
369         BNXT_ULP_ACT_PROP_SZ_PORT_ID = 4,
370         BNXT_ULP_ACT_PROP_SZ_VNIC = 4,
371         BNXT_ULP_ACT_PROP_SZ_VPORT = 4,
372         BNXT_ULP_ACT_PROP_SZ_MARK = 4,
373         BNXT_ULP_ACT_PROP_SZ_COUNT = 4,
374         BNXT_ULP_ACT_PROP_SZ_METER = 4,
375         BNXT_ULP_ACT_PROP_SZ_SET_MAC_SRC = 8,
376         BNXT_ULP_ACT_PROP_SZ_SET_MAC_DST = 8,
377         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_VLAN = 4,
378         BNXT_ULP_ACT_PROP_SZ_OF_SET_VLAN_PCP = 4,
379         BNXT_ULP_ACT_PROP_SZ_OF_SET_VLAN_VID = 4,
380         BNXT_ULP_ACT_PROP_SZ_SET_IPV4_SRC = 4,
381         BNXT_ULP_ACT_PROP_SZ_SET_IPV4_DST = 4,
382         BNXT_ULP_ACT_PROP_SZ_SET_IPV6_SRC = 16,
383         BNXT_ULP_ACT_PROP_SZ_SET_IPV6_DST = 16,
384         BNXT_ULP_ACT_PROP_SZ_SET_TP_SRC = 4,
385         BNXT_ULP_ACT_PROP_SZ_SET_TP_DST = 4,
386         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_0 = 4,
387         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_1 = 4,
388         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_2 = 4,
389         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_3 = 4,
390         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_4 = 4,
391         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_5 = 4,
392         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_6 = 4,
393         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_7 = 4,
394         BNXT_ULP_ACT_PROP_SZ_ENCAP_L2_DMAC = 6,
395         BNXT_ULP_ACT_PROP_SZ_ENCAP_L2_SMAC = 6,
396         BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG = 8,
397         BNXT_ULP_ACT_PROP_SZ_ENCAP_IP = 32,
398         BNXT_ULP_ACT_PROP_SZ_ENCAP_IP_SRC = 16,
399         BNXT_ULP_ACT_PROP_SZ_ENCAP_UDP = 4,
400         BNXT_ULP_ACT_PROP_SZ_ENCAP_TUN = 32,
401         BNXT_ULP_ACT_PROP_SZ_LAST = 4
402 };
403
404 enum bnxt_ulp_act_prop_idx {
405         BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ = 0,
406         BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ = 4,
407         BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ = 8,
408         BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE = 12,
409         BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_NUM = 16,
410         BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE = 20,
411         BNXT_ULP_ACT_PROP_IDX_MPLS_POP_NUM = 24,
412         BNXT_ULP_ACT_PROP_IDX_MPLS_PUSH_NUM = 28,
413         BNXT_ULP_ACT_PROP_IDX_PORT_ID = 32,
414         BNXT_ULP_ACT_PROP_IDX_VNIC = 36,
415         BNXT_ULP_ACT_PROP_IDX_VPORT = 40,
416         BNXT_ULP_ACT_PROP_IDX_MARK = 44,
417         BNXT_ULP_ACT_PROP_IDX_COUNT = 48,
418         BNXT_ULP_ACT_PROP_IDX_METER = 52,
419         BNXT_ULP_ACT_PROP_IDX_SET_MAC_SRC = 56,
420         BNXT_ULP_ACT_PROP_IDX_SET_MAC_DST = 64,
421         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_VLAN = 72,
422         BNXT_ULP_ACT_PROP_IDX_OF_SET_VLAN_PCP = 76,
423         BNXT_ULP_ACT_PROP_IDX_OF_SET_VLAN_VID = 80,
424         BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC = 84,
425         BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST = 88,
426         BNXT_ULP_ACT_PROP_IDX_SET_IPV6_SRC = 92,
427         BNXT_ULP_ACT_PROP_IDX_SET_IPV6_DST = 108,
428         BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC = 124,
429         BNXT_ULP_ACT_PROP_IDX_SET_TP_DST = 128,
430         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_0 = 132,
431         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_1 = 136,
432         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_2 = 140,
433         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_3 = 144,
434         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_4 = 148,
435         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_5 = 152,
436         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_6 = 156,
437         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_7 = 160,
438         BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC = 164,
439         BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC = 170,
440         BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG = 176,
441         BNXT_ULP_ACT_PROP_IDX_ENCAP_IP = 184,
442         BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC = 216,
443         BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP = 232,
444         BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN = 236,
445         BNXT_ULP_ACT_PROP_IDX_LAST = 268
446 };
447 enum bnxt_ulp_class_hid {
448         BNXT_ULP_CLASS_HID_0092 = 0x0092
449 };
450
451 enum bnxt_ulp_act_hid {
452         BNXT_ULP_ACT_HID_0029 = 0x0029
453 };
454
455 #endif /* _ULP_TEMPLATE_DB_H_ */