net/bnxt: update log messages in TruFlow path
[dpdk.git] / drivers / net / bnxt / tf_ulp / ulp_rte_parser.h
index a71aabe..e4225d0 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2014-2020 Broadcom
+ * Copyright(c) 2014-2021 Broadcom
  * All rights reserved.
  */
 
@@ -12,6 +12,7 @@
 #include "ulp_template_db_enum.h"
 #include "ulp_template_struct.h"
 #include "ulp_mapper.h"
+#include "bnxt_tf_common.h"
 
 /* defines to be used in the tunnel header parsing */
 #define BNXT_ULP_ENCAP_IPV4_VER_HLEN_TOS       2
@@ -23,7 +24,7 @@
 #define BNXT_ULP_ENCAP_IPV6_DO                 2
 #define BNXT_ULP_ENCAP_IPV6_SIZE               24
 #define BNXT_ULP_ENCAP_UDP_SIZE                        4
-#define BNXT_ULP_INVALID_SVIF_VAL              -1U
+#define BNXT_ULP_INVALID_SVIF_VAL              -1UL
 
 #define        BNXT_ULP_GET_IPV6_VER(vtcf)             \
                        (((vtcf) & BNXT_ULP_PARSER_IPV6_VER_MASK) >> 28)
 #define        BNXT_ULP_GET_IPV6_FLOWLABEL(vtcf)       \
                        ((vtcf) & BNXT_ULP_PARSER_IPV6_FLOW_LABEL)
 #define        BNXT_ULP_PARSER_IPV6_VER_MASK           0xf0000000
+#define BNXT_ULP_IPV6_DFLT_VER                 0x60000000
 #define        BNXT_ULP_PARSER_IPV6_TC                 0x0ff00000
 #define        BNXT_ULP_PARSER_IPV6_FLOW_LABEL         0x000fffff
+#define BNXT_ULP_DEFAULT_TTL                   64
+
+enum bnxt_ulp_prsr_action {
+       ULP_PRSR_ACT_DEFAULT = 0,
+       ULP_PRSR_ACT_MATCH_IGNORE = 1,
+       ULP_PRSR_ACT_MASK_IGNORE = 2,
+       ULP_PRSR_ACT_SPEC_IGNORE = 4
+};
 
 void
 bnxt_ulp_init_mapper_params(struct bnxt_ulp_mapper_create_parms *mapper_cparms,
                            struct ulp_rte_parser_params *params,
-                           uint32_t priority, uint32_t class_id,
-                           uint32_t act_tmpl, uint16_t func_id,
-                           uint32_t flow_id,
                            enum bnxt_ulp_fdb_type flow_type);
 
 /* Function to handle the parsing of the RTE port id. */
@@ -70,7 +77,7 @@ bnxt_ulp_rte_parser_act_parse(const struct rte_flow_action actions[],
 /*
  * Function to handle the post processing of the parsing details
  */
-int32_t
+void
 bnxt_ulp_rte_parser_post_process(struct ulp_rte_parser_params *params);
 
 /* Function to handle the parsing of RTE Flow item PF Header. */
@@ -83,10 +90,10 @@ int32_t
 ulp_rte_vf_hdr_handler(const struct rte_flow_item *item,
                       struct ulp_rte_parser_params *params);
 
-/* Function to handle the parsing of RTE Flow item port id Header. */
+/* Parse items PORT_ID, PORT_REPRESENTOR and REPRESENTED_PORT. */
 int32_t
-ulp_rte_port_id_hdr_handler(const struct rte_flow_item *item,
-                           struct ulp_rte_parser_params *params);
+ulp_rte_port_hdr_handler(const struct rte_flow_item *item,
+                        struct ulp_rte_parser_params *params);
 
 /* Function to handle the parsing of RTE Flow item port Header. */
 int32_t
@@ -128,6 +135,25 @@ int32_t
 ulp_rte_vxlan_hdr_handler(const struct rte_flow_item *item,
                          struct ulp_rte_parser_params *params);
 
+/* Function to handle the parsing of RTE Flow item GRE Header. */
+int32_t
+ulp_rte_gre_hdr_handler(const struct rte_flow_item *item,
+                       struct ulp_rte_parser_params *params);
+
+int32_t
+ulp_rte_item_any_handler(const struct rte_flow_item *item __rte_unused,
+                        struct ulp_rte_parser_params *params __rte_unused);
+
+/* Function to handle the parsing of RTE Flow item ICMP Header. */
+int32_t
+ulp_rte_icmp_hdr_handler(const struct rte_flow_item *item,
+                        struct ulp_rte_parser_params *params);
+
+/* Function to handle the parsing of RTE Flow item ICMP6 Header. */
+int32_t
+ulp_rte_icmp6_hdr_handler(const struct rte_flow_item *item,
+                         struct ulp_rte_parser_params *params);
+
 /* Function to handle the parsing of RTE Flow item void Header. */
 int32_t
 ulp_rte_void_hdr_handler(const struct rte_flow_item *item,
@@ -178,10 +204,10 @@ int32_t
 ulp_rte_vf_act_handler(const struct rte_flow_action *action_item,
                       struct ulp_rte_parser_params *params);
 
-/* Function to handle the parsing of RTE Flow action port_id. */
+/* Parse actions PORT_ID, PORT_REPRESENTOR and REPRESENTED_PORT. */
 int32_t
-ulp_rte_port_id_act_handler(const struct rte_flow_action *act_item,
-                           struct ulp_rte_parser_params *params);
+ulp_rte_port_act_handler(const struct rte_flow_action *act_item,
+                        struct ulp_rte_parser_params *params);
 
 /* Function to handle the parsing of RTE Flow action phy_port. */
 int32_t
@@ -238,4 +264,20 @@ int32_t
 ulp_rte_jump_act_handler(const struct rte_flow_action *action_item,
                         struct ulp_rte_parser_params *params);
 
+int32_t
+ulp_rte_sample_act_handler(const struct rte_flow_action *action_item,
+                          struct ulp_rte_parser_params *params);
+
+int32_t
+ulp_rte_shared_act_handler(const struct rte_flow_action *action_item,
+                          struct ulp_rte_parser_params *params);
+
+int32_t
+ulp_vendor_vxlan_decap_act_handler(const struct rte_flow_action *action_item,
+                                  struct ulp_rte_parser_params *params);
+
+int32_t
+ulp_rte_vendor_vxlan_decap_hdr_handler(const struct rte_flow_item *item,
+                                      struct ulp_rte_parser_params *params);
+
 #endif /* _ULP_RTE_PARSER_H_ */