net/bnxt: modify TCAM opcode processing
[dpdk.git] / drivers / net / bnxt / tf_ulp / ulp_template_db_enum.h
index 168e308..ddc396b 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.
  */
 
@@ -9,9 +9,9 @@
 #define BNXT_ULP_REGFILE_MAX_SZ 19
 #define BNXT_ULP_MAX_NUM_DEVICES 4
 #define BNXT_ULP_LOG2_MAX_NUM_DEV 2
-#define BNXT_ULP_CACHE_TBL_MAX_SZ 4
+#define BNXT_ULP_GEN_TBL_MAX_SZ 4
 #define BNXT_ULP_CLASS_SIG_TBL_MAX_SZ 2048
-#define BNXT_ULP_CLASS_MATCH_LIST_MAX_SZ 201
+#define BNXT_ULP_CLASS_MATCH_LIST_MAX_SZ 217
 #define BNXT_ULP_CLASS_HID_LOW_PRIME 7919
 #define BNXT_ULP_CLASS_HID_HIGH_PRIME 7907
 #define BNXT_ULP_CLASS_HID_SHFTR 32
@@ -27,6 +27,7 @@
 #define BNXT_ULP_CACHE_TBL_IDENT_MAX_NUM 2
 #define BNXT_ULP_GLB_RESOURCE_TBL_MAX_SZ 8
 #define BNXT_ULP_GLB_TEMPLATE_TBL_MAX_SZ 1
