提交 310a2ad9 编写于 作者: J Jesse Brandeburg 提交者: Jeff Kirsher

virtchnl: rename i40e to generic virtchnl

This morphs all the i40e and i40evf references to/in virtchnl.h
to be generic, using only automated methods. Updates all the
callers to use the new names.  A followup patch provides separate
clean ups for messy line conversions from these "automatic"
changes, to make them more reviewable.

Was executed with the following sed script:
sed -i -f transform_script drivers/net/ethernet/intel/i40e/i40e_client.c
sed -i -f transform_script drivers/net/ethernet/intel/i40e/i40e_prototype.h
sed -i -f transform_script drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c
sed -i -f transform_script drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h
sed -i -f transform_script drivers/net/ethernet/intel/i40evf/i40e_common.c
sed -i -f transform_script drivers/net/ethernet/intel/i40evf/i40e_prototype.h
sed -i -f transform_script drivers/net/ethernet/intel/i40evf/i40evf.h
sed -i -f transform_script drivers/net/ethernet/intel/i40evf/i40evf_client.c
sed -i -f transform_script drivers/net/ethernet/intel/i40evf/i40evf_main.c
sed -i -f transform_script drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c
sed -i -f transform_script include/linux/avf/virtchnl.h

transform_script:
----8<----
s/I40E_VIRTCHNL_SUPPORTED_QTYPES/SAVE_ME_SUPPORTED_QTYPES/g
s/I40E_VIRTCHNL_VF_CAP/SAVE_ME_VF_CAP/g

s/I40E_VIRTCHNL_/VIRTCHNL_/g
s/i40e_virtchnl_/virtchnl_/g
s/i40e_vfr_/virtchnl_vfr_/g
s/I40E_VFR_/VIRTCHNL_VFR_/g

s/VIRTCHNL_OP_ADD_ETHER_ADDRESS/VIRTCHNL_OP_ADD_ETH_ADDR/g
s/VIRTCHNL_OP_DEL_ETHER_ADDRESS/VIRTCHNL_OP_DEL_ETH_ADDR/g
s/VIRTCHNL_OP_FCOE/VIRTCHNL_OP_RSVD/g

