net/ice/base: preserve NVM capabilities in safe mode
[dpdk.git] / drivers / net / ice / base / ice_type.h
index 394867f..f80e19d 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2001-2020
+ * Copyright(c) 2001-2020 Intel Corporation
  */
 
 #ifndef _ICE_TYPE_H_
 
 #define IS_ASCII(_ch)  ((_ch) < 0x80)
 
+#define STRUCT_HACK_VAR_LEN
+/**
+ * ice_struct_size - size of struct with C99 flexible array member
+ * @ptr: pointer to structure
+ * @field: flexible array member (last member of the structure)
+ * @num: number of elements of that flexible array member
+ */
 #define ice_struct_size(ptr, field, num) \
        (sizeof(*(ptr)) + sizeof(*(ptr)->field) * (num))
 
@@ -218,6 +225,7 @@ enum ice_media_type {
        ICE_MEDIA_BASET,
        ICE_MEDIA_BACKPLANE,
        ICE_MEDIA_DA,
+       ICE_MEDIA_AUI,
 };
 
 /* Software VSI types. */
@@ -295,6 +303,22 @@ enum ice_fltr_ptype {
        ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_TCP,
        ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_ICMP,
        ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_OTHER,
+       ICE_FLTR_PTYPE_NONF_IPV6_GTPU_IPV6_OTHER,
+       ICE_FLTR_PTYPE_NONF_IPV4_GTPU_EH_IPV4_OTHER,
+       ICE_FLTR_PTYPE_NONF_IPV6_GTPU_EH_IPV6_OTHER,
+       ICE_FLTR_PTYPE_NONF_IPV4_L2TPV3,
+       ICE_FLTR_PTYPE_NONF_IPV6_L2TPV3,
+       ICE_FLTR_PTYPE_NONF_IPV4_ESP,
+       ICE_FLTR_PTYPE_NONF_IPV6_ESP,
+       ICE_FLTR_PTYPE_NONF_IPV4_AH,
+       ICE_FLTR_PTYPE_NONF_IPV6_AH,
+       ICE_FLTR_PTYPE_NONF_IPV4_NAT_T_ESP,
+       ICE_FLTR_PTYPE_NONF_IPV6_NAT_T_ESP,
+       ICE_FLTR_PTYPE_NONF_IPV4_PFCP_NODE,
+       ICE_FLTR_PTYPE_NONF_IPV4_PFCP_SESSION,
+       ICE_FLTR_PTYPE_NONF_IPV6_PFCP_NODE,
+       ICE_FLTR_PTYPE_NONF_IPV6_PFCP_SESSION,
+       ICE_FLTR_PTYPE_NON_IP_L2,
        ICE_FLTR_PTYPE_FRAG_IPV4,
        ICE_FLTR_PTYPE_NONF_IPV6_UDP,
        ICE_FLTR_PTYPE_NONF_IPV6_TCP,
@@ -495,7 +519,7 @@ struct ice_nvm_info {
        u32 flash_size;                 /* Size of available flash in bytes */
        u8 major_ver;                   /* major version of dev starter */
        u8 minor_ver;                   /* minor version of dev starter */
-       u8 blank_nvm_mode;              /* is NVM empty (no FW present)*/
+       u8 blank_nvm_mode;              /* is NVM empty (no FW present) */
 };
 
 struct ice_link_default_override_tlv {
@@ -596,7 +620,7 @@ enum ice_rl_type {
 #define ICE_SCHED_NO_BW_WT             0
 #define ICE_SCHED_DFLT_RL_PROF_ID      0
 #define ICE_SCHED_NO_SHARED_RL_PROF_ID 0xFFFF
-#define ICE_SCHED_DFLT_BW_WT           1
+#define ICE_SCHED_DFLT_BW_WT           4
 #define ICE_SCHED_INVAL_PROF_ID                0xFFFF
 #define ICE_SCHED_DFLT_BURST_SIZE      (15 * 1024)     /* in bytes (15k) */
 
@@ -729,6 +753,14 @@ struct ice_dcbx_cfg {
 #define ICE_DCBX_APPS_NON_WILLING      0x1
 };
 
+struct ice_qos_cfg {
+       struct ice_dcbx_cfg local_dcbx_cfg;     /* Oper/Local Cfg */
+       struct ice_dcbx_cfg desired_dcbx_cfg;   /* CEE Desired Cfg */
+       struct ice_dcbx_cfg remote_dcbx_cfg;    /* Peer Cfg */
+       u8 dcbx_status : 3;                     /* see ICE_DCBX_STATUS_DIS */
+       u8 is_sw_lldp : 1;
+};
+
 struct ice_port_info {
        struct ice_sched_node *root;    /* Root Node per Port */
        struct ice_hw *hw;              /* back pointer to HW instance */
@@ -752,14 +784,9 @@ struct ice_port_info {
                sib_head[ICE_MAX_TRAFFIC_CLASS][ICE_AQC_TOPO_MAX_LEVEL_NUM];
        /* List contain profile ID(s) and other params per layer */
        struct LIST_HEAD_TYPE rl_prof_list[ICE_AQC_TOPO_MAX_LEVEL_NUM];
+       struct ice_bw_type_info root_node_bw_t_info;
        struct ice_bw_type_info tc_node_bw_t_info[ICE_MAX_TRAFFIC_CLASS];
-       struct ice_dcbx_cfg local_dcbx_cfg;     /* Oper/Local Cfg */
-       /* DCBX info */
-       struct ice_dcbx_cfg remote_dcbx_cfg;    /* Peer Cfg */
-       struct ice_dcbx_cfg desired_dcbx_cfg;   /* CEE Desired Cfg */
-       /* LLDP/DCBX Status */
-       u8 dcbx_status:3;               /* see ICE_DCBX_STATUS_DIS */
-       u8 is_sw_lldp:1;
+       struct ice_qos_cfg qos_cfg;
        u8 is_vf:1;
 };
 
@@ -767,6 +794,7 @@ struct ice_switch_info {
        struct LIST_HEAD_TYPE vsi_list_map_head;
        struct ice_sw_recipe *recp_list;
        u16 prof_res_bm_init;
+       u16 max_used_prof_index;
 
        ice_declare_bitmap(prof_res_bm[ICE_MAX_NUM_PROFILES], ICE_MAX_FV_WORDS);
 };
@@ -888,6 +916,7 @@ struct ice_hw {
        u32 pkg_size;
 
        /* tunneling info */
+       struct ice_lock tnl_lock;
        struct ice_tunnel_table tnl;
 
        struct ice_acl_tbl *acl_tbl;
@@ -1050,7 +1079,7 @@ enum ice_sw_fwd_act_type {
 #define ICE_SR_1ST_SCRATCH_PAD_PTR             0x41
 #define ICE_SR_1ST_NVM_BANK_PTR                        0x42
 #define ICE_SR_NVM_BANK_SIZE                   0x43
-#define ICE_SR_1ND_OROM_BANK_PTR               0x44
+#define ICE_SR_1ST_OROM_BANK_PTR               0x44
 #define ICE_SR_OROM_BANK_SIZE                  0x45
 #define ICE_SR_NETLIST_BANK_PTR                        0x46
 #define ICE_SR_NETLIST_BANK_SIZE               0x47
@@ -1097,4 +1126,8 @@ enum ice_sw_fwd_act_type {
 #define GLPCI_LBARCTRL_VF_PE_DB_SIZE_8KB 0x1
 #define GLPCI_LBARCTRL_VF_PE_DB_SIZE_64KB 0x2
 
+/* AQ API version for LLDP_FILTER_CONTROL */
+#define ICE_FW_API_LLDP_FLTR_MAJ       1
+#define ICE_FW_API_LLDP_FLTR_MIN       7
+#define ICE_FW_API_LLDP_FLTR_PATCH     1
 #endif /* _ICE_TYPE_H_ */