From patchwork Thu Apr 16 05:53:01 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 68617 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 21A97A0588; Thu, 16 Apr 2020 07:53:36 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0338E1DAA7; Thu, 16 Apr 2020 07:53:27 +0200 (CEST) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id E9DF91DAA3 for ; Thu, 16 Apr 2020 07:53:25 +0200 (CEST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200416055325euoutp02942ffd19a56dbf316cae431cf9793e40~GNwM6daUN0051900519euoutp02O for ; Thu, 16 Apr 2020 05:53:25 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200416055325euoutp02942ffd19a56dbf316cae431cf9793e40~GNwM6daUN0051900519euoutp02O DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1587016405; bh=lo9diQK9xZnPLjWitJIBPywoBkLYx5/NMNUPMegTgq8=; h=From:To:Subject:Date:In-Reply-To:References:From; b=BMWDanw+aGYRGrhU1CYq/dB2NJBuNk/4v/Inde2ApRVIY44VknnAmtPZKSfZX7d/g E9IBeEt+JgQa/QIWEfJK7lGuJHasR91wxGMdmHVV7baJQSpjnv60BjU5EACZuEmPjD 8rpZ/WxuKhQi84Uho6Gz7Gd26uVp4PjpDjii3M3E= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20200416055325eucas1p2390bb9c04800c91ef89f5573411169d6~GNwMlt3s31937219372eucas1p2I; Thu, 16 Apr 2020 05:53:25 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id 06.81.60698.5D2F79E5; Thu, 16 Apr 2020 06:53:25 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200416055324eucas1p10b466945b7290cc1e742dd594e95da23~GNwMQQteG2727327273eucas1p1k; Thu, 16 Apr 2020 05:53:24 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200416055324eusmtrp1422873d0d9e411d7a1851eddeaabda10~GNwMPpWs_2642726427eusmtrp1e; Thu, 16 Apr 2020 05:53:24 +0000 (GMT) X-AuditID: cbfec7f5-a29ff7000001ed1a-af-5e97f2d595a6 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id F1.6D.07950.4D2F79E5; Thu, 16 Apr 2020 06:53:24 +0100 (BST) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200416055324eusmtip232ffc405f2707d2fc0d33f68eac3f8d7~GNwLofM0I2513525135eusmtip2B; Thu, 16 Apr 2020 05:53:24 +0000 (GMT) From: Ivan Dyukov To: dev@dpdk.org, maxime.coquelin@redhat.com, i.dyukov@samsung.com, v.kuramshin@samsung.com, amorenoz@redhat.com, zhihong.wang@intel.com, xiaolong.ye@intel.com, mb@smartsharesystems.com Date: Thu, 16 Apr 2020 08:53:01 +0300 Message-Id: <20200416055309.19679-2-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200416055309.19679-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0WSXUhTcRjG+++cbcfl5DhHvmlazYo+1dBiSVSjkNGNQV1FmUsPKm1z7PiR diOVuZyK+AkWoZYfLHHi1ly5bAyc2sxSWRaURd04nS42rZwauc6ku9/7PM/7f+DlT2CCJTyK yFXmU2qlTC7i8HCTfeXtEae3KT3RtRouLjN/xcWL3n6WuHnyNldsv2/BxdV+JxI7Phq44jX3 MbFhopZ1hpD6W9rZ0scWF0vqGXRypNVGHZK+/qbFLrAv805mUfLcQkqdcCqDl/NdO8JWueHm w44avBQNR1SgEALIZHAumvEKxCMEZBcCv6OBywxLCBZ8bUHHh6Cx9wu+uWKoHEWM0Ymg7pWO zQzLCOo/e9iBFIfcDw7NI1aAheRLBPYxVYAjSAnUdOhQgHFyLxg8Bk6A+eQJmNObgg074Wmv FQtwCJkCVu0YK1AApIcDzxsrMSZ0DixV+iBHwNywkcvwDnDUVQYfugW/+qa5zLIGwUxbWTB0 Gozz4xtMEBh5APQvEhhZAgOzrn8ykGHwYSE8IGMbWGtqwhiZD5p7AiYtAuvoZFAGWF8NZWQp 2H3O4EksCFzl9awaFNv8v6sFIR2KpApoRTZFJymponhapqALlNnxmXmKPrTxFxx/hpfNaHDt ug2RBBKF8hNdjekCtqyQLlbYEBCYSMg3pzWlC/hZsuISSp13TV0gp2gbiiZwUSQ/qc11VUBm y/KpGxSlotSbLosIiSpFGlaakWvZsz7rD/sxqvfutmWoHjhTzI+nwkVD2+6udxaNz8RcivXF uUvSNBJtpnBMtOvQRPeUdTX64kjyp+0T01VDXWcJWlJ+p/vK4FTYSlyqZWvsuy2958cH+h1K 98/InmR3au3vsu7jDTHyNz3zOc/aW/UDQm+r/7Cp58m+9yKczpEdPYipadlfAxk1dwcDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrGLMWRmVeSWpSXmKPExsVy+t/xe7pXPk2PM/h02NSidccDFot3n7Yz Wcy61MRucaxzD4tF36+rjBanb25mt/jzxtRi88VJTA4cHr8WLGX1WLznJZPH+31X2Tz6tqxi 9Dj1qJs5gDVKz6Yov7QkVSEjv7jEVina0MJIz9DSQs/IxFLP0Ng81srIVEnfziYlNSezLLVI 3y5BL+Nx9wnWgjcSFXOWTWBpYDwu3MXIySEhYCKxueckYxcjF4eQwFJGiWWvnjJ3MXIAJSQk Xj9hhqgRlvhzrYsNouYzo8Svu29YQBJsAhoSpzvmMYEkRASOM0r0zvrPBJIQFnCUmLBsFSOI zSKgKrH5/WY2EJtXwFLi1fptLBBT5SVWbzgAtoFTwEriQPcZsF4hgQyJxo5jTBMYeRcwMqxi FEktLc5Nzy020itOzC0uzUvXS87P3cQIDNNtx35u2cHY9S74EKMAB6MSD2/H62lxQqyJZcWV uYcYJTiYlUR4d/hPjxPiTUmsrEotyo8vKs1JLT7EaAp01ERmKdHkfGAM5ZXEG5oamltYGpob mxubWSiJ83YIHIwREkhPLEnNTk0tSC2C6WPi4JRqYJxxXuy6j/zzHecXaSdMfpPdV+L16GmI iZCBnPWeY4VRN9ZZXLzhsOL2p+T/gZJmMaE2OfJGi52vyXVrzf2ZE699Z3UrY/OnvuTjrwLt T8xbef+hCEOjzhm7Xaf92d6Jm2rNOJN5wEFijueKnYJtGqmCNZy5Qu915zXYNaeoXTyv2N7P tFqlV4mlOCPRUIu5qDgRANnAuAdpAgAA X-CMS-MailID: 20200416055324eucas1p10b466945b7290cc1e742dd594e95da23 X-Msg-Generator: CA X-RootMTR: 20200416055324eucas1p10b466945b7290cc1e742dd594e95da23 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200416055324eucas1p10b466945b7290cc1e742dd594e95da23 References: <20191212085012.9170-1-i.dyukov@samsung.com> <20200416055309.19679-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v11 1/6] net/virtio: replace default virtio speed X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This patch set speed to unknown Signed-off-by: Ivan Dyukov --- drivers/net/virtio/virtio_ethdev.c | 4 ++-- lib/librte_ethdev/rte_ethdev.h | 27 ++++++++++++++------------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c index f9d0ea70d..e98a76ea2 100644 --- a/drivers/net/virtio/virtio_ethdev.c +++ b/drivers/net/virtio/virtio_ethdev.c @@ -2371,7 +2371,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 = ETH_SPEED_NUM_UNKNOWN; link.link_autoneg = ETH_LINK_FIXED; if (!hw->started) { @@ -2427,7 +2427,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 = ETH_LINK_SPEED_AUTONEG; /* fake value */ dev_info->max_rx_queues = RTE_MIN(hw->max_queue_pairs, VIRTIO_MAX_RX_QUEUES); diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h index d1a593ad1..a15ea572e 100644 --- a/lib/librte_ethdev/rte_ethdev.h +++ b/lib/librte_ethdev/rte_ethdev.h @@ -287,19 +287,20 @@ struct rte_eth_stats { /** * Ethernet numeric link speeds in Mbps */ -#define ETH_SPEED_NUM_NONE 0 /**< Not defined */ -#define ETH_SPEED_NUM_10M 10 /**< 10 Mbps */ -#define ETH_SPEED_NUM_100M 100 /**< 100 Mbps */ -#define ETH_SPEED_NUM_1G 1000 /**< 1 Gbps */ -#define ETH_SPEED_NUM_2_5G 2500 /**< 2.5 Gbps */ -#define ETH_SPEED_NUM_5G 5000 /**< 5 Gbps */ -#define ETH_SPEED_NUM_10G 10000 /**< 10 Gbps */ -#define ETH_SPEED_NUM_20G 20000 /**< 20 Gbps */ -#define ETH_SPEED_NUM_25G 25000 /**< 25 Gbps */ -#define ETH_SPEED_NUM_40G 40000 /**< 40 Gbps */ -#define ETH_SPEED_NUM_50G 50000 /**< 50 Gbps */ -#define ETH_SPEED_NUM_56G 56000 /**< 56 Gbps */ -#define ETH_SPEED_NUM_100G 100000 /**< 100 Gbps */ +#define ETH_SPEED_NUM_NONE 0 /**< Not defined */ +#define ETH_SPEED_NUM_10M 10 /**< 10 Mbps */ +#define ETH_SPEED_NUM_100M 100 /**< 100 Mbps */ +#define ETH_SPEED_NUM_1G 1000 /**< 1 Gbps */ +#define ETH_SPEED_NUM_2_5G 2500 /**< 2.5 Gbps */ +#define ETH_SPEED_NUM_5G 5000 /**< 5 Gbps */ +#define ETH_SPEED_NUM_10G 10000 /**< 10 Gbps */ +#define ETH_SPEED_NUM_20G 20000 /**< 20 Gbps */ +#define ETH_SPEED_NUM_25G 25000 /**< 25 Gbps */ +#define ETH_SPEED_NUM_40G 40000 /**< 40 Gbps */ +#define ETH_SPEED_NUM_50G 50000 /**< 50 Gbps */ +#define ETH_SPEED_NUM_56G 56000 /**< 56 Gbps */ +#define ETH_SPEED_NUM_100G 100000 /**< 100 Gbps */ +#define ETH_SPEED_NUM_UNKNOWN 0xffffffff /**< Unknown */ /** * A structure used to retrieve link-level information of an Ethernet port. From patchwork Thu Apr 16 05:53: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: 68618 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 98C04A0588; Thu, 16 Apr 2020 07:53:45 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 570281DAA3; Thu, 16 Apr 2020 07:53:30 +0200 (CEST) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 9CA841DAAF for ; Thu, 16 Apr 2020 07:53:28 +0200 (CEST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200416055327euoutp0177efd6473ad97bcb1432400c1cf45205~GNwO2uDXU2038620386euoutp01h for ; Thu, 16 Apr 2020 05:53:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200416055327euoutp0177efd6473ad97bcb1432400c1cf45205~GNwO2uDXU2038620386euoutp01h DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1587016407; bh=K7Mh/Yk74ODK2aSKPKJtcnVsJ6EOdbU5DTdVk7Usf7A=; h=From:To:Subject:Date:In-Reply-To:References:From; b=t2iQ/sZpzczOWFAYdo6HtM7r/wisykRZ1nH0HiN2h6GavKBfFBriQlOkjlmh4c4FI QeLTuhYEq0Fa7S4jG8l5ZA0yiiXXr3l/ahQUIwafC5kdH3/mRCvJKvlJmkxYYba061 XuS0/yp2Jaw8f6SCYFZMbAdWoCxXn4ejoYElI5PA= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200416055327eucas1p12f9657076ef50f370c343acb5b3de8bb~GNwOZXXl51679516795eucas1p10; Thu, 16 Apr 2020 05:53:27 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id 8D.91.61286.7D2F79E5; Thu, 16 Apr 2020 06:53:27 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200416055326eucas1p266592b624ab220d6b259210b5e413e01~GNwOB62CF1938419384eucas1p2P; Thu, 16 Apr 2020 05:53:26 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200416055326eusmtrp18bfeabf934e713dbb3526035606ac399~GNwOBRj1Z2642726427eusmtrp1f; Thu, 16 Apr 2020 05:53:26 +0000 (GMT) X-AuditID: cbfec7f2-ef1ff7000001ef66-19-5e97f2d78f41 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 81.FE.08375.6D2F79E5; Thu, 16 Apr 2020 06:53:26 +0100 (BST) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200416055326eusmtip24677ce1fd5c03a3991ddff3a2623df77~GNwNcf4UA2328223282eusmtip29; Thu, 16 Apr 2020 05:53:26 +0000 (GMT) From: Ivan Dyukov To: dev@dpdk.org, maxime.coquelin@redhat.com, i.dyukov@samsung.com, v.kuramshin@samsung.com, amorenoz@redhat.com, zhihong.wang@intel.com, xiaolong.ye@intel.com, mb@smartsharesystems.com Date: Thu, 16 Apr 2020 08:53:02 +0300 Message-Id: <20200416055309.19679-3-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200416055309.19679-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrMIsWRmVeSWpSXmKPExsWy7djP87rXP02PM9j8k9+idccDFot3n7Yz Wcy61MRucaxzD4tF36+rjBanb25mt/jzxtRi88VJTA4cHr8WLGX1WLznJZPH+31X2Tz6tqxi 9Dj1qJs5gDWKyyYlNSezLLVI3y6BK+PsiSnMBcsFK9Zv38XUwNjI18XIySEhYCLx4OYrti5G Lg4hgRWMEsu/r2CHcL4wSpxfe4wJwvnMKLFsSjMzTMvEiVtZIBLLGSXW/uqCqvrKKDHt+BWw KjYBDYnTHfOYQGwRgb2MEsfOFIDYwgK2EjPuvGEHsVkEVCXWPV4KVs8rYClxZc9vJogN8hKr NxwAi3MKWEkc6D4DtkBC4D2bxNtZq4GaOYAcF4mHl7gg6oUlXh3fwg5hy0icntzDAmFXS3zf dJ0doreDUeLeolaoInuJLa/Pgc1hFtCUWL9LHyLsKLFu6QVWiPF8EjfeCoKEmYHMSdumM0OE eSU62oQgqpUkDpy8BBWWkPj7mwci7CFxbOZ2aCDuYZRov3yfZQKj3CyEXQsYGVcxiqeWFuem pxYb5qWW6xUn5haX5qXrJefnbmIEJoXT/45/2sH49VLSIUYBDkYlHt6O19PihFgTy4orcw8x SnAwK4nw7vCfHifEm5JYWZValB9fVJqTWnyIUZqDRUmc13jRy1ghgfTEktTs1NSC1CKYLBMH p1QD4269dfk/twf7PZvvET5RsXVi1pIbQd/6k6VulZVrGwb9Wzh30r98/v/OyltLdkRI1/dJ ld69prCM/9zLJbzaHC0rNqr4qrhPsbc4pXjgZYYfP8cBvaKyb4lfFOscfxzWnF4e294S+kVG 6OfvX5PypXPPR5j9uj7r8bq5tob5dtPd1++xehyYqcRSnJFoqMVcVJwIAO24rd8GAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrGLMWRmVeSWpSXmKPExsVy+t/xe7rXPk2PM7g+yciidccDFot3n7Yz Wcy61MRucaxzD4tF36+rjBanb25mt/jzxtRi88VJTA4cHr8WLGX1WLznJZPH+31X2Tz6tqxi 9Dj1qJs5gDVKz6Yov7QkVSEjv7jEVina0MJIz9DSQs/IxFLP0Ng81srIVEnfziYlNSezLLVI 3y5BL+PsiSnMBcsFK9Zv38XUwNjI18XIySEhYCIxceJWli5GLg4hgaWMEps2LmbuYuQASkhI vH7CDFEjLPHnWhcbRM1nRokry2eBJdgENCROd8xjAkmICBxnlOid9Z8JJCEsYCsx484bdhCb RUBVYt3jpWANvAKWElf2/GaCmCovsXrDAbA4p4CVxIHuM2BxIYEMicaOY0wTGHkXMDKsYhRJ LS3OTc8tNtQrTswtLs1L10vOz93ECAzTbcd+bt7BeGlj8CFGAQ5GJR7ejtfT4oRYE8uKK3MP MUpwMCuJ8O7wnx4nxJuSWFmVWpQfX1Sak1p8iNEU6KiJzFKiyfnAGMoriTc0NTS3sDQ0NzY3 NrNQEuftEDgYIySQnliSmp2aWpBaBNPHxMEp1cAo/nKXvE6cmUzbguYNS/bo/MxO6vnoHNr4 4GXbBHZZwaZMi1nMDKxZXnvffTR8xlL6TuHMIoZ/Mb9ZTxbddc7f9XuqsHrDymc/JnPP2n1/ leAq7nML+Q5tLsyam3Hr3F32iTb8sd90uSSnL7patl5hy/3yL+0quZqySabq7T6fwn/fVl0l eTBdiaU4I9FQi7moOBEA2KaWTGkCAAA= X-CMS-MailID: 20200416055326eucas1p266592b624ab220d6b259210b5e413e01 X-Msg-Generator: CA X-RootMTR: 20200416055326eucas1p266592b624ab220d6b259210b5e413e01 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200416055326eucas1p266592b624ab220d6b259210b5e413e01 References: <20191212085012.9170-1-i.dyukov@samsung.com> <20200416055309.19679-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v11 2/6] 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 e98a76ea2..60195ab3c 100644 --- a/drivers/net/virtio/virtio_ethdev.c +++ b/drivers/net/virtio/virtio_ethdev.c @@ -1957,16 +1957,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"; @@ -1982,12 +1984,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); @@ -1997,8 +2003,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 Thu Apr 16 05:53: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: 68619 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 74AD0A0588; Thu, 16 Apr 2020 07:53:54 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0A3E91DAB6; Thu, 16 Apr 2020 07:53:32 +0200 (CEST) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 5E7ED1DAAF for ; Thu, 16 Apr 2020 07:53:29 +0200 (CEST) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200416055329euoutp01a387460e2d2be0d89812c10b4b15ee36~GNwQJJ0b22038420384euoutp01e for ; Thu, 16 Apr 2020 05:53:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200416055329euoutp01a387460e2d2be0d89812c10b4b15ee36~GNwQJJ0b22038420384euoutp01e DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1587016409; bh=/Sx5PLXWzYimOAlkENkZY4+K1nGA7XAmiXUi1RTi9wM=; h=From:To:Subject:Date:In-Reply-To:References:From; b=kYxxC59KBVPooMqH3lYQg63C9hfDnHdyPTfSgzUMMFfkSBoGifdwX1PaYhZb+a/FZ kQjMIWRYzcyLGiBK4ilnYFO7/hrccJyoRXNCiCHcNpEnqT1j8E+pSF6wEwvy8zShvY C13qErFrg25YCQCJWEAb1TvZwtfe9RhgF32SjmC4= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20200416055328eucas1p2df8797ea8d01f120abd1ecfadf86b274~GNwP1_52n1557215572eucas1p2V; Thu, 16 Apr 2020 05:53:28 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id 54.85.60679.8D2F79E5; Thu, 16 Apr 2020 06:53:28 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200416055328eucas1p24f25a424be76659170277b7362c8d700~GNwPgsS291938419384eucas1p2Q; Thu, 16 Apr 2020 05:53:28 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200416055328eusmtrp1f424aa31fd04a1b4daab1c62d3d4f2ea~GNwPgDgli2642726427eusmtrp1i; Thu, 16 Apr 2020 05:53:28 +0000 (GMT) X-AuditID: cbfec7f4-0cbff7000001ed07-47-5e97f2d8d521 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id B2.6D.07950.8D2F79E5; Thu, 16 Apr 2020 06:53:28 +0100 (BST) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200416055327eusmtip254535fe34259774eba0feb9913e5a783~GNwO5_nQm2636026360eusmtip2r; Thu, 16 Apr 2020 05:53:27 +0000 (GMT) From: Ivan Dyukov To: dev@dpdk.org, maxime.coquelin@redhat.com, i.dyukov@samsung.com, v.kuramshin@samsung.com, amorenoz@redhat.com, zhihong.wang@intel.com, xiaolong.ye@intel.com, mb@smartsharesystems.com Date: Thu, 16 Apr 2020 08:53:03 +0300 Message-Id: <20200416055309.19679-4-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200416055309.19679-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrEIsWRmVeSWpSXmKPExsWy7djPc7o3Pk2PM/jbYGDRuuMBi8W7T9uZ LGZdamK3ONa5h8Wi79dVRovTNzezW/x5Y2qx+eIkJgcOj18LlrJ6LN7zksnj/b6rbB59W1Yx epx61M0cwBrFZZOSmpNZllqkb5fAlTFz3S3mgsXmFXNP/WFqYHyr08XIySEhYCLx+34Dexcj F4eQwApGiRtH5rJAOF8YJe5fnQ3lfGaUWNC1lxWm5eGRT8wgtpDAckaJ9jVuEEVfgdrnvWUB SbAJaEic7pjHBGKLCOxllDh2pgDEFhawkvg5eSM7iM0ioCox8f8isBpeAUuJprb/TBAL5CVW bzgAtoATqP5A9xmo+Hs2iQd3eSBsF4kVnZ+ZIWxhiVfHt7BD2DISpyf3sEDY1RLfN10H+01C oINR4t6iVqgie4ktr88B2RwczAKaEut36UOEHSV2TPzOBhKWEOCTuPFWECTMDGRO2jadGSLM K9HRJgRRrSRx4OQlqLCExN/fUId5SGy58h8aoHsYJR63nWaZwCg3C2HXAkbGVYziqaXFuemp xUZ5qeV6xYm5xaV56XrJ+bmbGIEp4fS/4192MO76k3SIUYCDUYmH1+DltDgh1sSy4srcQ4wS HMxKIrw7/KfHCfGmJFZWpRblxxeV5qQWH2KU5mBREuc1XvQyVkggPbEkNTs1tSC1CCbLxMEp 1cDI+uHdeT2P+UX/c5cfu/RG9Mz8VVkfC8/HiNw+vE5Ql13jjeP5vyKqoS8YDPM/R745LyHp snOLiEiDnrOCfkujutwC49mf351eyFzyUylGTkrI+d3Vdx4nDzT0aP9objy7QlzkXZHGDXMR u0dHqn96X1BaJi/16k/fo+ZSN77lH5b5rjB/yNykxFKckWioxVxUnAgAs2QzJwUDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrGLMWRmVeSWpSXmKPExsVy+t/xe7o3Pk2PMzjcJWHRuuMBi8W7T9uZ LGZdamK3ONa5h8Wi79dVRovTNzezW/x5Y2qx+eIkJgcOj18LlrJ6LN7zksnj/b6rbB59W1Yx epx61M0cwBqlZ1OUX1qSqpCRX1xiqxRtaGGkZ2hpoWdkYqlnaGwea2VkqqRvZ5OSmpNZllqk b5eglzFz3S3mgsXmFXNP/WFqYHyr08XIySEhYCLx8Mgn5i5GLg4hgaWMEtPXb2PrYuQASkhI vH7CDFEjLPHnWhcbRM1nRom7J86CJdgENCROd8xjAkmICBxnlOid9Z8JJCEsYCXxc/JGdhCb RUBVYuL/RWBxXgFLiaY2iBoJAXmJ1RsOgA3iBKo/0H0GLC4kkCHR2HGMaQIj7wJGhlWMIqml xbnpucVGesWJucWleel6yfm5mxiBYbrt2M8tOxi73gUfYhTgYFTi4e14PS1OiDWxrLgy9xCj BAezkgjvDv/pcUK8KYmVValF+fFFpTmpxYcYTYGOmsgsJZqcD4yhvJJ4Q1NDcwtLQ3Njc2Mz CyVx3g6BgzFCAumJJanZqakFqUUwfUwcnFINjMH3+Kcuk4kLfpYU9O1pKHdUbU/oR/4VpxS8 T9ZnzVOrZg/7d/Wi9C9Grv1H9+8serEsv1rByEZrlkVV91mzbafts1c8rDkYZn/nU+My3VUz jqzaYvspqWXBl5QD+nsfrl5bfS49Mb9QMmJfcWjPnhtOyhfUnpyN2fFXQ2Gq/eJ1zlKCS/5E GSqxFGckGmoxFxUnAgCW4Z8kaQIAAA== X-CMS-MailID: 20200416055328eucas1p24f25a424be76659170277b7362c8d700 X-Msg-Generator: CA X-RootMTR: 20200416055328eucas1p24f25a424be76659170277b7362c8d700 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200416055328eucas1p24f25a424be76659170277b7362c8d700 References: <20191212085012.9170-1-i.dyukov@samsung.com> <20200416055309.19679-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v11 3/6] 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" Default value of link speed is 0xffffffff (Unknown) 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 | 107 ++++++++++++++++++++++++----- drivers/net/virtio/virtio_pci.h | 1 + 3 files changed, 99 insertions(+), 16 deletions(-) diff --git a/doc/guides/nics/virtio.rst b/doc/guides/nics/virtio.rst index d1f5fb898..55bc6a267 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, in units of 1Mb. + Link speed is a part of link status structure. It could be requested + by application using rte_eth_link_get_nowait function. + (Default: 0xffffffff (Unknown)) + 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 60195ab3c..306241d37 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_UNKNOWN; 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. @@ -1967,33 +1976,100 @@ static int vdpa_check_handler(__rte_unused const char *key, return 0; } + +static uint32_t +virtio_dev_speed_capa_get(uint32_t speed) +{ + struct speed_caps { + uint32_t min_speed; + uint32_t speed_capa; + }; + struct speed_caps caps[] = { + {ETH_SPEED_NUM_10M, ETH_LINK_SPEED_10M}, + {ETH_SPEED_NUM_100M, ETH_LINK_SPEED_100M}, + {ETH_SPEED_NUM_1G, ETH_LINK_SPEED_1G}, + {ETH_SPEED_NUM_2_5G, ETH_LINK_SPEED_2_5G}, + {ETH_SPEED_NUM_5G, ETH_LINK_SPEED_5G}, + {ETH_SPEED_NUM_10G, ETH_LINK_SPEED_10G}, + {ETH_SPEED_NUM_20G, ETH_LINK_SPEED_20G}, + {ETH_SPEED_NUM_25G, ETH_LINK_SPEED_25G}, + {ETH_SPEED_NUM_40G, ETH_LINK_SPEED_40G}, + {ETH_SPEED_NUM_50G, ETH_LINK_SPEED_50G}, + {ETH_SPEED_NUM_56G, ETH_LINK_SPEED_56G}, + {ETH_SPEED_NUM_100G, ETH_LINK_SPEED_100G} + }; + const uint32_t caps_size = sizeof(caps) / sizeof(struct speed_caps); + uint32_t speed_capa = ETH_LINK_SPEED_AUTONEG; + if (speed != ETH_SPEED_NUM_UNKNOWN) { + /* find maximum suitable speed capability */ + for (uint32_t i = 0; i < caps_size; i++) { + if (speed >= caps[i].min_speed) + speed_capa = caps[i].speed_capa; + } + } + return speed_capa; +} + + +#define VIRTIO_ARG_SPEED "speed" +#define VIRTIO_ARG_VDPA "vdpa" + + static int -virtio_dev_devargs_parse(struct rte_devargs *devargs, int *vdpa) +link_speed_handler(const char *key __rte_unused, + const char *value, void *ret_val) +{ + uint32_t val; + if (!value || !ret_val) + return -EINVAL; + errno = 0; + val = strtoul(value, NULL, 0); + /* validate input */ + if (errno != 0) + return -EINVAL; + *(uint32_t *)ret_val = val; + + return 0; +} + + +static int +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); @@ -2006,7 +2082,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 +2461,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_UNKNOWN; + link.link_speed = hw->speed; link.link_autoneg = ETH_LINK_FIXED; if (!hw->started) { @@ -2440,8 +2516,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_AUTONEG; /* 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 7433d2f08..ed98e11c3 100644 --- a/drivers/net/virtio/virtio_pci.h +++ b/drivers/net/virtio/virtio_pci.h @@ -259,6 +259,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 Apr 16 05:53: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: 68620 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 A3E03A0588; Thu, 16 Apr 2020 07:54:05 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9610F1DAC0; Thu, 16 Apr 2020 07:53:33 +0200 (CEST) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 694E31DAB4 for ; Thu, 16 Apr 2020 07:53:31 +0200 (CEST) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200416055330euoutp014b736a281fc6f11cf5666802d6f05ba7~GNwRsUL0o2272122721euoutp01z for ; Thu, 16 Apr 2020 05:53:30 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200416055330euoutp014b736a281fc6f11cf5666802d6f05ba7~GNwRsUL0o2272122721euoutp01z DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1587016410; bh=+M3dS4Qpnb55Aqv8xspVBGIA7o3HHeQFPvOxmQ3OOrM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BBHDbG1o5QZIDFRM5DS6RIk291k3ivbW7kb8LGeHkjQHuzI75hoe8fg5U8oLO866y u3Gz428bwOJdighzU+gvzzU0kxU6/aY3qkiOjz4+QeVbFd0OhQMt/ph3Q4RDPtcjy6 w4Iz5gmFeiQqhyQiCnDE9I3eWb3PAPFeGAT/5xkY= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200416055330eucas1p18423d78e1ef32118cbef9b5d8163a8e3~GNwRVWcp02727327273eucas1p1m; Thu, 16 Apr 2020 05:53:30 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id E4.85.60679.AD2F79E5; Thu, 16 Apr 2020 06:53:30 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200416055330eucas1p120bee1af98e108e09dd7515faf094c73~GNwRAt9kO2727227272eucas1p18; Thu, 16 Apr 2020 05:53:30 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200416055330eusmtrp1dcccfa72fe6b87b900b29d5ec9845df8~GNwRAEdaH2642726427eusmtrp1j; Thu, 16 Apr 2020 05:53:30 +0000 (GMT) X-AuditID: cbfec7f4-0e5ff7000001ed07-4a-5e97f2da4254 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 92.FE.08375.9D2F79E5; Thu, 16 Apr 2020 06:53:30 +0100 (BST) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200416055329eusmtip2c4d6e5c5b025b33be0e6d169634b50a9~GNwQT79Er2328223282eusmtip2_; Thu, 16 Apr 2020 05:53:29 +0000 (GMT) From: Ivan Dyukov To: dev@dpdk.org, maxime.coquelin@redhat.com, i.dyukov@samsung.com, v.kuramshin@samsung.com, amorenoz@redhat.com, zhihong.wang@intel.com, xiaolong.ye@intel.com, mb@smartsharesystems.com Cc: stable@dpdk.org Date: Thu, 16 Apr 2020 08:53:04 +0300 Message-Id: <20200416055309.19679-5-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200416055309.19679-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpileLIzCtJLcpLzFFi42LZduznOd1bn6bHGXy9ImbRuuMBi8W7T9uZ LGZdamK3ONa5h8Wi79dVRot/HX/YLU7f3Mxu8eeNqcXmi5OYHDg9fi1YyuqxeM9LJo/3+66y efRtWcXocepRN3MAaxSXTUpqTmZZapG+XQJXxrYjbgU7OCv2N1xlbWB8yN7FyMEhIWAicWyF UhcjF4eQwApGiRuT/jBDOF8YJVZu/M0G4XxmlNhz9xxTFyMnWMe/r4dYIBLLGSUurHnHCuF8 ZZS49eEMM0gVm4CGxOmOeWAdIgJ7GSWOnSkAsZkFhCXaj1xjAbGFBWwlTm/6zAZiswioSvT8 Wg1m8wpYSjzvXgW1TV5i9YYDYDM5BawkDnSfYQJZJiHwm01i8uFbrBBFLhLdd7exQ9jCEq+O b4GyZSROT+5hgbCrJb5vus4O0dzBKHFvUStUkb3EltfnwKHBLKApsX6XPkTYUeLexKeMkEDi k7jxVhDifj6JSdumM0OEeSU62oQgqpUkDpy8BBWWkPj7mwfC9JDYvq4GEjp7gKG7eS7jBEb5 WQirFjAyrmIUTy0tzk1PLTbKSy3XK07MLS7NS9dLzs/dxAhMGaf/Hf+yg3HXn6RDjAIcjEo8 vAYvp8UJsSaWFVfmHmKU4GBWEuHd4T89Tog3JbGyKrUoP76oNCe1+BCjNAeLkjiv8aKXsUIC 6YklqdmpqQWpRTBZJg5OqQbGtnnTEyKqDv3YGTPf1/qlZ2ZH8L3rMRdi9hTd610sGWG3o8Ri 3sZLQuXvw2r37E67dV1b+lWldqHMxUksq4qs8iZ99Wtc0LgkXP+/hsTHCVbeGvnOIYpGF5qP rJD5rDTx3aPna5g9l8ppyPiJvPV5XXpK4ktdmbXC/FVPj1xeYcrmm2h2xGaJEktxRqKhFnNR cSIAg7X3lxUDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrCLMWRmVeSWpSXmKPExsVy+t/xe7q3Pk2PM/gWZNG64wGLxbtP25ks Zl1qYrc41rmHxaLv11VGi38df9gtTt/czG7x542pxeaLk5gcOD1+LVjK6rF4z0smj/f7rrJ5 9G1Zxehx6lE3cwBrlJ5NUX5pSapCRn5xia1StKGFkZ6hpYWekYmlnqGxeayVkamSvp1NSmpO Zllqkb5dgl7GtiNuBTs4K/Y3XGVtYHzI3sXIySEhYCLx7+shFhBbSGApo8SrG9ldjBxAcQmJ 10+YIUqEJf5c62LrYuQCKvnMKHH920ZGkASbgIbE6Y55TCAJEYHjjBK9s/4zgSSYgTraj1wD GyosYCtxetNnNhCbRUBVoufXajCbV8BS4nn3KiaIDfISqzccANvGKWAlcaD7DBPEQRkSjR3H mCYw8i1gZFjFKJJaWpybnltsqFecmFtcmpeul5yfu4kRGMLbjv3cvIPx0sbgQ4wCHIxKPLwd r6fFCbEmlhVX5h5ilOBgVhLh3eE/PU6INyWxsiq1KD++qDQntfgQoynQUROZpUST84HxlVcS b2hqaG5haWhubG5sZqEkztshcDBGSCA9sSQ1OzW1ILUIpo+Jg1OqgVFOS4qhYzlnm5LPnJy3 Nc9OaF04aKHwqi9NOsjZda/jn2VTNk4p4ojq0lkn16mR9uDjikkVeoyzRLgiXmbs1hbbm+lo d37+jfBf9u5/vIKazi76cOZs1M56HtlJnZ9kttiV7V5afrLL+atyi61/sH1boR1TpOXFFQa+ nxZI7enJfvn20YWdm5RYijMSDbWYi4oTAY4COOd3AgAA X-CMS-MailID: 20200416055330eucas1p120bee1af98e108e09dd7515faf094c73 X-Msg-Generator: CA X-RootMTR: 20200416055330eucas1p120bee1af98e108e09dd7515faf094c73 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200416055330eucas1p120bee1af98e108e09dd7515faf094c73 References: <20191212085012.9170-1-i.dyukov@samsung.com> <20200416055309.19679-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v11 4/6] 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. Fixes: ce2eabdd43ec ("net/virtio-user: add virtual device") Cc: stable@dpdk.org 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 e61af4068..a79f68a36 100644 --- a/drivers/net/virtio/virtio_user_ethdev.c +++ b/drivers/net/virtio/virtio_user_ethdev.c @@ -477,12 +477,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 Apr 16 05:53: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: 68621 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 1A5BBA0588; Thu, 16 Apr 2020 07:54:15 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 000C81DAC8; Thu, 16 Apr 2020 07:53:34 +0200 (CEST) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 9D3291DAB9 for ; Thu, 16 Apr 2020 07:53:32 +0200 (CEST) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200416055332euoutp01b0b7e977f7e944ae52b1b94140ff9a5b~GNwTMe6Nc2272122721euoutp010 for ; Thu, 16 Apr 2020 05:53:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200416055332euoutp01b0b7e977f7e944ae52b1b94140ff9a5b~GNwTMe6Nc2272122721euoutp010 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1587016412; bh=CIdot3APO0NSk1er3ZveEoNqw+ETjJewupEppv9a4hA=; h=From:To:Subject:Date:In-Reply-To:References:From; b=hziFXW8XuJqc/6t6pRGWIc1Y9OGe/PGX4xiPBRdkjSpMe5yQWyfFLYrSvSG943GDm 2TtcmfgSKuSRO5FwT0Dk4rRtwmKvuWC+IixX1+YWbMURqyAR18bVCXOE22icwVUciG +8VBgjoGhCBSsl+U2SFO1O6zLo5ARX0cSHuVABCU= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200416055332eucas1p19b7ce00c6dea6e87d76604db7d334e49~GNwS6tmr11378713787eucas1p1T; Thu, 16 Apr 2020 05:53:32 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id 16.85.60679.CD2F79E5; Thu, 16 Apr 2020 06:53:32 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200416055331eucas1p1870fa45cd2d6876cff472763986dfd4e~GNwSaGPhZ2727327273eucas1p1o; Thu, 16 Apr 2020 05:53:31 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200416055331eusmtrp1013433b930f42604e6b0802ea120e6e7~GNwSZgMen2731027310eusmtrp1D; Thu, 16 Apr 2020 05:53:31 +0000 (GMT) X-AuditID: cbfec7f4-0cbff7000001ed07-4f-5e97f2dc8b6e Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 53.FE.08375.BD2F79E5; Thu, 16 Apr 2020 06:53:31 +0100 (BST) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200416055330eusmtip25d8e8a33c238eb26e99001a653396bb8~GNwRxjApl2529525295eusmtip2Y; Thu, 16 Apr 2020 05:53:30 +0000 (GMT) From: Ivan Dyukov To: dev@dpdk.org, maxime.coquelin@redhat.com, i.dyukov@samsung.com, v.kuramshin@samsung.com, amorenoz@redhat.com, zhihong.wang@intel.com, xiaolong.ye@intel.com, mb@smartsharesystems.com Date: Thu, 16 Apr 2020 08:53:05 +0300 Message-Id: <20200416055309.19679-6-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200416055309.19679-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrCIsWRmVeSWpSXmKPExsWy7djPc7p3Pk2PM5jcx27RuuMBi8W7T9uZ LGZdamK3ONa5h8Wi79dVRovTNzezW/x5Y2qx+eIkJgcOj18LlrJ6LN7zksnj/b6rbB59W1Yx epx61M0cwBrFZZOSmpNZllqkb5fAlfFwSz97wST+iueTTzA2MO7l6WLk5JAQMJHYee8VYxcj F4eQwApGiSv7L7JAOF8YJT7PeA/lfGaUuP/3CDNMy/Zz11ghEsuBElvb2SGcr0Ate64wglSx CWhInO6YxwRiiwjsZZQ4dqYAxBYWcJL4sfIHO4jNIqAqsejnETCbV8BSYknvdqgN8hKrNxwA szkFrCQOdJ9hAlkgIfCaTeLh3plQRS4SF79MYYWwhSVeHd/CDmHLSJye3MMCYVdLfN90nR2i uYNR4t6iVqgie4ktr88B2RwczAKaEut36UOEHSU6HtxjAQlLCPBJ3HgrCBJmBjInbZvODBHm lehoE4KoVpI4cPISVFhC4u9vaJB6SMx538AGCZI9jBJ3155lnsAoNwth1wJGxlWM4qmlxbnp qcVGeanlesWJucWleel6yfm5mxiBaeH0v+NfdjDu+pN0iFGAg1GJh9fg5bQ4IdbEsuLK3EOM EhzMSiK8O/ynxwnxpiRWVqUW5ccXleakFh9ilOZgURLnNV70MlZIID2xJDU7NbUgtQgmy8TB KdXAWJBuyyq2T5VhV2H2kvrQilk5fy6Vfc/+5LqXaZHArE7HTeIWXRdZXt/0Uy3UmXavPJch TfKm3tsshZ1tV54JzbQL/R3bf8fuxmub9Xt2PVXdkSPG3Cq3OqzEY8XvZqVzB79VXFWb4/as YeXxLLb9X4Vafu0JefK7IOihQlz/fys5Jm2TUxtrlFiKMxINtZiLihMBLdBbIAcDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrGLMWRmVeSWpSXmKPExsVy+t/xe7q3P02PM9i9WdaidccDFot3n7Yz Wcy61MRucaxzD4tF36+rjBanb25mt/jzxtRi88VJTA4cHr8WLGX1WLznJZPH+31X2Tz6tqxi 9Dj1qJs5gDVKz6Yov7QkVSEjv7jEVina0MJIz9DSQs/IxFLP0Ng81srIVEnfziYlNSezLLVI 3y5BL+Phln72gkn8Fc8nn2BsYNzL08XIySEhYCKx/dw11i5GLg4hgaWMEh9etgE5HEAJCYnX T5ghaoQl/lzrYoOo+cwo8fhvGyNIgk1AQ+J0xzwmkISIwHFGid5Z/5lAEsICThI/Vv5gB7FZ BFQlFv08AmbzClhKLOndDjVVXmL1hgNgNqeAlcSB7jNgvUICGRKNHceYJjDyLmBkWMUoklpa nJueW2yoV5yYW1yal66XnJ+7iREYptuO/dy8g/HSxuBDjAIcjEo8vB2vp8UJsSaWFVfmHmKU 4GBWEuHd4T89Tog3JbGyKrUoP76oNCe1+BCjKdBRE5mlRJPzgTGUVxJvaGpobmFpaG5sbmxm oSTO2yFwMEZIID2xJDU7NbUgtQimj4mDU6qB0WH/n2eRmae3peSIX+34mmkwU+LhhCgONtYI k/7oN3urJqc2Ct/kOKtvs+9G/Z9/7ziCX299ZW3ZYGu3/M5T369CKZkTGfffqXhkdCH5rfu7 He7/9JR7jZrq0/pV+S5VOa63fdUeK/jOoXx21rXJ7OqTC6PtHRWWK2meN55ZX/q28r/j0041 JZbijERDLeai4kQAExaVwGkCAAA= X-CMS-MailID: 20200416055331eucas1p1870fa45cd2d6876cff472763986dfd4e X-Msg-Generator: CA X-RootMTR: 20200416055331eucas1p1870fa45cd2d6876cff472763986dfd4e X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200416055331eucas1p1870fa45cd2d6876cff472763986dfd4e References: <20191212085012.9170-1-i.dyukov@samsung.com> <20200416055309.19679-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v11 5/6] 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 55bc6a267..451789705 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, in units of 1Mb. + Link speed is a part of link status structure. It could be requested + by application using rte_eth_link_get_nowait function. + (Default: 0xffffffff (Unknown)) + + Virtio paths Selection and Usage -------------------------------- diff --git a/drivers/net/virtio/virtio_user_ethdev.c b/drivers/net/virtio/virtio_user_ethdev.c index a79f68a36..5b32d30fa 100644 --- a/drivers/net/virtio/virtio_user_ethdev.c +++ b/drivers/net/virtio/virtio_user_ethdev.c @@ -450,6 +450,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 }; @@ -782,4 +784,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="); From patchwork Thu Apr 16 05:53:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 68622 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 DF303A0588; Thu, 16 Apr 2020 07:54:26 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id DBE8D1DAD1; Thu, 16 Apr 2020 07:53:37 +0200 (CEST) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id 636A11DAC5 for ; Thu, 16 Apr 2020 07:53:34 +0200 (CEST) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200416055334euoutp02124d949cb23e50a94812f1040fd8d48a~GNwU2DRPu3070430704euoutp029 for ; Thu, 16 Apr 2020 05:53:34 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200416055334euoutp02124d949cb23e50a94812f1040fd8d48a~GNwU2DRPu3070430704euoutp029 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1587016414; bh=jp3mL7gxzLIRM9vHdEqRM1DYLKk2CkbIOcMocMzU1dU=; h=From:To:Subject:Date:In-Reply-To:References:From; b=SYA3FGi1LpzUDvxE4Ew86UPH5tRl8jLriX1uwaUgZ5g1pY3tHbhVb+t2/APL6jCUF 4o3MzBNMEZUdUXzjwygdRK5KEBhx0ysyo0o51mXqJLhXnVyDGXxzp7TwoQokW0oLOy /Bnsvb1iNJVlLqcIKrfqpT7VoezzryXNr+pCL0sw= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200416055333eucas1p1774139ce67fe882ad77e4d8ca23c2a3e~GNwUK5XSr1378713787eucas1p1V; Thu, 16 Apr 2020 05:53:33 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id 0F.91.61286.DD2F79E5; Thu, 16 Apr 2020 06:53:33 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200416055333eucas1p15fe1459edef84852c7131443b54fdeed~GNwTzg5EA1444714447eucas1p1U; Thu, 16 Apr 2020 05:53:33 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200416055333eusmtrp179435e6b05ce84879738cdf21778fd74~GNwTy9CyB2731027310eusmtrp1F; Thu, 16 Apr 2020 05:53:33 +0000 (GMT) X-AuditID: cbfec7f2-f0bff7000001ef66-22-5e97f2ddb177 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id E3.FE.08375.CD2F79E5; Thu, 16 Apr 2020 06:53:33 +0100 (BST) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200416055332eusmtip2069f4a659f15ccd2bb158c402d5c4da2~GNwTPCAEx2412824128eusmtip2g; Thu, 16 Apr 2020 05:53:32 +0000 (GMT) From: Ivan Dyukov To: dev@dpdk.org, maxime.coquelin@redhat.com, i.dyukov@samsung.com, v.kuramshin@samsung.com, amorenoz@redhat.com, zhihong.wang@intel.com, xiaolong.ye@intel.com, mb@smartsharesystems.com Date: Thu, 16 Apr 2020 08:53:06 +0300 Message-Id: <20200416055309.19679-7-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200416055309.19679-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrCIsWRmVeSWpSXmKPExsWy7djP87p3P02PM2g4JGXRuuMBi8W7T9uZ LGZdamK3ONa5h8Wi79dVRovTNzezW/x5Y2qx+eIkJgcOj18LlrJ6LN7zksnj/b6rbB59W1Yx epx61M0cwBrFZZOSmpNZllqkb5fAlbFj30y2gjsSFf29DawNjCtEuhg5OSQETCSurZrD2MXI xSEksIJRYu30Z2wQzhdGieurnrBAOJ8ZJSZ+P8QK07J99VJmiMRyRom+w1fYIZyvjBJvdtxh AaliE9CQON0xjwnEFhHYyyhx7EwBiC0s4ClxuK0drIZFQFVi+v4bYDW8ApYSOy93MUJskJdY veEAM4jNKWAlcaD7DBPIAgmB92wSkxZ0MkEUuUjs+XyEHcIWlnh1fAuULSNxenIPC4RdLfF9 03V2iOYORol7i1qhiuwltrw+B2RzcDALaEqs36UPEXaU2LFsEwtIWEKAT+LGW0GQMDOQOWnb dGaIMK9ER5sQRLWSxIGTl6DCEhJ/f/NAhD0kulrmQ8NnD6PEyifHWScwys1C2LWAkXEVo3hq aXFuemqxYV5quV5xYm5xaV66XnJ+7iZGYFo4/e/4px2MXy8lHWIU4GBU4uHteD0tTog1say4 MvcQowQHs5II7w7/6XFCvCmJlVWpRfnxRaU5qcWHGKU5WJTEeY0XvYwVEkhPLEnNTk0tSC2C yTJxcEo1MIqziEfeW3Opr+PHOf4C1xf3JmhXJX6pzTu5vKBfPmVr+vGob5MK+Wcf8l0fFNx/ 7Oy99Xsco0rLlAXmXbera5ax0L31Yy4btwHrYe+Tchpbk7emiDDq/ZryfQefVvDT4Lj1PYur fss/sT8ifCRg3f39LLJMyYn79tycVnxhnY6bzSmf52EJt5RYijMSDbWYi4oTATJzOsAHAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrGLMWRmVeSWpSXmKPExsVy+t/xe7p3P02PM5i6lMmidccDFot3n7Yz Wcy61MRucaxzD4tF36+rjBanb25mt/jzxtRi88VJTA4cHr8WLGX1WLznJZPH+31X2Tz6tqxi 9Dj1qJs5gDVKz6Yov7QkVSEjv7jEVina0MJIz9DSQs/IxFLP0Ng81srIVEnfziYlNSezLLVI 3y5BL2PHvplsBXckKvp7G1gbGFeIdDFyckgImEhsX72UuYuRi0NIYCmjxM+Ht5i6GDmAEhIS r58wQ9QIS/y51sUGUfOZUeLwn5vsIAk2AQ2J0x3zmEASIgLHGSV6Z/1nAkkIC3hKHG5rZwGx WQRUJabvvwEW5xWwlNh5uYsRYqq8xOoNB8A2cApYSRzoPgNWIySQIdHYcYxpAiPvAkaGVYwi qaXFuem5xYZ6xYm5xaV56XrJ+bmbGIFhuu3Yz807GC9tDD7EKMDBqMTD2/F6WpwQa2JZcWXu IUYJDmYlEd4d/tPjhHhTEiurUovy44tKc1KLDzGaAh01kVlKNDkfGEN5JfGGpobmFpaG5sbm xmYWSuK8HQIHY4QE0hNLUrNTUwtSi2D6mDg4pRoY5x9cmf/k24ydLIa/m7m4PMIzHi314tbq 2uMso7s56aGjsEjV0ju5dYauPkFaU94tmsnhciMl23uly7vA1bIvG1183UQ1jDce25d22v73 jrWuz72k438f3//z1fYDj94tO3MvMfwvd76BNOe/n5/jrIMeNv7mPJwlEHfrlunjb5JOL9wU 2z5ZK7EUZyQaajEXFScCACk7PwdpAgAA X-CMS-MailID: 20200416055333eucas1p15fe1459edef84852c7131443b54fdeed X-Msg-Generator: CA X-RootMTR: 20200416055333eucas1p15fe1459edef84852c7131443b54fdeed X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200416055333eucas1p15fe1459edef84852c7131443b54fdeed References: <20191212085012.9170-1-i.dyukov@samsung.com> <20200416055309.19679-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v11 6/6] net/virtio: Support of VIRTIO_NET_F_SPEED_DUPLEX 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" This patch adds a support of VIRTIO_NET_F_SPEED_DUPLEX feature for virtio driver. There are two ways to specify speed of the link: * 'speed' devarg * negotiate speed from qemu via VIRTIO_NET_F_SPEED_DUPLEX The highest priority is devarg. If devarg is not specified, driver tries to negotiate it from qemu. Signed-off-by: Ivan Dyukov --- drivers/net/virtio/virtio_ethdev.c | 14 ++++++++++++++ drivers/net/virtio/virtio_ethdev.h | 3 ++- drivers/net/virtio/virtio_pci.h | 15 +++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c index 306241d37..b08270714 100644 --- a/drivers/net/virtio/virtio_ethdev.c +++ b/drivers/net/virtio/virtio_ethdev.c @@ -1718,6 +1718,20 @@ virtio_init_device(struct rte_eth_dev *eth_dev, uint64_t req_features) hw->mac_addr[0], hw->mac_addr[1], hw->mac_addr[2], hw->mac_addr[3], hw->mac_addr[4], hw->mac_addr[5]); + if (vtpci_with_feature(hw, VIRTIO_NET_F_SPEED_DUPLEX)) { + config = &local_config; + /* if speed is not specified in devargs */ + if (hw->speed == ETH_SPEED_NUM_UNKNOWN) { + vtpci_read_dev_config(hw, + offsetof(struct virtio_net_config, speed), + &config->speed, sizeof(config->speed)); + hw->speed = config->speed; + } + } + + PMD_INIT_LOG(DEBUG, "link speed = %u%s", + hw->speed, hw->speed == ETH_SPEED_NUM_UNKNOWN ? + "(UNKNOWN)" : ""); if (vtpci_with_feature(hw, VIRTIO_NET_F_CTRL_VQ)) { config = &local_config; diff --git a/drivers/net/virtio/virtio_ethdev.h b/drivers/net/virtio/virtio_ethdev.h index cd8947656..febaf17a8 100644 --- a/drivers/net/virtio/virtio_ethdev.h +++ b/drivers/net/virtio/virtio_ethdev.h @@ -37,7 +37,8 @@ 1ULL << VIRTIO_F_RING_PACKED | \ 1ULL << VIRTIO_F_IOMMU_PLATFORM | \ 1ULL << VIRTIO_F_ORDER_PLATFORM | \ - 1ULL << VIRTIO_F_NOTIFICATION_DATA) + 1ULL << VIRTIO_F_NOTIFICATION_DATA | \ + 1ULL << VIRTIO_NET_F_SPEED_DUPLEX) #define VIRTIO_PMD_SUPPORTED_GUEST_FEATURES \ (VIRTIO_PMD_DEFAULT_GUEST_FEATURES | \ diff --git a/drivers/net/virtio/virtio_pci.h b/drivers/net/virtio/virtio_pci.h index ed98e11c3..2948760ab 100644 --- a/drivers/net/virtio/virtio_pci.h +++ b/drivers/net/virtio/virtio_pci.h @@ -141,6 +141,9 @@ struct virtnet_ctl; */ #define VIRTIO_F_NOTIFICATION_DATA 38 +/* Device set linkspeed and duplex */ +#define VIRTIO_NET_F_SPEED_DUPLEX 63 + /* The Guest publishes the used index for which it expects an interrupt * at the end of the avail ring. Host should ignore the avail->flags field. */ /* The Host publishes the avail index for which it expects a kick @@ -306,6 +309,18 @@ struct virtio_net_config { uint16_t status; uint16_t max_virtqueue_pairs; uint16_t mtu; + /* + * speed, in units of 1Mb. All values 0 to INT_MAX are legal. + * Any other value stands for unknown. + */ + uint32_t speed; + /* + * 0x00 - half duplex + * 0x01 - full duplex + * Any other value stands for unknown. + */ + uint8_t duplex; + } __attribute__((packed)); /*