get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 11510,
    "url": "http://patches.dpdk.org/api/patches/11510/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1457992546-32230-6-git-send-email-thomas.monjalon@6wind.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": "<1457992546-32230-6-git-send-email-thomas.monjalon@6wind.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1457992546-32230-6-git-send-email-thomas.monjalon@6wind.com",
    "date": "2016-03-14T21:55:43",
    "name": "[dpdk-dev,v10,5/8] ethdev: add speed capabilities",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "949686b8e05d1f14cace56c118abe04eda45e2e1",
    "submitter": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/people/1/?format=api",
        "name": "Thomas Monjalon",
        "email": "thomas.monjalon@6wind.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1457992546-32230-6-git-send-email-thomas.monjalon@6wind.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/11510/comments/",
    "check": "pending",
    "checks": "http://patches.dpdk.org/api/patches/11510/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 F37935590;\n\tMon, 14 Mar 2016 22:57:35 +0100 (CET)",
            "from mail-wm0-f53.google.com (mail-wm0-f53.google.com\n\t[74.125.82.53]) by dpdk.org (Postfix) with ESMTP id 0F9A25590\n\tfor <dev@dpdk.org>; Mon, 14 Mar 2016 22:57:28 +0100 (CET)",
            "by mail-wm0-f53.google.com with SMTP id p65so1796778wmp.0\n\tfor <dev@dpdk.org>; Mon, 14 Mar 2016 14:57:28 -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\tw133sm17918804wmd.3.2016.03.14.14.57.25\n\t(version=TLSv1/SSLv3 cipher=OTHER);\n\tMon, 14 Mar 2016 14:57:27 -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=JlLHOnKSIFgEfFNgQ1bVzZrfjEY8D8TpRJtpdIshSmY=;\n\tb=d6o3pZ0U+gsfhcgbmJwuDvTmF0Gnh7BioQcrq0Sq860TjdA7ipBXfsgqZ9OgJfmSRF\n\tIjE/++qM6+lnI49M9TVG+J7izXg+oLZhGtMyX7O+IBp63Jpjl1RbTBQ44czvsCq7BeVu\n\taoKEtu24aMI07hqCFTDrwvLNTRVHtapU/H/+IfQx4TnX9DK0/UfxfQ5BBPHKJZLfugCx\n\tkmJgD9KYRAQSoy6eY2NMV6F1P/XGLSK35oNwavpof2gvT1Jk7yNhFH/WOe1vH9kyvwDI\n\tRvg+mHIP+kO/bIRSx2mMZ7HKUZ1l8VoFRwGZPyHlRTi4MgNQPyZIq7kEti+iMgeN+dPf\n\tmKcA==",
        "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=JlLHOnKSIFgEfFNgQ1bVzZrfjEY8D8TpRJtpdIshSmY=;\n\tb=lgLuKHemkWieWKkCWfdVH//+FJf/t2VazR0kBzpzF6Zfm9Jm9+PUra7nKbNbfZPtYw\n\tVv/BsGvoXNF5bSSOnDVxRies7yvaCkwNmQGcamR7iquipZPRYUIjv+V+DokTX7/+eiZs\n\tR8Yjv5gWBNUtfemofCQUAhqCBZY9tbR9A7vLL29OEryJo9dI/+3DbVQpe5I5Y/zIRjro\n\trO1IWczhkhXL+j25iLLYNUfg5/aXgJCnI6R9evLkwF3KL53+eVAt1/jyzPd41OG+F3fb\n\tEU53tTE4MIWbGBM6NyaPqrTQBnSjEZFwsGYGY9U+EZfDHZEyG8uMuqNj7KTB+uamMcXI\n\tGIEg==",
        "X-Gm-Message-State": "AD7BkJK04lCypg54zVDGYa9MaMNpb7CeYIyiNedxovhwM/DHM0Y/OCDh1oNPSHHYeBugXmCp",
        "X-Received": "by 10.28.179.84 with SMTP id c81mr19866282wmf.13.1457992647923; \n\tMon, 14 Mar 2016 14:57:27 -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": "Mon, 14 Mar 2016 22:55:43 +0100",
        "Message-Id": "<1457992546-32230-6-git-send-email-thomas.monjalon@6wind.com>",
        "X-Mailer": "git-send-email 2.7.0",
        "In-Reply-To": "<1457992546-32230-1-git-send-email-thomas.monjalon@6wind.com>",
        "References": "<1456793151-1475-1-git-send-email-marcdevel@gmail.com>\n\t<1457992546-32230-1-git-send-email-thomas.monjalon@6wind.com>",
        "Subject": "[dpdk-dev] [PATCH v10 5/8] ethdev: add speed capabilities",
        "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 capabilities of a device can be retrieved with\nrte_eth_dev_info_get().\n\nThe new field speed_capa is initialized in the drivers without\ntaking care of device characteristics in this patch.\nWhen the capabilities of a driver are accurate, the table in\noverview.rst must be filled.\n\nSigned-off-by: Marc Sune <marcdevel@gmail.com>\n---\n doc/guides/nics/overview.rst           |  1 +\n doc/guides/rel_notes/release_16_04.rst |  8 ++++++++\n drivers/net/bnx2x/bnx2x_ethdev.c       |  1 +\n drivers/net/cxgbe/cxgbe_ethdev.c       |  1 +\n drivers/net/e1000/em_ethdev.c          |  4 ++++\n drivers/net/e1000/igb_ethdev.c         |  4 ++++\n drivers/net/fm10k/fm10k_ethdev.c       |  4 ++++\n drivers/net/i40e/i40e_ethdev.c         |  8 ++++++++\n drivers/net/ixgbe/ixgbe_ethdev.c       |  8 ++++++++\n drivers/net/mlx4/mlx4.c                |  2 ++\n drivers/net/mlx5/mlx5_ethdev.c         |  3 +++\n drivers/net/nfp/nfp_net.c              |  2 ++\n lib/librte_ether/rte_ethdev.h          | 21 +++++++++++++++++++++\n 13 files changed, 67 insertions(+)",
    "diff": "diff --git a/doc/guides/nics/overview.rst b/doc/guides/nics/overview.rst\nindex 2d4f014..893da5f 100644\n--- a/doc/guides/nics/overview.rst\n+++ b/doc/guides/nics/overview.rst\n@@ -88,6 +88,7 @@ Most of these differences are summarized below.\n    ==================== = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =\n    link status                  X     X X                                   X\n    link status event                  X X\n+   speed capabilities\n    Rx interrupt                       X X X X\n    queue start/stop             X     X X X X                               X\n    MTU update                   X\ndiff --git a/doc/guides/rel_notes/release_16_04.rst b/doc/guides/rel_notes/release_16_04.rst\nindex b729b67..fd24a6f 100644\n--- a/doc/guides/rel_notes/release_16_04.rst\n+++ b/doc/guides/rel_notes/release_16_04.rst\n@@ -47,6 +47,11 @@ This section should contain new features added in this release. Sample format:\n   A new function ``rte_pktmbuf_alloc_bulk()`` has been added to allow the user\n   to allocate a bulk of mbufs.\n \n+* **Added device link speed capabilities.**\n+\n+  The structure ``rte_eth_dev_info`` has now a ``speed_capa`` bitmap, which\n+  allows the application to know the supported speeds of each device.\n+\n * **Virtio 1.0.**\n \n   Enabled virtio 1.0 support for virtio pmd driver.\n@@ -208,6 +213,9 @@ This section should contain API changes. Sample format:\n * Add a short 1-2 sentence description of the API change. Use fixed width\n   quotes for ``rte_function_names`` or ``rte_struct_names``. Use the past tense.\n \n+* The ethdev structure ``rte_eth_dev_info`` was changed to support device\n+  speed capabilities.\n+\n * The functions ``rte_eth_dev_udp_tunnel_add`` and ``rte_eth_dev_udp_tunnel_delete``\n   have been renamed into ``rte_eth_dev_udp_tunnel_port_add`` and\n   ``rte_eth_dev_udp_tunnel_port_delete``.\ndiff --git a/drivers/net/bnx2x/bnx2x_ethdev.c b/drivers/net/bnx2x/bnx2x_ethdev.c\nindex f109900..b86784e 100644\n--- a/drivers/net/bnx2x/bnx2x_ethdev.c\n+++ b/drivers/net/bnx2x/bnx2x_ethdev.c\n@@ -347,6 +347,7 @@ bnx2x_dev_infos_get(struct rte_eth_dev *dev, __rte_unused struct rte_eth_dev_inf\n \tdev_info->min_rx_bufsize = BNX2X_MIN_RX_BUF_SIZE;\n \tdev_info->max_rx_pktlen  = BNX2X_MAX_RX_PKT_LEN;\n \tdev_info->max_mac_addrs  = BNX2X_MAX_MAC_ADDRS;\n+\tdev_info->speed_capa = ETH_LINK_SPEED_10G | ETH_LINK_SPEED_20G;\n }\n \n static void\ndiff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c\nindex 97ef152..05b954d 100644\n--- a/drivers/net/cxgbe/cxgbe_ethdev.c\n+++ b/drivers/net/cxgbe/cxgbe_ethdev.c\n@@ -171,6 +171,7 @@ static void cxgbe_dev_info_get(struct rte_eth_dev *eth_dev,\n \n \tdevice_info->rx_desc_lim = cxgbe_desc_lim;\n \tdevice_info->tx_desc_lim = cxgbe_desc_lim;\n+\tdevice_info->speed_capa = ETH_LINK_SPEED_10G | ETH_LINK_SPEED_40G;\n }\n \n static void cxgbe_dev_promiscuous_enable(struct rte_eth_dev *eth_dev)\ndiff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c\nindex 84845e7..dddffff 100644\n--- a/drivers/net/e1000/em_ethdev.c\n+++ b/drivers/net/e1000/em_ethdev.c\n@@ -1023,6 +1023,10 @@ eth_em_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)\n \t\t.nb_min = E1000_MIN_RING_DESC,\n \t\t.nb_align = EM_TXD_ALIGN,\n \t};\n+\n+\tdev_info->speed_capa = ETH_LINK_SPEED_10M_HD | ETH_LINK_SPEED_10M |\n+\t\t\tETH_LINK_SPEED_100M_HD | ETH_LINK_SPEED_100M |\n+\t\t\tETH_LINK_SPEED_1G;\n }\n \n /* return 0 means link status changed, -1 means not changed */\ndiff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c\nindex b4c8982..743fe1b 100644\n--- a/drivers/net/e1000/igb_ethdev.c\n+++ b/drivers/net/e1000/igb_ethdev.c\n@@ -1910,6 +1910,10 @@ eth_igb_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)\n \n \tdev_info->rx_desc_lim = rx_desc_lim;\n \tdev_info->tx_desc_lim = tx_desc_lim;\n+\n+\tdev_info->speed_capa = ETH_LINK_SPEED_10M_HD | ETH_LINK_SPEED_10M |\n+\t\t\tETH_LINK_SPEED_100M_HD | ETH_LINK_SPEED_100M |\n+\t\t\tETH_LINK_SPEED_1G;\n }\n \n static void\ndiff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c\nindex 378faf2..4d8c6bf 100644\n--- a/drivers/net/fm10k/fm10k_ethdev.c\n+++ b/drivers/net/fm10k/fm10k_ethdev.c\n@@ -1333,6 +1333,10 @@ fm10k_dev_infos_get(struct rte_eth_dev *dev,\n \t\t.nb_min = FM10K_MIN_TX_DESC,\n \t\t.nb_align = FM10K_MULT_TX_DESC,\n \t};\n+\n+\tdev_info->speed_capa = ETH_LINK_SPEED_1G | ETH_LINK_SPEED_2_5G |\n+\t\t\tETH_LINK_SPEED_10G | ETH_LINK_SPEED_25G |\n+\t\t\tETH_LINK_SPEED_40G;\n }\n \n static int\ndiff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c\nindex 17b58a8..3b2a4ae 100644\n--- a/drivers/net/i40e/i40e_ethdev.c\n+++ b/drivers/net/i40e/i40e_ethdev.c\n@@ -2265,6 +2265,7 @@ static void\n i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)\n {\n \tstruct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);\n+\tstruct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n \tstruct i40e_vsi *vsi = pf->main_vsi;\n \n \tdev_info->max_rx_queues = vsi->nb_qps;\n@@ -2336,6 +2337,13 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)\n \t\tdev_info->max_rx_queues += dev_info->vmdq_queue_num;\n \t\tdev_info->max_tx_queues += dev_info->vmdq_queue_num;\n \t}\n+\n+\tif (i40e_is_40G_device(hw->device_id))\n+\t\t/* For XL710 */\n+\t\tdev_info->speed_capa = ETH_LINK_SPEED_1G | ETH_LINK_SPEED_10G;\n+\telse\n+\t\t/* For X710 */\n+\t\tdev_info->speed_capa = ETH_LINK_SPEED_10G | ETH_LINK_SPEED_40G;\n }\n \n static int\ndiff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c\nindex 1fa17b5..1c108a0 100644\n--- a/drivers/net/ixgbe/ixgbe_ethdev.c\n+++ b/drivers/net/ixgbe/ixgbe_ethdev.c\n@@ -2891,6 +2891,14 @@ ixgbe_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)\n \tdev_info->hash_key_size = IXGBE_HKEY_MAX_INDEX * sizeof(uint32_t);\n \tdev_info->reta_size = ixgbe_reta_size_get(hw->mac.type);\n \tdev_info->flow_type_rss_offloads = IXGBE_RSS_OFFLOAD_ALL;\n+\n+\tdev_info->speed_capa = ETH_LINK_SPEED_1G | ETH_LINK_SPEED_10G;\n+\tif (hw->mac.type == ixgbe_mac_X540 ||\n+\t    hw->mac.type == ixgbe_mac_X540_vf ||\n+\t    hw->mac.type == ixgbe_mac_X550 ||\n+\t    hw->mac.type == ixgbe_mac_X550_vf) {\n+\t\tdev_info->speed_capa |= ETH_LINK_SPEED_100M;\n+\t}\n }\n \n static void\ndiff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c\nindex f41817b..7397cbf 100644\n--- a/drivers/net/mlx4/mlx4.c\n+++ b/drivers/net/mlx4/mlx4.c\n@@ -4264,6 +4264,8 @@ mlx4_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)\n \t\t 0);\n \tif (priv_get_ifname(priv, &ifname) == 0)\n \t\tinfo->if_index = if_nametoindex(ifname);\n+\tinfo->speed_capa = ETH_LINK_SPEED_10G | ETH_LINK_SPEED_40G |\n+\t\t\tETH_LINK_SPEED_56G;\n \tpriv_unlock(priv);\n }\n \ndiff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c\nindex 1159fa3..7494f69 100644\n--- a/drivers/net/mlx5/mlx5_ethdev.c\n+++ b/drivers/net/mlx5/mlx5_ethdev.c\n@@ -523,6 +523,9 @@ mlx5_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)\n \t * size if it is not fixed.\n \t * The API should be updated to solve this problem. */\n \tinfo->reta_size = priv->ind_table_max_size;\n+\tinfo->speed_capa = ETH_LINK_SPEED_1G | ETH_LINK_SPEED_10G |\n+\t\t\tETH_LINK_SPEED_25G | ETH_LINK_SPEED_40G |\n+\t\t\tETH_LINK_SPEED_50G;\n \tpriv_unlock(priv);\n }\n \ndiff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c\nindex 059b554..be1a364 100644\n--- a/drivers/net/nfp/nfp_net.c\n+++ b/drivers/net/nfp/nfp_net.c\n@@ -1071,6 +1071,8 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)\n \n \tdev_info->reta_size = NFP_NET_CFG_RSS_ITBL_SZ;\n \tdev_info->hash_key_size = NFP_NET_CFG_RSS_KEY_SZ;\n+\n+\tdev_info->speed_capa = ETH_LINK_SPEED_50G;\n }\n \n static uint32_t\ndiff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h\nindex b68e017..017e24b 100644\n--- a/lib/librte_ether/rte_ethdev.h\n+++ b/lib/librte_ether/rte_ethdev.h\n@@ -242,6 +242,23 @@ struct rte_eth_stats {\n };\n \n /**\n+ * Device supported speeds bitmap flags\n+ */\n+#define ETH_LINK_SPEED_10M_HD   (1 <<  1)  /**<  10 Mbps half-duplex */\n+#define ETH_LINK_SPEED_10M      (1 <<  2)  /**<  10 Mbps full-duplex */\n+#define ETH_LINK_SPEED_100M_HD  (1 <<  3)  /**< 100 Mbps half-duplex */\n+#define ETH_LINK_SPEED_100M     (1 <<  4)  /**< 100 Mbps full-duplex */\n+#define ETH_LINK_SPEED_1G       (1 <<  5)  /**<   1 Gbps */\n+#define ETH_LINK_SPEED_2_5G     (1 <<  6)  /**< 2.5 Gbps */\n+#define ETH_LINK_SPEED_5G       (1 <<  7)  /**<   5 Gbps */\n+#define ETH_LINK_SPEED_10G      (1 <<  8)  /**<  10 Gbps */\n+#define ETH_LINK_SPEED_20G      (1 <<  9)  /**<  20 Gbps */\n+#define ETH_LINK_SPEED_25G      (1 << 10)  /**<  25 Gbps */\n+#define ETH_LINK_SPEED_40G      (1 << 11)  /**<  40 Gbps */\n+#define ETH_LINK_SPEED_50G      (1 << 12)  /**<  50 Gbps */\n+#define ETH_LINK_SPEED_56G      (1 << 13)  /**<  56 Gbps */\n+\n+/**\n  * Ethernet numeric link speeds in Mbps\n  */\n #define ETH_LINK_SPEED_AUTONEG     0 /**< Auto-negotiate link speed. */\n@@ -850,6 +867,9 @@ struct rte_eth_conf {\n #define DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM 0x00000080 /**< Used for tunneling packet. */\n #define DEV_TX_OFFLOAD_QINQ_INSERT 0x00000100\n \n+/**\n+ * Ethernet device information\n+ */\n struct rte_eth_dev_info {\n \tstruct rte_pci_device *pci_dev; /**< Device PCI information. */\n \tconst char *driver_name; /**< Device Driver name. */\n@@ -878,6 +898,7 @@ struct rte_eth_dev_info {\n \tuint16_t vmdq_pool_base;  /**< First ID of VMDQ pools. */\n \tstruct rte_eth_desc_lim rx_desc_lim;  /**< RX descriptors limits */\n \tstruct rte_eth_desc_lim tx_desc_lim;  /**< TX descriptors limits */\n+\tuint32_t speed_capa;  /**< Supported speeds bitmap (ETH_LINK_SPEED_). */\n };\n \n /**\n",
    "prefixes": [
        "dpdk-dev",
        "v10",
        "5/8"
    ]
}