All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Sun, GuinanX" <guinanx.sun@intel.com>
To: "Yigit, Ferruh" <ferruh.yigit@intel.com>, "dev@dpdk.org" <dev@dpdk.org>
Cc: "Xing, Beilei" <beilei.xing@intel.com>,
	"Guo, Jia" <jia.guo@intel.com>,
	"stable@dpdk.org" <stable@dpdk.org>
Subject: Re: [dpdk-dev] [dpdk-stable] [PATCH v3] net/i40e: fix link status
Date: Tue, 1 Sep 2020 08:52:34 +0000	[thread overview]
Message-ID: <a0bf8e3c45454f588a57bd2500cc1921@intel.com> (raw)
In-Reply-To: <b9554539-7ccb-94d9-00b3-2d9418fda17d@intel.com>

Hi Ferruh

> -----Original Message-----
> From: Ferruh Yigit [mailto:ferruh.yigit@intel.com]
> Sent: Monday, August 31, 2020 9:24 PM
> To: Sun, GuinanX <guinanx.sun@intel.com>; dev@dpdk.org
> Cc: Xing, Beilei <beilei.xing@intel.com>; Guo, Jia <jia.guo@intel.com>;
> stable@dpdk.org
> Subject: Re: [dpdk-stable] [PATCH v3] net/i40e: fix link status
> 
> On 8/6/2020 9:16 AM, Guinan Sun wrote:
> > 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>
> > ---
> > v3:
> > * request the capability for i40evf
> > v2:
> > * modify commit log
> > * add code comments
> > * delete useless code
> > ---
> >  drivers/net/i40e/base/virtchnl.h  | 16 ++++++++++-
> > drivers/net/i40e/i40e_ethdev_vf.c | 45 ++++++++++++++++++++++++++++---
> >  2 files changed, 57 insertions(+), 4 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_ENCAP		0X00100000
> >  #define VIRTCHNL_VF_OFFLOAD_ENCAP_CSUM		0X00200000
> >  #define VIRTCHNL_VF_OFFLOAD_RX_ENCAP_CSUM	0X00400000
> > -
> > +/* Define below the capability flags that are not offloads */
> > +#define VIRTCHNL_VF_CAP_ADV_LINK_SPEED		0x00000080
> >  #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..ccf5d8c57 100644
> > --- a/drivers/net/i40e/i40e_ethdev_vf.c
> > +++ b/drivers/net/i40e/i40e_ethdev_vf.c
> > @@ -469,7 +469,8 @@ i40evf_get_vf_resource(struct rte_eth_dev *dev)
> >  		       VIRTCHNL_VF_OFFLOAD_RSS_AQ |
> >  		       VIRTCHNL_VF_OFFLOAD_RSS_REG |
> >  		       VIRTCHNL_VF_OFFLOAD_VLAN |
> > -		       VIRTCHNL_VF_OFFLOAD_RX_POLLING;
> > +		       VIRTCHNL_VF_OFFLOAD_RX_POLLING |
> > +		       VIRTCHNL_VF_CAP_ADV_LINK_SPEED;
> >  		args.in_args = (uint8_t *)&caps;
> >  		args.in_args_size = sizeof(caps);
> >  	} else {
> > @@ -1386,8 +1387,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;
> 
> 
> Hi Guinan,
> 
> These assignments are causing build error [1] because of different types.
> 
> 'vf->link_speed' is "enum virtchnl_link_speed", but the values
> ('I40E_LINK_SPEED_100MB' etc..) are "enum i40e_aq_link_speed"
> 
> [1]
> http://mails.dpdk.org/archives/test-report/2020-August/148030.html

I will fix the problem you mentioned in the new patch.


  reply	other threads:[~2020-09-01  8:52 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
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 [this message]
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=a0bf8e3c45454f588a57bd2500cc1921@intel.com \
    --to=guinanx.sun@intel.com \
    --cc=beilei.xing@intel.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=jia.guo@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.