+/* Structure to be used for passing all the parser functions */
+struct ulp_rte_parser_params {
+ STAILQ_ENTRY(ulp_rte_parser_params) next;
+ struct ulp_rte_hdr_bitmap hdr_bitmap;
+ struct ulp_rte_hdr_bitmap hdr_fp_bit;
+ struct ulp_rte_field_bitmap fld_bitmap;
+ struct ulp_rte_field_bitmap fld_s_bitmap;
+ struct ulp_rte_hdr_field hdr_field[BNXT_ULP_PROTO_HDR_MAX];
+ uint64_t comp_fld[BNXT_ULP_CF_IDX_LAST];
+ uint32_t field_idx;
+ struct ulp_rte_act_bitmap act_bitmap;
+ struct ulp_rte_act_prop act_prop;
+ uint32_t dir_attr;
+ uint32_t priority;
+ uint32_t fid;
+ uint32_t parent_flow;
+ uint32_t parent_fid;
+ uint16_t func_id;
+ uint16_t port_id;
+ uint32_t class_id;
+ uint32_t act_tmpl;
+ struct bnxt_ulp_context *ulp_ctx;
+ uint32_t hdr_sig_id;
+ uint32_t flow_sig_id;
+ uint32_t flow_pattern_id;
+ uint32_t act_pattern_id;
+ uint8_t app_id;
+};
+
+/* Flow Parser Header Information Structure */
+struct bnxt_ulp_rte_hdr_info {
+ enum bnxt_ulp_hdr_type hdr_type;
+ /* Flow Parser Protocol Header Function Prototype */
+ int (*proto_hdr_func)(const struct rte_flow_item *item_list,
+ struct ulp_rte_parser_params *params);
+};
+
+/* Flow Parser Header Information Structure Array defined in template source*/
+extern struct bnxt_ulp_rte_hdr_info ulp_hdr_info[];
+
+/* Flow Parser Action Information Structure */
+struct bnxt_ulp_rte_act_info {
+ enum bnxt_ulp_act_type act_type;
+ /* Flow Parser Protocol Action Function Prototype */
+ int32_t (*proto_act_func)
+ (const struct rte_flow_action *action_item,
+ struct ulp_rte_parser_params *params);
+};
+
+/* Flow Parser Action Information Structure Array defined in template source*/
+extern struct bnxt_ulp_rte_act_info ulp_act_info[];
+