i40e/base: add new interfaces
[dpdk.git] / lib / librte_pmd_i40e / i40e / i40e_type.h
index 916f79a..61d07d7 100644 (file)
@@ -289,6 +289,7 @@ struct i40e_hw_capabilities {
        bool evb_802_1_qbh; /* Bridge Port Extension */
        bool dcb;
        bool fcoe;
+       bool iscsi; /* Indicates iSCSI enabled */
        bool mfp_mode_1;
        bool mgmt_cem;
        bool ieee_1588;
@@ -459,9 +460,18 @@ struct i40e_fc_info {
 #define I40E_MAX_USER_PRIORITY         8
 #define I40E_DCBX_MAX_APPS             32
 #define I40E_LLDPDU_SIZE               1500
-
-/* IEEE 802.1Qaz ETS Configuration data */
-struct i40e_ieee_ets_config {
+#define I40E_TLV_STATUS_OPER           0x1
+#define I40E_TLV_STATUS_SYNC           0x2
+#define I40E_TLV_STATUS_ERR            0x4
+#define I40E_CEE_OPER_MAX_APPS         3
+#define I40E_APP_PROTOID_FCOE          0x8906
+#define I40E_APP_PROTOID_ISCSI         0x0cbc
+#define I40E_APP_PROTOID_FIP           0x8914
+#define I40E_APP_SEL_ETHTYPE           0x1
+#define I40E_APP_SEL_TCPIP             0x2
+
+/* CEE or IEEE 802.1Qaz ETS Configuration data */
+struct i40e_dcb_ets_config {
        u8 willing;
        u8 cbs;
        u8 maxtcs;
@@ -470,34 +480,30 @@ struct i40e_ieee_ets_config {
        u8 tsatable[I40E_MAX_TRAFFIC_CLASS];
 };
 
-/* IEEE 802.1Qaz ETS Recommendation data */
-struct i40e_ieee_ets_recommend {
-       u8 prioritytable[I40E_MAX_TRAFFIC_CLASS];
-       u8 tcbwtable[I40E_MAX_TRAFFIC_CLASS];
-       u8 tsatable[I40E_MAX_TRAFFIC_CLASS];
-};
-
-/* IEEE 802.1Qaz PFC Configuration data */
-struct i40e_ieee_pfc_config {
+/* CEE or IEEE 802.1Qaz PFC Configuration data */
+struct i40e_dcb_pfc_config {
        u8 willing;
        u8 mbc;
        u8 pfccap;
        u8 pfcenable;
 };
 
-/* IEEE 802.1Qaz Application Priority data */
-struct i40e_ieee_app_priority_table {
+/* CEE or IEEE 802.1Qaz Application Priority data */
+struct i40e_dcb_app_priority_table {
        u8  priority;
        u8  selector;
        u16 protocolid;
 };
 
 struct i40e_dcbx_config {
+       u8  dcbx_mode;
+#define I40E_DCBX_MODE_CEE     0x1
+#define I40E_DCBX_MODE_IEEE    0x2
        u32 numapps;
-       struct i40e_ieee_ets_config etscfg;
-       struct i40e_ieee_ets_recommend etsrec;
-       struct i40e_ieee_pfc_config pfc;
-       struct i40e_ieee_app_priority_table app[I40E_DCBX_MAX_APPS];
+       struct i40e_dcb_ets_config etscfg;
+       struct i40e_dcb_ets_config etsrec;
+       struct i40e_dcb_pfc_config pfc;
+       struct i40e_dcb_app_priority_table app[I40E_DCBX_MAX_APPS];
 };
 
 /* Port hardware description */
@@ -532,6 +538,11 @@ struct i40e_hw {
        u8  pf_id;
        u16 main_vsi_seid;
 
+       /* for multi-function MACs */
+       u16 partition_id;
+       u16 num_partitions;
+       u16 num_ports;
+
        /* Closest numa node to the device */
        u16 numa_node;
 
@@ -1269,12 +1280,16 @@ struct i40e_hw_port_stats {
 #define I40E_SR_CSR_PROTECTED_LIST_PTR         0x0D
 #define I40E_SR_MNG_CONFIG_PTR                 0x0E
 #define I40E_SR_EMP_MODULE_PTR                 0x0F
+#define I40E_SR_PBA_FLAGS                      0x15
 #define I40E_SR_PBA_BLOCK_PTR                  0x16
 #define I40E_SR_BOOT_CONFIG_PTR                        0x17
-#define I40E_SR_NVM_IMAGE_VERSION              0x18
+#define I40E_SR_NVM_DEV_STARTER_VERSION                0x18
 #define I40E_SR_NVM_WAKE_ON_LAN                        0x19
 #define I40E_SR_ALTERNATE_SAN_MAC_ADDRESS_PTR  0x27
 #define I40E_SR_PERMANENT_SAN_MAC_ADDRESS_PTR  0x28
+#define I40E_SR_NVM_MAP_VERSION                        0x29
+#define I40E_SR_NVM_IMAGE_VERSION              0x2A
+#define I40E_SR_NVM_STRUCTURE_VERSION          0x2B
 #define I40E_SR_NVM_EETRACK_LO                 0x2D
 #define I40E_SR_NVM_EETRACK_HI                 0x2E
 #define I40E_SR_VPD_PTR                                0x2F
@@ -1412,6 +1427,18 @@ enum i40e_reset_type {
        I40E_RESET_EMPR         = 3,
 };
 
+/* IEEE 802.1AB LLDP Agent Variables from NVM */
+#define I40E_NVM_LLDP_CFG_PTR          0xD
+struct i40e_lldp_variables {
+       u16 length;
+       u16 adminstatus;
+       u16 msgfasttx;
+       u16 msgtxinterval;
+       u16 txparams;
+       u16 timers;
+       u16 crc8;
+};
+
 /* Offsets into Alternate Ram */
 #define I40E_ALT_STRUCT_FIRST_PF_OFFSET                0   /* in dwords */
 #define I40E_ALT_STRUCT_DWORDS_PER_PF          64   /* in dwords */