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