get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 44458,
    "url": "https://patches.dpdk.org/api/patches/44458/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1536438666-22184-16-git-send-email-rasesh.mody@cavium.com/",
    "project": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<1536438666-22184-16-git-send-email-rasesh.mody@cavium.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1536438666-22184-16-git-send-email-rasesh.mody@cavium.com",
    "date": "2018-09-08T20:31:04",
    "name": "[15/17] net/qede: add support for Rx descriptor status",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "4dcda45827ce38b4933bbc74ad5969165a797490",
    "submitter": {
        "id": 569,
        "url": "https://patches.dpdk.org/api/people/569/?format=api",
        "name": "Mody, Rasesh",
        "email": "rasesh.mody@cavium.com"
    },
    "delegate": {
        "id": 319,
        "url": "https://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1536438666-22184-16-git-send-email-rasesh.mody@cavium.com/mbox/",
    "series": [
        {
            "id": 1239,
            "url": "https://patches.dpdk.org/api/series/1239/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=1239",
            "date": "2018-09-08T20:30:49",
            "name": "net/qede: add enhancements and fixes",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/1239/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/44458/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/44458/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 [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 373677CDE;\n\tSat,  8 Sep 2018 22:32:13 +0200 (CEST)",
            "from NAM04-BN3-obe.outbound.protection.outlook.com\n\t(mail-eopbgr680053.outbound.protection.outlook.com [40.107.68.53])\n\tby dpdk.org (Postfix) with ESMTP id ADFC34CE4\n\tfor <dev@dpdk.org>; Sat,  8 Sep 2018 22:31:57 +0200 (CEST)",
            "from cavium.com (198.186.1.5) by\n\tDM6PR07MB5372.namprd07.prod.outlook.com (2603:10b6:5:44::17) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n\t15.20.1101.18; Sat, 8 Sep 2018 20:31:56 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=1rUtDqO1TYqAOAOegNkNBxAUuPdOm6+gLIaJnIwC+L8=;\n\tb=gFJ88Zcc/6Lxa2Y5tKSpPOF8ms2LpI5+geAygT55E1ndzjU/TJZthbhBOL1noXUL6tBS4g0iIJfnl/EH1aBcBZARhLB4eKF4mjpZnYMctHFDuQofRZX/piW26CAusfiXIJkC1ywftsiwrDmYWiBRRm8wdJ+VLOm0M6+ut50qVOw=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=Rasesh.Mody@cavium.com; ",
        "From": "Rasesh Mody <rasesh.mody@cavium.com>",
        "To": "dev@dpdk.org",
        "Cc": "Shahed Shaikh <shahed.shaikh@cavium.com>, ferruh.yigit@intel.com,\n\tDept-EngDPDKDev@cavium.com",
        "Date": "Sat,  8 Sep 2018 13:31:04 -0700",
        "Message-Id": "<1536438666-22184-16-git-send-email-rasesh.mody@cavium.com>",
        "X-Mailer": "git-send-email 1.7.10.3",
        "In-Reply-To": "<1536438666-22184-1-git-send-email-rasesh.mody@cavium.com>",
        "References": "<1536438666-22184-1-git-send-email-rasesh.mody@cavium.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[198.186.1.5]",
        "X-ClientProxiedBy": "BYAPR02CA0031.namprd02.prod.outlook.com\n\t(2603:10b6:a02:ee::44) To DM6PR07MB5372.namprd07.prod.outlook.com\n\t(2603:10b6:5:44::17)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "9bee7515-80c6-40db-ab60-08d615ca1ee6",
        "X-Microsoft-Antispam": "BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(2017052603328)(7153060)(7193020);\n\tSRVR:DM6PR07MB5372; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; DM6PR07MB5372;\n\t3:9cxQgswmrlCnw0XLUdyfcPndlg9EZfCIfEUodsx01hJgBbc4jTgCit08K6TEMsx4Vjt40hVAApHiAhcymFdqytgzXC843s1RiiUW1GJnJCw7jHZQuiI1ImuZ2hY9Hs6QjFjJNNuaicgChfyuIqwfh+R4oRtY3I5+2N7k0tazBAZ+ieygUm8nADOVrzXbK5llcw4ZfRlqJJO71+LFO4aoJL5YTO0zlxhkIM42QCom0KmanZ1242lNp1Bkla6kMDRR;\n\t25:J4Iz7LbCBfFA2f3r4ZUfLvML47mXx4An0b0jPFk6lMZnxv+7c4jU7TmvwfmeEtb/nze7nvUqb+OojkfqYY+2IqG4AYIPMf3S9e66jicELOwMPdgpTYwQkNlryBblDAVK+Y8eyhih9Da3oGtumbSdJqcitjDlopO156gs9Pzl+f/noZKPU2rjnvskx5/qcMJ4m/anG/N5oNszJJZ8CNFwxCIzXaTfBR0V3wLK/U2TWFvpl8cUu85p4aqU4pxAbwoBHK2gd2L8FQgfY2ONPOQG6PSpvjZ2NreOErFoRIF/GXEP1lm+8wUzymglE78RruEBObq0oGq9O4UuOZCamNxs5g==;\n\t31:Xcp2fRWOl5xE2ONN63G0av5YFalOXYUAgeeNY97S9rzktRUXai/xBVV091YA5pmFSP4qCENEejf5OUkHtoHeOVvpT5twLxEZWiJdQwHKeNVCEmIzAop6b1EACFa9AFbwb8Cayap3ffUwCeP212LMqoAEwEao9L++1REc3iAdN0BaMHdL+QVsA91yVdcPiysz77IcQy/kitldt9YXtzGjjtii3nril3DI0zADhTRs6zI=",
            "1; DM6PR07MB5372;\n\t20:3hi3eCBCWhJmQeuFwlQXK8nelZTmQijYyYmU21xzB1jRnX2RbrJZnhjXG7yQXMZxNsY2AFLgjJSa3Zujfl94QhbmBAcEFZPNo+Wn+w2MkfZQEnVN6wRmu/RODKBbLLowE6Kb5SVMLn+oishsv0DtiEE9XxYa7phSWEmltU7rPnkIOXg9i+gwlV57U1UITjxkTc7DMJdntYYUhspq6xLFl8vV+B9qLW5acL8860BfebFHA1rt+QjifDhcifGtzZiM8Aa1D0WpQAu6LeFJQ7OALAROby2tGU0WN4H85/cu95K5eiUy3/nHCWqLhfSK/3uGIT1wkebxm6NaVlQBzg+mx1U8Jcj7b40DQBfRl/Je93WU7Z4s4zsIVETrspQ4mdQgdyLuseVB4Ujq+GHj+bXqgGcRNsSypDZyyh6BtW3/90CTbAMYx7zsnbbwPO3wS0+qUF62OCQfxF9boXtfspZsxKTGBSGCLnLf/7mlCZlcMwIBwXT7/bunjDxPaffeYhBU;\n\t4:39Hh6JvxADwSnnO1J167JrTSULtZTeckqznwi3oRcPGZvNV5Ci4kwvUuKT0FQUx69Mhp8/znxmz00BKpFDeKzcmuM18c+S66V1oi7V+wqmQBdr6xduD8HMOIIrux9fDuhctf84/nOXENALd8bagO8Z2y79KmMbY6aC8LYLyCgS05NgxRm+W7uO/ZcUmeP3kIMisZKzAVPoG2DkP+fzGswS5yLtjpXuipUIykfGw9myG52+p32Bk8J4gh3hEOI11vdoOnk81Y7I6d9sz/yVj3NC1Wjq4r3sWDD524wLE7OhTM+MEQjIZ6tDKOGRrSkg+W",
            "=?us-ascii?Q?1; DM6PR07MB5372;\n\t23:gfdXSepcYW3wM1EAvbbu/lfgXFDeCTSBhc6NhPhOX?=\n\tD9HY0f//Htr/Q9sYCfGzNErHRjJd+DCq1WweapEIedpfJvcFhX19iHD5Nle7+m7O0dwGrs3WBr7MSIPuY8LaCE3PhHKJ3q340eG2Pd85mUGDlrukjQt29aatxX3TyzytyFs9wX8oAk1VQ/CEbINLK5bdtXF0JZWdOSF0ajIWZuKh+fpAcAVBpQZK1hbGAT9mT7qtJS9tsPWLgoE/6KoyzJyVBCzIBTajNgQatA+BisIjSa8k16NyddqENP4IuvKWlUO/KY3U59C1VQg8Ap156qPrwLsbDNOJyT1gDgx8DnERm0kZGHmyCnVWYJ2Ee4bAWdFIc5v+hL0rMe07k1jmdlJPnqK93Q6ycvlc4cvrSavcV1ycFW8AKI1hBcOmZa3xAYoOBIdGM7g0V0WWsDUCbrMYdCcJ6OAPwJjBYus8a+LDR1iV0f4otf+pMLEKzPD6qEDtla2GgX5Ekl+3FOPfz97rvUlVpIFKrVr2yd8Uk8kL6OUNl/RQvuIPiEyDJeclnhCekSTYlrpMACkHzWtOdk1E+VnInAMicuvvMi0h5JqyG4xx2+m9dLxALGUMHUxZXRqDgxoxWCBEhi7ZkxeiF4YNytmlQt62uPVh20h7xy5Ub5NUkq6IQSpMSMrIHhvIAVVNt4VgDsUc3YxM3zmmKR2IPGmZJZmlvRMLEOn5uQgGbzZKkz5qMegrbYAlr319wdS1WB+KdaxU3mmsQxiO4Z6FDbuG12d6Q3PMTJ7Q0BXbqTwag2RgYFn2LNBnd/dZvWZLzZ7agcPR7LLXAwxOcNS+E9BYi5tjJuRf4qDLRmCRpRhvP4qGjKxicplxpfYFWo49rS9zAd7e3CwjS8266B3QaePGElVp0L4ph4W7nBFyPh12wN51XkY3MYvjOVYosrQPlyd6VqFaq2AiXottYGWNX3iIH3+urRqc/D3yuJLHW519szfOstm7AyCdmFiadQN/5YddO/l5t/0nnv6i7aMkTmaM9X/QWYy974LEmerCsj1fOrMrv+rz9a+VgcuFQT1KZFuYVxysg2Ntb63SZEBM9vYL3wEj6Y50deXwvthMQGxArKBFGtdXUsf0yea8rPshmMDlvY6hR2R2kfUhnZR/W9WVex2SL4N776avWs1fo+xiqPXQoNM7Y10LFjkpvsRvmEUFt4L5RYRH5ClFcrc36oi8OIVEKPt0u4nqcuQZjoghSD4gbiDn92JzeX+93HRCoeWr5EofogVDlivhq36n7Yc9Ii0K+OOrjmuTrmzj30ubArYPzDhWSualwmqFi8xUjpiQaIt3mXN4/CVXNMjZYl+SEKf9AZG+if0z00hKg==",
            "1; DM6PR07MB5372;\n\t6:sLakpzLQIFtbk+CPeUmkDKj+vwKM1usLWjXf3xnzXq8wU95aGBpx/0xIv1Wcf208B+jonkkeqq5Co1cjytaX8u8b3JLqG2VkNaN10yNgtbt8BWEmmMgps9+KFl5oEumZpmfaYruM8I19KcrefeaOQkwsIPufDPfFiCM20AhGiClm7IG5m1GJ2EY5EWf9ybgnma7iOdpnapB/avf/agyM+BzSL4yrbG88a7x6EozJ8jHEpq4MelaZm0X0JK73Dy1smLzu9LC64SMnZfbB+tAB/HRT3qWiQB1yozKDd3PqJox6qS+J7cIN+2/Xa9JKGI/dSXI8AmdALn2KCcjjrvHJkZ0n+WIKP9Q7aLeNkLbUIBVJKDhB/BE/f2rWqiTxSQpQ9y31+SjNVUtC2b6exi7YOJkXFZ4Qf3PMY8F69C1xUe4bnpqjfkex5/6Om4SJD0h6DYG1TijiV9ClKtIV2PwVUA==;\n\t5:TpPhpkIg/NuDvZ+WaOGcllg9KZb/z6kcQ+uqULtQRSqJ2jfICspJ/Fzx1Vu1GYxdz78NfncgH1aigWrhFYK0JRLFZLJDDr9vDU1C/dDrsktfAtkJYuEzhS3BAgltZFMeeNltcMo3oe/LuNsn2nns1WfI/usTHoB2mV2xip7A3Ck=;\n\t7:qBlu6NPFM9dJUD4oaJoeJ7b6ZNbd00iIoPqpw2sBzXl/JQjK0neTNQXrTU8jXlVIKHl0mfTZFVNuE9GUZLb+J9WDMKdytF8hq1bQWVgQsSlDz+kG3uss/E6+jUEidYMxJJLscPREufPoizka3lMYD9jwndFdzKNiGKDjPFs6enZpyNlAVNJyv/WJPL3wwrYX4+w0N2iJD1IwEHj5XZh4c2mWcGEl2NjiUZNHcgLs+ojDL886YNWGYKzkUl/E1sWS"
        ],
        "X-MS-TrafficTypeDiagnostic": "DM6PR07MB5372:",
        "X-Microsoft-Antispam-PRVS": "<DM6PR07MB5372763726B6BA644A2036119F070@DM6PR07MB5372.namprd07.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:(131327999870524);",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(823301075)(3002001)(10201501046)(3231311)(944501410)(52105095)(93006095)(93001095)(149027)(150027)(6041310)(20161123562045)(20161123564045)(20161123558120)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699050);\n\tSRVR:DM6PR07MB5372; BCL:0; PCL:0; RULEID:; SRVR:DM6PR07MB5372; ",
        "X-Forefront-PRVS": "07891BF289",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(396003)(366004)(136003)(346002)(376002)(39860400002)(199004)(189003)(4720700003)(97736004)(2351001)(106356001)(105586002)(72206003)(66066001)(47776003)(4326008)(50466002)(48376002)(25786009)(305945005)(7736002)(2361001)(8676002)(478600001)(316002)(52116002)(69596002)(107886003)(186003)(575784001)(50226002)(44832011)(16526019)(486006)(21086003)(2906002)(55016002)(26005)(8936002)(476003)(956004)(81156014)(81166006)(86362001)(5660300001)(6666003)(36756003)(16586007)(11346002)(446003)(2616005)(76176011)(3846002)(6116002)(6916009)(68736007)(386003)(51416003)(53936002)(7696005);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR07MB5372; H:cavium.com; FPR:;\n\tSPF:None; \n\tLANG:en; PTR:InfoNoRecords; A:1; MX:1; ",
        "Received-SPF": "None (protection.outlook.com: cavium.com does not designate\n\tpermitted sender hosts)",
        "X-Microsoft-Antispam-Message-Info": "D/nqK8pubs+DXvQhkqHAUEL6rgkGf/gT7c6XRh7gcs8+Eji4osGOFqmV4UGPw9d16QAg8iqO1Rck40/aIm0p7OOCqZecNN1ff06PfbVXr06AB1UeWenFsNtFK6GjfSBQ4EiwO/jQzOfGSNeK8cMcz0gUwA4so4RgcyFWY2aXO1BZNqJ4QzSsGGUamB7wpy5Qmz9Yw1dx9A/p+f1dLzuVawh+K9y7OQTRsLco57XdJUbhnzRiu9EswWJm5CMTjEhhqBc1bpHWec7IWBhAfSSUi5fIMn+UK50Lz+p5LlfW/liDaUpxcHLuMVokC8zwG5WHH56gbJCc+N98TMHDt1wteQyhH7pZvL0iR0wuU5w/YzA=",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "cavium.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "08 Sep 2018 20:31:56.2389\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "9bee7515-80c6-40db-ab60-08d615ca1ee6",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "711e4ccf-2e9b-4bcf-a551-4094005b6194",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DM6PR07MB5372",
        "Subject": "[dpdk-dev] [PATCH 15/17] net/qede: add support for Rx descriptor\n\tstatus",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Shahed Shaikh <shahed.shaikh@cavium.com>\n\nThis patch implement eth_dev_ops->rx_descriptor_status\ncallback.\nWalk through receive completion ring to calculate receive\ndescriptors used by firmware and then provide the status of\noffset accordingly.\n\nSigned-off-by: Shahed Shaikh <shahed.shaikh@cavium.com>\n---\n drivers/net/qede/qede_ethdev.c |    2 +\n drivers/net/qede/qede_rxtx.c   |   81 ++++++++++++++++++++++++++++++++++++++++\n drivers/net/qede/qede_rxtx.h   |    2 +\n 3 files changed, 85 insertions(+)",
    "diff": "diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c\nindex 259eb45..322400c 100644\n--- a/drivers/net/qede/qede_ethdev.c\n+++ b/drivers/net/qede/qede_ethdev.c\n@@ -2300,6 +2300,7 @@ static int qede_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)\n \t.dev_infos_get = qede_dev_info_get,\n \t.rx_queue_setup = qede_rx_queue_setup,\n \t.rx_queue_release = qede_rx_queue_release,\n+\t.rx_descriptor_status = qede_rx_descriptor_status,\n \t.tx_queue_setup = qede_tx_queue_setup,\n \t.tx_queue_release = qede_tx_queue_release,\n \t.dev_start = qede_dev_start,\n@@ -2341,6 +2342,7 @@ static int qede_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)\n \t.dev_infos_get = qede_dev_info_get,\n \t.rx_queue_setup = qede_rx_queue_setup,\n \t.rx_queue_release = qede_rx_queue_release,\n+\t.rx_descriptor_status = qede_rx_descriptor_status,\n \t.tx_queue_setup = qede_tx_queue_setup,\n \t.tx_queue_release = qede_tx_queue_release,\n \t.dev_start = qede_dev_start,\ndiff --git a/drivers/net/qede/qede_rxtx.c b/drivers/net/qede/qede_rxtx.c\nindex 675c0a0..8a4772f 100644\n--- a/drivers/net/qede/qede_rxtx.c\n+++ b/drivers/net/qede/qede_rxtx.c\n@@ -2151,3 +2151,84 @@ static inline uint32_t qede_rx_cqe_to_tunn_pkt_type(uint16_t flags)\n {\n \treturn 0;\n }\n+\n+\n+/* this function does a fake walk through over completion queue\n+ * to calculate number of BDs used by HW.\n+ * At the end, it restores the state of completion queue.\n+ */\n+static uint16_t\n+qede_parse_fp_cqe(struct qede_rx_queue *rxq)\n+{\n+\tuint16_t hw_comp_cons, sw_comp_cons, bd_count = 0;\n+\tunion eth_rx_cqe *cqe, *orig_cqe = NULL;\n+\n+\thw_comp_cons = rte_le_to_cpu_16(*rxq->hw_cons_ptr);\n+\tsw_comp_cons = ecore_chain_get_cons_idx(&rxq->rx_comp_ring);\n+\n+\tif (hw_comp_cons == sw_comp_cons)\n+\t\treturn 0;\n+\n+\t/* Get the CQE from the completion ring */\n+\tcqe = (union eth_rx_cqe *)ecore_chain_consume(&rxq->rx_comp_ring);\n+\torig_cqe = cqe;\n+\n+\twhile (sw_comp_cons != hw_comp_cons) {\n+\t\tswitch (cqe->fast_path_regular.type) {\n+\t\tcase ETH_RX_CQE_TYPE_REGULAR:\n+\t\t\tbd_count += cqe->fast_path_regular.bd_num;\n+\t\t\tbreak;\n+\t\tcase ETH_RX_CQE_TYPE_TPA_END:\n+\t\t\tbd_count += cqe->fast_path_tpa_end.num_of_bds;\n+\t\t\tbreak;\n+\t\tdefault:\n+\t\t\tbreak;\n+\t\t}\n+\n+\t\tcqe =\n+\t\t(union eth_rx_cqe *)ecore_chain_consume(&rxq->rx_comp_ring);\n+\t\tsw_comp_cons = ecore_chain_get_cons_idx(&rxq->rx_comp_ring);\n+\t}\n+\n+\t/* revert comp_ring to original state */\n+\tecore_chain_set_cons(&rxq->rx_comp_ring, sw_comp_cons, orig_cqe);\n+\n+\treturn bd_count;\n+}\n+\n+int\n+qede_rx_descriptor_status(void *p_rxq, uint16_t offset)\n+{\n+\tuint16_t hw_bd_cons, sw_bd_cons, sw_bd_prod;\n+\tuint16_t produced, consumed;\n+\tstruct qede_rx_queue *rxq = p_rxq;\n+\n+\tif (offset > rxq->nb_rx_desc)\n+\t\treturn -EINVAL;\n+\n+\tsw_bd_cons = ecore_chain_get_cons_idx(&rxq->rx_bd_ring);\n+\tsw_bd_prod = ecore_chain_get_prod_idx(&rxq->rx_bd_ring);\n+\n+\t/* find BDs used by HW from completion queue elements */\n+\thw_bd_cons = sw_bd_cons + qede_parse_fp_cqe(rxq);\n+\n+\tif (hw_bd_cons < sw_bd_cons)\n+\t\t/* wraparound case */\n+\t\tconsumed = (0xffff - sw_bd_cons) + hw_bd_cons;\n+\telse\n+\t\tconsumed = hw_bd_cons - sw_bd_cons;\n+\n+\tif (offset <= consumed)\n+\t\treturn RTE_ETH_RX_DESC_DONE;\n+\n+\tif (sw_bd_prod < sw_bd_cons)\n+\t\t/* wraparound case */\n+\t\tproduced = (0xffff - sw_bd_cons) + sw_bd_prod;\n+\telse\n+\t\tproduced = sw_bd_prod - sw_bd_cons;\n+\n+\tif (offset <= produced)\n+\t\treturn RTE_ETH_RX_DESC_AVAIL;\n+\n+\treturn RTE_ETH_RX_DESC_UNAVAIL;\n+}\ndiff --git a/drivers/net/qede/qede_rxtx.h b/drivers/net/qede/qede_rxtx.h\nindex 8bd8d1c..d3a41e9 100644\n--- a/drivers/net/qede/qede_rxtx.h\n+++ b/drivers/net/qede/qede_rxtx.h\n@@ -276,6 +276,8 @@ uint16_t qede_rxtx_pkts_dummy(void *p_rxq,\n void qede_stop_queues(struct rte_eth_dev *eth_dev);\n int qede_calc_rx_buf_size(struct rte_eth_dev *dev, uint16_t mbufsz,\n \t\t\t  uint16_t max_frame_size);\n+int\n+qede_rx_descriptor_status(void *rxq, uint16_t offset);\n \n /* Fastpath resource alloc/dealloc helpers */\n int qede_alloc_fp_resc(struct qede_dev *qdev);\n",
    "prefixes": [
        "15/17"
    ]
}