xref: /dpdk/drivers/net/bnxt/tf_ulp/ulp_rte_parser.h (revision dd0191d5e70d0e65a7f041a88af480fc673160e1)
153a0d4f7SKishore Padmanabha /* SPDX-License-Identifier: BSD-3-Clause
26d160d77SRandy Schacher  * Copyright(c) 2014-2023 Broadcom
353a0d4f7SKishore Padmanabha  * All rights reserved.
453a0d4f7SKishore Padmanabha  */
553a0d4f7SKishore Padmanabha 
653a0d4f7SKishore Padmanabha #ifndef _ULP_RTE_PARSER_H_
753a0d4f7SKishore Padmanabha #define _ULP_RTE_PARSER_H_
853a0d4f7SKishore Padmanabha 
953a0d4f7SKishore Padmanabha #include <rte_log.h>
1053a0d4f7SKishore Padmanabha #include <rte_flow.h>
1153a0d4f7SKishore Padmanabha #include <rte_flow_driver.h>
128ce17d56SKishore Padmanabha #include "ulp_template_db_enum.h"
1353a0d4f7SKishore Padmanabha #include "ulp_template_struct.h"
14188bf91dSVenkat Duvvuru #include "ulp_mapper.h"
15675e31d8SVenkat Duvvuru #include "bnxt_tf_common.h"
1653a0d4f7SKishore Padmanabha 
1711c854e2SKishore Padmanabha /* defines to be used in the tunnel header parsing */
1811c854e2SKishore Padmanabha #define BNXT_ULP_ENCAP_IPV4_VER_HLEN_TOS	2
1911c854e2SKishore Padmanabha #define BNXT_ULP_ENCAP_IPV4_ID_PROTO		6
2011c854e2SKishore Padmanabha #define BNXT_ULP_ENCAP_IPV4_DEST_IP		4
2111c854e2SKishore Padmanabha #define BNXT_ULP_ENCAP_IPV4_SIZE		12
229238ac2aSKishore Padmanabha #define BNXT_ULP_ENCAP_IPV6_VTC_FLOW		4
239238ac2aSKishore Padmanabha #define BNXT_ULP_ENCAP_IPV6_PROTO_TTL		2
249238ac2aSKishore Padmanabha #define BNXT_ULP_ENCAP_IPV6_DO			2
259238ac2aSKishore Padmanabha #define BNXT_ULP_ENCAP_IPV6_SIZE		24
2611c854e2SKishore Padmanabha #define BNXT_ULP_ENCAP_UDP_SIZE			4
271993b267SShahaji Bhosle #define BNXT_ULP_INVALID_SVIF_VAL		-1UL
2811c854e2SKishore Padmanabha 
298d9978d7SVenkat Duvvuru #define	BNXT_ULP_GET_IPV6_VER(vtcf)		\
308d9978d7SVenkat Duvvuru 			(((vtcf) & BNXT_ULP_PARSER_IPV6_VER_MASK) >> 28)
318d9978d7SVenkat Duvvuru #define	BNXT_ULP_GET_IPV6_TC(vtcf)		\
328d9978d7SVenkat Duvvuru 			(((vtcf) & BNXT_ULP_PARSER_IPV6_TC) >> 20)
338d9978d7SVenkat Duvvuru #define	BNXT_ULP_GET_IPV6_FLOWLABEL(vtcf)	\
348d9978d7SVenkat Duvvuru 			((vtcf) & BNXT_ULP_PARSER_IPV6_FLOW_LABEL)
358d9978d7SVenkat Duvvuru #define	BNXT_ULP_PARSER_IPV6_VER_MASK		0xf0000000
36f63aa27dSKishore Padmanabha #define BNXT_ULP_IPV6_DFLT_VER			0x60000000
378d9978d7SVenkat Duvvuru #define	BNXT_ULP_PARSER_IPV6_TC			0x0ff00000
388d9978d7SVenkat Duvvuru #define	BNXT_ULP_PARSER_IPV6_FLOW_LABEL		0x000fffff
39f63aa27dSKishore Padmanabha #define BNXT_ULP_DEFAULT_TTL			64
408d9978d7SVenkat Duvvuru 
41741172beSKishore Padmanabha enum bnxt_ulp_prsr_action {
42741172beSKishore Padmanabha 	ULP_PRSR_ACT_DEFAULT = 0,
43741172beSKishore Padmanabha 	ULP_PRSR_ACT_MATCH_IGNORE = 1,
44741172beSKishore Padmanabha 	ULP_PRSR_ACT_MASK_IGNORE = 2,
45741172beSKishore Padmanabha 	ULP_PRSR_ACT_SPEC_IGNORE = 4
46741172beSKishore Padmanabha };
47741172beSKishore Padmanabha 
48188bf91dSVenkat Duvvuru void
49*dd0191d5SShuanglin Wang bnxt_ulp_init_mapper_params(struct bnxt_ulp_mapper_parms *mparms,
50188bf91dSVenkat Duvvuru 			    struct ulp_rte_parser_params *params,
51188bf91dSVenkat Duvvuru 			    enum bnxt_ulp_fdb_type flow_type);
52188bf91dSVenkat Duvvuru 
53a7420bd9SMike Baucom /* Function to handle the parsing of the RTE port id. */
54a7420bd9SMike Baucom int32_t
5577b359eeSKishore Padmanabha ulp_rte_parser_implicit_match_port_process(struct ulp_rte_parser_params *param);
56a7420bd9SMike Baucom 
5714f260c0SKishore Padmanabha /* Function to handle the implicit action port id */
582bbcdee8SKishore Padmanabha int32_t
5977b359eeSKishore Padmanabha ulp_rte_parser_implicit_act_port_process(struct ulp_rte_parser_params *params);
602bbcdee8SKishore Padmanabha 
6153a0d4f7SKishore Padmanabha /*
6253a0d4f7SKishore Padmanabha  * Function to handle the parsing of RTE Flows and placing
6353a0d4f7SKishore Padmanabha  * the RTE flow items into the ulp structures.
6453a0d4f7SKishore Padmanabha  */
6553a0d4f7SKishore Padmanabha int32_t
6653a0d4f7SKishore Padmanabha bnxt_ulp_rte_parser_hdr_parse(const struct rte_flow_item pattern[],
673d6ba7cbSKishore Padmanabha 			      struct ulp_rte_parser_params *params);
6853a0d4f7SKishore Padmanabha 
6911c854e2SKishore Padmanabha /*
7011c854e2SKishore Padmanabha  * Function to handle the parsing of RTE Flows and placing
7111c854e2SKishore Padmanabha  * the RTE flow actions into the ulp structures.
7211c854e2SKishore Padmanabha  */
7311c854e2SKishore Padmanabha int32_t
7411c854e2SKishore Padmanabha bnxt_ulp_rte_parser_act_parse(const struct rte_flow_action actions[],
753d6ba7cbSKishore Padmanabha 			      struct ulp_rte_parser_params *params);
7611c854e2SKishore Padmanabha 
7777b359eeSKishore Padmanabha /*
7877b359eeSKishore Padmanabha  * Function to handle the post processing of the parsing details
7977b359eeSKishore Padmanabha  */
80bdf4a3c6SKishore Padmanabha void
8177b359eeSKishore Padmanabha bnxt_ulp_rte_parser_post_process(struct ulp_rte_parser_params *params);
8277b359eeSKishore Padmanabha 
836d160d77SRandy Schacher /* Function to handle the parsing of RTE Flow item PF Header. */
846d160d77SRandy Schacher int32_t
856d160d77SRandy Schacher ulp_rte_pf_hdr_handler(const struct rte_flow_item *item,
866d160d77SRandy Schacher 		       struct ulp_rte_parser_params *params);
876d160d77SRandy Schacher 
886d160d77SRandy Schacher /* Function to handle the parsing of RTE Flow item VF Header. */
896d160d77SRandy Schacher int32_t
906d160d77SRandy Schacher ulp_rte_vf_hdr_handler(const struct rte_flow_item *item,
916d160d77SRandy Schacher 		       struct ulp_rte_parser_params *params);
926d160d77SRandy Schacher 
93a8321e09SAndrew Rybchenko /* Parse items PORT_ID, PORT_REPRESENTOR and REPRESENTED_PORT. */
9453a0d4f7SKishore Padmanabha int32_t
95a8321e09SAndrew Rybchenko ulp_rte_port_hdr_handler(const struct rte_flow_item *item,
963d6ba7cbSKishore Padmanabha 			 struct ulp_rte_parser_params *params);
9753a0d4f7SKishore Padmanabha 
9853a0d4f7SKishore Padmanabha /* Function to handle the RTE item Ethernet Header. */
9953a0d4f7SKishore Padmanabha int32_t
10053a0d4f7SKishore Padmanabha ulp_rte_eth_hdr_handler(const struct rte_flow_item *item,
1013d6ba7cbSKishore Padmanabha 			struct ulp_rte_parser_params *params);
10253a0d4f7SKishore Padmanabha 
10353a0d4f7SKishore Padmanabha /* Function to handle the parsing of RTE Flow item Vlan Header. */
10453a0d4f7SKishore Padmanabha int32_t
10553a0d4f7SKishore Padmanabha ulp_rte_vlan_hdr_handler(const struct rte_flow_item *item,
1063d6ba7cbSKishore Padmanabha 			 struct ulp_rte_parser_params *params);
10753a0d4f7SKishore Padmanabha 
10853a0d4f7SKishore Padmanabha /* Function to handle the parsing of RTE Flow item IPV4 Header. */
10953a0d4f7SKishore Padmanabha int32_t
11053a0d4f7SKishore Padmanabha ulp_rte_ipv4_hdr_handler(const struct rte_flow_item *item,
1113d6ba7cbSKishore Padmanabha 			 struct ulp_rte_parser_params *params);
11253a0d4f7SKishore Padmanabha 
11353a0d4f7SKishore Padmanabha /* Function to handle the parsing of RTE Flow item IPV6 Header. */
11453a0d4f7SKishore Padmanabha int32_t
11553a0d4f7SKishore Padmanabha ulp_rte_ipv6_hdr_handler(const struct rte_flow_item *item,
1163d6ba7cbSKishore Padmanabha 			 struct ulp_rte_parser_params *params);
11753a0d4f7SKishore Padmanabha 
11853a0d4f7SKishore Padmanabha /* Function to handle the parsing of RTE Flow item UDP Header. */
11953a0d4f7SKishore Padmanabha int32_t
12053a0d4f7SKishore Padmanabha ulp_rte_udp_hdr_handler(const struct rte_flow_item *item,
1213d6ba7cbSKishore Padmanabha 			struct ulp_rte_parser_params *params);
12253a0d4f7SKishore Padmanabha 
12353a0d4f7SKishore Padmanabha /* Function to handle the parsing of RTE Flow item TCP Header. */
12453a0d4f7SKishore Padmanabha int32_t
12553a0d4f7SKishore Padmanabha ulp_rte_tcp_hdr_handler(const struct rte_flow_item *item,
1263d6ba7cbSKishore Padmanabha 			struct ulp_rte_parser_params *params);
12753a0d4f7SKishore Padmanabha 
12853a0d4f7SKishore Padmanabha /* Function to handle the parsing of RTE Flow item Vxlan Header. */
12953a0d4f7SKishore Padmanabha int32_t
13053a0d4f7SKishore Padmanabha ulp_rte_vxlan_hdr_handler(const struct rte_flow_item *item,
1313d6ba7cbSKishore Padmanabha 			  struct ulp_rte_parser_params *params);
13253a0d4f7SKishore Padmanabha 
13374cab005SRandy Schacher /* Function to handle the parsing of RTE Flow item Vxlan GPE Header. */
13474cab005SRandy Schacher int32_t
13574cab005SRandy Schacher ulp_rte_vxlan_gpe_hdr_handler(const struct rte_flow_item *item,
13674cab005SRandy Schacher 			      struct ulp_rte_parser_params *params);
13774cab005SRandy Schacher 
138*dd0191d5SShuanglin Wang /* Function to handle the parsing of RTE Flow item GENEVE Header. */
139*dd0191d5SShuanglin Wang int32_t
140*dd0191d5SShuanglin Wang ulp_rte_geneve_hdr_handler(const struct rte_flow_item *item,
141*dd0191d5SShuanglin Wang 			      struct ulp_rte_parser_params *params);
142*dd0191d5SShuanglin Wang 
1437891de8dSVenkat Duvvuru /* Function to handle the parsing of RTE Flow item GRE Header. */
1447891de8dSVenkat Duvvuru int32_t
1457891de8dSVenkat Duvvuru ulp_rte_gre_hdr_handler(const struct rte_flow_item *item,
1467891de8dSVenkat Duvvuru 			struct ulp_rte_parser_params *params);
1477891de8dSVenkat Duvvuru 
1487891de8dSVenkat Duvvuru int32_t
1497891de8dSVenkat Duvvuru ulp_rte_item_any_handler(const struct rte_flow_item *item __rte_unused,
1507891de8dSVenkat Duvvuru 			 struct ulp_rte_parser_params *params __rte_unused);
1517891de8dSVenkat Duvvuru 
1523fe124d2SKishore Padmanabha /* Function to handle the parsing of RTE Flow item ICMP Header. */
1533fe124d2SKishore Padmanabha int32_t
1543fe124d2SKishore Padmanabha ulp_rte_icmp_hdr_handler(const struct rte_flow_item *item,
1553fe124d2SKishore Padmanabha 			 struct ulp_rte_parser_params *params);
1563fe124d2SKishore Padmanabha 
157a4d4308eSKishore Padmanabha /* Function to handle the parsing of RTE Flow item ICMP6 Header. */
158a4d4308eSKishore Padmanabha int32_t
159a4d4308eSKishore Padmanabha ulp_rte_icmp6_hdr_handler(const struct rte_flow_item *item,
160a4d4308eSKishore Padmanabha 			  struct ulp_rte_parser_params *params);
161a4d4308eSKishore Padmanabha 
1622d344c36SRandy Schacher /* Function to handle the parsing of RTE Flow item ECPRI Header. */
1632d344c36SRandy Schacher int32_t
1642d344c36SRandy Schacher ulp_rte_ecpri_hdr_handler(const struct rte_flow_item *item,
1652d344c36SRandy Schacher 			  struct ulp_rte_parser_params *params);
1662d344c36SRandy Schacher 
16753a0d4f7SKishore Padmanabha /* Function to handle the parsing of RTE Flow item void Header. */
16853a0d4f7SKishore Padmanabha int32_t
16953a0d4f7SKishore Padmanabha ulp_rte_void_hdr_handler(const struct rte_flow_item *item,
1703d6ba7cbSKishore Padmanabha 			 struct ulp_rte_parser_params *params);
17153a0d4f7SKishore Padmanabha 
17211c854e2SKishore Padmanabha /* Function to handle the parsing of RTE Flow action void Header. */
17311c854e2SKishore Padmanabha int32_t
17411c854e2SKishore Padmanabha ulp_rte_void_act_handler(const struct rte_flow_action *action_item,
1753d6ba7cbSKishore Padmanabha 			 struct ulp_rte_parser_params *params);
17611c854e2SKishore Padmanabha 
17711c854e2SKishore Padmanabha /* Function to handle the parsing of RTE Flow action RSS Header. */
17811c854e2SKishore Padmanabha int32_t
17911c854e2SKishore Padmanabha ulp_rte_rss_act_handler(const struct rte_flow_action *action_item,
1803d6ba7cbSKishore Padmanabha 			struct ulp_rte_parser_params *params);
18111c854e2SKishore Padmanabha 
18211c854e2SKishore Padmanabha /* Function to handle the parsing of RTE Flow action Mark Header. */
18311c854e2SKishore Padmanabha int32_t
18411c854e2SKishore Padmanabha ulp_rte_mark_act_handler(const struct rte_flow_action *action_item,
1853d6ba7cbSKishore Padmanabha 			 struct ulp_rte_parser_params *params);
18611c854e2SKishore Padmanabha 
18711c854e2SKishore Padmanabha /* Function to handle the parsing of RTE Flow action vxlan_encap Header. */
18811c854e2SKishore Padmanabha int32_t
18911c854e2SKishore Padmanabha ulp_rte_vxlan_encap_act_handler(const struct rte_flow_action *action_item,
1903d6ba7cbSKishore Padmanabha 				struct ulp_rte_parser_params *params);
19111c854e2SKishore Padmanabha 
19211c854e2SKishore Padmanabha /* Function to handle the parsing of RTE Flow action vxlan_encap Header. */
19311c854e2SKishore Padmanabha int32_t
19411c854e2SKishore Padmanabha ulp_rte_vxlan_decap_act_handler(const struct rte_flow_action *action_item,
1953d6ba7cbSKishore Padmanabha 				struct ulp_rte_parser_params *params);
19611c854e2SKishore Padmanabha 
19711c854e2SKishore Padmanabha /* Function to handle the parsing of RTE Flow action drop Header. */
19811c854e2SKishore Padmanabha int32_t
19911c854e2SKishore Padmanabha ulp_rte_drop_act_handler(const struct rte_flow_action *action_item,
2003d6ba7cbSKishore Padmanabha 			 struct ulp_rte_parser_params *params);
20111c854e2SKishore Padmanabha 
20211c854e2SKishore Padmanabha /* Function to handle the parsing of RTE Flow action count. */
20311c854e2SKishore Padmanabha int32_t
20411c854e2SKishore Padmanabha ulp_rte_count_act_handler(const struct rte_flow_action *action_item,
2053d6ba7cbSKishore Padmanabha 			  struct ulp_rte_parser_params *params);
20611c854e2SKishore Padmanabha 
20711c854e2SKishore Padmanabha /* Function to handle the parsing of RTE Flow action PF. */
20811c854e2SKishore Padmanabha int32_t
20911c854e2SKishore Padmanabha ulp_rte_pf_act_handler(const struct rte_flow_action *action_item,
2103d6ba7cbSKishore Padmanabha 		       struct ulp_rte_parser_params *params);
21111c854e2SKishore Padmanabha 
21211c854e2SKishore Padmanabha /* Function to handle the parsing of RTE Flow action VF. */
21311c854e2SKishore Padmanabha int32_t
21411c854e2SKishore Padmanabha ulp_rte_vf_act_handler(const struct rte_flow_action *action_item,
2153d6ba7cbSKishore Padmanabha 		       struct ulp_rte_parser_params *params);
21611c854e2SKishore Padmanabha 
217640b44aaSAndrew Rybchenko /* Parse actions PORT_ID, PORT_REPRESENTOR and REPRESENTED_PORT. */
21811c854e2SKishore Padmanabha int32_t
219640b44aaSAndrew Rybchenko ulp_rte_port_act_handler(const struct rte_flow_action *act_item,
2203d6ba7cbSKishore Padmanabha 			 struct ulp_rte_parser_params *params);
22111c854e2SKishore Padmanabha 
222e19ab942SKishore Padmanabha /* Function to handle the parsing of RTE Flow action pop vlan. */
223e19ab942SKishore Padmanabha int32_t
224e19ab942SKishore Padmanabha ulp_rte_of_pop_vlan_act_handler(const struct rte_flow_action *action_item,
225e19ab942SKishore Padmanabha 				struct ulp_rte_parser_params *params);
226e19ab942SKishore Padmanabha 
227e19ab942SKishore Padmanabha /* Function to handle the parsing of RTE Flow action push vlan. */
228e19ab942SKishore Padmanabha int32_t
229e19ab942SKishore Padmanabha ulp_rte_of_push_vlan_act_handler(const struct rte_flow_action *action_item,
230e19ab942SKishore Padmanabha 				 struct ulp_rte_parser_params *params);
231e19ab942SKishore Padmanabha 
232e19ab942SKishore Padmanabha /* Function to handle the parsing of RTE Flow action set vlan id. */
233e19ab942SKishore Padmanabha int32_t
234e19ab942SKishore Padmanabha ulp_rte_of_set_vlan_vid_act_handler(const struct rte_flow_action *action_item,
235e19ab942SKishore Padmanabha 				    struct ulp_rte_parser_params *params);
236e19ab942SKishore Padmanabha 
237e19ab942SKishore Padmanabha /* Function to handle the parsing of RTE Flow action set vlan pcp. */
238e19ab942SKishore Padmanabha int32_t
239e19ab942SKishore Padmanabha ulp_rte_of_set_vlan_pcp_act_handler(const struct rte_flow_action *action_item,
240e19ab942SKishore Padmanabha 				    struct ulp_rte_parser_params *params);
241e19ab942SKishore Padmanabha 
2422951f7f3SKishore Padmanabha /* Function to handle the parsing of RTE Flow action set ipv4 src.*/
2432951f7f3SKishore Padmanabha int32_t
2442951f7f3SKishore Padmanabha ulp_rte_set_ipv4_src_act_handler(const struct rte_flow_action *action_item,
2452951f7f3SKishore Padmanabha 				 struct ulp_rte_parser_params *params);
2462951f7f3SKishore Padmanabha 
2472951f7f3SKishore Padmanabha /* Function to handle the parsing of RTE Flow action set ipv4 dst.*/
2482951f7f3SKishore Padmanabha int32_t
2492951f7f3SKishore Padmanabha ulp_rte_set_ipv4_dst_act_handler(const struct rte_flow_action *action_item,
2502951f7f3SKishore Padmanabha 				 struct ulp_rte_parser_params *params);
2512951f7f3SKishore Padmanabha 
252*dd0191d5SShuanglin Wang /* Function to handle the parsing of RTE Flow action set ipv6 src.*/
253*dd0191d5SShuanglin Wang int32_t
254*dd0191d5SShuanglin Wang ulp_rte_set_ipv6_src_act_handler(const struct rte_flow_action *action_item,
255*dd0191d5SShuanglin Wang 				 struct ulp_rte_parser_params *params);
256*dd0191d5SShuanglin Wang 
257*dd0191d5SShuanglin Wang /* Function to handle the parsing of RTE Flow action set ipv6 dst.*/
258*dd0191d5SShuanglin Wang int32_t
259*dd0191d5SShuanglin Wang ulp_rte_set_ipv6_dst_act_handler(const struct rte_flow_action *action_item,
260*dd0191d5SShuanglin Wang 				 struct ulp_rte_parser_params *params);
261*dd0191d5SShuanglin Wang 
262ce023cf9SKishore Padmanabha /* Function to handle the parsing of RTE Flow action set tp src.*/
263ce023cf9SKishore Padmanabha int32_t
264ce023cf9SKishore Padmanabha ulp_rte_set_tp_src_act_handler(const struct rte_flow_action *action_item,
265ce023cf9SKishore Padmanabha 			       struct ulp_rte_parser_params *params);
266ce023cf9SKishore Padmanabha 
267ce023cf9SKishore Padmanabha /* Function to handle the parsing of RTE Flow action set tp dst.*/
268ce023cf9SKishore Padmanabha int32_t
269ce023cf9SKishore Padmanabha ulp_rte_set_tp_dst_act_handler(const struct rte_flow_action *action_item,
270ce023cf9SKishore Padmanabha 			       struct ulp_rte_parser_params *params);
271ce023cf9SKishore Padmanabha 
2726af7e459SKishore Padmanabha /* Function to handle the parsing of RTE Flow action dec ttl.*/
2736af7e459SKishore Padmanabha int32_t
2746af7e459SKishore Padmanabha ulp_rte_dec_ttl_act_handler(const struct rte_flow_action *action_item,
2756af7e459SKishore Padmanabha 			    struct ulp_rte_parser_params *params);
276*dd0191d5SShuanglin Wang /* Function to handle the parsing of RTE Flow action set ttl.*/
277*dd0191d5SShuanglin Wang int32_t
278*dd0191d5SShuanglin Wang ulp_rte_set_ttl_act_handler(const struct rte_flow_action *action_item,
279*dd0191d5SShuanglin Wang 			    struct ulp_rte_parser_params *params);
2806d160d77SRandy Schacher /* Function to handle the parsing of RTE Flow action set mac src.*/
2816d160d77SRandy Schacher int32_t
2826d160d77SRandy Schacher ulp_rte_set_mac_src_act_handler(const struct rte_flow_action *action_item,
2836d160d77SRandy Schacher 				struct ulp_rte_parser_params *params);
2846d160d77SRandy Schacher 
2856d160d77SRandy Schacher /* Function to handle the parsing of RTE Flow action set mac dst.*/
2866d160d77SRandy Schacher int32_t
2876d160d77SRandy Schacher ulp_rte_set_mac_dst_act_handler(const struct rte_flow_action *action_item,
2886d160d77SRandy Schacher 				struct ulp_rte_parser_params *params);
2896af7e459SKishore Padmanabha 
290c97a47ecSVenkat Duvvuru /* Function to handle the parsing of RTE Flow action JUMP .*/
291c97a47ecSVenkat Duvvuru int32_t
292c97a47ecSVenkat Duvvuru ulp_rte_jump_act_handler(const struct rte_flow_action *action_item,
293c97a47ecSVenkat Duvvuru 			 struct ulp_rte_parser_params *params);
294c97a47ecSVenkat Duvvuru 
295ddaf0afaSKishore Padmanabha int32_t
296ddaf0afaSKishore Padmanabha ulp_rte_sample_act_handler(const struct rte_flow_action *action_item,
297ddaf0afaSKishore Padmanabha 			   struct ulp_rte_parser_params *params);
298ddaf0afaSKishore Padmanabha 
299ddaf0afaSKishore Padmanabha int32_t
3006d160d77SRandy Schacher ulp_rte_action_hdlr_handler(const struct rte_flow_action *action_item,
301ddaf0afaSKishore Padmanabha 			   struct ulp_rte_parser_params *params);
302ddaf0afaSKishore Padmanabha 
303bdf4a3c6SKishore Padmanabha int32_t
304bdf4a3c6SKishore Padmanabha ulp_vendor_vxlan_decap_act_handler(const struct rte_flow_action *action_item,
305bdf4a3c6SKishore Padmanabha 				   struct ulp_rte_parser_params *params);
306bdf4a3c6SKishore Padmanabha 
307bdf4a3c6SKishore Padmanabha int32_t
308bdf4a3c6SKishore Padmanabha ulp_rte_vendor_vxlan_decap_hdr_handler(const struct rte_flow_item *item,
309bdf4a3c6SKishore Padmanabha 				       struct ulp_rte_parser_params *params);
3106d160d77SRandy Schacher 
3116d160d77SRandy Schacher int32_t
3126d160d77SRandy Schacher ulp_rte_queue_act_handler(const struct rte_flow_action *act_item,
3136d160d77SRandy Schacher 			  struct ulp_rte_parser_params *param);
3146d160d77SRandy Schacher 
3156d160d77SRandy Schacher /* Function to handle the parsing of RTE Flow action set mac src.*/
3166d160d77SRandy Schacher int32_t
3176d160d77SRandy Schacher ulp_rte_set_mac_src_act_handler(const struct rte_flow_action *action_item,
3186d160d77SRandy Schacher 				struct ulp_rte_parser_params *params);
3196d160d77SRandy Schacher 
3206d160d77SRandy Schacher /* Function to handle the parsing of RTE Flow action set mac dst.*/
3216d160d77SRandy Schacher int32_t
3226d160d77SRandy Schacher ulp_rte_set_mac_dst_act_handler(const struct rte_flow_action *action_item,
3236d160d77SRandy Schacher 				struct ulp_rte_parser_params *params);
3244993c210SRandy Schacher 
3254993c210SRandy Schacher /* Function to handle the parsing of RTE Flow action meter. */
3264993c210SRandy Schacher int32_t
3274993c210SRandy Schacher ulp_rte_meter_act_handler(const struct rte_flow_action *action_item,
3284993c210SRandy Schacher 			  struct ulp_rte_parser_params *params);
32953a0d4f7SKishore Padmanabha #endif /* _ULP_RTE_PARSER_H_ */
330