net/sfc: fence off 8 bits in Rx mark for tunnel offload
[dpdk.git] / drivers / net / bnxt / tf_ulp / ulp_rte_handler_tbl.c
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2014-2021 Broadcom
3  * All rights reserved.
4  */
5
6 #include "ulp_template_db_enum.h"
7 #include "ulp_template_struct.h"
8 #include "ulp_rte_parser.h"
9
10 /*
11  * This structure has to be indexed based on the rte_flow_action_type that is
12  * part of DPDK. The below array is list of parsing functions for each of the
13  * flow actions that are supported.
14  */
15 struct bnxt_ulp_rte_act_info ulp_act_info[] = {
16         [RTE_FLOW_ACTION_TYPE_END] = {
17         .act_type                = BNXT_ULP_ACT_TYPE_END,
18         .proto_act_func          = NULL
19         },
20         [RTE_FLOW_ACTION_TYPE_VOID] = {
21         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
22         .proto_act_func          = ulp_rte_void_act_handler
23         },
24         [RTE_FLOW_ACTION_TYPE_PASSTHRU] = {
25         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
26         .proto_act_func          = NULL
27         },
28         [RTE_FLOW_ACTION_TYPE_JUMP] = {
29         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
30         .proto_act_func          = ulp_rte_jump_act_handler
31         },
32         [RTE_FLOW_ACTION_TYPE_MARK] = {
33         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
34         .proto_act_func          = ulp_rte_mark_act_handler
35         },
36         [RTE_FLOW_ACTION_TYPE_FLAG] = {
37         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
38         .proto_act_func          = NULL
39         },
40         [RTE_FLOW_ACTION_TYPE_QUEUE] = {
41         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
42         .proto_act_func          = NULL
43         },
44         [RTE_FLOW_ACTION_TYPE_DROP] = {
45         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
46         .proto_act_func          = ulp_rte_drop_act_handler
47         },
48         [RTE_FLOW_ACTION_TYPE_COUNT] = {
49         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
50         .proto_act_func          = ulp_rte_count_act_handler
51         },
52         [RTE_FLOW_ACTION_TYPE_RSS] = {
53         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
54         .proto_act_func          = ulp_rte_rss_act_handler
55         },
56         [RTE_FLOW_ACTION_TYPE_PF] = {
57         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
58         .proto_act_func          = ulp_rte_pf_act_handler
59         },
60         [RTE_FLOW_ACTION_TYPE_VF] = {
61         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
62         .proto_act_func          = ulp_rte_vf_act_handler
63         },
64         [RTE_FLOW_ACTION_TYPE_PHY_PORT] = {
65         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
66         .proto_act_func          = ulp_rte_phy_port_act_handler
67         },
68         [RTE_FLOW_ACTION_TYPE_PORT_ID] = {
69         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
70         .proto_act_func          = ulp_rte_port_id_act_handler
71         },
72         [RTE_FLOW_ACTION_TYPE_METER] = {
73         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
74         .proto_act_func          = NULL
75         },
76         [RTE_FLOW_ACTION_TYPE_SECURITY] = {
77         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
78         .proto_act_func          = NULL
79         },
80         [RTE_FLOW_ACTION_TYPE_OF_SET_MPLS_TTL] = {
81         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
82         .proto_act_func          = NULL
83         },
84         [RTE_FLOW_ACTION_TYPE_OF_DEC_MPLS_TTL] = {
85         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
86         .proto_act_func          = NULL
87         },
88         [RTE_FLOW_ACTION_TYPE_OF_SET_NW_TTL] = {
89         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
90         .proto_act_func          = NULL
91         },
92         [RTE_FLOW_ACTION_TYPE_OF_DEC_NW_TTL] = {
93         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
94         .proto_act_func          = NULL
95         },
96         [RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_OUT] = {
97         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
98         .proto_act_func          = NULL
99         },
100         [RTE_FLOW_ACTION_TYPE_OF_COPY_TTL_IN] = {
101         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
102         .proto_act_func          = NULL
103         },
104         [RTE_FLOW_ACTION_TYPE_OF_POP_VLAN] = {
105         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
106         .proto_act_func          = ulp_rte_of_pop_vlan_act_handler
107         },
108         [RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN] = {
109         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
110         .proto_act_func          = ulp_rte_of_push_vlan_act_handler
111         },
112         [RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID] = {
113         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
114         .proto_act_func          = ulp_rte_of_set_vlan_vid_act_handler
115         },
116         [RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP] = {
117         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
118         .proto_act_func          = ulp_rte_of_set_vlan_pcp_act_handler
119         },
120         [RTE_FLOW_ACTION_TYPE_OF_POP_MPLS] = {
121         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
122         .proto_act_func          = NULL
123         },
124         [RTE_FLOW_ACTION_TYPE_OF_PUSH_MPLS] = {
125         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
126         .proto_act_func          = NULL
127         },
128         [RTE_FLOW_ACTION_TYPE_VXLAN_ENCAP] = {
129         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
130         .proto_act_func          = ulp_rte_vxlan_encap_act_handler
131         },
132         [RTE_FLOW_ACTION_TYPE_VXLAN_DECAP] = {
133         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
134         .proto_act_func          = ulp_rte_vxlan_decap_act_handler
135         },
136         [RTE_FLOW_ACTION_TYPE_NVGRE_ENCAP] = {
137         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
138         .proto_act_func          = NULL
139         },
140         [RTE_FLOW_ACTION_TYPE_NVGRE_DECAP] = {
141         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
142         .proto_act_func          = NULL
143         },
144         [RTE_FLOW_ACTION_TYPE_RAW_ENCAP] = {
145         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
146         .proto_act_func          = NULL
147         },
148         [RTE_FLOW_ACTION_TYPE_RAW_DECAP] = {
149         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
150         .proto_act_func          = NULL
151         },
152         [RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC] = {
153         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
154         .proto_act_func          = ulp_rte_set_ipv4_src_act_handler
155         },
156         [RTE_FLOW_ACTION_TYPE_SET_IPV4_DST] = {
157         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
158         .proto_act_func          = ulp_rte_set_ipv4_dst_act_handler
159         },
160         [RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC] = {
161         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
162         .proto_act_func          = NULL
163         },
164         [RTE_FLOW_ACTION_TYPE_SET_IPV6_DST] = {
165         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
166         .proto_act_func          = NULL
167         },
168         [RTE_FLOW_ACTION_TYPE_SET_TP_SRC] = {
169         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
170         .proto_act_func          = ulp_rte_set_tp_src_act_handler
171         },
172         [RTE_FLOW_ACTION_TYPE_SET_TP_DST] = {
173         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
174         .proto_act_func          = ulp_rte_set_tp_dst_act_handler
175         },
176         [RTE_FLOW_ACTION_TYPE_MAC_SWAP] = {
177         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
178         .proto_act_func          = NULL
179         },
180         [RTE_FLOW_ACTION_TYPE_DEC_TTL] = {
181         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
182         .proto_act_func          = ulp_rte_dec_ttl_act_handler
183         },
184         [RTE_FLOW_ACTION_TYPE_SET_TTL] = {
185         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
186         .proto_act_func          = NULL
187         },
188         [RTE_FLOW_ACTION_TYPE_SET_MAC_SRC] = {
189         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
190         .proto_act_func          = NULL
191         },
192         [RTE_FLOW_ACTION_TYPE_SET_MAC_DST] = {
193         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
194         .proto_act_func          = NULL
195         },
196         [RTE_FLOW_ACTION_TYPE_INC_TCP_SEQ] = {
197         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
198         .proto_act_func          = NULL
199         },
200         [RTE_FLOW_ACTION_TYPE_DEC_TCP_SEQ] = {
201         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
202         .proto_act_func          = NULL
203         },
204         [RTE_FLOW_ACTION_TYPE_INC_TCP_ACK] = {
205         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
206         .proto_act_func          = NULL
207         },
208         [RTE_FLOW_ACTION_TYPE_DEC_TCP_ACK] = {
209         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
210         .proto_act_func          = NULL
211         },
212         [RTE_FLOW_ACTION_TYPE_SAMPLE] = {
213         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
214         .proto_act_func          = ulp_rte_sample_act_handler
215         }
216 };
217
218 struct bnxt_ulp_rte_act_info ulp_vendor_act_info[] = {
219         [BNXT_RTE_FLOW_ACTION_TYPE_END - BNXT_RTE_FLOW_ACTION_TYPE_END] = {
220         .act_type                = BNXT_ULP_ACT_TYPE_END,
221         .proto_act_func          = NULL
222         },
223         [BNXT_RTE_FLOW_ACTION_TYPE_VXLAN_DECAP - BNXT_RTE_FLOW_ACTION_TYPE_END] = {
224         .act_type                = BNXT_ULP_ACT_TYPE_SUPPORTED,
225         .proto_act_func          = ulp_vendor_vxlan_decap_act_handler
226         },
227         [BNXT_RTE_FLOW_ACTION_TYPE_LAST - BNXT_RTE_FLOW_ACTION_TYPE_END] = {
228         .act_type                = BNXT_ULP_ACT_TYPE_NOT_SUPPORTED,
229         .proto_act_func          = NULL
230         }
231 };
232
233 /*
234  * This table has to be indexed based on the rte_flow_item_type that is part of
235  * DPDK. The below array is list of parsing functions for each of the flow items
236  * that are supported.
237  */
238 struct bnxt_ulp_rte_hdr_info ulp_hdr_info[] = {
239         [RTE_FLOW_ITEM_TYPE_END] = {
240         .hdr_type                = BNXT_ULP_HDR_TYPE_END,
241         .proto_hdr_func          = NULL
242         },
243         [RTE_FLOW_ITEM_TYPE_VOID] = {
244         .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
245         .proto_hdr_func          = ulp_rte_void_hdr_handler
246         },
247         [RTE_FLOW_ITEM_TYPE_INVERT] = {
248         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
249         .proto_hdr_func          = NULL
250         },
251         [RTE_FLOW_ITEM_TYPE_ANY] = {
252         .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
253         .proto_hdr_func          = ulp_rte_item_any_handler
254         },
255         [RTE_FLOW_ITEM_TYPE_PF] = {
256         .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
257         .proto_hdr_func          = ulp_rte_pf_hdr_handler
258         },
259         [RTE_FLOW_ITEM_TYPE_VF] = {
260         .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
261         .proto_hdr_func          = ulp_rte_vf_hdr_handler
262         },
263         [RTE_FLOW_ITEM_TYPE_PHY_PORT] = {
264         .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
265         .proto_hdr_func          = ulp_rte_phy_port_hdr_handler
266         },
267         [RTE_FLOW_ITEM_TYPE_PORT_ID] = {
268         .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
269         .proto_hdr_func          = ulp_rte_port_id_hdr_handler
270         },
271         [RTE_FLOW_ITEM_TYPE_RAW] = {
272         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
273         .proto_hdr_func          = NULL
274         },
275         [RTE_FLOW_ITEM_TYPE_ETH] = {
276         .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
277         .proto_hdr_func          = ulp_rte_eth_hdr_handler
278         },
279         [RTE_FLOW_ITEM_TYPE_VLAN] = {
280         .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
281         .proto_hdr_func          = ulp_rte_vlan_hdr_handler
282         },
283         [RTE_FLOW_ITEM_TYPE_IPV4] = {
284         .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
285         .proto_hdr_func          = ulp_rte_ipv4_hdr_handler
286         },
287         [RTE_FLOW_ITEM_TYPE_IPV6] = {
288         .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
289         .proto_hdr_func          = ulp_rte_ipv6_hdr_handler
290         },
291         [RTE_FLOW_ITEM_TYPE_ICMP] = {
292         .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
293         .proto_hdr_func          = ulp_rte_icmp_hdr_handler
294         },
295         [RTE_FLOW_ITEM_TYPE_UDP] = {
296         .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
297         .proto_hdr_func          = ulp_rte_udp_hdr_handler
298         },
299         [RTE_FLOW_ITEM_TYPE_TCP] = {
300         .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
301         .proto_hdr_func          = ulp_rte_tcp_hdr_handler
302         },
303         [RTE_FLOW_ITEM_TYPE_SCTP] = {
304         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
305         .proto_hdr_func          = NULL
306         },
307         [RTE_FLOW_ITEM_TYPE_VXLAN] = {
308         .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
309         .proto_hdr_func          = ulp_rte_vxlan_hdr_handler
310         },
311         [RTE_FLOW_ITEM_TYPE_E_TAG] = {
312         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
313         .proto_hdr_func          = NULL
314         },
315         [RTE_FLOW_ITEM_TYPE_NVGRE] = {
316         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
317         .proto_hdr_func          = NULL
318         },
319         [RTE_FLOW_ITEM_TYPE_MPLS] = {
320         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
321         .proto_hdr_func          = NULL
322         },
323         [RTE_FLOW_ITEM_TYPE_GRE] = {
324         .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
325         .proto_hdr_func          = ulp_rte_gre_hdr_handler
326         },
327         [RTE_FLOW_ITEM_TYPE_FUZZY] = {
328         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
329         .proto_hdr_func          = NULL
330         },
331         [RTE_FLOW_ITEM_TYPE_GTP] = {
332         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
333         .proto_hdr_func          = NULL
334         },
335         [RTE_FLOW_ITEM_TYPE_GTPC] = {
336         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
337         .proto_hdr_func          = NULL
338         },
339         [RTE_FLOW_ITEM_TYPE_GTPU] = {
340         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
341         .proto_hdr_func          = NULL
342         },
343         [RTE_FLOW_ITEM_TYPE_ESP] = {
344         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
345         .proto_hdr_func          = NULL
346         },
347         [RTE_FLOW_ITEM_TYPE_GENEVE] = {
348         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
349         .proto_hdr_func          = NULL
350         },
351         [RTE_FLOW_ITEM_TYPE_VXLAN_GPE] = {
352         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
353         .proto_hdr_func          = NULL
354         },
355         [RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4] = {
356         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
357         .proto_hdr_func          = NULL
358         },
359         [RTE_FLOW_ITEM_TYPE_IPV6_EXT] = {
360         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
361         .proto_hdr_func          = NULL
362         },
363         [RTE_FLOW_ITEM_TYPE_ICMP6] = {
364         .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
365         .proto_hdr_func          = ulp_rte_icmp6_hdr_handler
366         },
367         [RTE_FLOW_ITEM_TYPE_ICMP6_ND_NS] = {
368         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
369         .proto_hdr_func          = NULL
370         },
371         [RTE_FLOW_ITEM_TYPE_ICMP6_ND_NA] = {
372         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
373         .proto_hdr_func          = NULL
374         },
375         [RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT] = {
376         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
377         .proto_hdr_func          = NULL
378         },
379         [RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_SLA_ETH] = {
380         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
381         .proto_hdr_func          = NULL
382         },
383         [RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_TLA_ETH] = {
384         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
385         .proto_hdr_func          = NULL
386         },
387         [RTE_FLOW_ITEM_TYPE_MARK] = {
388         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
389         .proto_hdr_func          = NULL
390         },
391         [RTE_FLOW_ITEM_TYPE_META] = {
392         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
393         .proto_hdr_func          = NULL
394         },
395         [RTE_FLOW_ITEM_TYPE_GRE_KEY] = {
396         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
397         .proto_hdr_func          = NULL
398         },
399         [RTE_FLOW_ITEM_TYPE_GTP_PSC] = {
400         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
401         .proto_hdr_func          = NULL
402         },
403         [RTE_FLOW_ITEM_TYPE_PPPOES] = {
404         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
405         .proto_hdr_func          = NULL
406         },
407         [RTE_FLOW_ITEM_TYPE_PPPOED] = {
408         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
409         .proto_hdr_func          = NULL
410         },
411         [RTE_FLOW_ITEM_TYPE_PPPOE_PROTO_ID] = {
412         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
413         .proto_hdr_func          = NULL
414         },
415         [RTE_FLOW_ITEM_TYPE_NSH] = {
416         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
417         .proto_hdr_func          = NULL
418         },
419         [RTE_FLOW_ITEM_TYPE_IGMP] = {
420         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
421         .proto_hdr_func          = NULL
422         },
423         [RTE_FLOW_ITEM_TYPE_AH] = {
424         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
425         .proto_hdr_func          = NULL
426         },
427         [RTE_FLOW_ITEM_TYPE_HIGIG2] = {
428         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
429         .proto_hdr_func          = NULL
430         }
431 };
432
433 struct bnxt_ulp_rte_hdr_info ulp_vendor_hdr_info[] = {
434         [BNXT_RTE_FLOW_ITEM_TYPE_END - BNXT_RTE_FLOW_ITEM_TYPE_END] = {
435         .hdr_type                = BNXT_ULP_HDR_TYPE_END,
436         .proto_hdr_func          = NULL
437         },
438         [BNXT_RTE_FLOW_ITEM_TYPE_VXLAN_DECAP - BNXT_RTE_FLOW_ITEM_TYPE_END] = {
439         .hdr_type                = BNXT_ULP_HDR_TYPE_SUPPORTED,
440         .proto_hdr_func          = ulp_rte_vendor_vxlan_decap_hdr_handler
441         },
442         [BNXT_RTE_FLOW_ITEM_TYPE_LAST - BNXT_RTE_FLOW_ITEM_TYPE_END] = {
443         .hdr_type                = BNXT_ULP_HDR_TYPE_NOT_SUPPORTED,
444         .proto_hdr_func          = NULL
445         },
446
447 };