|
@@ -35,7 +35,7 @@
|
|
|
*/
|
|
|
|
|
|
#define I40E_FW_API_VERSION_MAJOR 0x0001
|
|
|
-#define I40E_FW_API_VERSION_MINOR 0x0000
|
|
|
+#define I40E_FW_API_VERSION_MINOR 0x0001
|
|
|
|
|
|
struct i40e_aq_desc {
|
|
|
__le16 flags;
|
|
@@ -137,10 +137,13 @@ enum i40e_admin_queue_opc {
|
|
|
i40e_aqc_opc_set_ns_proxy_entry = 0x0105,
|
|
|
|
|
|
/* LAA */
|
|
|
- i40e_aqc_opc_mng_laa = 0x0106,
|
|
|
+ i40e_aqc_opc_mng_laa = 0x0106, /* AQ obsolete */
|
|
|
i40e_aqc_opc_mac_address_read = 0x0107,
|
|
|
i40e_aqc_opc_mac_address_write = 0x0108,
|
|
|
|
|
|
+ /* PXE */
|
|
|
+ i40e_aqc_opc_clear_pxe_mode = 0x0110,
|
|
|
+
|
|
|
/* internal switch commands */
|
|
|
i40e_aqc_opc_get_switch_config = 0x0200,
|
|
|
i40e_aqc_opc_add_statistics = 0x0201,
|
|
@@ -317,13 +320,15 @@ struct i40e_aqc_get_version {
|
|
|
|
|
|
I40E_CHECK_CMD_LENGTH(i40e_aqc_get_version);
|
|
|
|
|
|
-/* Send driver version (direct 0x0002) */
|
|
|
+/* Send driver version (indirect 0x0002) */
|
|
|
struct i40e_aqc_driver_version {
|
|
|
u8 driver_major_ver;
|
|
|
u8 driver_minor_ver;
|
|
|
u8 driver_build_ver;
|
|
|
u8 driver_subbuild_ver;
|
|
|
- u8 reserved[12];
|
|
|
+ u8 reserved[4];
|
|
|
+ __le32 address_high;
|
|
|
+ __le32 address_low;
|
|
|
};
|
|
|
|
|
|
I40E_CHECK_CMD_LENGTH(i40e_aqc_driver_version);
|
|
@@ -479,7 +484,7 @@ struct i40e_aqc_mng_laa {
|
|
|
u8 reserved2[6];
|
|
|
};
|
|
|
|
|
|
-/* Manage MAC Address Read Command (0x0107) */
|
|
|
+/* Manage MAC Address Read Command (indirect 0x0107) */
|
|
|
struct i40e_aqc_mac_address_read {
|
|
|
__le16 command_flags;
|
|
|
#define I40E_AQC_LAN_ADDR_VALID 0x10
|
|
@@ -517,6 +522,16 @@ struct i40e_aqc_mac_address_write {
|
|
|
|
|
|
I40E_CHECK_CMD_LENGTH(i40e_aqc_mac_address_write);
|
|
|
|
|
|
+/* PXE commands (0x011x) */
|
|
|
+
|
|
|
+/* Clear PXE Command and response (direct 0x0110) */
|
|
|
+struct i40e_aqc_clear_pxe {
|
|
|
+ u8 rx_cnt;
|
|
|
+ u8 reserved[15];
|
|
|
+};
|
|
|
+
|
|
|
+I40E_CHECK_CMD_LENGTH(i40e_aqc_clear_pxe);
|
|
|
+
|
|
|
/* Switch configuration commands (0x02xx) */
|
|
|
|
|
|
/* Used by many indirect commands that only pass an seid and a buffer in the
|
|
@@ -639,13 +654,15 @@ struct i40e_aqc_switch_resource_alloc_element_resp {
|
|
|
u8 reserved2[6];
|
|
|
};
|
|
|
|
|
|
-/* Add VSI (indirect 0x210)
|
|
|
+/* Add VSI (indirect 0x0210)
|
|
|
* this indirect command uses struct i40e_aqc_vsi_properties_data
|
|
|
* as the indirect buffer (128 bytes)
|
|
|
*
|
|
|
- * Update VSI (indirect 0x211) Get VSI (indirect 0x0212)
|
|
|
- * use the generic i40e_aqc_switch_seid descriptor format
|
|
|
- * use the same completion and data structure as Add VSI
|
|
|
+ * Update VSI (indirect 0x211)
|
|
|
+ * uses the same data structure as Add VSI
|
|
|
+ *
|
|
|
+ * Get VSI (indirect 0x0212)
|
|
|
+ * uses the same completion and data structure as Add VSI
|
|
|
*/
|
|
|
struct i40e_aqc_add_get_update_vsi {
|
|
|
__le16 uplink_seid;
|
|
@@ -1185,27 +1202,40 @@ struct i40e_aqc_add_remove_cloud_filters_element_data {
|
|
|
#define I40E_AQC_ADD_CLOUD_FILTER_SHIFT 0
|
|
|
#define I40E_AQC_ADD_CLOUD_FILTER_MASK (0x3F << \
|
|
|
I40E_AQC_ADD_CLOUD_FILTER_SHIFT)
|
|
|
+/* 0x0000 reserved */
|
|
|
#define I40E_AQC_ADD_CLOUD_FILTER_OIP 0x0001
|
|
|
-#define I40E_AQC_ADD_CLOUD_FILTER_OIP_GRE 0x0002
|
|
|
+/* 0x0002 reserved */
|
|
|
#define I40E_AQC_ADD_CLOUD_FILTER_IMAC_IVLAN 0x0003
|
|
|
-#define I40E_AQC_ADD_CLOUD_FILTER_IMAC_IVLAN_GRE 0x0004
|
|
|
+#define I40E_AQC_ADD_CLOUD_FILTER_IMAC_IVLAN_TEN_ID 0x0004
|
|
|
+/* 0x0005 reserved */
|
|
|
#define I40E_AQC_ADD_CLOUD_FILTER_IMAC_TEN_ID 0x0006
|
|
|
-#define I40E_AQC_ADD_CLOUD_FILTER_IMAC_IVLAN_VNL 0x0007
|
|
|
+/* 0x0007 reserved */
|
|
|
/* 0x0008 reserved */
|
|
|
#define I40E_AQC_ADD_CLOUD_FILTER_OMAC 0x0009
|
|
|
#define I40E_AQC_ADD_CLOUD_FILTER_IMAC 0x000A
|
|
|
+#define I40E_AQC_ADD_CLOUD_FILTER_OMAC_TEN_ID_IMAC 0x000B
|
|
|
+#define I40E_AQC_ADD_CLOUD_FILTER_IIP 0x000C
|
|
|
+
|
|
|
#define I40E_AQC_ADD_CLOUD_FLAGS_TO_QUEUE 0x0080
|
|
|
#define I40E_AQC_ADD_CLOUD_VNK_SHIFT 6
|
|
|
#define I40E_AQC_ADD_CLOUD_VNK_MASK 0x00C0
|
|
|
#define I40E_AQC_ADD_CLOUD_FLAGS_IPV4 0
|
|
|
#define I40E_AQC_ADD_CLOUD_FLAGS_IPV6 0x0100
|
|
|
- __le32 key_low;
|
|
|
- __le32 key_high;
|
|
|
+
|
|
|
+#define I40E_AQC_ADD_CLOUD_TNL_TYPE_SHIFT 9
|
|
|
+#define I40E_AQC_ADD_CLOUD_TNL_TYPE_MASK 0x1E00
|
|
|
+#define I40E_AQC_ADD_CLOUD_TNL_TYPE_XVLAN 0
|
|
|
+#define I40E_AQC_ADD_CLOUD_TNL_TYPE_NVGRE_OMAC 1
|
|
|
+#define I40E_AQC_ADD_CLOUD_TNL_TYPE_NGE 2
|
|
|
+#define I40E_AQC_ADD_CLOUD_TNL_TYPE_IP 3
|
|
|
+
|
|
|
+ __le32 tenant_id;
|
|
|
+ u8 reserved[4];
|
|
|
__le16 queue_number;
|
|
|
#define I40E_AQC_ADD_CLOUD_QUEUE_SHIFT 0
|
|
|
#define I40E_AQC_ADD_CLOUD_QUEUE_MASK (0x3F << \
|
|
|
I40E_AQC_ADD_CLOUD_QUEUE_SHIFT)
|
|
|
- u8 reserved[14];
|
|
|
+ u8 reserved2[14];
|
|
|
/* response section */
|
|
|
u8 allocation_result;
|
|
|
#define I40E_AQC_ADD_CLOUD_FILTER_SUCCESS 0x0
|
|
@@ -1548,7 +1578,7 @@ struct i40e_aqc_module_desc {
|
|
|
|
|
|
struct i40e_aq_get_phy_abilities_resp {
|
|
|
__le32 phy_type; /* bitmap using the above enum for offsets */
|
|
|
- u8 link_speed; /* bitmap using the above enum */
|
|
|
+ u8 link_speed; /* bitmap using the above enum bit patterns */
|
|
|
u8 abilities;
|
|
|
#define I40E_AQ_PHY_FLAG_PAUSE_TX 0x01
|
|
|
#define I40E_AQ_PHY_FLAG_PAUSE_RX 0x02
|
|
@@ -1582,6 +1612,10 @@ struct i40e_aq_set_phy_config { /* same bits as above in all */
|
|
|
__le32 phy_type;
|
|
|
u8 link_speed;
|
|
|
u8 abilities;
|
|
|
+/* bits 0-2 use the values from get_phy_abilities_resp */
|
|
|
+#define I40E_AQ_PHY_ENABLE_LINK 0x08
|
|
|
+#define I40E_AQ_PHY_ENABLE_AN 0x10
|
|
|
+#define I40E_AQ_PHY_ENABLE_ATOMIC_LINK 0x20
|
|
|
__le16 eee_capability;
|
|
|
__le32 eeer;
|
|
|
u8 low_power_ctrl;
|
|
@@ -1915,22 +1949,39 @@ I40E_CHECK_CMD_LENGTH(i40e_aqc_lldp_start);
|
|
|
struct i40e_aqc_add_udp_tunnel {
|
|
|
__le16 udp_port;
|
|
|
u8 header_len; /* in DWords, 1 to 15 */
|
|
|
- u8 protocol_index;
|
|
|
-#define I40E_AQC_TUNNEL_TYPE_MAC 0x0
|
|
|
-#define I40E_AQC_TUNNEL_TYPE_UDP 0x1
|
|
|
-#define I40E_AQC_TUNNEL_TYPE_VXLAN 0x2
|
|
|
- u8 reserved[12];
|
|
|
+ u8 protocol_type;
|
|
|
+#define I40E_AQC_TUNNEL_TYPE_TEREDO 0x0
|
|
|
+#define I40E_AQC_TUNNEL_TYPE_VXLAN 0x2
|
|
|
+#define I40E_AQC_TUNNEL_TYPE_NGE 0x3
|
|
|
+ u8 variable_udp_length;
|
|
|
+#define I40E_AQC_TUNNEL_FIXED_UDP_LENGTH 0x0
|
|
|
+#define I40E_AQC_TUNNEL_VARIABLE_UDP_LENGTH 0x1
|
|
|
+ u8 udp_key_index;
|
|
|
+#define I40E_AQC_TUNNEL_KEY_INDEX_VXLAN 0x0
|
|
|
+#define I40E_AQC_TUNNEL_KEY_INDEX_NGE 0x1
|
|
|
+#define I40E_AQC_TUNNEL_KEY_INDEX_PROPRIETARY_UDP 0x2
|
|
|
+ u8 reserved[10];
|
|
|
};
|
|
|
|
|
|
I40E_CHECK_CMD_LENGTH(i40e_aqc_add_udp_tunnel);
|
|
|
|
|
|
+struct i40e_aqc_add_udp_tunnel_completion {
|
|
|
+ __le16 udp_port;
|
|
|
+ u8 filter_entry_index;
|
|
|
+ u8 multiple_pfs;
|
|
|
+#define I40E_AQC_SINGLE_PF 0x0
|
|
|
+#define I40E_AQC_MULTIPLE_PFS 0x1
|
|
|
+ u8 total_filters;
|
|
|
+ u8 reserved[11];
|
|
|
+};
|
|
|
+
|
|
|
+I40E_CHECK_CMD_LENGTH(i40e_aqc_add_udp_tunnel_completion);
|
|
|
+
|
|
|
/* remove UDP Tunnel command (0x0B01) */
|
|
|
struct i40e_aqc_remove_udp_tunnel {
|
|
|
u8 reserved[2];
|
|
|
u8 index; /* 0 to 15 */
|
|
|
- u8 pf_filters;
|
|
|
- u8 total_filters;
|
|
|
- u8 reserved2[11];
|
|
|
+ u8 reserved2[13];
|
|
|
};
|
|
|
|
|
|
I40E_CHECK_CMD_LENGTH(i40e_aqc_remove_udp_tunnel);
|
|
@@ -1938,28 +1989,32 @@ I40E_CHECK_CMD_LENGTH(i40e_aqc_remove_udp_tunnel);
|
|
|
struct i40e_aqc_del_udp_tunnel_completion {
|
|
|
__le16 udp_port;
|
|
|
u8 index; /* 0 to 15 */
|
|
|
- u8 multiple_entries;
|
|
|
- u8 tunnels_used;
|
|
|
- u8 reserved;
|
|
|
- u8 tunnels_free;
|
|
|
- u8 reserved1[9];
|
|
|
+ u8 multiple_pfs;
|
|
|
+ u8 total_filters_used;
|
|
|
+ u8 reserved1[11];
|
|
|
};
|
|
|
|
|
|
I40E_CHECK_CMD_LENGTH(i40e_aqc_del_udp_tunnel_completion);
|
|
|
|
|
|
/* tunnel key structure 0x0B10 */
|
|
|
+
|
|
|
struct i40e_aqc_tunnel_key_structure {
|
|
|
- __le16 key1_off;
|
|
|
- __le16 key1_len;
|
|
|
- __le16 key2_off;
|
|
|
- __le16 key2_len;
|
|
|
- __le16 flags;
|
|
|
+ u8 key1_off;
|
|
|
+ u8 key2_off;
|
|
|
+ u8 key1_len; /* 0 to 15 */
|
|
|
+ u8 key2_len; /* 0 to 15 */
|
|
|
+ u8 flags;
|
|
|
#define I40E_AQC_TUNNEL_KEY_STRUCT_OVERRIDE 0x01
|
|
|
/* response flags */
|
|
|
#define I40E_AQC_TUNNEL_KEY_STRUCT_SUCCESS 0x01
|
|
|
#define I40E_AQC_TUNNEL_KEY_STRUCT_MODIFIED 0x02
|
|
|
#define I40E_AQC_TUNNEL_KEY_STRUCT_OVERRIDDEN 0x03
|
|
|
- u8 resreved[6];
|
|
|
+ u8 network_key_index;
|
|
|
+#define I40E_AQC_NETWORK_KEY_INDEX_VXLAN 0x0
|
|
|
+#define I40E_AQC_NETWORK_KEY_INDEX_NGE 0x1
|
|
|
+#define I40E_AQC_NETWORK_KEY_INDEX_FLEX_MAC_IN_UDP 0x2
|
|
|
+#define I40E_AQC_NETWORK_KEY_INDEX_GRE 0x3
|
|
|
+ u8 reserved[10];
|
|
|
};
|
|
|
|
|
|
I40E_CHECK_CMD_LENGTH(i40e_aqc_tunnel_key_structure);
|
|
@@ -2053,6 +2108,7 @@ I40E_CHECK_CMD_LENGTH(i40e_aqc_debug_modify_reg);
|
|
|
#define I40E_AQ_CLUSTER_ID_DCB 8
|
|
|
#define I40E_AQ_CLUSTER_ID_EMP_MEM 9
|
|
|
#define I40E_AQ_CLUSTER_ID_PKT_BUF 10
|
|
|
+#define I40E_AQ_CLUSTER_ID_ALTRAM 11
|
|
|
|
|
|
struct i40e_aqc_debug_dump_internals {
|
|
|
u8 cluster_id;
|