get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 77223,
    "url": "http://patches.dpdk.org/api/patches/77223/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20200910193400.15326-4-i.dyukov@samsung.com/",
    "project": {
        "id": 1,
        "url": "http://patches.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": "<20200910193400.15326-4-i.dyukov@samsung.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200910193400.15326-4-i.dyukov@samsung.com",
    "date": "2020-09-10T19:33:36",
    "name": "[v10,03/24] app: update apps&docs with new UNKNOWN link speed",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "a2b7dddb60322a3827544927dcf8ab710c19a9c7",
    "submitter": {
        "id": 783,
        "url": "http://patches.dpdk.org/api/people/783/?format=api",
        "name": "Ivan Dyukov",
        "email": "i.dyukov@samsung.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20200910193400.15326-4-i.dyukov@samsung.com/mbox/",
    "series": [
        {
            "id": 12111,
            "url": "http://patches.dpdk.org/api/series/12111/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=12111",
            "date": "2020-09-10T19:33:33",
            "name": "ethdev: allow unknown link speed",
            "version": 10,
            "mbox": "http://patches.dpdk.org/series/12111/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/77223/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/77223/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 C73A5A04B5;\n\tThu, 10 Sep 2020 21:34:39 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id B5B811C0D8;\n\tThu, 10 Sep 2020 21:34:24 +0200 (CEST)",
            "from mailout1.w1.samsung.com (mailout1.w1.samsung.com\n [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 8197D1C10B\n for <dev@dpdk.org>; Thu, 10 Sep 2020 21:34:23 +0200 (CEST)",
            "from eucas1p1.samsung.com (unknown [182.198.249.206])\n by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id\n 20200910193422euoutp018b1698b895ed20d44695a4ea7b03b048~zgx9DyhzH0325703257euoutp01E;\n Thu, 10 Sep 2020 19:34:22 +0000 (GMT)",
            "from eusmges1new.samsung.com (unknown [203.254.199.242]) by\n eucas1p1.samsung.com (KnoxPortal) with ESMTP id\n 20200910193421eucas1p12453e58dece4bdfcb70ac43f978817d0~zgx8CAKrp0435804358eucas1p1C;\n Thu, 10 Sep 2020 19:34:21 +0000 (GMT)",
            "from eucas1p2.samsung.com ( [182.198.249.207]) by\n eusmges1new.samsung.com (EUCPMTA) with SMTP id 98.0D.06456.DBF7A5F5; Thu, 10\n Sep 2020 20:34:21 +0100 (BST)",
            "from eusmtrp1.samsung.com (unknown [182.198.249.138]) by\n eucas1p1.samsung.com (KnoxPortal) with ESMTPA id\n 20200910193420eucas1p1c7ed662be24a6fbc8e272dadefbbb22f~zgx64WU4D0308403084eucas1p1n;\n Thu, 10 Sep 2020 19:34:20 +0000 (GMT)",
            "from eusmgms2.samsung.com (unknown [182.198.249.180]) by\n eusmtrp1.samsung.com (KnoxPortal) with ESMTP id\n 20200910193420eusmtrp14c07ffaa1ffaad08c872d8188a6086ae~zgx63gWya3165331653eusmtrp1u;\n Thu, 10 Sep 2020 19:34:20 +0000 (GMT)",
            "from eusmtip2.samsung.com ( [203.254.199.222]) by\n eusmgms2.samsung.com (EUCPMTA) with SMTP id 16.8A.06017.CBF7A5F5; Thu, 10\n Sep 2020 20:34:20 +0100 (BST)",
            "from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by\n eusmtip2.samsung.com (KnoxPortal) with ESMTPA id\n 20200910193418eusmtip2378bf4cf96e38dacd375a04475582bf0~zgx5GNrOU1654016540eusmtip27;\n Thu, 10 Sep 2020 19:34:18 +0000 (GMT)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com\n 20200910193422euoutp018b1698b895ed20d44695a4ea7b03b048~zgx9DyhzH0325703257euoutp01E",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;\n s=mail20170921; t=1599766463;\n bh=A2PTzi/6QAPdj31SukY6WaSzyjFhYitbEDWVAQoenkE=;\n h=From:To:Subject:Date:In-Reply-To:Reply-To:References:From;\n b=Braw16v7rzUhLCmncofKKN7JrWSWfQ5y+3iRhiqOFosKEcHUb2uvXdzmjpCdrTKqM\n EsbkqmWeP/wKEU88tXHWrL6kigKaRNLm2Qc9WlFY/buCpjFYGgHsU+VYKkDo0Jlmak\n qpHoIvMDC7RdYuAkuJ+aPtVlRiPL2Sb6seUoNjdE=",
        "X-AuditID": "cbfec7f2-7efff70000001938-80-5f5a7fbd9d91",
        "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": "Thu, 10 Sep 2020 22:33:36 +0300",
        "Message-Id": "<20200910193400.15326-4-i.dyukov@samsung.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20200910193400.15326-1-i.dyukov@samsung.com>",
        "X-Brightmail-Tracker": [
            "\n H4sIAAAAAAAAA0WSb0xTZxTGd+69vffS2O1aNJ44h7OJizP8kWCWM1nEsS25S/ywD/tEAqzO\n m2qkxfQCk2XZCDPIKjKsxE1wlYkTLCiiLa0EXC2ZRQtjgERYoKLBEdhArZBNh9soF7Nvz/md\n 55znfd+8Imt08mvFvbYCxW4z55l4Pdd2/UlfUucXWblbmr1J1NLjAroXqWdpvHqMp8MPDzI0\n 7M6gDt9JHTnvlDBU6XzEkK/RwdMf46UczUZ9DI12hgWqGSgVKBqcFOhIXy3Q5MI0SyfqHgP1\n ubw6enKtnacHC6c5qnw6BPS1pxsoVPGIo+orfqAyh0QPzzUIVD+aQNHxbo7CI5cFap7vZ8nb\n 8wzoaKgFqLfsX92ODfLTuh90cn3HFCMf+76fla+PHBfkihsuRm6d9TPyg6tDvFzpcYN8895h\n Vm6a+Iv/QJ+lf2u3kre3SLGnbP9Iv+fgwHnd/ur0Axc6AmwJeJIdIIoobcWfzmQ6IE40So2A\n g79+7gD9op4D9EYWOK14DOjsivDPB0K1L2m8AbDr1LegFfOAwze/YmKreGkThstdTKyxSmrl\n 0bdwe6kRL+3EyPQFIaY5aSP2TjSyMW2Q3sTwxOySB6X12HQxwMbS4qRteHc0WzteAt4+Nbe0\n E6VbIpb3BAXN/y66e47wmo7H6ZBnma/D8LEKThs4BHi07bKgFVWAX9bOLLsy0PP7z0IsjZVe\n x5b2FA2/jd39tzjtyi/i8MzKGGYXpbPtG1bDBiwvM2puEwZuDCxjxGd/r9CwjGOuNp32Pp2A\n 1WNNUAXra/7PqgNwwxqlULVaFDXVpnySrJqtaqHNkvxxvvUSLP7U8D+hqB/mB3YFQRLBtMIQ\n 2JaVa9SZi9RiaxBQZE2rDJm94RyjYbe5+FPFnp9rL8xT1CC8LHKmNYa001PZRsliLlD2Kcp+\n xf68y4hxa0ugZl/O9p2rN4K7PW31Bl/loM7S8ELgvV+EEyuzpj4TLbVq1Y7B/L5rOV7rprP8\n 0Pxvg3z2q5ku61WxueuN+OOJRZ7h7+571TtTacXr4i022/l3dt1vZf0pc6WtSTkzBeU8Jk4e\n 8L//p/G1VyLR9IzE3pPclg+3dqaO/MjFHbpbkpBu4tQ95tTNrF01/weLqbuIpQMAAA==",
            "\n H4sIAAAAAAAAA+NgFvrCIsWRmVeSWpSXmKPExsVy+t/xe7p76qPiDS7MUbRYf2Yeo8Wje4uZ\n LR5Muctm0f2hhcnixip7iz3b57BaTLrfwGTRN+kjk8X2FV1sFm8eNLFYvPu0ncnizt7T7Baz\n LjWxW3w69Jzdovf8bEaL539eMVvMXPCZ0eL8vK2sFj8P7mKzeP9nEYtF36+rjBb9W04wWhzv\n +chiMWXnDkaLti4Biw8rl7NbLL4jZ/HpwQkWi9M3N7NbrPl6kdli65m/jBYTj69ntDjb9p/V\n QdHj14KlrB6L97xk8pi88CKzx7Gb09g9ek7OY/LY+G4Hk8f7fVfZPPq2rGL0OPWom9lj9ZMf\n bAFcUXo2RfmlJakKGfnFJbZK0YYWRnqGlhZ6RiaWeobG5rFWRqZK+nY2Kak5mWWpRfp2CXoZ\n LZfWshZMsa5Yt+cAcwPjFr0uRg4OCQETieOz+bsYuTiEBJYySkz7Op0FIi4h8foJcxcjJ5Ap\n LPHnWhcbRM1nRonfr66zgCTYBDQkTnfMYwJJiAjcZpO43N4IlhAW8JG492odO4jNIqAqcfbJ\n CrBJvAKWEqefvGOCmCovsXrDAWaQZZwCVhIP78SChIUEMiXmnfnGCmHLSVyf/4VpAiPfAkaG\n VYwiqaXFuem5xUZ6xYm5xaV56XrJ+bmbGIExvu3Yzy07GLveBR9iFOBgVOLhPWAVFS/EmlhW\n XJl7iFGCg1lJhNfp7Ok4Id6UxMqq1KL8+KLSnNTiQ4ymQPdNZJYSTc4Hpp+8knhDU0NzC0tD\n c2NzYzMLJXHeDoGDMUIC6YklqdmpqQWpRTB9TBycUg2MScVnnJ5aZod3VqU1Vq7bWvm7Wctg\n qsCyovq6u4Kxxik2clfdDj86698oONX8hYyRc3fM1HW9/74++C/t+/nKz531zLtlmH4V3u7w\n Xidustz6D7/V5628nHUikw76l9190iYbUKS+NGJD9auksqfTEjW2qlx+udUup82wZI+K8rJU\n yy01DR5KLMUZiYZazEXFiQD1egDYBwMAAA=="
        ],
        "X-CMS-MailID": "20200910193420eucas1p1c7ed662be24a6fbc8e272dadefbbb22f",
        "X-Msg-Generator": "CA",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "X-RootMTR": "20200910193420eucas1p1c7ed662be24a6fbc8e272dadefbbb22f",
        "X-EPHeader": "CA",
        "CMS-TYPE": "201P",
        "X-CMS-RootMailID": "20200910193420eucas1p1c7ed662be24a6fbc8e272dadefbbb22f",
        "References": "<20200427095737.11082-1-i.dyukov@samsung.com>\n <20200910193400.15326-1-i.dyukov@samsung.com>\n <CGME20200910193420eucas1p1c7ed662be24a6fbc8e272dadefbbb22f@eucas1p1.samsung.com>",
        "Subject": "[dpdk-dev] [PATCH v10 03/24] app: update apps&docs with new UNKNOWN\n\tlink 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 <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 and docs\n\nSigned-off-by: Ivan Dyukov <i.dyukov@samsung.com>\n---\n app/proc-info/main.c                          | 11 +++++------\n app/test-pipeline/init.c                      | 11 +++++------\n app/test-pmd/config.c                         |  9 +++++----\n app/test-pmd/testpmd.c                        | 12 ++++--------\n app/test/test_pmd_perf.c                      | 17 +++++++----------\n doc/guides/sample_app_ug/link_status_intr.rst | 10 +++++-----\n 6 files changed, 31 insertions(+), 39 deletions(-)",
    "diff": "diff --git a/app/proc-info/main.c b/app/proc-info/main.c\nindex abeca4aab..0b030d326 100644\n--- a/app/proc-info/main.c\n+++ b/app/proc-info/main.c\n@@ -672,6 +672,7 @@ show_port(void)\n \t\tstruct rte_eth_dev_info dev_info;\n \t\tstruct rte_eth_rxq_info queue_info;\n \t\tstruct rte_eth_rss_conf rss_conf;\n+\t\tchar link_status_text[RTE_ETH_LINK_MAX_STR_LEN];\n \n \t\tmemset(&rss_conf, 0, sizeof(rss_conf));\n \n@@ -685,12 +686,10 @@ show_port(void)\n \t\t\tprintf(\"Link get failed (port %u): %s\\n\",\n \t\t\t       i, rte_strerror(-ret));\n \t\t} else {\n-\t\t\tprintf(\"\\t  -- link speed %d duplex %d,\"\n-\t\t\t\t\t\" auto neg %d status %d\\n\",\n-\t\t\t\t\tlink.link_speed,\n-\t\t\t\t\tlink.link_duplex,\n-\t\t\t\t\tlink.link_autoneg,\n-\t\t\t\t\tlink.link_status);\n+\t\t\trte_eth_link_to_str(link_status_text,\n+\t\t\t\t\tsizeof(link_status_text),\n+\t\t\t\t\t&link);\n+\t\t\tprintf(\"\\t%s\\n\", link_status_text);\n \t\t}\n \t\tprintf(\"\\t  -- promiscuous (%d)\\n\",\n \t\t\t\trte_eth_promiscuous_get(i));\ndiff --git a/app/test-pipeline/init.c b/app/test-pipeline/init.c\nindex 67d54ae05..fe37d6373 100644\n--- a/app/test-pipeline/init.c\n+++ b/app/test-pipeline/init.c\n@@ -155,7 +155,7 @@ static void\n app_ports_check_link(void)\n {\n \tuint32_t all_ports_up, i;\n-\n+\tchar link_status_text[RTE_ETH_LINK_MAX_STR_LEN];\n \tall_ports_up = 1;\n \n \tfor (i = 0; i < app.n_ports; i++) {\n@@ -173,12 +173,11 @@ app_ports_check_link(void)\n \t\t\tall_ports_up = 0;\n \t\t\tcontinue;\n \t\t}\n-\n-\t\tRTE_LOG(INFO, USER1, \"Port %u (%u Gbps) %s\\n\",\n+\t\trte_eth_link_to_str(link_status_text, sizeof(link_status_text),\n+\t\t\t\t    &link);\n+\t\tRTE_LOG(INFO, USER1, \"Port %u %s\\n\",\n \t\t\tport,\n-\t\t\tlink.link_speed / 1000,\n-\t\t\tlink.link_status ? \"UP\" : \"DOWN\");\n-\n+\t\t\tlink_status_text);\n \t\tif (link.link_status == ETH_LINK_DOWN)\n \t\t\tall_ports_up = 0;\n \t}\ndiff --git a/app/test-pmd/config.c b/app/test-pmd/config.c\nindex a7112c998..f814de29c 100644\n--- a/app/test-pmd/config.c\n+++ b/app/test-pmd/config.c\n@@ -605,7 +605,7 @@ port_infos_display(portid_t port_id)\n \t\tprintf(\"\\nmemory allocation on the socket: %u\",port->socket_id);\n \n \tprintf(\"\\nLink status: %s\\n\", (link.link_status) ? (\"up\") : (\"down\"));\n-\tprintf(\"Link speed: %u Mbps\\n\", (unsigned) link.link_speed);\n+\tprintf(\"Link speed: %s\\n\", rte_eth_link_speed_to_str(link.link_speed));\n \tprintf(\"Link duplex: %s\\n\", (link.link_duplex == ETH_LINK_FULL_DUPLEX) ?\n \t       (\"full-duplex\") : (\"half-duplex\"));\n \n@@ -750,12 +750,12 @@ port_summary_display(portid_t port_id)\n \tif (ret != 0)\n \t\treturn;\n \n-\tprintf(\"%-4d %02X:%02X:%02X:%02X:%02X:%02X %-12s %-14s %-8s %uMbps\\n\",\n+\tprintf(\"%-4d %02X:%02X:%02X:%02X:%02X:%02X %-12s %-14s %-8s %s\\n\",\n \t\tport_id, mac_addr.addr_bytes[0], mac_addr.addr_bytes[1],\n \t\tmac_addr.addr_bytes[2], mac_addr.addr_bytes[3],\n \t\tmac_addr.addr_bytes[4], mac_addr.addr_bytes[5], name,\n \t\tdev_info.driver_name, (link.link_status) ? (\"up\") : (\"down\"),\n-\t\t(unsigned int) link.link_speed);\n+\t\trte_eth_link_speed_to_str(link.link_speed));\n }\n \n void\n@@ -3899,7 +3899,8 @@ set_queue_rate_limit(portid_t port_id, uint16_t queue_idx, uint16_t rate)\n \tret = eth_link_get_nowait_print_err(port_id, &link);\n \tif (ret < 0)\n \t\treturn 1;\n-\tif (rate > link.link_speed) {\n+\tif (link.link_speed != ETH_SPEED_NUM_UNKNOWN &&\n+\t    rate > link.link_speed) {\n \t\tprintf(\"Invalid rate value:%u bigger than link speed: %u\\n\",\n \t\t\trate, link.link_speed);\n \t\treturn 1;\ndiff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c\nindex 4989d22ca..e996e2b75 100644\n--- a/app/test-pmd/testpmd.c\n+++ b/app/test-pmd/testpmd.c\n@@ -2991,6 +2991,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[RTE_ETH_LINK_MAX_STR_LEN];\n \n \tprintf(\"Checking link statuses...\\n\");\n \tfflush(stdout);\n@@ -3010,14 +3011,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,\n+\t\t\t\t\tsizeof(link_status), &link);\n+\t\t\t\tprintf(\"Port %d %s\\n\", portid, link_status);\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/app/test/test_pmd_perf.c b/app/test/test_pmd_perf.c\nindex 352cd4715..d1240b76f 100644\n--- a/app/test/test_pmd_perf.c\n+++ b/app/test/test_pmd_perf.c\n@@ -126,6 +126,7 @@ check_all_ports_link_status(uint16_t port_num, 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[RTE_ETH_LINK_MAX_STR_LEN];\n \n \tprintf(\"Checking link statuses...\\n\");\n \tfflush(stdout);\n@@ -146,16 +147,12 @@ check_all_ports_link_status(uint16_t port_num, uint32_t port_mask)\n \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\t\tif (link_mbps == 0)\n-\t\t\t\t\t\tlink_mbps = link.link_speed;\n-\t\t\t\t} else\n-\t\t\t\t\tprintf(\"Port %d Link Down\\n\", portid);\n+\t\t\t\tif (link.link_status && link_mbps == 0)\n+\t\t\t\t\tlink_mbps = link.link_speed;\n+\n+\t\t\t\trte_eth_link_to_str(link_status,\n+\t\t\t\t\tsizeof(link_status), &link);\n+\t\t\t\tprintf(\"Port %d %s\\n\", portid, link_status);\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/doc/guides/sample_app_ug/link_status_intr.rst b/doc/guides/sample_app_ug/link_status_intr.rst\nindex 04c40f285..1057c7584 100644\n--- a/doc/guides/sample_app_ug/link_status_intr.rst\n+++ b/doc/guides/sample_app_ug/link_status_intr.rst\n@@ -158,6 +158,7 @@ An example callback function that has been written as indicated below.\n     {\n         struct rte_eth_link link;\n         int ret;\n+        char link_status[RTE_ETH_LINK_MAX_STR_LEN];\n \n         RTE_SET_USED(param);\n \n@@ -169,11 +170,10 @@ An example callback function that has been written as indicated below.\n         if (ret < 0) {\n             printf(\"Failed to get port %d link status: %s\\n\\n\",\n                    port_id, rte_strerror(-ret));\n-        } else if (link.link_status) {\n-            printf(\"Port %d Link Up - speed %u Mbps - %s\\n\\n\", port_id, (unsigned)link.link_speed,\n-                  (link.link_duplex == ETH_LINK_FULL_DUPLEX) ? (\"full-duplex\") : (\"half-duplex\"));\n-        } else\n-            printf(\"Port %d Link Down\\n\\n\", port_id);\n+        } else {\n+            rte_eth_link_to_str(link_status, sizeof(link_status), &link);\n+            printf(\"Port %d %s\\n\", port_id, link_status);\n+        }\n     }\n \n This function is called when a link status interrupt is present for the right port.\n",
    "prefixes": [
        "v10",
        "03/24"
    ]
}