1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2014-2019 Broadcom
7 * date: Mon Mar 9 02:37:53 2020
11 #ifndef ULP_TEMPLATE_DB_H_
12 #define ULP_TEMPLATE_DB_H_
14 #define BNXT_ULP_MAX_NUM_DEVICES 4
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
47 enum bnxt_ulp_byte_order {
48 BNXT_ULP_BYTE_ORDER_BE,
49 BNXT_ULP_BYTE_ORDER_LE,
50 BNXT_ULP_BYTE_ORDER_LAST
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
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
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
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
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
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
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
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
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
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,
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,
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
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
291 #endif /* _ULP_TEMPLATE_DB_H_ */