get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 77227,
    "url": "http://patches.dpdk.org/api/patches/77227/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20200910193400.15326-8-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-8-i.dyukov@samsung.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200910193400.15326-8-i.dyukov@samsung.com",
    "date": "2020-09-10T19:33:40",
    "name": "[v10,07/24] examples: new link status print format",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "fd6d4cf29b99663f34c31cda8563d981cf7f2c3d",
    "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-8-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/77227/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/77227/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 5C65CA04B5;\n\tThu, 10 Sep 2020 21:35:20 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 029D41C11D;\n\tThu, 10 Sep 2020 21:34:37 +0200 (CEST)",
            "from mailout2.w1.samsung.com (mailout2.w1.samsung.com\n [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id B32881C123\n for <dev@dpdk.org>; Thu, 10 Sep 2020 21:34:35 +0200 (CEST)",
            "from eucas1p2.samsung.com (unknown [182.198.249.207])\n by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id\n 20200910193435euoutp02726a186659be4a7faf90973817058f72~zgyIuYlFB0500705007euoutp02V;\n Thu, 10 Sep 2020 19:34:35 +0000 (GMT)",
            "from eusmges2new.samsung.com (unknown [203.254.199.244]) by\n eucas1p2.samsung.com (KnoxPortal) with ESMTP id\n 20200910193434eucas1p2f5adc0b3d6057585d8fee1213ab5fb3d~zgyHqXOUA1147811478eucas1p2j;\n Thu, 10 Sep 2020 19:34:34 +0000 (GMT)",
            "from eucas1p1.samsung.com ( [182.198.249.206]) by\n eusmges2new.samsung.com (EUCPMTA) with SMTP id 39.D5.05997.ACF7A5F5; Thu, 10\n Sep 2020 20:34:34 +0100 (BST)",
            "from eusmtrp2.samsung.com (unknown [182.198.249.139]) by\n eucas1p1.samsung.com (KnoxPortal) with ESMTPA id\n 20200910193433eucas1p1e00176d14e73334d7b293b0aae8b7e4a~zgyGhZeKZ0322703227eucas1p1n;\n Thu, 10 Sep 2020 19:34:33 +0000 (GMT)",
            "from eusmgms1.samsung.com (unknown [182.198.249.179]) by\n eusmtrp2.samsung.com (KnoxPortal) with ESMTP id\n 20200910193433eusmtrp269604593d7b1c0a3d3361f5a2348c2f9~zgyGgTjA71027210272eusmtrp2x;\n Thu, 10 Sep 2020 19:34:33 +0000 (GMT)",
            "from eusmtip2.samsung.com ( [203.254.199.222]) by\n eusmgms1.samsung.com (EUCPMTA) with SMTP id 8B.09.06314.8CF7A5F5; Thu, 10\n Sep 2020 20:34:33 +0100 (BST)",
            "from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by\n eusmtip2.samsung.com (KnoxPortal) with ESMTPA id\n 20200910193431eusmtip2070dc56d612b9c06fecbd7e9e58b4683~zgyEvQ06x1654016540eusmtip2_;\n Thu, 10 Sep 2020 19:34:31 +0000 (GMT)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com\n 20200910193435euoutp02726a186659be4a7faf90973817058f72~zgyIuYlFB0500705007euoutp02V",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;\n s=mail20170921; t=1599766475;\n bh=70Bc5Qf+Pjp25n3sxWMGseS0dIRRQUC1Jc8dQTJLpmQ=;\n h=From:To:Subject:Date:In-Reply-To:Reply-To:References:From;\n b=FYf0SPMrLTi7C7sCF9E5Kcb70/k0l8UN4l+MuqCBWsBxxOlp9ywidSxC3Yjnsu+2w\n oabEVhC6XHmJnNfjeJ2BWa3MB7P9Wqjz5caizJFgDTxHij7bjJTB9/q3nf6lSiqpyJ\n Vol3ypbuXUplyqxmGpTJXqDCKIBAOfpQ4CFGfgU8=",
        "X-AuditID": "cbfec7f4-65dff7000000176d-9e-5f5a7fcaf6f4",
        "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:40 +0300",
        "Message-Id": "<20200910193400.15326-8-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 H4sIAAAAAAAAA0WSX0xTdxTHc+5t7700VH8WomdqNHYzcyYD59w8Q51/spj7YuJ82AMJw05v\n wAjVtcKmWRwDpab8URAwg6VF0aHVDMFSoIGF1WDBFghuBLswZcTMyEQqYqZYRcqt2ds5n/P9\n nu95OBJvqBAWS/vMhxSL2ZRlFHQaz43nfe/f/D41fc2d3+dTQ9ABNHqnjqeRir8EKgof4+i2\n azO1t/ykpfK7eRyVlj/mqOWiXaCHI/kaejTZwtFwR0Ck6lv5Ik367otU0l8DdD8yxtOPtU+A\n +h3NWnr+m1egicg5DZVODwKddHcD+Ysfa6iirRWo0M4ofKlepLrhZTQ50q2hQOiaSFeeDvDU\n HHwJVOZvAOotnNFuWSFP117QynXtDzj59NkBXr4RqhLl4h4HJzc+auXkiV8HBbnU7QL55mgR\n L1++90zYqUvVbdyrZO3LVSzJn+7WZTa9mOIO5m/6tj1ihzwoWWOHOAnZOqzq+pO3g04ysIuA\n oarTWrWZAmxssnFq8wRwsK9S+8bybKAb1EE9YOSX8ZjlKWDB9TNCVCWwVRg44ZizJ7JGAVsi\n Q1x0kMC24vF+lxitNWwlXvWVzK3Vs0+wzeuKRSzHy1c7Z6+SpDiWgn8Pp0WxgS3DIefU3E5k\n QQlHAz5Q9Z9h5d1wzJuAY363qNZLcabNGTPYAMs810S1OTV7as14TLUZ3f/2idE0nr2HDd5k\n FW/Fmo7jcxjZPLw9viCK+dmy3HOGV7EeTxQaVLURO3tuxTDiyxfxKpYxHGjm1fM7AG2D807B\n 8ur/o2oBXLBIybFmZyjWtWblmySrKduaY85I2nMguwlmfzXwyj/VCt7IVz5gEhjj9Z0pqekG\n rSnXejjbByjxxkT9tt7Alwb9XtPhI4rlQLolJ0ux+mCJpDEu0n947kGagWWYDin7FeWgYnkz\n 5aS4xXlwMm7jdzZL8T/bK/VHlZSHH8VfT1j1x8TH937uGO7d4axKqb0wtHBtXXH618HcbUaz\n EF/WXW4Ih/5zsE0zwXfz0mxdrnpMrA6x0bFLTk/S+el3Jq5sl3sKvJ8fcb8lZxbWry8I7hbX\n 7ZxfWbQhuWmm9Ie39xR4elY7x/1d7h1G7Re7jBprpumD1bzFanoNrBRkb6cDAAA=",
            "\n H4sIAAAAAAAAAzWSe0hTcRTH+93XrtLiMpV+Ss8LlRYupy6P0vuvC0EohYJlNuym0uZid2ZF\n D5N8sJqpSZHFtMRcszJT00IjF6k1TbQsRSszQbJhPstKsw3pv8/he77fc+AcllRMUn5scopR\n NKRotDzjSTn+tnwMfHk2Nj6oKAoq2ywIBj+WkjBQ+IGBC2PnCeixbYOGuhs0FHxKJyC3YJyA\n OquJAedABgWjE3UE9Dc6ZFDUlSGDCfuwDMwd1xEMz46QcK1kEkGHpZaGX01PGPg+e4uC3N/d\n CC7VtCJouThOQeHjegRZJg7G7pTLoLR/BUwMtFLg6K2Wwd3pThJq2+YQ5LdUImjPmqe3rxZ+\n l5TRQmnDV0K4fLOTFJp7r8iEiy8thFA1Wk8I3592M0JujQ0JrwYvkELF0AwT6Rmr3GzQpxrF\n VUl6ybiF36eCYKUqHJTBoeFKVUhYXESwmt+4dfMhUZt8TDRs3HpQmfTwzxRxNGPL8YZZE0pH\n 5iAT8mAxF4pnOluRCXmyCq4M4apMq6tgXQLG34bIhR4vPPvOxLhZwU0i3Dfi7WaG88eOHAvh\n 9npzfQx+k32Ocgte3A6c2WGTuZni1uAHdjPtZjkXjh8/sdELoStxxYNnpHuWBxeBP/fHLeQn\n Y0vbD3qBV+D3xVNEHlpSghbZkLeYKukSdZJKKWl0UmpKojJBr3uIXAd/1Pyruh51Ve2xI45F\n /GL5s4jYeAWtOSad0NkRZkneW76z3XFAIT+kOXFSNOjjDalaUbIjtWu/fNLPJ0Hvep8UY7xK\n rQqDcFVYSFjIJuCXynO4pv0KLlFjFI+I4lHR8N9HsB5+6ehUQPOXucKAxq4evX3nrnmfb+nO\n /kzffeq4dWkbQsv91NHW3O5pfFvdcHpb6NXzUSfX1vLvCkbPtL1NLi6qN/fRy5wxZv+Yri9W\n 2597R6IrQsoztYf3v9amDbFNHXvvBTgL7r8IjBH5Qefy6ciE0p/3K33zBj3Ssuceya3PfXdf\n beQpKUmjWk8aJM0/hjaw7QYDAAA="
        ],
        "X-CMS-MailID": "20200910193433eucas1p1e00176d14e73334d7b293b0aae8b7e4a",
        "X-Msg-Generator": "CA",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "X-RootMTR": "20200910193433eucas1p1e00176d14e73334d7b293b0aae8b7e4a",
        "X-EPHeader": "CA",
        "CMS-TYPE": "201P",
        "X-CMS-RootMailID": "20200910193433eucas1p1e00176d14e73334d7b293b0aae8b7e4a",
        "References": "<20200427095737.11082-1-i.dyukov@samsung.com>\n <20200910193400.15326-1-i.dyukov@samsung.com>\n <CGME20200910193433eucas1p1e00176d14e73334d7b293b0aae8b7e4a@eucas1p1.samsung.com>",
        "Subject": "[dpdk-dev] [PATCH v10 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 | 30 +++++++++++----------------\n 5 files changed, 33 insertions(+), 50 deletions(-)",
    "diff": "diff --git a/examples/ipv4_multicast/main.c b/examples/ipv4_multicast/main.c\nindex 7e255c35a..a51b58412 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[RTE_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),\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..6e01b2e66 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[RTE_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), &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..e2236a87b 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[RTE_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), &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..0aeae216a 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[RTE_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), &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..a06398eff 100644\n--- a/examples/link_status_interrupt/main.c\n+++ b/examples/link_status_interrupt/main.c\n@@ -133,7 +133,7 @@ print_stats(void)\n \t\tlink_get_err = rte_eth_link_get_nowait(portid, &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 +141,8 @@ 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\" :\n+\t\t\t   rte_eth_link_speed_to_str(link.link_speed),\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 +445,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 +458,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 +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[ETH_LINK_MAX_STR_LEN];\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,\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": [
        "v10",
        "07/24"
    ]
}