get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 73321,
    "url": "https://patches.dpdk.org/api/patches/73321/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20200706203743.29416-9-i.dyukov@samsung.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<20200706203743.29416-9-i.dyukov@samsung.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200706203743.29416-9-i.dyukov@samsung.com",
    "date": "2020-07-06T20:37:22",
    "name": "[v6,08/25] examples: new link status print format",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "cb923ce9cf5728e4e74734c40dd200c6dc6e3e47",
    "submitter": {
        "id": 783,
        "url": "https://patches.dpdk.org/api/people/783/?format=api",
        "name": "Ivan Dyukov",
        "email": "i.dyukov@samsung.com"
    },
    "delegate": {
        "id": 319,
        "url": "https://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20200706203743.29416-9-i.dyukov@samsung.com/mbox/",
    "series": [
        {
            "id": 10825,
            "url": "https://patches.dpdk.org/api/series/10825/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=10825",
            "date": "2020-07-06T20:37:14",
            "name": "ethdev: allow unknown link speed",
            "version": 6,
            "mbox": "https://patches.dpdk.org/series/10825/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/73321/comments/",
    "check": "fail",
    "checks": "https://patches.dpdk.org/api/patches/73321/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 5B796A00C5;\n\tMon,  6 Jul 2020 22:39:19 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 58B8C1DD71;\n\tMon,  6 Jul 2020 22:38:15 +0200 (CEST)",
            "from mailout1.w1.samsung.com (mailout1.w1.samsung.com\n [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 448561DD70\n for <dev@dpdk.org>; Mon,  6 Jul 2020 22:38:14 +0200 (CEST)",
            "from eucas1p1.samsung.com (unknown [182.198.249.206])\n by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id\n 20200706203814euoutp01d7f3e96fd3be68cb9a6b7a2a516c9975~fRE3Mtix73113131131euoutp01W;\n Mon,  6 Jul 2020 20:38:14 +0000 (GMT)",
            "from eusmges1new.samsung.com (unknown [203.254.199.242]) by\n eucas1p1.samsung.com (KnoxPortal) with ESMTP id\n 20200706203813eucas1p1d70e92506c352a77373ec0fa27fad5bd~fRE3A_H_62654826548eucas1p11;\n Mon,  6 Jul 2020 20:38:13 +0000 (GMT)",
            "from eucas1p2.samsung.com ( [182.198.249.207]) by\n eusmges1new.samsung.com (EUCPMTA) with SMTP id 1A.D4.06456.5BB830F5; Mon,  6\n Jul 2020 21:38:13 +0100 (BST)",
            "from eusmtrp2.samsung.com (unknown [182.198.249.139]) by\n eucas1p1.samsung.com (KnoxPortal) with ESMTPA id\n 20200706203813eucas1p1fd1cf5ef5ae7ac290dcc2e4de11c6224~fRE2bmbmv2656026560eucas1p15;\n Mon,  6 Jul 2020 20:38:13 +0000 (GMT)",
            "from eusmgms2.samsung.com (unknown [182.198.249.180]) by\n eusmtrp2.samsung.com (KnoxPortal) with ESMTP id\n 20200706203813eusmtrp27905e50db7bbc13e1fceef1ca6f215b8~fRE2axy120640206402eusmtrp2t;\n Mon,  6 Jul 2020 20:38:13 +0000 (GMT)",
            "from eusmtip1.samsung.com ( [203.254.199.221]) by\n eusmgms2.samsung.com (EUCPMTA) with SMTP id 16.7E.06017.5BB830F5; Mon,  6\n Jul 2020 21:38:13 +0100 (BST)",
            "from idyukov.rnd.samsung.ru (unknown [106.109.129.29]) by\n eusmtip1.samsung.com (KnoxPortal) with ESMTPA id\n 20200706203811eusmtip16f809c480876bc91be86e59ca33e85f2~fRE0ru4ia1500415004eusmtip1y;\n Mon,  6 Jul 2020 20:38:11 +0000 (GMT)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com\n 20200706203814euoutp01d7f3e96fd3be68cb9a6b7a2a516c9975~fRE3Mtix73113131131euoutp01W",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;\n s=mail20170921; t=1594067894;\n bh=fNqGGGujtZQoaCNUifIZpoVDm0FLT/KHJy8jVKrEsB4=;\n h=From:To:Subject:Date:In-Reply-To:Reply-To:References:From;\n b=S4mk3ynTRAmW3nvFcHAGicDvez5pDUyBGRZaLoaFPUP1IEnQJgsRk4+5dbZuwfP7w\n eNImdooCSZSne9ua89ZHeFlS/G+v2xemd6JgVgUxix1tRLS9+HyMjnmOciL+vGepEQ\n 5ymzSyBss9pQ9TmaRcIo4Fyg66nkWkMktXOBIfZM=",
        "X-AuditID": "cbfec7f2-7efff70000001938-f9-5f038bb5ed9f",
        "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": "Mon,  6 Jul 2020 23:37:22 +0300",
        "Message-Id": "<20200706203743.29416-9-i.dyukov@samsung.com>",
        "X-Mailer": "git-send-email 2.17.1",
        "In-Reply-To": "<20200706203743.29416-1-i.dyukov@samsung.com>",
        "X-Brightmail-Tracker": [
            "\n H4sIAAAAAAAAA0VSbUwTWRT1zUxnhoaa2UL0BonGGtfVoMi6iddvNJpMopLV7A+XZMGqE1Sg\n uq3g12ZDELCCIgKKsmupbQxYdREBQYIGmkgrRbsSK6ioBLXEqghFgh+AUgbjv3PPOfee+24e\n T6sL2DB+h26PpNdpkzSskrnW9NE9tzqHjp/vuxyB5S0mgl1PrTR2Fj5hMac3g8J22wqsr/lX\n gfnP0ijMze+jsKYsm8U3nekM9vhrKOy44eKwuDWdQ7+9m8Nj7n8Idg/5aDxj7ifoNlUr8GNj\n HYvvhiwM5n7yEDxe5SToONrHYOH1WoJZ2QL2Xijl0NoxFf2dTgZdDys5vDRwj8bqlmGCJxzl\n BO9kfVFETxc/mc8rRGv9K0osOHePFpsenuLEo7dNlFjRU0uJ7256WDG3ykbE5q4cWrz44gP7\n qzJWuXSblLQjVdJHLt+s3J7h6KJ2m5ftG2l8TNKIcX42CeJB+AWGbV4umyh5tVBG4EnpIC0X\n 7wmYL2Qo5KKfwGuvcVThx1rMzlSZLyWQ11U4bhog0F7aQwfmssJP4DKaqIAQKlSwUDPURgWE\n ECEa+vz1XAAzwkxwp5lJAKuERXCu1snKS02Di1caxtKChMVw9lZYgFYLU6Gt5P3YTBD+56Gp\n wKeQ/ashL7+VkXEI+BxVnIzD4cv1EkrGB2HwahsnNxsJPLVkjptWQNXru1wgjBZmQ3ldpEyv\n hNPP/Zz84onQ/vaHAE2PwvxrReOHUIExSy27NdBwu3WcBhj+HCzTIljdXkY+zw0Ch+6epfPI\n tOLvWWZCbGSylGJITpAMUTpp7zyDNtmQokuYt3VX8lUy+lVdIw5/LRlo3WInAk80wapOno5X\n K7Sphv3JdgI8rQlVrbrjilOrtmn3H5D0u+L1KUmSwU6m8IxmsmqB5dUfaiFBu0dKlKTdkv6b\n SvFBYWnkT0dw73/WImrvm+BQ8wnduk1Lepp/q0xdXTbh8mHP+vtXTm5a3P8jfvaGPBrxTNp8\n sGHh8fXazLidMX+lt886FbdmSXjEYVve/djwSWt9MQWKnL9VzW1xriMmS6bXY9nYbVv4c2LH\n ognnPVsetPw+a+ecDbH1RSXOuoroaHvxy+WD0oxYDWPYro2aQ+sN2q8Ps5oRpgMAAA==",
            "\n H4sIAAAAAAAAAzWSe0hTcRTH+917d3cdzS7T8tc0q0UUQcu5dGeiZoFwg+hBfwi9bNhNLedk\n dxMN/zATG9OsmRpZrZlJpZE9fGMPtdxqij0oS3uIBWKG6bSXaeWU/vtwvud7zhfOYUjZOCVn\n klNNvDFVl6KgJZT7j/Pd2rp8Mj7kt00CNZ12BAPvK0joL35HQ/5oLgGvqzZAS8N5ERR9yCag\n sGiMgIarVhq+9OdQMOJpIODtXbcYyp7niMHTNiiGE93nEAxOfSbhrGMcQbe9TgS/Wptp+Dp1\n iYLCyZcITta6EDgLxigobmpEkGdlYfTaFTFUvA0GT7+LAvebO2K4/u0ZCXWd0whszhoEXXl/\n RTHLuUlHpYiraBkiuNPlz0iu402pmCt4bCe4WyONBPf13kuaK6ytQtyTgXySq/70k94u2aWM\n NBrMJn5ZkkEwRSl2qyBUqdKCMnS9VqlSa/ZGhIYp1kVHHuBTktN547ro/cqkXOcAkeaIyvjT\n 2oeykSXEihgGs+uxw5VuRRJGxlYifPp7u2iujvHwJ9KKfGbQD0+9stJzPeMIT7TbKK9As6ux\n 22InvII/20fjF8ePzgp+bAwe87SIvUyxK3F3tgN5WcpqcXmji56buhRX33xAepf5sBH4wiO5\n F2VsMu6dmHXK2GDcc3GCOIV8HWheFfLnzYI+US+EKgWdXjCnJioTDPrbaObg9R2/ahuRdWRn\n G2IZpJgvtdBkvEykSxcy9W0IM6TCX7qpy71PJj2gyzzCGw3xRnMKL7ShsJl4NlK+MMEw8z6p\n pnhVmEoDWpVGrVGHgyJAamFb98jYRJ2JP8zzabzxv49gfOTZqDaAcl8eK4HFidPiXEnWD1GW\n X7M58PPG6u58HFv5ZLtcdvugzaOdLF1SX7Vq24dYV15kePmK3ibf1ml1rv3hvDjz1R7f4UUl\n N3rCDFzOsR4NGbFVvWJL2f1DRkvX6mtBGwODjg6kDS0IuGIbj0xhMo4v+ujcsdi8OU4ydObp\n ZPWwghKSdKo1pFHQ/QN+tFV9BgMAAA=="
        ],
        "X-CMS-MailID": "20200706203813eucas1p1fd1cf5ef5ae7ac290dcc2e4de11c6224",
        "X-Msg-Generator": "CA",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "X-RootMTR": "20200706203813eucas1p1fd1cf5ef5ae7ac290dcc2e4de11c6224",
        "X-EPHeader": "CA",
        "CMS-TYPE": "201P",
        "X-CMS-RootMailID": "20200706203813eucas1p1fd1cf5ef5ae7ac290dcc2e4de11c6224",
        "References": "<20200427095737.11082-1-i.dyukov@samsung.com>\n <20200706203743.29416-1-i.dyukov@samsung.com>\n <CGME20200706203813eucas1p1fd1cf5ef5ae7ac290dcc2e4de11c6224@eucas1p1.samsung.com>",
        "Subject": "[dpdk-dev] [PATCH v6 08/25] 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_strf 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..0d4957658 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_strf(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..740f1c80f 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_strf(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..d8be0a727 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_strf(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..ef0f19a39 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_strf(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..5e286060d 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_strf(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_strf(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_strf(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": [
        "v6",
        "08/25"
    ]
}