get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/73816/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 73816,
    "url": "http://patchwork.dpdk.org/api/patches/73816/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20200711104414.15422-8-i.dyukov@samsung.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20200711104414.15422-8-i.dyukov@samsung.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200711104414.15422-8-i.dyukov@samsung.com",
    "date": "2020-07-11T10:43:54",
    "name": "[v8,07/24] examples: new link status print format",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "78074308dc3c452fe1c841fd19965f23fc292c84",
    "submitter": {
        "id": 783,
        "url": "http://patchwork.dpdk.org/api/people/783/?format=api",
        "name": "Ivan Dyukov",
        "email": "i.dyukov@samsung.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patchwork.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20200711104414.15422-8-i.dyukov@samsung.com/mbox/",
    "series": [
        {
            "id": 10970,
            "url": "http://patchwork.dpdk.org/api/series/10970/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=10970",
            "date": "2020-07-11T10:43:47",
            "name": "ethdev: allow unknown link speed",
            "version": 8,
            "mbox": "http://patchwork.dpdk.org/series/10970/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/73816/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/73816/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 07C99A0528;\n\tSat, 11 Jul 2020 12:45:41 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 611C21D9F5;\n\tSat, 11 Jul 2020 12:44:48 +0200 (CEST)",
            "from mailout2.w1.samsung.com (mailout2.w1.samsung.com\n [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id A82061D9B5\n for <dev@dpdk.org>; Sat, 11 Jul 2020 12:44:46 +0200 (CEST)",
            "from eucas1p1.samsung.com (unknown [182.198.249.206])\n by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id\n 20200711104446euoutp027694745a9446f76c3bb6b4b68c581d09~grNIXqODP1781617816euoutp02Y;\n Sat, 11 Jul 2020 10:44:46 +0000 (GMT)",
            "from eusmges1new.samsung.com (unknown [203.254.199.242]) by\n eucas1p2.samsung.com (KnoxPortal) with ESMTP id\n 20200711104445eucas1p2f0f6abe55fd26883b07c70f03f1d28e4~grNHvuxNB1984019840eucas1p2z;\n Sat, 11 Jul 2020 10:44:45 +0000 (GMT)",
            "from eucas1p1.samsung.com ( [182.198.249.206]) by\n eusmges1new.samsung.com (EUCPMTA) with SMTP id 64.55.06456.D18990F5; Sat, 11\n Jul 2020 11:44:45 +0100 (BST)",
            "from eusmtrp1.samsung.com (unknown [182.198.249.138]) by\n eucas1p1.samsung.com (KnoxPortal) with ESMTPA id\n 20200711104445eucas1p1b870b02e0d7ca36c788344b9ae674640~grNHXCySF0930309303eucas1p1q;\n Sat, 11 Jul 2020 10:44:45 +0000 (GMT)",
            "from eusmgms2.samsung.com (unknown [182.198.249.180]) by\n eusmtrp1.samsung.com (KnoxPortal) with ESMTP id\n 20200711104445eusmtrp10187636c40034ff5f7b4267e5d4f6d0c~grNHWPVAW2954729547eusmtrp14;\n Sat, 11 Jul 2020 10:44:45 +0000 (GMT)",
            "from eusmtip1.samsung.com ( [203.254.199.221]) by\n eusmgms2.samsung.com (EUCPMTA) with SMTP id B3.86.06017.D18990F5; Sat, 11\n Jul 2020 11:44:45 +0100 (BST)",
            "from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by\n eusmtip1.samsung.com (KnoxPortal) with ESMTPA id\n 20200711104443eusmtip11f61327b1c05692c3926b695a37ce99b~grNFjBRbh1304313043eusmtip1h;\n Sat, 11 Jul 2020 10:44:43 +0000 (GMT)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com\n 20200711104446euoutp027694745a9446f76c3bb6b4b68c581d09~grNIXqODP1781617816euoutp02Y",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;\n s=mail20170921; t=1594464286;\n bh=umWDSYfnL7Dz/b6egJP1LVyW6kmgp5G6qaf8A7qGC40=;\n h=From:To:Subject:Date:In-Reply-To:Reply-To:References:From;\n b=k4/wBIDaaUo+QLmKb3eI95PRKCTxONzk+v5BFPpZKWUaH31b4alYHjzzswa0knnK5\n rKD3IkHipFSS7GvIQ+vWYxIOssfTkKOUoDL0xrpTJZzahqxeJmeGx5iiIItqMW3+Ji\n iTsjOziuAL3HuVC7CY4NmKXViyvLnb1Xb0Z8Afbk=",
        "X-AuditID": "cbfec7f2-7efff70000001938-2d-5f09981de3b5",
        "From": "Ivan Dyukov <i.dyukov@samsung.com>",
        "To": "dev@dpdk.org, i.dyukov@samsung.com, v.kuramshin@samsung.com,\n thomas@monjalon.net, david.marchand@redhat.com, ferruh.yigit@intel.com,\n arybchenko@solarflare.com, wei.zhao1@intel.com, jia.guo@intel.com,\n beilei.xing@intel.com, qiming.yang@intel.com, wenzhuo.lu@intel.com,\n mb@smartsharesystems.com, stephen@networkplumber.org,\n nicolas.chautru@intel.com, bruce.richardson@intel.com,\n konstantin.ananyev@intel.com, cristian.dumitrescu@intel.com,\n radu.nicolau@intel.com, akhil.goyal@nxp.com, declan.doherty@intel.com,\n skori@marvell.com, pbhagavatula@marvell.com, jerinj@marvell.com,\n kirankumark@marvell.com, david.hunt@intel.com, anatoly.burakov@intel.com,\n xiaoyun.li@intel.com, jingjing.wu@intel.com, john.mcnamara@intel.com,\n jasvinder.singh@intel.com, byron.marohn@intel.com, yipeng1.wang@intel.com",
        "Date": "Sat, 11 Jul 2020 13:43:54 +0300",
        "Message-Id": "<20200711104414.15422-8-i.dyukov@samsung.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20200711104414.15422-1-i.dyukov@samsung.com>",
        "X-Brightmail-Tracker": [
            "\n H4sIAAAAAAAAA0WSf0yUBRjH97zve+/73unZ6+niERPnbTXTgbpqe3KZlo69f7SV9Y9rGb3q\n O0Q4sDtQoVp0AWNAZMDMwAEdS+nIEDw4UCy52uFx/Lx0iBmisthZiZ5gIqBx957rv+/zeb7P\n jz17RNZUwceKKemZqjVdSTPzBq7VO90Xv+KoPmn95MXnqLGnGujGSB1LoxV/8FR8J4+hy87N\n 1OE+pqOya7kMlZbdZchdX8TT36N2jm6H3AxdPecXqDJgFyjkGRfoi/4qoPHZWyx9U3sPqL+6\n RUfTnWd4mph1cFT68BLQl64LQF0ldzmqaG8DKiiS6M73JwSquxpHodELHPmHTwv0w9QgSy09\n c0BfdTUC9RY81m1ZJT+s/U4n13UEGbn820FW9g4fEeQSXzUjN91uY+SJny7xcqnLCXL3jWJW\n bhh7wL9leNfwyh41LeWAal336geGvVOhx+z+U5sO3R9rZ3Ph6Poi0IsovYgznflMERhEk1QP\n eL2/SqcFk4CBa/1C2GWS7gG6PNyTip9Hb0ZNJwB90wHQginASnuICbt4aTX6C6sjfZdKTTy6\n Z4ciiSXSFgza89iw5qRnsSZoj2ij9DL6PvOBNmIlNpw6H+F6aSPOTQyw2hpxOFQzGWmK0oCI\n rUFvdKdt+NvJQFQvwVtdLkHTz6C/vCTKP8J/m4cErbgQcMSRHzVtRtdfffNaFFnpeWw8s07D\n r6Gze4YNY5QW4eV/FocxOy/LWr+OYiMWFpg0txnP+wJRjDg3s1DDMh6v+kXQ7nMOsHmmlD8M\n Kyv/n1UL4IQYNctmSVZtG9LVgwk2xWLLSk9O2J1haYb5X/U/6gq1wVRglwckEcwLjbWKmGTS\n KQds2RYPoMialxpf7/W/bzLuUbJzVGtGkjUrTbV5YLnImWOMLziCO01SspKppqrqftX6JMuI\n +thcSNzWrSQk1kwML8se2dpXd/ig093zpqHT82PnlfumBt3qVY7EB1mpvUd+tzwdb30n/1jc\n 22X7frUXD+ZA8Y6XOk7mrf0zsGDfJ2PbN25t2eS8OF3ec2hHhe+Kl4nJiE31nh05/sZAzueL\n E58aF5d9enrn7vhMx4fNi9rrlZT3Pr6pb1ohT5o5215lwxrWalP+A6qA9ACnAwAA",
            "\n H4sIAAAAAAAAAzWSaUgUcRjG+8/Mzs5KW8Nq9EfQalOQos31fBWPiI6xPiREFGrZqoOKris7\n ux32RUVTxrRMCe1QUxZNO6w03W438lrFVMwONTMrtNDSsjTNPOjbw/t7npcXnpchFVOUPROb\n YOD1CZp4JW1DWf829W9xKJCFu5anyOFWWxGCoYEyEgbz+2nI+pZGwKvKQHhYd1kC598lE5Bz\n /jsBdRUiDV8HUykYm6gjoO+RVQoXu1KlMGH5LIXsjksIPs+OklBYMomgo6hWAtMN92kYny2l\n IGemB8HZmmYETWe+U5BvrkdwWmTh27VyKZT1OcLEYDMF1td3pXD9ZycJtW1zCHKbbiFoPz0v\n 2baBmykxSbiyhyMEl3e1k+QaX1+Qcmdaigju9lg9wY0/7qG5nJpKxLUOZZFc1fBvOtgmROWn\n 1xkN/PoYnWDwV4aqwU2l9gGVm4ePSu3ufdjXzVO5NcAvio+PPcbrtwYcVcX8nJgnE6v9T0wN\n m8lkVOAqIhmDWQ/8ZPCDREQ2jII1IWyyFCIRMQsA4y/D5LLHFs++FOllzyTCZc97pYuAZl2w\n NbOIWAR27Fsad2ekUIvAlt2GR1LTltIU64yLR1KXtJz1wS0pLWh56zpcVf10aS5jffHc+Isl\n rWBjccerdLSsHXFv8Q/iHFpVglZUIjveKGijtYKbStBoBWNCtCpSp72DFjq/1zhdU4/Esf0W\n xDJIuVJeomHCFRLNMeGk1oIwQyrt5NvbrUcU8ijNySRerwvXG+N5wYI8Fw7MJe3XROoWPijB\n EK72VHuDj9rb3dvdC5Rr5ZlsQ5iCjdYY+DieT+T1/3MEI7NPRhnOXjbm0lO9mcGlD5Jcpluv\n 1L45xQWO2jVlfOw3VcuMz1z6zMfn9hz8U7WRbg1dd50yzcnbcXYFdvI7gA65rtpBpUf+ik4Z\n jcifjwiqfF8aSe8NictyvLm5MEv6KU00O4UF3Zh0aNyZGGK7OjfbQ79ryN8hvStkoLvYf/e+\n D3mikhJiNOpNpF7Q/AOx44LYCQMAAA=="
        ],
        "X-CMS-MailID": "20200711104445eucas1p1b870b02e0d7ca36c788344b9ae674640",
        "X-Msg-Generator": "CA",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "X-RootMTR": "20200711104445eucas1p1b870b02e0d7ca36c788344b9ae674640",
        "X-EPHeader": "CA",
        "CMS-TYPE": "201P",
        "X-CMS-RootMailID": "20200711104445eucas1p1b870b02e0d7ca36c788344b9ae674640",
        "References": "<20200427095737.11082-1-i.dyukov@samsung.com>\n <20200711104414.15422-1-i.dyukov@samsung.com>\n <CGME20200711104445eucas1p1b870b02e0d7ca36c788344b9ae674640@eucas1p1.samsung.com>",
        "Subject": "[dpdk-dev] [PATCH v8 07/24] examples: new link status 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 <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Add usage of rte_eth_link_to_str function to example\napplications:\n\t* ipv4_multicast\n\t* l2fwd-jobstats\n\t* l2fwd-keepalive\n\t* l3fwd\n\t* link_status_interrupt\n\nSigned-off-by: Ivan Dyukov <i.dyukov@samsung.com>\n---\n examples/ipv4_multicast/main.c        | 12 ++++-------\n examples/l2fwd-jobstats/main.c        | 12 ++++-------\n examples/l2fwd-keepalive/main.c       | 12 ++++-------\n examples/l3fwd/main.c                 | 12 ++++-------\n examples/link_status_interrupt/main.c | 30 +++++++++++----------------\n 5 files changed, 28 insertions(+), 50 deletions(-)",
    "diff": "diff --git a/examples/ipv4_multicast/main.c b/examples/ipv4_multicast/main.c\nindex 7e255c35a..e32602521 100644\n--- a/examples/ipv4_multicast/main.c\n+++ b/examples/ipv4_multicast/main.c\n@@ -572,6 +572,7 @@ check_all_ports_link_status(uint32_t port_mask)\n \tuint8_t count, all_ports_up, print_flag = 0;\n \tstruct rte_eth_link link;\n \tint ret;\n+\tchar link_status_text[60];\n \n \tprintf(\"\\nChecking link status\");\n \tfflush(stdout);\n@@ -591,14 +592,9 @@ check_all_ports_link_status(uint32_t port_mask)\n \t\t\t}\n \t\t\t/* print link status if flag set */\n \t\t\tif (print_flag == 1) {\n-\t\t\t\tif (link.link_status)\n-\t\t\t\t\tprintf(\n-\t\t\t\t\t\"Port%d Link Up. Speed %u Mbps - %s\\n\",\n-\t\t\t\t\tportid, link.link_speed,\n-\t\t\t\t(link.link_duplex == ETH_LINK_FULL_DUPLEX) ?\n-\t\t\t\t\t(\"full-duplex\") : (\"half-duplex\"));\n-\t\t\t\telse\n-\t\t\t\t\tprintf(\"Port %d Link Down\\n\", portid);\n+\t\t\t\trte_eth_link_to_str(link_status_text, 60, NULL,\n+\t\t\t\t\t\t  &link);\n+\t\t\t\tprintf(\"Port %d %s\", portid, link_status_text);\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\ndiff --git a/examples/l2fwd-jobstats/main.c b/examples/l2fwd-jobstats/main.c\nindex 47a3b0976..bb86fe654 100644\n--- a/examples/l2fwd-jobstats/main.c\n+++ b/examples/l2fwd-jobstats/main.c\n@@ -689,6 +689,7 @@ check_all_ports_link_status(uint32_t port_mask)\n \tuint8_t count, all_ports_up, print_flag = 0;\n \tstruct rte_eth_link link;\n \tint ret;\n+\tchar link_status_text[60];\n \n \tprintf(\"\\nChecking link status\");\n \tfflush(stdout);\n@@ -708,14 +709,9 @@ check_all_ports_link_status(uint32_t port_mask)\n \t\t\t}\n \t\t\t/* print link status if flag set */\n \t\t\tif (print_flag == 1) {\n-\t\t\t\tif (link.link_status)\n-\t\t\t\t\tprintf(\n-\t\t\t\t\t\"Port%d Link Up. Speed %u Mbps - %s\\n\",\n-\t\t\t\t\t\tportid, link.link_speed,\n-\t\t\t\t(link.link_duplex == ETH_LINK_FULL_DUPLEX) ?\n-\t\t\t\t\t(\"full-duplex\") : (\"half-duplex\"));\n-\t\t\t\telse\n-\t\t\t\t\tprintf(\"Port %d Link Down\\n\", portid);\n+\t\t\t\trte_eth_link_to_str(link_status_text, 60, NULL,\n+\t\t\t\t\t\t  &link);\n+\t\t\t\tprintf(\"Port %d %s\", portid, link_status_text);\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\ndiff --git a/examples/l2fwd-keepalive/main.c b/examples/l2fwd-keepalive/main.c\nindex b2742633b..24c0f5df6 100644\n--- a/examples/l2fwd-keepalive/main.c\n+++ b/examples/l2fwd-keepalive/main.c\n@@ -453,6 +453,7 @@ check_all_ports_link_status(uint32_t port_mask)\n \tuint8_t count, all_ports_up, print_flag = 0;\n \tstruct rte_eth_link link;\n \tint ret;\n+\tchar link_status_text[60];\n \n \tprintf(\"\\nChecking link status\");\n \tfflush(stdout);\n@@ -472,14 +473,9 @@ check_all_ports_link_status(uint32_t port_mask)\n \t\t\t}\n \t\t\t/* print link status if flag set */\n \t\t\tif (print_flag == 1) {\n-\t\t\t\tif (link.link_status)\n-\t\t\t\t\tprintf(\n-\t\t\t\t\t\"Port%d Link Up. Speed %u Mbps - %s\\n\",\n-\t\t\t\t\t\tportid, link.link_speed,\n-\t\t\t\t(link.link_duplex == ETH_LINK_FULL_DUPLEX) ?\n-\t\t\t\t\t(\"full-duplex\") : (\"half-duplex\"));\n-\t\t\t\telse\n-\t\t\t\t\tprintf(\"Port %d Link Down\\n\", portid);\n+\t\t\t\trte_eth_link_to_str(link_status_text, 60, NULL,\n+\t\t\t\t\t\t  &link);\n+\t\t\t\tprintf(\"Port %d %s\", portid, link_status_text);\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\ndiff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c\nindex 24ede4290..274b8fbcd 100644\n--- a/examples/l3fwd/main.c\n+++ b/examples/l3fwd/main.c\n@@ -810,6 +810,7 @@ check_all_ports_link_status(uint32_t port_mask)\n \tuint8_t count, all_ports_up, print_flag = 0;\n \tstruct rte_eth_link link;\n \tint ret;\n+\tchar link_status_text[60];\n \n \tprintf(\"\\nChecking link status\");\n \tfflush(stdout);\n@@ -833,14 +834,9 @@ check_all_ports_link_status(uint32_t port_mask)\n \t\t\t}\n \t\t\t/* print link status if flag set */\n \t\t\tif (print_flag == 1) {\n-\t\t\t\tif (link.link_status)\n-\t\t\t\t\tprintf(\n-\t\t\t\t\t\"Port%d Link Up. Speed %u Mbps -%s\\n\",\n-\t\t\t\t\t\tportid, link.link_speed,\n-\t\t\t\t(link.link_duplex == ETH_LINK_FULL_DUPLEX) ?\n-\t\t\t\t\t(\"full-duplex\") : (\"half-duplex\"));\n-\t\t\t\telse\n-\t\t\t\t\tprintf(\"Port %d Link Down\\n\", portid);\n+\t\t\t\trte_eth_link_to_str(link_status_text, 60, NULL,\n+\t\t\t\t\t\t  &link);\n+\t\t\t\tprintf(\"Port %d %s\", portid, link_status_text);\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\ndiff --git a/examples/link_status_interrupt/main.c b/examples/link_status_interrupt/main.c\nindex 9bbcadfcf..749471256 100644\n--- a/examples/link_status_interrupt/main.c\n+++ b/examples/link_status_interrupt/main.c\n@@ -118,6 +118,7 @@ print_stats(void)\n \tconst char clr[] = { 27, '[', '2', 'J', '\\0' };\n \tconst char topLeft[] = { 27, '[', '1', ';', '1', 'H','\\0' };\n \tint link_get_err;\n+\tchar link_speed_text[16];\n \n \t\t/* Clear screen and move to top left */\n \tprintf(\"%s%s\", clr, topLeft);\n@@ -131,9 +132,10 @@ print_stats(void)\n \n \t\tmemset(&link, 0, sizeof(link));\n \t\tlink_get_err = rte_eth_link_get_nowait(portid, &link);\n+\t\trte_eth_link_to_str(link_speed_text, 16, \"%M\", &link);\n \t\tprintf(\"\\nStatistics for port %u ------------------------------\"\n \t\t\t   \"\\nLink status: %25s\"\n-\t\t\t   \"\\nLink speed: %26u\"\n+\t\t\t   \"\\nLink speed: %26s\"\n \t\t\t   \"\\nLink duplex: %25s\"\n \t\t\t   \"\\nPackets sent: %24\"PRIu64\n \t\t\t   \"\\nPackets received: %20\"PRIu64\n@@ -141,8 +143,7 @@ print_stats(void)\n \t\t\t   portid,\n \t\t\t   link_get_err < 0 ? \"Link get failed\" :\n \t\t\t   (link.link_status ? \"Link up\" : \"Link down\"),\n-\t\t\t   link_get_err < 0 ? 0 :\n-\t\t\t\t\t(unsigned int)link.link_speed,\n+\t\t\t   link_get_err < 0 ? \"0\" : link_speed_text,\n \t\t\t   link_get_err < 0 ? \"Link get failed\" :\n \t\t\t   (link.link_duplex == ETH_LINK_FULL_DUPLEX ? \\\n \t\t\t\t\t\"full-duplex\" : \"half-duplex\"),\n@@ -445,6 +446,7 @@ lsi_event_callback(uint16_t port_id, enum rte_eth_event_type type, void *param,\n {\n \tstruct rte_eth_link link;\n \tint ret;\n+\tchar link_status_text[60];\n \n \tRTE_SET_USED(param);\n \tRTE_SET_USED(ret_param);\n@@ -457,13 +459,8 @@ lsi_event_callback(uint16_t port_id, enum rte_eth_event_type type, void *param,\n \t\t       port_id, rte_strerror(-ret));\n \t\treturn ret;\n \t}\n-\tif (link.link_status) {\n-\t\tprintf(\"Port %d Link Up - speed %u Mbps - %s\\n\\n\",\n-\t\t\t\tport_id, (unsigned)link.link_speed,\n-\t\t\t(link.link_duplex == ETH_LINK_FULL_DUPLEX) ?\n-\t\t\t\t(\"full-duplex\") : (\"half-duplex\"));\n-\t} else\n-\t\tprintf(\"Port %d Link Down\\n\\n\", port_id);\n+\trte_eth_link_to_str(link_status_text, 60, NULL, &link);\n+\tprintf(\"Port %d %s\\n\", port_id, link_status_text);\n \n \treturn 0;\n }\n@@ -478,6 +475,7 @@ check_all_ports_link_status(uint16_t port_num, uint32_t port_mask)\n \tuint16_t portid;\n \tstruct rte_eth_link link;\n \tint ret;\n+\tchar link_status_text[60];\n \n \tprintf(\"\\nChecking link status\");\n \tfflush(stdout);\n@@ -497,14 +495,10 @@ check_all_ports_link_status(uint16_t port_num, uint32_t port_mask)\n \t\t\t}\n \t\t\t/* print link status if flag set */\n \t\t\tif (print_flag == 1) {\n-\t\t\t\tif (link.link_status)\n-\t\t\t\t\tprintf(\n-\t\t\t\t\t\"Port%d Link Up. Speed %u Mbps - %s\\n\",\n-\t\t\t\t\t\tportid, link.link_speed,\n-\t\t\t\t(link.link_duplex == ETH_LINK_FULL_DUPLEX) ?\n-\t\t\t\t\t(\"full-duplex\") : (\"half-duplex\"));\n-\t\t\t\telse\n-\t\t\t\t\tprintf(\"Port %d Link Down\\n\", portid);\n+\t\t\t\trte_eth_link_to_str(link_status_text, 60, NULL,\n+\t\t\t\t\t\t    &link);\n+\t\t\t\tprintf(\"Port %d %s\", portid,\n+\t\t\t\t       link_status_text);\n \t\t\t\tcontinue;\n \t\t\t}\n \t\t\t/* clear all_ports_up flag if any link down */\n",
    "prefixes": [
        "v8",
        "07/24"
    ]
}