From patchwork Thu Feb 27 14:16: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: 66090 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 76FF5A055F; Thu, 27 Feb 2020 15:20:21 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 51ACD1BFCC; Thu, 27 Feb 2020 15:20:21 +0100 (CET) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 9D7FB1F1C for ; Thu, 27 Feb 2020 15:20:19 +0100 (CET) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200227142019euoutp01c064624e03148adabd545f726937787b~3SDyT8war1458814588euoutp01P for ; Thu, 27 Feb 2020 14:20:19 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200227142019euoutp01c064624e03148adabd545f726937787b~3SDyT8war1458814588euoutp01P DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1582813219; bh=RQMv9cuuvP5u8e0+uNl+O6QooxHPW/YCpJsvHBfzTqw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Bc/WmQkuolL1BnOSqT4Vf65AWBSQ61+i/1HG0hAPIxPGPzdMiEqdLpRFmAj0+G/+6 OEN0Y6fphELAhw1fTwTRAAyxwmPlA11I8DQC//8auDjWyoCK2BMwJii6/A7Jp/P6Pu xN2MBy/3JUfP67ReiUzkkG1B/KMmmH6e3RuDovFI= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20200227142018eucas1p278922e489e4bd5bb14cd77dfac6f3784~3SDyGiSLQ1636516365eucas1p2M; Thu, 27 Feb 2020 14:20:18 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id 56.2B.60698.220D75E5; Thu, 27 Feb 2020 14:20:18 +0000 (GMT) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200227142018eucas1p1fd60eac2a28295736ee07a3730cb5a53~3SDxdI2IW1839018390eucas1p1G; Thu, 27 Feb 2020 14:20:18 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200227142018eusmtrp25fc6bd582d8db1b3429a86727474812a~3SDxbWuEQ2814228142eusmtrp2N; Thu, 27 Feb 2020 14:20:18 +0000 (GMT) X-AuditID: cbfec7f5-a0fff7000001ed1a-5e-5e57d022aae8 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 20.69.07950.220D75E5; Thu, 27 Feb 2020 14:20:18 +0000 (GMT) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200227142017eusmtip2335c0f8668d76194d1d24c72fec2587f~3SDw8JZGN0759407594eusmtip22; Thu, 27 Feb 2020 14:20:17 +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: Thu, 27 Feb 2020 17:16:13 +0300 Message-Id: <20200227141840.15835-2-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200227141840.15835-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrGIsWRmVeSWpSXmKPExsWy7djP87pKF8LjDL6t0bNo3fGAxeLdp+1M FrMuNbFbHOvcw2KxteE/k8WfN6YWmy9OYnJg9/i1YCmrx+I9L5k83u+7yubRt2UVYwBLFJdN SmpOZllqkb5dAlfG8k8T2QuWC1Z8n/GMsYGxka+LkZNDQsBE4k7PNLYuRi4OIYEVjBJ9Gyaz QzhfGCXedG2Gcj4zSlxc+ZkRpmXLjrlMEInljBKLLy5mgXC+Mkr8O3abCaSKTUBD4nTHPLAq EYF2RolVU1pYQBLMAmoSH3reg9nCAjYSh54vALNZBFQllp59wwZi8wpYSrT++csMsU5eYvWG A2A2p4CVxPyWd4wgQyUEnrNJPP6yFqiZA8hxkXh/OBSiXlji1fEt7BC2jMT/nfOZIOxqie+b rrND9HYwStxb1ApVZC+x5fU5dpA5zAKaEut36UOEHSWmnNjNCDGeT+LGW0GI8/kkJm2bzgwR 5pXoaBOCqFaSOHDyElRYQuLvbx6IsIfE8qWN0LDazCjR0fOZfQKj/CyEXQsYGVcxiqeWFuem pxYb56WW6xUn5haX5qXrJefnbmIEpobT/45/3cG470/SIUYBDkYlHt4FO8LjhFgTy4orcw8x SnAwK4nwbvwaGifEm5JYWZValB9fVJqTWnyIUZqDRUmc13jRy1ghgfTEktTs1NSC1CKYLBMH p1QDo51Jk9Q2y9rnn23PLO7wFmHoMWHZ83BJYdeW9fE3eVPzamM/hn0qLAtelfGQL4Ht5nKT zCdzLjRN36zerX9f8km1LIvdIdVCi1Ym48myVc5m3RMm9Dmue71h+TPH5dc2FKgrT9jS4ysd /c9hzp13pbPFTv5cct/1SX2+4+Teeub7bacfT/ZJUmIpzkg01GIuKk4EAJEAAvsJAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrOLMWRmVeSWpSXmKPExsVy+t/xe7pKF8LjDL5tZbNo3fGAxeLdp+1M FrMuNbFbHOvcw2KxteE/k8WfN6YWmy9OYnJg9/i1YCmrx+I9L5k83u+7yubRt2UVYwBLlJ5N UX5pSapCRn5xia1StKGFkZ6hpYWekYmlnqGxeayVkamSvp1NSmpOZllqkb5dgl7G8k8T2QuW C1Z8n/GMsYGxka+LkZNDQsBEYsuOuUxdjFwcQgJLGSWONF1j7GLkAEpISLx+wgxRIyzx51oX G4gtJPCZUaLnuxCIzSagIXG6Yx5Yr4hAP6PExl+/wRqYBdQkPvS8ZwGxhQVsJA49XwBmswio Siw9+wZsEK+ApUTrn79QC+QlVm84AGZzClhJzG95xwixLF7i4/fz7BMY+RYwMqxiFEktLc5N zy020itOzC0uzUvXS87P3cQIDNRtx35u2cHY9S74EKMAB6MSD6/HtvA4IdbEsuLK3EOMEhzM SiK8G7+GxgnxpiRWVqUW5ccXleakFh9iNAU6aiKzlGhyPjCK8kriDU0NzS0sDc2NzY3NLJTE eTsEDsYICaQnlqRmp6YWpBbB9DFxcEo1MKqE+rrOStrcXrWJWVleuLr8v/QGzkUPlLnnfZ4T /sd+nlbR79oZvhF/c/4v4nu9x/xG4IM3x3sWLWoV2/LtrL/E34WznL1NOybe9hdfGtwx6Vsf j67pTAWjHLulec/cXp553uh793CoQr2IHMOH92UrFkn9V7gedGF7o5r8Z0fBQkFHlc5IDiWW 4oxEQy3mouJEAI9vofZqAgAA X-CMS-MailID: 20200227142018eucas1p1fd60eac2a28295736ee07a3730cb5a53 X-Msg-Generator: CA X-RootMTR: 20200227142018eucas1p1fd60eac2a28295736ee07a3730cb5a53 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200227142018eucas1p1fd60eac2a28295736ee07a3730cb5a53 References: <20200226075503.GA108150@intel.com> <20200227141840.15835-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v5 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..d2c7f8c61 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_INIG_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 Thu Feb 27 14:16:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 66091 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 3E4C9A055F; Thu, 27 Feb 2020 15:20:31 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id CABEB1BFD3; Thu, 27 Feb 2020 15:20:25 +0100 (CET) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id CA1511F1C for ; Thu, 27 Feb 2020 15:20:24 +0100 (CET) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200227142024euoutp027f5fc369b23e9cae9dce25bd5855e117~3SD3eyDKP2266022660euoutp029 for ; Thu, 27 Feb 2020 14:20:24 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200227142024euoutp027f5fc369b23e9cae9dce25bd5855e117~3SD3eyDKP2266022660euoutp029 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1582813224; bh=0prRFzPe9J8TuMkjIkIaK1G//w3sfm9lk3YvbCSucPY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ph9eB+de5rPc3TlfCjIgyjYNJCdvHMjk/aOEpwnx2hn1N0bhAA4SxHrcSpJZ5+VkJ IcdsplbDX6b3OXgRiy18WXpDqfbVHnK+HcX8QdRizhRoHAE/9AgM11yw2Cj4WAr5Dh xCNvrxunTH+iqQ3mqvzEQUHsR2TwDPmbkTMDkqOg= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20200227142023eucas1p2c98d78dbf2e87c7495df6307f87f0727~3SD2M3LDd1431114311eucas1p2c; Thu, 27 Feb 2020 14:20:23 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id A5.84.60679.720D75E5; Thu, 27 Feb 2020 14:20:23 +0000 (GMT) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200227142022eucas1p2b3cebb5af8470f715bffe20367226bff~3SD10ZXJ11637716377eucas1p2O; Thu, 27 Feb 2020 14:20:22 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200227142022eusmtrp2e00f48706405ae8fc10fb2b55061a8d7~3SD1zv4hp2816928169eusmtrp2E; Thu, 27 Feb 2020 14:20:22 +0000 (GMT) X-AuditID: cbfec7f4-0cbff7000001ed07-5e-5e57d027c853 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id DB.89.08375.620D75E5; Thu, 27 Feb 2020 14:20:22 +0000 (GMT) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200227142022eusmtip2c1ca722837d314c0f46faffa07d3f7f8~3SD1UAzjA1312413124eusmtip2C; Thu, 27 Feb 2020 14:20:22 +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: Thu, 27 Feb 2020 17:16:14 +0300 Message-Id: <20200227141840.15835-3-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200227141840.15835-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrGIsWRmVeSWpSXmKPExsWy7djPc7rqF8LjDJ6d4bZo3fGAxeLdp+1M FrMuNbFbHOvcw2KxteE/k8WfN6YWmy9OYnJg9/i1YCmrx+I9L5k83u+7yubRt2UVYwBLFJdN SmpOZllqkb5dAlfGkkkL2Qr2mlT8XvuTsYHxslYXIweHhICJxP/H6V2MXBxCAisYJbrW9zBB OF8YJaZ872eDcD4zSuxeso61i5ETrGPBjnlQieWMEkueTIVyvjJKPPqzhgmkik1AQ+J0xzyw WSIC7YwSq6a0sIAkmAXUJD70vAezhQUsJSbNOAtmswioSmy+uZwdxOYFind1/YdaJy+xesMB ZhCbU8BKYn7LO0aQoRICr9kkljceY4cocpH4v24XI4QtLPHq+BaouIzE/53zmSDsaonvm66z QzR3MErcW9QKVWQvseX1OXZQcDALaEqs36UPEXaU2H/yFysklPgkbrwVhLifT2LStunMEGFe iY42IYhqJYkDJy9BhSUk/v7mgQh7SLx+8xwapJsZJTo+dDFOYJSfhbBrASPjKkbx1NLi3PTU YqO81HK94sTc4tK8dL3k/NxNjMDUcPrf8S87GHf9STrEKMDBqMTDu2BHeJwQa2JZcWXuIUYJ DmYlEd6NX0PjhHhTEiurUovy44tKc1KLDzFKc7AoifMaL3oZKySQnliSmp2aWpBaBJNl4uCU amBUuvSVb4PPprmZL8sl3piZKChkeqlfUY1WV5r4oYKDw8Qq1VI98IfsM+PgqLbHR/Q+/O2U vyUdfOVABctux7wnaoY7kgRuZWwJd7cXv3/zlKxdGqPpBbd/0kuNOE7YeHPv3qN04dVzPQmX Kys6XmpeK89VXiNm+/mj8V6x+Bs2sQ8+7zqz5L4SS3FGoqEWc1FxIgAllMlLCQMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrBLMWRmVeSWpSXmKPExsVy+t/xe7pqF8LjDD49MbBo3fGAxeLdp+1M FrMuNbFbHOvcw2KxteE/k8WfN6YWmy9OYnJg9/i1YCmrx+I9L5k83u+7yubRt2UVYwBLlJ5N UX5pSapCRn5xia1StKGFkZ6hpYWekYmlnqGxeayVkamSvp1NSmpOZllqkb5dgl7GkkkL2Qr2 mlT8XvuTsYHxslYXIyeHhICJxIId89i6GLk4hASWMkrsu3INyOEASkhIvH7CDFEjLPHnWhdU zWdGib/v9rKDJNgENCROd8xjAkmICPQzSmz89Rusg1lATeJDz3sWEFtYwFJi0oyzYDaLgKrE 5pvLwZp5geJdXf9ZITbIS6zecACsl1PASmJ+yztGEFtIIF7i4/fz7BMY+RYwMqxiFEktLc5N zy021CtOzC0uzUvXS87P3cQIDNVtx35u3sF4aWPwIUYBDkYlHt4FO8LjhFgTy4orcw8xSnAw K4nwbvwaGifEm5JYWZValB9fVJqTWnyI0RToqInMUqLJ+cA4yiuJNzQ1NLewNDQ3Njc2s1AS 5+0QOBgjJJCeWJKanZpakFoE08fEwSnVwOicemGip8t/ds07u9T+PX7NFtB1cPXWYDkRn9Ux ip8CHv87xLvd+O8yzTijsl+fvO1Zpl/peFO4xdAu68TsiCT90133b21p/PS7a5l2si9D2j3b N1/2hXz/8SHu/v0isfNMZ6VeZyk0ih47dneO6ekNT5/e3edzYO4N6T2qKm/Tz/it2b+973eA EktxRqKhFnNRcSIAGNLfymsCAAA= X-CMS-MailID: 20200227142022eucas1p2b3cebb5af8470f715bffe20367226bff X-Msg-Generator: CA X-RootMTR: 20200227142022eucas1p2b3cebb5af8470f715bffe20367226bff X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200227142022eucas1p2b3cebb5af8470f715bffe20367226bff References: <20200226075503.GA108150@intel.com> <20200227141840.15835-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v5 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 d2c7f8c61..1fc1f1139 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_INIG_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 Thu Feb 27 14:16:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 66092 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 5FB4AA055F; Thu, 27 Feb 2020 15:20:44 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 70F961BFE0; Thu, 27 Feb 2020 15:20:29 +0100 (CET) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id AB0A11F1C for ; Thu, 27 Feb 2020 15:20:25 +0100 (CET) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200227142025euoutp0216303342da9b187c5a107565a14ec9ed~3SD4VGG_D2263122631euoutp02G for ; Thu, 27 Feb 2020 14:20:25 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200227142025euoutp0216303342da9b187c5a107565a14ec9ed~3SD4VGG_D2263122631euoutp02G DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1582813225; bh=XZrkyRg2+Pz7PpyRdqYMptfy5QvNeuXSDMV/FIlv+bc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=g2HWHHnwDOwhc6zupI/wM3MgEqYRWKKceiIw9mDst0fcnXwLqJhD1DRnWf9fL7TnI 3gqMOKhFg+k+qMdXW5Inuy2A7udFGx1W0oETAcGb71UJN7GECd2uIOUlKhl/1oTCZn t7y0Fjlr9oLKCcoaX6oQXdMPewZ7XsOSjIz2hIpY= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20200227142025eucas1p297cb80e014d7af0270579b52684d97c3~3SD38sDoR3188831888eucas1p2J; Thu, 27 Feb 2020 14:20:25 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id 8F.C4.61286.920D75E5; Thu, 27 Feb 2020 14:20:25 +0000 (GMT) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200227142024eucas1p1e356ee11b8eda65208682b1591e3cc00~3SD3t8CQZ2042620426eucas1p1H; Thu, 27 Feb 2020 14:20:24 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200227142024eusmtrp29273c2d3858ed5c96de872daa13c62a3~3SD3tb8h52816928169eusmtrp2J; Thu, 27 Feb 2020 14:20:24 +0000 (GMT) X-AuditID: cbfec7f2-ef1ff7000001ef66-ad-5e57d029c4fe Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 2D.89.08375.820D75E5; Thu, 27 Feb 2020 14:20:24 +0000 (GMT) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200227142024eusmtip2e65d0e25452ec7484951187cd482439b~3SD3Hayax0717507175eusmtip2_; Thu, 27 Feb 2020 14:20:24 +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: Thu, 27 Feb 2020 17:16:15 +0300 Message-Id: <20200227141840.15835-4-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200227141840.15835-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrMIsWRmVeSWpSXmKPExsWy7djPc7qaF8LjDNZvYbNo3fGAxeLdp+1M FrMuNbFbHOvcw2KxteE/k8WfN6YWmy9OYnJg9/i1YCmrx+I9L5k83u+7yubRt2UVYwBLFJdN SmpOZllqkb5dAlfGhDfnmQuecVQc2TCTvYFxJnsXIweHhICJxM7p9l2MnBxCAisYJS6+E4Gw vzBKzJ0n1cXIBWR/ZpR48v0KK0gCpL5x92VmiMRyRokFd7qYIJyvjBK3d89mA6liE9CQON0x DywhItDOKLFqSgsLSIJZQE3iQ897FpDVwgI2EheXeoCEWQRUJTZMXgG2gVfAUqLtyi4miG3y Eqs3HGAGsTkFrCTmt7xjBJkpIfCaTWLN58PsEEUuEgu7PzFC2MISr45vgYrLSPzfOR9qULXE 903X2SGaOxgl7i1qhSqyl9jy+hw4LJgFNCXW79KHCDtKbF57gRESRHwSN94KQpzPJzFp23Rm iDCvREebEES1ksSBk5egwhISf3/zQIQ9JD6/e8AKCZ7NjBJH/19jncAoPwth1wJGxlWM4qml xbnpqcWGeanlesWJucWleel6yfm5mxiBSeH0v+OfdjB+vZR0iFGAg1GJh3fBjvA4IdbEsuLK 3EOMEhzMSiK8G7+GxgnxpiRWVqUW5ccXleakFh9ilOZgURLnNV70MlZIID2xJDU7NbUgtQgm y8TBKdXA2FjmF1Ij3Nlj8rOWeUnVl3wvF2M+GQe9OblzLO3XXkz/dS1AIjRZtiZcyE8sI0PP cIJz3bd5AfmMDpeLa+80GRdtu6mSuGzv8r1Filuj1drmvL4nqa+pfKLhsOoZD1+e/gXxLGaP TaUvCHAtX9q7LOqmAss0q0+Jd1QbvJd5N+rvP3IlwVCJpTgj0VCLuag4EQA8dUucBgMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrOLMWRmVeSWpSXmKPExsVy+t/xe7oaF8LjDPbO0rdo3fGAxeLdp+1M FrMuNbFbHOvcw2KxteE/k8WfN6YWmy9OYnJg9/i1YCmrx+I9L5k83u+7yubRt2UVYwBLlJ5N UX5pSapCRn5xia1StKGFkZ6hpYWekYmlnqGxeayVkamSvp1NSmpOZllqkb5dgl7GhDfnmQue cVQc2TCTvYFxJnsXIyeHhICJROPuy8xdjFwcQgJLGSWmLL8O5HAAJSQkXj9hhqgRlvhzrYsN ouYzo8SqhR/AEmwCGhKnO+YxgSREBPoZJTb++g2WYBZQk/jQ854FZJCwgI3ExaUeIGEWAVWJ DZNXsILYvAKWEm1XdjFBLJCXWL3hAFgrp4CVxPyWd4wgtpBAvMTH7+fZJzDyLWBkWMUoklpa nJueW2yoV5yYW1yal66XnJ+7iREYqNuO/dy8g/HSxuBDjAIcjEo8vAt2hMcJsSaWFVfmHmKU 4GBWEuHd+DU0Tog3JbGyKrUoP76oNCe1+BCjKdBRE5mlRJPzgVGUVxJvaGpobmFpaG5sbmxm oSTO2yFwMEZIID2xJDU7NbUgtQimj4mDU6qBcdLJe7JdZTNrHT77riwXkVQPLikx2CESY3Rs SoXXN4Pp1+VianrvS97nEbgi9iQ/xu/X76JdystLTn/ZKtVWaVv4TIL9ZGqD2As3mbL4xU6T 1h89xMh48Hbjrb/Vj/Uv/l7Ee83Ce0rmzMl7D536KHgzSuxNVrNDvq/Fsbs/tq19K8O5/lyB qhJLcUaioRZzUXEiAH+OvCBqAgAA X-CMS-MailID: 20200227142024eucas1p1e356ee11b8eda65208682b1591e3cc00 X-Msg-Generator: CA X-RootMTR: 20200227142024eucas1p1e356ee11b8eda65208682b1591e3cc00 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200227142024eucas1p1e356ee11b8eda65208682b1591e3cc00 References: <20200226075503.GA108150@intel.com> <20200227141840.15835-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v5 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 Thu Feb 27 14:16:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 66093 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 5D4F0A055F; Thu, 27 Feb 2020 15:20:55 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D9C001BFE6; Thu, 27 Feb 2020 15:20:30 +0100 (CET) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id 6C59C1BFDD for ; Thu, 27 Feb 2020 15:20:27 +0100 (CET) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200227142027euoutp0254a9ad7a68b71e1af0ea05a8630dbaef~3SD55ce772266722667euoutp02A for ; Thu, 27 Feb 2020 14:20:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200227142027euoutp0254a9ad7a68b71e1af0ea05a8630dbaef~3SD55ce772266722667euoutp02A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1582813227; bh=Q1sEELbnScNmHsdQvI8BQT9Xv780c2E7fDa3/x8JCw4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cIEMJcwS/1nyLlOwovMAlxEprh84pP/RG4LpQSoGjxLOJbyK+0g5/V1NNY9uVXAZt j9ZRLQpHxpC92AcPqxeD9E/wiRHmIYwF/w6bpxGPMSZ4upT1X35Gd61XctXCc5PPyF TzWSVn0CrB4zqcNoNdvaGoZUhuuDYuLF0gajImPc= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200227142027eucas1p1278617860f273e6d97d979fd29fbd106~3SD5vZ7Ex1697716977eucas1p1b; Thu, 27 Feb 2020 14:20:27 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id 78.84.60679.A20D75E5; Thu, 27 Feb 2020 14:20:26 +0000 (GMT) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200227142026eucas1p2101b3ca97559c155fc34cfbdec8cbdbc~3SD5LCB4D0353803538eucas1p2J; Thu, 27 Feb 2020 14:20:26 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200227142026eusmtrp2dfa2fa6112bc7aaf548ba5f3f6f9fad3~3SD5Kd6ri2814228142eusmtrp2k; Thu, 27 Feb 2020 14:20:26 +0000 (GMT) X-AuditID: cbfec7f4-0e5ff7000001ed07-6d-5e57d02aea7b Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 6F.89.08375.A20D75E5; Thu, 27 Feb 2020 14:20:26 +0000 (GMT) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200227142025eusmtip2be7b12824084939ef5c0885213189815~3SD4k2Y9L0655806558eusmtip2d; Thu, 27 Feb 2020 14:20:25 +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: Thu, 27 Feb 2020 17:16:16 +0300 Message-Id: <20200227141840.15835-5-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200227141840.15835-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrEIsWRmVeSWpSXmKPExsWy7djPc7paF8LjDA4ft7Bo3fGAxeLdp+1M FrMuNbFbHOvcw2KxteE/k8WfN6YWmy9OYnJg9/i1YCmrx+I9L5k83u+7yubRt2UVYwBLFJdN SmpOZllqkb5dAlfGpAf/mAt+8FU8nnSVpYFxOU8XIyeHhICJxIMrb9hAbCGBFYwSG09UdzFy AdlfGCV2behlhkh8ZpSYdVoEpuHFxL3MEEXLGSU2dIJ0gzhfgTpW3mMBqWIT0JA43TGPCSQh ItDOKLFqSgtYgllATeJDz3swW1jAUaLxzSJ2EJtFQFWi60orE4jNK2ApcfH1LnaIdfISqzcc ADuDU8BKYn7LO0aI+Hs2iT0HuSFsF4kX+y4zQdjCEq+Ob4HqlZH4v3M+VLxa4vum6+wgB0kI dDBK3FvUClVkL7Hl9TkgmwPoOE2J9bv0QUwJoNue/42BMPkkbrwVhLieT2LStunMEGFeiY42 IYgZShIHTl6CCktI/P3NA2F6SCzdZgEJnM2MElf/7mKawCg/C2HTAkbGVYziqaXFuempxUZ5 qeV6xYm5xaV56XrJ+bmbGIEp4fS/4192MO76k3SIUYCDUYmHd8GO8Dgh1sSy4srcQ4wSHMxK Irwbv4bGCfGmJFZWpRblxxeV5qQWH2KU5mBREuc1XvQyVkggPbEkNTs1tSC1CCbLxMEp1cDI G6RRt5n3/6KakyVcxf2Ny5q3ljzkPLPzwaWzBYtOPpu/rX6jn8MLicU6N1U/GzfWFno3ik/l 3PH5o88dgWe+/KJbHk34oD7p14VVijfMN71OD1MLm3f176Jj3BHXl2s+0dS2/RMZUNmU7Oxq Pevrtl5189uK8Wu2Hroo1L8yZ1uXUqCIl9hjJZbijERDLeai4kQA+4GqpQUDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrBLMWRmVeSWpSXmKPExsVy+t/xe7paF8LjDHadEbJo3fGAxeLdp+1M FrMuNbFbHOvcw2KxteE/k8WfN6YWmy9OYnJg9/i1YCmrx+I9L5k83u+7yubRt2UVYwBLlJ5N UX5pSapCRn5xia1StKGFkZ6hpYWekYmlnqGxeayVkamSvp1NSmpOZllqkb5dgl7GpAf/mAt+ 8FU8nnSVpYFxOU8XIyeHhICJxIuJe5m7GLk4hASWMkocm3yBrYuRAyghIfH6CTNEjbDEn2td bBA1nxklVr3/xwKSYBPQkDjdMY8JJCEi0M8osfHXb7AOZgE1iQ8978GKhAUcJRrfLGIHsVkE VCW6rrQygdi8ApYSF1/vYofYIC+xesMBsF5OASuJ+S3vGEFsIYF4iY/fz7NPYORbwMiwilEk tbQ4Nz232FCvODG3uDQvXS85P3cTIzBUtx37uXkH46WNwYcYBTgYlXh4F+wIjxNiTSwrrsw9 xCjBwawkwrvxa2icEG9KYmVValF+fFFpTmrxIUZToKMmMkuJJucD4yivJN7Q1NDcwtLQ3Njc 2MxCSZy3Q+BgjJBAemJJanZqakFqEUwfEwenVAOj8aTlr1SzLggclfviVJiZdEJq+ZRdkx/d 9HTlbttescns2KP+j/2O+bmLq06vadH8XxqY+od/7cHeO7nNdyY0Hn6flaOZejQ17cKcz4yf 2vd4yUot+W79aIZwvEvJu6fszDVLYqt2PDaVEa+y33flxfWNn+xF5kzcliApdE5mX70F7wLD g0qZSizFGYmGWsxFxYkAFeK9XWsCAAA= X-CMS-MailID: 20200227142026eucas1p2101b3ca97559c155fc34cfbdec8cbdbc X-Msg-Generator: CA X-RootMTR: 20200227142026eucas1p2101b3ca97559c155fc34cfbdec8cbdbc X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200227142026eucas1p2101b3ca97559c155fc34cfbdec8cbdbc References: <20200226075503.GA108150@intel.com> <20200227141840.15835-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v5 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=");