s/SAVE_ME_SUPPORTED_QTYPES/I40E_VIRTCHNL_SUPPORTED_QTYPES/g
s/SAVE_ME_VF_CAP/I40E_VIRTCHNL_VF_CAP/g
----8<----
Signed-off-by: NJesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
上级 55cdfd48
...@@ -565,7 +565,7 @@ static int i40e_client_virtchnl_send(struct i40e_info *ldev, ...@@ -565,7 +565,7 @@ static int i40e_client_virtchnl_send(struct i40e_info *ldev,
struct i40e_hw *hw = &pf->hw; struct i40e_hw *hw = &pf->hw;
i40e_status err; i40e_status err;
err = i40e_aq_send_msg_to_vf(hw, vf_id, I40E_VIRTCHNL_OP_IWARP, err = i40e_aq_send_msg_to_vf(hw, vf_id, VIRTCHNL_OP_IWARP,
0, msg, len, NULL); 0, msg, len, NULL);
if (err) if (err)
dev_err(&pf->pdev->dev, "Unable to send iWarp message to VF, error %d, aq status %d\n", dev_err(&pf->pdev->dev, "Unable to send iWarp message to VF, error %d, aq status %d\n",
......
...@@ -333,10 +333,10 @@ static inline struct i40e_rx_ptype_decoded decode_rx_desc_ptype(u8 ptype) ...@@ -333,10 +333,10 @@ static inline struct i40e_rx_ptype_decoded decode_rx_desc_ptype(u8 ptype)
/* i40e_common for VF drivers*/ /* i40e_common for VF drivers*/
void i40e_vf_parse_hw_config(struct i40e_hw *hw, void i40e_vf_parse_hw_config(struct i40e_hw *hw,
struct i40e_virtchnl_vf_resource *msg); struct virtchnl_vf_resource *msg);
i40e_status i40e_vf_reset(struct i40e_hw *hw); i40e_status i40e_vf_reset(struct i40e_hw *hw);
i40e_status i40e_aq_send_msg_to_pf(struct i40e_hw *hw, i40e_status i40e_aq_send_msg_to_pf(struct i40e_hw *hw,
enum i40e_virtchnl_ops v_opcode, enum virtchnl_ops v_opcode,
i40e_status v_retval, i40e_status v_retval,
u8 *msg, u16 msglen, u8 *msg, u16 msglen,
struct i40e_asq_cmd_details *cmd_details); struct i40e_asq_cmd_details *cmd_details);
......
...@@ -81,13 +81,13 @@ struct i40e_vf { ...@@ -81,13 +81,13 @@ struct i40e_vf {
s16 vf_id; s16 vf_id;
/* all VF vsis connect to the same parent */ /* all VF vsis connect to the same parent */
enum i40e_switch_element_types parent_type; enum i40e_switch_element_types parent_type;
struct i40e_virtchnl_version_info vf_ver; struct virtchnl_version_info vf_ver;
u32 driver_caps; /* reported by VF driver */ u32 driver_caps; /* reported by VF driver */
/* VF Port Extender (PE) stag if used */ /* VF Port Extender (PE) stag if used */
u16 stag; u16 stag;
struct i40e_virtchnl_ether_addr default_lan_addr; struct virtchnl_ether_addr default_lan_addr;
u16 port_vlan_id; u16 port_vlan_id;
bool pf_set_mac; /* The VMM admin set the VF MAC address */ bool pf_set_mac; /* The VMM admin set the VF MAC address */
bool trusted; bool trusted;
...@@ -115,7 +115,7 @@ struct i40e_vf { ...@@ -115,7 +115,7 @@ struct i40e_vf {
u16 num_vlan; u16 num_vlan;
/* RDMA Client */ /* RDMA Client */
struct i40e_virtchnl_iwarp_qvlist_info *qvlist_info; struct virtchnl_iwarp_qvlist_info *qvlist_info;
}; };
void i40e_free_vfs(struct i40e_pf *pf); void i40e_free_vfs(struct i40e_pf *pf);
......
...@@ -1054,7 +1054,7 @@ void i40evf_write_rx_ctl(struct i40e_hw *hw, u32 reg_addr, u32 reg_val) ...@@ -1054,7 +1054,7 @@ void i40evf_write_rx_ctl(struct i40e_hw *hw, u32 reg_addr, u32 reg_val)
* completion before returning. * completion before returning.
**/ **/
i40e_status i40e_aq_send_msg_to_pf(struct i40e_hw *hw, i40e_status i40e_aq_send_msg_to_pf(struct i40e_hw *hw,
enum i40e_virtchnl_ops v_opcode, enum virtchnl_ops v_opcode,
i40e_status v_retval, i40e_status v_retval,
u8 *msg, u16 msglen, u8 *msg, u16 msglen,
struct i40e_asq_cmd_details *cmd_details) struct i40e_asq_cmd_details *cmd_details)
...@@ -1092,9 +1092,9 @@ i40e_status i40e_aq_send_msg_to_pf(struct i40e_hw *hw, ...@@ -1092,9 +1092,9 @@ i40e_status i40e_aq_send_msg_to_pf(struct i40e_hw *hw,
* with appropriate information. * with appropriate information.
**/ **/
void i40e_vf_parse_hw_config(struct i40e_hw *hw, void i40e_vf_parse_hw_config(struct i40e_hw *hw,
struct i40e_virtchnl_vf_resource *msg) struct virtchnl_vf_resource *msg)
{ {
struct i40e_virtchnl_vsi_resource *vsi_res; struct virtchnl_vsi_resource *vsi_res;
int i; int i;
vsi_res = &msg->vsi_res[0]; vsi_res = &msg->vsi_res[0];
...@@ -1104,7 +1104,7 @@ void i40e_vf_parse_hw_config(struct i40e_hw *hw, ...@@ -1104,7 +1104,7 @@ void i40e_vf_parse_hw_config(struct i40e_hw *hw,
hw->dev_caps.num_tx_qp = msg->num_queue_pairs; hw->dev_caps.num_tx_qp = msg->num_queue_pairs;
hw->dev_caps.num_msix_vectors_vf = msg->max_vectors; hw->dev_caps.num_msix_vectors_vf = msg->max_vectors;
hw->dev_caps.dcb = msg->vf_offload_flags & hw->dev_caps.dcb = msg->vf_offload_flags &
I40E_VIRTCHNL_VF_OFFLOAD_L2; VIRTCHNL_VF_OFFLOAD_L2;
hw->dev_caps.fcoe = 0; hw->dev_caps.fcoe = 0;
for (i = 0; i < msg->num_vsis; i++) { for (i = 0; i < msg->num_vsis; i++) {
if (vsi_res->vsi_type == I40E_VSI_SRIOV) { if (vsi_res->vsi_type == I40E_VSI_SRIOV) {
...@@ -1127,7 +1127,7 @@ void i40e_vf_parse_hw_config(struct i40e_hw *hw, ...@@ -1127,7 +1127,7 @@ void i40e_vf_parse_hw_config(struct i40e_hw *hw,
**/ **/
i40e_status i40e_vf_reset(struct i40e_hw *hw) i40e_status i40e_vf_reset(struct i40e_hw *hw)
{ {
return i40e_aq_send_msg_to_pf(hw, I40E_VIRTCHNL_OP_RESET_VF, return i40e_aq_send_msg_to_pf(hw, VIRTCHNL_OP_RESET_VF,
0, NULL, 0, NULL); 0, NULL, 0, NULL);
} }
......
...@@ -87,10 +87,10 @@ static inline struct i40e_rx_ptype_decoded decode_rx_desc_ptype(u8 ptype) ...@@ -87,10 +87,10 @@ static inline struct i40e_rx_ptype_decoded decode_rx_desc_ptype(u8 ptype)
/* i40e_common for VF drivers*/ /* i40e_common for VF drivers*/
void i40e_vf_parse_hw_config(struct i40e_hw *hw, void i40e_vf_parse_hw_config(struct i40e_hw *hw,
struct i40e_virtchnl_vf_resource *msg); struct virtchnl_vf_resource *msg);
i40e_status i40e_vf_reset(struct i40e_hw *hw); i40e_status i40e_vf_reset(struct i40e_hw *hw);
i40e_status i40e_aq_send_msg_to_pf(struct i40e_hw *hw, i40e_status i40e_aq_send_msg_to_pf(struct i40e_hw *hw,
enum i40e_virtchnl_ops v_opcode, enum virtchnl_ops v_opcode,
i40e_status v_retval, i40e_status v_retval,
u8 *msg, u16 msglen, u8 *msg, u16 msglen,
struct i40e_asq_cmd_details *cmd_details); struct i40e_asq_cmd_details *cmd_details);
......
...@@ -264,25 +264,25 @@ struct i40evf_adapter { ...@@ -264,25 +264,25 @@ struct i40evf_adapter {
bool netdev_registered; bool netdev_registered;
bool link_up; bool link_up;
enum i40e_aq_link_speed link_speed; enum i40e_aq_link_speed link_speed;
enum i40e_virtchnl_ops current_op; enum virtchnl_ops current_op;
#define CLIENT_ALLOWED(_a) ((_a)->vf_res ? \ #define CLIENT_ALLOWED(_a) ((_a)->vf_res ? \
(_a)->vf_res->vf_offload_flags & \ (_a)->vf_res->vf_offload_flags & \
I40E_VIRTCHNL_VF_OFFLOAD_IWARP : \ VIRTCHNL_VF_OFFLOAD_IWARP : \
0) 0)
#define CLIENT_ENABLED(_a) ((_a)->cinst) #define CLIENT_ENABLED(_a) ((_a)->cinst)
/* RSS by the PF should be preferred over RSS via other methods. */ /* RSS by the PF should be preferred over RSS via other methods. */
#define RSS_PF(_a) ((_a)->vf_res->vf_offload_flags & \ #define RSS_PF(_a) ((_a)->vf_res->vf_offload_flags & \
I40E_VIRTCHNL_VF_OFFLOAD_RSS_PF) VIRTCHNL_VF_OFFLOAD_RSS_PF)
#define RSS_AQ(_a) ((_a)->vf_res->vf_offload_flags & \ #define RSS_AQ(_a) ((_a)->vf_res->vf_offload_flags & \
I40E_VIRTCHNL_VF_OFFLOAD_RSS_AQ) VIRTCHNL_VF_OFFLOAD_RSS_AQ)
#define RSS_REG(_a) (!((_a)->vf_res->vf_offload_flags & \ #define RSS_REG(_a) (!((_a)->vf_res->vf_offload_flags & \
(I40E_VIRTCHNL_VF_OFFLOAD_RSS_AQ | \ (VIRTCHNL_VF_OFFLOAD_RSS_AQ | \
I40E_VIRTCHNL_VF_OFFLOAD_RSS_PF))) VIRTCHNL_VF_OFFLOAD_RSS_PF)))
#define VLAN_ALLOWED(_a) ((_a)->vf_res->vf_offload_flags & \ #define VLAN_ALLOWED(_a) ((_a)->vf_res->vf_offload_flags & \
I40E_VIRTCHNL_VF_OFFLOAD_VLAN) VIRTCHNL_VF_OFFLOAD_VLAN)
struct i40e_virtchnl_vf_resource *vf_res; /* incl. all VSIs */ struct virtchnl_vf_resource *vf_res; /* incl. all VSIs */
struct i40e_virtchnl_vsi_resource *vsi_res; /* our LAN VSI */ struct virtchnl_vsi_resource *vsi_res; /* our LAN VSI */
struct i40e_virtchnl_version_info pf_version; struct virtchnl_version_info pf_version;
#define PF_IS_V11(_a) (((_a)->pf_version.major == 1) && \ #define PF_IS_V11(_a) (((_a)->pf_version.major == 1) && \
((_a)->pf_version.minor == 1)) ((_a)->pf_version.minor == 1))
u16 msg_enable; u16 msg_enable;
...@@ -348,7 +348,7 @@ void i40evf_set_hena(struct i40evf_adapter *adapter); ...@@ -348,7 +348,7 @@ void i40evf_set_hena(struct i40evf_adapter *adapter);
void i40evf_set_rss_key(struct i40evf_adapter *adapter); void i40evf_set_rss_key(struct i40evf_adapter *adapter);
void i40evf_set_rss_lut(struct i40evf_adapter *adapter); void i40evf_set_rss_lut(struct i40evf_adapter *adapter);
void i40evf_virtchnl_completion(struct i40evf_adapter *adapter, void i40evf_virtchnl_completion(struct i40evf_adapter *adapter,
enum i40e_virtchnl_ops v_opcode, enum virtchnl_ops v_opcode,
i40e_status v_retval, u8 *msg, u16 msglen); i40e_status v_retval, u8 *msg, u16 msglen);
int i40evf_config_rss(struct i40evf_adapter *adapter); int i40evf_config_rss(struct i40evf_adapter *adapter);
int i40evf_lan_add_device(struct i40evf_adapter *adapter); int i40evf_lan_add_device(struct i40evf_adapter *adapter);
......
...@@ -120,7 +120,7 @@ static int i40evf_client_release_qvlist(struct i40e_info *ldev) ...@@ -120,7 +120,7 @@ static int i40evf_client_release_qvlist(struct i40e_info *ldev)
return -EAGAIN; return -EAGAIN;
err = i40e_aq_send_msg_to_pf(&adapter->hw, err = i40e_aq_send_msg_to_pf(&adapter->hw,
I40E_VIRTCHNL_OP_RELEASE_IWARP_IRQ_MAP, VIRTCHNL_OP_RELEASE_IWARP_IRQ_MAP,
I40E_SUCCESS, NULL, 0, NULL); I40E_SUCCESS, NULL, 0, NULL);
if (err) if (err)
...@@ -410,7 +410,7 @@ static u32 i40evf_client_virtchnl_send(struct i40e_info *ldev, ...@@ -410,7 +410,7 @@ static u32 i40evf_client_virtchnl_send(struct i40e_info *ldev,
if (adapter->aq_required) if (adapter->aq_required)
return -EAGAIN; return -EAGAIN;
err = i40e_aq_send_msg_to_pf(&adapter->hw, I40E_VIRTCHNL_OP_IWARP, err = i40e_aq_send_msg_to_pf(&adapter->hw, VIRTCHNL_OP_IWARP,
I40E_SUCCESS, msg, len, NULL); I40E_SUCCESS, msg, len, NULL);
if (err) if (err)
dev_err(&adapter->pdev->dev, "Unable to send iWarp message to PF, error %d, aq status %d\n", dev_err(&adapter->pdev->dev, "Unable to send iWarp message to PF, error %d, aq status %d\n",
...@@ -431,7 +431,7 @@ static int i40evf_client_setup_qvlist(struct i40e_info *ldev, ...@@ -431,7 +431,7 @@ static int i40evf_client_setup_qvlist(struct i40e_info *ldev,
struct i40e_client *client, struct i40e_client *client,
struct i40e_qvlist_info *qvlist_info) struct i40e_qvlist_info *qvlist_info)
{ {
struct i40e_virtchnl_iwarp_qvlist_info *v_qvlist_info; struct virtchnl_iwarp_qvlist_info *v_qvlist_info;
struct i40evf_adapter *adapter = ldev->vf; struct i40evf_adapter *adapter = ldev->vf;
struct i40e_qv_info *qv_info; struct i40e_qv_info *qv_info;
i40e_status err; i40e_status err;
...@@ -453,14 +453,14 @@ static int i40evf_client_setup_qvlist(struct i40e_info *ldev, ...@@ -453,14 +453,14 @@ static int i40evf_client_setup_qvlist(struct i40e_info *ldev,
return -EINVAL; return -EINVAL;
} }
v_qvlist_info = (struct i40e_virtchnl_iwarp_qvlist_info *)qvlist_info; v_qvlist_info = (struct virtchnl_iwarp_qvlist_info *)qvlist_info;
msg_size = sizeof(struct i40e_virtchnl_iwarp_qvlist_info) + msg_size = sizeof(struct virtchnl_iwarp_qvlist_info) +
(sizeof(struct i40e_virtchnl_iwarp_qv_info) * (sizeof(struct virtchnl_iwarp_qv_info) *
(v_qvlist_info->num_vectors - 1)); (v_qvlist_info->num_vectors - 1));
adapter->client_pending |= BIT(I40E_VIRTCHNL_OP_CONFIG_IWARP_IRQ_MAP); adapter->client_pending |= BIT(VIRTCHNL_OP_CONFIG_IWARP_IRQ_MAP);
err = i40e_aq_send_msg_to_pf(&adapter->hw, err = i40e_aq_send_msg_to_pf(&adapter->hw,
I40E_VIRTCHNL_OP_CONFIG_IWARP_IRQ_MAP, VIRTCHNL_OP_CONFIG_IWARP_IRQ_MAP,
I40E_SUCCESS, (u8 *)v_qvlist_info, msg_size, NULL); I40E_SUCCESS, (u8 *)v_qvlist_info, msg_size, NULL);
if (err) { if (err) {
...@@ -474,7 +474,7 @@ static int i40evf_client_setup_qvlist(struct i40e_info *ldev, ...@@ -474,7 +474,7 @@ static int i40evf_client_setup_qvlist(struct i40e_info *ldev,
for (i = 0; i < 5; i++) { for (i = 0; i < 5; i++) {
msleep(100); msleep(100);
if (!(adapter->client_pending & if (!(adapter->client_pending &
BIT(I40E_VIRTCHNL_OP_CONFIG_IWARP_IRQ_MAP))) { BIT(VIRTCHNL_OP_CONFIG_IWARP_IRQ_MAP))) {
err = 0; err = 0;
break; break;
} }
......
...@@ -1131,7 +1131,7 @@ void i40evf_down(struct i40evf_adapter *adapter) ...@@ -1131,7 +1131,7 @@ void i40evf_down(struct i40evf_adapter *adapter)
if (!(adapter->flags & I40EVF_FLAG_PF_COMMS_FAILED) && if (!(adapter->flags & I40EVF_FLAG_PF_COMMS_FAILED) &&
adapter->state != __I40EVF_RESETTING) { adapter->state != __I40EVF_RESETTING) {
/* cancel any current operation */ /* cancel any current operation */
adapter->current_op = I40E_VIRTCHNL_OP_UNKNOWN; adapter->current_op = VIRTCHNL_OP_UNKNOWN;
/* Schedule operations to close down the HW. Don't wait /* Schedule operations to close down the HW. Don't wait
* here for this to complete. The watchdog is still running * here for this to complete. The watchdog is still running
* and it will take care of this. * and it will take care of this.
...@@ -1311,7 +1311,7 @@ static int i40evf_config_rss_aq(struct i40evf_adapter *adapter) ...@@ -1311,7 +1311,7 @@ static int i40evf_config_rss_aq(struct i40evf_adapter *adapter)
struct i40e_hw *hw = &adapter->hw; struct i40e_hw *hw = &adapter->hw;
int ret = 0; int ret = 0;
if (adapter->current_op != I40E_VIRTCHNL_OP_UNKNOWN) { if (adapter->current_op != VIRTCHNL_OP_UNKNOWN) {
/* bail because we already have a command pending */ /* bail because we already have a command pending */
dev_err(&adapter->pdev->dev, "Cannot configure RSS, command %d pending\n", dev_err(&adapter->pdev->dev, "Cannot configure RSS, command %d pending\n",
adapter->current_op); adapter->current_op);
...@@ -1410,7 +1410,7 @@ static int i40evf_init_rss(struct i40evf_adapter *adapter) ...@@ -1410,7 +1410,7 @@ static int i40evf_init_rss(struct i40evf_adapter *adapter)
if (!RSS_PF(adapter)) { if (!RSS_PF(adapter)) {
/* Enable PCTYPES for RSS, TCP/UDP with IPv4/IPv6 */ /* Enable PCTYPES for RSS, TCP/UDP with IPv4/IPv6 */
if (adapter->vf_res->vf_offload_flags & if (adapter->vf_res->vf_offload_flags &
I40E_VIRTCHNL_VF_OFFLOAD_RSS_PCTYPE_V2) VIRTCHNL_VF_OFFLOAD_RSS_PCTYPE_V2)
adapter->hena = I40E_DEFAULT_RSS_HENA_EXPANDED; adapter->hena = I40E_DEFAULT_RSS_HENA_EXPANDED;
else else
adapter->hena = I40E_DEFAULT_RSS_HENA; adapter->hena = I40E_DEFAULT_RSS_HENA;
...@@ -1588,8 +1588,8 @@ static void i40evf_watchdog_task(struct work_struct *work) ...@@ -1588,8 +1588,8 @@ static void i40evf_watchdog_task(struct work_struct *work)
if (adapter->flags & I40EVF_FLAG_PF_COMMS_FAILED) { if (adapter->flags & I40EVF_FLAG_PF_COMMS_FAILED) {
reg_val = rd32(hw, I40E_VFGEN_RSTAT) & reg_val = rd32(hw, I40E_VFGEN_RSTAT) &
I40E_VFGEN_RSTAT_VFR_STATE_MASK; I40E_VFGEN_RSTAT_VFR_STATE_MASK;
if ((reg_val == I40E_VFR_VFACTIVE) || if ((reg_val == VIRTCHNL_VFR_VFACTIVE) ||
(reg_val == I40E_VFR_COMPLETED)) { (reg_val == VIRTCHNL_VFR_COMPLETED)) {
/* A chance for redemption! */ /* A chance for redemption! */
dev_err(&adapter->pdev->dev, "Hardware came out of reset. Attempting reinit.\n"); dev_err(&adapter->pdev->dev, "Hardware came out of reset. Attempting reinit.\n");
adapter->state = __I40EVF_STARTUP; adapter->state = __I40EVF_STARTUP;
...@@ -1605,7 +1605,7 @@ static void i40evf_watchdog_task(struct work_struct *work) ...@@ -1605,7 +1605,7 @@ static void i40evf_watchdog_task(struct work_struct *work)
return; return;
} }
adapter->aq_required = 0; adapter->aq_required = 0;
adapter->current_op = I40E_VIRTCHNL_OP_UNKNOWN; adapter->current_op = VIRTCHNL_OP_UNKNOWN;
goto watchdog_done; goto watchdog_done;
} }
...@@ -1621,7 +1621,7 @@ static void i40evf_watchdog_task(struct work_struct *work) ...@@ -1621,7 +1621,7 @@ static void i40evf_watchdog_task(struct work_struct *work)
dev_err(&adapter->pdev->dev, "Hardware reset detected\n"); dev_err(&adapter->pdev->dev, "Hardware reset detected\n");
schedule_work(&adapter->reset_task); schedule_work(&adapter->reset_task);
adapter->aq_required = 0; adapter->aq_required = 0;
adapter->current_op = I40E_VIRTCHNL_OP_UNKNOWN; adapter->current_op = VIRTCHNL_OP_UNKNOWN;
goto watchdog_done; goto watchdog_done;
} }
...@@ -1854,7 +1854,7 @@ static void i40evf_reset_task(struct work_struct *work) ...@@ -1854,7 +1854,7 @@ static void i40evf_reset_task(struct work_struct *work)
reg_val = rd32(hw, I40E_VFGEN_RSTAT) & reg_val = rd32(hw, I40E_VFGEN_RSTAT) &
I40E_VFGEN_RSTAT_VFR_STATE_MASK; I40E_VFGEN_RSTAT_VFR_STATE_MASK;
if (reg_val == I40E_VFR_VFACTIVE) if (reg_val == VIRTCHNL_VFR_VFACTIVE)
break; break;
} }
...@@ -1888,7 +1888,7 @@ static void i40evf_reset_task(struct work_struct *work) ...@@ -1888,7 +1888,7 @@ static void i40evf_reset_task(struct work_struct *work)
/* kill and reinit the admin queue */ /* kill and reinit the admin queue */
i40evf_shutdown_adminq(hw); i40evf_shutdown_adminq(hw);
adapter->current_op = I40E_VIRTCHNL_OP_UNKNOWN; adapter->current_op = VIRTCHNL_OP_UNKNOWN;
err = i40evf_init_adminq(hw); err = i40evf_init_adminq(hw);
if (err) if (err)
dev_info(&adapter->pdev->dev, "Failed to init adminq: %d\n", dev_info(&adapter->pdev->dev, "Failed to init adminq: %d\n",
...@@ -1949,7 +1949,7 @@ static void i40evf_adminq_task(struct work_struct *work) ...@@ -1949,7 +1949,7 @@ static void i40evf_adminq_task(struct work_struct *work)
container_of(work, struct i40evf_adapter, adminq_task); container_of(work, struct i40evf_adapter, adminq_task);
struct i40e_hw *hw = &adapter->hw; struct i40e_hw *hw = &adapter->hw;
struct i40e_arq_event_info event; struct i40e_arq_event_info event;
struct i40e_virtchnl_msg *v_msg; struct virtchnl_msg *v_msg;
i40e_status ret; i40e_status ret;
u32 val, oldval; u32 val, oldval;
u16 pending; u16 pending;
...@@ -1962,7 +1962,7 @@ static void i40evf_adminq_task(struct work_struct *work) ...@@ -1962,7 +1962,7 @@ static void i40evf_adminq_task(struct work_struct *work)
if (!event.msg_buf) if (!event.msg_buf)
goto out; goto out;
v_msg = (struct i40e_virtchnl_msg *)&event.desc; v_msg = (struct virtchnl_msg *)&event.desc;
do { do {
ret = i40evf_clean_arq_element(hw, &event, &pending); ret = i40evf_clean_arq_element(hw, &event, &pending);
if (ret || !v_msg->v_opcode) if (ret || !v_msg->v_opcode)
...@@ -2347,7 +2347,7 @@ static netdev_features_t i40evf_fix_features(struct net_device *netdev, ...@@ -2347,7 +2347,7 @@ static netdev_features_t i40evf_fix_features(struct net_device *netdev,
struct i40evf_adapter *adapter = netdev_priv(netdev); struct i40evf_adapter *adapter = netdev_priv(netdev);
features &= ~I40EVF_VLAN_FEATURES; features &= ~I40EVF_VLAN_FEATURES;
if (adapter->vf_res->vf_offload_flags & I40E_VIRTCHNL_VF_OFFLOAD_VLAN) if (adapter->vf_res->vf_offload_flags & VIRTCHNL_VF_OFFLOAD_VLAN)
features |= I40EVF_VLAN_FEATURES; features |= I40EVF_VLAN_FEATURES;
return features; return features;
} }
...@@ -2384,8 +2384,8 @@ static int i40evf_check_reset_complete(struct i40e_hw *hw) ...@@ -2384,8 +2384,8 @@ static int i40evf_check_reset_complete(struct i40e_hw *hw)
for (i = 0; i < 100; i++) { for (i = 0; i < 100; i++) {
rstat = rd32(hw, I40E_VFGEN_RSTAT) & rstat = rd32(hw, I40E_VFGEN_RSTAT) &
I40E_VFGEN_RSTAT_VFR_STATE_MASK; I40E_VFGEN_RSTAT_VFR_STATE_MASK;
if ((rstat == I40E_VFR_VFACTIVE) || if ((rstat == VIRTCHNL_VFR_VFACTIVE) ||
(rstat == I40E_VFR_COMPLETED)) (rstat == VIRTCHNL_VFR_COMPLETED))
return 0; return 0;
usleep_range(10, 20); usleep_range(10, 20);
} }
...@@ -2401,7 +2401,7 @@ static int i40evf_check_reset_complete(struct i40e_hw *hw) ...@@ -2401,7 +2401,7 @@ static int i40evf_check_reset_complete(struct i40e_hw *hw)
**/ **/
int i40evf_process_config(struct i40evf_adapter *adapter) int i40evf_process_config(struct i40evf_adapter *adapter)
{ {
struct i40e_virtchnl_vf_resource *vfres = adapter->vf_res; struct virtchnl_vf_resource *vfres = adapter->vf_res;
struct net_device *netdev = adapter->netdev; struct net_device *netdev = adapter->netdev;
struct i40e_vsi *vsi = &adapter->vsi; struct i40e_vsi *vsi = &adapter->vsi;
int i; int i;
...@@ -2434,7 +2434,7 @@ int i40evf_process_config(struct i40evf_adapter *adapter) ...@@ -2434,7 +2434,7 @@ int i40evf_process_config(struct i40evf_adapter *adapter)
/* advertise to stack only if offloads for encapsulated packets is /* advertise to stack only if offloads for encapsulated packets is
* supported * supported
*/ */
if (vfres->vf_offload_flags & I40E_VIRTCHNL_VF_OFFLOAD_ENCAP) { if (vfres->vf_offload_flags & VIRTCHNL_VF_OFFLOAD_ENCAP) {
hw_enc_features |= NETIF_F_GSO_UDP_TUNNEL | hw_enc_features |= NETIF_F_GSO_UDP_TUNNEL |
NETIF_F_GSO_GRE | NETIF_F_GSO_GRE |
NETIF_F_GSO_GRE_CSUM | NETIF_F_GSO_GRE_CSUM |
...@@ -2445,7 +2445,7 @@ int i40evf_process_config(struct i40evf_adapter *adapter) ...@@ -2445,7 +2445,7 @@ int i40evf_process_config(struct i40evf_adapter *adapter)
0; 0;
if (!(vfres->vf_offload_flags & if (!(vfres->vf_offload_flags &
I40E_VIRTCHNL_VF_OFFLOAD_ENCAP_CSUM)) VIRTCHNL_VF_OFFLOAD_ENCAP_CSUM))
netdev->gso_partial_features |= netdev->gso_partial_features |=
NETIF_F_GSO_UDP_TUNNEL_CSUM; NETIF_F_GSO_UDP_TUNNEL_CSUM;
...@@ -2472,7 +2472,7 @@ int i40evf_process_config(struct i40evf_adapter *adapter) ...@@ -2472,7 +2472,7 @@ int i40evf_process_config(struct i40evf_adapter *adapter)
adapter->vsi.work_limit = I40E_DEFAULT_IRQ_WORK; adapter->vsi.work_limit = I40E_DEFAULT_IRQ_WORK;
vsi->netdev = adapter->netdev; vsi->netdev = adapter->netdev;
vsi->qs_handle = adapter->vsi_res->qset_handle; vsi->qs_handle = adapter->vsi_res->qset_handle;
if (vfres->vf_offload_flags & I40E_VIRTCHNL_VF_OFFLOAD_RSS_PF) { if (vfres->vf_offload_flags & VIRTCHNL_VF_OFFLOAD_RSS_PF) {
adapter->rss_key_size = vfres->rss_key_size; adapter->rss_key_size = vfres->rss_key_size;
adapter->rss_lut_size = vfres->rss_lut_size; adapter->rss_lut_size = vfres->rss_lut_size;
} else { } else {
...@@ -2558,8 +2558,8 @@ static void i40evf_init_task(struct work_struct *work) ...@@ -2558,8 +2558,8 @@ static void i40evf_init_task(struct work_struct *work)
dev_err(&pdev->dev, "Unsupported PF API version %d.%d, expected %d.%d\n", dev_err(&pdev->dev, "Unsupported PF API version %d.%d, expected %d.%d\n",
adapter->pf_version.major, adapter->pf_version.major,
adapter->pf_version.minor, adapter->pf_version.minor,
I40E_VIRTCHNL_VERSION_MAJOR, VIRTCHNL_VERSION_MAJOR,
I40E_VIRTCHNL_VERSION_MINOR); VIRTCHNL_VERSION_MINOR);
goto err; goto err;
} }
err = i40evf_send_vf_config_msg(adapter); err = i40evf_send_vf_config_msg(adapter);
...@@ -2573,9 +2573,9 @@ static void i40evf_init_task(struct work_struct *work) ...@@ -2573,9 +2573,9 @@ static void i40evf_init_task(struct work_struct *work)
case __I40EVF_INIT_GET_RESOURCES: case __I40EVF_INIT_GET_RESOURCES:
/* aq msg sent, awaiting reply */ /* aq msg sent, awaiting reply */
if (!adapter->vf_res) { if (!adapter->vf_res) {
bufsz = sizeof(struct i40e_virtchnl_vf_resource) + bufsz = sizeof(struct virtchnl_vf_resource) +
(I40E_MAX_VF_VSI * (I40E_MAX_VF_VSI *
sizeof(struct i40e_virtchnl_vsi_resource)); sizeof(struct virtchnl_vsi_resource));
adapter->vf_res = kzalloc(bufsz, GFP_KERNEL); adapter->vf_res = kzalloc(bufsz, GFP_KERNEL);
if (!adapter->vf_res) if (!adapter->vf_res)
goto err; goto err;
...@@ -2606,7 +2606,7 @@ static void i40evf_init_task(struct work_struct *work) ...@@ -2606,7 +2606,7 @@ static void i40evf_init_task(struct work_struct *work)
if (i40evf_process_config(adapter)) if (i40evf_process_config(adapter))
goto err_alloc; goto err_alloc;
adapter->current_op = I40E_VIRTCHNL_OP_UNKNOWN; adapter->current_op = VIRTCHNL_OP_UNKNOWN;
adapter->flags |= I40EVF_FLAG_RX_CSUM_ENABLED; adapter->flags |= I40EVF_FLAG_RX_CSUM_ENABLED;
...@@ -2644,7 +2644,7 @@ static void i40evf_init_task(struct work_struct *work) ...@@ -2644,7 +2644,7 @@ static void i40evf_init_task(struct work_struct *work)
goto err_sw_init; goto err_sw_init;
i40evf_map_rings_to_vectors(adapter); i40evf_map_rings_to_vectors(adapter);
if (adapter->vf_res->vf_offload_flags & if (adapter->vf_res->vf_offload_flags &
I40E_VIRTCHNL_VF_OFFLOAD_WB_ON_ITR) VIRTCHNL_VF_OFFLOAD_WB_ON_ITR)
adapter->flags |= I40EVF_FLAG_WB_ON_ITR_CAPABLE; adapter->flags |= I40EVF_FLAG_WB_ON_ITR_CAPABLE;
err = i40evf_request_misc_irq(adapter); err = i40evf_request_misc_irq(adapter);
......
...@@ -24,8 +24,8 @@ ...@@ -24,8 +24,8 @@
* *
******************************************************************************/ ******************************************************************************/
#ifndef _I40E_VIRTCHNL_H_ #ifndef _VIRTCHNL_H_
#define _I40E_VIRTCHNL_H_ #define _VIRTCHNL_H_
/* Description: /* Description:
* This header file describes the VF-PF communication protocol used * This header file describes the VF-PF communication protocol used
...@@ -56,36 +56,36 @@ ...@@ -56,36 +56,36 @@
/* Opcodes for VF-PF communication. These are placed in the v_opcode field /* Opcodes for VF-PF communication. These are placed in the v_opcode field
* of the virtchnl_msg structure. * of the virtchnl_msg structure.
*/ */
enum i40e_virtchnl_ops { enum virtchnl_ops {
/* The PF sends status change events to VFs using /* The PF sends status change events to VFs using
* the I40E_VIRTCHNL_OP_EVENT opcode. * the VIRTCHNL_OP_EVENT opcode.
* VFs send requests to the PF using the other ops. * VFs send requests to the PF using the other ops.
*/ */
I40E_VIRTCHNL_OP_UNKNOWN = 0, VIRTCHNL_OP_UNKNOWN = 0,
I40E_VIRTCHNL_OP_VERSION = 1, /* must ALWAYS be 1 */ VIRTCHNL_OP_VERSION = 1, /* must ALWAYS be 1 */
I40E_VIRTCHNL_OP_RESET_VF = 2, VIRTCHNL_OP_RESET_VF = 2,
I40E_VIRTCHNL_OP_GET_VF_RESOURCES = 3, VIRTCHNL_OP_GET_VF_RESOURCES = 3,
I40E_VIRTCHNL_OP_CONFIG_TX_QUEUE = 4, VIRTCHNL_OP_CONFIG_TX_QUEUE = 4,
I40E_VIRTCHNL_OP_CONFIG_RX_QUEUE = 5, VIRTCHNL_OP_CONFIG_RX_QUEUE = 5,
I40E_VIRTCHNL_OP_CONFIG_VSI_QUEUES = 6, VIRTCHNL_OP_CONFIG_VSI_QUEUES = 6,
I40E_VIRTCHNL_OP_CONFIG_IRQ_MAP = 7, VIRTCHNL_OP_CONFIG_IRQ_MAP = 7,
I40E_VIRTCHNL_OP_ENABLE_QUEUES = 8, VIRTCHNL_OP_ENABLE_QUEUES = 8,
I40E_VIRTCHNL_OP_DISABLE_QUEUES = 9, VIRTCHNL_OP_DISABLE_QUEUES = 9,
I40E_VIRTCHNL_OP_ADD_ETHER_ADDRESS = 10, VIRTCHNL_OP_ADD_ETH_ADDR = 10,
I40E_VIRTCHNL_OP_DEL_ETHER_ADDRESS = 11, VIRTCHNL_OP_DEL_ETH_ADDR = 11,
I40E_VIRTCHNL_OP_ADD_VLAN = 12, VIRTCHNL_OP_ADD_VLAN = 12,
I40E_VIRTCHNL_OP_DEL_VLAN = 13, VIRTCHNL_OP_DEL_VLAN = 13,
I40E_VIRTCHNL_OP_CONFIG_PROMISCUOUS_MODE = 14, VIRTCHNL_OP_CONFIG_PROMISCUOUS_MODE = 14,
I40E_VIRTCHNL_OP_GET_STATS = 15, VIRTCHNL_OP_GET_STATS = 15,
I40E_VIRTCHNL_OP_RSVD = 16, VIRTCHNL_OP_RSVD = 16,
I40E_VIRTCHNL_OP_EVENT = 17, /* must ALWAYS be 17 */ VIRTCHNL_OP_EVENT = 17, /* must ALWAYS be 17 */
I40E_VIRTCHNL_OP_IWARP = 20, VIRTCHNL_OP_IWARP = 20,
I40E_VIRTCHNL_OP_CONFIG_IWARP_IRQ_MAP = 21, VIRTCHNL_OP_CONFIG_IWARP_IRQ_MAP = 21,
I40E_VIRTCHNL_OP_RELEASE_IWARP_IRQ_MAP = 22, VIRTCHNL_OP_RELEASE_IWARP_IRQ_MAP = 22,
I40E_VIRTCHNL_OP_CONFIG_RSS_KEY = 23, VIRTCHNL_OP_CONFIG_RSS_KEY = 23,
I40E_VIRTCHNL_OP_CONFIG_RSS_LUT = 24, VIRTCHNL_OP_CONFIG_RSS_LUT = 24,
I40E_VIRTCHNL_OP_GET_RSS_HENA_CAPS = 25, VIRTCHNL_OP_GET_RSS_HENA_CAPS = 25,
I40E_VIRTCHNL_OP_SET_RSS_HENA = 26, VIRTCHNL_OP_SET_RSS_HENA = 26,
}; };
...@@ -93,16 +93,16 @@ enum i40e_virtchnl_ops { ...@@ -93,16 +93,16 @@ enum i40e_virtchnl_ops {
* descriptor. All other data is passed in external buffers. * descriptor. All other data is passed in external buffers.
*/ */
struct i40e_virtchnl_msg { struct virtchnl_msg {
u8 pad[8]; /* AQ flags/opcode/len/retval fields */ u8 pad[8]; /* AQ flags/opcode/len/retval fields */
enum i40e_virtchnl_ops v_opcode; /* avoid confusion with desc->opcode */ enum virtchnl_ops v_opcode; /* avoid confusion with desc->opcode */
i40e_status v_retval; /* ditto for desc->retval */ i40e_status v_retval; /* ditto for desc->retval */
u32 vfid; /* used by PF when sending to VF */ u32 vfid; /* used by PF when sending to VF */
}; };
/* Message descriptions and data structures.*/ /* Message descriptions and data structures.*/
/* I40E_VIRTCHNL_OP_VERSION /* VIRTCHNL_OP_VERSION
* VF posts its version number to the PF. PF responds with its version number * VF posts its version number to the PF. PF responds with its version number
* in the same format, along with a return code. * in the same format, along with a return code.
* Reply from PF has its major/minor versions also in param0 and param1. * Reply from PF has its major/minor versions also in param0 and param1.
...@@ -114,16 +114,16 @@ struct i40e_virtchnl_msg { ...@@ -114,16 +114,16 @@ struct i40e_virtchnl_msg {
* changes in the API. The PF must always respond to this message without * changes in the API. The PF must always respond to this message without
* error regardless of version mismatch. * error regardless of version mismatch.
*/ */
#define I40E_VIRTCHNL_VERSION_MAJOR 1 #define VIRTCHNL_VERSION_MAJOR 1
#define I40E_VIRTCHNL_VERSION_MINOR 1 #define VIRTCHNL_VERSION_MINOR 1
#define I40E_VIRTCHNL_VERSION_MINOR_NO_VF_CAPS 0 #define VIRTCHNL_VERSION_MINOR_NO_VF_CAPS 0
struct i40e_virtchnl_version_info { struct virtchnl_version_info {
u32 major; u32 major;
u32 minor; u32 minor;
}; };
/* I40E_VIRTCHNL_OP_RESET_VF /* VIRTCHNL_OP_RESET_VF
* VF sends this request to PF with no parameters * VF sends this request to PF with no parameters
* PF does NOT respond! VF driver must delay then poll VFGEN_RSTAT register * PF does NOT respond! VF driver must delay then poll VFGEN_RSTAT register
* until reset completion is indicated. The admin queue must be reinitialized * until reset completion is indicated. The admin queue must be reinitialized
...@@ -135,15 +135,15 @@ struct i40e_virtchnl_version_info { ...@@ -135,15 +135,15 @@ struct i40e_virtchnl_version_info {
* are cleared. * are cleared.
*/ */
/* I40E_VIRTCHNL_OP_GET_VF_RESOURCES /* VIRTCHNL_OP_GET_VF_RESOURCES
* Version 1.0 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 * 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 * virtchnl_vf_resource and one or more
* i40e_virtchnl_vsi_resource structures. * virtchnl_vsi_resource structures.
*/ */
struct i40e_virtchnl_vsi_resource { struct virtchnl_vsi_resource {
u16 vsi_id; u16 vsi_id;
u16 num_queue_pairs; u16 num_queue_pairs;
enum i40e_vsi_type vsi_type; enum i40e_vsi_type vsi_type;
...@@ -151,23 +151,24 @@ struct i40e_virtchnl_vsi_resource { ...@@ -151,23 +151,24 @@ 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 VIRTCHNL_VF_OFFLOAD_L2 0x00000001
#define I40E_VIRTCHNL_VF_OFFLOAD_IWARP 0x00000002 #define VIRTCHNL_VF_OFFLOAD_IWARP 0x00000002
#define I40E_VIRTCHNL_VF_OFFLOAD_RSS_AQ 0x00000008 #define VIRTCHNL_VF_OFFLOAD_FCOE 0x00000004
#define I40E_VIRTCHNL_VF_OFFLOAD_RSS_REG 0x00000010 #define VIRTCHNL_VF_OFFLOAD_RSS_AQ 0x00000008
#define I40E_VIRTCHNL_VF_OFFLOAD_WB_ON_ITR 0x00000020 #define VIRTCHNL_VF_OFFLOAD_RSS_REG 0x00000010
#define I40E_VIRTCHNL_VF_OFFLOAD_VLAN 0x00010000 #define VIRTCHNL_VF_OFFLOAD_WB_ON_ITR 0x00000020
#define I40E_VIRTCHNL_VF_OFFLOAD_RX_POLLING 0x00020000 #define VIRTCHNL_VF_OFFLOAD_VLAN 0x00010000
#define I40E_VIRTCHNL_VF_OFFLOAD_RSS_PCTYPE_V2 0x00040000 #define VIRTCHNL_VF_OFFLOAD_RX_POLLING 0x00020000
#define I40E_VIRTCHNL_VF_OFFLOAD_RSS_PF 0X00080000 #define VIRTCHNL_VF_OFFLOAD_RSS_PCTYPE_V2 0x00040000
#define I40E_VIRTCHNL_VF_OFFLOAD_ENCAP 0X00100000 #define VIRTCHNL_VF_OFFLOAD_RSS_PF 0X00080000
#define I40E_VIRTCHNL_VF_OFFLOAD_ENCAP_CSUM 0X00200000 #define VIRTCHNL_VF_OFFLOAD_ENCAP 0X00100000
#define VIRTCHNL_VF_OFFLOAD_ENCAP_CSUM 0X00200000
#define I40E_VF_BASE_MODE_OFFLOADS (I40E_VIRTCHNL_VF_OFFLOAD_L2 | \
I40E_VIRTCHNL_VF_OFFLOAD_VLAN | \ #define I40E_VF_BASE_MODE_OFFLOADS (VIRTCHNL_VF_OFFLOAD_L2 | \
I40E_VIRTCHNL_VF_OFFLOAD_RSS_PF) VIRTCHNL_VF_OFFLOAD_VLAN | \
VIRTCHNL_VF_OFFLOAD_RSS_PF)
struct i40e_virtchnl_vf_resource {
struct virtchnl_vf_resource {
u16 num_vsis; u16 num_vsis;
u16 num_queue_pairs; u16 num_queue_pairs;
u16 max_vectors; u16 max_vectors;
...@@ -177,17 +178,17 @@ struct i40e_virtchnl_vf_resource { ...@@ -177,17 +178,17 @@ struct i40e_virtchnl_vf_resource {
u32 rss_key_size; u32 rss_key_size;
u32 rss_lut_size; u32 rss_lut_size;
struct i40e_virtchnl_vsi_resource vsi_res[1]; struct virtchnl_vsi_resource vsi_res[1];
}; };
/* I40E_VIRTCHNL_OP_CONFIG_TX_QUEUE /* VIRTCHNL_OP_CONFIG_TX_QUEUE
* VF sends this message to set up parameters for one TX queue. * VF sends this message to set up parameters for one TX queue.
* External data buffer contains one instance of i40e_virtchnl_txq_info. * External data buffer contains one instance of virtchnl_txq_info.
* PF configures requested queue and returns a status code. * PF configures requested queue and returns a status code.
*/ */
/* Tx queue config info */ /* Tx queue config info */
struct i40e_virtchnl_txq_info { struct virtchnl_txq_info {
u16 vsi_id; u16 vsi_id;
u16 queue_id; u16 queue_id;
u16 ring_len; /* number of descriptors, multiple of 8 */ u16 ring_len; /* number of descriptors, multiple of 8 */
...@@ -196,14 +197,14 @@ struct i40e_virtchnl_txq_info { ...@@ -196,14 +197,14 @@ struct i40e_virtchnl_txq_info {
u64 dma_headwb_addr; u64 dma_headwb_addr;
}; };
/* I40E_VIRTCHNL_OP_CONFIG_RX_QUEUE /* VIRTCHNL_OP_CONFIG_RX_QUEUE
* VF sends this message to set up parameters for one RX queue. * VF sends this message to set up parameters for one RX queue.
* External data buffer contains one instance of i40e_virtchnl_rxq_info. * External data buffer contains one instance of virtchnl_rxq_info.
* PF configures requested queue and returns a status code. * PF configures requested queue and returns a status code.
*/ */
/* Rx queue config info */ /* Rx queue config info */
struct i40e_virtchnl_rxq_info { struct virtchnl_rxq_info {
u16 vsi_id; u16 vsi_id;
u16 queue_id; u16 queue_id;
u32 ring_len; /* number of descriptors, multiple of 32 */ u32 ring_len; /* number of descriptors, multiple of 32 */
...@@ -215,33 +216,33 @@ struct i40e_virtchnl_rxq_info { ...@@ -215,33 +216,33 @@ struct i40e_virtchnl_rxq_info {
enum i40e_hmc_obj_rx_hsplit_0 rx_split_pos; enum i40e_hmc_obj_rx_hsplit_0 rx_split_pos;
}; };
/* I40E_VIRTCHNL_OP_CONFIG_VSI_QUEUES /* VIRTCHNL_OP_CONFIG_VSI_QUEUES
* VF sends this message to set parameters for all active TX and RX queues * VF sends this message to set parameters for all active TX and RX queues
* associated with the specified VSI. * associated with the specified VSI.
* PF configures queues and returns status. * PF configures queues and returns status.
* If the number of queues specified is greater than the number of queues * If the number of queues specified is greater than the number of queues
* associated with the VSI, an error is returned and no queues are configured. * associated with the VSI, an error is returned and no queues are configured.
*/ */
struct i40e_virtchnl_queue_pair_info { struct virtchnl_queue_pair_info {
/* NOTE: vsi_id and queue_id should be identical for both queues. */ /* NOTE: vsi_id and queue_id should be identical for both queues. */
struct i40e_virtchnl_txq_info txq; struct virtchnl_txq_info txq;
struct i40e_virtchnl_rxq_info rxq; struct virtchnl_rxq_info rxq;
}; };
struct i40e_virtchnl_vsi_queue_config_info { struct virtchnl_vsi_queue_config_info {
u16 vsi_id; u16 vsi_id;
u16 num_queue_pairs; u16 num_queue_pairs;
struct i40e_virtchnl_queue_pair_info qpair[1]; struct virtchnl_queue_pair_info qpair[1];
}; };
/* I40E_VIRTCHNL_OP_CONFIG_IRQ_MAP /* VIRTCHNL_OP_CONFIG_IRQ_MAP
* VF uses this message to map vectors to queues. * VF uses this message to map vectors to queues.
* The rxq_map and txq_map fields are bitmaps used to indicate which queues * The rxq_map and txq_map fields are bitmaps used to indicate which queues
* are to be associated with the specified vector. * are to be associated with the specified vector.
* The "other" causes are always mapped to vector 0. * The "other" causes are always mapped to vector 0.
* PF configures interrupt mapping and returns status. * PF configures interrupt mapping and returns status.
*/ */
struct i40e_virtchnl_vector_map { struct virtchnl_vector_map {
u16 vsi_id; u16 vsi_id;
u16 vector_id; u16 vector_id;
u16 rxq_map; u16 rxq_map;
...@@ -250,75 +251,75 @@ struct i40e_virtchnl_vector_map { ...@@ -250,75 +251,75 @@ struct i40e_virtchnl_vector_map {
u16 txitr_idx; u16 txitr_idx;
}; };
struct i40e_virtchnl_irq_map_info { struct virtchnl_irq_map_info {
u16 num_vectors; u16 num_vectors;
struct i40e_virtchnl_vector_map vecmap[1]; struct virtchnl_vector_map vecmap[1];
}; };
/* I40E_VIRTCHNL_OP_ENABLE_QUEUES /* VIRTCHNL_OP_ENABLE_QUEUES
* I40E_VIRTCHNL_OP_DISABLE_QUEUES * VIRTCHNL_OP_DISABLE_QUEUES
* VF sends these message to enable or disable TX/RX queue pairs. * VF sends these message to enable or disable TX/RX queue pairs.
* The queues fields are bitmaps indicating which queues to act upon. * The queues fields are bitmaps indicating which queues to act upon.
* (Currently, we only support 16 queues per VF, but we make the field * (Currently, we only support 16 queues per VF, but we make the field
* u32 to allow for expansion.) * u32 to allow for expansion.)
* PF performs requested action and returns status. * PF performs requested action and returns status.
*/ */
struct i40e_virtchnl_queue_select { struct virtchnl_queue_select {
u16 vsi_id; u16 vsi_id;
u16 pad; u16 pad;
u32 rx_queues; u32 rx_queues;
u32 tx_queues; u32 tx_queues;
}; };
/* I40E_VIRTCHNL_OP_ADD_ETHER_ADDRESS /* VIRTCHNL_OP_ADD_ETH_ADDR
* VF sends this message in order to add one or more unicast or multicast * VF sends this message in order to add one or more unicast or multicast
* address filters for the specified VSI. * address filters for the specified VSI.
* PF adds the filters and returns status. * PF adds the filters and returns status.
*/ */
/* I40E_VIRTCHNL_OP_DEL_ETHER_ADDRESS /* VIRTCHNL_OP_DEL_ETH_ADDR
* VF sends this message in order to remove one or more unicast or multicast * VF sends this message in order to remove one or more unicast or multicast
* filters for the specified VSI. * filters for the specified VSI.
* PF removes the filters and returns status. * PF removes the filters and returns status.
*/ */
struct i40e_virtchnl_ether_addr { struct virtchnl_ether_addr {
u8 addr[ETH_ALEN]; u8 addr[ETH_ALEN];
u8 pad[2]; u8 pad[2];
}; };
struct i40e_virtchnl_ether_addr_list { struct virtchnl_ether_addr_list {
u16 vsi_id; u16 vsi_id;
u16 num_elements; u16 num_elements;
struct i40e_virtchnl_ether_addr list[1]; struct virtchnl_ether_addr list[1];
}; };
/* I40E_VIRTCHNL_OP_ADD_VLAN /* VIRTCHNL_OP_ADD_VLAN
* VF sends this message to add one or more VLAN tag filters for receives. * VF sends this message to add one or more VLAN tag filters for receives.
* PF adds the filters and returns status. * PF adds the filters and returns status.
* If a port VLAN is configured by the PF, this operation will return an * If a port VLAN is configured by the PF, this operation will return an
* error to the VF. * error to the VF.
*/ */
/* I40E_VIRTCHNL_OP_DEL_VLAN /* VIRTCHNL_OP_DEL_VLAN
* VF sends this message to remove one or more VLAN tag filters for receives. * VF sends this message to remove one or more VLAN tag filters for receives.
* PF removes the filters and returns status. * PF removes the filters and returns status.
* If a port VLAN is configured by the PF, this operation will return an * If a port VLAN is configured by the PF, this operation will return an
* error to the VF. * error to the VF.
*/ */
struct i40e_virtchnl_vlan_filter_list { struct virtchnl_vlan_filter_list {
u16 vsi_id; u16 vsi_id;
u16 num_elements; u16 num_elements;
u16 vlan_id[1]; u16 vlan_id[1];
}; };
/* I40E_VIRTCHNL_OP_CONFIG_PROMISCUOUS_MODE /* VIRTCHNL_OP_CONFIG_PROMISCUOUS_MODE
* VF sends VSI id and flags. * VF sends VSI id and flags.
* PF returns status code in retval. * PF returns status code in retval.
* Note: we assume that broadcast accept mode is always enabled. * Note: we assume that broadcast accept mode is always enabled.
*/ */
struct i40e_virtchnl_promisc_info { struct virtchnl_promisc_info {
u16 vsi_id; u16 vsi_id;
u16 flags; u16 flags;
}; };
...@@ -326,63 +327,63 @@ struct i40e_virtchnl_promisc_info { ...@@ -326,63 +327,63 @@ struct i40e_virtchnl_promisc_info {
#define I40E_FLAG_VF_UNICAST_PROMISC 0x00000001 #define I40E_FLAG_VF_UNICAST_PROMISC 0x00000001
#define I40E_FLAG_VF_MULTICAST_PROMISC 0x00000002 #define I40E_FLAG_VF_MULTICAST_PROMISC 0x00000002
/* I40E_VIRTCHNL_OP_GET_STATS /* VIRTCHNL_OP_GET_STATS
* VF sends this message to request stats for the selected VSI. VF uses * VF sends this message to request stats for the selected VSI. VF uses
* the i40e_virtchnl_queue_select struct to specify the VSI. The queue_id * the virtchnl_queue_select struct to specify the VSI. The queue_id
* field is ignored by the PF. * field is ignored by the PF.
* *
* PF replies with struct i40e_eth_stats in an external buffer. * PF replies with struct i40e_eth_stats in an external buffer.
*/ */
/* I40E_VIRTCHNL_OP_CONFIG_RSS_KEY /* VIRTCHNL_OP_CONFIG_RSS_KEY
* I40E_VIRTCHNL_OP_CONFIG_RSS_LUT * VIRTCHNL_OP_CONFIG_RSS_LUT
* VF sends these messages to configure RSS. Only supported if both PF * VF sends these messages to configure RSS. Only supported if both PF
* and VF drivers set the I40E_VIRTCHNL_VF_OFFLOAD_RSS_PF bit during * and VF drivers set the VIRTCHNL_VF_OFFLOAD_RSS_PF bit during
* configuration negotiation. If this is the case, then the RSS fields in * configuration negotiation. If this is the case, then the RSS fields in
* the VF resource struct are valid. * the VF resource struct are valid.
* Both the key and LUT are initialized to 0 by the PF, meaning that * Both the key and LUT are initialized to 0 by the PF, meaning that
* RSS is effectively disabled until set up by the VF. * RSS is effectively disabled until set up by the VF.
*/ */
struct i40e_virtchnl_rss_key { struct virtchnl_rss_key {
u16 vsi_id; u16 vsi_id;
u16 key_len; u16 key_len;
u8 key[1]; /* RSS hash key, packed bytes */ u8 key[1]; /* RSS hash key, packed bytes */
}; };
struct i40e_virtchnl_rss_lut { struct virtchnl_rss_lut {
u16 vsi_id; u16 vsi_id;
u16 lut_entries; u16 lut_entries;
u8 lut[1]; /* RSS lookup table*/ u8 lut[1]; /* RSS lookup table*/
}; };
/* I40E_VIRTCHNL_OP_GET_RSS_HENA_CAPS /* VIRTCHNL_OP_GET_RSS_HENA_CAPS
* I40E_VIRTCHNL_OP_SET_RSS_HENA * VIRTCHNL_OP_SET_RSS_HENA
* VF sends these messages to get and set the hash filter enable bits for RSS. * VF sends these messages to get and set the hash filter enable bits for RSS.
* By default, the PF sets these to all possible traffic types that the * By default, the PF sets these to all possible traffic types that the
* hardware supports. The VF can query this value if it wants to change the * hardware supports. The VF can query this value if it wants to change the
* traffic types that are hashed by the hardware. * traffic types that are hashed by the hardware.
* Traffic types are defined in the i40e_filter_pctype enum in i40e_type.h * Traffic types are defined in the i40e_filter_pctype enum in i40e_type.h
*/ */
struct i40e_virtchnl_rss_hena { struct virtchnl_rss_hena {
u64 hena; u64 hena;
}; };
/* I40E_VIRTCHNL_OP_EVENT /* VIRTCHNL_OP_EVENT
* PF sends this message to inform the VF driver of events that may affect it. * PF sends this message to inform the VF driver of events that may affect it.
* No direct response is expected from the VF, though it may generate other * No direct response is expected from the VF, though it may generate other
* messages in response to this one. * messages in response to this one.
*/ */
enum i40e_virtchnl_event_codes { enum virtchnl_event_codes {
I40E_VIRTCHNL_EVENT_UNKNOWN = 0, VIRTCHNL_EVENT_UNKNOWN = 0,
I40E_VIRTCHNL_EVENT_LINK_CHANGE, VIRTCHNL_EVENT_LINK_CHANGE,
I40E_VIRTCHNL_EVENT_RESET_IMPENDING, VIRTCHNL_EVENT_RESET_IMPENDING,
I40E_VIRTCHNL_EVENT_PF_DRIVER_CLOSE, VIRTCHNL_EVENT_PF_DRIVER_CLOSE,
}; };
#define I40E_PF_EVENT_SEVERITY_INFO 0 #define I40E_PF_EVENT_SEVERITY_INFO 0
#define I40E_PF_EVENT_SEVERITY_CERTAIN_DOOM 255 #define I40E_PF_EVENT_SEVERITY_CERTAIN_DOOM 255
struct i40e_virtchnl_pf_event { struct virtchnl_pf_event {
enum i40e_virtchnl_event_codes event; enum virtchnl_event_codes event;
union { union {
struct { struct {
enum i40e_aq_link_speed link_speed; enum i40e_aq_link_speed link_speed;
...@@ -393,7 +394,7 @@ struct i40e_virtchnl_pf_event { ...@@ -393,7 +394,7 @@ struct i40e_virtchnl_pf_event {
int severity; int severity;
}; };
/* I40E_VIRTCHNL_OP_CONFIG_IWARP_IRQ_MAP /* VIRTCHNL_OP_CONFIG_IWARP_IRQ_MAP
* VF uses this message to request PF to map IWARP vectors to IWARP queues. * VF uses this message to request PF to map IWARP vectors to IWARP queues.
* The request for this originates from the VF IWARP driver through * The request for this originates from the VF IWARP driver through
* a client interface between VF LAN and VF IWARP driver. * a client interface between VF LAN and VF IWARP driver.
...@@ -412,16 +413,16 @@ struct i40e_virtchnl_pf_event { ...@@ -412,16 +413,16 @@ struct i40e_virtchnl_pf_event {
#define I40E_QUEUE_TYPE_PE_AEQ 0x80 #define I40E_QUEUE_TYPE_PE_AEQ 0x80
#define I40E_QUEUE_INVALID_IDX 0xFFFF #define I40E_QUEUE_INVALID_IDX 0xFFFF
struct i40e_virtchnl_iwarp_qv_info { struct virtchnl_iwarp_qv_info {
u32 v_idx; /* msix_vector */ u32 v_idx; /* msix_vector */
u16 ceq_idx; u16 ceq_idx;
u16 aeq_idx; u16 aeq_idx;
u8 itr_idx; u8 itr_idx;
}; };
struct i40e_virtchnl_iwarp_qvlist_info { struct virtchnl_iwarp_qvlist_info {
u32 num_vectors; u32 num_vectors;
struct i40e_virtchnl_iwarp_qv_info qv_info[1]; struct virtchnl_iwarp_qv_info qv_info[1];
}; };
/* VF reset states - these are written into the RSTAT register: /* VF reset states - these are written into the RSTAT register:
...@@ -436,11 +437,11 @@ struct i40e_virtchnl_iwarp_qvlist_info { ...@@ -436,11 +437,11 @@ struct i40e_virtchnl_iwarp_qvlist_info {
* is in a reset state, it will return DEADBEEF, which, when masked * is in a reset state, it will return DEADBEEF, which, when masked
* will result in 3. * will result in 3.
*/ */
enum i40e_vfr_states { enum virtchnl_vfr_states {
I40E_VFR_INPROGRESS = 0, VIRTCHNL_VFR_INPROGRESS = 0,
I40E_VFR_COMPLETED, VIRTCHNL_VFR_COMPLETED,
I40E_VFR_VFACTIVE, VIRTCHNL_VFR_VFACTIVE,
I40E_VFR_UNKNOWN, VIRTCHNL_VFR_UNKNOWN,
}; };
#endif /* _I40E_VIRTCHNL_H_ */ #endif /* _VIRTCHNL_H_ */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册