From patchwork Tue Mar 3 18:27:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 66227 X-Patchwork-Delegate: maxime.coquelin@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id E4A78A056A; Tue, 3 Mar 2020 19:29:11 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 6933B1C00E; Tue, 3 Mar 2020 19:29:07 +0100 (CET) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id A68041C00D for ; Tue, 3 Mar 2020 19:29:05 +0100 (CET) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200303182904euoutp02f776c83d777ef879d8ef18c8266798dd~43raZ-uIt0662906629euoutp02p for ; Tue, 3 Mar 2020 18:29:04 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200303182904euoutp02f776c83d777ef879d8ef18c8266798dd~43raZ-uIt0662906629euoutp02p DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1583260144; bh=uoKcpBlnjKNHps9LwNaAF1miImcsZMlQR8uL91wEOoc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Rp+wS+b/qlr0S4564P0tagAQvNez1GWPQcCKFKvvPr26Dx1z6V4bvQnZaV36MOOG/ QR8r/SFFK/N7mB5xpZf2jbGL8Wfx0ir2InIr/fl6KSTkNoCcmQJIylo5mt3/UwfmjC VNoUG3Uob1nnqhxHBUE0f+o8hdCPhb5ZmutM+oqw= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200303182904eucas1p1dd3937c5da1833ea06ce29eb98799a84~43raAONTj0553105531eucas1p1X; Tue, 3 Mar 2020 18:29:04 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id 20.A0.60679.0F1AE5E5; Tue, 3 Mar 2020 18:29:04 +0000 (GMT) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200303182903eucas1p2f46d594c58b9add3aa09fa05a7aa037c~43rZfEtMm0075300753eucas1p2D; Tue, 3 Mar 2020 18:29:03 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200303182903eusmtrp215bf7fd880a1f3b4e8ad8878834293a8~43rZefy5y0347103471eusmtrp2h; Tue, 3 Mar 2020 18:29:03 +0000 (GMT) X-AuditID: cbfec7f4-0e5ff7000001ed07-29-5e5ea1f00936 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 3A.A4.07950.FE1AE5E5; Tue, 3 Mar 2020 18:29:03 +0000 (GMT) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20200303182903eusmtip18ceb30e660ea699eca2505f6bb230fc9~43rY8yQwp0510805108eusmtip1e; Tue, 3 Mar 2020 18:29:03 +0000 (GMT) From: Ivan Dyukov To: dev@dpdk.org, maxime.coquelin@redhat.com, tiwei.bie@intel.com, amorenoz@redhat.com, zhihong.wang@intel.com, xiaolong.ye@intel.com Cc: Ivan Dyukov Date: Tue, 3 Mar 2020 21:27:02 +0300 Message-Id: <20200303182846.26109-2-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200303182846.26109-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrCIsWRmVeSWpSXmKPExsWy7djPc7ofFsbFGXQ1iVm07njAYvHu03Ym i1mXmtgtjnXuYbHY2vCfyeLPG1OLzRcnMTmwe/xasJTVY/Gel0we7/ddZfPo27KKMYAlissm JTUnsyy1SN8ugSvj9a9nbAXLBSvOr3NsYGzk62Lk4JAQMJHoee7UxcjFISSwglHi18svzBDO F0aJ7XOOQzmfGSXW7D3H2sXICdZxeccvFojEckaJjQcWsoEkhAS+MkocnKsFYrMJaEic7pjH BFIkItDOKLFqSgsLSIJZQE3iQ897MFtYwEbi7+OpjCA2i4CqxJN5b8A28ApYSpw58Qlqm7zE 6g0HmEFsTgEriRN32sA2Swi8ZpP48uYtM0SRi8TsiTPZIGxhiVfHt7BD2DIS/3fOZ4KwqyW+ b7rODtHcwShxb1ErVJG9xJbX59hBocEsoCmxfpc+RNhR4uT1h8yQQOKTuPFWEOJ+PolJ26ZD hXklOtqEIKqVJA6cvAQVlpD4+5sHIuwhce3nVTZIWF1hlHjbeYltAqP8LIRdCxgZVzGKp5YW 56anFhvlpZbrFSfmFpfmpesl5+duYgSmhdP/jn/ZwbjrT9IhRgEORiUeXgnPuDgh1sSy4src Q4wSHMxKIry+nNFxQrwpiZVVqUX58UWlOanFhxilOViUxHmNF72MFRJITyxJzU5NLUgtgsky cXBKNTAmaoVF/31kbhs9y/KXBW/zROkt8eEtawps23ODln3eNFlpWoOCg+vFdQX8F5ROteuV qUvtCX/0Ifn2n+lnCvQzUpnVen0dROczbv9puMDsg/PZ+x8m2IbdWKUsc37nTpOXzSwO+7uu 8j242PzwoK75aed9X4riy97E+YnH8Yf8iqopU13f90+JpTgj0VCLuag4EQC/OA1NBwMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrBLMWRmVeSWpSXmKPExsVy+t/xu7rvF8bFGUw/ZmjRuuMBi8W7T9uZ LGZdamK3ONa5h8Via8N/Jos/b0wtNl+cxOTA7vFrwVJWj8V7XjJ5vN93lc2jb8sqxgCWKD2b ovzSklSFjPziElulaEMLIz1DSws9IxNLPUNj81grI1MlfTublNSczLLUIn27BL2M17+esRUs F6w4v86xgbGRr4uRk0NCwETi8o5fLF2MXBxCAksZJf49amDsYuQASkhIvH7CDFEjLPHnWhcb RM1nRolf/edZQBJsAhoSpzvmMYEkRAT6GSU2/voN1sEsoCbxoec9WJGwgI3E38dTGUFsFgFV iSfz3rCC2LwClhJnTnxihdggL7F6wwGwXk4BK4kTd9qgLmpglNiwazHLBEa+BYwMqxhFUkuL c9Nzi430ihNzi0vz0vWS83M3MQJDdduxn1t2MHa9Cz7EKMDBqMTDK+EZFyfEmlhWXJl7iFGC g1lJhNeXMzpOiDclsbIqtSg/vqg0J7X4EKMp0FUTmaVEk/OBcZRXEm9oamhuYWlobmxubGah JM7bIXAwRkggPbEkNTs1tSC1CKaPiYNTqoFR63Vi4CVOYblM22VrZUxEfrl43QqbvHyG6nI+ I//Ly72jvs/i1pvq6y3m3z2hPCi+klOr3lDv1/XHppE8Ew6XV+79INVcGLe4lVMwRTWorenw tYLYb+kcaxk/nrr5o/dZluz9/3+7I42SJkUFZS7ZeDwk101rv+bZ6wZ3trxdwBEqH38lKUeJ pTgj0VCLuag4EQDptKZlawIAAA== X-CMS-MailID: 20200303182903eucas1p2f46d594c58b9add3aa09fa05a7aa037c X-Msg-Generator: CA X-RootMTR: 20200303182903eucas1p2f46d594c58b9add3aa09fa05a7aa037c X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200303182903eucas1p2f46d594c58b9add3aa09fa05a7aa037c References: <20200303182846.26109-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v6 1/4] net/virtio: refactor devargs parsing 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" refactor vdpa specific devargs parsing to more generic way Signed-off-by: Ivan Dyukov --- drivers/net/virtio/virtio_ethdev.c | 34 +++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c index 044eb10a7..f814aa926 100644 --- a/drivers/net/virtio/virtio_ethdev.c +++ b/drivers/net/virtio/virtio_ethdev.c @@ -1955,16 +1955,18 @@ eth_virtio_dev_uninit(struct rte_eth_dev *eth_dev) } static int vdpa_check_handler(__rte_unused const char *key, - const char *value, __rte_unused void *opaque) + const char *value, void *ret_val) { - if (strcmp(value, "1")) - return -1; + if (strcmp(value, "1") == 0) + *(int *)ret_val = 1; + else + *(int *)ret_val = 0; return 0; } static int -vdpa_mode_selected(struct rte_devargs *devargs) +virtio_dev_devargs_parse(struct rte_devargs *devargs, int *vdpa) { struct rte_kvargs *kvlist; const char *key = "vdpa"; @@ -1980,12 +1982,16 @@ vdpa_mode_selected(struct rte_devargs *devargs) if (!rte_kvargs_count(kvlist, key)) goto exit; - /* vdpa mode selected when there's a key-value pair: vdpa=1 */ - if (rte_kvargs_process(kvlist, key, - vdpa_check_handler, NULL) < 0) { - goto exit; + if (vdpa) { + /* vdpa mode selected when there's a key-value pair: + * vdpa=1 + */ + ret = rte_kvargs_process(kvlist, key, + vdpa_check_handler, vdpa); + if (ret < 0) + goto exit; } - ret = 1; + exit: rte_kvargs_free(kvlist); @@ -1995,8 +2001,16 @@ vdpa_mode_selected(struct rte_devargs *devargs) static int eth_virtio_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, struct rte_pci_device *pci_dev) { + int vdpa = 0; + int ret = 0; + + ret = virtio_dev_devargs_parse(pci_dev->device.devargs, &vdpa); + if (ret < 0) { + PMD_INIT_LOG(ERR, "devargs parsing is failed"); + return ret; + } /* virtio pmd skips probe if device needs to work in vdpa mode */ - if (vdpa_mode_selected(pci_dev->device.devargs)) + if (vdpa == 1) return 1; return rte_eth_dev_pci_generic_probe(pci_dev, sizeof(struct virtio_hw), From patchwork Tue Mar 3 18:27:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 66228 X-Patchwork-Delegate: maxime.coquelin@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 933DCA056A; Tue, 3 Mar 2020 19:29:20 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id CE77B1C01E; Tue, 3 Mar 2020 19:29:08 +0100 (CET) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id 308861C00D for ; Tue, 3 Mar 2020 19:29:07 +0100 (CET) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200303182906euoutp0216f03b6a1eff8048fa8146921901ead0~43rcXxYEr0648806488euoutp02K for ; Tue, 3 Mar 2020 18:29:06 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200303182906euoutp0216f03b6a1eff8048fa8146921901ead0~43rcXxYEr0648806488euoutp02K DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1583260147; bh=5nZc/m8zxjlfWjEgC7vErVyqdF3f5obuiAOahTkliJE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AHrze7wJZZpTqAUjgTVYCJMiRLyhPErcaQaj6N5beWw2jZ26k0dhddU9dntxmyaly 0Tbxj4foWH0f0prn+VmHGDBJHgGx/67Vc3eEyJPj4l1Hv8v6du9UVpoZTm9tdqZbPu mON8bEQl4l62Dk1X8vAR9FC20GH4C2jnsiGmFY1s= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200303182905eucas1p1dc2e0581074d2b44fc201b61128a780d~43rbYhFuK0540705407eucas1p1R; Tue, 3 Mar 2020 18:29:05 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id 63.C1.60698.1F1AE5E5; Tue, 3 Mar 2020 18:29:05 +0000 (GMT) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200303182905eucas1p2a39607c525e04492db830062b28cedd2~43rbKXgux2239622396eucas1p2Y; Tue, 3 Mar 2020 18:29:05 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200303182905eusmtrp2485ca2bfefd164142f1db7e64fa8f3c9~43rbJzbzK0347103471eusmtrp2k; Tue, 3 Mar 2020 18:29:05 +0000 (GMT) X-AuditID: cbfec7f5-a0fff7000001ed1a-9f-5e5ea1f12462 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id BA.A4.07950.1F1AE5E5; Tue, 3 Mar 2020 18:29:05 +0000 (GMT) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20200303182905eusmtip111b10bcba8c365119a4d89ad47041b61~43raqUM0H0781607816eusmtip1a; Tue, 3 Mar 2020 18:29:05 +0000 (GMT) From: Ivan Dyukov To: dev@dpdk.org, maxime.coquelin@redhat.com, tiwei.bie@intel.com, amorenoz@redhat.com, zhihong.wang@intel.com, xiaolong.ye@intel.com Cc: Ivan Dyukov Date: Tue, 3 Mar 2020 21:27:03 +0300 Message-Id: <20200303182846.26109-3-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200303182846.26109-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrKIsWRmVeSWpSXmKPExsWy7djPc7ofF8bFGXQ+MLVo3fGAxeLdp+1M FrMuNbFbHOvcw2KxteE/k8WfN6YWmy9OYnJg9/i1YCmrx+I9L5k83u+7yubRt2UVYwBLFJdN SmpOZllqkb5dAlfGmqcdLAV7TSqOTb3E0sB4WauLkYNDQsBEYvNiri5GLg4hgRWMEj3dL5kg nC+MEhMfvGWHcD4zSmyY0wDkcIJ1zPi7gA0isZxR4sabyVAtXxklzrWcYAWpYhPQkDjdMQ8s ISLQziixakoLC0iCWUBN4kPPezBbWMBS4tmaV2A2i4CqxPKvUxlBjuIFiu9rUofYJi+xesMB ZhCbU8BK4sSdNhaQmRICr9kklm1vY4YocpG4/WgCI4QtLPHq+BaoU2Uk/u+czwRhV0t833Sd HaK5g1Hi3qJWqCJ7iS2vz7GDLGYW0JRYv0sfIuwocXf/UXZIIPFJ3HgrCHE+n8SkbdOZIcK8 Eh1tQhDVShIHTl6CCktI/P3NAxH2kPi64DwrJHiuMEpcWXaRZQKj/CyEXQsYGVcxiqeWFuem pxYb56WW6xUn5haX5qXrJefnbmIEJobT/45/3cG470/SIUYBDkYlHl4Jz7g4IdbEsuLK3EOM EhzMSiK8vpzRcUK8KYmVValF+fFFpTmpxYcYpTlYlMR5jRe9jBUSSE8sSc1OTS1ILYLJMnFw SjUwNsfprc5J/ceSfHfX5Iy7y1dV8bTabL9k863GT/DmheTtFzLcT97ILDy2u8rklVYix/80 439xr5VPtM8Wuzejtlh1yxcZe3Y7W8tpprcf2pYvsPr3tvGKALM7P4dUtHAbT/ntH1eOnlbW N/zifuqr68nvz2vDQ9Zo/ivz8JR+8jgy5VHB8m+FSizFGYmGWsxFxYkAHR+mLAgDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrBLMWRmVeSWpSXmKPExsVy+t/xu7ofF8bFGay5pm7RuuMBi8W7T9uZ LGZdamK3ONa5h8Via8N/Jos/b0wtNl+cxOTA7vFrwVJWj8V7XjJ5vN93lc2jb8sqxgCWKD2b ovzSklSFjPziElulaEMLIz1DSws9IxNLPUNj81grI1MlfTublNSczLLUIn27BL2MNU87WAr2 mlQcm3qJpYHxslYXIyeHhICJxIy/C9i6GLk4hASWMko03VrB2sXIAZSQkHj9hBmiRljiz7Uu qJrPjBInv3xmB0mwCWhInO6YxwSSEBHoZ5TY+Os3WAezgJrEh573LCC2sIClxLM1r8BsFgFV ieVfpzKCLOAFiu9rUodYIC+xesMBsFZOASuJE3faWCCWNTBKbNi1mGUCI98CRoZVjCKppcW5 6bnFRnrFibnFpXnpesn5uZsYgaG67djPLTsYu94FH2IU4GBU4uGV8IyLE2JNLCuuzD3EKMHB rCTC68sZHSfEm5JYWZValB9fVJqTWnyI0RToqInMUqLJ+cA4yiuJNzQ1NLewNDQ3Njc2s1AS 5+0QOBgjJJCeWJKanZpakFoE08fEwSnVwLjn766MyV/udf866tb7RKLjWd3MJx0xkXcU64Q0 bWxdP23VV5mVwhLjPiM+7DvbU7Zav/Um35zOt+0VEFd64ZXFNUlhgnqpctEnlyXZAg/3P6ic O0N1kZDspgUiFimm+3/Wtse8U5Nza9w2tWXe2U/udXG7T9gcfn8kjufe1Xbx2WxTIy4+UlVi Kc5INNRiLipOBABIlGTmawIAAA== X-CMS-MailID: 20200303182905eucas1p2a39607c525e04492db830062b28cedd2 X-Msg-Generator: CA X-RootMTR: 20200303182905eucas1p2a39607c525e04492db830062b28cedd2 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200303182905eucas1p2a39607c525e04492db830062b28cedd2 References: <20200303182846.26109-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v6 2/4] net/virtio: add link speed devarg 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" Some applications like pktgen use link speed to calculate transmission rate. It limits outcome traffic to hardcoded 10G. This patch adds speed devarg which allows to configure link speed of virtio device. Signed-off-by: Ivan Dyukov --- doc/guides/nics/virtio.rst | 7 +++ drivers/net/virtio/virtio_ethdev.c | 97 +++++++++++++++++++++++++----- drivers/net/virtio/virtio_pci.h | 1 + 3 files changed, 89 insertions(+), 16 deletions(-) diff --git a/doc/guides/nics/virtio.rst b/doc/guides/nics/virtio.rst index d1f5fb898..0341907ef 100644 --- a/doc/guides/nics/virtio.rst +++ b/doc/guides/nics/virtio.rst @@ -356,6 +356,13 @@ Below devargs are supported by the PCI virtio driver: a virtio device needs to work in vDPA mode. (Default: 0 (disabled)) +#. ``speed``: + + It is used to specify link speed of virtio device. Link speed is a part of + link status structure. It could be requested by application using + rte_eth_link_get_nowait function. + (Default: 10000 (10G)) + Below devargs are supported by the virtio-user vdev: #. ``path``: diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c index f814aa926..24fed9966 100644 --- a/drivers/net/virtio/virtio_ethdev.c +++ b/drivers/net/virtio/virtio_ethdev.c @@ -45,6 +45,10 @@ static int virtio_dev_promiscuous_enable(struct rte_eth_dev *dev); static int virtio_dev_promiscuous_disable(struct rte_eth_dev *dev); static int virtio_dev_allmulticast_enable(struct rte_eth_dev *dev); static int virtio_dev_allmulticast_disable(struct rte_eth_dev *dev); +static uint32_t virtio_dev_speed_capa_get(uint32_t speed); +static int virtio_dev_devargs_parse(struct rte_devargs *devargs, + int *vdpa, + uint32_t *speed); static int virtio_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info); static int virtio_dev_link_update(struct rte_eth_dev *dev, @@ -1861,6 +1865,7 @@ int eth_virtio_dev_init(struct rte_eth_dev *eth_dev) { struct virtio_hw *hw = eth_dev->data->dev_private; + uint32_t speed = ETH_SPEED_NUM_10G; int ret; if (sizeof(struct virtio_net_hdr_mrg_rxbuf) > RTE_PKTMBUF_HEADROOM) { @@ -1886,7 +1891,11 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev) return 0; } - + ret = virtio_dev_devargs_parse(eth_dev->device->devargs, + NULL, &speed); + if (ret < 0) + return ret; + hw->speed = speed; /* * Pass the information to the rte_eth_dev_close() that it should also * release the private port resources. @@ -1954,6 +1963,7 @@ eth_virtio_dev_uninit(struct rte_eth_dev *eth_dev) return 0; } + static int vdpa_check_handler(__rte_unused const char *key, const char *value, void *ret_val) { @@ -1965,33 +1975,89 @@ static int vdpa_check_handler(__rte_unused const char *key, return 0; } + +static uint32_t +virtio_dev_speed_capa_get(uint32_t speed) +{ + switch (speed) { + case ETH_SPEED_NUM_10G: + return ETH_LINK_SPEED_10G; + case ETH_SPEED_NUM_20G: + return ETH_LINK_SPEED_20G; + case ETH_SPEED_NUM_25G: + return ETH_LINK_SPEED_25G; + case ETH_SPEED_NUM_40G: + return ETH_LINK_SPEED_40G; + case ETH_SPEED_NUM_50G: + return ETH_LINK_SPEED_50G; + case ETH_SPEED_NUM_56G: + return ETH_LINK_SPEED_56G; + case ETH_SPEED_NUM_100G: + return ETH_LINK_SPEED_100G; + default: + return 0; + } +} + + +#define VIRTIO_ARG_SPEED "speed" +#define VIRTIO_ARG_VDPA "vdpa" + + +static int +link_speed_handler(const char *key __rte_unused, + const char *value, void *ret_val) +{ + uint32_t val; + if (!value || !ret_val) + return -EINVAL; + val = strtoul(value, NULL, 0); + /* validate input */ + if (virtio_dev_speed_capa_get(val) == 0) + return -EINVAL; + *(uint32_t *)ret_val = val; + + return 0; +} + + static int -virtio_dev_devargs_parse(struct rte_devargs *devargs, int *vdpa) +virtio_dev_devargs_parse(struct rte_devargs *devargs, int *vdpa, + uint32_t *speed) { struct rte_kvargs *kvlist; - const char *key = "vdpa"; int ret = 0; if (devargs == NULL) return 0; kvlist = rte_kvargs_parse(devargs->args, NULL); - if (kvlist == NULL) + if (kvlist == NULL) { + PMD_INIT_LOG(ERR, "error when parsing param"); return 0; - - if (!rte_kvargs_count(kvlist, key)) - goto exit; - - if (vdpa) { + } + if (vdpa && rte_kvargs_count(kvlist, VIRTIO_ARG_VDPA) == 1) { /* vdpa mode selected when there's a key-value pair: * vdpa=1 */ - ret = rte_kvargs_process(kvlist, key, + ret = rte_kvargs_process(kvlist, VIRTIO_ARG_VDPA, vdpa_check_handler, vdpa); - if (ret < 0) + if (ret < 0) { + PMD_INIT_LOG(ERR, "Failed to parse %s", + VIRTIO_ARG_VDPA); goto exit; + } + } + if (speed && rte_kvargs_count(kvlist, VIRTIO_ARG_SPEED) == 1) { + ret = rte_kvargs_process(kvlist, + VIRTIO_ARG_SPEED, + link_speed_handler, speed); + if (ret < 0) { + PMD_INIT_LOG(ERR, "Failed to parse %s", + VIRTIO_ARG_SPEED); + goto exit; + } } - exit: rte_kvargs_free(kvlist); @@ -2004,7 +2070,7 @@ static int eth_virtio_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, int vdpa = 0; int ret = 0; - ret = virtio_dev_devargs_parse(pci_dev->device.devargs, &vdpa); + ret = virtio_dev_devargs_parse(pci_dev->device.devargs, &vdpa, NULL); if (ret < 0) { PMD_INIT_LOG(ERR, "devargs parsing is failed"); return ret; @@ -2385,7 +2451,7 @@ virtio_dev_link_update(struct rte_eth_dev *dev, __rte_unused int wait_to_complet memset(&link, 0, sizeof(link)); link.link_duplex = ETH_LINK_FULL_DUPLEX; - link.link_speed = ETH_SPEED_NUM_10G; + link.link_speed = hw->speed; link.link_autoneg = ETH_LINK_FIXED; if (!hw->started) { @@ -2440,8 +2506,7 @@ virtio_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) { uint64_t tso_mask, host_features; struct virtio_hw *hw = dev->data->dev_private; - - dev_info->speed_capa = ETH_LINK_SPEED_10G; /* fake value */ + dev_info->speed_capa = virtio_dev_speed_capa_get(hw->speed); dev_info->max_rx_queues = RTE_MIN(hw->max_queue_pairs, VIRTIO_MAX_RX_QUEUES); diff --git a/drivers/net/virtio/virtio_pci.h b/drivers/net/virtio/virtio_pci.h index a38cb45ad..59012d55a 100644 --- a/drivers/net/virtio/virtio_pci.h +++ b/drivers/net/virtio/virtio_pci.h @@ -253,6 +253,7 @@ struct virtio_hw { uint16_t port_id; uint8_t mac_addr[RTE_ETHER_ADDR_LEN]; uint32_t notify_off_multiplier; + uint32_t speed; /* link speed in MB */ uint8_t *isr; uint16_t *notify_base; struct virtio_pci_common_cfg *common_cfg; From patchwork Tue Mar 3 18:27:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 66229 X-Patchwork-Delegate: maxime.coquelin@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id E2ACFA056A; Tue, 3 Mar 2020 19:29:30 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9E58E1C02D; Tue, 3 Mar 2020 19:29:11 +0100 (CET) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 8E22A1C021 for ; Tue, 3 Mar 2020 19:29:09 +0100 (CET) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200303182908euoutp01374aacb9e0336a99c049f1dc3aa2e99e~43reDE-UE2026920269euoutp01X for ; Tue, 3 Mar 2020 18:29:08 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200303182908euoutp01374aacb9e0336a99c049f1dc3aa2e99e~43reDE-UE2026920269euoutp01X DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1583260148; bh=XZrkyRg2+Pz7PpyRdqYMptfy5QvNeuXSDMV/FIlv+bc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CjB41ny7M4Z9AelZ7eqo24N4K15KyO3ZApIRi5G+VjVSGcf5Nl8HJWRVNKI//sEGv whkc+YEMGcVy7mgyxbeKOw65DJ1yT1iNCj15IAEkPAyely9o7Nz9ljUE2eL2gbS6Il G8sf9JlVDwIQcYG1hz/VUtsJLeQcDqlMBo2k+Iio= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20200303182907eucas1p29dab3e1743cf6fc299578fecbc4571f1~43rdCxd6l0069500695eucas1p2H; Tue, 3 Mar 2020 18:29:07 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id 2D.AC.61286.3F1AE5E5; Tue, 3 Mar 2020 18:29:07 +0000 (GMT) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200303182906eucas1p2a80e3e02c52746e750c743accda56d34~43rcX3HFT0069500695eucas1p2G; Tue, 3 Mar 2020 18:29:06 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200303182906eusmtrp2258e4b5eb017dea2bc5e685d773559f9~43rcXTjj_0347103471eusmtrp2l; Tue, 3 Mar 2020 18:29:06 +0000 (GMT) X-AuditID: cbfec7f2-f0bff7000001ef66-56-5e5ea1f3c4f7 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 3B.A4.07950.2F1AE5E5; Tue, 3 Mar 2020 18:29:06 +0000 (GMT) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20200303182906eusmtip1ec375943a26c44fca2a2f38a46c57cb4~43rb0vQ-H1574315743eusmtip1c; Tue, 3 Mar 2020 18:29:06 +0000 (GMT) From: Ivan Dyukov To: dev@dpdk.org, maxime.coquelin@redhat.com, tiwei.bie@intel.com, amorenoz@redhat.com, zhihong.wang@intel.com, xiaolong.ye@intel.com Cc: Ivan Dyukov Date: Tue, 3 Mar 2020 21:27:04 +0300 Message-Id: <20200303182846.26109-4-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200303182846.26109-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrMIsWRmVeSWpSXmKPExsWy7djP87qfF8bFGSzqVLdo3fGAxeLdp+1M FrMuNbFbHOvcw2KxteE/k8WfN6YWmy9OYnJg9/i1YCmrx+I9L5k83u+7yubRt2UVYwBLFJdN SmpOZllqkb5dAlfGhDfnmQuecVQc2TCTvYFxJnsXIyeHhICJxL95J5i6GLk4hARWMEpM+zWf DcL5wihx/E0PI4TzmVHiQ+ciFpiWO0eWQVUtZ5R4PusOO4TzlVHi5dVbbCBVbAIaEqc75oEN FhFoZ5RYNaUFrJ1ZQE3iQ897IJuDQ1jARuL+9ywQk0VAVeL+hgIQk1fAUuL9KQ+IXfISqzcc YAaxOQWsJE7caWMBmSgh8JxNYsbm+VA/uEj8PbQHyhaWeHV8C5QtI/F/53wmCLta4vum6+wQ zR2MEvcWtUIV2UtseX2OHWQxs4CmxPpd+hBhR4mWl0sYQcISAnwSN94KQhzPJzFp23RmiDCv REebEES1ksSBk5egwhISf3/zQJgeEou2c0PC5gqjxPtldxgnMMrPQli1gJFxFaN4amlxbnpq sWFearlecWJucWleul5yfu4mRmBSOP3v+KcdjF8vJR1iFOBgVOLhlfCMixNiTSwrrsw9xCjB wawkwuvLGR0nxJuSWFmVWpQfX1Sak1p8iFGag0VJnNd40ctYIYH0xJLU7NTUgtQimCwTB6dU A2NciGblxP//pyetLbKefWKO5I7HJ6f7rIwRrLjOd7D12Wwm/72t53p51t/xXXHKaO1ZlvC+ BMnL2/5V6bWcYVn+PWKd4fQmoRUSxzOKq2cvun1e9cFclYQ/93cpZVYWZHsV3NjExCj2VV5T xXXnfIXbVmGvm1fGXPh/9+XCq9r7ZKX+MOQxPORSYinOSDTUYi4qTgQAQvFHogYDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrGLMWRmVeSWpSXmKPExsVy+t/xu7qfFsbFGXR1WFq07njAYvHu03Ym i1mXmtgtjnXuYbHY2vCfyeLPG1OLzRcnMTmwe/xasJTVY/Gel0we7/ddZfPo27KKMYAlSs+m KL+0JFUhI7+4xFYp2tDCSM/Q0kLPyMRSz9DYPNbKyFRJ384mJTUnsyy1SN8uQS9jwpvzzAXP OCqObJjJ3sA4k72LkZNDQsBE4s6RZWxdjFwcQgJLGSXWbLnK1MXIAZSQkHj9hBmiRljiz7Uu qJrPjBJzZp8GS7AJaEic7pjHBJIQEehnlNj46zdYgllATeJDz3sWkEHCAjYS979ngZgsAqoS 9zcUgJi8ApYS7095QIyXl1i94QBYI6eAlcSJO20sEKsaGCU27FrMMoGRbwEjwypGkdTS4tz0 3GIjveLE3OLSvHS95PzcTYzAMN127OeWHYxd74IPMQpwMCrx8Ep4xsUJsSaWFVfmHmKU4GBW EuH15YyOE+JNSaysSi3Kjy8qzUktPsRoCnTTRGYp0eR8YAzllcQbmhqaW1gamhubG5tZKInz dggcjBESSE8sSc1OTS1ILYLpY+LglGpg3Jsh5KM3ba/Vs6M60ryzLx348aAi2tz7m1f1pcu9 dfzPzHc+fMCp+XLl1RnflPe/v7DdM9aZxWHa8yNN6j4NoW3bDGT0D2zf4Hs4bdrzS9X3BIss LeRfCyWWRXpUblxb+9eqR9eqZVluRZjD+hm/PtgFzny9ftrSbbKvnj1/t9ejRIunPXADqxJL cUaioRZzUXEiAJeWdahpAgAA X-CMS-MailID: 20200303182906eucas1p2a80e3e02c52746e750c743accda56d34 X-Msg-Generator: CA X-RootMTR: 20200303182906eucas1p2a80e3e02c52746e750c743accda56d34 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200303182906eucas1p2a80e3e02c52746e750c743accda56d34 References: <20200303182846.26109-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v6 3/4] net/virtio-user: fix devargs parsing 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" strtoull returns 0 if it fails to parse input string. It's ignored in get_integer_arg. This patch handles error cases for strtoull function. Signed-off-by: Ivan Dyukov --- drivers/net/virtio/virtio_user_ethdev.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/net/virtio/virtio_user_ethdev.c b/drivers/net/virtio/virtio_user_ethdev.c index 3fc172573..074527714 100644 --- a/drivers/net/virtio/virtio_user_ethdev.c +++ b/drivers/net/virtio/virtio_user_ethdev.c @@ -433,12 +433,17 @@ static int get_integer_arg(const char *key __rte_unused, const char *value, void *extra_args) { + uint64_t integer = 0; if (!value || !extra_args) return -EINVAL; - - *(uint64_t *)extra_args = strtoull(value, NULL, 0); - - return 0; + errno = 0; + integer = strtoull(value, NULL, 0); + /* extra_args keeps default value, it should be replaced + * only in case of successful parsing of the 'value' arg + */ + if (errno == 0) + *(uint64_t *)extra_args = integer; + return -errno; } static struct rte_eth_dev * From patchwork Tue Mar 3 18:27:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 66230 X-Patchwork-Delegate: maxime.coquelin@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 93BA7A056A; Tue, 3 Mar 2020 19:29:38 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id F0DC11C05C; Tue, 3 Mar 2020 19:29:12 +0100 (CET) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id E0D6E1BFF2 for ; Tue, 3 Mar 2020 19:29:09 +0100 (CET) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200303182909euoutp01c9848e588a2577787aba19edd2c2cced~43reo4Hj82026920269euoutp01Y for ; Tue, 3 Mar 2020 18:29:09 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200303182909euoutp01c9848e588a2577787aba19edd2c2cced~43reo4Hj82026920269euoutp01Y DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1583260149; bh=Q1sEELbnScNmHsdQvI8BQT9Xv780c2E7fDa3/x8JCw4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sxzHvwt3U/EQ8FUQBvVXEMV20yl+6SUjPgiT34eFJtDmapZPoNZ+GnRvh1NjeLH1s Hq39OsP/Ja8Amw5j8CRgvFs4inHnb13qYQjlFKFR7gupJ+YuAeaYGb74jBo+R+mAHG Blg+ut0AS0MB33WJYebfO/s8JFNd2zt33dhjzgvI= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200303182909eucas1p19761831ffee3ffd8e72019d70bf41123~43reXSPOP0553105531eucas1p1a; Tue, 3 Mar 2020 18:29:09 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id E3.C1.60698.4F1AE5E5; Tue, 3 Mar 2020 18:29:09 +0000 (GMT) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200303182908eucas1p13a1c21150d9548cf62e3ed7079689270~43rdecwrM0544705447eucas1p1C; Tue, 3 Mar 2020 18:29:08 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200303182908eusmtrp23bdc80323cb3485f0f0ff48d7b20453b~43rdd0DQb0347103471eusmtrp2m; Tue, 3 Mar 2020 18:29:08 +0000 (GMT) X-AuditID: cbfec7f5-a0fff7000001ed1a-a3-5e5ea1f4c7e4 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id E6.E4.08375.4F1AE5E5; Tue, 3 Mar 2020 18:29:08 +0000 (GMT) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20200303182907eusmtip1415cc51dd1a1cd0d9029e142b4fb3b3e~43rc_nxyM0781607816eusmtip1b; Tue, 3 Mar 2020 18:29:07 +0000 (GMT) From: Ivan Dyukov To: dev@dpdk.org, maxime.coquelin@redhat.com, tiwei.bie@intel.com, amorenoz@redhat.com, zhihong.wang@intel.com, xiaolong.ye@intel.com Cc: Ivan Dyukov Date: Tue, 3 Mar 2020 21:27:05 +0300 Message-Id: <20200303182846.26109-5-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200303182846.26109-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0WSb0hTYRTGee+92+6G09vV8KSWsCg0SIuVzJAy6sMUgvoSUbi85m1Kbuqu mtaHLPwzbYkNyVAwNcTagsTm1cTECWkxsJJEYRbDTFraFtmwlWnb7qRvv3POc97n4fCSOO0j 4shCfRlr0DNFCrGM4Cf8U/t9XRrNAfsmrqodchEqz49BTNU2fUuimmgYIVQD1ZuYan3lsOrZ OzOWKVH/7uwRqR+OuDG1d3RGrG6yWdBp4rwsI58tKqxgDalHc2UFZtcGXvIrsvKTeYaoRr0R jUhKAnUI7M7PkkYkI2nqEYIu81uxUPxEcH/BQwjFamAyxxNbK3dqb2PCoBfBUH1PWOVDsHDz CR5UiakkcBg7QqoYqh6BpaUmtI5Te+G7yRviaOo4jDiN4iAT1B5YdTaJgiyn0sF4z44Ldolg 7RsLsZQ6Aq/m60JuQC2LwbjkRYLoJHgcs5jA0fB10iYROAE2nz8I96/DWv+sRFg2IvjYXRsW HQPb8lSAyUC6ZHg6nBpECITrsucKGAlz37YJ8SPBzLfiQlsOxjpaeEMBY6+nw22Av3/C51XD KN8XsqGp9wgG7NCMEtv+O3UiZEGxbDmn07KcUs9eTeEYHVeu16ZcKtb1o8BncGxM+obQ6Hre OKJIpIiQQ5ZGQ4uYCq5KN46AxBUx8lPSCxpans9UXWMNxRcN5UUsN47iSUIRK1d2u3NoSsuU sVdYtoQ1bE0xUhpXjZI0lVFnWiWTKaJ4Xl+60p5/t3uJPpdmTWjfTr050ZGWZ1mzzl52R+Vi X/xns290tXgz/Jk1g7yycGCX1MU/3rnkSc9uNtUpYxhXZsJLmduvniNLLTZseHG3XNaeM/zC WrLY6ljTZs/HIXAnm8yO/g+8KWvHPOm0Nvg9CoIrYA7uww0c8w9Wg9Y6CAMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrJLMWRmVeSWpSXmKPExsVy+t/xu7pfFsbFGRzfwGHRuuMBi8W7T9uZ LGZdamK3ONa5h8Via8N/Jos/b0wtNl+cxOTA7vFrwVJWj8V7XjJ5vN93lc2jb8sqxgCWKD2b ovzSklSFjPziElulaEMLIz1DSws9IxNLPUNj81grI1MlfTublNSczLLUIn27BL2MSQ/+MRf8 4Kt4POkqSwPjcp4uRk4OCQETid7WbqYuRi4OIYGljBIXu/sZuxg5gBISEq+fMEPUCEv8udbF BlHzmVHi3eXZTCAJNgENidMd88CaRQT6GSU2/voN1sEsoCbxoec9C4gtLOAosed2BxuIzSKg KvH5dh8riM0rYCnRMe0g1AZ5idUbDoDZnAJWEifutLFAbGtglNiwazHLBEa+BYwMqxhFUkuL c9Nziw31ihNzi0vz0vWS83M3MQKDdduxn5t3MF7aGHyIUYCDUYmHV8IzLk6INbGsuDL3EKME B7OSCK8vZ3ScEG9KYmVValF+fFFpTmrxIUZToKsmMkuJJucDIymvJN7Q1NDcwtLQ3Njc2MxC SZy3Q+BgjJBAemJJanZqakFqEUwfEwenVAOjcuJy3m6JGanv09fNfzd5/3MJDpdUu+SfVuIV tW8PBa/K2rlYIp75SDCHrWx5B5tu1PTlBtEpG1NCrvL5HTb6+pdzX/J6oamlO47ddy+8rxul u+GR2G5Lp+mv7DWZr9gVNrw/YuafKth76duLxzznrjR5W29bva9uccZ729p5+8IcA28qn5FV YinOSDTUYi4qTgQAaT2jkGwCAAA= X-CMS-MailID: 20200303182908eucas1p13a1c21150d9548cf62e3ed7079689270 X-Msg-Generator: CA X-RootMTR: 20200303182908eucas1p13a1c21150d9548cf62e3ed7079689270 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200303182908eucas1p13a1c21150d9548cf62e3ed7079689270 References: <20200303182846.26109-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v6 4/4] net/virtio-user: adding link speed devarg 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" virtio driver already parses speed devarg. virtio-user should add it to list of valid devargs and call eth_virtio_dev_init function which init speed value. eth_virtio_dev_init already is called from virtio_user_pmd_probe function. The only change is required to enable speed devargs: adding speed to list of valid devargs. Signed-off-by: Ivan Dyukov --- doc/guides/nics/virtio.rst | 8 ++++++++ drivers/net/virtio/virtio_user_ethdev.c | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/doc/guides/nics/virtio.rst b/doc/guides/nics/virtio.rst index 0341907ef..6286286db 100644 --- a/doc/guides/nics/virtio.rst +++ b/doc/guides/nics/virtio.rst @@ -410,6 +410,14 @@ Below devargs are supported by the virtio-user vdev: It is used to enable virtio device packed virtqueue feature. (Default: 0 (disabled)) +#. ``speed``: + + It is used to specify link speed of virtio device. Link speed is a part of + link status structure. It could be requested by application using + rte_eth_link_get_nowait function. + (Default: 10000 (10G)) + + Virtio paths Selection and Usage -------------------------------- diff --git a/drivers/net/virtio/virtio_user_ethdev.c b/drivers/net/virtio/virtio_user_ethdev.c index 074527714..45c1541c5 100644 --- a/drivers/net/virtio/virtio_user_ethdev.c +++ b/drivers/net/virtio/virtio_user_ethdev.c @@ -406,6 +406,8 @@ static const char *valid_args[] = { VIRTIO_USER_ARG_IN_ORDER, #define VIRTIO_USER_ARG_PACKED_VQ "packed_vq" VIRTIO_USER_ARG_PACKED_VQ, +#define VIRTIO_USER_ARG_SPEED "speed" + VIRTIO_USER_ARG_SPEED, NULL }; @@ -738,4 +740,5 @@ RTE_PMD_REGISTER_PARAM_STRING(net_virtio_user, "server=<0|1> " "mrg_rxbuf=<0|1> " "in_order=<0|1> " - "packed_vq=<0|1>"); + "packed_vq=<0|1> " + "speed=");