Commit 1b53c2fb authored by Mitch Williams's avatar Mitch Williams Committed by Jeff Kirsher

i40e: add VF capabilities to virtual channel interface

To prepare for the changes coming up in the X722 device and future
devices, the virtual channel interface has to change slightly. The VF
driver can now report what its capable of supporting, which then informs
the PF driver when it sends the configuration information back to the
VF.

A 1.1 VF driver on a 1.0 PF driver should not send its capabilities.
Likewise, a 1.1 PF driver controlling a 1.0 VF driver should not expect
or depend upon receiving the VF capabilities.

All other aspects of the API are unchanged.

Change-ID: I530cc55f107edd1ee8bdf95830aa90b87854058a
Signed-off-by: default avatarMitch Williams <mitch.a.williams@intel.com>
Acked-by: default avatarShannon Nelson <shannon.nelson@intel.com>
Acked-by: default avatarAnjali Singhai <anjali.singhai@intel.com>
Tested-by: default avatarJim Young <james.m.young@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent 3b104be3
...@@ -110,7 +110,9 @@ struct i40e_virtchnl_msg { ...@@ -110,7 +110,9 @@ struct i40e_virtchnl_msg {
* error regardless of version mismatch. * error regardless of version mismatch.
*/ */
#define I40E_VIRTCHNL_VERSION_MAJOR 1 #define I40E_VIRTCHNL_VERSION_MAJOR 1
#define I40E_VIRTCHNL_VERSION_MINOR 0 #define I40E_VIRTCHNL_VERSION_MINOR 1
#define I40E_VIRTCHNL_VERSION_MINOR_NO_VF_CAPS 0
struct i40e_virtchnl_version_info { struct i40e_virtchnl_version_info {
u32 major; u32 major;
u32 minor; u32 minor;
...@@ -129,7 +131,8 @@ struct i40e_virtchnl_version_info { ...@@ -129,7 +131,8 @@ struct i40e_virtchnl_version_info {
*/ */
/* I40E_VIRTCHNL_OP_GET_VF_RESOURCES /* I40E_VIRTCHNL_OP_GET_VF_RESOURCES
* VF sends this request to PF with no parameters * Version 1.0 VF sends this request to PF with no parameters
* Version 1.1 VF sends this request to PF with u32 bitmap of its capabilities
* PF responds with an indirect message containing * PF responds with an indirect message containing
* i40e_virtchnl_vf_resource and one or more * i40e_virtchnl_vf_resource and one or more
* i40e_virtchnl_vsi_resource structures. * i40e_virtchnl_vsi_resource structures.
...@@ -143,9 +146,12 @@ struct i40e_virtchnl_vsi_resource { ...@@ -143,9 +146,12 @@ struct i40e_virtchnl_vsi_resource {
u8 default_mac_addr[ETH_ALEN]; u8 default_mac_addr[ETH_ALEN];
}; };
/* VF offload flags */ /* VF offload flags */
#define I40E_VIRTCHNL_VF_OFFLOAD_L2 0x00000001 #define I40E_VIRTCHNL_VF_OFFLOAD_L2 0x00000001
#define I40E_VIRTCHNL_VF_OFFLOAD_FCOE 0x00000004 #define I40E_VIRTCHNL_VF_OFFLOAD_IWARP 0x00000002
#define I40E_VIRTCHNL_VF_OFFLOAD_VLAN 0x00010000 #define I40E_VIRTCHNL_VF_OFFLOAD_FCOE 0x00000004
#define I40E_VIRTCHNL_VF_OFFLOAD_RSS_AQ 0x00000008
#define I40E_VIRTCHNL_VF_OFFLOAD_RSS_REG 0x00000010
#define I40E_VIRTCHNL_VF_OFFLOAD_VLAN 0x00010000
struct i40e_virtchnl_vf_resource { struct i40e_virtchnl_vf_resource {
u16 num_vsis; u16 num_vsis;
......
...@@ -110,7 +110,9 @@ struct i40e_virtchnl_msg { ...@@ -110,7 +110,9 @@ struct i40e_virtchnl_msg {
* error regardless of version mismatch. * error regardless of version mismatch.
*/ */
#define I40E_VIRTCHNL_VERSION_MAJOR 1 #define I40E_VIRTCHNL_VERSION_MAJOR 1
#define I40E_VIRTCHNL_VERSION_MINOR 0 #define I40E_VIRTCHNL_VERSION_MINOR 1
#define I40E_VIRTCHNL_VERSION_MINOR_NO_VF_CAPS 0
struct i40e_virtchnl_version_info { struct i40e_virtchnl_version_info {
u32 major; u32 major;
u32 minor; u32 minor;
...@@ -129,7 +131,8 @@ struct i40e_virtchnl_version_info { ...@@ -129,7 +131,8 @@ struct i40e_virtchnl_version_info {
*/ */
/* I40E_VIRTCHNL_OP_GET_VF_RESOURCES /* I40E_VIRTCHNL_OP_GET_VF_RESOURCES
* VF sends this request to PF with no parameters * Version 1.0 VF sends this request to PF with no parameters
* Version 1.1 VF sends this request to PF with u32 bitmap of its capabilities
* PF responds with an indirect message containing * PF responds with an indirect message containing
* i40e_virtchnl_vf_resource and one or more * i40e_virtchnl_vf_resource and one or more
* i40e_virtchnl_vsi_resource structures. * i40e_virtchnl_vsi_resource structures.
...@@ -143,9 +146,12 @@ struct i40e_virtchnl_vsi_resource { ...@@ -143,9 +146,12 @@ struct i40e_virtchnl_vsi_resource {
u8 default_mac_addr[ETH_ALEN]; u8 default_mac_addr[ETH_ALEN];
}; };
/* VF offload flags */ /* VF offload flags */
#define I40E_VIRTCHNL_VF_OFFLOAD_L2 0x00000001 #define I40E_VIRTCHNL_VF_OFFLOAD_L2 0x00000001
#define I40E_VIRTCHNL_VF_OFFLOAD_FCOE 0x00000004 #define I40E_VIRTCHNL_VF_OFFLOAD_IWARP 0x00000002
#define I40E_VIRTCHNL_VF_OFFLOAD_VLAN 0x00010000 #define I40E_VIRTCHNL_VF_OFFLOAD_FCOE 0x00000004
#define I40E_VIRTCHNL_VF_OFFLOAD_RSS_AQ 0x00000008
#define I40E_VIRTCHNL_VF_OFFLOAD_RSS_REG 0x00000010
#define I40E_VIRTCHNL_VF_OFFLOAD_VLAN 0x00010000
struct i40e_virtchnl_vf_resource { struct i40e_virtchnl_vf_resource {
u16 num_vsis; u16 num_vsis;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment