From patchwork Thu Jul 2 13:21:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 72836 X-Patchwork-Delegate: ferruh.yigit@amd.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 E0C17A0520; Thu, 2 Jul 2020 15:22:10 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 8A67E1D9E9; Thu, 2 Jul 2020 15:22:08 +0200 (CEST) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id 4F5EE1D9E8 for ; Thu, 2 Jul 2020 15:22:07 +0200 (CEST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200702132207euoutp02e14997c7bb517b44379a401eb024fbed~d8i8PBypz1678816788euoutp02t for ; Thu, 2 Jul 2020 13:22:07 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200702132207euoutp02e14997c7bb517b44379a401eb024fbed~d8i8PBypz1678816788euoutp02t DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1593696127; bh=BG13JEDguLywByJwOXQTWe6Zorck+0Dg5OriYR0Hx5A=; h=From:To:Subject:Date:In-Reply-To:Reply-To:References:From; b=ZtaKnzSE+XelX10UOQjCE5nkKaxFrnnoQs5wBt0eVXXJwYxhAIpg0pnzvq/CNRWs2 1K1mipqP4NvzhAqzJmb/QcKVNfOR5q2Pqr1DG0iOMQrJVx5P3LYOoU06qIvXAzotAX MYgkHw3Jz3zA/i3wbixRY7NykX/dUSWJfM1U9eeU= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200702132206eucas1p1b2406ef1a61a8c0b2ba0e0cc1abac09a~d8i79Nq_d1005510055eucas1p1e; Thu, 2 Jul 2020 13:22:06 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id 81.00.06456.E7FDDFE5; Thu, 2 Jul 2020 14:22:06 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200702132206eucas1p1d13fc23fe4d48b18435f79aa94efbc10~d8i7jEJ6m0983109831eucas1p1l; Thu, 2 Jul 2020 13:22:06 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200702132206eusmtrp284a550efad53719d07f18e1d1f099bd3~d8i7iUppx2389023890eusmtrp2g; Thu, 2 Jul 2020 13:22:06 +0000 (GMT) X-AuditID: cbfec7f2-7efff70000001938-f3-5efddf7e4c85 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 7F.D2.06314.E7FDDFE5; Thu, 2 Jul 2020 14:22:06 +0100 (BST) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200702132205eusmtip2fb2e42bfb1273c18268892b0eb36fda9~d8i6qHapF1152711527eusmtip2Q; Thu, 2 Jul 2020 13:22:05 +0000 (GMT) From: Ivan Dyukov To: dev@dpdk.org, i.dyukov@samsung.com, v.kuramshin@samsung.com, thomas@monjalon.net, david.marchand@redhat.com, ferruh.yigit@intel.com, arybchenko@solarflare.com, wei.zhao1@intel.com, jia.guo@intel.com, beilei.xing@intel.com, qiming.yang@intel.com, wenzhuo.lu@intel.com, mb@smartsharesystems.com, stephen@networkplumber.org Date: Thu, 2 Jul 2020 16:21:28 +0300 Message-Id: <20200702132139.28078-2-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200702132139.28078-1-i.dyukov@samsung.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA01SWUwTURT1zbSdobEw1CpXFAlNUCEBJPAxLnEhJo7xQxP/jCJVJy2RFtIB BEwQFxAqNEgQYk0A2QWNhB2l2tQEW8sSiwgoCFEii4qGJUgFl2Ew+nfuuefec+7LI3F5j9ib jNbFs3qdKkYpkYqaOxa7g1JHliN3DBUE0qP5wxL6xrdrGN1SbZDQ0zMtGD1kdhC0yXmFoMeX pnDa6OpDdH5bK6LLhrbQM6M2Ee0YbCDo+/Mvcbqpcxntd2dcJRVipqx9EmM6BgsIJttehDFf n/RJGGNjDWJevL+BM7Vj3yXHyBPSPefYmOhEVh+yN0qqeTCaR8SZNiaNGLuINFSuMCA3Eqhw mG5YFBuQlJRT1QhMOSNIKOYQ3Ky2EUIxi6C4sl9kQOTKyNPSaIGvQuDI6xAJxTyCz+Zhgt8r obaDI7MI4xsKqhODGdcvxDfWUTRkGZ04j0WUP6S/Nq5gGbUTrOntYiGUL9TWWXDezY3aBY02 d56WU1ugv3gOE+SeYL89JuIx/kd+tekOznsBNUmAZXSBEPYcBONsxipeB1PPG1fxZvjVVowJ +CIs1PcTwnAmgnel6auifdD4qZvgQ+BUADx8FCLQB2C4144JL+EOA188hQzukNdciAu0DDIz 5IJaCRa7c5UGWP6xVqAZsLxdInKRn+m/Y0z/HWP6Z1uC8BrkxSZwWjXLherYC8GcSssl6NTB Z2O19ejPN3P8fD7TiuadZ6yIIpFyrWzCvhwpF6sSuWStFQGJKxWyiC5HpFx2TpWcwupjT+sT YljOijaRIqWXLKx08pScUqvi2fMsG8fq/3Yx0s07DfnkcNmFQ/Lmwx8WnzkvrfHJTKkYURwx ujzsEb2+l7Oq6DBDlN/R60bzuHcoawuq05UTNZjmh0tT6t9nEw88zt+6IbzspGsiKXL37Rcf e4rGO9/M13ukdsMht1y1vf3W3XuVGaHfl7ZFrx9oUmzPHbSnBdSZj583axX9r7rMP4eVIk6j Cg3E9ZzqNw5seLNiAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrEIsWRmVeSWpSXmKPExsVy+t/xe7p19//GGfy5KWDxYMpdNovuDy1M FttXdLFZvPu0ncnizt7T7BazLjWxWzz/84rZou/XVUaLKTt3MFosviNn8enBCRaL0zc3s1us +XqR2WLrmb+MDnwevxYsZfVYvOclk8exm9PYPXpOzmPyeL/vKptH35ZVjB6nHnUze6x+8oMt gCNKz6Yov7QkVSEjv7jEVina0MJIz9DSQs/IxFLP0Ng81srIVEnfziYlNSezLLVI3y5BL2Pt g0nsBbMkK+73nWVvYFwi0sXIwSEhYCKxf1FmFyMXh5DAUkaJC/vuM0PEJSRePwEyOYFMYYk/ 17rYIGo+M0psbHvBBpJgE9CQON0xjwnEFhG4xySxZaUqiC0sYCHR2XcJrJlFQFWi9VofmM0r YClxqHUPK8RQeYnVGw6A7eIUsJLYcoIPJCwkkClx+fUVNghbTuL6/C9MEK2CEidnPmEBKWcW UJdYP08IJMwMNKV562zmCYyCs5BUzUKomoWkagEj8ypGkdTS4tz03GJDveLE3OLSvHS95Pzc TYzA+Nx27OfmHYyXNgYfYhTgYFTi4Z1w/G+cEGtiWXFl7iFGCQ5mJRFep7On44R4UxIrq1KL 8uOLSnNSiw8xmgJ9OZFZSjQ5H5g68kriDU0NzS0sDc2NzY3NLJTEeTsEDsYICaQnlqRmp6YW pBbB9DFxcEo1MCYLOLDkebKtCzs4QVv/T69bzYkgrvJYz4SLf1/dUJ39/OfueZ++y6p3eN83 4r/wY+3hgpdysS260z5n6PKeM7GuFzt+Q8J/0atf+hWOrTY1VdwaKenq7u5Z66oatqY4xglt UY85bvn2S+uWdQ4TzV+8MKxdYx42a43mMY3WKObUVI2NBWtmKrEUZyQaajEXFScCAOZFzEDl AgAA X-CMS-MailID: 20200702132206eucas1p1d13fc23fe4d48b18435f79aa94efbc10 X-Msg-Generator: CA X-RootMTR: 20200702132206eucas1p1d13fc23fe4d48b18435f79aa94efbc10 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200702132206eucas1p1d13fc23fe4d48b18435f79aa94efbc10 References: <20200427095737.11082-1-i.dyukov@samsung.com> <20200702132139.28078-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v4 1/7] ethdev: allow unknown link speed X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: i.dyukov@samsung.com List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Thomas Monjalon When querying the link information, the link status is a mandatory major information. Other boolean values are supposed to be accurate: - duplex mode (half/full) - negotiation (auto/fixed) This API update is making explicit that the link speed information is optional. The value ETH_SPEED_NUM_NONE (0) was already part of the API. The value ETH_SPEED_NUM_UNKNOWN (infinite) is added to cover two different cases: - speed is not known by the driver - device is virtual Suggested-by: Morten Brørup Suggested-by: Benoit Ganne Signed-off-by: Thomas Monjalon Reviewed-by: Ferruh Yigit --- lib/librte_ethdev/rte_ethdev.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h index a49242bcd..2090af501 100644 --- a/lib/librte_ethdev/rte_ethdev.h +++ b/lib/librte_ethdev/rte_ethdev.h @@ -303,6 +303,7 @@ struct rte_eth_stats { #define ETH_SPEED_NUM_56G 56000 /**< 56 Gbps */ #define ETH_SPEED_NUM_100G 100000 /**< 100 Gbps */ #define ETH_SPEED_NUM_200G 200000 /**< 200 Gbps */ +#define ETH_SPEED_NUM_UNKNOWN UINT32_MAX /**< Unknown */ /** * A structure used to retrieve link-level information of an Ethernet port. @@ -2262,15 +2263,16 @@ int rte_eth_allmulticast_disable(uint16_t port_id); int rte_eth_allmulticast_get(uint16_t port_id); /** - * Retrieve the status (ON/OFF), the speed (in Mbps) and the mode (HALF-DUPLEX - * or FULL-DUPLEX) of the physical link of an Ethernet device. It might need - * to wait up to 9 seconds in it. + * Retrieve the link status (up/down), the duplex mode (half/full), + * the negotiation (auto/fixed), and if available, the speed (Mbps). + * + * It might need to wait up to 9 seconds. + * @see rte_eth_link_get_nowait. * * @param port_id * The port identifier of the Ethernet device. * @param link - * A pointer to an *rte_eth_link* structure to be filled with - * the status, the speed and the mode of the Ethernet device link. + * Link information written back. * @return * - (0) if successful. * - (-ENOTSUP) if the function is not supported in PMD driver. @@ -2279,15 +2281,13 @@ int rte_eth_allmulticast_get(uint16_t port_id); int rte_eth_link_get(uint16_t port_id, struct rte_eth_link *link); /** - * Retrieve the status (ON/OFF), the speed (in Mbps) and the mode (HALF-DUPLEX - * or FULL-DUPLEX) of the physical link of an Ethernet device. It is a no-wait - * version of rte_eth_link_get(). + * Retrieve the link status (up/down), the duplex mode (half/full), + * the negotiation (auto/fixed), and if available, the speed (Mbps). * * @param port_id * The port identifier of the Ethernet device. * @param link - * A pointer to an *rte_eth_link* structure to be filled with - * the status, the speed and the mode of the Ethernet device link. + * Link information written back. * @return * - (0) if successful. * - (-ENOTSUP) if the function is not supported in PMD driver. From patchwork Thu Jul 2 13:21:29 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 72837 X-Patchwork-Delegate: ferruh.yigit@amd.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 ADCCEA0520; Thu, 2 Jul 2020 15:22:19 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D1A341D9F1; Thu, 2 Jul 2020 15:22:11 +0200 (CEST) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id 939241D9EF for ; Thu, 2 Jul 2020 15:22:10 +0200 (CEST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200702132210euoutp02f1ecf0a3d67c234293141c2446a1e97b~d8i-UYBdi1776117761euoutp02B for ; Thu, 2 Jul 2020 13:22:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200702132210euoutp02f1ecf0a3d67c234293141c2446a1e97b~d8i-UYBdi1776117761euoutp02B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1593696130; bh=tVwH6njba9oIwGwdcbGzywcmraJbSonrkWcGX4G8yAw=; h=From:To:Subject:Date:In-Reply-To:Reply-To:References:From; b=l0+kKJZF/9q9Yb2MvcgxsDyDK4uLzv+R0iZMz4VnfIkSBfcke8kDFmCOSrDYmkX3c XimNGlFddS22G4PJtatdtoJoD0DWM5U/7eWoBjAUAszcGSI33LWp9jQrWRAjOCV55e 4kbi6k1xKVkp4U9NAyb0dBqwLnTIpqtq+dJpPcmI= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20200702132210eucas1p261089c50f0a31d9dc10af75e2f992f0d~d8i-FSN3i3204832048eucas1p2J; Thu, 2 Jul 2020 13:22:10 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id C4.00.06456.18FDDFE5; Thu, 2 Jul 2020 14:22:10 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200702132209eucas1p2d55db5b7637dadea4ccce549fd979377~d8i_wrN6Q1386213862eucas1p2p; Thu, 2 Jul 2020 13:22:09 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200702132209eusmtrp1214ba9b0531bd08c1bed9e8753aff8bc~d8i_v6yzU1271812718eusmtrp1T; Thu, 2 Jul 2020 13:22:09 +0000 (GMT) X-AuditID: cbfec7f2-809ff70000001938-fe-5efddf81cae1 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 06.11.06017.18FDDFE5; Thu, 2 Jul 2020 14:22:09 +0100 (BST) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200702132208eusmtip243a6fce25191c8ef9d4819780826e9e2~d8i94DVbR1000310003eusmtip2T; Thu, 2 Jul 2020 13:22:08 +0000 (GMT) From: Ivan Dyukov To: dev@dpdk.org, i.dyukov@samsung.com, v.kuramshin@samsung.com, thomas@monjalon.net, david.marchand@redhat.com, ferruh.yigit@intel.com, arybchenko@solarflare.com, wei.zhao1@intel.com, jia.guo@intel.com, beilei.xing@intel.com, qiming.yang@intel.com, wenzhuo.lu@intel.com, mb@smartsharesystems.com, stephen@networkplumber.org Date: Thu, 2 Jul 2020 16:21:29 +0300 Message-Id: <20200702132139.28078-3-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200702132139.28078-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0WSe0hTcRTHOfduu3fi7DqNDisURqEFWWHkTbKXWReCKKiIIHPmxUdOZVfN iqB3piK+SjJaolTTjMKmNvOFSVNXlnO+rcyCMkljKelqPead9N/3fM73/L6Hw48mlVVSFR2f lMrrkjSJapmHpPb5XNfq8++ckWsddcCOFr2RsdnfLhJsnSFLxk7a6wh2pNFCsSXW8xT76dcX ks119AJbZHoCbPmIH2sfbZewlsHHFFs1002yNS+csNWLc5TekXLlDeME93zwOsXldOgJbqqp V8blGiuB6xzLJrn7H2dle+nDHpti+MT4dF63ZnOUR1z+ZETKg2LI0FdfI8+COSML5DQy67Hv cQuZBR60kjEAmoenJGIxDdhgmiXE4jtg5y2jbGGk6FyN23UP0NDbLROLGcCKy68pl0vGBKIl Uz8/7su8INDu+AOuhg8TgVUOmzQLaFrCrMC+HwoXVjAb0Zw/JxUT/PH+I9dSNC1nQtHY7uXC SsYP+29Pzz+JTBOFXRM290Y7sG1sEETtg1/MRkrUy9BSmCMR9Wn8Ud1PicOZgG/LLrlNW9A4 0UW5wkhmJT6sXyPibdhueDW/JjJeOPDV24XJf7KgtpgUsQIzLytFtxpbOqxujOj86SliDicn etzXaQS0/i6R5IF/yf+sUoBKWMKnCdpYXliXxJ8IEjRaIS0pNuhYsrYa/v0hy2+z/QnMWKNb gaFB7an43OGMVEo16cJJbSsgTap9FdtfWiKVihjNyVO8LvmoLi2RF1phKS1RL1EEl40fUTKx mlT+OM+n8LqFLkHLVWchILo5/O50mLz+Ql54aNgBU0if6lzbyk3jeY3QM6AKumpKL1S36DcE PttvE2zBer/3xg/enxIU5W03Eqy+wzCR4JDvqXAeqrAHNMODWUdIXVSorT66QN89tLMsnnXM 0rt9DhqIqN7Fc4u0+l0hV0xDZ4i4Ir13z76bUSNey5+qJUKcZt0qUido/gIzYlzEPwMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuphkeLIzCtJLcpLzFFi42I5/e/4Pd3G+3/jDKat1LV4MOUum0X3hxYm i+0rutgs3n3azmRxZ+9pdotZl5rYLZ7/ecVs0ffrKqPFlJ07GC0W35Gz+PTgBIvF6Zub2S3W fL3IbLH1zF9GBz6PXwuWsnos3vOSyePYzWnsHj0n5zF5vN93lc2jb8sqRo9Tj7qZPVY/+cEW wBGlZ1OUX1qSqpCRX1xiqxRtaGGkZ2hpoWdkYqlnaGwea2VkqqRvZ5OSmpNZllqkb5eglzHx nWvB2umMFfM2TWVuYDxe0cXIySEhYCIxpXErSxcjF4eQwFJGiSc72pi6GDmAEhISr58wQ9QI S/y51sUGUfOZUeLu9HuMIAk2AQ2J0x3zmEBsEYF7TBJbVqqC2MICrhJrfl1hBZnDIqAqce07 L0iYV8BS4vjEn6wQM+UlVm84wAxSwilgJbHlBB9IWEggU+Ly6ytsELacxPX5X5gmMPItYGRY xSiSWlqcm55bbKRXnJhbXJqXrpecn7uJERgT24793LKDsetd8CFGAQ5GJR7eCcf/xgmxJpYV V+YeYpTgYFYS4XU6ezpOiDclsbIqtSg/vqg0J7X4EKMp0HkTmaVEk/OB8ZpXEm9oamhuYWlo bmxubGahJM7bIXAwRkggPbEkNTs1tSC1CKaPiYNTqoFR4reTZ/zGDXomV95LOmaEs7ro2he8 eFy4PLy2oiLpwbF1jjr2e97vPF9tO0nt/OJilTfbv9Q7aYWUMV3KTPjLdfrt7j3vOaLnlm4R 152n89w7I51DtSVQgsWFQ86p/EL9AYOAmRYWcvZL9ypuC/a68UJGPOrFyseyR506qsXWv5fb cHrVS24lluKMREMt5qLiRACRli3TnwIAAA== X-CMS-MailID: 20200702132209eucas1p2d55db5b7637dadea4ccce549fd979377 X-Msg-Generator: CA X-RootMTR: 20200702132209eucas1p2d55db5b7637dadea4ccce549fd979377 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200702132209eucas1p2d55db5b7637dadea4ccce549fd979377 References: <20200427095737.11082-1-i.dyukov@samsung.com> <20200702132139.28078-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v4 2/7] ethdev: add a link status text representation X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: i.dyukov@samsung.com 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 commit add function which treat link status structure and format it to text representation. Signed-off-by: Ivan Dyukov --- MAINTAINERS | 1 + app/test/Makefile | 3 + app/test/meson.build | 2 + app/test/test_ethdev_link.c | 278 +++++++++++++++++++++++ lib/librte_ethdev/rte_ethdev.c | 168 ++++++++++++++ lib/librte_ethdev/rte_ethdev.h | 54 +++++ lib/librte_ethdev/rte_ethdev_version.map | 4 + 7 files changed, 510 insertions(+) create mode 100644 app/test/test_ethdev_link.c diff --git a/MAINTAINERS b/MAINTAINERS index 6a14622a0..94c5cd58e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -378,6 +378,7 @@ T: git://dpdk.org/next/dpdk-next-net F: lib/librte_ethdev/ F: devtools/test-null.sh F: doc/guides/prog_guide/switch_representation.rst +F: app/test/test_ethdev* Flow API M: Ori Kam diff --git a/app/test/Makefile b/app/test/Makefile index 5b119aa61..14552073d 100644 --- a/app/test/Makefile +++ b/app/test/Makefile @@ -249,6 +249,9 @@ SRCS-$(CONFIG_RTE_LIBRTE_SECURITY) += test_security.c SRCS-$(CONFIG_RTE_LIBRTE_IPSEC) += test_ipsec.c test_ipsec_perf.c SRCS-$(CONFIG_RTE_LIBRTE_IPSEC) += test_ipsec_sad.c + +SRCS-$(CONFIG_RTE_LIBRTE_ETHER) += test_ethdev_link.c + ifeq ($(CONFIG_RTE_LIBRTE_IPSEC),y) LDLIBS += -lrte_ipsec endif diff --git a/app/test/meson.build b/app/test/meson.build index 1715ddbcb..c5b742c15 100644 --- a/app/test/meson.build +++ b/app/test/meson.build @@ -38,6 +38,7 @@ test_sources = files('commands.c', 'test_efd.c', 'test_efd_perf.c', 'test_errno.c', + 'test_ethdev_link.c', 'test_event_crypto_adapter.c', 'test_event_eth_rx_adapter.c', 'test_event_ring.c', @@ -196,6 +197,7 @@ fast_tests = [ ['eal_flags_misc_autotest', false], ['eal_fs_autotest', true], ['errno_autotest', true], + ['ethdev_link_status' true], ['event_ring_autotest', true], ['fib_autotest', true], ['fib6_autotest', true], diff --git a/app/test/test_ethdev_link.c b/app/test/test_ethdev_link.c new file mode 100644 index 000000000..b019a61f8 --- /dev/null +++ b/app/test/test_ethdev_link.c @@ -0,0 +1,278 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright (c) 2020 Samsung Electronics Co., Ltd All Rights Reserved + */ + +#include +#include + +#include +#include "test.h" + + +static int32_t +test_link_status_up_default(void) +{ + int ret = 0; + struct rte_eth_link link_status = { + .link_speed = ETH_SPEED_NUM_2_5G, + .link_status = ETH_LINK_UP, + .link_autoneg = ETH_LINK_AUTONEG, + .link_duplex = ETH_LINK_FULL_DUPLEX + }; + char text[128]; + ret = rte_eth_link_format(text, 128, NULL, &link_status); + RTE_TEST_ASSERT(ret > 0, "Failed to format default string\n"); + printf("Default link up #1: %s\n", text); + TEST_ASSERT_BUFFERS_ARE_EQUAL("Link up at 2.5 Gbit/s FDX Autoneg", + text, strlen(text), "Invalid default link status string"); + + link_status.link_duplex = ETH_LINK_HALF_DUPLEX; + link_status.link_autoneg = ETH_LINK_FIXED; + link_status.link_speed = ETH_SPEED_NUM_10M, + ret = rte_eth_link_format(text, 128, NULL, &link_status); + printf("Default link up #2: %s\n", text); + RTE_TEST_ASSERT(ret > 0, "Failed to format default string\n"); + TEST_ASSERT_BUFFERS_ARE_EQUAL("Link up at 10 Mbit/s HDX Fixed", + text, strlen(text), "Invalid default link status " + "string with HDX"); + + link_status.link_speed = ETH_SPEED_NUM_UNKNOWN, + ret = rte_eth_link_format(text, 128, NULL, &link_status); + printf("Default link up #3: %s\n", text); + RTE_TEST_ASSERT(ret > 0, "Failed to format default string\n"); + TEST_ASSERT_BUFFERS_ARE_EQUAL("Link up at Unknown speed HDX Fixed", + text, strlen(text), "Invalid default link status " + "string with HDX"); + return TEST_SUCCESS; +} + +static int32_t +test_link_status_down_default(void) +{ + int ret = 0; + struct rte_eth_link link_status = { + .link_speed = ETH_SPEED_NUM_2_5G, + .link_status = ETH_LINK_DOWN, + .link_autoneg = ETH_LINK_AUTONEG, + .link_duplex = ETH_LINK_FULL_DUPLEX + }; + char text[128]; + ret = rte_eth_link_format(text, 128, NULL, &link_status); + RTE_TEST_ASSERT(ret > 0, "Failed to format default string\n"); + TEST_ASSERT_BUFFERS_ARE_EQUAL("Link down", + text, strlen(text), "Invalid default link status string"); + + return TEST_SUCCESS; +} + +static int32_t +test_link_status_string_overflow(void) +{ + int ret = 0; + struct rte_eth_link link_status = { + .link_speed = ETH_SPEED_NUM_2_5G, + .link_status = ETH_LINK_UP, + .link_autoneg = ETH_LINK_AUTONEG, + .link_duplex = ETH_LINK_FULL_DUPLEX + }; + char text[128]; + int i = 0; + for (i = 0; i < 128; i++) + text[i] = 'Y'; + text[127] = '\0'; + + ret = rte_eth_link_format(NULL, 2, "status %S, %G Gbits/s", + &link_status); + RTE_TEST_ASSERT(ret < 0, "Format string should fail, but it's ok\n"); + + ret = rte_eth_link_format(text, 2, "status %S, %G Gbits/s", + &link_status); + RTE_TEST_ASSERT(ret < 0, "Format string should fail, but it's ok\n"); + RTE_TEST_ASSERT(text[2] == 'Y', "String1 overflow\n"); + + ret = rte_eth_link_format(text, 8, NULL, + &link_status); + RTE_TEST_ASSERT(ret < 0, "Default format string should fail," + " but it's ok\n"); + RTE_TEST_ASSERT(text[8] == 'Y', "String1 overflow\n"); + + ret = rte_eth_link_format(text, 10, NULL, + &link_status); + RTE_TEST_ASSERT(ret < 0, "Default format string should fail," + " but it's ok\n"); + RTE_TEST_ASSERT(text[10] == 'Y', "String1 overflow\n"); + + text[1] = 'Y'; + ret = rte_eth_link_format(text, 1, "%S", + &link_status); + RTE_TEST_ASSERT(ret < 0, "Status string should fail, but it's ok\n"); + RTE_TEST_ASSERT(text[1] == 'Y', "String1 overflow\n"); + + return TEST_SUCCESS; +} + +static int32_t +test_link_status_format(void) +{ + int ret = 0; + struct rte_eth_link link_status = { + .link_speed = ETH_SPEED_NUM_40G, + .link_status = ETH_LINK_UP, + .link_autoneg = ETH_LINK_AUTONEG, + .link_duplex = ETH_LINK_FULL_DUPLEX + }; + char text[128]; + int i = 0; + for (i = 0; i < 128; i++) + text[i] = 'Y'; + text[127] = '\0'; + printf("status format #1: %s\n", text); + ret = rte_eth_link_format(text, 128, "status = %S, duplex = %D\n", + &link_status); + printf("status format #2: %s\n", text); + RTE_TEST_ASSERT(ret > 0, "Failed to format string\n"); + TEST_ASSERT_BUFFERS_ARE_EQUAL("status = Up, duplex = FDX\n", + text, strlen(text), "Invalid status string1."); + + ret = rte_eth_link_format(text, 128, "%A", &link_status); + printf("status format #3: %s\n", text); + RTE_TEST_ASSERT(ret > 0, "Failed to format string\n"); + TEST_ASSERT_BUFFERS_ARE_EQUAL("Autoneg", + text, strlen(text), "Invalid status string2."); + + ret = rte_eth_link_format(text, 128, + "%G", + &link_status); + printf("status format #4: %s\n", text); + RTE_TEST_ASSERT(ret > 0, "Failed to format string\n"); + TEST_ASSERT_BUFFERS_ARE_EQUAL("40.0", + text, strlen(text), "Invalid status string3."); + + ret = rte_eth_link_format(text, 128, + "%M", + &link_status); + printf("status format #5: %s\n", text); + RTE_TEST_ASSERT(ret > 0, "Failed to format string\n"); + TEST_ASSERT_BUFFERS_ARE_EQUAL("40000", + text, strlen(text), "Invalid status string4."); + return TEST_SUCCESS; +} + +static int32_t +test_link_status_return_value(void) +{ + int ret = 0; + struct rte_eth_link link_status = { + .link_speed = ETH_SPEED_NUM_40G, + .link_status = ETH_LINK_UP, + .link_autoneg = ETH_LINK_AUTONEG, + .link_duplex = ETH_LINK_FULL_DUPLEX + }; + char text[128]; + int i = 0; + for (i = 0; i < 128; i++) + text[i] = 'Y'; + text[127] = '\0'; + ret = rte_eth_link_format(text, 128, "status = %S, ", + &link_status); + printf("return value #1:ret=%u, text=%s\n", ret, text); + ret += rte_eth_link_format(text + ret, 128 - ret, + "%A", + &link_status); + printf("return value #2:ret=%u, text=%s\n", ret, text); + ret += rte_eth_link_format(text + ret, 128 - ret, + ", duplex = %D\n", + &link_status); + printf("return value #3:ret=%u, text=%s\n", ret, text); + ret += rte_eth_link_format(text + ret, 128 - ret, + "%M Mbits/s\n", + &link_status); + printf("return value #4:ret=%u, text=%s\n", ret, text); + RTE_TEST_ASSERT(ret > 0, "Failed to format string\n"); + TEST_ASSERT_BUFFERS_ARE_EQUAL("status = Up, Autoneg, duplex = FDX\n" + "40000 Mbits/s\n", + text, strlen(text), "Invalid status string"); + + return TEST_SUCCESS; +} + +static int32_t +test_link_status_invalid_fmt(void) +{ + int ret = 0; + struct rte_eth_link link_status = { + .link_speed = ETH_SPEED_NUM_40G, + .link_status = ETH_LINK_UP, + .link_autoneg = ETH_LINK_AUTONEG, + .link_duplex = ETH_LINK_FULL_DUPLEX + }; + char text[128]; + ret = rte_eth_link_format(text, 128, "status = %", + &link_status); + RTE_TEST_ASSERT(ret < 0, "Status string1 should fail, but it's ok\n"); + ret = rte_eth_link_format(text, 128, + ", duplex = %d\n", + &link_status); + RTE_TEST_ASSERT(ret < 0, "Status string2 should fail, but it's ok\n"); + ret = rte_eth_link_format(text, 128, + "% Mbits/s\n", + &link_status); + RTE_TEST_ASSERT(ret < 0, "Status string3 should fail, but it's ok\n"); + + return TEST_SUCCESS; +} + +static int32_t +test_link_status_format_edges(void) +{ + int ret = 0; + struct rte_eth_link link_status = { + .link_speed = ETH_SPEED_NUM_UNKNOWN, + .link_status = ETH_LINK_DOWN, + .link_autoneg = ETH_LINK_AUTONEG, + .link_duplex = ETH_LINK_HALF_DUPLEX + }; + char text[128]; + ret = rte_eth_link_format(text, 4, "%S", &link_status); + printf("format edges #1: %s\n", text); + RTE_TEST_ASSERT(ret < 0, "It should fail. No space for " + "zero terminator\n"); + ret = rte_eth_link_format(text, 6, "123%D", &link_status); + printf("format edges #2: %s\n", text); + RTE_TEST_ASSERT(ret < 0, "It should fail. No space for " + "zero terminator\n"); + ret = rte_eth_link_format(text, 7, "%A", &link_status); + printf("format edges #3: %s\n", text); + RTE_TEST_ASSERT(ret < 0, "It should fail. No space for " + "zero terminator\n"); + ret = rte_eth_link_format(text, 8, "%A", &link_status); + printf("format edges #4: %s\n", text); + RTE_TEST_ASSERT(ret > 0, "It should ok, but it fails\n"); + return TEST_SUCCESS; +} +static struct unit_test_suite link_status_testsuite = { + .suite_name = "link status formating", + .setup = NULL, + .teardown = NULL, + .unit_test_cases = { + TEST_CASE(test_link_status_up_default), + TEST_CASE(test_link_status_down_default), + TEST_CASE(test_link_status_string_overflow), + TEST_CASE(test_link_status_format), + TEST_CASE(test_link_status_format_edges), + TEST_CASE(test_link_status_invalid_fmt), + TEST_CASE(test_link_status_return_value), + TEST_CASES_END() /**< NULL terminate unit test array */ + } +}; + +static int +test_link_status(void) +{ + rte_log_set_global_level(RTE_LOG_DEBUG); + rte_log_set_level(RTE_LOGTYPE_EAL, RTE_LOG_DEBUG); + + return unit_test_suite_runner(&link_status_testsuite); +} + +REGISTER_TEST_COMMAND(ethdev_link_status, test_link_status); diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c index 8e10a6fc3..79158f119 100644 --- a/lib/librte_ethdev/rte_ethdev.c +++ b/lib/librte_ethdev/rte_ethdev.c @@ -2385,6 +2385,174 @@ rte_eth_link_get_nowait(uint16_t port_id, struct rte_eth_link *eth_link) return 0; } +static int +rte_eth_link_format_parser(char *str, size_t len, const char *const fmt, + struct rte_eth_link *link) +{ + size_t offset = 0; + const char *fmt_cur = fmt; + char *str_cur = str; + double gbits = (double)link->link_speed / 1000.; + static const char AUTONEG_STR[] = "Autoneg"; + static const char FIXED_STR[] = "Fixed"; + static const char FDX_STR[] = "FDX"; + static const char HDX_STR[] = "HDX"; + static const char UNKNOWN_STR[] = "Unknown"; + static const char UP_STR[] = "Up"; + static const char DOWN_STR[] = "Down"; + + char gbits_str[20]; + char mbits_str[20]; + /* preformat complex formating to easily concatinate it further */ + snprintf(mbits_str, 20, "%u", link->link_speed); + snprintf(gbits_str, 20, "%.1f", gbits); + /* init str before formating */ + str[0] = 0; + while (*fmt_cur) { + /* check str bounds */ + if (offset > (len - 1)) { + str[len - 1] = '\0'; + return -1; + } + if (*fmt_cur == '%') { + /* set null terminator to current position, + * it's required for strlcat + */ + *str_cur = '\0'; + switch (*++fmt_cur) { + /* Speed in Mbits/s */ + case 'M': + if (link->link_speed == + ETH_SPEED_NUM_UNKNOWN) + offset = strlcat(str, UNKNOWN_STR, + len); + else + offset = strlcat(str, mbits_str, len); + break; + /* Speed in Gbits/s */ + case 'G': + if (link->link_speed == + ETH_SPEED_NUM_UNKNOWN) + offset = strlcat(str, UNKNOWN_STR, + len); + else + offset = strlcat(str, gbits_str, len); + break; + /* Link status */ + case 'S': + offset = strlcat(str, link->link_status ? + UP_STR : DOWN_STR, len); + break; + /* Link autoneg */ + case 'A': + offset = strlcat(str, link->link_autoneg ? + AUTONEG_STR : FIXED_STR, len); + break; + /* Link duplex */ + case 'D': + offset = strlcat(str, link->link_duplex ? + FDX_STR : HDX_STR, len); + break; + /* Error cases */ + default: + return -1; + + } + if (offset > (len - 1)) + return -1; + + str_cur = str + offset; + } else { + *str_cur++ = *fmt_cur; + offset++; + } + fmt_cur++; + } + *str_cur = '\0'; + return offset; +} + +int +rte_eth_link_printf(const char *const fmt, + struct rte_eth_link *link) +{ + char text[200]; + int ret; + ret = rte_eth_link_format(text, 200, fmt, link); + if (ret > 0) + printf("%s", text); + return ret; +} + +int +rte_eth_link_format(char *str, size_t len, const char *const fmt, + struct rte_eth_link *link) +{ + size_t offset = 0; + double gbits = (double)link->link_speed / 1000.; + char gbits_str[20]; + char mbits_str[20]; + /* TBD: make it international? */ + static const char LINK_DOWN_STR[] = "Link down"; + static const char LINK_UP_STR[] = "Link up at "; + static const char UNKNOWN_SPEED_STR[] = "Unknown speed "; + static const char MBITS_STR[] = "Mbit/s"; + static const char GBITS_STR[] = "Gbit/s"; + static const char AUTONEG_STR[] = "Autoneg"; + static const char FIXED_STR[] = "Fixed"; + static const char FDX_STR[] = "FDX "; + static const char HDX_STR[] = "HDX "; + if (str == NULL || len == 0) + return -1; + /* default format string, if no fmt is specified */ + if (fmt == NULL) { + if (link->link_status == ETH_LINK_DOWN) { + if (sizeof(LINK_DOWN_STR) > len) + return -1; + return strlcpy(str, LINK_DOWN_STR, len); + } + + /* preformat complex strings to easily concatinate it further */ + snprintf(mbits_str, 20, "%u %s ", link->link_speed, MBITS_STR); + snprintf(gbits_str, 20, "%.1f %s ", gbits, GBITS_STR); + + offset = strlcpy(str, LINK_UP_STR, len); + /* reserve one byte to null terminator */ + if (offset > (len - 1)) + return -1; + /* link speed */ + if (link->link_speed == ETH_SPEED_NUM_UNKNOWN) { + offset = strlcat(str, UNKNOWN_SPEED_STR, len); + if (offset > (len - 1)) + return -1; + } else { + if (link->link_speed < ETH_SPEED_NUM_1G) { + offset = strlcat(str, mbits_str, len); + if (offset > (len - 1)) + return -1; + } else { + offset = strlcat(str, gbits_str, len); + if (offset > (len - 1)) + return -1; + } + } + /* link duplex */ + offset = strlcat(str, link->link_duplex ? + FDX_STR : HDX_STR, len); + if (offset > (len - 1)) + return -1; + /* link autonegotiation */ + offset = strlcat(str, link->link_autoneg ? + AUTONEG_STR : FIXED_STR, len); + if (offset > (len - 1)) + return -1; + /* Formated status */ + } else + offset = rte_eth_link_format_parser(str, len, fmt, link); + + return offset; +} + int rte_eth_stats_get(uint16_t port_id, struct rte_eth_stats *stats) { diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h index 2090af501..f444101a6 100644 --- a/lib/librte_ethdev/rte_ethdev.h +++ b/lib/librte_ethdev/rte_ethdev.h @@ -2295,6 +2295,60 @@ int rte_eth_link_get(uint16_t port_id, struct rte_eth_link *link); */ int rte_eth_link_get_nowait(uint16_t port_id, struct rte_eth_link *link); + +/** + * print formated link status to stdout. This function threats all + * special values like ETH_SPEED_NUM_UNKNOWN, ETH_LINK_DOWN etc. and convert + * them to textual representation. + * + * @param fmt + * Format string which allow to format link status. If NULL is provided + * , default formating will be applied. + * Following specifiers are available: + * - '%M' link speed in Mbits/s + * - '%G' link speed in Gbits/s + * - '%S' link status. e.g. Up or Down + * - '%A' link autonegotiation state + * - '%D' link duplex state + * @param link + * Link status provided by rte_eth_link_get function + * @return + * - Number of bytes written to stdout. In case of error, -1 is returned. + * + */ +__rte_experimental +int rte_eth_link_printf(const char *const fmt, + struct rte_eth_link *link); + +/** + * Format link status to textual representation. This function threats all + * special values like ETH_SPEED_NUM_UNKNOWN, ETH_LINK_DOWN etc. and convert + * them to textual representation. + * + * @param str + * A pointer to a string to be filled with textual representation of + * device status. + * @param len + * Length of available memory at 'str' string. + * @param fmt + * Format string which allow to format link status. If NULL is provided + * , default formating will be applied. + * Following specifiers are available: + * - '%M' link speed in Mbits/s + * - '%G' link speed in Gbits/s + * - '%S' link status. e.g. Up or Down + * - '%A' link autonegotiation state + * - '%D' link duplex state + * @param link + * Link status provided by rte_eth_link_get function + * @return + * - Number of bytes written to str array. In case of error, -1 is returned. + * + */ +__rte_experimental +int rte_eth_link_format(char *str, size_t len, const char *const fmt, + struct rte_eth_link *eth_link); + /** * Retrieve the general I/O statistics of an Ethernet device. * diff --git a/lib/librte_ethdev/rte_ethdev_version.map b/lib/librte_ethdev/rte_ethdev_version.map index 715505604..a4c5e7653 100644 --- a/lib/librte_ethdev/rte_ethdev_version.map +++ b/lib/librte_ethdev/rte_ethdev_version.map @@ -241,4 +241,8 @@ EXPERIMENTAL { __rte_ethdev_trace_rx_burst; __rte_ethdev_trace_tx_burst; rte_flow_get_aged_flows; + + # added in 20.08 + rte_eth_link_format; + rte_eth_link_printf; }; From patchwork Thu Jul 2 13:21:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 72838 X-Patchwork-Delegate: ferruh.yigit@amd.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 E226CA0520; Thu, 2 Jul 2020 15:22:32 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4D62E1D9FE; Thu, 2 Jul 2020 15:22:14 +0200 (CEST) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id CE7251D9F6 for ; Thu, 2 Jul 2020 15:22:12 +0200 (CEST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200702132212euoutp0181f3ab5d3853ef218aa69f3b7c777008~d8jBIEaf52089820898euoutp01D for ; Thu, 2 Jul 2020 13:22:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200702132212euoutp0181f3ab5d3853ef218aa69f3b7c777008~d8jBIEaf52089820898euoutp01D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1593696132; bh=yH4wqf+9CvJZ6kIX7HBs2k+QR9BiafgDjJMHMyZgdQ8=; h=From:To:Subject:Date:In-Reply-To:Reply-To:References:From; b=CZ44xdolHiVr+Kr3yK4xIVwgy7at94vKZngBDChQ3n8SO0+0Glmgb0WbD8f8BecWu VgCl34xusLm1p5XrC8uCyJ9eQSo6IBIyZMxRKPIeEwDZzUotCweg7zd24t2W2vqAS2 eOi88Ry3ZnumIDtJxXz/a5YM5QtF+Xh3P39xtprM= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200702132212eucas1p12680d91d89509e206578f7bbda88ae3a~d8jA8gI1S2053720537eucas1p1G; Thu, 2 Jul 2020 13:22:12 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id B6.00.06456.38FDDFE5; Thu, 2 Jul 2020 14:22:12 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200702132211eucas1p1e49daea80551730a4fb4736691f3edac~d8jAhoTCp2043520435eucas1p1S; Thu, 2 Jul 2020 13:22:11 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200702132211eusmtrp258f3bad862d533611a4a326c7b8093c3~d8jAg-CGM2416424164eusmtrp2W; Thu, 2 Jul 2020 13:22:11 +0000 (GMT) X-AuditID: cbfec7f2-7efff70000001938-05-5efddf834cc4 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id B5.E2.06314.38FDDFE5; Thu, 2 Jul 2020 14:22:11 +0100 (BST) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200702132210eusmtip2ee956a365525d66cc22dfdca84c01bb1~d8i-oiJRf0577205772eusmtip2b; Thu, 2 Jul 2020 13:22:10 +0000 (GMT) From: Ivan Dyukov To: dev@dpdk.org, i.dyukov@samsung.com, v.kuramshin@samsung.com, thomas@monjalon.net, david.marchand@redhat.com, ferruh.yigit@intel.com, arybchenko@solarflare.com, wei.zhao1@intel.com, jia.guo@intel.com, beilei.xing@intel.com, qiming.yang@intel.com, wenzhuo.lu@intel.com, mb@smartsharesystems.com, stephen@networkplumber.org Date: Thu, 2 Jul 2020 16:21:30 +0300 Message-Id: <20200702132139.28078-4-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200702132139.28078-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0WSe0hTcRTH+917t3sdTm5T8uBCaRRlIzUKupaYScKNosd/Yajd8qamW7X5 yOoPGVY6xcRES0qlUYkKlW9Nw3zrVEqZs3xkYvmIsqZizlfOq/Tf53y/58XhULisWORCRaij eY2ai1KIJURFy0L3vsQvy8Fej7MxZiRzSMyk/E7EmMoCvZj5ZanEmME6I8nk9OhIZnxpCmfS rCbEZFZXIcYw6MpYRtoIxviplGSK5z7iTHnnMvJzYK35z0WsoXYSY1s+ZZFsansuxk6/M4nZ tLJCxHaMpuBs0dhf8VkqUOITykdFxPIaT9+LkvC+2jzy+gOPm7oGA0pAMzv1yI4C+iD0FuQT NpbRBQjMsyf1SLLGswimyzsIIZhBkFUzQ25WNC8OiAXjJYI3JU9FQjCHIKlrdr2XmN4DxqRc zGY40Z0YWKyryGY40j6Qldq6zgS9C4a6volsLKW9ITsjFwkj3KDodT2uRxRlRx+GsjYHYT9X MOfNrvcEuoaEZOMjQsg/DsmDpg12hKnWso1Vt8NqdR4m8G2YLzGTQnESguFndzeSjkLZj27S Ngyn3eFVjacgH4OlJ1Mimwy0A/T/3GqT8TXMqMjGBVkKSfdkQrYC6tt7NmSA5UV7QWah35CD CeepWztP0wsiHbnl/J+Vj1AhcuZjtKowXrtfzcd5aDmVNkYd5nH5mqoErf2QcaXVUoXmei41 IJpCCnvpRPtysEzExWrjVQ0IKFzhJPXvMgbLpKFc/C1ecy1EExPFaxuQnCIUztIDzyaDZHQY F81H8vx1XrPpYpSdSwJSRv5R3Rk/03vhz0R6YvodP3Pj8I0dBeVBBuU5VRzk5Cl8m1WZiif9 pQ+bDn3hHM/3rQwFnmo0nfDKeBSa4J2Y8mGl6O2298rz7uaMEK/WgA7lV511bPT7oTbPGw+d 4znZFvlVncPAywV/X738im6+xlOubxvY/VF5//SR0c+oJ0BBaMO5/XtxjZb7BzpJqHo/AwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplkeLIzCtJLcpLzFFi42I5/e/4Pd3m+3/jDK6+V7J4MOUum0X3hxYm i+0rutgs3n3azmRxZ+9pdotZl5rYLZ7/ecVs0ffrKqPFlJ07GC0W35Gz+PTgBIvF6Zub2S3W fL3IbLH1zF9GBz6PXwuWsnos3vOSyePYzWnsHj0n5zF5vN93lc2jb8sqRo9Tj7qZPVY/+cEW wBGlZ1OUX1qSqpCRX1xiqxRtaGGkZ2hpoWdkYqlnaGwea2VkqqRvZ5OSmpNZllqkb5egl3Ft z3z2gn69iqZDixkbGD+rdDFyckgImEgc/X2brYuRi0NIYCmjxLcZB5m7GDmAEhISr58wQ9QI S/y51gVV85lR4vPlfYwgCTYBDYnTHfOYQGwRgXtMEltWqoLYwgI2EtN6joPVsAioStw9+5QV xOYVsJSYPmkeI8RQeYnVGw6A7eIUsJLYcoIPJCwkkClx+fUVNghbTuL6/C9MExj5FjAyrGIU SS0tzk3PLTbUK07MLS7NS9dLzs/dxAiMim3Hfm7ewXhpY/AhRgEORiUe3gnH/8YJsSaWFVfm HmKU4GBWEuF1Ons6Tog3JbGyKrUoP76oNCe1+BCjKdB9E5mlRJPzgRGbVxJvaGpobmFpaG5s bmxmoSTO2yFwMEZIID2xJDU7NbUgtQimj4mDU6qBMdzNTmu3mFGoSYJzc/q1rYUxt5l2fg2R /PejwnWyUKy88i5GZtfN6Rsm8tkbGW5+bHyr9fGCfUc31se9Zj0hPcX306aA7i9b202LpZN/ JqbfYLg0UYL3rJ7sheYQEzPPreJz1C+9uhioVtua/+DUmogs95XyZS2isRH+aU1r5N6xzaqz bRRXYinOSDTUYi4qTgQANZONz6ACAAA= X-CMS-MailID: 20200702132211eucas1p1e49daea80551730a4fb4736691f3edac X-Msg-Generator: CA X-RootMTR: 20200702132211eucas1p1e49daea80551730a4fb4736691f3edac X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200702132211eucas1p1e49daea80551730a4fb4736691f3edac References: <20200427095737.11082-1-i.dyukov@samsung.com> <20200702132139.28078-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v4 3/7] app: UNKNOWN link speed print format X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: i.dyukov@samsung.com List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Add usage of rte_eth_link_format function to example applications Signed-off-by: Ivan Dyukov --- app/proc-info/main.c | 9 +++------ app/test-pipeline/init.c | 11 +++++------ app/test-pmd/config.c | 19 +++++++++++-------- app/test-pmd/testpmd.c | 9 +-------- app/test/test_pmd_perf.c | 17 +++++++---------- 5 files changed, 27 insertions(+), 38 deletions(-) diff --git a/app/proc-info/main.c b/app/proc-info/main.c index abeca4aab..4a4c572c3 100644 --- a/app/proc-info/main.c +++ b/app/proc-info/main.c @@ -685,12 +685,9 @@ show_port(void) printf("Link get failed (port %u): %s\n", i, rte_strerror(-ret)); } else { - printf("\t -- link speed %d duplex %d," - " auto neg %d status %d\n", - link.link_speed, - link.link_duplex, - link.link_autoneg, - link.link_status); + rte_eth_link_printf("\t -- link speed: %M, duplex: %D," + " auto neg: %A, status: %S\n", + &link); } printf("\t -- promiscuous (%d)\n", rte_eth_promiscuous_get(i)); diff --git a/app/test-pipeline/init.c b/app/test-pipeline/init.c index 67d54ae05..dfeeec943 100644 --- a/app/test-pipeline/init.c +++ b/app/test-pipeline/init.c @@ -155,7 +155,7 @@ static void app_ports_check_link(void) { uint32_t all_ports_up, i; - + char link_status_text[50]; all_ports_up = 1; for (i = 0; i < app.n_ports; i++) { @@ -173,12 +173,11 @@ app_ports_check_link(void) all_ports_up = 0; continue; } - - RTE_LOG(INFO, USER1, "Port %u (%u Gbps) %s\n", + rte_eth_link_format(link_status_text, 50, "(%G Gbps) %S", + &link); + RTE_LOG(INFO, USER1, "Port %u %s\n", port, - link.link_speed / 1000, - link.link_status ? "UP" : "DOWN"); - + link_status_text); if (link.link_status == ETH_LINK_DOWN) all_ports_up = 0; } diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index 5381207cc..77fa9a0e9 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -600,10 +600,9 @@ port_infos_display(portid_t port_id) } else printf("\nmemory allocation on the socket: %u",port->socket_id); - printf("\nLink status: %s\n", (link.link_status) ? ("up") : ("down")); - printf("Link speed: %u Mbps\n", (unsigned) link.link_speed); - printf("Link duplex: %s\n", (link.link_duplex == ETH_LINK_FULL_DUPLEX) ? - ("full-duplex") : ("half-duplex")); + rte_eth_link_printf("\nLink status: %S\n" + "Link speed: %M Mbps\n" + "Link duplex: %D\n", &link); if (!rte_eth_dev_get_mtu(port_id, &mtu)) printf("MTU: %u\n", mtu); @@ -726,6 +725,8 @@ port_summary_display(portid_t port_id) struct rte_eth_link link; struct rte_eth_dev_info dev_info; char name[RTE_ETH_NAME_MAX_LEN]; + char status_text[6]; + char speed_text[12]; int ret; if (port_id_is_invalid(port_id, ENABLED_WARN)) { @@ -746,12 +747,14 @@ port_summary_display(portid_t port_id) if (ret != 0) return; - printf("%-4d %02X:%02X:%02X:%02X:%02X:%02X %-12s %-14s %-8s %uMbps\n", + rte_eth_link_format(status_text, 6, "%S", &link); + rte_eth_link_format(speed_text, 12, "%M", &link); + printf("%-4d %02X:%02X:%02X:%02X:%02X:%02X %-12s %-14s %-8s %sMbps\n", port_id, mac_addr.addr_bytes[0], mac_addr.addr_bytes[1], mac_addr.addr_bytes[2], mac_addr.addr_bytes[3], mac_addr.addr_bytes[4], mac_addr.addr_bytes[5], name, - dev_info.driver_name, (link.link_status) ? ("up") : ("down"), - (unsigned int) link.link_speed); + dev_info.driver_name, status_text, + speed_text); } void @@ -3897,7 +3900,7 @@ set_queue_rate_limit(portid_t port_id, uint16_t queue_idx, uint16_t rate) ret = eth_link_get_nowait_print_err(port_id, &link); if (ret < 0) return 1; - if (rate > link.link_speed) { + if (link.link_speed != UINT32_MAX && rate > link.link_speed) { printf("Invalid rate value:%u bigger than link speed: %u\n", rate, link.link_speed); return 1; diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 9cbe6e9f6..621a1055c 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -3007,14 +3007,7 @@ check_all_ports_link_status(uint32_t port_mask) } /* print link status if flag set */ if (print_flag == 1) { - if (link.link_status) - printf( - "Port%d Link Up. speed %u Mbps- %s\n", - portid, link.link_speed, - (link.link_duplex == ETH_LINK_FULL_DUPLEX) ? - ("full-duplex") : ("half-duplex")); - else - printf("Port %d Link Down\n", portid); + rte_eth_link_printf(NULL, &link); continue; } /* clear all_ports_up flag if any link down */ diff --git a/app/test/test_pmd_perf.c b/app/test/test_pmd_perf.c index 352cd4715..8ce464b56 100644 --- a/app/test/test_pmd_perf.c +++ b/app/test/test_pmd_perf.c @@ -126,6 +126,7 @@ check_all_ports_link_status(uint16_t port_num, uint32_t port_mask) uint8_t count, all_ports_up, print_flag = 0; struct rte_eth_link link; int ret; + char link_status[50]; printf("Checking link statuses...\n"); fflush(stdout); @@ -146,16 +147,12 @@ check_all_ports_link_status(uint16_t port_num, uint32_t port_mask) /* print link status if flag set */ if (print_flag == 1) { - if (link.link_status) { - printf( - "Port%d Link Up. Speed %u Mbps - %s\n", - portid, link.link_speed, - (link.link_duplex == ETH_LINK_FULL_DUPLEX) ? - ("full-duplex") : ("half-duplex")); - if (link_mbps == 0) - link_mbps = link.link_speed; - } else - printf("Port %d Link Down\n", portid); + if (link.link_status && link_mbps == 0) + link_mbps = link.link_speed; + + rte_eth_link_format(link_status, 50, NULL, + &link); + printf("Port %d %s\n", portid, link_status); continue; } /* clear all_ports_up flag if any link down */ From patchwork Thu Jul 2 13:21:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 72839 X-Patchwork-Delegate: ferruh.yigit@amd.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 8073CA0520; Thu, 2 Jul 2020 15:22:43 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 491201DA05; Thu, 2 Jul 2020 15:22:15 +0200 (CEST) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id 70C5A1DA00 for ; Thu, 2 Jul 2020 15:22:14 +0200 (CEST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200702132214euoutp02f142d051127431ed76003b9677d058cc~d8jC3hO1F1773417734euoutp02L for ; Thu, 2 Jul 2020 13:22:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200702132214euoutp02f142d051127431ed76003b9677d058cc~d8jC3hO1F1773417734euoutp02L DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1593696134; bh=urRoX0IzhKz8REeBkV/dYmzRM15H6Mhp/Ja/d3rqBic=; h=From:To:Subject:Date:In-Reply-To:Reply-To:References:From; b=rLMgTkISDDJ0TCwfLclBcYyuNZuS0vGOAPWbYyMm26fNMFCYLyEhaXNQc+kIq0P+E 5//2UooWqvcHSeK4h3XFXKv8Vv3cNGzJO+ZaWTJwbYXtwtq9J3nB2alzyIYxyVgGY0 SShuZ7Denx/O6Nv3Jcn0pyjS4EcFRWznRdk4SDyY= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200702132213eucas1p19ac4c2eb5fae2b5e684ebc3739db38db~d8jCquCxF2039220392eucas1p1b; Thu, 2 Jul 2020 13:22:13 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id 0D.5F.05997.58FDDFE5; Thu, 2 Jul 2020 14:22:13 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200702132213eucas1p2e0d68a0089f372e81e5a5f9bc622f9a0~d8jCHrkQy3202732027eucas1p2P; Thu, 2 Jul 2020 13:22:13 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200702132213eusmtrp1cf052498c8c22ade1eb357a976e50b3a~d8jCGpI-D1219712197eusmtrp1N; Thu, 2 Jul 2020 13:22:13 +0000 (GMT) X-AuditID: cbfec7f4-677ff7000000176d-b9-5efddf85dd15 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 98.11.06017.58FDDFE5; Thu, 2 Jul 2020 14:22:13 +0100 (BST) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200702132212eusmtip2e4d31a5e37e2831647707a284e3095c7~d8jBQclu30566005660eusmtip2b; Thu, 2 Jul 2020 13:22:12 +0000 (GMT) From: Ivan Dyukov To: dev@dpdk.org, i.dyukov@samsung.com, v.kuramshin@samsung.com, thomas@monjalon.net, david.marchand@redhat.com, ferruh.yigit@intel.com, arybchenko@solarflare.com, wei.zhao1@intel.com, jia.guo@intel.com, beilei.xing@intel.com, qiming.yang@intel.com, wenzhuo.lu@intel.com, mb@smartsharesystems.com, stephen@networkplumber.org Date: Thu, 2 Jul 2020 16:21:31 +0300 Message-Id: <20200702132139.28078-5-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200702132139.28078-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0WSbUhTYRTHeXa33etwcrtaHkwURkEFapofbiWaUXAzKL8Vgi8rL1Nyartq qUSWr6j41tIyfEkTxQmWTZ2WIZKvUyF1maWmqZiGGUtLl9Ocd9G33/mf/zn/h8NDYJRG5ERE Rsexqmh5lEwsEbb0bA67pX82hxzPqPWmZ9RTYjrnR5qAbq3LFtPfja0CerJDj9OlI/dxenFr GaPzTAZEq9t0iK6edKGNM31CWj/xEqcb1t9hdPOgGZ2xY0yVNSKm+vWSgOmZKMaZ3P5yAbP6 xiBm8rT1iBn4koMxmvkNcSARJPEJZ6MiE1iVh2+YJGKj+ikWm2p7u2FqGU9BO0Q2IgggvaHI HJeNJARF1iH42LAq5Is1BGXbc2K++IlA1zqEspHN3kTm41lroxaBdrNZxBfrCIaeVeMWl5g8 AvqscoGl4UAOCsBo2tkbtyf9wfBeJ7SwkDwM/VqNwMJS8iSsV6mtEa6ged6JWR5oQ54CbZ+d RaZIFxivWNvbCWQ7DgOL5TjvPwelC6NWtoflXq2VnUH/IFfIczL8bhrH+eEsBNNV6VaTH2i/ DeOWMIw8Co3tHvxh/KGlO4BHO/iwss9ixnaxqKUE42UpZGVQ/A4ZdPaPWGUA8x9bXmbgRb4Z 8dfpQKCpSUMFyLX0f1QlQvXIkY3nlAqW84pmb7lzciUXH61wvx6jbEK7X0i/3bumQ+1b17oQ SSCZrbSg1xxCieQJXKKyCwGByRykZ4f0IZQ0XJ6YxKpiQlXxUSzXhQ4SQpmj9ETVUjBFKuRx 7A2WjWVV/7oCwsYpBd2dHsp/2+2ew82fL/VZGUtpPtDdU+Lc2/4q8KFbqu9io8Lz0BORYZRi qi445rgGF4u9JCvrV1SzmacLXTOozTuZQcaw4otJgYVtbqH7AxZEqWm2jWpy1uQ28CvFxa9V 8fUqETTh9ahvWj1BXA71mCsYSx7e9ymqYp6NvXnJ816ZTMhFyD2PYSpO/hf3t3csPgMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplkeLIzCtJLcpLzFFi42I5/e/4Pd3W+3/jDG7uFbZ4MOUum0X3hxYm i+0rutgs3n3azmRxZ+9pdotZl5rYLZ7/ecVs0ffrKqPFlJ07GC0W35Gz+PTgBIvF6Zub2S3W fL3IbLH1zF9GBz6PXwuWsnos3vOSyePYzWnsHj0n5zF5vN93lc2jb8sqRo9Tj7qZPVY/+cEW wBGlZ1OUX1qSqpCRX1xiqxRtaGGkZ2hpoWdkYqlnaGwea2VkqqRvZ5OSmpNZllqkb5egl/Fj 8ULmgmaeijV3X7E3MP7n6GLk5JAQMJFon/mQrYuRi0NIYCmjxP3N/5m7GDmAEhISr58wQ9QI S/y51gVV85lRovHhKkaQBJuAhsTpjnlMILaIwD0miS0rVUFsYQFHiavXdrCA2CwCqhInt6wG q+EVsJT4umgKI8RQeYnVGw6A7eIUsJLYcoIPJCwkkClx+fUVNghbTuL6/C9MExj5FjAyrGIU SS0tzk3PLTbSK07MLS7NS9dLzs/dxAiMim3Hfm7Zwdj1LvgQowAHoxIP74Tjf+OEWBPLiitz DzFKcDArifA6nT0dJ8SbklhZlVqUH19UmpNafIjRFOi+icxSosn5wIjNK4k3NDU0t7A0NDc2 NzazUBLn7RA4GCMkkJ5YkpqdmlqQWgTTx8TBKdXAyH314X2HllsnF6/sTN55UshjhWzujCls Ym7z4meead7YUzbtje/d1XNYupcfDpA/PE1LWX/lRt0fAXEztV61lJc5PIq4ERhmec3soXBz F6elorWZzWLJe+uKT+iaLHxfdkX1zyJ+rZg/TRdUeb8qBl/Mu+zQn/a+03RWZsaGX6pvrO81 FsfxK7EUZyQaajEXFScCAGrrMTqgAgAA X-CMS-MailID: 20200702132213eucas1p2e0d68a0089f372e81e5a5f9bc622f9a0 X-Msg-Generator: CA X-RootMTR: 20200702132213eucas1p2e0d68a0089f372e81e5a5f9bc622f9a0 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200702132213eucas1p2e0d68a0089f372e81e5a5f9bc622f9a0 References: <20200427095737.11082-1-i.dyukov@samsung.com> <20200702132139.28078-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v4 4/7] doc: update sample app with unknown speed X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: i.dyukov@samsung.com List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Add usage of rte_eth_link_format function to example applications Signed-off-by: Ivan Dyukov --- doc/guides/sample_app_ug/link_status_intr.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/guides/sample_app_ug/link_status_intr.rst b/doc/guides/sample_app_ug/link_status_intr.rst index 04c40f285..7d7b31798 100644 --- a/doc/guides/sample_app_ug/link_status_intr.rst +++ b/doc/guides/sample_app_ug/link_status_intr.rst @@ -158,6 +158,7 @@ An example callback function that has been written as indicated below. { struct rte_eth_link link; int ret; + char link_status[200]; RTE_SET_USED(param); @@ -169,11 +170,10 @@ An example callback function that has been written as indicated below. if (ret < 0) { printf("Failed to get port %d link status: %s\n\n", port_id, rte_strerror(-ret)); - } else if (link.link_status) { - printf("Port %d Link Up - speed %u Mbps - %s\n\n", port_id, (unsigned)link.link_speed, - (link.link_duplex == ETH_LINK_FULL_DUPLEX) ? ("full-duplex") : ("half-duplex")); - } else - printf("Port %d Link Down\n\n", port_id); + } else { + rte_eth_link_format(link_status, 200, NULL, &link); + printf("Port %d %s\n\n", port_id, link_status); + } } This function is called when a link status interrupt is present for the right port. From patchwork Thu Jul 2 13:21:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 72840 X-Patchwork-Delegate: ferruh.yigit@amd.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 694E8A0520; Thu, 2 Jul 2020 15:22:54 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 906F31D9FA; Thu, 2 Jul 2020 15:22:17 +0200 (CEST) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id 1B7A81DA09 for ; Thu, 2 Jul 2020 15:22:16 +0200 (CEST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200702132215euoutp02306a385fad0f2b89288969a50faf627a~d8jEb9ynW1774017740euoutp02K for ; Thu, 2 Jul 2020 13:22:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200702132215euoutp02306a385fad0f2b89288969a50faf627a~d8jEb9ynW1774017740euoutp02K DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1593696135; bh=17ibl6HaLPxBGNOacQTc7ZFoyHravyHHIuegItowmfE=; h=From:To:Subject:Date:In-Reply-To:Reply-To:References:From; b=I1/Qd8Peo+SOKmA5Raa4Nc2FnKBQ8BIni5+0Qs2S2+gaTVgSDVK5lb9AdmgVtDL0U vKsAT57l1wD5Qp0L1ZGmmFhvJOiouU9qk6Q2HiuvBQXWm7bLagHSmEXU9AXI4sq9pA HzQGpIoUFxaOiK5eVKMyIFr8k1eOs2NJZ6wg6B3Y= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200702132215eucas1p141c52fb238bf915e2094997f7ce66263~d8jEPGwXD2046320463eucas1p1c; Thu, 2 Jul 2020 13:22:15 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id 5A.00.06456.78FDDFE5; Thu, 2 Jul 2020 14:22:15 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200702132215eucas1p1f282fb3fd02e2107658bde6adc5d5166~d8jD4b7nU2044920449eucas1p1E; Thu, 2 Jul 2020 13:22:15 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200702132215eusmtrp243d06eca9050d302090bcae28964e9b8~d8jD3q4mW2389023890eusmtrp2x; Thu, 2 Jul 2020 13:22:15 +0000 (GMT) X-AuditID: cbfec7f2-7efff70000001938-13-5efddf872aa2 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id C9.E2.06314.78FDDFE5; Thu, 2 Jul 2020 14:22:15 +0100 (BST) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200702132214eusmtip204d2a63caa8a7639a0a109ac6c19c0cb~d8jC_Lpyf1144211442eusmtip2q; Thu, 2 Jul 2020 13:22:14 +0000 (GMT) From: Ivan Dyukov To: dev@dpdk.org, i.dyukov@samsung.com, v.kuramshin@samsung.com, thomas@monjalon.net, david.marchand@redhat.com, ferruh.yigit@intel.com, arybchenko@solarflare.com, wei.zhao1@intel.com, jia.guo@intel.com, beilei.xing@intel.com, qiming.yang@intel.com, wenzhuo.lu@intel.com, mb@smartsharesystems.com, stephen@networkplumber.org Date: Thu, 2 Jul 2020 16:21:32 +0300 Message-Id: <20200702132139.28078-6-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200702132139.28078-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0VSW0gUURjmzOzOjIsr02j5Z6K0KWblDQunSNPqYcCXeikwUrd2UPHKXiyL QCxT1jBRKdNQU6L1Utq2XknzQt7W3BJEDSu7iGlpom6mpuY6K71957v8338Oh8KZCrETFZOg 5pUJ8jgZIRHVdy0PeGV8Wgv3nex0Y8fzPxBs1twtjG3QaQl2dr4BY8dajCRbOJhGspN/p3E2 e2UIsflNjYgtH3Nh58d7RKxx9AXJVpvf4Wxd/xoKtuNWSh+LufKXUxjXNXqP5O70FmPcr9Yh gss2VCKu70sWzlV9+0OcocIkxxV8XEwyr/QJipRELyx7JfWRV9t/q1NRPaFFNhTQh2G8871I iyQUQ+sQ5OhqRRaBoRcRrOoIAS8g6GjVbAeKmkyEEHiCQNc1aD2YEeQtjW2lCXo/GDOLMYvg QPdjML+ygSyCPR0CdzOqtkwi2h0muk1iC5bSR6E1/SkpVLhCVW0brkUUZUMfA0OPnbCFCwyX LG7NBLqeBHNBqfUOp2GodQEXsD1Mdxusc5xho6kEE/B1WNIPk0I4E8HHsnSr6QQYfgyQljKc 9oSaZh+BDoHJ9rStHYC2g5GZHRYa34S59fettBQybzOCWwZtvYNWGmBt1VagORgx/bQ+TwuC R+lmPAe5Fv7vKkWoEjnyGlV8FK/yS+CveKvk8SpNQpT35cR4Pdr8QMb17vlGZB681IFoCsls pd9718IZsTxZlRLfgYDCZQ7Sk2+M4YxUIU+5xisTI5SaOF7VgfZQIpmj1L9s6iJDR8nVfCzP J/HKbRWjbJxSkZspYPdIf77oSIn6675Z3xZDMZEVVvc8tYIJYE7FOsjPqbNyX72tlVRfcPQP vdnusDfjRnrcToVnWnPNyGcGy5ypYQKfOR70C43wCIx8OKSQ7orSvw47a0zLlZiwfXlNAQ+C vQzuhypTm30Kghb8PTRFzut2A+f17hNq7RjGzMlEqmi53wFcqZL/A+mj9pc8AwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupikeLIzCtJLcpLzFFi42I5/e/4Pd32+3/jDFr+cFs8mHKXzaL7QwuT xfYVXWwW7z5tZ7K4s/c0u8WsS03sFs//vGK26Pt1ldFiys4djBaL78hZfHpwgsXi9M3N7BZr vl5ktth65i+jA5/HrwVLWT0W73nJ5HHs5jR2j56T85g83u+7yubRt2UVo8epR93MHquf/GAL 4IjSsynKLy1JVcjILy6xVYo2tDDSM7S00DMysdQzNDaPtTIyVdK3s0lJzcksSy3St0vQy/j8 U7fgFHvFwW8lDYzb2LoYOTkkBEwkZu88D2RzcQgJLGWUaLs6h7GLkQMoISHx+gkzRI2wxJ9r XWD1QgKfGSVennIAsdkENCROd8xjArFFBO4xSWxZqQpiCws4SvS3r2YBsVkEVCWeHj/PCmLz ClhK7Gtdyw4xU15i9YYDzCCrOAWsJLac4IMYnylx+fUVqFVyEtfnf2GawMi3gJFhFaNIamlx bnpusaFecWJucWleul5yfu4mRmA8bDv2c/MOxksbgw8xCnAwKvHwTjj+N06INbGsuDL3EKME B7OSCK/T2dNxQrwpiZVVqUX58UWlOanFhxhNge6byCwlmpwPjNW8knhDU0NzC0tDc2NzYzML JXHeDoGDMUIC6YklqdmpqQWpRTB9TBycUg2M00yy/5SUmR3W+FX5cv18jsbPqoHaRau8DRrd du40ymxlzBWdqVwZNNFq757CK4u+xVw295mda1ef2v6fufWqzre/Nna3s6UXHL85x/Fh5PW2 eW8rl4TxuWv+fGG72yO3/MLONRv4722W8Wa8/mlpRJbujzU/ZXrOsYX/0TO4Ovm9e6rKnKJb SizFGYmGWsxFxYkACYN6JJ0CAAA= X-CMS-MailID: 20200702132215eucas1p1f282fb3fd02e2107658bde6adc5d5166 X-Msg-Generator: CA X-RootMTR: 20200702132215eucas1p1f282fb3fd02e2107658bde6adc5d5166 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200702132215eucas1p1f282fb3fd02e2107658bde6adc5d5166 References: <20200427095737.11082-1-i.dyukov@samsung.com> <20200702132139.28078-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v4 5/7] net/ixgbe: return unknown speed in status X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: i.dyukov@samsung.com List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" rte_ethdev has declared new NUM_UNKNOWN speed which could be used in case when no speed information is available Signed-off-by: Ivan Dyukov Reviewed-by: Wei Zhao Reviewed-by: Wei Zhao --- drivers/net/ixgbe/ixgbe_ethdev.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c index a4e5c539d..5b9b13058 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.c +++ b/drivers/net/ixgbe/ixgbe_ethdev.c @@ -4311,11 +4311,7 @@ ixgbe_dev_link_update_share(struct rte_eth_dev *dev, switch (link_speed) { default: case IXGBE_LINK_SPEED_UNKNOWN: - if (hw->device_id == IXGBE_DEV_ID_X550EM_A_1G_T || - hw->device_id == IXGBE_DEV_ID_X550EM_A_1G_T_L) - link.link_speed = ETH_SPEED_NUM_10M; - else - link.link_speed = ETH_SPEED_NUM_100M; + link.link_speed = ETH_SPEED_NUM_UNKNOWN; break; case IXGBE_LINK_SPEED_100_FULL: From patchwork Thu Jul 2 13:21:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 72841 X-Patchwork-Delegate: ferruh.yigit@amd.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 C05F8A0522; Thu, 2 Jul 2020 15:23:05 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 8B3241DA0F; Thu, 2 Jul 2020 15:22:19 +0200 (CEST) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id 2CD2B1DA0C for ; Thu, 2 Jul 2020 15:22:18 +0200 (CEST) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200702132217euoutp02cc78f626328dd2f7b11c17bbc420aef2~d8jGXjmC_1773417734euoutp02O for ; Thu, 2 Jul 2020 13:22:17 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200702132217euoutp02cc78f626328dd2f7b11c17bbc420aef2~d8jGXjmC_1773417734euoutp02O DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1593696138; bh=RnlYD+Sn70PZMzCtJxYR4w9oEJDvYzwy6GYddb6sZF8=; h=From:To:Subject:Date:In-Reply-To:Reply-To:References:From; b=Idaxb5KODN2zxQuXWxgj+rmVtRIocC9Al7ZWfA4Ck4lvziWpT2OBMDEAqy65CQr7n I9S6iTctII0jbw2DQJzYtP+n4AngZl4pa82YV/mFIkzwSJK692mejFk9qs4l5zC9cj HfRt28PH68RCEbp9ilrPiZ6eAkzR3wfjStl6ecSs= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200702132217eucas1p1d89a270c98b74ab80b5919b8f20dc4c3~d8jGAcV6E1005510055eucas1p1o; Thu, 2 Jul 2020 13:22:17 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id EB.00.06456.98FDDFE5; Thu, 2 Jul 2020 14:22:17 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200702132217eucas1p1ff03745544095adbdc9f35edb6e9ec6b~d8jFlDb8t2044920449eucas1p1H; Thu, 2 Jul 2020 13:22:17 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200702132217eusmtrp187592bb9617bdf27fdaba6aea52394c2~d8jFjXCTT1219712197eusmtrp1S; Thu, 2 Jul 2020 13:22:17 +0000 (GMT) X-AuditID: cbfec7f2-7efff70000001938-19-5efddf899fee Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 7C.11.06017.88FDDFE5; Thu, 2 Jul 2020 14:22:17 +0100 (BST) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200702132216eusmtip2ff5f8188bd1e4deb71228ff65f524cb4~d8jEtOyKL0936109361eusmtip22; Thu, 2 Jul 2020 13:22:16 +0000 (GMT) From: Ivan Dyukov To: dev@dpdk.org, i.dyukov@samsung.com, v.kuramshin@samsung.com, thomas@monjalon.net, david.marchand@redhat.com, ferruh.yigit@intel.com, arybchenko@solarflare.com, wei.zhao1@intel.com, jia.guo@intel.com, beilei.xing@intel.com, qiming.yang@intel.com, wenzhuo.lu@intel.com, mb@smartsharesystems.com, stephen@networkplumber.org Date: Thu, 2 Jul 2020 16:21:33 +0300 Message-Id: <20200702132139.28078-7-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200702132139.28078-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0WSa0hTYRjHeXe2neNl9joNnywVBkFFaabUSSItAk/2oT4ERuTlqCcveWvz kiUkpqXT1FRcCa6hhaZBZd5JkX1Q1yxLHWZomYVXNDOXtprmPErf/vye/wVeXoqQPhE5U9Hx SZw8no2Via2FTV2/+w7kfjYHH1xtdKHHSkfFdN5CloBurlGK6fnFZgE90q4n6fL+TJKe/DtD 0AUmA6JLW1sQXTXiSi+O9Qhp/fBLkn5qfE/Qjb1m5GfHmDSPRUzVq2kB0zVcRjL5OrWA+d5h EDMFDbWIeT2eRzB131bE56iL1sciuNjoFE7ucTzUOmq86lBijd210aVcIgOZbJTIigLsDZnt KqRE1pQU1yCoV5cLLAcpXkKQXerL658IjNWBW4GPAxVCPlCNIF9ZRvAmI4LWlQsWLcZ7QJ+j FlhMjrhXAIumNWQ5OGA/eFcysKGFeDcU5g1uhCX4KNT0qoT8ghvUPe9c5xRlhX2goceO73eF oYdLG52AO0gYqigS8/5ToDGqEK8dYKa7geT1LtCX5G923oDl+iGSD+cg+FSZvWnyhYbZt6Rl jMB74VmbB49PQJvBgCwYsB18mLO3YGJdFjepCB5LIOe2lHfLoFPXv4kBzH9secxAXrZJxD9V O4LB5jGyCLmV/9/SIFSLnLhkRVwkp/CM51LdFWycIjk+0j08Ia4erX8g/Wr3Ygsy9odpEaaQ zFYypTMHS0VsiiItTouAImSOkpNv9MFSSQSbdp2TJ4TIk2M5hRbtpIQyJ4lX5XSQFEeySdwV jkvk5FtXAWXlnIFko3dWL43di9G4eaT7GG5l4boR74HzRMfE/JcyXWNWfdd0G1tqr02eCNix /7AmWo5dtMv3RVUx3nU2k7Z9oelhN8/clYQcUfufLpRvC1f5LzwKCWoznn3gwL4wU14Vv2a/ /qDX7AtWfYsHREvKQHw5QBfsvD11Lt+lYmrlav+yTKiIYj33EXIF+w/WDDMEPAMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuphkeLIzCtJLcpLzFFi42I5/e/4Pd3O+3/jDG48YLR4MOUum0X3hxYm i+0rutgs3n3azmRxZ+9pdotZl5rYLZ7/ecVs0ffrKqPFlJ07GC0W35Gz+PTgBIvF6Zub2S3W fL3IbLH1zF9GBz6PXwuWsnos3vOSyePYzWnsHj0n5zF5vN93lc2jb8sqRo9Tj7qZPVY/+cEW wBGlZ1OUX1qSqpCRX1xiqxRtaGGkZ2hpoWdkYqlnaGwea2VkqqRvZ5OSmpNZllqkb5egl/Fo sVHBCr6Ku186mRsYf3F3MXJySAiYSNy6PJeli5GLQ0hgKaPEztuP2boYOYASEhKvnzBD1AhL /LnWxQZR85lR4ubkyewgCTYBDYnTHfOYQGwRgXtMEltWqoLYwgIOEhcmX2YEsVkEVCX6u6+A DeIVsJRYcWY6C8RQeYnVGw4wg+ziFLCS2HKCDyQsJJApcfn1FTYIW07i+vwvTBMY+RYwMqxi FEktLc5Nzy020itOzC0uzUvXS87P3cQIjIltx35u2cHY9S74EKMAB6MSD++E43/jhFgTy4or cw8xSnAwK4nwOp09HSfEm5JYWZValB9fVJqTWnyI0RTovonMUqLJ+cB4zSuJNzQ1NLewNDQ3 Njc2s1AS5+0QOBgjJJCeWJKanZpakFoE08fEwSnVwMhT+Fj6dNuVjRfOuLLPXOP/wnGSeFaN hlNg9n/psOwDU19bcD55ESoe/K8lL3b5BqmIln0fooOjl5tVnY6M/XXcd+OHzXFJdSGvZiuf 5ZysYc/Zqnti5Sr/RaF8t8N2n/zZUt79fYZH+4dJixk3Kx1YL3b9gaJgZYP8NcFY15CZc2a0 WBtKWSixFGckGmoxFxUnAgAk4CwqnwIAAA== X-CMS-MailID: 20200702132217eucas1p1ff03745544095adbdc9f35edb6e9ec6b X-Msg-Generator: CA X-RootMTR: 20200702132217eucas1p1ff03745544095adbdc9f35edb6e9ec6b X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200702132217eucas1p1ff03745544095adbdc9f35edb6e9ec6b References: <20200427095737.11082-1-i.dyukov@samsung.com> <20200702132139.28078-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v4 6/7] net/i40e: return unknown speed in status X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: i.dyukov@samsung.com List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" rte_ethdev has declared new NUM_UNKNOWN speed which could be used in case when no speed information is available and link is up. NUM_NONE should be returned, if link is down. Signed-off-by: Ivan Dyukov Acked-by: Jeff Guo > --- drivers/net/i40e/i40e_ethdev.c | 5 ++++- drivers/net/i40e/i40e_ethdev_vf.c | 10 +++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index 749d85f54..d09b77674 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -2889,7 +2889,10 @@ update_link_aq(struct i40e_hw *hw, struct rte_eth_link *link, link->link_speed = ETH_SPEED_NUM_40G; break; default: - link->link_speed = ETH_SPEED_NUM_NONE; + if (link->link_status) + link->link_speed = ETH_SPEED_NUM_UNKNOWN; + else + link->link_speed = ETH_SPEED_NUM_NONE; break; } } diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c index bb5d28a44..1da185485 100644 --- a/drivers/net/i40e/i40e_ethdev_vf.c +++ b/drivers/net/i40e/i40e_ethdev_vf.c @@ -2165,15 +2165,15 @@ i40evf_dev_link_update(struct rte_eth_dev *dev, new_link.link_speed = ETH_SPEED_NUM_40G; break; default: - new_link.link_speed = ETH_SPEED_NUM_NONE; + if (vf->link_up) + new_link.link_speed = ETH_SPEED_NUM_UNKNOWN; + else + new_link.link_speed = ETH_SPEED_NUM_NONE; break; } /* full duplex only */ new_link.link_duplex = ETH_LINK_FULL_DUPLEX; - new_link.link_status = vf->link_up && - new_link.link_speed != ETH_SPEED_NUM_NONE - ? ETH_LINK_UP - : ETH_LINK_DOWN; + new_link.link_status = vf->link_up ? ETH_LINK_UP : ETH_LINK_DOWN; new_link.link_autoneg = !(dev->data->dev_conf.link_speeds & ETH_LINK_SPEED_FIXED); From patchwork Thu Jul 2 13:21:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ivan Dyukov X-Patchwork-Id: 72842 X-Patchwork-Delegate: ferruh.yigit@amd.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 63C9BA0520; Thu, 2 Jul 2020 15:23:21 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id F0AA91DA1D; Thu, 2 Jul 2020 15:22:21 +0200 (CEST) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id 7AFD71D9D8 for ; Thu, 2 Jul 2020 15:22:20 +0200 (CEST) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200702132219euoutp0216a9a96e249c0b2507324338abd521dd~d8jICxw2g1776117761euoutp02K for ; Thu, 2 Jul 2020 13:22:19 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200702132219euoutp0216a9a96e249c0b2507324338abd521dd~d8jICxw2g1776117761euoutp02K DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1593696139; bh=w1PCYzkccc7a0FLqoHr6im6UQ7yfIP5rSux6yti6afc=; h=From:To:Subject:Date:In-Reply-To:Reply-To:References:From; b=dZH14Q84eDVGA5hjz8NJy0bI19c5b2/+4W1/T1SoHaYzf+QShJd+WOMPlrJFTleDF FffXof42VAD+as1BNXoKJCLbAHNHHuoFmbXXAQmxUwI9v6yXseZCvDeCP7kRn+JPzQ Aag2nsTnh/Oa20f8TThScsVmttzR9/mjaoUiaRkg= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20200702132219eucas1p22a1af32905f4eb24af29e637248037d2~d8jHzkmT93208332083eucas1p2Q; Thu, 2 Jul 2020 13:22:19 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id 93.D0.06318.B8FDDFE5; Thu, 2 Jul 2020 14:22:19 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200702132219eucas1p2a4993ac0ae1dbb983d16dc80729a6dae~d8jHVS0Pb0792507925eucas1p2t; Thu, 2 Jul 2020 13:22:19 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200702132218eusmtrp1d0cb9d71ccd1be2270b47c1921cf6d44~d8jHUonbl1219712197eusmtrp1U; Thu, 2 Jul 2020 13:22:18 +0000 (GMT) X-AuditID: cbfec7f5-371ff700000018ae-6a-5efddf8bf0b0 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id 0E.11.06017.A8FDDFE5; Thu, 2 Jul 2020 14:22:18 +0100 (BST) Received: from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200702132218eusmtip27297d876810cbffff05f1460ac23f31f~d8jGZhskr0566005660eusmtip2c; Thu, 2 Jul 2020 13:22:17 +0000 (GMT) From: Ivan Dyukov To: dev@dpdk.org, i.dyukov@samsung.com, v.kuramshin@samsung.com, thomas@monjalon.net, david.marchand@redhat.com, ferruh.yigit@intel.com, arybchenko@solarflare.com, wei.zhao1@intel.com, jia.guo@intel.com, beilei.xing@intel.com, qiming.yang@intel.com, wenzhuo.lu@intel.com, mb@smartsharesystems.com, stephen@networkplumber.org Date: Thu, 2 Jul 2020 16:21:34 +0300 Message-Id: <20200702132139.28078-8-i.dyukov@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200702132139.28078-1-i.dyukov@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA0WSbUhTYRTHe+6d996Jk+uUPKloLCKN8iWlbhGZoXApkIo+BVkrLyrptM2Z b4lUlqiMsUzRSG1qiUqGL9MkXz+oayop+LI0FU1NzRRTzJdZzjvp2zm///+c8+fhoXBxhZUT FSGL5eQyaaSEsBboOjZ6T2aOm0K8W9KcmYnsbwSTufwUY+rLMgjm10o9xow2GUgmv/8xycxu z+OManMAMdkfGxBTPOrKrEx0CRiDsYZkKtf6cKau24Qu2rKbRaVWbPGnOYztMOaQbJa+AGOX mgcIVlVbjtjPk5k4W/H9D3GVuml9PpSLjIjj5F4X7liHq1+NYzG9ZHzf4rFU9J7IQEIKaD8Y nfxJZiBrSkyXIVC1pBN8s4pgoqjKovxG8HooS7A/Mps3ZxHeIahb0iG+WUOg1W9hZhdBu4Mh vQAzCw50NwYrm3+RWbCn/WH1edmeSUAfhYnc2d1VFCWiz8JbjZK/4AYVH1pxMxbS56C2y9aM xbQrDBWu7q0EupGE9bYRjPcHwnR2mSWdPcx31pJ87QKGF/upk2C9eojkh9MRjGnTLCZ/qF3o 3cuA0x5Q1ejF4wDom3kpMGOgbWF40c6M8d1So8vFeSyC9Gdi3i2BVn2/BQOYtmx4zIKp/qvl QZsQTK33Emrklv//VhFC5ciRUyqiwjiFr4x76KmQRimUsjDPe9FR1Wj3Cxl2OtcaUPP23XZE U0hiI/qhN4WIraRxioSodgQULnEQXeoxhIhFodKERE4efVuujOQU7ciZEkgcRb7auVtiOkwa y93nuBhOvq9ilNApFbkrFxON9ZV2JVNq7QmZy7UrDimRy4fiWHXAkRuFaU7N2i9Bo090fnPT OZoSWbQK1Zw54BEYn5eU90jmLQwaOaUKKB/00cwkV67o2/xiN3ZSgsd83lR21WSJUvCg4ZaF 7MOLxr7rl216Tgcbcgdhxiql0VCavO2me9BTnlF3cEAiUIRLfY7jcoX0H3a1xew+AwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupmkeLIzCtJLcpLzFFi42I5/e/4Pd2u+3/jDNo/m1o8mHKXzaL7QwuT xfYVXWwW7z5tZ7K4s/c0u8WsS03sFs//vGK26Pt1ldFiys4djBaL78hZfHpwgsXi9M3N7BZr vl5ktth65i+jA5/HrwVLWT0W73nJ5HHs5jR2j56T85g83u+7yubRt2UVo8epR93MHquf/GAL 4IjSsynKLy1JVcjILy6xVYo2tDDSM7S00DMysdQzNDaPtTIyVdK3s0lJzcksSy3St0vQy5gw +z5TwTn2iotv1RsY17F1MXJySAiYSDyf+ZK9i5GLQ0hgKaPEl4OPmboYOYASEhKvnzBD1AhL /LnWxQZR85lR4tj9RewgCTYBDYnTHfOYQGwRgXtMEltWqoLYwgL2El/aV4DFWQRUJR5Mf84O MpNXwFJi2aRSiJnyEqs3HGAGCXMKWElsOcEHEhYSyJS4/PoKG4QtJ3F9/hemCYx8CxgZVjGK pJYW56bnFhvpFSfmFpfmpesl5+duYgRGxLZjP7fsYOx6F3yIUYCDUYmHd8Lxv3FCrIllxZW5 hxglOJiVRHidzp6OE+JNSaysSi3Kjy8qzUktPsRoCnTeRGYp0eR8YLTmlcQbmhqaW1gamhub G5tZKInzdggcjBESSE8sSc1OTS1ILYLpY+LglGpgPB13jn3ZvVnTdGa+ks6b1rJy+6wJida6 3xcqRQje7Bebvt3hLnPKYtadKQcuiT28+G7JjjSZ6vLjcgxWJzOl6iXnaoc+3G+zplAszkE5 wcI25F2D9EIGJ4nlvxleOW0RO8+WvMP83eOcD23d93J3G0zbXbf0uNADi8TTEVaSSxU4j9xW kroxQYmlOCPRUIu5qDgRANtbIRaeAgAA X-CMS-MailID: 20200702132219eucas1p2a4993ac0ae1dbb983d16dc80729a6dae X-Msg-Generator: CA X-RootMTR: 20200702132219eucas1p2a4993ac0ae1dbb983d16dc80729a6dae X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200702132219eucas1p2a4993ac0ae1dbb983d16dc80729a6dae References: <20200427095737.11082-1-i.dyukov@samsung.com> <20200702132139.28078-1-i.dyukov@samsung.com> Subject: [dpdk-dev] [PATCH v4 7/7] net/ice: return unknown speed in status X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: i.dyukov@samsung.com List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" rte_ethdev has declared new NUM_UNKNOWN speed which could be used in case when no speed information is available and link is up. NUM_NONE should be returned, if link is down. Signed-off-by: Ivan Dyukov Reviewed-by: Ferruh Yigit --- drivers/net/ice/ice_ethdev.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index d5110c439..1c0c087ea 100644 --- a/drivers/net/ice/ice_ethdev.c +++ b/drivers/net/ice/ice_ethdev.c @@ -3112,8 +3112,11 @@ ice_link_update(struct rte_eth_dev *dev, int wait_to_complete) link.link_speed = ETH_SPEED_NUM_100G; break; case ICE_AQ_LINK_SPEED_UNKNOWN: - default: PMD_DRV_LOG(ERR, "Unknown link speed"); + link.link_speed = ETH_SPEED_NUM_UNKNOWN; + break; + default: + PMD_DRV_LOG(ERR, "None link speed"); link.link_speed = ETH_SPEED_NUM_NONE; break; }