+#define BNXT_ULP_GLB_FIELD_TBL_SHIFT 7
 
 enum bnxt_ulp_action_bit {
        BNXT_ULP_ACTION_BIT_MARK             = 0x0000000000000001,
@@ -52,7 +53,11 @@ enum bnxt_ulp_action_bit {
        BNXT_ULP_ACTION_BIT_SET_TP_SRC       = 0x0000000000100000,
        BNXT_ULP_ACTION_BIT_SET_TP_DST       = 0x0000000000200000,
        BNXT_ULP_ACTION_BIT_VXLAN_ENCAP      = 0x0000000000400000,
-       BNXT_ULP_ACTION_BIT_LAST             = 0x0000000000800000
+       BNXT_ULP_ACTION_BIT_JUMP             = 0x0000000000800000,
+       BNXT_ULP_ACTION_BIT_SHARED           = 0x0000000001000000,
+       BNXT_ULP_ACTION_BIT_SAMPLE           = 0x0000000002000000,
+       BNXT_ULP_ACTION_BIT_SHARED_SAMPLE    = 0x0000000004000000,
+       BNXT_ULP_ACTION_BIT_LAST             = 0x0000000008000000
 };
 
 enum bnxt_ulp_hdr_bit {
@@ -72,7 +77,8 @@ enum bnxt_ulp_hdr_bit {
        BNXT_ULP_HDR_BIT_I_IPV6              = 0x0000000000002000,
        BNXT_ULP_HDR_BIT_I_TCP               = 0x0000000000004000,
        BNXT_ULP_HDR_BIT_I_UDP               = 0x0000000000008000,
-       BNXT_ULP_HDR_BIT_LAST                = 0x0000000000010000
+       BNXT_ULP_HDR_BIT_F1                  = 0x0000000000010000,
+       BNXT_ULP_HDR_BIT_LAST                = 0x0000000000020000
 };
 
 enum bnxt_ulp_act_type {
@@ -133,18 +139,31 @@ enum bnxt_ulp_cf_idx {
        BNXT_ULP_CF_IDX_L4_HDR_CNT = 41,
        BNXT_ULP_CF_IDX_VFR_MODE = 42,
        BNXT_ULP_CF_IDX_LOOPBACK_PARIF = 43,
-       BNXT_ULP_CF_IDX_LAST = 44
+       BNXT_ULP_CF_IDX_L3_TUN = 44,
+       BNXT_ULP_CF_IDX_L3_TUN_DECAP = 45,
+       BNXT_ULP_CF_IDX_LAST = 46
 };
 
-enum bnxt_ulp_cond_opcode {
-       BNXT_ULP_COND_OPCODE_NOP = 0,
-       BNXT_ULP_COND_OPCODE_COMP_FIELD_IS_SET = 1,
-       BNXT_ULP_COND_OPCODE_ACTION_BIT_IS_SET = 2,
-       BNXT_ULP_COND_OPCODE_HDR_BIT_IS_SET = 3,
-       BNXT_ULP_COND_OPCODE_COMP_FIELD_NOT_SET = 4,
-       BNXT_ULP_COND_OPCODE_ACTION_BIT_NOT_SET = 5,
-       BNXT_ULP_COND_OPCODE_HDR_BIT_NOT_SET = 6,
-       BNXT_ULP_COND_OPCODE_LAST = 7
+enum bnxt_ulp_cond_list_opc {
+       BNXT_ULP_COND_LIST_OPC_TRUE = 0,
+       BNXT_ULP_COND_LIST_OPC_FALSE = 1,
+       BNXT_ULP_COND_LIST_OPC_OR = 2,
+       BNXT_ULP_COND_LIST_OPC_AND = 3,
+       BNXT_ULP_COND_LIST_OPC_LAST = 4
+};
+
+enum bnxt_ulp_cond_opc {
+       BNXT_ULP_COND_OPC_COMP_FIELD_IS_SET = 0,
+       BNXT_ULP_COND_OPC_COMP_FIELD_NOT_SET = 1,
+       BNXT_ULP_COND_OPC_ACTION_BIT_IS_SET = 2,
+       BNXT_ULP_COND_OPC_ACTION_BIT_NOT_SET = 3,
+       BNXT_ULP_COND_OPC_HDR_BIT_IS_SET = 4,
+       BNXT_ULP_COND_OPC_HDR_BIT_NOT_SET = 5,
+       BNXT_ULP_COND_OPC_FIELD_BIT_IS_SET = 6,
+       BNXT_ULP_COND_OPC_FIELD_BIT_NOT_SET = 7,
+       BNXT_ULP_COND_OPC_REGFILE_IS_SET = 8,
+       BNXT_ULP_COND_OPC_REGFILE_NOT_SET = 9,
+       BNXT_ULP_COND_OPC_LAST = 10
 };
 
 enum bnxt_ulp_critical_resource {
@@ -172,6 +191,14 @@ enum bnxt_ulp_direction {
        BNXT_ULP_DIRECTION_LAST = 2
 };
 
+enum bnxt_ulp_fdb_opc {
+       BNXT_ULP_FDB_OPC_PUSH = 0,
+       BNXT_ULP_FDB_OPC_ALLOC_PUSH_REGFILE = 1,
+       BNXT_ULP_FDB_OPC_PUSH_REGFILE = 2,
+       BNXT_ULP_FDB_OPC_NOP = 3,
+       BNXT_ULP_FDB_OPC_LAST = 4
+};
+
 enum bnxt_ulp_flow_mem_type {
        BNXT_ULP_FLOW_MEM_TYPE_INT = 0,
        BNXT_ULP_FLOW_MEM_TYPE_EXT = 1,
@@ -179,6 +206,13 @@ enum bnxt_ulp_flow_mem_type {
        BNXT_ULP_FLOW_MEM_TYPE_LAST = 3
 };
 
+enum bnxt_ulp_generic_tbl_opc {
+       BNXT_ULP_GENERIC_TBL_OPC_NOT_USED = 0,
+       BNXT_ULP_GENERIC_TBL_OPC_READ = 1,
+       BNXT_ULP_GENERIC_TBL_OPC_WRITE = 2,
+       BNXT_ULP_GENERIC_TBL_OPC_LAST = 3
+};
+
 enum bnxt_ulp_glb_regfile_index {
        BNXT_ULP_GLB_REGFILE_INDEX_NOT_USED = 0,
        BNXT_ULP_GLB_REGFILE_INDEX_GLB_PROF_FUNC_ID = 1,
@@ -257,25 +291,43 @@ enum bnxt_ulp_priority {
 
 enum bnxt_ulp_regfile_index {
        BNXT_ULP_REGFILE_INDEX_NOT_USED = 0,
-       BNXT_ULP_REGFILE_INDEX_CLASS_TID = 1,
-       BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 = 2,
-       BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_1 = 3,
-       BNXT_ULP_REGFILE_INDEX_PROF_FUNC_ID_0 = 4,
-       BNXT_ULP_REGFILE_INDEX_PROF_FUNC_ID_1 = 5,
-       BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 = 6,
-       BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_1 = 7,
-       BNXT_ULP_REGFILE_INDEX_WC_PROFILE_ID_0 = 8,
-       BNXT_ULP_REGFILE_INDEX_WC_PROFILE_ID_1 = 9,
-       BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR = 10,
-       BNXT_ULP_REGFILE_INDEX_ACTION_PTR_0 = 11,
-       BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 = 12,
-       BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_1 = 13,
-       BNXT_ULP_REGFILE_INDEX_CRITICAL_RESOURCE = 14,
-       BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 = 15,
-       BNXT_ULP_REGFILE_INDEX_MAIN_SP_PTR = 16,
-       BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 = 17,
-       BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 = 18,
-       BNXT_ULP_REGFILE_INDEX_LAST = 19
+       BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_0 = 1,
+       BNXT_ULP_REGFILE_INDEX_L2_CNTXT_ID_1 = 2,
+       BNXT_ULP_REGFILE_INDEX_PROF_FUNC_ID_0 = 3,
+       BNXT_ULP_REGFILE_INDEX_PROF_FUNC_ID_1 = 4,
+       BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_0 = 5,
+       BNXT_ULP_REGFILE_INDEX_EM_PROFILE_ID_1 = 6,
+       BNXT_ULP_REGFILE_INDEX_WC_PROFILE_ID_0 = 7,
+       BNXT_ULP_REGFILE_INDEX_WC_PROFILE_ID_1 = 8,
+       BNXT_ULP_REGFILE_INDEX_MAIN_ACTION_PTR = 9,
+       BNXT_ULP_REGFILE_INDEX_ACTION_PTR_0 = 10,
+       BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_0 = 11,
+       BNXT_ULP_REGFILE_INDEX_ENCAP_PTR_1 = 12,
+       BNXT_ULP_REGFILE_INDEX_CRITICAL_RESOURCE = 13,
+       BNXT_ULP_REGFILE_INDEX_FLOW_CNTR_PTR_0 = 14,
+       BNXT_ULP_REGFILE_INDEX_MAIN_SP_PTR = 15,
+       BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_SRC_PTR_0 = 16,
+       BNXT_ULP_REGFILE_INDEX_MODIFY_IPV4_DST_PTR_0 = 17,
+       BNXT_ULP_REGFILE_INDEX_ACTION_REC_SIZE = 18,
+       BNXT_ULP_REGFILE_INDEX_L2_CNTXT_TCAM_INDEX_0 = 19,
+       BNXT_ULP_REGFILE_INDEX_L2_CNTXT_TCAM_INDEX_1 = 20,
+       BNXT_ULP_REGFILE_INDEX_PROFILE_TCAM_INDEX_0 = 21,
+       BNXT_ULP_REGFILE_INDEX_PROFILE_TCAM_INDEX_1 = 22,
+       BNXT_ULP_REGFILE_INDEX_WC_TCAM_INDEX_0 = 23,
+       BNXT_ULP_REGFILE_INDEX_WC_TCAM_INDEX_1 = 24,
+       BNXT_ULP_REGFILE_INDEX_SRC_PROPERTY_PTR = 25,
+       BNXT_ULP_REGFILE_INDEX_GENERIC_TBL_HIT = 26,
+       BNXT_ULP_REGFILE_INDEX_MIRROR_PTR_0 = 27,
+       BNXT_ULP_REGFILE_INDEX_CLASS_TID = 28,
+       BNXT_ULP_REGFILE_INDEX_FID = 29,
+       BNXT_ULP_REGFILE_INDEX_LAST = 30
+};
+
+enum bnxt_ulp_tcam_tbl_opc {
+       BNXT_ULP_TCAM_TBL_OPC_NOT_USED = 0,
+       BNXT_ULP_TCAM_TBL_OPC_ALLOC_WR_REGFILE = 1,
+       BNXT_ULP_TCAM_TBL_OPC_SRCH_ALLOC_WR_REGFILE = 2,
+       BNXT_ULP_TCAM_TBL_OPC_LAST = 3
 };
 
 enum bnxt_ulp_search_before_alloc {
@@ -318,7 +370,7 @@ enum bnxt_ulp_resource_func {
        BNXT_ULP_RESOURCE_FUNC_RSVD2 = 0x60,
        BNXT_ULP_RESOURCE_FUNC_TCAM_TABLE = 0x80,
        BNXT_ULP_RESOURCE_FUNC_INDEX_TABLE = 0x81,
-       BNXT_ULP_RESOURCE_FUNC_CACHE_TABLE = 0x82,
+       BNXT_ULP_RESOURCE_FUNC_GENERIC_TABLE = 0x82,
        BNXT_ULP_RESOURCE_FUNC_IDENTIFIER = 0x83,
        BNXT_ULP_RESOURCE_FUNC_IF_TABLE = 0x84,
        BNXT_ULP_RESOURCE_FUNC_HW_FID = 0x85,
@@ -332,7 +384,8 @@ enum bnxt_ulp_resource_sub_type {
        BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_NORMAL = 0,
        BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_VFR_CFA_ACTION = 1,
        BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_INT_COUNT = 2,
-       BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_EXT_COUNT = 3,
+       BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_INT_COUNT_ACC = 3,
+       BNXT_ULP_RESOURCE_SUB_TYPE_INDEX_TYPE_EXT_COUNT = 4,
        BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_L2_CNTXT_TCAM = 0,
        BNXT_ULP_RESOURCE_SUB_TYPE_CACHE_TYPE_PROFILE_TCAM = 1
 };
@@ -340,6 +393,10 @@ enum bnxt_ulp_resource_sub_type {
 enum bnxt_ulp_sym {
        BNXT_ULP_SYM_PKT_TYPE_IGNORE = 0,
        BNXT_ULP_SYM_PKT_TYPE_L2 = 0,
+       BNXT_ULP_SYM_PKT_TYPE_0_IGNORE = 0,
+       BNXT_ULP_SYM_PKT_TYPE_0_L2 = 0,
+       BNXT_ULP_SYM_PKT_TYPE_1_IGNORE = 0,
+       BNXT_ULP_SYM_PKT_TYPE_1_L2 = 0,
        BNXT_ULP_SYM_RECYCLE_CNT_IGNORE = 0,
        BNXT_ULP_SYM_RECYCLE_CNT_ZERO = 0,
        BNXT_ULP_SYM_RECYCLE_CNT_ONE = 1,
@@ -550,7 +607,8 @@ enum bnxt_ulp_sym {
        BNXT_ULP_SYM_IP_PROTO_UDP = 17,
        BNXT_ULP_SYM_VF_FUNC_PARIF = 15,
        BNXT_ULP_SYM_NO = 0,
-       BNXT_ULP_SYM_YES = 1
+       BNXT_ULP_SYM_YES = 1,
+       BNXT_ULP_SYM_RECYCLE_DST = 0x800
 };
 
 enum bnxt_ulp_wh_plus {
@@ -599,6 +657,7 @@ enum bnxt_ulp_act_prop_sz {
        BNXT_ULP_ACT_PROP_SZ_ENCAP_IP_SRC = 16,
        BNXT_ULP_ACT_PROP_SZ_ENCAP_UDP = 4,
        BNXT_ULP_ACT_PROP_SZ_ENCAP_TUN = 32,
+       BNXT_ULP_ACT_PROP_SZ_JUMP = 4,
        BNXT_ULP_ACT_PROP_SZ_LAST = 4
 };
 
@@ -643,7 +702,8 @@ enum bnxt_ulp_act_prop_idx {
        BNXT_ULP_ACT_PROP_IDX_ENCAP_IP_SRC = 205,
        BNXT_ULP_ACT_PROP_IDX_ENCAP_UDP = 221,
        BNXT_ULP_ACT_PROP_IDX_ENCAP_TUN = 225,
-       BNXT_ULP_ACT_PROP_IDX_LAST = 257
+       BNXT_ULP_ACT_PROP_IDX_JUMP = 257,
+       BNXT_ULP_ACT_PROP_IDX_LAST = 261
 };
 
 enum bnxt_ulp_class_hid {
@@ -795,6 +855,22 @@ enum bnxt_ulp_class_hid {
        BNXT_ULP_CLASS_HID_05b9 = 0x05b9,
        BNXT_ULP_CLASS_HID_0371 = 0x0371,
        BNXT_ULP_CLASS_HID_00e1 = 0x00e1,
+       BNXT_ULP_CLASS_HID_0000 = 0x0000,
+       BNXT_ULP_CLASS_HID_00ce = 0x00ce,
+       BNXT_ULP_CLASS_HID_01b6 = 0x01b6,
+       BNXT_ULP_CLASS_HID_0074 = 0x0074,
+       BNXT_ULP_CLASS_HID_00fe = 0x00fe,
+       BNXT_ULP_CLASS_HID_03bc = 0x03bc,
+       BNXT_ULP_CLASS_HID_0206 = 0x0206,
+       BNXT_ULP_CLASS_HID_02c4 = 0x02c4,
+       BNXT_ULP_CLASS_HID_055a = 0x055a,
+       BNXT_ULP_CLASS_HID_045a = 0x045a,
+       BNXT_ULP_CLASS_HID_061a = 0x061a,
+       BNXT_ULP_CLASS_HID_051a = 0x051a,
+       BNXT_ULP_CLASS_HID_074a = 0x074a,
+       BNXT_ULP_CLASS_HID_004e = 0x004e,
+       BNXT_ULP_CLASS_HID_040a = 0x040a,
+       BNXT_ULP_CLASS_HID_010e = 0x010e,
        BNXT_ULP_CLASS_HID_048b = 0x048b,
        BNXT_ULP_CLASS_HID_0749 = 0x0749,
        BNXT_ULP_CLASS_HID_05f1 = 0x05f1,