From: Jeff Guo <jia.guo@intel.com>
To: "Wang, ShougangX" <shougangx.wang@intel.com>,
"Sun, GuinanX" <guinanx.sun@intel.com>,
"Xing, Beilei" <beilei.xing@intel.com>,
"dev@dpdk.org" <dev@dpdk.org>
Cc: "stable@dpdk.org" <stable@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH v2] net/i40e: fix link status
Date: Thu, 30 Jul 2020 18:57:35 +0800 [thread overview]
Message-ID: <d645b398-b1d4-fa5d-65b8-a3adcfbc5432@intel.com> (raw)
In-Reply-To: <BYAPR11MB3477F0304A6DEFA17E14521F88710@BYAPR11MB3477.namprd11.prod.outlook.com>
Acked-by: Jeff Guo <jia.guo@intel.com>
On 7/30/2020 6:51 PM, Wang, ShougangX wrote:
> Tested-by: Shougang Wang <shougangx.wang@intel.com>
>
>> -----Original Message-----
>> From: dev <dev-bounces@dpdk.org> On Behalf Of Guinan Sun
>> Sent: Thursday, July 30, 2020 6:25 PM
>> To: Xing, Beilei <beilei.xing@intel.com>; Guo, Jia <jia.guo@intel.com>;
>> dev@dpdk.org
>> Cc: Sun, GuinanX <guinanx.sun@intel.com>; stable@dpdk.org
>> Subject: [dpdk-dev] [PATCH v2] net/i40e: fix link status
>>
>> If the PF driver supports the new speed reporting capabilities then use
>> link_event_adv instead of link_event to get the speed.
>>
>> Fixes: 2a73125b7041 ("i40evf: fix link info update")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
>> ---
>> v2:
>> * Modify commit log.
>> * Add code comments.
>> * Delete useless codes.
>> ---
>> drivers/net/i40e/base/virtchnl.h | 16 +++++++++++-
>> drivers/net/i40e/i40e_ethdev_vf.c | 42
>> +++++++++++++++++++++++++++++--
>> 2 files changed, 55 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/net/i40e/base/virtchnl.h
>> b/drivers/net/i40e/base/virtchnl.h
>> index 4f498ca45..9c64fd469 100644
>> --- a/drivers/net/i40e/base/virtchnl.h
>> +++ b/drivers/net/i40e/base/virtchnl.h
>> @@ -240,7 +240,8 @@ VIRTCHNL_CHECK_STRUCT_LEN(16,
>> virtchnl_vsi_resource);
>> #define VIRTCHNL_VF_OFFLOAD_ENCAP0X00100000
>> #define VIRTCHNL_VF_OFFLOAD_ENCAP_CSUM0X00200000
>> #define VIRTCHNL_VF_OFFLOAD_RX_ENCAP_CSUM0X00400000
>> -
>> +/* Define below the capability flags that are not offloads */
>> +#define VIRTCHNL_VF_CAP_ADV_LINK_SPEED0x00000080
>> #define VF_BASE_MODE_OFFLOADS (VIRTCHNL_VF_OFFLOAD_L2 | \
>> VIRTCHNL_VF_OFFLOAD_VLAN | \
>> VIRTCHNL_VF_OFFLOAD_RSS_PF)
>> @@ -536,10 +537,23 @@ enum virtchnl_event_codes { struct
>> virtchnl_pf_event {
>> enum virtchnl_event_codes event;
>> union {
>> +/* If the PF driver does not support the new speed reporting
>> + * capabilities then use link_event else use link_event_adv to
>> + * get the speed and link information. The ability to
>> understand
>> + * new speeds is indicated by setting the capability flag
>> + * VIRTCHNL_VF_CAP_ADV_LINK_SPEED in vf_cap_flags
>> parameter
>> + * in virtchnl_vf_resource struct and can be used to
>> determine
>> + * which link event struct to use below.
>> + */
>> struct {
>> enum virtchnl_link_speed link_speed;
>> bool link_status;
>> } link_event;
>> +struct {
>> +/* link_speed provided in Mbps */
>> +u32 link_speed;
>> +u8 link_status;
>> +} link_event_adv;
>> } event_data;
>>
>> int severity;
>> diff --git a/drivers/net/i40e/i40e_ethdev_vf.c
>> b/drivers/net/i40e/i40e_ethdev_vf.c
>> index 69cab8e73..f8cf45fbe 100644
>> --- a/drivers/net/i40e/i40e_ethdev_vf.c
>> +++ b/drivers/net/i40e/i40e_ethdev_vf.c
>> @@ -1386,8 +1386,46 @@ i40evf_handle_pf_event(struct rte_eth_dev *dev,
>> uint8_t *msg,
>> break;
>> case VIRTCHNL_EVENT_LINK_CHANGE:
>> PMD_DRV_LOG(DEBUG, "VIRTCHNL_EVENT_LINK_CHANGE
>> event");
>> -vf->link_up = pf_msg->event_data.link_event.link_status;
>> -vf->link_speed = pf_msg-
>>> event_data.link_event.link_speed;
>> +
>> +if (vf->vf_res->vf_cap_flags &
>> VIRTCHNL_VF_CAP_ADV_LINK_SPEED) {
>> +vf->link_up =
>> +pf_msg-
>>> event_data.link_event_adv.link_status;
>> +
>> +switch (pf_msg-
>>> event_data.link_event_adv.link_speed) {
>> +case ETH_SPEED_NUM_100M:
>> +vf->link_speed = I40E_LINK_SPEED_100MB;
>> +break;
>> +case ETH_SPEED_NUM_1G:
>> +vf->link_speed = I40E_LINK_SPEED_1GB;
>> +break;
>> +case ETH_SPEED_NUM_2_5G:
>> +vf->link_speed = I40E_LINK_SPEED_2_5GB;
>> +break;
>> +case ETH_SPEED_NUM_5G:
>> +vf->link_speed = I40E_LINK_SPEED_5GB;
>> +break;
>> +case ETH_SPEED_NUM_10G:
>> +vf->link_speed = I40E_LINK_SPEED_10GB;
>> +break;
>> +case ETH_SPEED_NUM_20G:
>> +vf->link_speed = I40E_LINK_SPEED_20GB;
>> +break;
>> +case ETH_SPEED_NUM_25G:
>> +vf->link_speed = I40E_LINK_SPEED_25GB;
>> +break;
>> +case ETH_SPEED_NUM_40G:
>> +vf->link_speed = I40E_LINK_SPEED_40GB;
>> +break;
>> +default:
>> +vf->link_speed =
>> I40E_LINK_SPEED_UNKNOWN;
>> +break;
>> +}
>> +} else {
>> +vf->link_up =
>> +pf_msg->event_data.link_event.link_status;
>> +vf->link_speed =
>> +pf_msg->event_data.link_event.link_speed;
>> +}
>> break;
>> case VIRTCHNL_EVENT_PF_DRIVER_CLOSE:
>> PMD_DRV_LOG(DEBUG,
>> "VIRTCHNL_EVENT_PF_DRIVER_CLOSE event");
>> --
>> 2.17.1
next prev parent reply other threads:[~2020-07-30 10:57 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-30 8:25 [dpdk-dev] [PATCH] net/i40e: fix link status Guinan Sun
2020-07-30 9:12 ` Jeff Guo
2020-07-30 9:26 ` Sun, GuinanX
2020-07-30 10:25 ` [dpdk-dev] [PATCH v2] " Guinan Sun
2020-07-30 10:51 ` Wang, ShougangX
2020-07-30 10:57 ` Jeff Guo [this message]
2020-07-31 2:29 ` Xing, Beilei
2020-07-31 2:37 ` Wang, ShougangX
2020-07-31 3:50 ` Xing, Beilei
2020-07-31 4:09 ` Sun, GuinanX
2020-08-06 8:16 ` [dpdk-dev] [PATCH v3] " Guinan Sun
2020-08-06 9:46 ` Wang, ShougangX
2020-08-06 10:08 ` Xing, Beilei
2020-08-07 2:09 ` Jeff Guo
2020-08-31 0:52 ` Zhang, Qi Z
2020-08-31 13:24 ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit
2020-09-01 8:52 ` Sun, GuinanX
2020-09-02 8:06 ` [dpdk-dev] [PATCH v4] " Guinan Sun
2020-09-03 8:38 ` Jeff Guo
2020-09-03 8:43 ` Min, JiaqiX
2020-09-04 6:21 ` [dpdk-dev] [PATCH v5] " Guinan Sun
2020-09-07 5:04 ` Zhang, Qi Z
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d645b398-b1d4-fa5d-65b8-a3adcfbc5432@intel.com \
--to=jia.guo@intel.com \
--cc=beilei.xing@intel.com \
--cc=dev@dpdk.org \
--cc=guinanx.sun@intel.com \
--cc=shougangx.wang@intel.com \
--cc=stable@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.