From patchwork Wed Apr 15 20:03:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 68582 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 53A0BA0563; Wed, 15 Apr 2020 22:04:54 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 673B51DA11; Wed, 15 Apr 2020 22:04:44 +0200 (CEST) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id AC60D1DA06 for ; Wed, 15 Apr 2020 22:04:41 +0200 (CEST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200415200441euoutp01b37f1b4e82460396805d8dc5f2330db2~GFuKdC75K2385023850euoutp01q for ; Wed, 15 Apr 2020 20:04:41 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200415200441euoutp01b37f1b4e82460396805d8dc5f2330db2~GFuKdC75K2385023850euoutp01q DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1586981081; bh=lo9diQK9xZnPLjWitJIBPywoBkLYx5/NMNUPMegTgq8=; h=From:To:Subject:Date:In-Reply-To:References:From; b=sBHH1JqSe2yWoN37r99H/ift85X4zah6R87zWy8uXoQdj9SU+K2VeaJNliIhd/a5j XdPGOaaL5u/rC8//vv3Og9Hpgm+HR7K3AukCxP7ACi1xyVmvRo63SQLL/oKUiypJLb FOIhUcLbz69GSF7xu08kSa5PlIrNi24xqsYNjOoo= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200415200440eucas1p1a759efe55d2fb689df5fd9595635a947~GFuJzviFY0121801218eucas1p1-; Wed, 15 Apr 2020 20:04:40 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id 42.59.61286.8D8679E5; Wed, 15 Apr 2020 21:04:40 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200415200440eucas1p2b403294b5d61d79bce402bc4a3f96de3~GFuJZv3wr1479314793eucas1p2T; Wed, 15 Apr 2020 20:04:40 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200415200440eusmtrp1a3308ca228c208178c96a67e704e9895~GFuJZLthj2198521985eusmtrp1i; Wed, 15 Apr 2020 20:04:40 +0000 (GMT) X-AuditID: cbfec7f2-ef1ff7000001ef66-3f-5e9768d84ed0 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 2A.C8.08375.8D8679E5; Wed, 15 Apr 2020 21:04:40 +0100 (BST) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20200415200439eusmtip144742e861b4a9d37eba2ba18a83bd1b0~GFuI0wgFG1837018370eusmtip1U; Wed, 15 Apr 2020 20:04:39 +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: Wed, 15 Apr 2020 23:03:53 +0300 Message-Id: <20200415200423.6410-2-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200415200423.6410-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrEIsWRmVeSWpSXmKPExsWy7djP87o3MqbHGXxbJWPRuuMBi8W7T9uZ LGZdamK3ONa5h8Wi79dVRovTNzezW/x5Y2qx+eIkJgcOj18LlrJ6LN7zksnj/b6rbB59W1Yx epx61M0cwBrFZZOSmpNZllqkb5fAlfG4+wRrwRuJijnLJrA0MB4X7mLk5JAQMJH4tf4zUxcj F4eQwApGiZ3Xt0A5XxglVs87DeV8ZpR4cruXHabl4YoTLBCJ5YwSzzdNgXK+Mkp83T6HBaSK TUBD4nTHPCYQW0RgL6PEsTMFILawgKPEn6MrweIsAqoS23qfgNm8AhYSJx7OZIHYIC+xesMB ZhCbU8BSYtulQ2wgCyQE3rNJfG5cD1TEAeS4SPy8VQRRLyzx6vgWqOtkJE5P7oGaUy3xfdN1 dojeDkaJe4taoYrsJba8PscOModZQFNi/S59iJGOEv8XS0KYfBI33gqCFDMDmZO2TWeGCPNK dLQJQcxQkjhw8hJUWELi728eiLCHxL1rp9kgAbKbUaJl9STmCYxysxBWLWBkXMUonlpanJue WmyYl1quV5yYW1yal66XnJ+7iRGYEk7/O/5pB+PXS0mHGAU4GJV4eDteT4sTYk0sK67MPcQo wcGsJMK7w396nBBvSmJlVWpRfnxRaU5q8SFGaQ4WJXFe40UvY4UE0hNLUrNTUwtSi2CyTByc Ug2MGa8531RPmsy/3dNoXonqqj6JL5av986LnSgzvfbRT6drbLXtx7a5slkXP77kGFiV/PXt lIbJf3y44hYKnU11vaOx0rjLqtMt5rcmsxTv5zPmp19W1oasmNmucPHNzaC2e0UT+Q9NdDLY ftc/XnyW7yIZO6MHrRZ285w/6u/M+RdhxO5798tJJZbijERDLeai4kQAXguPPwUDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrGLMWRmVeSWpSXmKPExsVy+t/xu7o3MqbHGXz8wmTRuuMBi8W7T9uZ LGZdamK3ONa5h8Wi79dVRovTNzezW/x5Y2qx+eIkJgcOj18LlrJ6LN7zksnj/b6rbB59W1Yx epx61M0cwBqlZ1OUX1qSqpCRX1xiqxRtaGGkZ2hpoWdkYqlnaGwea2VkqqRvZ5OSmpNZllqk b5egl/G4+wRrwRuJijnLJrA0MB4X7mLk5JAQMJF4uOIESxcjF4eQwFJGif7pb9i6GDmAEhIS r58wQ9QIS/y51sUGUfOZUeL60hNMIAk2AQ2J0x3zmEASIgLHGSV6Z/0HSwgLOEr8OboSzGYR UJXY1vsEzOYVsJA48XAmC8RUeYnVGw6AbeAUsJTYdukQG4gtJJAusaS7h2kCI+8CRoZVjCKp pcW56bnFhnrFibnFpXnpesn5uZsYgWG67djPzTsYL20MPsQowMGoxMPb8XpanBBrYllxZe4h RgkOZiUR3h3+0+OEeFMSK6tSi/Lji0pzUosPMZoCHTWRWUo0OR8YQ3kl8YamhuYWlobmxubG ZhZK4rwdAgdjgM5ILEnNTk0tSC2C6WPi4JRqYJy4VnJ6ltBM76RzqqvOv9sh+Tmq/m2E5fto /pb7MkWK+zdXro3qu1sSFzf9g2//Vt1l50+fLP7yfcvRnzqbP8x0Kf36vDJ/Eg/XNZOPGSqB PXufte5czHZOp/TVpMVHHJNKN56yrOSRLrS4pf7PoqjQP014278oxlyW1UIzJ0v2yqRcfvH/ gZcSS3FGoqEWc1FxIgBErPP6aQIAAA== X-CMS-MailID: 20200415200440eucas1p2b403294b5d61d79bce402bc4a3f96de3 X-Msg-Generator: CA X-RootMTR: 20200415200440eucas1p2b403294b5d61d79bce402bc4a3f96de3 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200415200440eucas1p2b403294b5d61d79bce402bc4a3f96de3 References: <20191212085012.9170-1-i.dyukov@samsung.com> <20200415200423.6410-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v10 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 Wed Apr 15 20:03:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 68583 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 179C5A0563; Wed, 15 Apr 2020 22:05:01 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id CDFDD1DA16; Wed, 15 Apr 2020 22:04:45 +0200 (CEST) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 732AC1DA09 for ; Wed, 15 Apr 2020 22:04:43 +0200 (CEST) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200415200442euoutp0175af58e9e3894421b084bea0a3222e3e~GFuL-wwzO2184721847euoutp018 for ; Wed, 15 Apr 2020 20:04:42 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200415200442euoutp0175af58e9e3894421b084bea0a3222e3e~GFuL-wwzO2184721847euoutp018 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1586981082; bh=K7Mh/Yk74ODK2aSKPKJtcnVsJ6EOdbU5DTdVk7Usf7A=; h=From:To:Subject:Date:In-Reply-To:References:From; b=cqBcVQcodAbDEGes4YgxYQ/hDkts/QqaSs5Srj+/bBqilRXqmy3XA1kKvzk0fKIrd 0Fc25EcS7Gwo5+bsMp3n5rVfH82mZivh4HYOg4DtyDdZKMo5Vzp9kNMFK0cP6G6awu fAp8uX28UjzszQS7x7Py6ee3p711Ej6rV/y9gYXs= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200415200442eucas1p190d7b7654dbe07c777690322e97f9ea7~GFuLvrvq41271912719eucas1p1O; Wed, 15 Apr 2020 20:04:42 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id CE.49.60698.AD8679E5; Wed, 15 Apr 2020 21:04:42 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200415200441eucas1p2e08269b40c2bfbda7a1c44e1cf984248~GFuK5Ku8A1479414794eucas1p2b; Wed, 15 Apr 2020 20:04:41 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200415200441eusmtrp1a9c9214664d1f4d4c504af554b88840f~GFuK4kyqy2198521985eusmtrp1j; Wed, 15 Apr 2020 20:04:41 +0000 (GMT) X-AuditID: cbfec7f5-a0fff7000001ed1a-18-5e9768daaec1 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id BA.C8.08375.9D8679E5; Wed, 15 Apr 2020 21:04:41 +0100 (BST) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20200415200441eusmtip14167655a66ce2037492192b9bc5ffbcc~GFuKWDOKW1865818658eusmtip1K; Wed, 15 Apr 2020 20:04:41 +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: Wed, 15 Apr 2020 23:03:54 +0300 Message-Id: <20200415200423.6410-3-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200415200423.6410-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrMIsWRmVeSWpSXmKPExsWy7djPc7q3MqbHGTRuVrRo3fGAxeLdp+1M FrMuNbFbHOvcw2LR9+sqo8Xpm5vZLf68MbXYfHESkwOHx68FS1k9Fu95yeTxft9VNo++LasY PU496mYOYI3isklJzcksSy3St0vgyjh7YgpzwXLBivXbdzE1MDbydTFyckgImEj8OLyapYuR i0NIYAWjxPOt+5khnC+MEidXvmKDcD4zSpw5vZcVpmXRrFVMEInljBJPj2yBavnKKPH1y2Ow KjYBDYnTHfOYQGwRgb2MEsfOFIDYwgK2EltfzGUGsVkEVCX2Nm0Cq+EVsJCYv2cO1AZ5idUb DoDVcApYSmy7dAjsDAmB12wSh7a0ASU4gBwXiavTOCDqhSVeHd/CDmHLSJye3MMCYVdLfN90 nR2it4NR4t6iVqgie4ktr8+xg8xhFtCUWL9LHyLsKPH4/n9WiPF8EjfeCoKEmYHMSdumQ23l lehoE4KoVpI4cPISVFhC4u9vHoiwh8Tz5RMZISGym1Hi24HLzBMY5WYh7FrAyLiKUTy1tDg3 PbXYOC+1XK84Mbe4NC9dLzk/dxMjMCmc/nf86w7GfX+SDjEKcDAq8fAavJwWJ8SaWFZcmXuI UYKDWUmEd4f/9Dgh3pTEyqrUovz4otKc1OJDjNIcLErivMaLXsYKCaQnlqRmp6YWpBbBZJk4 OKUaGM3NfStDowLmMoT5XVp3PiFiv/7uufLzhSX4ZFceCJy0epHq9ICNbuu0/75cY2DW1sH1 Kn1WwRal34eOtCTMMbcT+C9xL89gSrPeA/9/E9Xv2hav7Wa4VD3R5hDHA+2MQ54Cs0X5duWo 5980Lz1SEia+8Pf5cq/tVyfxOik9lc7iltq+f6KTgRJLcUaioRZzUXEiAHtqxtkGAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrGLMWRmVeSWpSXmKPExsVy+t/xu7o3M6bHGXQc1LRo3fGAxeLdp+1M FrMuNbFbHOvcw2LR9+sqo8Xpm5vZLf68MbXYfHESkwOHx68FS1k9Fu95yeTxft9VNo++LasY PU496mYOYI3SsynKLy1JVcjILy6xVYo2tDDSM7S00DMysdQzNDaPtTIyVdK3s0lJzcksSy3S t0vQyzh7YgpzwXLBivXbdzE1MDbydTFyckgImEgsmrWKqYuRi0NIYCmjxLeNfYxdjBxACQmJ 10+YIWqEJf5c62KDqPnMKDH/9Q8mkASbgIbE6Y55YM0iAscZJXpn/QdLCAvYSmx9MResm0VA VWJv0yawOK+AhcT8PXNYIabKS6zecACshlPAUmLbpUNsILaQQLrEku4epgmMvAsYGVYxiqSW Fuem5xYb6hUn5haX5qXrJefnbmIEhum2Yz8372C8tDH4EKMAB6MSD2/H62lxQqyJZcWVuYcY JTiYlUR4d/hPjxPiTUmsrEotyo8vKs1JLT7EaAp01ERmKdHkfGAM5ZXEG5oamltYGpobmxub WSiJ83YIHIwBOiOxJDU7NbUgtQimj4mDU6qBUWit9rPOnINnfNqfvi2MtMn34lulvfjdrk9/ g2u9A0WUa/X+X2RXbZHg8ov7/VZO8cLV/6pfV3iGZKrxeuxi5drPu1ep+MZ328+OX2R6+Hab 7Fkdc3OJkKjXvSeVXoGH7GQqun0Cgwo7ldeLzZT8+ahHWynFooAz9tiMAJu/vDaM8gq3Z3or sRRnJBpqMRcVJwIAaCa+1mkCAAA= X-CMS-MailID: 20200415200441eucas1p2e08269b40c2bfbda7a1c44e1cf984248 X-Msg-Generator: CA X-RootMTR: 20200415200441eucas1p2e08269b40c2bfbda7a1c44e1cf984248 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200415200441eucas1p2e08269b40c2bfbda7a1c44e1cf984248 References: <20191212085012.9170-1-i.dyukov@samsung.com> <20200415200423.6410-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v10 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 Wed Apr 15 20:03:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 68584 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 31EC2A0563; Wed, 15 Apr 2020 22:05:12 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 768451DA1E; Wed, 15 Apr 2020 22:04:48 +0200 (CEST) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 076391DA16 for ; Wed, 15 Apr 2020 22:04:45 +0200 (CEST) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200415200444euoutp01997c4f430f894df760d1e9b71743a8a6~GFuNyfboa2184721847euoutp019 for ; Wed, 15 Apr 2020 20:04:44 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200415200444euoutp01997c4f430f894df760d1e9b71743a8a6~GFuNyfboa2184721847euoutp019 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1586981084; bh=/Sx5PLXWzYimOAlkENkZY4+K1nGA7XAmiXUi1RTi9wM=; h=From:To:Subject:Date:In-Reply-To:References:From; b=eyvS2v+BcReIxMm5MJQyouzCgcZPF3OHMaozJHpvdvV1B5f3EvUjtbnMIUWhxm6Qe uVONcpy8Eq5bQ2uA8/1H18DG7Ms8gl8zFzXlISr8v32gH8irubkjrYC3+tisgGYicE bVvbhQRZ0BFwBIGCT8DVefgG/5HDtP+u1nsQQoVQ= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200415200444eucas1p14e9e6bf3a32d4c4de724f19a113c54f1~GFuNLrQjT1271912719eucas1p1Q; Wed, 15 Apr 2020 20:04:44 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id D2.59.61286.CD8679E5; Wed, 15 Apr 2020 21:04:44 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200415200443eucas1p1d131bd52589c9f43d552c398fb3c10c3~GFuM9a_zR1298412984eucas1p1L; Wed, 15 Apr 2020 20:04:43 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200415200443eusmtrp215f98fdc87b36068a36e975c04301574~GFuM82R9S3009430094eusmtrp2B; Wed, 15 Apr 2020 20:04:43 +0000 (GMT) X-AuditID: cbfec7f2-ef1ff7000001ef66-43-5e9768dc1643 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id AD.27.07950.BD8679E5; Wed, 15 Apr 2020 21:04:43 +0100 (BST) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20200415200443eusmtip10f9bde98aebba5f632e0c5224bd10265~GFuMZMhFh1865818658eusmtip1L; Wed, 15 Apr 2020 20:04:43 +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: Wed, 15 Apr 2020 23:03:55 +0300 Message-Id: <20200415200423.6410-4-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200415200423.6410-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0WSa0hTYRjHe885247LxWmKPpgkLISSmlpWp3uh0D51QUgIXM08XtJN3XFe 6kMSOZfBslFKI20oUiwqc0uXt2zlXctmZo0hmiCoqXhD0nVxnknffs/v+T/vAw8viYsXiSAy VZXNqFWKdAlfSNS1//q0x5VSJo+oXBHQhbYRgp6Zr8doo+OmgG6/3UTQ+pVBRPd8twho98/9 tOWzATtJylZM1TxZVdMEJpttGeTL9FYzknX/uIOf410UHk1k0lNzGHX48cvClIcvnHhm1cG8 8m43VoCmdxcjHxKoKDAsGFExEpJi6ikCZ69LwBWLCGwFRpwrFhAMaEd4GyOdX2YwrvEEwa25 bm9qCUFHRzXypPjUTujRVWAe9qeaEbT3ZnrYjzoM5S1f1z1BhYLTtbT+qoiioU/7GnEbQuBZ TSvuYR/qENQ57HzPAqCm+GBebSS4UAwsuxsEHPvBZIfVy8Hw981jjOPrsFw7JOCGdQiGKwu9 oRNgnfq4xiSJU7vgZUM4p09B/0An8migtsC36a0eja+hoa4M57QIdFoxl5ZAa5fDqwF+r/py Wgb1E48I7iSNCJ6PtqEStN34f5cJITMKZDSsMplhI1VMrpRVKFmNKll6JUNZi9b+Qs+fjnkb WnIk2BFFIomvSDdVKhfzFDlsvtKOgMQl/iLb2TK5WJSoyL/GqDMuqTXpDGtH20hCEijaVzkR L6aSFdlMGsNkMuqNLkb6BBUg6Yo7NEx/7PRIWk0Ee6Appr/ZUHNV+bbUsaztKSkSBk4SestY dELk0Kv3k6Nxm2JDNLNtRwIKBl03lEntsvGJoiTDZlNWyYMP58/Io2OtxfNmsVPeFxfVj4/v eHdfIa0wDQeX350jLuBZU/RcbFdA/N57eVh1unEs2pJrC7BKCDZFERmGq1nFPzFiWTcHAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrKLMWRmVeSWpSXmKPExsVy+t/xu7q3M6bHGWx7ZGrRuuMBi8W7T9uZ LGZdamK3ONa5h8Wi79dVRovTNzezW/x5Y2qx+eIkJgcOj18LlrJ6LN7zksnj/b6rbB59W1Yx epx61M0cwBqlZ1OUX1qSqpCRX1xiqxRtaGGkZ2hpoWdkYqlnaGwea2VkqqRvZ5OSmpNZllqk b5eglzFz3S3mgsXmFXNP/WFqYHyr08XIySEhYCJx4so7pi5GLg4hgaWMEh82LWDpYuQASkhI vH7CDFEjLPHnWhcbiC0k8JlRoqknG8RmE9CQON0xD6xXROA4o0TvrP9MIAlhASuJufuugdks AqoSt+58ZQWxeQUsJM62bWWEGCovsXrDAbAFnAKWEtsuHYJakC6xpLuHaQIj7wJGhlWMIqml xbnpucVGesWJucWleel6yfm5mxiBQbrt2M8tOxi73gUfYhTgYFTi4e14PS1OiDWxrLgy9xCj BAezkgjvDv/pcUK8KYmVValF+fFFpTmpxYcYTYGOmsgsJZqcD4ygvJJ4Q1NDcwtLQ3Njc2Mz CyVx3g6BgzFAZySWpGanphakFsH0MXFwSjUwLr5Vsn0P602h019WlN0VvbEp4OjSSQuWtV9q d/eVzNG4UbJVdtq+X7WzTFf8Oh/ekHbu8sQ7XO+lmF86xnWzPY/l4Tdcf+Eeo2fT527P2GVH Aw7GRH5355zu+7yP/5XABo5b1sIlnh+P35/M/EaGOS7n9fu7mTySTK8Obbi8qmCVieRy8evp f5VYijMSDbWYi4oTAXSCzMtoAgAA X-CMS-MailID: 20200415200443eucas1p1d131bd52589c9f43d552c398fb3c10c3 X-Msg-Generator: CA X-RootMTR: 20200415200443eucas1p1d131bd52589c9f43d552c398fb3c10c3 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200415200443eucas1p1d131bd52589c9f43d552c398fb3c10c3 References: <20191212085012.9170-1-i.dyukov@samsung.com> <20200415200423.6410-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v10 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 Wed Apr 15 20:03:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 68585 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 1C967A0563; Wed, 15 Apr 2020 22:05:22 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1536C1DA27; Wed, 15 Apr 2020 22:04:50 +0200 (CEST) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id BF6C21DA1C for ; Wed, 15 Apr 2020 22:04:46 +0200 (CEST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200415200446euoutp02c8d0a0f109de50aa41510e5c5028c641~GFuPGdipg1705517055euoutp021 for ; Wed, 15 Apr 2020 20:04:46 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200415200446euoutp02c8d0a0f109de50aa41510e5c5028c641~GFuPGdipg1705517055euoutp021 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1586981086; bh=+M3dS4Qpnb55Aqv8xspVBGIA7o3HHeQFPvOxmQ3OOrM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nHCOmRpIKjUjMouWXTY5gavulbTIP9ripA1LJyumxGBFUi1ibc5e1z78y+ICzhdn9 1uopgKZXTwxAkAMLEjgWsAc25ywTHOaY74QjM2AmVYMghGEm+3EVJmUijnRGDkIVwS dJfjuK9os5liPSPVD2/1bKx1b3NjVyHmlFL+U1mA= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200415200446eucas1p1515d2757680c6821b1f5284e9f5cbbce~GFuO5Sg6Y0121801218eucas1p1I; Wed, 15 Apr 2020 20:04:46 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id D8.CC.60679.DD8679E5; Wed, 15 Apr 2020 21:04:45 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200415200445eucas1p2406d3f5b1794958c8345741c83d2000e~GFuOnke8Y1479414794eucas1p2l; Wed, 15 Apr 2020 20:04:45 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200415200445eusmtrp1963d596885047206ae6a87f39441e5d5~GFuOnBA_R2198521985eusmtrp1l; Wed, 15 Apr 2020 20:04:45 +0000 (GMT) X-AuditID: cbfec7f4-0e5ff7000001ed07-2e-5e9768dd11cb Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 6B.C8.08375.DD8679E5; Wed, 15 Apr 2020 21:04:45 +0100 (BST) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20200415200444eusmtip154784fa0bc3050b250ec433a9d0d50e3~GFuN7c6dB1837018370eusmtip1W; Wed, 15 Apr 2020 20:04:44 +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: Wed, 15 Apr 2020 23:03:56 +0300 Message-Id: <20200415200423.6410-5-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200415200423.6410-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0WSfUhTURjGObt32504u03BV4uEQdCCnFnmLSoLpPZHkSQRCVm3dpumU7lX V9ofLknbVogf5MJIzYp0Qfkx1jS/mKLUZNaYqYj2QZGztC9D3Exq3kn/Pef3PIf3eQ+HwGR6 YTSRmZPPsDl0tlwUgtsGl1zbpjLM6XEf3YlUqf0dTs3/fCagat0lYmrQ2IVT5b5RRK0YlsWU c6JdTC1/TaDaX1cJDkhUvoaHQtX9Lq9A9a1nVKQqt1qQ6uWHG1iKMC1kr5rJztQxrHL/2ZAM 28ChPLvkcq9+VKhH78UmJCGA3AndwyO4CYUQMrIJwUJvhzBgyMgFBKYeIW/8QvDqgRGt3eiv rxXxxiMExielAv7wG8HkuBEPpETkFnAa6gQBHUF2IxgczgtojAyH6wNvVjPh5D6wdX/HTIgg cHIzXLt7IYClJAUeixPjh8XA45a+VS0hd4PN7RDx3C+CyTENr5NhvK8yuE44zA5Zg3ojOKtv 4ry+AottY+JATyANCKYbS4OhJLB+cYkDHTBSAU87lTw+CB7Xp9VqQIbB+Nx6vn0YVNnMQSwF Q5mMT8uh74U7iAH++EN5rILFe60Y/5zPEUxMKypQTO3/UQ0IWVAkU8BpNQwXn8NciuVoLVeQ o4k9n6ttQ//+hXNlaMGOOpfPORBJIHmoNM5bky4T0jquUOtAQGDyCKn9mDldJlXThUUMm3uG LchmOAfaQODySOmORu9pGamh85kshslj2DVXQEii9SihZFOWR+lX37EKPI1DTanN5eRRqtUS Va8rKu5NTDoZldqx1K+LT+mHQm6PRHFqscY4oyg311fMeI2awy27DJ/FZfOzHQXmNDql3tN2 MXPdbcXVLJe62FbIWoajqaah5pJiduptcozy+FzlSMIP/4n0W0fq1BG+al+uGTfIcS6D3r4V Yzn6LxRp5IoTAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrKLMWRmVeSWpSXmKPExsVy+t/xu7p3M6bHGVw/rWrRuuMBi8W7T9uZ LGZdamK3ONa5h8Wi79dVRot/HX/YLU7f3Mxu8eeNqcXmi5OYHDg9fi1YyuqxeM9LJo/3+66y efRtWcXocepRN3MAa5SeTVF+aUmqQkZ+cYmtUrShhZGeoaWFnpGJpZ6hsXmslZGpkr6dTUpq TmZZapG+XYJexrYjbgU7OCv2N1xlbWB8yN7FyMkhIWAicXj+LLYuRi4OIYGljBJLm+cydzFy ACUkJF4/YYaoEZb4c60LquYzo8T/K8vBEmwCGhKnO+YxgSREBI4zSvTO+s8EkmAG6mg/co0F xBYWsJXYtvcD2FAWAVWJlrlpIGFeAQuJK6tOQy2Ql1i94QCYzSlgKbHt0iE2EFtIIF1iSXcP 0wRGvgWMDKsYRVJLi3PTc4sN9YoTc4tL89L1kvNzNzECg3jbsZ+bdzBe2hh8iFGAg1GJh7fj 9bQ4IdbEsuLK3EOMEhzMSiK8O/ynxwnxpiRWVqUW5ccXleakFh9iNAW6aSKzlGhyPjDC8kri DU0NzS0sDc2NzY3NLJTEeTsEDsYAnZFYkpqdmlqQWgTTx8TBKdXAKMeqy32fe+LGS7u5CoPl Dd4eX+DQJCD0avb59XMinxfUx9hOY6hn4F4dvWs716zywA89D9/nx9rdm3ztzd12Uf5fr1ad D+J9vJv31q6ZZ3MKDZ2OpzB+CSjiMFoz62537rZFzHZT5/nxCrzy31zLEbLu6+tVaSZ/Yzj1 zJdNX304yFA77fy9L0osxRmJhlrMRcWJAAk8RHJ4AgAA X-CMS-MailID: 20200415200445eucas1p2406d3f5b1794958c8345741c83d2000e X-Msg-Generator: CA X-RootMTR: 20200415200445eucas1p2406d3f5b1794958c8345741c83d2000e X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200415200445eucas1p2406d3f5b1794958c8345741c83d2000e References: <20191212085012.9170-1-i.dyukov@samsung.com> <20200415200423.6410-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v10 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 Wed Apr 15 20:03:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 68586 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 4DA0AA0563; Wed, 15 Apr 2020 22:05:31 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B8E841DA30; Wed, 15 Apr 2020 22:04:52 +0200 (CEST) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 1763B1C195 for ; Wed, 15 Apr 2020 22:04:49 +0200 (CEST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200415200448euoutp0164a0893821ff86add4700a340b22068c~GFuRk_tQk2184721847euoutp01A for ; Wed, 15 Apr 2020 20:04:48 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200415200448euoutp0164a0893821ff86add4700a340b22068c~GFuRk_tQk2184721847euoutp01A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1586981088; bh=CIdot3APO0NSk1er3ZveEoNqw+ETjJewupEppv9a4hA=; h=From:To:Subject:Date:In-Reply-To:References:From; b=mGD8z6yuANNJUsOoulmtRQEAWmsraS7pirTHsUvmVjGhxbIGV1AxCy7Lx6OK4Z0qb k8/HYp8derYLUufv9Js68aqYB8/NQmKRQ6Fn/xFTom7cCb/ZgScKmVXxR10uRBR74g hbOK0gOmCRfk1Ny5Bp8KiBr9gTrYwvkrttcuCtI8= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200415200448eucas1p12a14bbec62d768eb021d426121cb9e50~GFuRGBaMj0121901219eucas1p18; Wed, 15 Apr 2020 20:04:48 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id 83.59.61286.0E8679E5; Wed, 15 Apr 2020 21:04:48 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200415200447eucas1p29e0efc7384df496cc7390ad5aa4891ea~GFuQGnIyE2719927199eucas1p2D; Wed, 15 Apr 2020 20:04:47 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200415200447eusmtrp1ff194ad0464d60cb599964c8fe48d0c6~GFuQAd6p32198521985eusmtrp1n; Wed, 15 Apr 2020 20:04:47 +0000 (GMT) X-AuditID: cbfec7f2-ef1ff7000001ef66-49-5e9768e03216 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 4C.C8.08375.FD8679E5; Wed, 15 Apr 2020 21:04:47 +0100 (BST) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20200415200446eusmtip1b5c66633cfe770708ba4dbc9ee8c231f~GFuPaae-b1837018370eusmtip1X; Wed, 15 Apr 2020 20:04:46 +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: Wed, 15 Apr 2020 23:03:57 +0300 Message-Id: <20200415200423.6410-6-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200415200423.6410-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0WSbUhTYRTHe3bv3e6W09smeJhSMBCyF5e90C1KS0MGgfUtCDLXvLrRnLbr lhqCiNrUspihKWFiaTIFQ4eO5mQMmuV8oaVY4DtCLDPJZZKZ5LyTvv3O7/zPc+DwkJgkgMtI rT6fMehVOjlfhPd6fo8endPUpx+b7KHocvscTn9f7ePRjb5SAe2p7Mfpmo0JRHs/9wjozW+n 6J4PFt4FUrnR3EooX/T7ecqVgQm+ssZmRcqhhWrsKnFddC6T0WlNjEGRmCHSzNseCfIsEQVf at+hEuQMq0JCEqiT8LbkIwqyhGpH8NCXVYVE2/wTwdrUlIArAgic9VZid6JvwUJwjVcIGjrt fK5YQ/ByrEEQTPGpg+A1N/GCHEk5EXiG84IspZKhemB6x+NULFhXx3deFVM0rN2fx7gNB6Dj tWuHhdQZ6PW5dxYAtcKHrq11nAtdgl8jZYhjKXwdtAk4jgFv7YNQ5h6sd08KuGEzgpmW8lAo CWxLo9tMkhgVB11vFJy+CIszDiyogQqHT8v7ghrbRktvfUiLwVwh4dJycL33hTTA3z+hiyqh dGgE507iQFA15OA9Rvsb/+9qRsiKohgjm5PNsAl65m48q8phjfrseHVuTjfa/grercFVO1rz 3XIjikTyMLF5qS5dQqhMbGGOGwGJySPF9iv16RJxpqqwiDHk3jQYdQzrRtEkLo8Sn2jx35BQ 2ap85jbD5DGG3S6PFMpKULjGkapY7kgZGb7zY3x6TNakip9VP0msTNK4ZM8MBXlpHlNCm/Cw 6zSheM4jtK1js6RrmijU8D1Nyf4Y097i9oqnUkuMWp0Wd3w5MDoXLSsQ6VcX28rsU07/UsSR igFzUd/lSmmsNtUlrTpvygroivc0dZ011l3LqOlM2ZTjrEaVcAgzsKp/hVVNzgYDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrGLMWRmVeSWpSXmKPExsVy+t/xu7r3M6bHGbzZwW7RuuMBi8W7T9uZ LGZdamK3ONa5h8Wi79dVRovTNzezW/x5Y2qx+eIkJgcOj18LlrJ6LN7zksnj/b6rbB59W1Yx epx61M0cwBqlZ1OUX1qSqpCRX1xiqxRtaGGkZ2hpoWdkYqlnaGwea2VkqqRvZ5OSmpNZllqk b5egl/FwSz97wST+iueTTzA2MO7l6WLk5JAQMJHY/mgSaxcjF4eQwFJGiRuLvzB2MXIAJSQk Xj9hhqgRlvhzrYsNouYzo8S6+w0sIAk2AQ2J0x3zmEASIgLHGSV6Z/1nAkkICzhJdO+7C2az CKhKrPp0hRXE5hWwkPja/hBqqrzE6g0HwGxOAUuJbZcOsYHYQgLpEku6e5gmMPIuYGRYxSiS Wlqcm55bbKhXnJhbXJqXrpecn7uJERim24793LyD8dLG4EOMAhyMSjy8Ha+nxQmxJpYVV+Ye YpTgYFYS4d3hPz1OiDclsbIqtSg/vqg0J7X4EKMp0FETmaVEk/OBMZRXEm9oamhuYWlobmxu bGahJM7bIXAwBuiMxJLU7NTUgtQimD4mDk6pBsb2uBOJyQrSq5fsLNI7veRirMzU3j2/nTtl t67753A5abqCVNH8VJ2JF5I3bJ51ptd4lYPEV/2TwnxtW6Zll8qfa8i5V97VlWVpsiX83I7H dQE1GWpuqvp/eMp+zNs2ZYNKtQPbAsF3+49GdskvcNJOTdsrfyuUoauG7bVNU7A9o8qWr8tF fymxFGckGmoxFxUnAgDNwhTYaQIAAA== X-CMS-MailID: 20200415200447eucas1p29e0efc7384df496cc7390ad5aa4891ea X-Msg-Generator: CA X-RootMTR: 20200415200447eucas1p29e0efc7384df496cc7390ad5aa4891ea X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200415200447eucas1p29e0efc7384df496cc7390ad5aa4891ea References: <20191212085012.9170-1-i.dyukov@samsung.com> <20200415200423.6410-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v10 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 Wed Apr 15 20:03:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 68587 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 E4B63A0563; Wed, 15 Apr 2020 22:05:38 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1C3D11DA34; Wed, 15 Apr 2020 22:04:54 +0200 (CEST) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 3C2761DA29 for ; Wed, 15 Apr 2020 22:04:50 +0200 (CEST) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200415200450euoutp01d32a4374644d9c7a220c45705ee929e9~GFuSn1zII2184721847euoutp01B for ; Wed, 15 Apr 2020 20:04:50 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200415200450euoutp01d32a4374644d9c7a220c45705ee929e9~GFuSn1zII2184721847euoutp01B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1586981090; bh=REinwRkqPLOjw+8vTqF2dhIciAY/lE5ROJDrE8KoQdo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vLzG+giLH0LG1jHQiL9igNawJHcyRgF5Bvi5C5fIyNSrdJsZI73UysgAoTH+jFJV/ Yc9+tGkI+KVk9TFDy+oYeVhuNtmRYQxKWmr2HSeyMYGsMi947vCej/rH14fL6VVcu+ 2aDiuPhd4WM3OPhzkErB5B1p4BUHSiF/8jm53r68= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20200415200449eucas1p24299f30f25877157b0a31f0346d08716~GFuR5FKSo1479314793eucas1p2h; Wed, 15 Apr 2020 20:04:49 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id DF.49.60698.1E8679E5; Wed, 15 Apr 2020 21:04:49 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200415200448eucas1p2ca449e8b15c2288adf202c7bf045fb9b~GFuRhdoP61479314793eucas1p2g; Wed, 15 Apr 2020 20:04:48 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200415200448eusmtrp20fcc3ffaa73d11349930a2350264e335~GFuRg66kC3157831578eusmtrp2N; Wed, 15 Apr 2020 20:04:48 +0000 (GMT) X-AuditID: cbfec7f5-a0fff7000001ed1a-22-5e9768e15c60 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 3E.27.07950.0E8679E5; Wed, 15 Apr 2020 21:04:48 +0100 (BST) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20200415200448eusmtip1468cea8426b46c07dea869e42d7dd9a1~GFuQ57OTz1865818658eusmtip1N; Wed, 15 Apr 2020 20:04:48 +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: Ivan Dyukov Date: Wed, 15 Apr 2020 23:03:58 +0300 Message-Id: <20200415200423.6410-7-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200415200423.6410-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0VSa0hTYRj2287OOTNnpznwTQNhFZaQl1Q6kWSCxPpTIfWjm3bUk5O8zB21 rH6ooC41U5GtJNQMtaY0m8N702ZoXkq8pRJqiiReKvBCpGY5z6R/D8/lfR4+PlIo1YhcyOi4 RFYdx8TIcXusvvN3/7FppS7UuyCLoDMav2L0j+UGAV08mE7QFkOJgO582IrReesjiO4dryPo zSV/um6gUHBGrFgvqxApmoonCMWL1nmB4qd5BFfkmfRI0TOTI7yIX7UPiGRjopNZtdfpm/bK qX6dSDUBdysm0wSp6JUsG4lJoPxg4bNWlI3sSSn1EkFT1ajIKkipVQTmvAReWEHw/vWicDdR WdmF8UIVguatNlt8DcHEtzHc6sKpI9CrKRFYsYx6i6CzT2XFQsodBt5M7Vxyos5BR2bR9iWS xKjDsPzcxUpLKBrSytoRX+YG1bXtO3YxdRLqBy24tQuoLAJyHhsw3hQMT9ve2dY5wUKXieDx AfjbVCrg8X34ZRwl+LAGwWR5hs0UCKbFT4R1hJA6CoZmL54Ogjn90s42oBxh7Ps+fr4jFNbr hDwtAU2mlHfLob170EYD/Nlw4GkFaHu+IP51WhC0DBuIfORW/L+rDCE9cmaTuNgolvONY+94 ckwslxQX5RkRH2tE2/+jd6trrRGZN8MtiCKR3EHiPa8NlYqYZC4l1oKAFMplksYLulCpJJJJ uceq48PUSTEsZ0GuJCZ3lviWz9+QUlFMInubZVWselcVkGKXVGSqyn9yykWVsN8YNl6qW/XT Rlz2Srs0aVfrbCzaK/Y14BanaSVbPRRyHt9TGB/Us5Fgd+J4yLDkYNTstTXOdLahp6bN4POh I6DffMVwSMY8S/RP/PjIdRUfzp2d0fXn2oXPDQVS0Bq25pdRcp3R3+pw6K5Z6RtyZx4UpAd7 ZMsxTsn4eAjVHPMPGgkOQRsDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrFLMWRmVeSWpSXmKPExsVy+t/xu7oPMqbHGVyco2/RuuMBi8W7T9uZ LGZdamK3OLR+HpPFsc49LBZ9v64yWpy+uZnd4s8bU4vNFycxOXB6/FqwlNVj56y77B6L97xk 8ni/7yqbR9+WVYwepx51MwewRenZFOWXlqQqZOQXl9gqRRtaGOkZWlroGZlY6hkam8daGZkq 6dvZpKTmZJalFunbJehl3D8/nbXgrkTF0nuNTA2MK0W6GDk5JARMJJYtO84CYgsJLGWUOPtX uIuRAyguIfH6CTNEibDEn2tdbF2MXEAlnxklZjdtZANJsAloSJzumMcEkhAROM4o0TvrPxNI gllAXeLixvtg3cICnhKH26awgAxlEVCV+LRQCiTMK2Ah0bjgACPEAnmJ1RsOgJVzClhKbLt0 iA3innSJJd09TBMY+RYwMqxiFEktLc5Nzy020itOzC0uzUvXS87P3cQIDOdtx35u2cHY9S74 EKMAB6MSD2/H62lxQqyJZcWVuYcYJTiYlUR4d/hPjxPiTUmsrEotyo8vKs1JLT7EaAp000Rm KdHkfGCs5ZXEG5oamltYGpobmxubWSiJ83YIHIwBOiOxJDU7NbUgtQimj4mDU6qBMTBm2lSV a/dizl9u/6xawL9x3duCx133dnT5Hz/nzlKu0XN8zwrR1c8brI1yt8cGuvm6vxfq2H6tXu+B jY2H94KJDbphKgu/nV9yQtj8iucjqfvaxeVM/HxcV/LdHmpwaXW+0wrPepMd4RsTfefFed13 jO5CiieqWKTnygXsejJdfFO4f6KrEktxRqKhFnNRcSIAOshVS30CAAA= X-CMS-MailID: 20200415200448eucas1p2ca449e8b15c2288adf202c7bf045fb9b X-Msg-Generator: CA X-RootMTR: 20200415200448eucas1p2ca449e8b15c2288adf202c7bf045fb9b X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200415200448eucas1p2ca449e8b15c2288adf202c7bf045fb9b References: <20191212085012.9170-1-i.dyukov@samsung.com> <20200415200423.6410-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v10 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)); /*