#define BNXT_ULP_PROTO_HDR_TCP_NUM 9
#define BNXT_ULP_PROTO_HDR_VXLAN_NUM 4
#define BNXT_ULP_PROTO_HDR_GRE_NUM 6
+#define BNXT_ULP_PROTO_HDR_ICMP_NUM 5
#define BNXT_ULP_PROTO_HDR_MAX 128
#define BNXT_ULP_PROTO_HDR_FIELD_SVIF_IDX 1
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];
uint32_t comp_fld[BNXT_ULP_CF_IDX_LAST];
uint32_t field_idx;
int32_t cond_false_goto;
};
+struct bnxt_ulp_mapper_cc_upd_info {
+ enum bnxt_ulp_cc_upd_opc cc_opc;
+ enum bnxt_ulp_cc_upd_src cc_src1;
+ enum bnxt_ulp_cc_upd_src cc_src2;
+ uint16_t cc_opr1;
+ uint16_t cc_opr2;
+ uint16_t cc_dst_opr;
+};
+
struct bnxt_ulp_template_device_tbls {
struct bnxt_ulp_mapper_tmpl_info *tmpl_list;
uint32_t tmpl_list_size;
uint64_t packet_count_mask;
uint32_t byte_count_shift;
uint32_t packet_count_shift;
+ uint32_t dynamic_pad_en;
+ uint16_t em_blk_size_bits;
+ uint16_t em_blk_align_bits;
+ uint16_t em_key_align_bytes;
+ uint16_t em_result_size_bits;
+ uint16_t wc_slice_width;
+ uint16_t wc_max_slices;
+ uint32_t wc_mode_list[4];
+ uint32_t wc_mod_list_max_size;
+ uint32_t wc_ctl_size_bits;
const struct bnxt_ulp_template_device_tbls *dev_tbls;
};
uint32_t resource_type; /* TF_ enum type */
enum bnxt_ulp_resource_sub_type resource_sub_type;
struct bnxt_ulp_mapper_cond_list_info execute_info;
+ struct bnxt_ulp_mapper_cc_upd_info cc_upd_info;
enum bnxt_ulp_cond_opc cond_opcode;
uint32_t cond_operand;
- enum bnxt_ulp_mem_type_opc mem_type_opcode;
uint8_t direction;
enum bnxt_ulp_pri_opc pri_opcode;
uint32_t pri_operand;
+ enum bnxt_ulp_byte_order byte_order;
/* conflict resolution opcode */
enum bnxt_ulp_accept_opc accept_opcode;
uint8_t description[64];
uint16_t field_bit_size;
enum bnxt_ulp_field_opc field_opc;
- enum bnxt_ulp_field_cond_src field_cond_src;
- uint8_t field_cond_opr[16];
enum bnxt_ulp_field_src field_src1;
uint8_t field_opr1[16];
enum bnxt_ulp_field_src field_src2;
uint8_t field_opr2[16];
-
+ enum bnxt_ulp_field_src field_src3;
+ uint8_t field_opr3[16];
};
struct bnxt_ulp_mapper_key_info {
};
struct bnxt_ulp_glb_resource_info {
+ uint8_t app_id;
+ enum bnxt_ulp_device_id device_id;
+ enum tf_dir direction;
enum bnxt_ulp_resource_func resource_func;
uint32_t resource_type; /* TF_ enum type */
enum bnxt_ulp_glb_rf_idx glb_regfile_index;
+};
+
+struct bnxt_ulp_resource_resv_info {
+ uint8_t app_id;
+ enum bnxt_ulp_device_id device_id;
enum tf_dir direction;
+ enum bnxt_ulp_resource_func resource_func;
+ uint32_t resource_type; /* TF_ enum type */
+ uint32_t count;
+};
+
+struct bnxt_ulp_app_capabilities_info {
+ uint8_t app_id;
+ enum bnxt_ulp_device_id device_id;
+ uint32_t flags;
};
struct bnxt_ulp_cache_tbl_params {
*/
extern struct bnxt_ulp_glb_resource_info ulp_glb_resource_tbl[];
+/*
+ * The ulp_app_glb_resource_tbl provides the list of shared resources required
+ * in the event that shared session is enabled.
+ */
+extern struct bnxt_ulp_glb_resource_info ulp_app_glb_resource_tbl[];
+
+/*
+ * The ulp_resource_resv_list provides the list of tf resources required when
+ * calling tf_open.
+ */
+extern struct bnxt_ulp_resource_resv_info ulp_resource_resv_list[];
+
+/*
+ * The_app_cap_info_list provides the list of ULP capabilities per app/device.
+ */
+extern struct bnxt_ulp_app_capabilities_info ulp_app_cap_info_list[];
+
/*
* The ulp_cache_tbl_parms table provides the sizes of the cache tables the
* mapper must dynamically allocate during initialization.