/* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2014-2019 Broadcom
+ * Copyright(c) 2014-2021 Broadcom
* All rights reserved.
*/
/* 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;
extern struct bnxt_ulp_act_match_info ulp_act_match_list[];
/* Device Specific Tables for mapper */
+struct bnxt_ulp_mapper_cond_info {
+ enum bnxt_ulp_cond_opc cond_opcode;
+ uint32_t cond_operand;
+};
+
+struct bnxt_ulp_mapper_cond_list_info {
+ enum bnxt_ulp_cond_list_opc cond_list_opcode;
+ uint32_t cond_start_idx;
+ uint32_t cond_nums;
+};
+
struct ulp_template_device_tbls {
struct bnxt_ulp_mapper_tbl_list_info *tmpl_list;
struct bnxt_ulp_mapper_tbl_info *tbl_list;
struct bnxt_ulp_mapper_key_field_info *key_field_list;
struct bnxt_ulp_mapper_result_field_info *result_field_list;
struct bnxt_ulp_mapper_ident_info *ident_list;
+ struct bnxt_ulp_mapper_cond_info *cond_list;
};
/* Device specific parameters */
uint32_t device_name;
uint32_t start_tbl_idx;
uint32_t num_tbls;
+ struct bnxt_ulp_mapper_cond_list_info reject_info;
};
struct bnxt_ulp_mapper_tbl_info {
enum bnxt_ulp_resource_func resource_func;
uint32_t resource_type; /* TF_ enum type */
enum bnxt_ulp_resource_sub_type resource_sub_type;
- enum bnxt_ulp_cond_opcode cond_opcode;
- uint32_t cond_operand;
+ struct bnxt_ulp_mapper_cond_list_info execute_info;
+ enum bnxt_ulp_cond_opc cond_opcode;
+ uint32_t cond_operand;
enum bnxt_ulp_mem_type_opcode mem_type_opcode;
uint8_t direction;
uint32_t priority;
enum bnxt_ulp_mark_db_opcode mark_db_opcode;
enum bnxt_ulp_index_opcode index_opcode;
uint32_t index_operand;
+
+ /* Table opcode for table operations */
+ uint32_t tbl_opcode;
+ uint32_t tbl_operand;
+
+ /* FDB table opcode */
+ enum bnxt_ulp_fdb_opc fdb_opcode;
+ uint32_t flow_db_operand;
};
struct bnxt_ulp_mapper_key_field_info {
uint16_t num_entries;
};
+struct bnxt_ulp_generic_tbl_params {
+ uint16_t result_num_entries;
+ uint16_t result_byte_size;
+ enum bnxt_ulp_byte_order result_byte_order;
+};
+
/*
* Flow Mapper Static Data Externs:
* Access to the below static data should be done through access functions and
*/
extern struct bnxt_ulp_cache_tbl_params ulp_cache_tbl_params[];
+/*
+ * The ulp_generic_tbl_parms table provides the sizes of the generic tables the
+ * mapper must dynamically allocate during initialization.
+ */
+extern struct bnxt_ulp_generic_tbl_params ulp_generic_tbl_params[];
/*
* The ulp_global template table is used to initialize default entries
* that could be reused by other templates.