1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2014-2020 Broadcom
6 #ifndef _ULP_RTE_PARSER_H_
7 #define _ULP_RTE_PARSER_H_
11 #include <rte_flow_driver.h>
12 #include "ulp_template_db.h"
13 #include "ulp_template_struct.h"
16 * Function to handle the parsing of RTE Flows and placing
17 * the RTE flow items into the ulp structures.
20 bnxt_ulp_rte_parser_hdr_parse(const struct rte_flow_item pattern[],
21 struct ulp_rte_hdr_bitmap *hdr_bitmap,
22 struct ulp_rte_hdr_field *hdr_field);
24 /* Function to handle the parsing of RTE Flow item PF Header. */
26 ulp_rte_pf_hdr_handler(const struct rte_flow_item *item,
27 struct ulp_rte_hdr_bitmap *hdr_bitmap,
28 struct ulp_rte_hdr_field *hdr_field,
32 /* Function to handle the parsing of RTE Flow item VF Header. */
34 ulp_rte_vf_hdr_handler(const struct rte_flow_item *item,
35 struct ulp_rte_hdr_bitmap *hdr_bitmap,
36 struct ulp_rte_hdr_field *hdr_field,
40 /* Function to handle the parsing of RTE Flow item port id Header. */
42 ulp_rte_port_id_hdr_handler(const struct rte_flow_item *item,
43 struct ulp_rte_hdr_bitmap *hdr_bitmap,
44 struct ulp_rte_hdr_field *hdr_field,
48 /* Function to handle the parsing of RTE Flow item port id Header. */
50 ulp_rte_phy_port_hdr_handler(const struct rte_flow_item *item,
51 struct ulp_rte_hdr_bitmap *hdr_bitmap,
52 struct ulp_rte_hdr_field *hdr_field,
56 /* Function to handle the RTE item Ethernet Header. */
58 ulp_rte_eth_hdr_handler(const struct rte_flow_item *item,
59 struct ulp_rte_hdr_bitmap *hdr_bitmap,
60 struct ulp_rte_hdr_field *hdr_field,
64 /* Function to handle the parsing of RTE Flow item Vlan Header. */
66 ulp_rte_vlan_hdr_handler(const struct rte_flow_item *item,
67 struct ulp_rte_hdr_bitmap *hdr_bitmap,
68 struct ulp_rte_hdr_field *hdr_field,
72 /* Function to handle the parsing of RTE Flow item IPV4 Header. */
74 ulp_rte_ipv4_hdr_handler(const struct rte_flow_item *item,
75 struct ulp_rte_hdr_bitmap *hdr_bitmap,
76 struct ulp_rte_hdr_field *hdr_field,
80 /* Function to handle the parsing of RTE Flow item IPV6 Header. */
82 ulp_rte_ipv6_hdr_handler(const struct rte_flow_item *item,
83 struct ulp_rte_hdr_bitmap *hdr_bitmap,
84 struct ulp_rte_hdr_field *hdr_field,
88 /* Function to handle the parsing of RTE Flow item UDP Header. */
90 ulp_rte_udp_hdr_handler(const struct rte_flow_item *item,
91 struct ulp_rte_hdr_bitmap *hdr_bitmap,
92 struct ulp_rte_hdr_field *hdr_field,
96 /* Function to handle the parsing of RTE Flow item TCP Header. */
98 ulp_rte_tcp_hdr_handler(const struct rte_flow_item *item,
99 struct ulp_rte_hdr_bitmap *hdr_bitmap,
100 struct ulp_rte_hdr_field *hdr_field,
104 /* Function to handle the parsing of RTE Flow item Vxlan Header. */
106 ulp_rte_vxlan_hdr_handler(const struct rte_flow_item *item,
107 struct ulp_rte_hdr_bitmap *hdrbitmap,
108 struct ulp_rte_hdr_field *hdr_field,
112 /* Function to handle the parsing of RTE Flow item void Header. */
114 ulp_rte_void_hdr_handler(const struct rte_flow_item *item,
115 struct ulp_rte_hdr_bitmap *hdr_bitmap,
116 struct ulp_rte_hdr_field *hdr_field,
120 #endif /* _ULP_RTE_PARSER_H_ */