get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 11736,
    "url": "http://patchwork.dpdk.org/api/patches/11736/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/1458934950-23333-5-git-send-email-thomas.monjalon@6wind.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": "<1458934950-23333-5-git-send-email-thomas.monjalon@6wind.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1458934950-23333-5-git-send-email-thomas.monjalon@6wind.com",
    "date": "2016-03-25T19:42:26",
    "name": "[dpdk-dev,v12,4/8] ethdev: rename link speed constants",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "aa98149c8bc2d3b49c64a5490587c9d3e584495c",
    "submitter": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/people/1/?format=api",
        "name": "Thomas Monjalon",
        "email": "thomas.monjalon@6wind.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/1458934950-23333-5-git-send-email-thomas.monjalon@6wind.com/mbox/",
    "series": [],
    "comments": "http://patchwork.dpdk.org/api/patches/11736/comments/",
    "check": "pending",
    "checks": "http://patchwork.dpdk.org/api/patches/11736/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id 820245901;\n\tFri, 25 Mar 2016 20:44:49 +0100 (CET)",
            "from mail-wm0-f47.google.com (mail-wm0-f47.google.com\n\t[74.125.82.47]) by dpdk.org (Postfix) with ESMTP id 18CBF5946\n\tfor <dev@dpdk.org>; Fri, 25 Mar 2016 20:44:40 +0100 (CET)",
            "by mail-wm0-f47.google.com with SMTP id p65so35242344wmp.1\n\tfor <dev@dpdk.org>; Fri, 25 Mar 2016 12:44:40 -0700 (PDT)",
            "from XPS13.localdomain (91.111.75.86.rev.sfr.net. [86.75.111.91])\n\tby smtp.gmail.com with ESMTPSA id\n\tu4sm13240660wjz.4.2016.03.25.12.44.37\n\t(version=TLSv1/SSLv3 cipher=OTHER);\n\tFri, 25 Mar 2016 12:44:39 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=6wind-com.20150623.gappssmtp.com; s=20150623;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=JjmlF5lSiew2HESoIkAm88d2dvod79ZkIZZPA3XhYDs=;\n\tb=DX7x/pzaBOpDcL5XhsA5x5lt4KpYAOtDVe8h+Aua/HuS2Zrtj4Fz/Zt2ruOww0oe8K\n\toOfmV/qPDGTEfPIpZb7WD3wv//uZ9Z4BJPTY6SE0O4crUwqjDhshhgJ+Y943KsgyJhpX\n\teJ0fCCB/G/zu6uuPxg4sVjCKYKrPuNFJjxmpQub9ia6NRtgaJMWaWThlrQzdybXM3C1Z\n\t7bomf7cdyFknGztwbZMKIGQeIT70wgKzbdg2cZhZV6nsUGJ5gndaG3hMiQ38f7WfHQq0\n\tjynSrKwhUkXvpdaGY1s1pB6YwCc42hg5FEEZlRgIvmc+NBpz30pfABYXV7WRP1av1YMm\n\tzWdQ==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20130820;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=JjmlF5lSiew2HESoIkAm88d2dvod79ZkIZZPA3XhYDs=;\n\tb=Ulf3oFi2JOT3mUhtji3385ImnkYII38Ns2H50/7V/NaWMKCe/LL5nvDB1AUS39G+WL\n\tbzz3CtnRvvSbma4Dy/Gktn5sQWTozWISOUWNZDo5tYj9LsBbhGjuDaOsSCZQR1jM3Ewm\n\toMKrAOtwwJpdyOfYQ7FoGpzj6mLabR4U3d8Ein4DjHKgWKVTXiXo/+TdCz2cTT63pSIw\n\t3y7MBTexJZoiBABxKKsnC9bxDtIYRYvcXMJWl2Ak3jlQsZetJbl+Us3wmPehQgQdtgP9\n\tpNTYY2RZKb9lb6JepD5/2igvQ5cUAXX0ZZz5/cgQcrz2qORrfP16/m2wm2rGazUCWTcn\n\ts1kw==",
        "X-Gm-Message-State": "AD7BkJIMZHHUXYSWlf3CKkXoqSf2P8SOnIsNPNjBoab7QEm2R6pHzWxD2n8TEzrGhVV+JF8+",
        "X-Received": "by 10.194.76.161 with SMTP id l1mr16611130wjw.108.1458935079924; \n\tFri, 25 Mar 2016 12:44:39 -0700 (PDT)",
        "From": "Thomas Monjalon <thomas.monjalon@6wind.com>",
        "To": "marcdevel@gmail.com, bruce.richardson@intel.com, declan.doherty@intel.com,\n\tkonstantin.ananyev@intel.com, wenzhuo.lu@intel.com,\n\thelin.zhang@intel.com, jing.d.chen@intel.com, harish.patil@qlogic.com,\n\trahul.lakkireddy@chelsio.com, johndale@cisco.com, vido@cesnet.cz,\n\tadrien.mazarguil@6wind.com, alejandro.lucero@netronome.com",
        "Cc": "dev@dpdk.org",
        "Date": "Fri, 25 Mar 2016 20:42:26 +0100",
        "Message-Id": "<1458934950-23333-5-git-send-email-thomas.monjalon@6wind.com>",
        "X-Mailer": "git-send-email 2.7.0",
        "In-Reply-To": "<1458934950-23333-1-git-send-email-thomas.monjalon@6wind.com>",
        "References": "<1458238145-7496-1-git-send-email-thomas.monjalon@6wind.com>\n\t<1458934950-23333-1-git-send-email-thomas.monjalon@6wind.com>",
        "Subject": "[dpdk-dev] [PATCH v12 4/8] ethdev: rename link speed constants",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "patches and discussions about DPDK <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Marc Sune <marcdevel@gmail.com>\n\nThe speed numbers ETH_LINK_SPEED_ are renamed ETH_SPEED_NUM_.\nThe prefix ETH_LINK_SPEED_ is kept for AUTONEG and will be used\nfor bit flags in next patch.\n\nSigned-off-by: Marc Sune <marcdevel@gmail.com>\n---\n app/test-pmd/cmdline.c                    | 10 +++++-----\n app/test/virtual_pmd.c                    |  2 +-\n drivers/net/af_packet/rte_eth_af_packet.c |  2 +-\n drivers/net/bonding/rte_eth_bond_8023ad.c | 12 ++++++------\n drivers/net/cxgbe/base/t4_hw.c            |  8 ++++----\n drivers/net/e1000/em_ethdev.c             |  8 ++++----\n drivers/net/e1000/igb_ethdev.c            |  8 ++++----\n drivers/net/ena/ena_ethdev.c              |  2 +-\n drivers/net/i40e/i40e_ethdev.c            | 30 +++++++++++++++---------------\n drivers/net/i40e/i40e_ethdev_vf.c         |  2 +-\n drivers/net/ixgbe/ixgbe_ethdev.c          | 22 +++++++++++-----------\n drivers/net/mpipe/mpipe_tilegx.c          |  4 ++--\n drivers/net/nfp/nfp_net.c                 |  2 +-\n drivers/net/null/rte_eth_null.c           |  2 +-\n drivers/net/pcap/rte_eth_pcap.c           |  2 +-\n drivers/net/ring/rte_eth_ring.c           |  2 +-\n drivers/net/szedata2/rte_eth_szedata2.c   |  8 ++++----\n drivers/net/vmxnet3/vmxnet3_ethdev.c      |  2 +-\n drivers/net/xenvirt/rte_eth_xenvirt.c     |  2 +-\n lib/librte_ether/rte_ethdev.h             | 29 ++++++++++++++++++-----------\n 20 files changed, 83 insertions(+), 76 deletions(-)",
    "diff": "diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c\nindex eb7bbb4..815b53b 100644\n--- a/app/test-pmd/cmdline.c\n+++ b/app/test-pmd/cmdline.c\n@@ -1006,20 +1006,20 @@ parse_and_check_speed_duplex(char *speedstr, char *duplexstr, uint16_t *speed)\n \t}\n \n \tif (!strcmp(speedstr, \"10\")) {\n-\t\t*speed = ETH_LINK_SPEED_10;\n+\t\t*speed = ETH_SPEED_NUM_10M;\n \t} else if (!strcmp(speedstr, \"100\")) {\n-\t\t*speed = ETH_LINK_SPEED_100;\n+\t\t*speed = ETH_SPEED_NUM_100M;\n \t} else {\n \t\tif (duplex != ETH_LINK_FULL_DUPLEX) {\n \t\t\tprintf(\"Invalid speed/duplex parameters\\n\");\n \t\t\treturn -1;\n \t\t}\n \t\tif (!strcmp(speedstr, \"1000\")) {\n-\t\t\t*speed = ETH_LINK_SPEED_1000;\n+\t\t\t*speed = ETH_SPEED_NUM_1G;\n \t\t} else if (!strcmp(speedstr, \"10000\")) {\n-\t\t\t*speed = ETH_LINK_SPEED_10G;\n+\t\t\t*speed = ETH_SPEED_NUM_10G;\n \t\t} else if (!strcmp(speedstr, \"40000\")) {\n-\t\t\t*speed = ETH_LINK_SPEED_40G;\n+\t\t\t*speed = ETH_SPEED_NUM_40G;\n \t\t} else if (!strcmp(speedstr, \"auto\")) {\n \t\t\t*speed = ETH_LINK_SPEED_AUTONEG;\n \t\t} else {\ndiff --git a/app/test/virtual_pmd.c b/app/test/virtual_pmd.c\nindex b1d40d7..b4bd2f2 100644\n--- a/app/test/virtual_pmd.c\n+++ b/app/test/virtual_pmd.c\n@@ -604,7 +604,7 @@ virtual_ethdev_create(const char *name, struct ether_addr *mac_addr,\n \tTAILQ_INIT(&(eth_dev->link_intr_cbs));\n \n \teth_dev->data->dev_link.link_status = ETH_LINK_DOWN;\n-\teth_dev->data->dev_link.link_speed = ETH_LINK_SPEED_10000;\n+\teth_dev->data->dev_link.link_speed = ETH_SPEED_NUM_10G;\n \teth_dev->data->dev_link.link_duplex = ETH_LINK_FULL_DUPLEX;\n \n \teth_dev->data->mac_addrs = rte_zmalloc(name, ETHER_ADDR_LEN, 0);\ndiff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c\nindex dee7b59..641f849 100644\n--- a/drivers/net/af_packet/rte_eth_af_packet.c\n+++ b/drivers/net/af_packet/rte_eth_af_packet.c\n@@ -116,7 +116,7 @@ static const char *valid_arguments[] = {\n static const char *drivername = \"AF_PACKET PMD\";\n \n static struct rte_eth_link pmd_link = {\n-\t.link_speed = 10000,\n+\t.link_speed = ETH_SPEED_NUM_10G,\n \t.link_duplex = ETH_LINK_FULL_DUPLEX,\n \t.link_status = ETH_LINK_DOWN,\n };\ndiff --git a/drivers/net/bonding/rte_eth_bond_8023ad.c b/drivers/net/bonding/rte_eth_bond_8023ad.c\nindex 1b7e93a..ac8306f 100644\n--- a/drivers/net/bonding/rte_eth_bond_8023ad.c\n+++ b/drivers/net/bonding/rte_eth_bond_8023ad.c\n@@ -711,22 +711,22 @@ link_speed_key(uint16_t speed) {\n \tcase ETH_LINK_SPEED_AUTONEG:\n \t\tkey_speed = 0x00;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_10:\n+\tcase ETH_SPEED_NUM_10M:\n \t\tkey_speed = BOND_LINK_SPEED_KEY_10M;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_100:\n+\tcase ETH_SPEED_NUM_100M:\n \t\tkey_speed = BOND_LINK_SPEED_KEY_100M;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_1000:\n+\tcase ETH_SPEED_NUM_1G:\n \t\tkey_speed = BOND_LINK_SPEED_KEY_1000M;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_10G:\n+\tcase ETH_SPEED_NUM_10G:\n \t\tkey_speed = BOND_LINK_SPEED_KEY_10G;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_20G:\n+\tcase ETH_SPEED_NUM_20G:\n \t\tkey_speed = BOND_LINK_SPEED_KEY_20G;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_40G:\n+\tcase ETH_SPEED_NUM_40G:\n \t\tkey_speed = BOND_LINK_SPEED_KEY_40G;\n \t\tbreak;\n \tdefault:\ndiff --git a/drivers/net/cxgbe/base/t4_hw.c b/drivers/net/cxgbe/base/t4_hw.c\nindex 884d2cf..79af806 100644\n--- a/drivers/net/cxgbe/base/t4_hw.c\n+++ b/drivers/net/cxgbe/base/t4_hw.c\n@@ -2159,13 +2159,13 @@ int t4_handle_fw_rpl(struct adapter *adap, const __be64 *rpl)\n \t\tif (stat & F_FW_PORT_CMD_TXPAUSE)\n \t\t\tfc |= PAUSE_TX;\n \t\tif (stat & V_FW_PORT_CMD_LSPEED(FW_PORT_CAP_SPEED_100M))\n-\t\t\tspeed = ETH_LINK_SPEED_100;\n+\t\t\tspeed = ETH_SPEED_NUM_100M;\n \t\telse if (stat & V_FW_PORT_CMD_LSPEED(FW_PORT_CAP_SPEED_1G))\n-\t\t\tspeed = ETH_LINK_SPEED_1000;\n+\t\t\tspeed = ETH_SPEED_NUM_1G;\n \t\telse if (stat & V_FW_PORT_CMD_LSPEED(FW_PORT_CAP_SPEED_10G))\n-\t\t\tspeed = ETH_LINK_SPEED_10000;\n+\t\t\tspeed = ETH_SPEED_NUM_10G;\n \t\telse if (stat & V_FW_PORT_CMD_LSPEED(FW_PORT_CAP_SPEED_40G))\n-\t\t\tspeed = ETH_LINK_SPEED_40G;\n+\t\t\tspeed = ETH_SPEED_NUM_40G;\n \n \t\tfor_each_port(adap, i) {\n \t\t\tpi = adap2pinfo(adap, i);\ndiff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c\nindex fad8f2f..473d77f 100644\n--- a/drivers/net/e1000/em_ethdev.c\n+++ b/drivers/net/e1000/em_ethdev.c\n@@ -625,7 +625,7 @@ eth_em_start(struct rte_eth_dev *dev)\n \t\telse\n \t\t\tgoto error_invalid_config;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_10:\n+\tcase ETH_SPEED_NUM_10M:\n \t\tif (dev->data->dev_conf.link_duplex == ETH_LINK_AUTONEG_DUPLEX)\n \t\t\thw->phy.autoneg_advertised = E1000_ALL_10_SPEED;\n \t\telse if (dev->data->dev_conf.link_duplex ==\n@@ -637,7 +637,7 @@ eth_em_start(struct rte_eth_dev *dev)\n \t\telse\n \t\t\tgoto error_invalid_config;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_100:\n+\tcase ETH_SPEED_NUM_100M:\n \t\tif (dev->data->dev_conf.link_duplex == ETH_LINK_AUTONEG_DUPLEX)\n \t\t\thw->phy.autoneg_advertised = E1000_ALL_100_SPEED;\n \t\telse if (dev->data->dev_conf.link_duplex ==\n@@ -649,7 +649,7 @@ eth_em_start(struct rte_eth_dev *dev)\n \t\telse\n \t\t\tgoto error_invalid_config;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_1000:\n+\tcase ETH_SPEED_NUM_1G:\n \t\tif ((dev->data->dev_conf.link_duplex ==\n \t\t\t\tETH_LINK_AUTONEG_DUPLEX) ||\n \t\t\t(dev->data->dev_conf.link_duplex ==\n@@ -658,7 +658,7 @@ eth_em_start(struct rte_eth_dev *dev)\n \t\telse\n \t\t\tgoto error_invalid_config;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_10000:\n+\tcase ETH_SPEED_NUM_10G:\n \tdefault:\n \t\tgoto error_invalid_config;\n \t}\ndiff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c\nindex 4dfa7e3..86f25f6 100644\n--- a/drivers/net/e1000/igb_ethdev.c\n+++ b/drivers/net/e1000/igb_ethdev.c\n@@ -1244,7 +1244,7 @@ eth_igb_start(struct rte_eth_dev *dev)\n \t\telse\n \t\t\tgoto error_invalid_config;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_10:\n+\tcase ETH_SPEED_NUM_10M:\n \t\tif (dev->data->dev_conf.link_duplex == ETH_LINK_AUTONEG_DUPLEX)\n \t\t\thw->phy.autoneg_advertised = E1000_ALL_10_SPEED;\n \t\telse if (dev->data->dev_conf.link_duplex == ETH_LINK_HALF_DUPLEX)\n@@ -1254,7 +1254,7 @@ eth_igb_start(struct rte_eth_dev *dev)\n \t\telse\n \t\t\tgoto error_invalid_config;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_100:\n+\tcase ETH_SPEED_NUM_100M:\n \t\tif (dev->data->dev_conf.link_duplex == ETH_LINK_AUTONEG_DUPLEX)\n \t\t\thw->phy.autoneg_advertised = E1000_ALL_100_SPEED;\n \t\telse if (dev->data->dev_conf.link_duplex == ETH_LINK_HALF_DUPLEX)\n@@ -1264,14 +1264,14 @@ eth_igb_start(struct rte_eth_dev *dev)\n \t\telse\n \t\t\tgoto error_invalid_config;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_1000:\n+\tcase ETH_SPEED_NUM_1G:\n \t\tif ((dev->data->dev_conf.link_duplex == ETH_LINK_AUTONEG_DUPLEX) ||\n \t\t\t\t(dev->data->dev_conf.link_duplex == ETH_LINK_FULL_DUPLEX))\n \t\t\thw->phy.autoneg_advertised = ADVERTISE_1000_FULL;\n \t\telse\n \t\t\tgoto error_invalid_config;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_10000:\n+\tcase ETH_SPEED_NUM_10G:\n \tdefault:\n \t\tgoto error_invalid_config;\n \t}\ndiff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c\nindex 325c513..1046286 100644\n--- a/drivers/net/ena/ena_ethdev.c\n+++ b/drivers/net/ena/ena_ethdev.c\n@@ -504,7 +504,7 @@ static int ena_link_update(struct rte_eth_dev *dev,\n \tstruct rte_eth_link *link = &dev->data->dev_link;\n \n \tlink->link_status = 1;\n-\tlink->link_speed = ETH_LINK_SPEED_10G;\n+\tlink->link_speed = ETH_SPEED_NUM_10G;\n \tlink->link_duplex = ETH_LINK_FULL_DUPLEX;\n \n \treturn 0;\ndiff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c\nindex 05126e8..cce9e6f 100644\n--- a/drivers/net/i40e/i40e_ethdev.c\n+++ b/drivers/net/i40e/i40e_ethdev.c\n@@ -1386,19 +1386,19 @@ i40e_parse_link_speed(uint16_t eth_link_speed)\n \tuint8_t link_speed = I40E_LINK_SPEED_UNKNOWN;\n \n \tswitch (eth_link_speed) {\n-\tcase ETH_LINK_SPEED_40G:\n+\tcase ETH_SPEED_NUM_40G:\n \t\tlink_speed = I40E_LINK_SPEED_40GB;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_20G:\n+\tcase ETH_SPEED_NUM_20G:\n \t\tlink_speed = I40E_LINK_SPEED_20GB;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_10G:\n+\tcase ETH_SPEED_NUM_10G:\n \t\tlink_speed = I40E_LINK_SPEED_10GB;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_1000:\n+\tcase ETH_SPEED_NUM_1G:\n \t\tlink_speed = I40E_LINK_SPEED_1GB;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_100:\n+\tcase ETH_SPEED_NUM_100M:\n \t\tlink_speed = I40E_LINK_SPEED_100MB;\n \t\tbreak;\n \t}\n@@ -1768,7 +1768,7 @@ i40e_dev_link_update(struct rte_eth_dev *dev,\n \t\t/* Get link status information from hardware */\n \t\tstatus = i40e_aq_get_link_info(hw, false, &link_status, NULL);\n \t\tif (status != I40E_SUCCESS) {\n-\t\t\tlink.link_speed = ETH_LINK_SPEED_100;\n+\t\t\tlink.link_speed = ETH_SPEED_NUM_100M;\n \t\t\tlink.link_duplex = ETH_LINK_FULL_DUPLEX;\n \t\t\tPMD_DRV_LOG(ERR, \"Failed to get link info\");\n \t\t\tgoto out;\n@@ -1790,22 +1790,22 @@ i40e_dev_link_update(struct rte_eth_dev *dev,\n \t/* Parse the link status */\n \tswitch (link_status.link_speed) {\n \tcase I40E_LINK_SPEED_100MB:\n-\t\tlink.link_speed = ETH_LINK_SPEED_100;\n+\t\tlink.link_speed = ETH_SPEED_NUM_100M;\n \t\tbreak;\n \tcase I40E_LINK_SPEED_1GB:\n-\t\tlink.link_speed = ETH_LINK_SPEED_1000;\n+\t\tlink.link_speed = ETH_SPEED_NUM_1G;\n \t\tbreak;\n \tcase I40E_LINK_SPEED_10GB:\n-\t\tlink.link_speed = ETH_LINK_SPEED_10G;\n+\t\tlink.link_speed = ETH_SPEED_NUM_10G;\n \t\tbreak;\n \tcase I40E_LINK_SPEED_20GB:\n-\t\tlink.link_speed = ETH_LINK_SPEED_20G;\n+\t\tlink.link_speed = ETH_SPEED_NUM_20G;\n \t\tbreak;\n \tcase I40E_LINK_SPEED_40GB:\n-\t\tlink.link_speed = ETH_LINK_SPEED_40G;\n+\t\tlink.link_speed = ETH_SPEED_NUM_40G;\n \t\tbreak;\n \tdefault:\n-\t\tlink.link_speed = ETH_LINK_SPEED_100;\n+\t\tlink.link_speed = ETH_SPEED_NUM_100M;\n \t\tbreak;\n \t}\n \n@@ -8158,15 +8158,15 @@ i40e_start_timecounters(struct rte_eth_dev *dev)\n \trte_i40e_dev_atomic_read_link_status(dev, &link);\n \n \tswitch (link.link_speed) {\n-\tcase ETH_LINK_SPEED_40G:\n+\tcase ETH_SPEED_NUM_40G:\n \t\ttsync_inc_l = I40E_PTP_40GB_INCVAL & 0xFFFFFFFF;\n \t\ttsync_inc_h = I40E_PTP_40GB_INCVAL >> 32;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_10G:\n+\tcase ETH_SPEED_NUM_10G:\n \t\ttsync_inc_l = I40E_PTP_10GB_INCVAL & 0xFFFFFFFF;\n \t\ttsync_inc_h = I40E_PTP_10GB_INCVAL >> 32;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_1000:\n+\tcase ETH_SPEED_NUM_1G:\n \t\ttsync_inc_l = I40E_PTP_1GB_INCVAL & 0xFFFFFFFF;\n \t\ttsync_inc_h = I40E_PTP_1GB_INCVAL >> 32;\n \t\tbreak;\ndiff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c\nindex 91df13b..295dcd2 100644\n--- a/drivers/net/i40e/i40e_ethdev_vf.c\n+++ b/drivers/net/i40e/i40e_ethdev_vf.c\n@@ -2126,7 +2126,7 @@ i40evf_dev_link_update(struct rte_eth_dev *dev,\n \telse {\n \t\t/* Always assume it's up, for Linux driver PF host */\n \t\tnew_link.link_duplex = ETH_LINK_AUTONEG_DUPLEX;\n-\t\tnew_link.link_speed  = ETH_LINK_SPEED_10000;\n+\t\tnew_link.link_speed  = ETH_SPEED_NUM_10G;\n \t\tnew_link.link_status = ETH_LINK_UP;\n \t}\n \ti40evf_dev_atomic_write_link_status(dev, &new_link);\ndiff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c\nindex 21a3b8c..a0179d2 100644\n--- a/drivers/net/ixgbe/ixgbe_ethdev.c\n+++ b/drivers/net/ixgbe/ixgbe_ethdev.c\n@@ -2199,17 +2199,17 @@ ixgbe_dev_start(struct rte_eth_dev *dev)\n \t\t\t\tIXGBE_LINK_SPEED_82599_AUTONEG :\n \t\t\t\tIXGBE_LINK_SPEED_82598_AUTONEG;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_100:\n+\tcase ETH_SPEED_NUM_100M:\n \t\t/*\n \t\t * Invalid for 82598 but error will be detected by\n \t\t * ixgbe_setup_link()\n \t\t */\n \t\tspeed = IXGBE_LINK_SPEED_100_FULL;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_1000:\n+\tcase ETH_SPEED_NUM_1G:\n \t\tspeed = IXGBE_LINK_SPEED_1GB_FULL;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_10000:\n+\tcase ETH_SPEED_NUM_10G:\n \t\tspeed = IXGBE_LINK_SPEED_10GB_FULL;\n \t\tbreak;\n \tdefault:\n@@ -3074,7 +3074,7 @@ ixgbe_dev_link_update(struct rte_eth_dev *dev, int wait_to_complete)\n \t\tdiag = ixgbe_check_link(hw, &link_speed, &link_up, 1);\n \n \tif (diag != 0) {\n-\t\tlink.link_speed = ETH_LINK_SPEED_100;\n+\t\tlink.link_speed = ETH_SPEED_NUM_100M;\n \t\tlink.link_duplex = ETH_LINK_HALF_DUPLEX;\n \t\trte_ixgbe_dev_atomic_write_link_status(dev, &link);\n \t\tif (link.link_status == old.link_status)\n@@ -3095,19 +3095,19 @@ ixgbe_dev_link_update(struct rte_eth_dev *dev, int wait_to_complete)\n \tdefault:\n \tcase IXGBE_LINK_SPEED_UNKNOWN:\n \t\tlink.link_duplex = ETH_LINK_HALF_DUPLEX;\n-\t\tlink.link_speed = ETH_LINK_SPEED_100;\n+\t\tlink.link_speed = ETH_SPEED_NUM_100M;\n \t\tbreak;\n \n \tcase IXGBE_LINK_SPEED_100_FULL:\n-\t\tlink.link_speed = ETH_LINK_SPEED_100;\n+\t\tlink.link_speed = ETH_SPEED_NUM_100M;\n \t\tbreak;\n \n \tcase IXGBE_LINK_SPEED_1GB_FULL:\n-\t\tlink.link_speed = ETH_LINK_SPEED_1000;\n+\t\tlink.link_speed = ETH_SPEED_NUM_1G;\n \t\tbreak;\n \n \tcase IXGBE_LINK_SPEED_10GB_FULL:\n-\t\tlink.link_speed = ETH_LINK_SPEED_10000;\n+\t\tlink.link_speed = ETH_SPEED_NUM_10G;\n \t\tbreak;\n \t}\n \trte_ixgbe_dev_atomic_write_link_status(dev, &link);\n@@ -5909,15 +5909,15 @@ ixgbe_start_timecounters(struct rte_eth_dev *dev)\n \trte_ixgbe_dev_atomic_read_link_status(dev, &link);\n \n \tswitch (link.link_speed) {\n-\tcase ETH_LINK_SPEED_100:\n+\tcase ETH_SPEED_NUM_100M:\n \t\tincval = IXGBE_INCVAL_100;\n \t\tshift = IXGBE_INCVAL_SHIFT_100;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_1000:\n+\tcase ETH_SPEED_NUM_1G:\n \t\tincval = IXGBE_INCVAL_1GB;\n \t\tshift = IXGBE_INCVAL_SHIFT_1GB;\n \t\tbreak;\n-\tcase ETH_LINK_SPEED_10000:\n+\tcase ETH_SPEED_NUM_10G:\n \tdefault:\n \t\tincval = IXGBE_INCVAL_10GB;\n \t\tshift = IXGBE_INCVAL_SHIFT_10GB;\ndiff --git a/drivers/net/mpipe/mpipe_tilegx.c b/drivers/net/mpipe/mpipe_tilegx.c\nindex d93ab7e..1a77c7a 100644\n--- a/drivers/net/mpipe/mpipe_tilegx.c\n+++ b/drivers/net/mpipe/mpipe_tilegx.c\n@@ -395,11 +395,11 @@ mpipe_link_update(struct rte_eth_dev *dev, int wait_to_complete)\n \t\tspeed = state & GXIO_MPIPE_LINK_SPEED_MASK;\n \n \t\tif (speed == GXIO_MPIPE_LINK_1G) {\n-\t\t\tnew.link_speed = ETH_LINK_SPEED_1000;\n+\t\t\tnew.link_speed = ETH_SPEED_NUM_1G;\n \t\t\tnew.link_duplex = ETH_LINK_FULL_DUPLEX;\n \t\t\tnew.link_status = ETH_LINK_UP;\n \t\t} else if (speed == GXIO_MPIPE_LINK_10G) {\n-\t\t\tnew.link_speed = ETH_LINK_SPEED_10000;\n+\t\t\tnew.link_speed = ETH_SPEED_NUM_10G;\n \t\t\tnew.link_duplex = ETH_LINK_FULL_DUPLEX;\n \t\t\tnew.link_status = ETH_LINK_UP;\n \t\t}\ndiff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c\nindex 80dda85..18ea0f4 100644\n--- a/drivers/net/nfp/nfp_net.c\n+++ b/drivers/net/nfp/nfp_net.c\n@@ -821,7 +821,7 @@ nfp_net_link_update(struct rte_eth_dev *dev, __rte_unused int wait_to_complete)\n \n \tlink.link_duplex = ETH_LINK_FULL_DUPLEX;\n \t/* Other cards can limit the tx and rx rate per VF */\n-\tlink.link_speed = ETH_LINK_SPEED_40G;\n+\tlink.link_speed = ETH_SPEED_NUM_40G;\n \n \tif (old.link_status != link.link_status) {\n \t\tnfp_net_dev_atomic_write_link_status(dev, &link);\ndiff --git a/drivers/net/null/rte_eth_null.c b/drivers/net/null/rte_eth_null.c\nindex 6adea91..5640585 100644\n--- a/drivers/net/null/rte_eth_null.c\n+++ b/drivers/net/null/rte_eth_null.c\n@@ -89,7 +89,7 @@ struct pmd_internals {\n static struct ether_addr eth_addr = { .addr_bytes = {0} };\n static const char *drivername = \"Null PMD\";\n static struct rte_eth_link pmd_link = {\n-\t.link_speed = 10000,\n+\t.link_speed = ETH_SPEED_NUM_10G,\n \t.link_duplex = ETH_LINK_FULL_DUPLEX,\n \t.link_status = ETH_LINK_DOWN,\n };\ndiff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c\nindex b90c725..c657951 100644\n--- a/drivers/net/pcap/rte_eth_pcap.c\n+++ b/drivers/net/pcap/rte_eth_pcap.c\n@@ -123,7 +123,7 @@ static int open_single_iface(const char *iface, pcap_t **pcap);\n static struct ether_addr eth_addr = { .addr_bytes = { 0, 0, 0, 0x1, 0x2, 0x3 } };\n static const char *drivername = \"Pcap PMD\";\n static struct rte_eth_link pmd_link = {\n-\t\t.link_speed = 10000,\n+\t\t.link_speed = ETH_SPEED_NUM_10G,\n \t\t.link_duplex = ETH_LINK_FULL_DUPLEX,\n \t\t.link_status = ETH_LINK_DOWN,\n };\ndiff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c\nindex 4335c6a..58685e9 100644\n--- a/drivers/net/ring/rte_eth_ring.c\n+++ b/drivers/net/ring/rte_eth_ring.c\n@@ -77,7 +77,7 @@ struct pmd_internals {\n \n static const char *drivername = \"Rings PMD\";\n static struct rte_eth_link pmd_link = {\n-\t\t.link_speed = 10000,\n+\t\t.link_speed = ETH_SPEED_NUM_10G,\n \t\t.link_duplex = ETH_LINK_FULL_DUPLEX,\n \t\t.link_status = ETH_LINK_DOWN,\n };\ndiff --git a/drivers/net/szedata2/rte_eth_szedata2.c b/drivers/net/szedata2/rte_eth_szedata2.c\nindex 47aa7e3..dd1ae9e 100644\n--- a/drivers/net/szedata2/rte_eth_szedata2.c\n+++ b/drivers/net/szedata2/rte_eth_szedata2.c\n@@ -1149,10 +1149,10 @@ eth_link_update(struct rte_eth_dev *dev,\n \n \tswitch (cgmii_link_speed(ibuf)) {\n \tcase SZEDATA2_LINK_SPEED_10G:\n-\t\tlink.link_speed = ETH_LINK_SPEED_10G;\n+\t\tlink.link_speed = ETH_SPEED_NUM_10G;\n \t\tbreak;\n \tcase SZEDATA2_LINK_SPEED_40G:\n-\t\tlink.link_speed = ETH_LINK_SPEED_40G;\n+\t\tlink.link_speed = ETH_SPEED_NUM_40G;\n \t\tbreak;\n \tcase SZEDATA2_LINK_SPEED_100G:\n \t\t/*\n@@ -1161,10 +1161,10 @@ eth_link_update(struct rte_eth_dev *dev,\n \t\t * will be changed to support 100Gbps speed change\n \t\t * this value to 100G.\n \t\t */\n-\t\tlink.link_speed = ETH_LINK_SPEED_10G;\n+\t\tlink.link_speed = ETH_SPEED_NUM_10G;\n \t\tbreak;\n \tdefault:\n-\t\tlink.link_speed = ETH_LINK_SPEED_10G;\n+\t\tlink.link_speed = ETH_SPEED_NUM_10G;\n \t\tbreak;\n \t}\n \ndiff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c\nindex 3f26217..6afa14e 100644\n--- a/drivers/net/vmxnet3/vmxnet3_ethdev.c\n+++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c\n@@ -779,7 +779,7 @@ vmxnet3_dev_link_update(struct rte_eth_dev *dev, __attribute__((unused)) int wai\n \tif (ret & 0x1) {\n \t\tlink.link_status = ETH_LINK_UP;\n \t\tlink.link_duplex = ETH_LINK_FULL_DUPLEX;\n-\t\tlink.link_speed = ETH_LINK_SPEED_10000;\n+\t\tlink.link_speed = ETH_SPEED_NUM_10G;\n \t}\n \n \tvmxnet3_dev_atomic_write_link_status(dev, &link);\ndiff --git a/drivers/net/xenvirt/rte_eth_xenvirt.c b/drivers/net/xenvirt/rte_eth_xenvirt.c\nindex 9453a06..77d3ba1 100644\n--- a/drivers/net/xenvirt/rte_eth_xenvirt.c\n+++ b/drivers/net/xenvirt/rte_eth_xenvirt.c\n@@ -70,7 +70,7 @@ static int virtio_idx = 0;\n static const char *drivername = \"xen virtio PMD\";\n \n static struct rte_eth_link pmd_link = {\n-\t\t.link_speed = 10000,\n+\t\t.link_speed = ETH_SPEED_NUM_10G,\n \t\t.link_duplex = ETH_LINK_FULL_DUPLEX,\n \t\t.link_status = ETH_LINK_DOWN,\n };\ndiff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h\nindex 2d13f92..bc7d607 100644\n--- a/lib/librte_ether/rte_ethdev.h\n+++ b/lib/librte_ether/rte_ethdev.h\n@@ -242,23 +242,30 @@ struct rte_eth_stats {\n };\n \n /**\n+ * Ethernet numeric link speeds in Mbps\n+ */\n+#define ETH_LINK_SPEED_AUTONEG     0 /**< Auto-negotiate link speed. */\n+#define ETH_SPEED_NUM_10M         10 /**<  10 Mbps */\n+#define ETH_SPEED_NUM_100M       100 /**< 100 Mbps */\n+#define ETH_SPEED_NUM_1G        1000 /**<   1 Gbps */\n+#define ETH_SPEED_NUM_2_5G      2500 /**< 2.5 Gbps */\n+#define ETH_SPEED_NUM_5G        5000 /**<   5 Gbps */\n+#define ETH_SPEED_NUM_10G      10000 /**<  10 Gbps */\n+#define ETH_SPEED_NUM_20G      20000 /**<  20 Gbps */\n+#define ETH_SPEED_NUM_25G      25000 /**<  25 Gbps */\n+#define ETH_SPEED_NUM_40G      40000 /**<  40 Gbps */\n+#define ETH_SPEED_NUM_50G      50000 /**<  50 Gbps */\n+#define ETH_SPEED_NUM_56G      56000 /**<  56 Gbps */\n+\n+/**\n  * A structure used to retrieve link-level information of an Ethernet port.\n  */\n struct rte_eth_link {\n-\tuint16_t link_speed;      /**< ETH_LINK_SPEED_[10, 100, 1000, 10000] */\n+\tuint16_t link_speed;      /**< ETH_SPEED_NUM_ */\n \tuint16_t link_duplex;     /**< ETH_LINK_[HALF/FULL]_DUPLEX */\n \tuint8_t  link_status : 1; /**< ETH_LINK_[DOWN/UP] */\n }__attribute__((aligned(8)));     /**< aligned for atomic64 read/write */\n \n-#define ETH_LINK_SPEED_AUTONEG  0       /**< Auto-negotiate link speed. */\n-#define ETH_LINK_SPEED_10       10      /**< 10 megabits/second. */\n-#define ETH_LINK_SPEED_100      100     /**< 100 megabits/second. */\n-#define ETH_LINK_SPEED_1000     1000    /**< 1 gigabits/second. */\n-#define ETH_LINK_SPEED_10000    10000   /**< 10 gigabits/second. */\n-#define ETH_LINK_SPEED_10G      10000   /**< alias of 10 gigabits/second. */\n-#define ETH_LINK_SPEED_20G      20000   /**< 20 gigabits/second. */\n-#define ETH_LINK_SPEED_40G      40000   /**< 40 gigabits/second. */\n-\n /* Utility constants */\n #define ETH_LINK_AUTONEG_DUPLEX 0       /**< Auto-negotiate duplex. */\n #define ETH_LINK_HALF_DUPLEX    1       /**< Half-duplex connection. */\n@@ -779,7 +786,7 @@ struct rte_intr_conf {\n  */\n struct rte_eth_conf {\n \tuint16_t link_speed;\n-\t/**< ETH_LINK_SPEED_10[0|00|000], or 0 for autonegotation */\n+\t/**< ETH_SPEED_NUM_ or 0 for autonegotiation */\n \tuint16_t link_duplex;\n \t/**< ETH_LINK_[HALF_DUPLEX|FULL_DUPLEX], or 0 for autonegotation */\n \tstruct rte_eth_rxmode rxmode; /**< Port RX configuration. */\n",
    "prefixes": [
        "dpdk-dev",
        "v12",
        "4/8"
    ]
}