733836a65b403a0161948b66145ffd674224c8eb
[dpdk.git] / drivers / net / bnxt / tf_ulp / ulp_template_db.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2014-2019 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_MAX_NUM_DEVICES 4
15
16 enum bnxt_ulp_action_bit {
17         BNXT_ULP_ACTION_BIT_MARK             = 0x0000000000000001,
18         BNXT_ULP_ACTION_BIT_DROP             = 0x0000000000000002,
19         BNXT_ULP_ACTION_BIT_COUNT            = 0x0000000000000004,
20         BNXT_ULP_ACTION_BIT_RSS              = 0x0000000000000008,
21         BNXT_ULP_ACTION_BIT_METER            = 0x0000000000000010,
22         BNXT_ULP_ACTION_BIT_VNIC             = 0x0000000000000020,
23         BNXT_ULP_ACTION_BIT_VPORT            = 0x0000000000000040,
24         BNXT_ULP_ACTION_BIT_VXLAN_DECAP      = 0x0000000000000080,
25         BNXT_ULP_ACTION_BIT_NVGRE_DECAP      = 0x0000000000000100,
26         BNXT_ULP_ACTION_BIT_OF_POP_MPLS      = 0x0000000000000200,
27         BNXT_ULP_ACTION_BIT_OF_PUSH_MPLS     = 0x0000000000000400,
28         BNXT_ULP_ACTION_BIT_MAC_SWAP         = 0x0000000000000800,
29         BNXT_ULP_ACTION_BIT_SET_MAC_SRC      = 0x0000000000001000,
30         BNXT_ULP_ACTION_BIT_SET_MAC_DST      = 0x0000000000002000,
31         BNXT_ULP_ACTION_BIT_OF_POP_VLAN      = 0x0000000000004000,
32         BNXT_ULP_ACTION_BIT_OF_PUSH_VLAN     = 0x0000000000008000,
33         BNXT_ULP_ACTION_BIT_OF_SET_VLAN_PCP  = 0x0000000000010000,
34         BNXT_ULP_ACTION_BIT_OF_SET_VLAN_VID  = 0x0000000000020000,
35         BNXT_ULP_ACTION_BIT_SET_IPV4_SRC     = 0x0000000000040000,
36         BNXT_ULP_ACTION_BIT_SET_IPV4_DST     = 0x0000000000080000,
37         BNXT_ULP_ACTION_BIT_SET_IPV6_SRC     = 0x0000000000100000,
38         BNXT_ULP_ACTION_BIT_SET_IPV6_DST     = 0x0000000000200000,
39         BNXT_ULP_ACTION_BIT_DEC_TTL          = 0x0000000000400000,
40         BNXT_ULP_ACTION_BIT_SET_TP_SRC       = 0x0000000000800000,
41         BNXT_ULP_ACTION_BIT_SET_TP_DST       = 0x0000000001000000,
42         BNXT_ULP_ACTION_BIT_VXLAN_ENCAP      = 0x0000000002000000,
43         BNXT_ULP_ACTION_BIT_NVGRE_ENCAP      = 0x0000000004000000,
44         BNXT_ULP_ACTION_BIT_LAST             = 0x0000000008000000
45 };
46
47 enum bnxt_ulp_byte_order {
48         BNXT_ULP_BYTE_ORDER_BE,
49         BNXT_ULP_BYTE_ORDER_LE,
50         BNXT_ULP_BYTE_ORDER_LAST
51 };
52
53 enum bnxt_ulp_device_id {
54         BNXT_ULP_DEVICE_ID_WH_PLUS,
55         BNXT_ULP_DEVICE_ID_THOR,
56         BNXT_ULP_DEVICE_ID_STINGRAY,
57         BNXT_ULP_DEVICE_ID_STINGRAY2,
58         BNXT_ULP_DEVICE_ID_LAST
59 };
60
61 enum bnxt_ulp_fmf_mask {
62         BNXT_ULP_FMF_MASK_IGNORE,
63         BNXT_ULP_FMF_MASK_ANY,
64         BNXT_ULP_FMF_MASK_EXACT,
65         BNXT_ULP_FMF_MASK_WILDCARD,
66         BNXT_ULP_FMF_MASK_LAST
67 };
68
69 enum bnxt_ulp_mark_enable {
70         BNXT_ULP_MARK_ENABLE_NO = 0,
71         BNXT_ULP_MARK_ENABLE_YES = 1,
72         BNXT_ULP_MARK_ENABLE_LAST = 2
73 };
74
75 enum bnxt_ulp_mask_opc {
76         BNXT_ULP_MASK_OPC_SET_TO_CONSTANT = 0,
77         BNXT_ULP_MASK_OPC_SET_TO_HDR_FIELD = 1,
78         BNXT_ULP_MASK_OPC_SET_TO_REGFILE = 2,
79         BNXT_ULP_MASK_OPC_ADD_PAD = 3,
80         BNXT_ULP_MASK_OPC_LAST = 4
81 };
82
83 enum bnxt_ulp_priority {
84         BNXT_ULP_PRIORITY_LEVEL_0 = 0,
85         BNXT_ULP_PRIORITY_LEVEL_1 = 1,
86         BNXT_ULP_PRIORITY_LEVEL_2 = 2,
87         BNXT_ULP_PRIORITY_LEVEL_3 = 3,
88         BNXT_ULP_PRIORITY_LEVEL_4 = 4,
89         BNXT_ULP_PRIORITY_LEVEL_5 = 5,
90         BNXT_ULP_PRIORITY_LEVEL_6 = 6,
91         BNXT_ULP_PRIORITY_LEVEL_7 = 7,
92         BNXT_ULP_PRIORITY_NOT_USED = 8,
93         BNXT_ULP_PRIORITY_LAST = 9
94 };
95
96 enum bnxt_ulp_regfile_index {
97         BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 = 0,
98         BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_1 = 1,
99         BNXT_ULP_REGFILE_INDEX_PROF_FUNC_ID_0 = 2,
100         BNXT_ULP_REGFILE_INDEX_PROF_FUNC_ID_1 = 3,
101         BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 = 4,
102         BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_1 = 5,
103         BNXT_ULP_REGFILE_INDEX_WC_PROFILE_ID_0 = 6,
104         BNXT_ULP_REGFILE_INDEX_WC_PROFILE_ID_1 = 7,
105         BNXT_ULP_REGFILE_INDEX_ACTION_PTR_MAIN = 8,
106         BNXT_ULP_REGFILE_INDEX_ACTION_PTR_0 = 9,
107         BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 = 10,
108         BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_1 = 11,
109         BNXT_ULP_REGFILE_INDEX_NOT_USED = 12,
110         BNXT_ULP_REGFILE_INDEX_LAST = 13
111 };
112
113 enum bnxt_ulp_resource_func {
114         BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE = 0,
115         BNXT_ULP_RESOURCE_FUNC_EM_TABLE = 1,
116         BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE = 2,
117         BNXT_ULP_RESOURCE_FUNC_IDENTIFIER = 3,
118         BNXT_ULP_RESOURCE_FUNC_HW_FID = 4,
119         BNXT_ULP_RESOURCE_FUNC_LAST = 5
120 };
121
122 enum bnxt_ulp_result_opc {
123         BNXT_ULP_RESULT_OPC_SET_TO_CONSTANT = 0,
124         BNXT_ULP_RESULT_OPC_SET_TO_ACT_PROP = 1,
125         BNXT_ULP_RESULT_OPC_SET_TO_ACT_PROP_SZ = 2,
126         BNXT_ULP_RESULT_OPC_SET_TO_REGFILE = 3,
127         BNXT_ULP_RESULT_OPC_LAST = 4
128 };
129
130 enum bnxt_ulp_spec_opc {
131         BNXT_ULP_SPEC_OPC_SET_TO_CONSTANT = 0,
132         BNXT_ULP_SPEC_OPC_SET_TO_HDR_FIELD = 1,
133         BNXT_ULP_SPEC_OPC_SET_TO_REGFILE = 2,
134         BNXT_ULP_SPEC_OPC_ADD_PAD = 3,
135         BNXT_ULP_SPEC_OPC_LAST = 4
136 };
137
138 enum bnxt_ulp_sym {
139         BNXT_ULP_SYM_BIG_ENDIAN = 0,
140         BNXT_ULP_SYM_DECAP_FUNC_NONE = 0,
141         BNXT_ULP_SYM_DECAP_FUNC_THRU_L2 = 11,
142         BNXT_ULP_SYM_DECAP_FUNC_THRU_L3 = 12,
143         BNXT_ULP_SYM_DECAP_FUNC_THRU_L4 = 13,
144         BNXT_ULP_SYM_DECAP_FUNC_THRU_TL2 = 3,
145         BNXT_ULP_SYM_DECAP_FUNC_THRU_TL3 = 8,
146         BNXT_ULP_SYM_DECAP_FUNC_THRU_TL4 = 9,
147         BNXT_ULP_SYM_DECAP_FUNC_THRU_TUN = 10,
148         BNXT_ULP_SYM_ECV_L3_TYPE_IPV4 = 4,
149         BNXT_ULP_SYM_ECV_L3_TYPE_IPV6 = 5,
150         BNXT_ULP_SYM_ECV_L3_TYPE_MPLS_8847 = 6,
151         BNXT_ULP_SYM_ECV_L3_TYPE_MPLS_8848 = 7,
152         BNXT_ULP_SYM_ECV_L3_TYPE_NONE = 0,
153         BNXT_ULP_SYM_ECV_L4_TYPE_NONE = 0,
154         BNXT_ULP_SYM_ECV_L4_TYPE_UDP = 4,
155         BNXT_ULP_SYM_ECV_L4_TYPE_UDP_CSUM = 5,
156         BNXT_ULP_SYM_ECV_L4_TYPE_UDP_ENTROPY = 6,
157         BNXT_ULP_SYM_ECV_L4_TYPE_UDP_ENTROPY_CSUM = 7,
158         BNXT_ULP_SYM_ECV_TUN_TYPE_GENERIC = 1,
159         BNXT_ULP_SYM_ECV_TUN_TYPE_GRE = 5,
160         BNXT_ULP_SYM_ECV_TUN_TYPE_NGE = 3,
161         BNXT_ULP_SYM_ECV_TUN_TYPE_NONE = 0,
162         BNXT_ULP_SYM_ECV_TUN_TYPE_NVGRE = 4,
163         BNXT_ULP_SYM_ECV_TUN_TYPE_VXLAN = 2,
164         BNXT_ULP_SYM_IP_PROTO_UDP = 17,
165         BNXT_ULP_SYM_L2_HDR_TYPE_DIX = 0,
166         BNXT_ULP_SYM_L2_HDR_TYPE_LLC = 2,
167         BNXT_ULP_SYM_L2_HDR_TYPE_LLC_SNAP = 1,
168         BNXT_ULP_SYM_L3_HDR_TYPE_ARP = 2,
169         BNXT_ULP_SYM_L3_HDR_TYPE_EAPOL = 4,
170         BNXT_ULP_SYM_L3_HDR_TYPE_FCOE = 6,
171         BNXT_ULP_SYM_L3_HDR_TYPE_IPV4 = 0,
172         BNXT_ULP_SYM_L3_HDR_TYPE_IPV6 = 1,
173         BNXT_ULP_SYM_L3_HDR_TYPE_PTP = 3,
174         BNXT_ULP_SYM_L3_HDR_TYPE_ROCE = 5,
175         BNXT_ULP_SYM_L3_HDR_TYPE_UPAR1 = 7,
176         BNXT_ULP_SYM_L3_HDR_TYPE_UPAR2 = 8,
177         BNXT_ULP_SYM_L4_HDR_TYPE_BTH_V1 = 5,
178         BNXT_ULP_SYM_L4_HDR_TYPE_ICMP = 2,
179         BNXT_ULP_SYM_L4_HDR_TYPE_TCP = 0,
180         BNXT_ULP_SYM_L4_HDR_TYPE_UDP = 1,
181         BNXT_ULP_SYM_L4_HDR_TYPE_UPAR1 = 3,
182         BNXT_ULP_SYM_L4_HDR_TYPE_UPAR2 = 4,
183         BNXT_ULP_SYM_LITTLE_ENDIAN = 1,
184         BNXT_ULP_SYM_NO = 0,
185         BNXT_ULP_SYM_PKT_TYPE_L2 = 0,
186         BNXT_ULP_SYM_TL2_HDR_TYPE_DIX = 0,
187         BNXT_ULP_SYM_TL3_HDR_TYPE_IPV4 = 0,
188         BNXT_ULP_SYM_TL3_HDR_TYPE_IPV6 = 1,
189         BNXT_ULP_SYM_TL4_HDR_TYPE_TCP = 0,
190         BNXT_ULP_SYM_TL4_HDR_TYPE_UDP = 1,
191         BNXT_ULP_SYM_TUN_HDR_TYPE_GENEVE = 1,
192         BNXT_ULP_SYM_TUN_HDR_TYPE_GRE = 3,
193         BNXT_ULP_SYM_TUN_HDR_TYPE_IPV4 = 4,
194         BNXT_ULP_SYM_TUN_HDR_TYPE_IPV6 = 5,
195         BNXT_ULP_SYM_TUN_HDR_TYPE_MPLS = 7,
196         BNXT_ULP_SYM_TUN_HDR_TYPE_NONE = 15,
197         BNXT_ULP_SYM_TUN_HDR_TYPE_NVGRE = 2,
198         BNXT_ULP_SYM_TUN_HDR_TYPE_PPPOE = 6,
199         BNXT_ULP_SYM_TUN_HDR_TYPE_UPAR1 = 8,
200         BNXT_ULP_SYM_TUN_HDR_TYPE_UPAR2 = 9,
201         BNXT_ULP_SYM_TUN_HDR_TYPE_VXLAN = 0,
202         BNXT_ULP_SYM_YES = 1
203 };
204
205 enum bnxt_ulp_act_prop_sz {
206         BNXT_ULP_ACT_PROP_SZ_ENCAP_TUN_SZ = 4,
207         BNXT_ULP_ACT_PROP_SZ_ENCAP_IP_SZ = 4,
208         BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG_SZ = 4,
209         BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG_TYPE = 4,
210         BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG_NUM = 4,
211         BNXT_ULP_ACT_PROP_SZ_ENCAP_L3_TYPE = 4,
212         BNXT_ULP_ACT_PROP_SZ_MPLS_POP_NUM = 4,
213         BNXT_ULP_ACT_PROP_SZ_MPLS_PUSH_NUM = 4,
214         BNXT_ULP_ACT_PROP_SZ_VNIC = 4,
215         BNXT_ULP_ACT_PROP_SZ_VPORT = 4,
216         BNXT_ULP_ACT_PROP_SZ_MARK = 4,
217         BNXT_ULP_ACT_PROP_SZ_COUNT = 4,
218         BNXT_ULP_ACT_PROP_SZ_METER = 4,
219         BNXT_ULP_ACT_PROP_SZ_SET_MAC_SRC = 8,
220         BNXT_ULP_ACT_PROP_SZ_SET_MAC_DST = 8,
221         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_VLAN = 4,
222         BNXT_ULP_ACT_PROP_SZ_OF_SET_VLAN_PCP = 4,
223         BNXT_ULP_ACT_PROP_SZ_OF_SET_VLAN_VID = 4,
224         BNXT_ULP_ACT_PROP_SZ_SET_IPV4_SRC = 4,
225         BNXT_ULP_ACT_PROP_SZ_SET_IPV4_DST = 4,
226         BNXT_ULP_ACT_PROP_SZ_SET_IPV6_SRC = 16,
227         BNXT_ULP_ACT_PROP_SZ_SET_IPV6_DST = 16,
228         BNXT_ULP_ACT_PROP_SZ_SET_TP_SRC = 4,
229         BNXT_ULP_ACT_PROP_SZ_SET_TP_DST = 4,
230         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_0 = 4,
231         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_1 = 4,
232         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_2 = 4,
233         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_3 = 4,
234         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_4 = 4,
235         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_5 = 4,
236         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_6 = 4,
237         BNXT_ULP_ACT_PROP_SZ_OF_PUSH_MPLS_7 = 4,
238         BNXT_ULP_ACT_PROP_SZ_ENCAP_L2_DMAC = 6,
239         BNXT_ULP_ACT_PROP_SZ_ENCAP_L2_SMAC = 6,
240         BNXT_ULP_ACT_PROP_SZ_ENCAP_VTAG = 8,
241         BNXT_ULP_ACT_PROP_SZ_ENCAP_IP = 32,
242         BNXT_ULP_ACT_PROP_SZ_ENCAP_IP_SRC = 16,
243         BNXT_ULP_ACT_PROP_SZ_ENCAP_UDP = 4,
244         BNXT_ULP_ACT_PROP_SZ_ENCAP_TUN = 32,
245         BNXT_ULP_ACT_PROP_SZ_LAST = 4
246 };
247
248 enum bnxt_ulp_act_prop_idx {
249         BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN_SZ = 0,
250         BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SZ = 4,
251         BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_SZ = 8,
252         BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_TYPE = 12,
253         BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG_NUM = 16,
254         BNXT_ULP_ACT_PROP_IDX_ENCAP_L3_TYPE = 20,
255         BNXT_ULP_ACT_PROP_IDX_MPLS_POP_NUM = 24,
256         BNXT_ULP_ACT_PROP_IDX_MPLS_PUSH_NUM = 28,
257         BNXT_ULP_ACT_PROP_IDX_VNIC = 32,
258         BNXT_ULP_ACT_PROP_IDX_VPORT = 36,
259         BNXT_ULP_ACT_PROP_IDX_MARK = 40,
260         BNXT_ULP_ACT_PROP_IDX_COUNT = 44,
261         BNXT_ULP_ACT_PROP_IDX_METER = 48,
262         BNXT_ULP_ACT_PROP_IDX_SET_MAC_SRC = 52,
263         BNXT_ULP_ACT_PROP_IDX_SET_MAC_DST = 60,
264         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_VLAN = 68,
265         BNXT_ULP_ACT_PROP_IDX_OF_SET_VLAN_PCP = 72,
266         BNXT_ULP_ACT_PROP_IDX_OF_SET_VLAN_VID = 76,
267         BNXT_ULP_ACT_PROP_IDX_SET_IPV4_SRC = 80,
268         BNXT_ULP_ACT_PROP_IDX_SET_IPV4_DST = 84,
269         BNXT_ULP_ACT_PROP_IDX_SET_IPV6_SRC = 88,
270         BNXT_ULP_ACT_PROP_IDX_SET_IPV6_DST = 104,
271         BNXT_ULP_ACT_PROP_IDX_SET_TP_SRC = 120,
272         BNXT_ULP_ACT_PROP_IDX_SET_TP_DST = 124,
273         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_0 = 128,
274         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_1 = 132,
275         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_2 = 136,
276         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_3 = 140,
277         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_4 = 144,
278         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_5 = 148,
279         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_6 = 152,
280         BNXT_ULP_ACT_PROP_IDX_OF_PUSH_MPLS_7 = 156,
281         BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_DMAC = 160,
282         BNXT_ULP_ACT_PROP_IDX_ENCAP_L2_SMAC = 166,
283         BNXT_ULP_ACT_PROP_IDX_ENCAP_VTAG = 172,
284         BNXT_ULP_ACT_PROP_IDX_ENCAP_IP = 180,
285         BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC = 212,
286         BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP = 228,
287         BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN = 232,
288         BNXT_ULP_ACT_PROP_IDX_LAST = 264
289 };
290
291 #endif /* _ULP_TEMPLATE_DB_H_ */