From patchwork Tue Feb 25 07:28:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 66024 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 8BF48A0524; Tue, 25 Feb 2020 08:31:06 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9C1D71BFB6; Tue, 25 Feb 2020 08:31:03 +0100 (CET) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id A357F1BFB5 for ; Tue, 25 Feb 2020 08:31:01 +0100 (CET) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200225073100euoutp01195632f3584df82c67d7da1f6524d924~2lL16tHe22036720367euoutp01z for ; Tue, 25 Feb 2020 07:31:00 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200225073100euoutp01195632f3584df82c67d7da1f6524d924~2lL16tHe22036720367euoutp01z DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1582615860; bh=0XjvQCEiVj60+UBTAarvishZLNeMmePERL7qVRhbsj8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ev1p3AIWHIZgFlmjrdUigN0wq+x2rr/Bwjm8xQzdv60UdPyMx88uZwbSiAWG8rjRP hO1jpryoAeH2OgVIzoeF0Mg/tCCV5fvWujbyXyDOIGPCCW8FoeYG9oKpGLwPkySC+P b3PUM95qaEuPpiCK9wQK1esQwiVgjb0nVAejzdwc= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200225073100eucas1p1b782263e64927fa5416a01941a661a0a~2lL1xjupS0295602956eucas1p1N; Tue, 25 Feb 2020 07:31:00 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id 1D.54.60679.43DC45E5; Tue, 25 Feb 2020 07:31:00 +0000 (GMT) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200225073100eucas1p19097473ba40bb36c69b42e0479e42a00~2lL1YRBUu1977219772eucas1p1O; Tue, 25 Feb 2020 07:31:00 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200225073100eusmtrp1fe50022e755503bff3fe213e1d1f82e2~2lL1XmGdn2163421634eusmtrp12; Tue, 25 Feb 2020 07:31:00 +0000 (GMT) X-AuditID: cbfec7f4-0e5ff7000001ed07-46-5e54cd34308d Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 09.DA.08375.33DC45E5; Tue, 25 Feb 2020 07:30:59 +0000 (GMT) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200225073059eusmtip241bb1415a96380b2cbf6dd1637617f43~2lL05GWIy2085020850eusmtip2L; Tue, 25 Feb 2020 07:30:59 +0000 (GMT) From: Ivan Dyukov To: dev@dpdk.org, maxime.coquelin@redhat.com, tiwei.bie@intel.com, amorenoz@redhat.com, zhihong.wang@intel.com Cc: Ivan Dyukov Date: Tue, 25 Feb 2020 10:28:10 +0300 Message-Id: <20200225072813.9385-2-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200225072813.9385-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrAIsWRmVeSWpSXmKPExsWy7djPc7omZ0PiDC4ekbBo3fGAxeLdp+1M FrMuNbFbHOvcw2KxteE/k8Xmi5OYHNg8fi1YyuqxeM9LJo/3+66yefRtWcUYwBLFZZOSmpNZ llqkb5fAlXFv7n7WgjWCFZv3fmBuYGzk62Lk5JAQMJH4d/c+cxcjF4eQwApGiRf7dzBBOF8Y JZbNngzlfGaUeLXoAlAZB1jLlDPyEPHljBIvr9yDKvrKKLH5yzFGkLlsAhoSpzvmMYHYIgIF EmvXP2QHsZkF1CQ+9LxnAbGFBWwkWq61sILYLAKqEov33AWL8wpYSHyY1ssGcZ+8xOoNB5hB bE4BS4nNzyaD3Soh8JxN4sqHrUwQRS4SVzZ/ZoawhSVeHd/CDmHLSJye3MMCYVdLfN90nR2i uYNR4t6iVqgie4ktr8+xg7zGLKApsX6XPkTYUeL87p8sEB/zSdx4KwhxP5/EpG3ToQHBK9HR JgRRrSRx4OQlqLCExN/fPBCmh8S2PRyQ0DnAKPH48Tr2CYzysxBWLWBkXMUonlpanJueWmyU l1quV5yYW1yal66XnJ+7iRGYDk7/O/5lB+OuP0mHGAU4GJV4eCX2BscJsSaWFVfmHmKU4GBW EuH1ZgyKE+JNSaysSi3Kjy8qzUktPsQozcGiJM5rvOhlrJBAemJJanZqakFqEUyWiYNTqoFR pNl0koh83vqH03LEv2puW7i2JGr/zoo77Q/X2VzXNzGfUHWML3SzgYXCM6UHgpbXAqJ+KuVq p3POZ5zCe/NDam9Ptb+o5Jkr7adL2OSXsMv0Kp3b3WByXsx+sxvf92crvRVvHZwePF9zA6PZ hB1rv8wJN2ZJYkh8ns8xSWjJ2melf+dtr+hXYinOSDTUYi4qTgQAUQktAQMDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrELMWRmVeSWpSXmKPExsVy+t/xe7rGZ0PiDFbttrJo3fGAxeLdp+1M FrMuNbFbHOvcw2KxteE/k8Xmi5OYHNg8fi1YyuqxeM9LJo/3+66yefRtWcUYwBKlZ1OUX1qS qpCRX1xiqxRtaGGkZ2hpoWdkYqlnaGwea2VkqqRvZ5OSmpNZllqkb5egl3Fv7n7WgjWCFZv3 fmBuYGzk62Lk4JAQMJGYcka+i5GLQ0hgKaPEv2m3WSDiEhKvnzB3MXICmcISf651sUHUfGaU uLLnKBtIgk1AQ+J0xzwmEFtEoExi1ear7CA2s4CaxIee9ywgtrCAjUTLtRZWEJtFQFVi8Z67 YHFeAQuJD9N62SAWyEus3nAAbBmngKXE5meTwWwhgRyJFw+2sk1g5FvAyLCKUSS1tDg3PbfY UK84Mbe4NC9dLzk/dxMjMDy3Hfu5eQfjpY3BhxgFOBiVeHgl9gbHCbEmlhVX5h5ilOBgVhLh 9WYMihPiTUmsrEotyo8vKs1JLT7EaAp01ERmKdHkfGDs5JXEG5oamltYGpobmxubWSiJ83YI HIwREkhPLEnNTk0tSC2C6WPi4JRqYExtkXe/lrho87FfUUsPdjT9vPViQ0Zw65pasQfOr26z qh09Y7xj+lUZr6l5mxY08tV9Cz/wvT5J6Onhb5155QfXlPZOFrSVumE0/ZzAhDPVt+Z/ssk6 7Wh+TLzU1Gnt6U1ZV56VPv20gvUiT+uu2fmLjL+sXrcg8AuzCVctR6mNwf3SNsuMKw+UWIoz Eg21mIuKEwGx6jXJZQIAAA== X-CMS-MailID: 20200225073100eucas1p19097473ba40bb36c69b42e0479e42a00 X-Msg-Generator: CA X-RootMTR: 20200225073100eucas1p19097473ba40bb36c69b42e0479e42a00 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200225073100eucas1p19097473ba40bb36c69b42e0479e42a00 References: <20200225072813.9385-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v4 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 | 35 +++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c index 044eb10a7..22323d9a5 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,17 @@ 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_DRV_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 Feb 25 07:28:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 66025 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 5FA0FA0524; Tue, 25 Feb 2020 08:31:19 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 75BD31BFDB; Tue, 25 Feb 2020 08:31:09 +0100 (CET) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 842071BFD3 for ; Tue, 25 Feb 2020 08:31:08 +0100 (CET) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200225073108euoutp0101e5e1f39a5143f26c86722cb2349543~2lL9ICLcv2036720367euoutp013 for ; Tue, 25 Feb 2020 07:31:08 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200225073108euoutp0101e5e1f39a5143f26c86722cb2349543~2lL9ICLcv2036720367euoutp013 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1582615868; bh=wTOgce56Xo1vSap25g5XnEIAprhbLgtuOwkEoBo7BGo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=RrwegqKSXIodlBgRRLrqITkm6f8pinKV7v5X3sp2vNhwvJVuIiA4+leBO9lEnqDci Dh7/AYbckbrnYr7pU61zaoT3PG+y0rUzmrSE4UUGHE+B3JbMg4DJgOSRd0R75zaBTS Pojaxr29cp2FCuJPS7pweOhRAhYWih0SwanNUOrg= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200225073108eucas1p10ce3642c90526753fcf98186f6b2a491~2lL80vEDG1971419714eucas1p1f; Tue, 25 Feb 2020 07:31:08 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id C4.7F.60698.B3DC45E5; Tue, 25 Feb 2020 07:31:07 +0000 (GMT) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200225073107eucas1p2255c2df9fb15b1e17b8447b7d88dbf2d~2lL8XHqEA1004210042eucas1p2z; Tue, 25 Feb 2020 07:31:07 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200225073107eusmtrp242a8d23b6f7daf4a4c00cad13545e012~2lL8V7RW40405804058eusmtrp2H; Tue, 25 Feb 2020 07:31:07 +0000 (GMT) X-AuditID: cbfec7f5-a29ff7000001ed1a-5b-5e54cd3bf21d Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id AC.99.07950.B3DC45E5; Tue, 25 Feb 2020 07:31:07 +0000 (GMT) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200225073106eusmtip226956a9874035240bbbc6bb1757ef732~2lL728huH1348813488eusmtip2A; Tue, 25 Feb 2020 07:31: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 Cc: Ivan Dyukov Date: Tue, 25 Feb 2020 10:28:11 +0300 Message-Id: <20200225072813.9385-3-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200225072813.9385-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrHIsWRmVeSWpSXmKPExsWy7djP87rWZ0PiDM5vNbdo3fGAxeLdp+1M FrMuNbFbHOvcw2KxteE/k8Xmi5OYHNg8fi1YyuqxeM9LJo/3+66yefRtWcUYwBLFZZOSmpNZ llqkb5fAlbH1+maWgq0mFS+vLmFqYDyp1cXIySEhYCLxdOt89i5GLg4hgRWMEgeer2KFcL4w Shw6e58FpEpI4DOjxLEzVl2MHGAdP19WQ9QsZ5SYuX05M4TzlVFi2p2djCANbAIaEqc75jGB 2CICBRJr1z9kB7GZBdQkPvS8ZwEZJCxgKfGoSRUkzCKgKjH3TAsbiM0rYCHRcH4xC8R18hKr NxxgBrE5gco3P5sMtktC4DGbxJeWVnaIg1wkfnQbQdQLS7w6voUdwpaR+L9zPhOEXS3xfdN1 dojeDkaJe4taoYrsJba8Pgc2h1lAU2L9Ln2IsKNE/7k2qPF8EjfeCkJczycxadt0Zogwr0RH mxBEtZLEgZOXoMISEn9/80CEPSSaL59gggTOAUaJ5TMesk9glJ+FsGsBI+MqRvHU0uLc9NRi 47zUcr3ixNzi0rx0veT83E2MwFRw+t/xrzsY9/1JOsQowMGoxMMrsTc4Tog1say4MvcQowQH s5IIrzdjUJwQb0piZVVqUX58UWlOavEhRmkOFiVxXuNFL2OFBNITS1KzU1MLUotgskwcnFIN jPtlQzXdKv+84j9/QIRDdqI569aWZK2AN2Yu11lX/mJK2ukpcJp5rtWmpiP+9wMCzidf8X3g K7w+h6P35kctURv7/mmnlF8EtD7r+l3fG33+nOPaOuaVujOSM26qFqy4r7z5+lXmFyHxSl/s n50Wkl+4MFxbNJntzCJpzesZmizihrpGFk9mKbEUZyQaajEXFScCAFEM67MBAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrALMWRmVeSWpSXmKPExsVy+t/xe7rWZ0PiDPYslrJo3fGAxeLdp+1M FrMuNbFbHOvcw2KxteE/k8Xmi5OYHNg8fi1YyuqxeM9LJo/3+66yefRtWcUYwBKlZ1OUX1qS qpCRX1xiqxRtaGGkZ2hpoWdkYqlnaGwea2VkqqRvZ5OSmpNZllqkb5egl7H1+maWgq0mFS+v LmFqYDyp1cXIwSEhYCLx82V1FyMXh5DAUkaJ3kcPWSDiEhKvnzB3MXICmcISf651sYHYQgKf GSWmXhQHsdkENCROd8xjArFFBMokVm2+yg5iMwuoSXzoeQ82RljAUuJRkypImEVAVWLumRaw MbwCFhIN5xezQIyXl1i94QDYKk6g8s3PJjNDrMqRePFgK9sERr4FjAyrGEVSS4tz03OLjfSK E3OLS/PS9ZLzczcxAkNz27GfW3Ywdr0LPsQowMGoxMMrsTc4Tog1say4MvcQowQHs5IIrzdj UJwQb0piZVVqUX58UWlOavEhRlOgoyYyS4km5wPjJq8k3tDU0NzC0tDc2NzYzEJJnLdD4GCM kEB6YklqdmpqQWoRTB8TB6dUA6O7kvbZczqXOOetfGDbdvSh7tzqCSeLX5RP6lb2nfStXTnX P4bti9rFm8qv98tE/CiQlin8uVte7eK8nUtTJ9Wp35/wZadoBFe7+YU2rodRyzfoa81T8yyu 1lm7maF3/TXz4/wO3xoE/7DcNtgWm9YV9yHj3cukVW/PL1jz7h97QL38Eom1BZxKLMUZiYZa zEXFiQDKe0saYwIAAA== X-CMS-MailID: 20200225073107eucas1p2255c2df9fb15b1e17b8447b7d88dbf2d X-Msg-Generator: CA X-RootMTR: 20200225073107eucas1p2255c2df9fb15b1e17b8447b7d88dbf2d X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200225073107eucas1p2255c2df9fb15b1e17b8447b7d88dbf2d References: <20200225072813.9385-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v4 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 transmit rate. It limits outcome traffic to hardcoded 10G. This patch adds link_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 22323d9a5..9707c8cbc 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, "error 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, "error 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_DRV_LOG(ERR, "devargs parsing is failed"); @@ -2386,7 +2452,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) { @@ -2441,8 +2507,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 Feb 25 07:28:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 66026 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 3427BA0524; Tue, 25 Feb 2020 08:31:29 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C33871BFE3; Tue, 25 Feb 2020 08:31:12 +0100 (CET) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 36DCC1BFE3 for ; Tue, 25 Feb 2020 08:31:11 +0100 (CET) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200225073111euoutp011827f2f0c86b946397e09e6667cd14a9~2lL-o6gc12036720367euoutp016 for ; Tue, 25 Feb 2020 07:31:11 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200225073111euoutp011827f2f0c86b946397e09e6667cd14a9~2lL-o6gc12036720367euoutp016 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1582615871; bh=XZrkyRg2+Pz7PpyRdqYMptfy5QvNeuXSDMV/FIlv+bc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KFPmNKEIXN0uTvKHr5TGl84nP5VJvC6JLRmNM2RydTGbktXMTikhWAlLCgW5b7Ty1 iP+wfmwNo/cjYT/PMomwvMNc0f+GesiStZf927tM4YoIISyhKGP/DPMMc/6Sz+74KE nMhRLJxESW3vT52EwC98coc0f8X5CoSSLIFSFxdM= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20200225073110eucas1p22711265bd885ed90bc556411dbc169ea~2lL-gp9gH1194911949eucas1p23; Tue, 25 Feb 2020 07:31:10 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id E1.64.60679.E3DC45E5; Tue, 25 Feb 2020 07:31:10 +0000 (GMT) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200225073110eucas1p2919a401942e01f3710de17730b16d400~2lL-Q8NZZ1056510565eucas1p28; Tue, 25 Feb 2020 07:31:10 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200225073110eusmtrp1cb8b2471a4e3d50948008853b1ad4bc5~2lL-QYGuS2163421634eusmtrp1Y; Tue, 25 Feb 2020 07:31:10 +0000 (GMT) X-AuditID: cbfec7f4-0e5ff7000001ed07-64-5e54cd3eb2f1 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id E0.EA.08375.E3DC45E5; Tue, 25 Feb 2020 07:31:10 +0000 (GMT) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200225073110eusmtip2a73f06f9ba9bb9fee45fa8b6943468e6~2lL_w7mPA1466114661eusmtip2P; Tue, 25 Feb 2020 07:31:10 +0000 (GMT) From: Ivan Dyukov To: dev@dpdk.org, maxime.coquelin@redhat.com, tiwei.bie@intel.com, amorenoz@redhat.com, zhihong.wang@intel.com Cc: Ivan Dyukov Date: Tue, 25 Feb 2020 10:28:12 +0300 Message-Id: <20200225072813.9385-4-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200225072813.9385-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrAIsWRmVeSWpSXmKPExsWy7djP87p2Z0PiDLqOGlu07njAYvHu03Ym i1mXmtgtjnXuYbHY2vCfyWLzxUlMDmwevxYsZfVYvOclk8f7fVfZPPq2rGIMYInisklJzcks Sy3St0vgypjw5jxzwTOOiiMbZrI3MM5k72Lk5JAQMJHo+ryCtYuRi0NIYAWjxK7H69ggnC+M Ev9PH2ADqRIS+MwoseiuA0xHWw9M0XJGiZ+zb0EVfQVqf8QJYrMJaEic7pjHBGKLCBRIrF3/ EGwds4CaxIee9ywgtrCAjcSW929YQWwWAVWJr0vmg9m8AhYSfx/3s0Isk5dYveEAM4jNKWAp sfnZZGaQxRICj9kkzk/8wAZR5CLR0tAFZQtLvDq+Beo3GYnTk3tYIOxqie+brrNDNHcwStxb 1ApVZC+x5fU5IJsD6DpNifW79CHCjhJLdyxkAglLCPBJ3HgrCHE/n8SkbdOZIcK8Eh1tQhDV ShIHTl6CCktI/P3NAxH2kOhd+oMFElQHGCVetcxmmcAoPwth1wJGxlWM4qmlxbnpqcVGeanl esWJucWleel6yfm5mxiB6eD0v+NfdjDu+pN0iFGAg1GJh1dib3CcEGtiWXFl7iFGCQ5mJRFe b8agOCHelMTKqtSi/Pii0pzU4kOM0hwsSuK8xotexgoJpCeWpGanphakFsFkmTg4pRoYS00Z 1285+P0uwynX37VJM5XdZR+zXlFbyJ/5MizyqJZOzlT35zfWMTR0JmwOs9ih7n4kZTKX3yOr RSekHBI+5NesPLlVOnR33L0CTeGsGyKF58zlujaf5HRcvyJ8tXF8M9+WoOymZXk3gwxP3OfK SLr879en4oxzvox9a87H7UtT8j7nvdZQiaU4I9FQi7moOBEASWpxywMDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrMLMWRmVeSWpSXmKPExsVy+t/xe7p2Z0PiDDZ/VbZo3fGAxeLdp+1M FrMuNbFbHOvcw2KxteE/k8Xmi5OYHNg8fi1YyuqxeM9LJo/3+66yefRtWcUYwBKlZ1OUX1qS qpCRX1xiqxRtaGGkZ2hpoWdkYqlnaGwea2VkqqRvZ5OSmpNZllqkb5eglzHhzXnmgmccFUc2 zGRvYJzJ3sXIySEhYCLR1rOOrYuRi0NIYCmjxL2uxSxdjBxACQmJ10+YIWqEJf5c64Kq+cwo cW3ZNFaQBJuAhsTpjnlMILaIQJnEqs1XwYYyC6hJfOh5zwJiCwvYSGx5/wasnkVAVeLrkvlg Nq+AhcTfx/2sEAvkJVZvOAC2jFPAUmLzs8lgtpBAjsSLB1vZJjDyLWBkWMUoklpanJueW2yo V5yYW1yal66XnJ+7iREYoNuO/dy8g/HSxuBDjAIcjEo8vBJ7g+OEWBPLiitzDzFKcDArifB6 MwbFCfGmJFZWpRblxxeV5qQWH2I0BTpqIrOUaHI+MHrySuINTQ3NLSwNzY3Njc0slMR5OwQO xggJpCeWpGanphakFsH0MXFwSjUwyoZM+vs3Zeu0Kh9tQf2pLxZc/eHenBehJhtvG93313DS VrMVW0L+l7jzJ/Tc2H4jo/jpvI9zxe2tAmsKlEMsAgXUdf7pO61aZ3FxX9nKrs45YbZz68qq 2uSKEkRMpiW6PRXknvfBOllr6f/f3HO/SD4vyIy6121tZ1f+VlXqjLPUSbOlZx8psRRnJBpq MRcVJwIAmi+t2GYCAAA= X-CMS-MailID: 20200225073110eucas1p2919a401942e01f3710de17730b16d400 X-Msg-Generator: CA X-RootMTR: 20200225073110eucas1p2919a401942e01f3710de17730b16d400 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200225073110eucas1p2919a401942e01f3710de17730b16d400 References: <20200225072813.9385-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v4 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 Feb 25 07:28:13 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 66027 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 BA9F6A0524; Tue, 25 Feb 2020 08:31:38 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 74DF01BFED; Tue, 25 Feb 2020 08:31:15 +0100 (CET) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id BE7B81BFE8 for ; Tue, 25 Feb 2020 08:31:13 +0100 (CET) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200225073113euoutp02871b251b665ba96e9e3c472bce910a14~2lMBreTmM0387803878euoutp02- for ; Tue, 25 Feb 2020 07:31:13 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200225073113euoutp02871b251b665ba96e9e3c472bce910a14~2lMBreTmM0387803878euoutp02- DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1582615873; bh=Q1sEELbnScNmHsdQvI8BQT9Xv780c2E7fDa3/x8JCw4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NvqxfSMX4v+sROomRtwugPqsTs6figO4KHhpBHYrw6mxFFkweIctwRdpjYnafaweD 1+zH7V+32b9LO4vvbbJuGnWkkRqRK9mhgH/xfXzFkcA6q8AysjC/Vsc5m3A0d8Z10p bys6+P+NxP8jneY7Nri4VXOQmwUrlSKaW0OhdLIQ= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20200225073113eucas1p2560b135286f965ead49546a5163bab10~2lMBhjV9s0347503475eucas1p27; Tue, 25 Feb 2020 07:31:13 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id 74.3A.61286.04DC45E5; Tue, 25 Feb 2020 07:31:13 +0000 (GMT) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200225073112eucas1p2eb93d3723d3c417f82a2e8e230f79a9a~2lMBQ_d8b0348603486eucas1p2R; Tue, 25 Feb 2020 07:31:12 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200225073112eusmtrp2839ff8654bf86a1a3fc3a97cd838c8a6~2lMBQc4JU0405804058eusmtrp2W; Tue, 25 Feb 2020 07:31:12 +0000 (GMT) X-AuditID: cbfec7f2-ef1ff7000001ef66-7c-5e54cd403c93 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 70.A9.07950.04DC45E5; Tue, 25 Feb 2020 07:31:12 +0000 (GMT) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200225073112eusmtip215af1950f4f8b20f257d87a9875139f8~2lMAymrPA1922419224eusmtip2L; Tue, 25 Feb 2020 07:31:12 +0000 (GMT) From: Ivan Dyukov To: dev@dpdk.org, maxime.coquelin@redhat.com, tiwei.bie@intel.com, amorenoz@redhat.com, zhihong.wang@intel.com Cc: Ivan Dyukov Date: Tue, 25 Feb 2020 10:28:13 +0300 Message-Id: <20200225072813.9385-5-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200225072813.9385-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrLIsWRmVeSWpSXmKPExsWy7djPc7qOZ0PiDN5eYLRo3fGAxeLdp+1M FrMuNbFbHOvcw2KxteE/k8Xmi5OYHNg8fi1YyuqxeM9LJo/3+66yefRtWcUYwBLFZZOSmpNZ llqkb5fAlTHpwT/mgh98FY8nXWVpYFzO08XIwSEhYCLx7GtpFyMXh5DACkaJKcvuskI4Xxgl PjbfYIZwPjNKnLjbzQTTcfqRbRcjJ1B8OaPElueaEDVfGSV6V/5kA0mwCWhInO6YxwRiiwgU SKxd/5AdxGYWUJP40POeBcQWFnCUuNd/jBlkJouAqsTKRrASXgELiRNzDzCD2BIC8hKrN0DY nAKWEpufTQa7R0LgPpvEnscL2CGKXCRaD/exQdjCEq+Ob4GKy0j83zmfCcKulvi+6To7RHMH o8S9Ra1QRfYSW16fYwc5gllAU2L9Ln2IsKNEZ98ZNoh/+SRuvBWEOJ9PYtK26cwQYV6JjjYh iGoliQMnL0GFJST+/uaBCHtI7PjVyAwJqQOMEpc+BE9glJ+FsGoBI+MqRvHU0uLc9NRiw7zU cr3ixNzi0rx0veT83E2MwERw+t/xTzsYv15KOsQowMGoxMMrsTc4Tog1say4MvcQowQHs5II rzdjUJwQb0piZVVqUX58UWlOavEhRmkOFiVxXuNFL2OFBNITS1KzU1MLUotgskwcnFINjIlM hiGXbfbP19ROrjQ/47VsBfN03Z5g04W+lps1374LVIgSry+JUP5atIt5rcPx13H9Z9WmXpk3 M+3YtmPXVKs2HN3hw75y9535dxzDp0RbqHofMW9mD1Q4etrvjkLTLNZ53PWWJT+/pJh/f8rw IZLfwE9basfzpfvm/Z+53X2fndDaPw/rNymxFGckGmoxFxUnAgAyB2SaAAMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrILMWRmVeSWpSXmKPExsVy+t/xe7oOZ0PiDD7v0LFo3fGAxeLdp+1M FrMuNbFbHOvcw2KxteE/k8Xmi5OYHNg8fi1YyuqxeM9LJo/3+66yefRtWcUYwBKlZ1OUX1qS qpCRX1xiqxRtaGGkZ2hpoWdkYqlnaGwea2VkqqRvZ5OSmpNZllqkb5eglzHpwT/mgh98FY8n XWVpYFzO08XIwSEhYCJx+pFtFyMXh5DAUkaJ/53rWCDiEhKvnzB3MXICmcISf651sUHUfGaU WLBtHxNIgk1AQ+J0xzwwW0SgTGLV5qvsIDazgJrEh573LCC2sICjxL3+Y8wgM1kEVCVWNoKV 8ApYSJyYewBqvrzE6g0QNqeApcTmZ5PBbCGBHIkXD7ayTWDkW8DIsIpRJLW0ODc9t9hIrzgx t7g0L10vOT93EyMwOLcd+7llB2PXu+BDjAIcjEo8vBJ7g+OEWBPLiitzDzFKcDArifB6MwbF CfGmJFZWpRblxxeV5qQWH2I0BbppIrOUaHI+MHLySuINTQ3NLSwNzY3Njc0slMR5OwQOxggJ pCeWpGanphakFsH0MXFwSjUwGrou2Nq29MwzSacP5xr4Qz3mpRsYsi7h+XDmSWmy23SpxXvN IqfNfB6otc7B2Z6b89G1MINgt7eLruwWs3m9o/DV9pt3jX44n86Tun+jjzHp5b0gK1G5VKub cz33r3N13LtK9rWkmJ3lgt3C09Zl94R9u7HbK/ygyxJuyfNrPZiFu4WKLWffUmIpzkg01GIu Kk4EADUKYHtkAgAA X-CMS-MailID: 20200225073112eucas1p2eb93d3723d3c417f82a2e8e230f79a9a X-Msg-Generator: CA X-RootMTR: 20200225073112eucas1p2eb93d3723d3c417f82a2e8e230f79a9a X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200225073112eucas1p2eb93d3723d3c417f82a2e8e230f79a9a References: <20200225072813.9385-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v4 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=");