|
@@ -132,6 +132,10 @@ enum i40e_admin_queue_opc {
|
|
|
i40e_aqc_opc_list_func_capabilities = 0x000A,
|
|
|
i40e_aqc_opc_list_dev_capabilities = 0x000B,
|
|
|
|
|
|
+ /* Proxy commands */
|
|
|
+ i40e_aqc_opc_set_proxy_config = 0x0104,
|
|
|
+ i40e_aqc_opc_set_ns_proxy_table_entry = 0x0105,
|
|
|
+
|
|
|
/* LAA */
|
|
|
i40e_aqc_opc_mac_address_read = 0x0107,
|
|
|
i40e_aqc_opc_mac_address_write = 0x0108,
|
|
@@ -139,6 +143,10 @@ enum i40e_admin_queue_opc {
|
|
|
/* PXE */
|
|
|
i40e_aqc_opc_clear_pxe_mode = 0x0110,
|
|
|
|
|
|
+ /* WoL commands */
|
|
|
+ i40e_aqc_opc_set_wol_filter = 0x0120,
|
|
|
+ i40e_aqc_opc_get_wake_reason = 0x0121,
|
|
|
+
|
|
|
/* internal switch commands */
|
|
|
i40e_aqc_opc_get_switch_config = 0x0200,
|
|
|
i40e_aqc_opc_add_statistics = 0x0201,
|
|
@@ -177,6 +185,7 @@ enum i40e_admin_queue_opc {
|
|
|
i40e_aqc_opc_remove_control_packet_filter = 0x025B,
|
|
|
i40e_aqc_opc_add_cloud_filters = 0x025C,
|
|
|
i40e_aqc_opc_remove_cloud_filters = 0x025D,
|
|
|
+ i40e_aqc_opc_clear_wol_switch_filters = 0x025E,
|
|
|
|
|
|
i40e_aqc_opc_add_mirror_rule = 0x0260,
|
|
|
i40e_aqc_opc_delete_mirror_rule = 0x0261,
|
|
@@ -563,6 +572,56 @@ struct i40e_aqc_clear_pxe {
|
|
|
|
|
|
I40E_CHECK_CMD_LENGTH(i40e_aqc_clear_pxe);
|
|
|
|
|
|
+/* Set WoL Filter (0x0120) */
|
|
|
+
|
|
|
+struct i40e_aqc_set_wol_filter {
|
|
|
+ __le16 filter_index;
|
|
|
+#define I40E_AQC_MAX_NUM_WOL_FILTERS 8
|
|
|
+#define I40E_AQC_SET_WOL_FILTER_TYPE_MAGIC_SHIFT 15
|
|
|
+#define I40E_AQC_SET_WOL_FILTER_TYPE_MAGIC_MASK (0x1 << \
|
|
|
+ I40E_AQC_SET_WOL_FILTER_TYPE_MAGIC_SHIFT)
|
|
|
+
|
|
|
+#define I40E_AQC_SET_WOL_FILTER_INDEX_SHIFT 0
|
|
|
+#define I40E_AQC_SET_WOL_FILTER_INDEX_MASK (0x7 << \
|
|
|
+ I40E_AQC_SET_WOL_FILTER_INDEX_SHIFT)
|
|
|
+ __le16 cmd_flags;
|
|
|
+#define I40E_AQC_SET_WOL_FILTER 0x8000
|
|
|
+#define I40E_AQC_SET_WOL_FILTER_NO_TCO_WOL 0x4000
|
|
|
+#define I40E_AQC_SET_WOL_FILTER_ACTION_CLEAR 0
|
|
|
+#define I40E_AQC_SET_WOL_FILTER_ACTION_SET 1
|
|
|
+ __le16 valid_flags;
|
|
|
+#define I40E_AQC_SET_WOL_FILTER_ACTION_VALID 0x8000
|
|
|
+#define I40E_AQC_SET_WOL_FILTER_NO_TCO_ACTION_VALID 0x4000
|
|
|
+ u8 reserved[2];
|
|
|
+ __le32 address_high;
|
|
|
+ __le32 address_low;
|
|
|
+};
|
|
|
+
|
|
|
+I40E_CHECK_CMD_LENGTH(i40e_aqc_set_wol_filter);
|
|
|
+
|
|
|
+struct i40e_aqc_set_wol_filter_data {
|
|
|
+ u8 filter[128];
|
|
|
+ u8 mask[16];
|
|
|
+};
|
|
|
+
|
|
|
+I40E_CHECK_STRUCT_LEN(0x90, i40e_aqc_set_wol_filter_data);
|
|
|
+
|
|
|
+/* Get Wake Reason (0x0121) */
|
|
|
+
|
|
|
+struct i40e_aqc_get_wake_reason_completion {
|
|
|
+ u8 reserved_1[2];
|
|
|
+ __le16 wake_reason;
|
|
|
+#define I40E_AQC_GET_WAKE_UP_REASON_WOL_REASON_MATCHED_INDEX_SHIFT 0
|
|
|
+#define I40E_AQC_GET_WAKE_UP_REASON_WOL_REASON_MATCHED_INDEX_MASK (0xFF << \
|
|
|
+ I40E_AQC_GET_WAKE_UP_REASON_WOL_REASON_MATCHED_INDEX_SHIFT)
|
|
|
+#define I40E_AQC_GET_WAKE_UP_REASON_WOL_REASON_RESERVED_SHIFT 8
|
|
|
+#define I40E_AQC_GET_WAKE_UP_REASON_WOL_REASON_RESERVED_MASK (0xFF << \
|
|
|
+ I40E_AQC_GET_WAKE_UP_REASON_WOL_REASON_RESERVED_SHIFT)
|
|
|
+ u8 reserved_2[12];
|
|
|
+};
|
|
|
+
|
|
|
+I40E_CHECK_CMD_LENGTH(i40e_aqc_get_wake_reason_completion);
|
|
|
+
|
|
|
/* Switch configuration commands (0x02xx) */
|
|
|
|
|
|
/* Used by many indirect commands that only pass an seid and a buffer in the
|
|
@@ -645,6 +704,8 @@ struct i40e_aqc_set_port_parameters {
|
|
|
#define I40E_AQ_SET_P_PARAMS_PAD_SHORT_PACKETS 2 /* must set! */
|
|
|
#define I40E_AQ_SET_P_PARAMS_DOUBLE_VLAN_ENA 4
|
|
|
__le16 bad_frame_vsi;
|
|
|
+#define I40E_AQ_SET_P_PARAMS_BFRAME_SEID_SHIFT 0x0
|
|
|
+#define I40E_AQ_SET_P_PARAMS_BFRAME_SEID_MASK 0x3FF
|
|
|
__le16 default_seid; /* reserved for command */
|
|
|
u8 reserved[10];
|
|
|
};
|
|
@@ -696,6 +757,7 @@ I40E_CHECK_STRUCT_LEN(0x10, i40e_aqc_switch_resource_alloc_element_resp);
|
|
|
/* Set Switch Configuration (direct 0x0205) */
|
|
|
struct i40e_aqc_set_switch_config {
|
|
|
__le16 flags;
|
|
|
+/* flags used for both fields below */
|
|
|
#define I40E_AQ_SET_SWITCH_CFG_PROMISC 0x0001
|
|
|
#define I40E_AQ_SET_SWITCH_CFG_L2_FILTER 0x0002
|
|
|
__le16 valid_flags;
|
|
@@ -1844,11 +1906,12 @@ struct i40e_aqc_get_link_status {
|
|
|
#define I40E_AQ_CONFIG_FEC_RS_ENA 0x02
|
|
|
#define I40E_AQ_CONFIG_CRC_ENA 0x04
|
|
|
#define I40E_AQ_CONFIG_PACING_MASK 0x78
|
|
|
- u8 external_power_ability;
|
|
|
+ u8 power_desc;
|
|
|
#define I40E_AQ_LINK_POWER_CLASS_1 0x00
|
|
|
#define I40E_AQ_LINK_POWER_CLASS_2 0x01
|
|
|
#define I40E_AQ_LINK_POWER_CLASS_3 0x02
|
|
|
#define I40E_AQ_LINK_POWER_CLASS_4 0x03
|
|
|
+#define I40E_AQ_PWR_CLASS_MASK 0x03
|
|
|
u8 reserved[4];
|
|
|
};
|
|
|
|