From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5AA04A00C3; Thu, 14 May 2020 11:40:59 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 399951D716; Thu, 14 May 2020 11:40:58 +0200 (CEST) Received: from mail-qk1-f194.google.com (mail-qk1-f194.google.com [209.85.222.194]) by dpdk.org (Postfix) with ESMTP id 1827E1D710 for ; Thu, 14 May 2020 11:40:57 +0200 (CEST) Received: by mail-qk1-f194.google.com with SMTP id f189so2336179qkd.5 for ; Thu, 14 May 2020 02:40:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=OsEqm8cSeY1ePb88YFGEmsOv+BdjTDOtSo/8UGlU+SM=; b=dIYuho8PSEVdF4bumxjmNK3h3UCC7E/FCtUdugICNCvsPt8CHUVPcsNXg3YWjwDHnd Ypo7tT8Yce3BALhpLLIn8aRn4jYMfWQloL+YUvqHskWmPZnoBAmisEyd6H+96r66/Iv8 rmgOGLZo4YNgunfSjL4/grtKWcKHu5AWLVxhXLcogyB/4y9ZdMrB44+p5fD3ocPJkA1L yhoV9mtuF43IonZOMCL+eT0oMhGB1GDqAQYQIb3w23L4MPxMUh/g1oaMqZYSbcXsVJf9 DV06zo4QqbXqSPrhhhGdbsFVQOz3Fj9BtAekGslCcC1ohyUFkw6FqVtONRow+3yeWEcq VRcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=OsEqm8cSeY1ePb88YFGEmsOv+BdjTDOtSo/8UGlU+SM=; b=HwnyvxMeTGLaV7kPiFjUkd+efG4Q7quD795j71Lv+uKC/SsHcRJ9NIvbngsoTvK7ew iOif4Vf9TCfUxatsOjjBNr9FOih6Rxc7ZDZrVocThuozfP2mKWyK1ZDpf7xr+LZqZsxN Dx3/KKiNrWBQh6rWDuWfftKwiaxyzmodYpYlJWnYgjoMFny4L6xy85MFoDscmhSdaDAf L/jfhTI189XAS5OpFUumQLZCXiOBEqcvr4aPsKslzZJPP2uQ3Um/BVhR1wuUOPDsvpBt DYEF3wCe856fMINYkvn9Y1l6DdWE59AuF7+6E/CJ4BEdkOsUj1ZQ33SmHleWaCSClIVQ endg== X-Gm-Message-State: AOAM5305Px1/NpFeofnNWMCnYs+hKbr91QGGPtHhKjbacRmN9Qlt4siH u2RHamsU4EopkRKpRkjQeyKQay68YIjdFAm9j3/WQA== X-Google-Smtp-Source: ABdhPJw+8XsLmOvNo1rRcY8mRq6PaC44QuyO+9vJdObDF7W0k5bmtiFap9AKBlqG4FBXuNxhsZISaFebuGk6AwVbeIA= X-Received: by 2002:ae9:ddc4:: with SMTP id r187mr3984894qkf.20.1589449256443; Thu, 14 May 2020 02:40:56 -0700 (PDT) MIME-Version: 1.0 References: <1589380709-6030-1-git-send-email-scott_wasson@affirmednetworks.com> In-Reply-To: <1589380709-6030-1-git-send-email-scott_wasson@affirmednetworks.com> From: Laurent Hardy Date: Thu, 14 May 2020 11:40:45 +0200 Message-ID: To: Scott Wasson Cc: li_hong.bi@nokia-sbell.com, "beilei.xing" , jia.guo@intel.com, dev Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] [PATCH] i40e: i40evf link status is always down with the Intel XL710 driver X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hello Scott, What is the use case in which VF link status is always down? vf->link_speed should contain a VIRTCHNL_LINK_SPEED enum (which has been mapped on I40E_LINK_SPEED_* enum). when we are looking for vf->link_speed into the switch case of i40evf_dev_link_update(), we should have a value matching VIRTCHNL_LINK_SPEED enum. If not, your patch fixes another issue than the one described. vf->link_speed = pf_msg->event_data.link_event.link_speed; type of pf_msg->event_data.link_event.link_speed is enum virtchnl_link_speed: base/virtchnl.h struct virtchnl_pf_event { enum virtchnl_event_codes event; union { struct { enum virtchnl_link_speed link_speed; bool link_status; } link_event; } event_data; int severity; }; enum virtchnl_link_speed { VIRTCHNL_LINK_SPEED_UNKNOWN = 0, VIRTCHNL_LINK_SPEED_100MB = BIT(VIRTCHNL_LINK_SPEED_100MB_SHIFT), VIRTCHNL_LINK_SPEED_1GB = BIT(VIRTCHNL_LINK_SPEED_1000MB_SHIFT), VIRTCHNL_LINK_SPEED_10GB = BIT(VIRTCHNL_LINK_SPEED_10GB_SHIFT), VIRTCHNL_LINK_SPEED_40GB = BIT(VIRTCHNL_LINK_SPEED_40GB_SHIFT), VIRTCHNL_LINK_SPEED_20GB = BIT(VIRTCHNL_LINK_SPEED_20GB_SHIFT), VIRTCHNL_LINK_SPEED_25GB = BIT(VIRTCHNL_LINK_SPEED_25GB_SHIFT), }; enum virtchnl_link_speed which has been mapped from enum i40e_aq_link_speed enum i40e_aq_link_speed { I40E_LINK_SPEED_UNKNOWN = 0, I40E_LINK_SPEED_100MB = (1 << I40E_LINK_SPEED_100MB_SHIFT), I40E_LINK_SPEED_1GB = (1 << I40E_LINK_SPEED_1000MB_SHIFT), I40E_LINK_SPEED_2_5GB = (1 << I40E_LINK_SPEED_2_5GB_SHIFT), I40E_LINK_SPEED_5GB = (1 << I40E_LINK_SPEED_5GB_SHIFT), I40E_LINK_SPEED_10GB = (1 << I40E_LINK_SPEED_10GB_SHIFT), I40E_LINK_SPEED_40GB = (1 << I40E_LINK_SPEED_40GB_SHIFT), I40E_LINK_SPEED_20GB = (1 << I40E_LINK_SPEED_20GB_SHIFT), I40E_LINK_SPEED_25GB = (1 << I40E_LINK_SPEED_25GB_SHIFT), }; On Wed, May 13, 2020 at 4:38 PM Scott Wasson < scott_wasson@affirmednetworks.com> wrote: > It is necessary to convert the link_speed, in Mbps, to the I40E_LINK_SPEED > enum > > Fixes: 3c8c0b68b590 ("net/i40e: set speed to undefined for default case") > Cc: laurent.hardy@6wind.com > > Bugzilla ID: 461 > > Signed-off-by: scott_wasson > --- > drivers/net/i40e/i40e_ethdev_vf.c | 25 ++++++++++++++++++++++++- > 1 files changed, 24 insertions(+), 1 deletions(-) > > diff --git a/drivers/net/i40e/i40e_ethdev_vf.c > b/drivers/net/i40e/i40e_ethdev_vf.c > index bb5d28a..7aa48f3 100644 > --- a/drivers/net/i40e/i40e_ethdev_vf.c > +++ b/drivers/net/i40e/i40e_ethdev_vf.c > @@ -1363,7 +1363,30 @@ static int i40evf_dev_xstats_get(struct rte_eth_dev > *dev, > 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; > + > + switch (pf_msg->event_data.link_event.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_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; > + } > break; > case VIRTCHNL_EVENT_PF_DRIVER_CLOSE: > PMD_DRV_LOG(DEBUG, "VIRTCHNL_EVENT_PF_DRIVER_CLOSE event"); > -- > 1.7.6.3 > >