get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 96408,
    "url": "http://patchwork.dpdk.org/api/patches/96408/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20210729134711.35870-5-heinrich.kuhn@netronome.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": "<20210729134711.35870-5-heinrich.kuhn@netronome.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210729134711.35870-5-heinrich.kuhn@netronome.com",
    "date": "2021-07-29T13:47:08",
    "name": "[v3,4/7] net/nfp: prototype common functions in header file",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "80863035dcd0ccf0cf6bfd161b94aa3c2aac3ad5",
    "submitter": {
        "id": 1523,
        "url": "http://patchwork.dpdk.org/api/people/1523/?format=api",
        "name": "Heinrich Kuhn",
        "email": "heinrich.kuhn@netronome.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patchwork.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20210729134711.35870-5-heinrich.kuhn@netronome.com/mbox/",
    "series": [
        {
            "id": 18064,
            "url": "http://patchwork.dpdk.org/api/series/18064/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=18064",
            "date": "2021-07-29T13:47:04",
            "name": "Refactor the NFP PMD",
            "version": 3,
            "mbox": "http://patchwork.dpdk.org/series/18064/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/96408/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/96408/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 mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 370F7A034F;\n\tThu, 29 Jul 2021 15:47:55 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id BE5AE4111D;\n\tThu, 29 Jul 2021 15:47:40 +0200 (CEST)",
            "from mail-wr1-f52.google.com (mail-wr1-f52.google.com\n [209.85.221.52]) by mails.dpdk.org (Postfix) with ESMTP id 7EA9A4111C\n for <dev@dpdk.org>; Thu, 29 Jul 2021 15:47:38 +0200 (CEST)",
            "by mail-wr1-f52.google.com with SMTP id z4so7025880wrv.11\n for <dev@dpdk.org>; Thu, 29 Jul 2021 06:47:38 -0700 (PDT)",
            "from localhost.localdomain (dsl-197-245-41-228.voxdsl.co.za.\n [197.245.41.228])\n by smtp.gmail.com with ESMTPSA id v2sm3498246wro.48.2021.07.29.06.47.36\n (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);\n Thu, 29 Jul 2021 06:47:37 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=netronome-com.20150623.gappssmtp.com; s=20150623;\n h=from:to:cc:subject:date:message-id:in-reply-to:references\n :mime-version:content-transfer-encoding;\n bh=m/mvSOjr5ciNhZc2JgxfCCC82PVK6Fz79Y//9z2zASU=;\n b=pr2+frdNMFwy/Cqz0V2FlWANqS5DOotREljiAtgWzDGM4YcDvXWlw8iBmTtfzWKiI1\n cv4MckPEL9dkpNhSjb9QYHNZU7pPZv8ces7BRdgIRKedgQ2Jbv2W8NhnfDqpCeOTEq0s\n 6hjKnF+gZvkS8fMF75KMhjxqo8HwRVZdOeS+uCinnJJfRfa+mBv0NyQaw6CWQixSSrdL\n 4LmG8d6YD7Okmzb9c2mhOyyHroYsgbswpPAJYIEr1Fm7iVPgjS5DzKowuo5qNGmT7UKb\n X717Pg2GRVHyk/Zsgo+uHNzWnex7mbnookzPLNB4vTmDidhhF8WVrcQxmxXoyxQ6coRe\n mRhw==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20161025;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n :references:mime-version:content-transfer-encoding;\n bh=m/mvSOjr5ciNhZc2JgxfCCC82PVK6Fz79Y//9z2zASU=;\n b=rjyKjW5Bqyd2znnlzkZ9rNwiuDcuo6dYgDyI+CpHATXSxGXfH4lGf4+kueMguV8Jx1\n 1MUCZkSS3m5OrQJv9zzwUQJerKWSnxmcM3RwKAU7JuOAlTg4yaWVSEPjDIn6iEPa7H/u\n /kOnW4ha19Mly3Mdy5D6bZd3Rda0kyim2spYXFIIBeNHxY5wbvQZHFudLkUeMi5F9SPX\n Dk3yGBFgJY/cwnjfE/2rHtGXGrT5HD+XcJypS5PgEsMRwgmCvkXda+k23AZIHCtwzDTV\n 3rMwhszm3HH0KaFlkxueezlkaAnYIBK3IdnPEVA+C49GTcqfgtGXaE6XU4SisWvdHFH7\n bqHA==",
        "X-Gm-Message-State": "AOAM531kmdT7IdM3q8gtk/n5+XUeL3XvS+rHCZljETWjHLWMWu/tA8dA\n BBe8b85ajr8M7uowGqDq4KvPYiKb2IZQ3mq150Hf3Bd9j7u14W9lT5VvWNY9noE++NIPT2yhxEc\n e8VftsiZTyHZQFhxMsXWdVX3mR7fBcWtXcHiFzn4nhsO84l7pBZDgWjvJYwxbXvqJ",
        "X-Google-Smtp-Source": "\n ABdhPJy6sHTrfVoAieg7EKrqpzh9yXslaH2G+S8EatgXwZg1KPbQH+sJR3CEMj8phJlEFdM82U/vsQ==",
        "X-Received": "by 2002:adf:fc0c:: with SMTP id i12mr4954729wrr.373.1627566458087;\n Thu, 29 Jul 2021 06:47:38 -0700 (PDT)",
        "From": "Heinrich Kuhn <heinrich.kuhn@netronome.com>",
        "To": "dev@dpdk.org",
        "Cc": "Heinrich Kuhn <heinrich.kuhn@netronome.com>,\n Simon Horman <simon.horman@corigine.com>",
        "Date": "Thu, 29 Jul 2021 15:47:08 +0200",
        "Message-Id": "<20210729134711.35870-5-heinrich.kuhn@netronome.com>",
        "X-Mailer": "git-send-email 2.30.1 (Apple Git-130)",
        "In-Reply-To": "<20210729134711.35870-1-heinrich.kuhn@netronome.com>",
        "References": "<20210716083545.34444-1-heinrich.kuhn@netronome.com>\n <20210729134711.35870-1-heinrich.kuhn@netronome.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v3 4/7] net/nfp: prototype common functions in\n header file",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "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": "The majority of \"ethdev\" type functions are used for both PF devices and\nVF devices. Prototype these functions in the nfp_net_pmd header file in\npreparation of splitting PF and VF specific functions.\n\nSigned-off-by: Heinrich Kuhn <heinrich.kuhn@netronome.com>\nSigned-off-by: Simon Horman <simon.horman@corigine.com>\n---\n drivers/net/nfp/nfp_net.c     | 87 +++++++++++++----------------------\n drivers/net/nfp/nfp_net_pmd.h | 49 ++++++++++++++++++++\n 2 files changed, 81 insertions(+), 55 deletions(-)",
    "diff": "diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c\nindex af94219729..d42d267c6a 100644\n--- a/drivers/net/nfp/nfp_net.c\n+++ b/drivers/net/nfp/nfp_net.c\n@@ -55,35 +55,12 @@\n \n /* Prototypes */\n static int nfp_net_close(struct rte_eth_dev *dev);\n-static int nfp_net_configure(struct rte_eth_dev *dev);\n-static void nfp_net_dev_interrupt_handler(void *param);\n-static void nfp_net_dev_interrupt_delayed_handler(void *param);\n-static int nfp_net_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu);\n-static int nfp_net_infos_get(struct rte_eth_dev *dev,\n-\t\t\t     struct rte_eth_dev_info *dev_info);\n static int nfp_net_init(struct rte_eth_dev *eth_dev);\n static int nfp_pf_init(struct rte_pci_device *pci_dev);\n static int nfp_pf_secondary_init(struct rte_pci_device *pci_dev);\n static int nfp_pci_uninit(struct rte_eth_dev *eth_dev);\n static int nfp_init_phyports(struct nfp_pf_dev *pf_dev);\n-static int nfp_net_link_update(struct rte_eth_dev *dev, int wait_to_complete);\n-static int nfp_net_promisc_enable(struct rte_eth_dev *dev);\n-static int nfp_net_promisc_disable(struct rte_eth_dev *dev);\n-static int nfp_net_start(struct rte_eth_dev *dev);\n-static int nfp_net_stats_get(struct rte_eth_dev *dev,\n-\t\t\t      struct rte_eth_stats *stats);\n-static int nfp_net_stats_reset(struct rte_eth_dev *dev);\n static int nfp_net_stop(struct rte_eth_dev *dev);\n-static int nfp_net_rss_config_default(struct rte_eth_dev *dev);\n-static int nfp_net_rss_hash_update(struct rte_eth_dev *dev,\n-\t\t\t\t   struct rte_eth_rss_conf *rss_conf);\n-static int nfp_net_rss_reta_write(struct rte_eth_dev *dev,\n-\t\t    struct rte_eth_rss_reta_entry64 *reta_conf,\n-\t\t    uint16_t reta_size);\n-static int nfp_net_rss_hash_write(struct rte_eth_dev *dev,\n-\t\t\tstruct rte_eth_rss_conf *rss_conf);\n-static int nfp_set_mac_addr(struct rte_eth_dev *dev,\n-\t\t\t     struct rte_ether_addr *mac_addr);\n static int nfp_fw_setup(struct rte_pci_device *dev,\n \t\t\tstruct nfp_cpp *cpp,\n \t\t\tstruct nfp_eth_table *nfp_eth_table,\n@@ -138,7 +115,7 @@ __nfp_net_reconfig(struct nfp_net_hw *hw, uint32_t update)\n  * Write the update word to the BAR and ping the reconfig queue. Then poll\n  * until the firmware has acknowledged the update by zeroing the update word.\n  */\n-static int\n+int\n nfp_net_reconfig(struct nfp_net_hw *hw, uint32_t ctrl, uint32_t update)\n {\n \tuint32_t err;\n@@ -174,7 +151,7 @@ nfp_net_reconfig(struct nfp_net_hw *hw, uint32_t ctrl, uint32_t update)\n  * before any other function in the Ethernet API. This function can\n  * also be re-invoked when a device is in the stopped state.\n  */\n-static int\n+int\n nfp_net_configure(struct rte_eth_dev *dev)\n {\n \tstruct rte_eth_conf *dev_conf;\n@@ -217,7 +194,7 @@ nfp_net_configure(struct rte_eth_dev *dev)\n \treturn 0;\n }\n \n-static void\n+void\n nfp_net_enable_queues(struct rte_eth_dev *dev)\n {\n \tstruct nfp_net_hw *hw;\n@@ -241,7 +218,7 @@ nfp_net_enable_queues(struct rte_eth_dev *dev)\n \tnn_cfg_writeq(hw, NFP_NET_CFG_RXRS_ENABLE, enabled_queues);\n }\n \n-static void\n+void\n nfp_net_disable_queues(struct rte_eth_dev *dev)\n {\n \tstruct nfp_net_hw *hw;\n@@ -266,14 +243,14 @@ nfp_net_disable_queues(struct rte_eth_dev *dev)\n \thw->ctrl = new_ctrl;\n }\n \n-static void\n+void\n nfp_net_params_setup(struct nfp_net_hw *hw)\n {\n \tnn_cfg_writel(hw, NFP_NET_CFG_MTU, hw->mtu);\n \tnn_cfg_writel(hw, NFP_NET_CFG_FLBUFSZ, hw->flbufsz);\n }\n \n-static void\n+void\n nfp_net_cfg_queue_setup(struct nfp_net_hw *hw)\n {\n \thw->qcp_cfg = hw->tx_bar + NFP_QCP_QUEUE_ADDR_SZ;\n@@ -281,7 +258,7 @@ nfp_net_cfg_queue_setup(struct nfp_net_hw *hw)\n \n #define ETH_ADDR_LEN\t6\n \n-static void\n+void\n nfp_eth_copy_mac(uint8_t *dst, const uint8_t *src)\n {\n \tint i;\n@@ -320,7 +297,7 @@ nfp_net_vf_read_mac(struct nfp_net_hw *hw)\n \tmemcpy(&hw->mac_addr[4], &tmp, 2);\n }\n \n-static void\n+void\n nfp_net_write_mac(struct nfp_net_hw *hw, uint8_t *mac)\n {\n \tuint32_t mac0 = *(uint32_t *)mac;\n@@ -368,7 +345,7 @@ nfp_set_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr)\n \treturn 0;\n }\n \n-static int\n+int\n nfp_configure_rx_interrupt(struct rte_eth_dev *dev,\n \t\t\t   struct rte_intr_handle *intr_handle)\n {\n@@ -412,7 +389,7 @@ nfp_configure_rx_interrupt(struct rte_eth_dev *dev,\n \treturn 0;\n }\n \n-static uint32_t\n+uint32_t\n nfp_check_offloads(struct rte_eth_dev *dev)\n {\n \tstruct nfp_net_hw *hw;\n@@ -748,7 +725,7 @@ nfp_net_close(struct rte_eth_dev *dev)\n \treturn 0;\n }\n \n-static int\n+int\n nfp_net_promisc_enable(struct rte_eth_dev *dev)\n {\n \tuint32_t new_ctrl, update = 0;\n@@ -785,7 +762,7 @@ nfp_net_promisc_enable(struct rte_eth_dev *dev)\n \treturn 0;\n }\n \n-static int\n+int\n nfp_net_promisc_disable(struct rte_eth_dev *dev)\n {\n \tuint32_t new_ctrl, update = 0;\n@@ -821,7 +798,7 @@ nfp_net_promisc_disable(struct rte_eth_dev *dev)\n  * Wait to complete is needed as it can take up to 9 seconds to get the Link\n  * status.\n  */\n-static int\n+int\n nfp_net_link_update(struct rte_eth_dev *dev, __rte_unused int wait_to_complete)\n {\n \tstruct nfp_net_hw *hw;\n@@ -871,7 +848,7 @@ nfp_net_link_update(struct rte_eth_dev *dev, __rte_unused int wait_to_complete)\n \treturn ret;\n }\n \n-static int\n+int\n nfp_net_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)\n {\n \tint i;\n@@ -966,7 +943,7 @@ nfp_net_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)\n \treturn -EINVAL;\n }\n \n-static int\n+int\n nfp_net_stats_reset(struct rte_eth_dev *dev)\n {\n \tint i;\n@@ -1031,7 +1008,7 @@ nfp_net_stats_reset(struct rte_eth_dev *dev)\n \treturn 0;\n }\n \n-static int\n+int\n nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)\n {\n \tstruct nfp_net_hw *hw;\n@@ -1125,7 +1102,7 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)\n \treturn 0;\n }\n \n-static const uint32_t *\n+const uint32_t *\n nfp_net_supported_ptypes_get(struct rte_eth_dev *dev)\n {\n \tstatic const uint32_t ptypes[] = {\n@@ -1142,7 +1119,7 @@ nfp_net_supported_ptypes_get(struct rte_eth_dev *dev)\n \treturn NULL;\n }\n \n-static int\n+int\n nfp_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)\n {\n \tstruct rte_pci_device *pci_dev;\n@@ -1162,7 +1139,7 @@ nfp_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)\n \treturn 0;\n }\n \n-static int\n+int\n nfp_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)\n {\n \tstruct rte_pci_device *pci_dev;\n@@ -1181,7 +1158,7 @@ nfp_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)\n \treturn 0;\n }\n \n-static void\n+void\n nfp_net_dev_link_status_print(struct rte_eth_dev *dev)\n {\n \tstruct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);\n@@ -1210,7 +1187,7 @@ nfp_net_dev_link_status_print(struct rte_eth_dev *dev)\n  * If MSI-X auto-masking is enabled clear the mask bit, otherwise\n  * clear the ICR for the entry.\n  */\n-static void\n+void\n nfp_net_irq_unmask(struct rte_eth_dev *dev)\n {\n \tstruct nfp_net_hw *hw;\n@@ -1231,7 +1208,7 @@ nfp_net_irq_unmask(struct rte_eth_dev *dev)\n \t}\n }\n \n-static void\n+void\n nfp_net_dev_interrupt_handler(void *param)\n {\n \tint64_t timeout;\n@@ -1274,7 +1251,7 @@ nfp_net_dev_interrupt_handler(void *param)\n  *\n  * @return  void\n  */\n-static void\n+void\n nfp_net_dev_interrupt_delayed_handler(void *param)\n {\n \tstruct rte_eth_dev *dev = (struct rte_eth_dev *)param;\n@@ -1288,7 +1265,7 @@ nfp_net_dev_interrupt_delayed_handler(void *param)\n \tnfp_net_irq_unmask(dev);\n }\n \n-static int\n+int\n nfp_net_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)\n {\n \tstruct nfp_net_hw *hw;\n@@ -1323,7 +1300,7 @@ nfp_net_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu)\n \treturn 0;\n }\n \n-static int\n+int\n nfp_net_vlan_offload_set(struct rte_eth_dev *dev, int mask)\n {\n \tuint32_t new_ctrl, update;\n@@ -1355,7 +1332,7 @@ nfp_net_vlan_offload_set(struct rte_eth_dev *dev, int mask)\n \treturn ret;\n }\n \n-static int\n+int\n nfp_net_rss_reta_write(struct rte_eth_dev *dev,\n \t\t    struct rte_eth_rss_reta_entry64 *reta_conf,\n \t\t    uint16_t reta_size)\n@@ -1406,7 +1383,7 @@ nfp_net_rss_reta_write(struct rte_eth_dev *dev,\n }\n \n /* Update Redirection Table(RETA) of Receive Side Scaling of Ethernet device */\n-static int\n+int\n nfp_net_reta_update(struct rte_eth_dev *dev,\n \t\t    struct rte_eth_rss_reta_entry64 *reta_conf,\n \t\t    uint16_t reta_size)\n@@ -1432,7 +1409,7 @@ nfp_net_reta_update(struct rte_eth_dev *dev,\n }\n \n  /* Query Redirection Table(RETA) of Receive Side Scaling of Ethernet device. */\n-static int\n+int\n nfp_net_reta_query(struct rte_eth_dev *dev,\n \t\t   struct rte_eth_rss_reta_entry64 *reta_conf,\n \t\t   uint16_t reta_size)\n@@ -1479,7 +1456,7 @@ nfp_net_reta_query(struct rte_eth_dev *dev,\n \treturn 0;\n }\n \n-static int\n+int\n nfp_net_rss_hash_write(struct rte_eth_dev *dev,\n \t\t\tstruct rte_eth_rss_conf *rss_conf)\n {\n@@ -1529,7 +1506,7 @@ nfp_net_rss_hash_write(struct rte_eth_dev *dev,\n \treturn 0;\n }\n \n-static int\n+int\n nfp_net_rss_hash_update(struct rte_eth_dev *dev,\n \t\t\tstruct rte_eth_rss_conf *rss_conf)\n {\n@@ -1565,7 +1542,7 @@ nfp_net_rss_hash_update(struct rte_eth_dev *dev,\n \treturn 0;\n }\n \n-static int\n+int\n nfp_net_rss_hash_conf_get(struct rte_eth_dev *dev,\n \t\t\t  struct rte_eth_rss_conf *rss_conf)\n {\n@@ -1616,7 +1593,7 @@ nfp_net_rss_hash_conf_get(struct rte_eth_dev *dev,\n \treturn 0;\n }\n \n-static int\n+int\n nfp_net_rss_config_default(struct rte_eth_dev *dev)\n {\n \tstruct rte_eth_conf *dev_conf;\ndiff --git a/drivers/net/nfp/nfp_net_pmd.h b/drivers/net/nfp/nfp_net_pmd.h\nindex 9265496bf0..dc05e888df 100644\n--- a/drivers/net/nfp/nfp_net_pmd.h\n+++ b/drivers/net/nfp/nfp_net_pmd.h\n@@ -349,6 +349,55 @@ nfp_qcp_read(uint8_t *q, enum nfp_qcp_ptr ptr)\n \t\treturn val & NFP_QCP_QUEUE_STS_HI_WRITEPTR_mask;\n }\n \n+/* Prototypes for common NFP functions */\n+int nfp_net_reconfig(struct nfp_net_hw *hw, uint32_t ctrl, uint32_t update);\n+int nfp_net_configure(struct rte_eth_dev *dev);\n+void nfp_net_enable_queues(struct rte_eth_dev *dev);\n+void nfp_net_disable_queues(struct rte_eth_dev *dev);\n+void nfp_net_params_setup(struct nfp_net_hw *hw);\n+void nfp_eth_copy_mac(uint8_t *dst, const uint8_t *src);\n+void nfp_net_write_mac(struct nfp_net_hw *hw, uint8_t *mac);\n+int nfp_set_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr);\n+int nfp_configure_rx_interrupt(struct rte_eth_dev *dev,\n+\t\t\t       struct rte_intr_handle *intr_handle);\n+uint32_t nfp_check_offloads(struct rte_eth_dev *dev);\n+int nfp_net_promisc_enable(struct rte_eth_dev *dev);\n+int nfp_net_promisc_disable(struct rte_eth_dev *dev);\n+int nfp_net_link_update(struct rte_eth_dev *dev,\n+\t\t\t__rte_unused int wait_to_complete);\n+int nfp_net_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats);\n+int nfp_net_stats_reset(struct rte_eth_dev *dev);\n+int nfp_net_infos_get(struct rte_eth_dev *dev,\n+\t\t      struct rte_eth_dev_info *dev_info);\n+const uint32_t *nfp_net_supported_ptypes_get(struct rte_eth_dev *dev);\n+int nfp_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id);\n+int nfp_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id);\n+void nfp_net_params_setup(struct nfp_net_hw *hw);\n+void nfp_net_cfg_queue_setup(struct nfp_net_hw *hw);\n+void nfp_eth_copy_mac(uint8_t *dst, const uint8_t *src);\n+void nfp_net_dev_link_status_print(struct rte_eth_dev *dev);\n+void nfp_net_irq_unmask(struct rte_eth_dev *dev);\n+void nfp_net_dev_interrupt_handler(void *param);\n+void nfp_net_dev_interrupt_delayed_handler(void *param);\n+int nfp_net_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu);\n+int nfp_net_vlan_offload_set(struct rte_eth_dev *dev, int mask);\n+int nfp_net_rss_reta_write(struct rte_eth_dev *dev,\n+\t\t\t   struct rte_eth_rss_reta_entry64 *reta_conf,\n+\t\t\t   uint16_t reta_size);\n+int nfp_net_reta_update(struct rte_eth_dev *dev,\n+\t\t\tstruct rte_eth_rss_reta_entry64 *reta_conf,\n+\t\t\tuint16_t reta_size);\n+int nfp_net_reta_query(struct rte_eth_dev *dev,\n+\t\t       struct rte_eth_rss_reta_entry64 *reta_conf,\n+\t\t       uint16_t reta_size);\n+int nfp_net_rss_hash_write(struct rte_eth_dev *dev,\n+\t\t\t   struct rte_eth_rss_conf *rss_conf);\n+int nfp_net_rss_hash_update(struct rte_eth_dev *dev,\n+\t\t\t    struct rte_eth_rss_conf *rss_conf);\n+int nfp_net_rss_hash_conf_get(struct rte_eth_dev *dev,\n+\t\t\t      struct rte_eth_rss_conf *rss_conf);\n+int nfp_net_rss_config_default(struct rte_eth_dev *dev);\n+\n #define NFP_NET_DEV_PRIVATE_TO_HW(adapter)\\\n \t(&((struct nfp_net_adapter *)adapter)->hw)\n \n",
    "prefixes": [
        "v3",
        "4/7"
    ]
}