get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 75393,
    "url": "http://patchwork.dpdk.org/api/patches/75393/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20200811085246.28735-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": "<20200811085246.28735-8-i.dyukov@samsung.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200811085246.28735-8-i.dyukov@samsung.com",
    "date": "2020-08-11T08:52:26",
    "name": "[v9,07/24] examples: new link status print format",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "45e1af8d0f317c1ff94e2692d827027e46b3bdf1",
    "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/20200811085246.28735-8-i.dyukov@samsung.com/mbox/",
    "series": [
        {
            "id": 11591,
            "url": "http://patchwork.dpdk.org/api/series/11591/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=11591",
            "date": "2020-08-11T08:52:19",
            "name": "ethdev: allow unknown link speed",
            "version": 9,
            "mbox": "http://patchwork.dpdk.org/series/11591/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/75393/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/75393/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 C2AD3A04AF;\n\tTue, 11 Aug 2020 10:54:59 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 0D0A41C113;\n\tTue, 11 Aug 2020 10:53:17 +0200 (CEST)",
            "from mailout1.w1.samsung.com (mailout1.w1.samsung.com\n [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id E6A381C0DA\n for <dev@dpdk.org>; Tue, 11 Aug 2020 10:53:15 +0200 (CEST)",
            "from eucas1p1.samsung.com (unknown [182.198.249.206])\n by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id\n 20200811085315euoutp015c4277bde14b2a2f605164f3c417bae2~qKrnixvZG0826508265euoutp01o;\n Tue, 11 Aug 2020 08:53:15 +0000 (GMT)",
            "from eusmges2new.samsung.com (unknown [203.254.199.244]) by\n eucas1p1.samsung.com (KnoxPortal) with ESMTP id\n 20200811085315eucas1p1fb5b7cd34dcce0b78be2e7edfe8d49b4~qKrnA3qEX2534225342eucas1p1A;\n Tue, 11 Aug 2020 08:53:15 +0000 (GMT)",
            "from eucas1p1.samsung.com ( [182.198.249.206]) by\n eusmges2new.samsung.com (EUCPMTA) with SMTP id 2B.1C.05997.B7C523F5; Tue, 11\n Aug 2020 09:53:15 +0100 (BST)",
            "from eusmtrp1.samsung.com (unknown [182.198.249.138]) by\n eucas1p2.samsung.com (KnoxPortal) with ESMTPA id\n 20200811085314eucas1p267b60944d8b8b480521723275cd99415~qKrmfLl-S0122701227eucas1p2v;\n Tue, 11 Aug 2020 08:53:14 +0000 (GMT)",
            "from eusmgms2.samsung.com (unknown [182.198.249.180]) by\n eusmtrp1.samsung.com (KnoxPortal) with ESMTP id\n 20200811085314eusmtrp1c157a4bab8c023773050c2b7c22d0076~qKrmePZUl1606216062eusmtrp1R;\n Tue, 11 Aug 2020 08:53:14 +0000 (GMT)",
            "from eusmtip1.samsung.com ( [203.254.199.221]) by\n eusmgms2.samsung.com (EUCPMTA) with SMTP id AA.4D.06017.A7C523F5; Tue, 11\n Aug 2020 09:53:14 +0100 (BST)",
            "from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by\n eusmtip1.samsung.com (KnoxPortal) with ESMTPA id\n 20200811085312eusmtip1ab70307f21661feaafc51c2d9a1d28c8~qKrkpCqfg1725317253eusmtip1i;\n Tue, 11 Aug 2020 08:53:12 +0000 (GMT)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com\n 20200811085315euoutp015c4277bde14b2a2f605164f3c417bae2~qKrnixvZG0826508265euoutp01o",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;\n s=mail20170921; t=1597135995;\n bh=fgiYd6i2vA5tgF+67PLgyOKYf0isxQoJ4Cnk9IPoyJU=;\n h=From:To:Subject:Date:In-Reply-To:Reply-To:References:From;\n b=XpX0kr27uh49x9/7sgOr09QHNpLaTzZ8CizyT9AOgpEqnX0k/NLnYZIaVDmoSE9eX\n s/fpjEy7/59o4Vt6twpfFb2I1z+JD6JUM6kXriU8xnlSlQPuVOPScNurW2cxFyan2M\n 46NgWKxO9KpWXDSgTXT71v7k3QJsDlNnMlLwPUpM=",
        "X-AuditID": "cbfec7f4-677ff7000000176d-ab-5f325c7bfdce",
        "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": "Tue, 11 Aug 2020 11:52:26 +0300",
        "Message-Id": "<20200811085246.28735-8-i.dyukov@samsung.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20200811085246.28735-1-i.dyukov@samsung.com>",
        "X-Brightmail-Tracker": [
            "\n H4sIAAAAAAAAA0WSfUxTZxTGc+43jZ131cQTZ2TULNtMlIEmO/sSXTZzl+hmsn8Wsw27eQdO\n qKQFNlmygRAkBZlQp9K6ijK/AFNBviRIAJ0XLMI0c7SLCiFmCCoi0KisiNxdzP77ned5zntO\n Tl6JtfwiLJa22dNVh92WYhVMXMOlJz0rfvg8PvGNCz0s+bt9QIO3Klga2HdToMKxPIaClQnU\n 0niIp9L+bIaKSx8y1HjSJdC9gV0cjY43MnTjfEAkz7VdIo13DIm0p9cLNBQZYamsfAKo11fP\n 05P2ZoEeRI5yVDx1Hejnuk4greghR/vONQHlu2QaO3VCpIobS2l8oJOjQOisSNXhqyzVd08D\n lWh+oCv5M/zaGGWq/BivVLQMM4r7yFVWuRTaLypFXT5GqRltYpQHrdcFpbiuEpTLg4WsUnX7\n sbDJtNn07lY1ZVum6ohds8WUnFf9N5c2mPB9XpdfzIZf410QJaG8GkuqfuN0tsgnAUcKWBeY\n ZnkS8EB2A2cUE4BFo2Xc846yYfdc6gTgQX89GEUYMHL5d15PCfJrGCjwMbqxUK4RsDHSx+jG\n AnktuqeCos6c/AoOB0Ogs1l+C4/neHhjRDRWnWljdY6S38Yqbz9rLLgU+w5P/vcoyn9IeGbG\n M7fTB1h60C0YvABHtDrR4CUYcBdxRsNuwJKGs6JR7AXM9d6fSyVg3d2eWZYkVn4d/c2xhrwO\n zz16yusyyi9g8P6LuszOYmnDAdaQzViQbzHSVmzrujYnI07/O8+QFTzSWi0aBzoP6O11MXsh\n 2vP/rHKASlikZjhTk1RnvF39bqXTlurMsCet/HpHai3MftbAU22yCZojX3WALIF1njntnbhE\n C2/LdO5M7QCUWOtC8/tXAl9azFttO7NUx45ER0aK6uyAlyTOusi86ujwFxY5yZaublfVNNXx\n 3GWkqMXZsJ4PqUFtSJVupoQe17RvfC/dd/rRN6vLPn7Vc+/lwJ2JPaENnfa+ZbtbK/+MfKv9\n VR0bE774z9ipZq04I7owULscuvvjtPGWJfUbPyn0ttqzckUt58OPTKvCcm7/rZ9yYlZ82ja9\n PXOmPat2ICa5LZhzm83rWfPZ/h9NNpifsDn8ppVzJtvilrMOp+0ZyylP76gDAAA=",
            "\n H4sIAAAAAAAAAzWSe1BMcRTH/e69e+8t1ty2NX7TNGRpJoatu71OSe34x/UHozGMIdaqa4u2\n bfZuefyjkrCSRxiFLCmUmdJDSRr2j16bSYhCStNMwpQ2r5LHVuO/75nP95zznTmHJRXfKS82\n IckimpP0iSranXL8aepZcTBGowsYy1oIZW0FCPrfFZLQd66HhhNfMgnoKomC+prLMjjbm0ZA\n ztlRAmpuWWn43JdBwbCzhoC3Dx0M5D/LYMBpH2TgZPslBIOTH0nIs40haC+olsH44zoaRiav\n U5Az0YngVFUzgqbsUQrO3a9FkGXl4MvtmwwUvl0Azr5mChzdlQzc+dZBQnXbbwRnmsoQPMn6\n K9MuEiZsRTKhsH6IEHKvdZBCY/cFRshuKSCEu8O1hDDS0EkLOVUlSGjtP0EKpQM/6Q3uW9UR\n ZlOKRfSJN0mWVaptPGjUfBioNUFhaj4wdHu4JljlHxkRJyYmpIpm/8id6vjMO6+p5P6o/Zkt\n ZUwauqKxIjcWc0E4byiXtCJ3VsEVIXzjwXtXwboAxp8GyBmPJ558aaVnPGMI/yosZaYAzflh\n x7ECYgoouTc0fn40nZoCnpwW5050TZsozhcPdXWjKS3nwnBxer5sZupCXFr+aHqDGxeOSy/1\n TmsFl4DTe+7TM3oBfnX1K3EazbWhWSVIKaZIRoNR0qglvVFKSTKoY03GCuS6+b3G8apaZB3e\n aEcci1Rz5MkreZ1Cpk+VDhjtCLOkSilf/cSxQyGP0x84KJpNOnNKoijZUbAr4BnSa16syfVB\n SRYdH8yHQhgfGhgaGAKq+fJj3OMYBWfQW8S9opgsmv/3EaybVxoK4G0NXO5y7TWfiaUfojfL\n t5w36Zzl62LjQlozfrCzKw3RTXtOMYqrzSeLW0rqtYGzoo9UrC1vDyrrStiUrfV+4T2+KCvy\n u6xzl2Gfx6H1a3g/ZZ3v8btEr8fi3XkZUTvttsq2j8qOjWtJ5cWnmY8MF53g077ksPEogcIj\n fBsnV6koKV7PLyPNkv4f32WPugkDAAA="
        ],
        "X-CMS-MailID": "20200811085314eucas1p267b60944d8b8b480521723275cd99415",
        "X-Msg-Generator": "CA",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "X-RootMTR": "20200811085314eucas1p267b60944d8b8b480521723275cd99415",
        "X-EPHeader": "CA",
        "CMS-TYPE": "201P",
        "X-CMS-RootMailID": "20200811085314eucas1p267b60944d8b8b480521723275cd99415",
        "References": "<20200427095737.11082-1-i.dyukov@samsung.com>\n <20200811085246.28735-1-i.dyukov@samsung.com>\n <CGME20200811085314eucas1p267b60944d8b8b480521723275cd99415@eucas1p2.samsung.com>",
        "Subject": "[dpdk-dev] [PATCH v9 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        | 14 ++++++------\n examples/l2fwd-jobstats/main.c        | 13 +++++------\n examples/l2fwd-keepalive/main.c       | 13 +++++------\n examples/l3fwd/main.c                 | 13 +++++------\n examples/link_status_interrupt/main.c | 31 +++++++++++----------------\n 5 files changed, 34 insertions(+), 50 deletions(-)",
    "diff": "diff --git a/examples/ipv4_multicast/main.c b/examples/ipv4_multicast/main.c\nindex 7e255c35a..92bc13047 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[ETH_LINK_MAX_STR_LEN];\n \n \tprintf(\"\\nChecking link status\");\n \tfflush(stdout);\n@@ -591,14 +592,11 @@ 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,\n+\t\t\t\t\tsizeof(link_status_text), NULL,\n+\t\t\t\t\t&link);\n+\t\t\t\tprintf(\"Port %d %s\\n\", 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 */\ndiff --git a/examples/l2fwd-jobstats/main.c b/examples/l2fwd-jobstats/main.c\nindex 47a3b0976..62ff2d9d5 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[ETH_LINK_MAX_STR_LEN];\n \n \tprintf(\"\\nChecking link status\");\n \tfflush(stdout);\n@@ -708,14 +709,10 @@ 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,\n+\t\t\t\t\tsizeof(link_status_text), NULL, &link);\n+\t\t\t\tprintf(\"Port %d %s\\n\", 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 */\ndiff --git a/examples/l2fwd-keepalive/main.c b/examples/l2fwd-keepalive/main.c\nindex b2742633b..cf4db2820 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[ETH_LINK_MAX_STR_LEN];\n \n \tprintf(\"\\nChecking link status\");\n \tfflush(stdout);\n@@ -472,14 +473,10 @@ 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,\n+\t\t\t\t\tsizeof(link_status_text), NULL, &link);\n+\t\t\t\tprintf(\"Port %d %s\\n\", 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 */\ndiff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c\nindex 24ede4290..0e3b75c97 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[ETH_LINK_MAX_STR_LEN];\n \n \tprintf(\"\\nChecking link status\");\n \tfflush(stdout);\n@@ -833,14 +834,10 @@ 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,\n+\t\t\t\t\tsizeof(link_status_text), NULL, &link);\n+\t\t\t\tprintf(\"Port %d %s\\n\", 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 */\ndiff --git a/examples/link_status_interrupt/main.c b/examples/link_status_interrupt/main.c\nindex 9bbcadfcf..3dcef4921 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[ETH_LINK_MAX_STR_LEN];\n \n \tRTE_SET_USED(param);\n \tRTE_SET_USED(ret_param);\n@@ -457,13 +459,9 @@ 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, sizeof(link_status_text),\n+\t\t\t    NULL, &link);\n+\tprintf(\"Port %d %s\\n\\n\", port_id, link_status_text);\n \n \treturn 0;\n }\n@@ -478,6 +476,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[ETH_LINK_MAX_STR_LEN];\n \n \tprintf(\"\\nChecking link status\");\n \tfflush(stdout);\n@@ -497,14 +496,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,\n+\t\t\t\t\tsizeof(link_status_text), NULL, &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": [
        "v9",
        "07/24"
    ]
}