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 A3BEDA00C5; Thu, 30 Apr 2020 09:28:31 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 52D641D94B; Thu, 30 Apr 2020 09:28:31 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 37A9D1D93F for ; Thu, 30 Apr 2020 09:28:29 +0200 (CEST) IronPort-SDR: qSZYFJd4dmncWUE5H7tt3/fMZ8IB3uUseofMmqmSndS7XI486PLYCrqyobs1VjpBpHjrN6gM7U KLaiAjA/f0dw== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Apr 2020 00:28:21 -0700 IronPort-SDR: ROjdn9nk28Vqy/Spwh6Bk0Jpv/UwyBfD69KanLQ9PgGf3TKHTci4JMDbgO76TDyI9h+L9CmhMT Kzexa/KCAfbw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,334,1583222400"; d="scan'208";a="368056195" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga001.fm.intel.com with ESMTP; 30 Apr 2020 00:28:21 -0700 Received: from cdsmsx103.ccr.corp.intel.com (172.17.3.37) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 30 Apr 2020 00:28:20 -0700 Received: from cdsmsx102.ccr.corp.intel.com ([169.254.2.104]) by CDSMSX103.ccr.corp.intel.com ([169.254.5.221]) with mapi id 14.03.0439.000; Thu, 30 Apr 2020 15:28:16 +0800 From: "Xie, WeiX" To: "Zhang, AlvinX" , "dev@dpdk.org" CC: "Zhang, Qi Z" , "Xing, Beilei" , "Zhang, AlvinX" , "Wu, Jingjing" Thread-Topic: [dpdk-dev] [PATCH] net/iavf: fix link speed Thread-Index: AQHWHSlG1xA3Psn020+Bz0m8J/Ak/6iRRIwg Date: Thu, 30 Apr 2020 07:28:15 +0000 Message-ID: <6FD6A7610D20924F885A4ECF34E8AC91045E842A@CDSMSX102.ccr.corp.intel.com> References: <20200428064858.21392-1-alvinx.zhang@intel.com> In-Reply-To: <20200428064858.21392-1-alvinx.zhang@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.17.6.105] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH] net/iavf: fix link speed 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" Tested-by: Xie,WeiX < weix.xie@intel.com> Regards, Xie Wei -----Original Message----- From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of alvinx.zhang@intel.com Sent: Tuesday, April 28, 2020 2:49 PM To: dev@dpdk.org Cc: Zhang, Qi Z ; Xing, Beilei ; Zhang, AlvinX ; Wu, Jingjing Subject: [dpdk-dev] [PATCH] net/iavf: fix link speed From: Alvin Zhang 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. Fixes: 48de41ca11f0 (net/iavf: enable link status update) Cc: jingjing.wu@intel.com Signed-off-by: Alvin Zhang --- drivers/net/iavf/iavf_vchnl.c | 47 +++++++++++++++++++++++++++++++++++++++= +++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/drivers/net/iavf/iavf_vchnl.c b/drivers/net/iavf/iavf_vchnl.c = index 2a0cdd9..104a769 100644 --- a/drivers/net/iavf/iavf_vchnl.c +++ b/drivers/net/iavf/iavf_vchnl.c @@ -130,6 +130,44 @@ return err; } =20 +static uint32_t +iavf_convert_link_speed(uint32_t virt_link_speed) { + uint32_t speed; + + switch (virt_link_speed) { + case VIRTCHNL_LINK_SPEED_100MB: + speed =3D 100; + break; + case VIRTCHNL_LINK_SPEED_1GB: + speed =3D 1000; + break; + case VIRTCHNL_LINK_SPEED_10GB: + speed =3D 10000; + break; + case VIRTCHNL_LINK_SPEED_40GB: + speed =3D 40000; + break; + case VIRTCHNL_LINK_SPEED_20GB: + speed =3D 20000; + break; + case VIRTCHNL_LINK_SPEED_25GB: + speed =3D 25000; + break; + case VIRTCHNL_LINK_SPEED_2_5GB: + speed =3D 2500; + break; + case VIRTCHNL_LINK_SPEED_5GB: + speed =3D 5000; + break; + default: + speed =3D 0; + break; + } + + return speed; +} + static void iavf_handle_pf_event_msg(struct rte_eth_dev *dev, uint8_t *msg, uint16_t msglen) @@ -151,7 +189,14 @@ case VIRTCHNL_EVENT_LINK_CHANGE: PMD_DRV_LOG(DEBUG, "VIRTCHNL_EVENT_LINK_CHANGE event"); vf->link_up =3D pf_msg->event_data.link_event.link_status; - vf->link_speed =3D pf_msg->event_data.link_event_adv.link_speed; + if (vf->vf_res->vf_cap_flags & VIRTCHNL_VF_CAP_ADV_LINK_SPEED) { + vf->link_speed =3D + pf_msg->event_data.link_event_adv.link_speed; + } else { + enum virtchnl_link_speed speed; + speed =3D pf_msg->event_data.link_event.link_speed; + vf->link_speed =3D iavf_convert_link_speed(speed); + } iavf_dev_link_update(dev, 0); _rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_INTR_LSC, NULL); -- 1.8.3.1