get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 133451,
    "url": "http://patchwork.dpdk.org/api/patches/133451/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20231027030001.602639-9-chaoyong.he@corigine.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": "<20231027030001.602639-9-chaoyong.he@corigine.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231027030001.602639-9-chaoyong.he@corigine.com",
    "date": "2023-10-27T02:59:45",
    "name": "[v4,08/24] net/nfp: extract ctrl data field",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "84099b7d8326c3b153f5cf228a9aece33ddcf8a9",
    "submitter": {
        "id": 2554,
        "url": "http://patchwork.dpdk.org/api/people/2554/?format=api",
        "name": "Chaoyong He",
        "email": "chaoyong.he@corigine.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/20231027030001.602639-9-chaoyong.he@corigine.com/mbox/",
    "series": [
        {
            "id": 30016,
            "url": "http://patchwork.dpdk.org/api/series/30016/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=30016",
            "date": "2023-10-27T02:59:37",
            "name": "add the NFP vDPA PMD",
            "version": 4,
            "mbox": "http://patchwork.dpdk.org/series/30016/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/133451/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/133451/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 BF7B74320F;\n\tFri, 27 Oct 2023 05:01:49 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 032FC42DDE;\n\tFri, 27 Oct 2023 05:00:54 +0200 (CEST)",
            "from NAM12-MW2-obe.outbound.protection.outlook.com\n (mail-mw2nam12on2130.outbound.protection.outlook.com [40.107.244.130])\n by mails.dpdk.org (Postfix) with ESMTP id A803740291\n for <dev@dpdk.org>; Fri, 27 Oct 2023 05:00:41 +0200 (CEST)",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5)\n by DM6PR13MB4493.namprd13.prod.outlook.com (2603:10b6:5:1b9::16) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.33; Fri, 27 Oct\n 2023 03:00:39 +0000",
            "from SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::45b3:d83c:cff2:4a1b]) by SJ0PR13MB5545.namprd13.prod.outlook.com\n ([fe80::45b3:d83c:cff2:4a1b%6]) with mapi id 15.20.6933.022; Fri, 27 Oct 2023\n 03:00:39 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=EI79rC9FJV6EKQFSo+8HH56rP2apDIY9BaumZf48Mz8Ga84yhQZQtjUaNr65zWhc47K+l0SJcLG+L6r8X15GQUBzoIgP6Bvx9cgFmT+nZyvZ7Ilv4OiMTlz+p/qOlPdlC5LZKTdOb/m7J+U46srFl7j817BBwTIC9ZZMRljFTYzsXKVaqgxXZ1XnyxEJSGW03jX0qefjpM9zXf76wyDjs1JxFEZJyhGS6TFXXGGEANtZi/b/ipENwd/7NcmMQW0f5PhV40H0F+JdMqYcvqM3o2//q1QPW2iKfDzq6yBETi4PK5mCn9flvEIgkrRg+bBvvOKTXIjQZIFkZ3k9ANicrw==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=RRhMHhn0YXvamlaXgWH2i+WpWihtdLcmMZwtXwxDeso=;\n b=DokS1Ju9oa1R47YzBqIWRCyCoqbokCz4e3rFUtKSbT5SxdgDRE6F2+8No9+wdMbt4waK8IxsyNUTUjSpA/DsqAwgE4xSIxiqUHIfmpUumueebPwJx8Qi66YUr774cP+a8CtlqDUdm/EYIO/DEAWWUM9aCx9bwRaPxdE2anuE86AjLg0hjGMffsmbzBC2NnlvikGngfxFZaUjpUqe47Y/ZiYrtOv4rRfaieFbmgyosjgyf7ELlBOKEtIomwWJoZzOov9fsaqIYbk2KLyFhUWhuGr8jmyBqnHg/xTHnbtGhjlVsTA2/m1ZFJxOvPUDq4FyZfC52almj7v6wT0L6ZHmzw==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com;\n dkim=pass header.d=corigine.com; arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=RRhMHhn0YXvamlaXgWH2i+WpWihtdLcmMZwtXwxDeso=;\n b=OOnvv/aNFYZHTJNx8kHPmsuBZ4hQogaNe060JuIAwT+Y1XH1cX0C2GUx5TymCKfuO7hO8XkosgmJueCPJ4X6kj+4mKkv6kOUIqYIe33L1uqjUZdtrusBtEoxrp5jBNpP3v/rZH97Quykc0ub6Qmb8JwPhvCdiHfkkjjx1ibGTfk=",
        "Authentication-Results": "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=corigine.com;",
        "From": "Chaoyong He <chaoyong.he@corigine.com>",
        "To": "dev@dpdk.org",
        "Cc": "oss-drivers@corigine.com, Chaoyong He <chaoyong.he@corigine.com>,\n Long Wu <long.wu@corigine.com>, Peng Zhang <peng.zhang@corigine.com>",
        "Subject": "[PATCH v4 08/24] net/nfp: extract ctrl data field",
        "Date": "Fri, 27 Oct 2023 10:59:45 +0800",
        "Message-Id": "<20231027030001.602639-9-chaoyong.he@corigine.com>",
        "X-Mailer": "git-send-email 2.39.1",
        "In-Reply-To": "<20231027030001.602639-1-chaoyong.he@corigine.com>",
        "References": "<20231026064324.177531-1-chaoyong.he@corigine.com>\n <20231027030001.602639-1-chaoyong.he@corigine.com>",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "BYAPR08CA0065.namprd08.prod.outlook.com\n (2603:10b6:a03:117::42) To SJ0PR13MB5545.namprd13.prod.outlook.com\n (2603:10b6:a03:424::5)",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "SJ0PR13MB5545:EE_|DM6PR13MB4493:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "edb3c1f9-c859-4bc0-91b7-08dbd698e697",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n 8gJFyrcd+zNTx3nwcCVv9SKVix4EBH8DivuNfc1K1+LBi0sXtxBLf5cn6Oi2crI3KhHgOyydng0qFWmi17VN+blIJvIEcGQk5yfwi28Z70kAA7O0GrezuH8gYTKrG1RzLszNw5Fw2Pruh/1IWXRKPtgdINaYwSvaxELTL5VaiP4R71lprg+JfgYfmyL+9YP6JnXWySkVMdeh00bRrNN9+nJCLlSiMYM7vFbx9wmfZG6LOliGpvH/xB5nc4hzaAc+s/4kJxd2tARkkidUF5JCtwsOXmHY91/znkfVkaSyxZIHOBUr/7Ltv8Z+Q93dGwKLlDvptQaSaRg4iagWOwy3UlJCMUsSY18cx5U2ZMnCQsQvhDnyhY7sfyMcAzbl8MXleoOpA5mEGuWq/SOxIfGEedINKQXFvry9EP2DM8rMpTm2Xe1EWjW8GI9wIziHMVntWFwxA1IWV58i6NbG7WOhrUOrUNcjDUcJ5Jl371dESYOX7dVs+eGjKyf6rHf0MeYXCRrCW2v8SfDigh1jPgqfI4QwDMju8cwW+UY7bOqTT8KGtldbAM9xIo2KG0rewSqczjovctl76FD53D3/+OngI568mrafrBzP6o4s908HStG0GxoObeHEN7JjGqSTA4EjzDHjQLSYzzHCe0mDcal9EFUU8u7lyezb/rZ5In9EUq4=",
        "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230031)(396003)(136003)(366004)(346002)(376002)(39840400004)(230922051799003)(186009)(1800799009)(64100799003)(451199024)(38350700005)(83380400001)(30864003)(4326008)(52116002)(2906002)(38100700002)(107886003)(44832011)(8936002)(26005)(2616005)(1076003)(36756003)(8676002)(54906003)(6666004)(5660300002)(66476007)(6916009)(6506007)(316002)(6486002)(6512007)(41300700001)(66556008)(66946007)(86362001)(478600001);\n DIR:OUT; SFP:1102;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n w7EvsL5plTDPqnBji52hDZJZ7Fa3VQjdybFE6w+FkWERgMmbzw9wVKT/idVRKOTBuGyfLiQDFrcRjqouUb17oO/ONVO2Cf1stA8Udbu1SS925bUpU+uWHzcEGKJjxsN65YG5PwUdNUhR28jHGOHdBXGVsDeGSICDdYwJOmhIb1tFXMIuJUEcgtPlV2zsZAS4DmchfQ3B6IywH1cukdOHY7MXd/Hxo/EfJKygqzojUUxuvgC2w+JcmHDULDwUIDOxGYn69GQcLzy4LwtALWNvJQ5z2hgV6GuXGRqea1Zl0H4knQ8zD52oyKXEWdjUaEAuIf0ufySc0LYPu8ClgAjU8U/ZT+pczTdDEMSnXpLzx6Qs879oc/FUh7+0BqEWxcJh4joCjeuWM3Q7xI3uHh4T6yJLFxe0IDaKaXAYchetywSHA7okufd6TVnrUsfGY8b3Bici0kbdKj23qQVJ67nXfmm2xrXOvLhhMgz+5XKiZSFqQmqa5/JmtuKnzwEj36bJUm60W3e+oaT/XKct5wafW8goUVqPdUeREikJupvxlLaIFDRna/itbO7i9dN9Kclu4EQnxza5T1dStsF0JMueYT1+tb1AVaJJgE58f2ikxDCaj4o00cO1Aqw1f/VsHBRXXheJDEeW9+mRZYLs8Cnqo2lc0PLMLwxpKGwWw7HbS3uObfQ6oh4ZZmIdvJKkNkMHlY4O7K/pz5/BrgybfMhICnY+Bs9F18u7h0GFbzhCy/x76J1Lw6cVGp1g7J5KYOBXAgMm4CJCsp1M+rNPGQAIJzxyMr4stPENy6Tj+f33pr8a1mysb+4Jh9zHF7RZGCoLFiXRGNzxbP/KUOc7VAP4aDTpxbPDCxq/Fc++3Kfv/LHS/0oPa4/dhHo6DoRI4NFJOP9L8sWTK95NQP+3G2Z+MOlz5YZ0T5K9w0tweBqihVVkbPlAgBkX/uLCcNOKzF8nA440KMKlHbVys453WZUVwVeC6LUkTgxqP5d5zaFLRF5mTGlyDOKbN6bxuRchyQWHcVqaJmsyBO3rO9CDtbFYwaZvg20aaxQkvMoZFByTWeI9F4e8a+wYLfUKrd8GiAi5KEqXeIVDpaQW61hpmN/YAYovJqFo5OHNLIHZpw1pOaPLlBz5PiAaZMU2MOHcgnqSzDHQ5UszHApJ1emKEp2NjdnkZm36YuBDKuVnYDYWioJuKI9Mqzfrg2azsqgqfqnAIbwHEJJAjbnyHxMnHnF6HdN7ufQG/7vvdzZpF+zjNBixHjI1Di9zGUnTk878JlNk41pZY/N/iQw5evlMdGprAo5g/er7ardP+YA1xWZIWS1ouJ87/cg85wHM5Uk7SUz+7kkUgQSE156kaI4Zpv4vQ/h7ZsryjKVyXJVuJUCPWa7APNHinYjHsgTFnj2JqRK+GxYNDM2k2llJTgRZl10qDSL52aQLeLQhRqUSD73PD/FgGmsuD9ruknXxXvGizytVWkK4rX2iBENHRsNyIWFp+ZNUjLXUjuVheWkg1+uK0uAVTqO7k4D8g5XC52Ep08gNVhF6poiOB5oM5wlWRICB8iT1yy0PU8MpOVXmnf8PMT2YsdJmrAAITM3CWcxwSOoZeCz0vh3Bb3ZVspsS+63JqA==",
        "X-OriginatorOrg": "corigine.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n edb3c1f9-c859-4bc0-91b7-08dbd698e697",
        "X-MS-Exchange-CrossTenant-AuthSource": "SJ0PR13MB5545.namprd13.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "27 Oct 2023 03:00:39.8073 (UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "fe128f2c-073b-4c20-818e-7246a585940c",
        "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED",
        "X-MS-Exchange-CrossTenant-UserPrincipalName": "\n L22k0FMB2897/D5XnEzYPVmgNg+H5tPvhy14uRDNhlJ1oKb4MQFNvAvIl1FplMiqEJHx6bq5mDcBgnPXoVixxQhekhkJrHkYICsOm2q00+A=",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DM6PR13MB4493",
        "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"
    },
    "content": "Extract the 'ctrl' data filed into the super class, prepare for the\nupcoming common library.\n\nSigned-off-by: Chaoyong He <chaoyong.he@corigine.com>\nReviewed-by: Long Wu <long.wu@corigine.com>\nReviewed-by: Peng Zhang <peng.zhang@corigine.com>\n---\n drivers/net/nfp/flower/nfp_flower.c |  8 ++---\n drivers/net/nfp/nfd3/nfp_nfd3_dp.c  |  2 +-\n drivers/net/nfp/nfdk/nfp_nfdk_dp.c  |  2 +-\n drivers/net/nfp/nfp_ethdev.c        |  4 ++-\n drivers/net/nfp/nfp_ethdev_vf.c     |  2 +-\n drivers/net/nfp/nfp_net_common.c    | 46 ++++++++++++++---------------\n drivers/net/nfp/nfp_net_common.h    |  5 ++--\n drivers/net/nfp/nfp_rxtx.c          | 12 ++++----\n 8 files changed, 41 insertions(+), 40 deletions(-)",
    "diff": "diff --git a/drivers/net/nfp/flower/nfp_flower.c b/drivers/net/nfp/flower/nfp_flower.c\nindex c8455e0241..8bb5914888 100644\n--- a/drivers/net/nfp/flower/nfp_flower.c\n+++ b/drivers/net/nfp/flower/nfp_flower.c\n@@ -61,7 +61,7 @@ nfp_pf_repr_disable_queues(struct rte_eth_dev *dev)\n \tnn_cfg_writeq(hw, NFP_NET_CFG_TXRS_ENABLE, 0);\n \tnn_cfg_writeq(hw, NFP_NET_CFG_RXRS_ENABLE, 0);\n \n-\tnew_ctrl = hw->ctrl & ~NFP_NET_CFG_CTRL_ENABLE;\n+\tnew_ctrl = hw->super.ctrl & ~NFP_NET_CFG_CTRL_ENABLE;\n \tupdate = NFP_NET_CFG_UPDATE_GEN | NFP_NET_CFG_UPDATE_RING |\n \t\t\tNFP_NET_CFG_UPDATE_MSIX;\n \n@@ -72,7 +72,7 @@ nfp_pf_repr_disable_queues(struct rte_eth_dev *dev)\n \tif (nfp_net_reconfig(hw, new_ctrl, update) != 0)\n \t\treturn;\n \n-\thw->ctrl = new_ctrl;\n+\thw->super.ctrl = new_ctrl;\n }\n \n int\n@@ -123,7 +123,7 @@ nfp_flower_pf_start(struct rte_eth_dev *dev)\n \t\treturn -EIO;\n \t}\n \n-\thw->ctrl = new_ctrl;\n+\thw->super.ctrl = new_ctrl;\n \n \t/* Setup the freelist ring */\n \tret = nfp_net_rx_freelist_setup(dev);\n@@ -721,7 +721,7 @@ nfp_flower_start_ctrl_vnic(struct nfp_net_hw *hw)\n \t\treturn -EIO;\n \t}\n \n-\thw->ctrl = new_ctrl;\n+\thw->super.ctrl = new_ctrl;\n \n \t/* Setup the freelist ring */\n \tret = nfp_net_rx_freelist_setup(dev);\ndiff --git a/drivers/net/nfp/nfd3/nfp_nfd3_dp.c b/drivers/net/nfp/nfd3/nfp_nfd3_dp.c\nindex bbf4530ae9..3045533857 100644\n--- a/drivers/net/nfp/nfd3/nfp_nfd3_dp.c\n+++ b/drivers/net/nfp/nfd3/nfp_nfd3_dp.c\n@@ -154,7 +154,7 @@ nfp_net_nfd3_set_meta_data(struct nfp_net_meta_raw *meta_data,\n \tcap_extend = hw->super.cap_ext;\n \n \tif ((pkt->ol_flags & RTE_MBUF_F_TX_VLAN) != 0 &&\n-\t\t\t(hw->ctrl & NFP_NET_CFG_CTRL_TXVLAN_V2) != 0) {\n+\t\t\t(hw->super.ctrl & NFP_NET_CFG_CTRL_TXVLAN_V2) != 0) {\n \t\tif (meta_data->length == 0)\n \t\t\tmeta_data->length = NFP_NET_META_HEADER_SIZE;\n \t\tmeta_data->length += NFP_NET_META_FIELD_SIZE;\ndiff --git a/drivers/net/nfp/nfdk/nfp_nfdk_dp.c b/drivers/net/nfp/nfdk/nfp_nfdk_dp.c\nindex 807666686f..63421ba796 100644\n--- a/drivers/net/nfp/nfdk/nfp_nfdk_dp.c\n+++ b/drivers/net/nfp/nfdk/nfp_nfdk_dp.c\n@@ -187,7 +187,7 @@ nfp_net_nfdk_set_meta_data(struct rte_mbuf *pkt,\n \tcap_extend = hw->super.cap_ext;\n \n \tif ((pkt->ol_flags & RTE_MBUF_F_TX_VLAN) != 0 &&\n-\t\t\t(hw->ctrl & NFP_NET_CFG_CTRL_TXVLAN_V2) != 0) {\n+\t\t\t(hw->super.ctrl & NFP_NET_CFG_CTRL_TXVLAN_V2) != 0) {\n \t\tif (meta_data.length == 0)\n \t\t\tmeta_data.length = NFP_NET_META_HEADER_SIZE;\n \t\tmeta_data.length += NFP_NET_META_FIELD_SIZE;\ndiff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c\nindex b7c60b642f..0f6f97be8e 100644\n--- a/drivers/net/nfp/nfp_ethdev.c\n+++ b/drivers/net/nfp/nfp_ethdev.c\n@@ -152,6 +152,8 @@ nfp_net_start(struct rte_eth_dev *dev)\n \tif (nfp_net_ext_reconfig(hw, ctrl_extend, update) != 0)\n \t\treturn -EIO;\n \n+\thw->super.ctrl_ext = ctrl_extend;\n+\n \t/*\n \t * Allocating rte mbufs for configured rx queues.\n \t * This requires queues being enabled before.\n@@ -167,7 +169,7 @@ nfp_net_start(struct rte_eth_dev *dev)\n \telse\n \t\tnfp_eth_set_configured(dev->process_private, hw->nfp_idx, 1);\n \n-\thw->ctrl = new_ctrl;\n+\thw->super.ctrl = new_ctrl;\n \n \tfor (i = 0; i < dev->data->nb_rx_queues; i++)\n \t\tdev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;\ndiff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c\nindex 641fed6fcf..684968903c 100644\n--- a/drivers/net/nfp/nfp_ethdev_vf.c\n+++ b/drivers/net/nfp/nfp_ethdev_vf.c\n@@ -110,7 +110,7 @@ nfp_netvf_start(struct rte_eth_dev *dev)\n \t\tgoto error;\n \t}\n \n-\thw->ctrl = new_ctrl;\n+\thw->super.ctrl = new_ctrl;\n \n \tfor (i = 0; i < dev->data->nb_rx_queues; i++)\n \t\tdev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;\ndiff --git a/drivers/net/nfp/nfp_net_common.c b/drivers/net/nfp/nfp_net_common.c\nindex 29f836c31e..058260bda3 100644\n--- a/drivers/net/nfp/nfp_net_common.c\n+++ b/drivers/net/nfp/nfp_net_common.c\n@@ -500,7 +500,7 @@ nfp_net_disable_queues(struct rte_eth_dev *dev)\n \tnn_cfg_writeq(hw, NFP_NET_CFG_TXRS_ENABLE, 0);\n \tnn_cfg_writeq(hw, NFP_NET_CFG_RXRS_ENABLE, 0);\n \n-\tnew_ctrl = hw->ctrl & ~NFP_NET_CFG_CTRL_ENABLE;\n+\tnew_ctrl = hw->super.ctrl & ~NFP_NET_CFG_CTRL_ENABLE;\n \tupdate = NFP_NET_CFG_UPDATE_GEN |\n \t\t\tNFP_NET_CFG_UPDATE_RING |\n \t\t\tNFP_NET_CFG_UPDATE_MSIX;\n@@ -512,7 +512,7 @@ nfp_net_disable_queues(struct rte_eth_dev *dev)\n \tif (nfp_net_reconfig(hw, new_ctrl, update) != 0)\n \t\treturn;\n \n-\thw->ctrl = new_ctrl;\n+\thw->super.ctrl = new_ctrl;\n }\n \n void\n@@ -553,7 +553,7 @@ nfp_net_set_mac_addr(struct rte_eth_dev *dev,\n \tstruct nfp_net_hw *hw;\n \n \thw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n-\tif ((hw->ctrl & NFP_NET_CFG_CTRL_ENABLE) != 0 &&\n+\tif ((hw->super.ctrl & NFP_NET_CFG_CTRL_ENABLE) != 0 &&\n \t\t\t(hw->super.cap & NFP_NET_CFG_CTRL_LIVE_ADDR) == 0) {\n \t\tPMD_DRV_LOG(ERR, \"MAC address unable to change when port enabled\");\n \t\treturn -EBUSY;\n@@ -563,8 +563,8 @@ nfp_net_set_mac_addr(struct rte_eth_dev *dev,\n \tnfp_net_write_mac(hw, (uint8_t *)mac_addr);\n \n \tupdate = NFP_NET_CFG_UPDATE_MACADDR;\n-\tctrl = hw->ctrl;\n-\tif ((hw->ctrl & NFP_NET_CFG_CTRL_ENABLE) != 0 &&\n+\tctrl = hw->super.ctrl;\n+\tif ((hw->super.ctrl & NFP_NET_CFG_CTRL_ENABLE) != 0 &&\n \t\t\t(hw->super.cap & NFP_NET_CFG_CTRL_LIVE_ADDR) != 0)\n \t\tctrl |= NFP_NET_CFG_CTRL_LIVE_ADDR;\n \n@@ -613,7 +613,7 @@ nfp_configure_rx_interrupt(struct rte_eth_dev *dev,\n \t}\n \n \t/* Avoiding TX interrupts */\n-\thw->ctrl |= NFP_NET_CFG_CTRL_MSIX_TX_OFF;\n+\thw->super.ctrl |= NFP_NET_CFG_CTRL_MSIX_TX_OFF;\n \treturn 0;\n }\n \n@@ -705,19 +705,19 @@ nfp_net_promisc_enable(struct rte_eth_dev *dev)\n \t\treturn -ENOTSUP;\n \t}\n \n-\tif ((hw->ctrl & NFP_NET_CFG_CTRL_PROMISC) != 0) {\n+\tif ((hw->super.ctrl & NFP_NET_CFG_CTRL_PROMISC) != 0) {\n \t\tPMD_DRV_LOG(INFO, \"Promiscuous mode already enabled\");\n \t\treturn 0;\n \t}\n \n-\tnew_ctrl = hw->ctrl | NFP_NET_CFG_CTRL_PROMISC;\n+\tnew_ctrl = hw->super.ctrl | NFP_NET_CFG_CTRL_PROMISC;\n \tupdate = NFP_NET_CFG_UPDATE_GEN;\n \n \tret = nfp_net_reconfig(hw, new_ctrl, update);\n \tif (ret != 0)\n \t\treturn ret;\n \n-\thw->ctrl = new_ctrl;\n+\thw->super.ctrl = new_ctrl;\n \n \treturn 0;\n }\n@@ -732,19 +732,19 @@ nfp_net_promisc_disable(struct rte_eth_dev *dev)\n \n \thw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n \n-\tif ((hw->ctrl & NFP_NET_CFG_CTRL_PROMISC) == 0) {\n+\tif ((hw->super.ctrl & NFP_NET_CFG_CTRL_PROMISC) == 0) {\n \t\tPMD_DRV_LOG(INFO, \"Promiscuous mode already disabled\");\n \t\treturn 0;\n \t}\n \n-\tnew_ctrl = hw->ctrl & ~NFP_NET_CFG_CTRL_PROMISC;\n+\tnew_ctrl = hw->super.ctrl & ~NFP_NET_CFG_CTRL_PROMISC;\n \tupdate = NFP_NET_CFG_UPDATE_GEN;\n \n \tret = nfp_net_reconfig(hw, new_ctrl, update);\n \tif (ret != 0)\n \t\treturn ret;\n \n-\thw->ctrl = new_ctrl;\n+\thw->super.ctrl = new_ctrl;\n \n \treturn 0;\n }\n@@ -1349,7 +1349,7 @@ nfp_net_common_init(struct rte_pci_device *pci_dev,\n \telse\n \t\thw->rx_offset = nn_cfg_readl(hw, NFP_NET_CFG_RX_OFFSET_ADDR);\n \n-\thw->ctrl = 0;\n+\thw->super.ctrl = 0;\n \thw->stride_rx = stride;\n \thw->stride_tx = stride;\n \n@@ -1453,7 +1453,7 @@ nfp_net_irq_unmask(struct rte_eth_dev *dev)\n \t/* Make sure all updates are written before un-masking */\n \trte_wmb();\n \n-\tif ((hw->ctrl & NFP_NET_CFG_CTRL_MSIXAUTO) != 0) {\n+\tif ((hw->super.ctrl & NFP_NET_CFG_CTRL_MSIXAUTO) != 0) {\n \t\t/* If MSI-X auto-masking is used, clear the entry */\n \t\trte_intr_ack(pci_dev->intr_handle);\n \t} else {\n@@ -1559,7 +1559,7 @@ nfp_net_vlan_offload_set(struct rte_eth_dev *dev,\n \n \thw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n \trx_offload = dev->data->dev_conf.rxmode.offloads;\n-\tnew_ctrl = hw->ctrl;\n+\tnew_ctrl = hw->super.ctrl;\n \n \t/* VLAN stripping setting */\n \tif ((mask & RTE_ETH_VLAN_STRIP_MASK) != 0) {\n@@ -1578,7 +1578,7 @@ nfp_net_vlan_offload_set(struct rte_eth_dev *dev,\n \t\t\tnew_ctrl &= ~NFP_NET_CFG_CTRL_RXQINQ;\n \t}\n \n-\tif (new_ctrl == hw->ctrl)\n+\tif (new_ctrl == hw->super.ctrl)\n \t\treturn 0;\n \n \tupdate = NFP_NET_CFG_UPDATE_GEN;\n@@ -1587,7 +1587,7 @@ nfp_net_vlan_offload_set(struct rte_eth_dev *dev,\n \tif (ret != 0)\n \t\treturn ret;\n \n-\thw->ctrl = new_ctrl;\n+\thw->super.ctrl = new_ctrl;\n \n \treturn 0;\n }\n@@ -1660,7 +1660,7 @@ nfp_net_reta_update(struct rte_eth_dev *dev,\n \tstruct nfp_net_hw *hw;\n \n \thw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n-\tif ((hw->ctrl & NFP_NET_CFG_CTRL_RSS_ANY) == 0)\n+\tif ((hw->super.ctrl & NFP_NET_CFG_CTRL_RSS_ANY) == 0)\n \t\treturn -EINVAL;\n \n \tret = nfp_net_rss_reta_write(dev, reta_conf, reta_size);\n@@ -1669,7 +1669,7 @@ nfp_net_reta_update(struct rte_eth_dev *dev,\n \n \tupdate = NFP_NET_CFG_UPDATE_RSS;\n \n-\tif (nfp_net_reconfig(hw, hw->ctrl, update) != 0)\n+\tif (nfp_net_reconfig(hw, hw->super.ctrl, update) != 0)\n \t\treturn -EIO;\n \n \treturn 0;\n@@ -1690,7 +1690,7 @@ nfp_net_reta_query(struct rte_eth_dev *dev,\n \tstruct nfp_net_hw *hw;\n \n \thw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n-\tif ((hw->ctrl & NFP_NET_CFG_CTRL_RSS_ANY) == 0)\n+\tif ((hw->super.ctrl & NFP_NET_CFG_CTRL_RSS_ANY) == 0)\n \t\treturn -EINVAL;\n \n \tif (reta_size != NFP_NET_CFG_RSS_ITBL_SZ) {\n@@ -1795,7 +1795,7 @@ nfp_net_rss_hash_update(struct rte_eth_dev *dev,\n \trss_hf = rss_conf->rss_hf;\n \n \t/* Checking if RSS is enabled */\n-\tif ((hw->ctrl & NFP_NET_CFG_CTRL_RSS_ANY) == 0) {\n+\tif ((hw->super.ctrl & NFP_NET_CFG_CTRL_RSS_ANY) == 0) {\n \t\tif (rss_hf != 0) {\n \t\t\tPMD_DRV_LOG(ERR, \"RSS unsupported\");\n \t\t\treturn -EINVAL;\n@@ -1813,7 +1813,7 @@ nfp_net_rss_hash_update(struct rte_eth_dev *dev,\n \n \tupdate = NFP_NET_CFG_UPDATE_RSS;\n \n-\tif (nfp_net_reconfig(hw, hw->ctrl, update) != 0)\n+\tif (nfp_net_reconfig(hw, hw->super.ctrl, update) != 0)\n \t\treturn -EIO;\n \n \treturn 0;\n@@ -1831,7 +1831,7 @@ nfp_net_rss_hash_conf_get(struct rte_eth_dev *dev,\n \n \thw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);\n \n-\tif ((hw->ctrl & NFP_NET_CFG_CTRL_RSS_ANY) == 0)\n+\tif ((hw->super.ctrl & NFP_NET_CFG_CTRL_RSS_ANY) == 0)\n \t\treturn -EINVAL;\n \n \trss_hf = rss_conf->rss_hf;\ndiff --git a/drivers/net/nfp/nfp_net_common.h b/drivers/net/nfp/nfp_net_common.h\nindex dd62ec6d83..3fb3b34613 100644\n--- a/drivers/net/nfp/nfp_net_common.h\n+++ b/drivers/net/nfp/nfp_net_common.h\n@@ -117,6 +117,8 @@ struct nfp_hw {\n \tuint8_t *qcp_cfg;\n \tuint32_t cap;\n \tuint32_t cap_ext;\n+\tuint32_t ctrl;\n+\tuint32_t ctrl_ext;\n };\n \n struct nfp_net_hw {\n@@ -139,9 +141,6 @@ struct nfp_net_hw {\n \t/** NFP ASIC params */\n \tconst struct nfp_dev_info *dev_info;\n \n-\t/** Current values for control */\n-\tuint32_t ctrl;\n-\n \tuint8_t *tx_bar;\n \tuint8_t *rx_bar;\n \ndiff --git a/drivers/net/nfp/nfp_rxtx.c b/drivers/net/nfp/nfp_rxtx.c\nindex a0c7e0e9b5..a9dd464a6a 100644\n--- a/drivers/net/nfp/nfp_rxtx.c\n+++ b/drivers/net/nfp/nfp_rxtx.c\n@@ -143,7 +143,7 @@ nfp_net_rx_cksum(struct nfp_net_rxq *rxq,\n {\n \tstruct nfp_net_hw *hw = rxq->hw;\n \n-\tif ((hw->ctrl & NFP_NET_CFG_CTRL_RXCSUM) == 0)\n+\tif ((hw->super.ctrl & NFP_NET_CFG_CTRL_RXCSUM) == 0)\n \t\treturn;\n \n \t/* If IPv4 and IP checksum error, fail */\n@@ -307,7 +307,7 @@ nfp_net_parse_meta_hash(const struct nfp_meta_parsed *meta,\n {\n \tstruct nfp_net_hw *hw = rxq->hw;\n \n-\tif ((hw->ctrl & NFP_NET_CFG_CTRL_RSS_ANY) == 0)\n+\tif ((hw->super.ctrl & NFP_NET_CFG_CTRL_RSS_ANY) == 0)\n \t\treturn;\n \n \tmbuf->hash.rss = meta->hash;\n@@ -339,7 +339,7 @@ nfp_net_parse_meta_vlan(const struct nfp_meta_parsed *meta,\n \tstruct nfp_net_hw *hw = rxq->hw;\n \n \t/* Skip if firmware don't support setting vlan. */\n-\tif ((hw->ctrl & (NFP_NET_CFG_CTRL_RXVLAN | NFP_NET_CFG_CTRL_RXVLAN_V2)) == 0)\n+\tif ((hw->super.ctrl & (NFP_NET_CFG_CTRL_RXVLAN | NFP_NET_CFG_CTRL_RXVLAN_V2)) == 0)\n \t\treturn;\n \n \t/*\n@@ -347,12 +347,12 @@ nfp_net_parse_meta_vlan(const struct nfp_meta_parsed *meta,\n \t * 1. Using the metadata when NFP_NET_CFG_CTRL_RXVLAN_V2 is set,\n \t * 2. Using the descriptor when NFP_NET_CFG_CTRL_RXVLAN is set.\n \t */\n-\tif ((hw->ctrl & NFP_NET_CFG_CTRL_RXVLAN_V2) != 0) {\n+\tif ((hw->super.ctrl & NFP_NET_CFG_CTRL_RXVLAN_V2) != 0) {\n \t\tif (meta->vlan_layer > 0 && meta->vlan[0].offload != 0) {\n \t\t\tmb->vlan_tci = rte_cpu_to_le_32(meta->vlan[0].tci);\n \t\t\tmb->ol_flags |= RTE_MBUF_F_RX_VLAN | RTE_MBUF_F_RX_VLAN_STRIPPED;\n \t\t}\n-\t} else if ((hw->ctrl & NFP_NET_CFG_CTRL_RXVLAN) != 0) {\n+\t} else if ((hw->super.ctrl & NFP_NET_CFG_CTRL_RXVLAN) != 0) {\n \t\tif ((rxd->rxd.flags & PCIE_DESC_RX_VLAN) != 0) {\n \t\t\tmb->vlan_tci = rte_cpu_to_le_32(rxd->rxd.offload_info);\n \t\t\tmb->ol_flags |= RTE_MBUF_F_RX_VLAN | RTE_MBUF_F_RX_VLAN_STRIPPED;\n@@ -385,7 +385,7 @@ nfp_net_parse_meta_qinq(const struct nfp_meta_parsed *meta,\n {\n \tstruct nfp_net_hw *hw = rxq->hw;\n \n-\tif ((hw->ctrl & NFP_NET_CFG_CTRL_RXQINQ) == 0 ||\n+\tif ((hw->super.ctrl & NFP_NET_CFG_CTRL_RXQINQ) == 0 ||\n \t\t\t(hw->super.cap & NFP_NET_CFG_CTRL_RXQINQ) == 0)\n \t\treturn;\n \n",
    "prefixes": [
        "v4",
        "08/24"
    ]
}