From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50042.outbound.protection.outlook.com [40.107.5.42]) by dpdk.org (Postfix) with ESMTP id 2EFE61B293 for ; Thu, 22 Feb 2018 10:35:35 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=8WXRCsIy4M9aPeJGT9M0Ch6E+D1DOWGJ63qdyzXaztA=; b=gAQQdQXNcTAXqb8eLURn8W7TuXSs47Hi+xO0cmf8ygSimg4M9gn84wweYWW0tPgJb1g0KEHXDFmQwlmec6QxBFdjepZ6A2awnmEPgcfk5JwawNKc6AHnsLaSb+W9NrzO/7dUnoRcAgn2DZmRBdB0us7iSpMslxcTia+2Ch2v16I= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=nipun.gupta@nxp.com; Received: from b27504-OptiPlex-790.ap.freescale.net (192.88.169.1) by HE1PR0401MB2425.eurprd04.prod.outlook.com (2603:10a6:3:25::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.527.15; Thu, 22 Feb 2018 09:35:31 +0000 From: Nipun Gupta To: thomas@monjalon.net, hemant.agrawal@nxp.com, shreyansh.jain@nxp.com Cc: dev@dpdk.org, Nipun Gupta Date: Thu, 22 Feb 2018 15:04:47 +0530 Message-Id: <1519292089-13851-8-git-send-email-nipun.gupta@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1519292089-13851-1-git-send-email-nipun.gupta@nxp.com> References: <1519292089-13851-1-git-send-email-nipun.gupta@nxp.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [192.88.169.1] X-ClientProxiedBy: BM1PR0101CA0061.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:19::23) To HE1PR0401MB2425.eurprd04.prod.outlook.com (2603:10a6:3:25::22) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 309c6c1a-703e-46ed-6f5c-08d579d79ec6 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:HE1PR0401MB2425; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0401MB2425; 3:OFvmBF+t/z6zp3vBsuSPLtRZSsEH5CgUil+I+29xD1YbkFlaHYWOWGDzhhRoFnK+wyFzENaOTPNsR9eCNKGF6eAJ027nrfrqzbxuCtt9alnKy4y5pf7IpqRgTa943fPrPy4rnk65kA41o41Fk7NG0StkRx5/5dCdQJep0LxadomyhlNNg9a951vzkjlKn1P6anocSKK/zs7DXbcs9Th8Usn8TjR+XcK8AiRpVqDMNvm7eQ2HbfA5Ohu78MJo1iQ5; 25:C/XXhK7A/3svWrv7IXURkX7MWs52RBNm3BI9LPgHnktVzulm5u3q/BbrosJOaRVMzj1Dj5RQdppwnfFV2qxIaZuhoWxi9oB2majsO3zJdLuVBYWiZgNdrzYW5Ge3IYX+rbhziiJM+fAEOpoQ8Q8WdSYg1eKV5C1paApvxBa/dCqcfe+tNn5Gl1fV4AOjWz+SrtsOAfpI5qrcqtDglk11UwhbNVNiTe5vOvXYvyjfEntTrNOy5crsFK9yrazt62eSChwdDdgc4ON34J0Kt4WsEp6zb3heZlhlKbM2bRTn18+IHQtbEvsowtns0y0dLikuYM8xcJR8gYutTD0WIJwNLA==; 31:z0/pBl11xw0hunOPeeAdq0PGr59+vTVoFmPW1u0c5NxkV5AtBCSyXaidagrZjvdOpcbfZYCTHXC5wX7LMUenXayL2POwyV/X9F6BWzJptcRhvr83rHVpDGFLls8b2261FtnruSJBwMuo+9wLhT9MxzgmM8l+O8DCtgC2PTO7fumcLpTuMN1TATVYkk3AZ1egLT4sdx3an0ElD17rS1Y17lC/YcC3INp2aItGpDn+t5k= X-MS-TrafficTypeDiagnostic: HE1PR0401MB2425: X-Microsoft-Exchange-Diagnostics: 1; HE1PR0401MB2425; 20:AIby7+HkGMNYnvSdHgX4bEpQniQ0vK/iG4O/IvClZS9YSwbvLGUaWjPcF99Yb57hClR8zFMBCMoAXj5JZ5QbWyPivUic5rwci05bFvQFd63Nbv9NsxJqW2r0Hk9ueooX+xJqtzO6caT+MvpdJxYd3uGnVpmuJOC2ZxKhtYRIOFI6rKpmdb15RRS/ShhalJI3sz1uaUhE0oVo80WwL48IujZvz5vJXA6dwqVLkbnNqqWvp4n4z/5NnTb+gunCqjuLYEv6hBjPYbITsBiRo+Sc4Mb3pV32tTSyQiRWFelEGS3bBoG9gyr1PDxRnRmPsqOFxZ9Sgk525sxzz3nK5n7suatNqhuaKy6cH+VfoEyQYxIsF3IjWxLht6JOds9Vj9Ts1NqYwOJOMhl5hjcdyH9Qmfb/Of3Q9MbQMHVIuFX7KK8/ynJKrNF2JMdmKCoDWLgYj02rbAL30zXok1fiy0kxhrl894Se6HU+VaG5WBeD9E96aLY1jl5fqnY/XfiYSAdk; 4:elOdurlDYXh33YCFeZkfmn/IW+6PvL+QvA8FUsCA8Pc+TFxZH9qnzjkMn6T7KY+Uv8tMbZjF3eRZsa419/qkBrLMH0wlW6JTABzu3HGzyCk4pO8BO8RElq2tauG6eOq5YNbc1QiuTEjSXqhxiUdZJsycVIM0F8Ki12qAHdPEyVRhDWdr1kzYShO9dA/fz8DbxZxUmMk1AdzyCn64MdgqXxYzSW3zAT3f9Zbyu/MKH5dz/q3QOynEG8Z5dfJAOs4a1lSJbsDvVGbTj6gzFjWApGfRuI4UEf/IurYesOr75Q50JHmYYSJOv13d13GqNvoaEhUb474RaRobHQyQWfjNmxbB4XuXSYzm6ZdETB79+iU= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(275809806118684); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001077)(6040501)(2401047)(8121501046)(5005006)(3002001)(10201501046)(93006095)(93001095)(3231101)(944501161)(6055026)(6041288)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123562045)(6072148)(201708071742011); SRVR:HE1PR0401MB2425; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0401MB2425; X-Forefront-PRVS: 059185FE08 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(39380400002)(39860400002)(376002)(346002)(366004)(396003)(199004)(189003)(7736002)(66066001)(26005)(316002)(305945005)(16586007)(59450400001)(25786009)(4326008)(97736004)(386003)(6506007)(478600001)(50226002)(6486002)(47776003)(36756003)(105586002)(2906002)(81156014)(8936002)(6666003)(106356001)(81166006)(48376002)(86362001)(52116002)(6512007)(51416003)(53936002)(575784001)(16526019)(5660300001)(186003)(50466002)(6636002)(6116002)(8676002)(68736007)(3846002)(2950100002)(76176011); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0401MB2425; H:b27504-OptiPlex-790.ap.freescale.net; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0401MB2425; 23:F9iFZeI5z9cqvrq5AlAf58ZCIcG/KZ+p1iC1qNH?= =?us-ascii?Q?ZkYmL06FYoBDAUp0Xf0ZQYDhvawamAYstzTncwU92SE6kfufANUpgTE4eL1u?= =?us-ascii?Q?pxUMv85Uvm7hXlK2QCS85yG4a+xcKXWlD2uwPFnRfKZlKfhHV/Gsbmi8D1+l?= =?us-ascii?Q?WlaaTyQlM97lUrOfCombL/dS+Vl4QZvYltwpw7Hgrz11+HzLMyTd1P4/2IiK?= =?us-ascii?Q?pVf392D4IVevv4GCFBQol3WPT/cFJJxHeNkwcpRAof9ksc+Md0HxG0/IbBn9?= =?us-ascii?Q?foDXM29y8Dl1S8I/xMoxHFdX7tcR6X2TjtLMfjnOBd3qrKuP6/lRRyUlYgie?= =?us-ascii?Q?7bja/+jDkz0S8qOKxXgJBVf6z51kgZoDVmeEmy7r7wdtj8XqNmKY1ivuz/Pp?= =?us-ascii?Q?rvhFM8QTXg1CJFjFAgErfNfDj1JBbct3gav2CFMe6O/mNtowiveVsmPCB2Wf?= =?us-ascii?Q?gUrD9FVD12Pjlgq3oFXqc9SSolBLazQbRRg116QhY708yE8i7LSDVJKVX1dd?= =?us-ascii?Q?Ros3Jy/pR3m/KMs901YvlojvZp8mh+XNh3EXy1z1WufDWjzoxH6XJ4XoaNRQ?= =?us-ascii?Q?T7nWPR6Nl8RJROQOz3wC/htjf0ZIN26Bm9nuKEui+NPJvS6KFBQI1nJsNxO+?= =?us-ascii?Q?4pyX3ZqF5+spHs9AlRh0vkw9SyoesdOUtYRylhvLNvQC/HGchTSisCVjPoCR?= =?us-ascii?Q?MJrT/7KkL+diOgr2MTnTt/upwys4Bk/flgvbTpg5QMpXJRNCOzJQ4DHk+Qi6?= =?us-ascii?Q?GgDc/UyeSXe4Zj9GT/Rxn4i0q98jAKFgs5CJBxxba0wmPLw2TbHiUBbhpSGS?= =?us-ascii?Q?aRdy1M3w4fnYXfZX9JzjMgzbM3XtxeUd1MSsxK39R5/D28eyvznDQob2fTZ1?= =?us-ascii?Q?TvY+wBWZsrqMSr0nDb5Fw1MmmtkjatVqqcxjDPUGUobs+hEB9bXsuOw93OOh?= =?us-ascii?Q?UFfgzYB2ov+DLRNGTQVTiHslRndgTPtbnPxY6FqfzEHsqc1KkgcIzVmGLd0v?= =?us-ascii?Q?16Cc9N7NY/JYPGqDCkNA8SqmMjcr1GM/a1mlw6207smA4mgC3RGFelCZVoQY?= =?us-ascii?Q?bqjYp5tk2x9vt9V+gTgELkx3it3HjzNopmJFvJ+B7odwFaJcJITCNqujfxMF?= =?us-ascii?Q?fshR9/vc9YMI0yK+j6pqKe//2bRBT/I5K?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0401MB2425; 6:fMpFeMzwmzWhTpYGfqrb9QVBYcXsN9sCgsPWfuCBktmWbyXbMlMYLdptrowVoVuLQRnrTzs92uy30ICuGEf5EX/RrFLlbXWd5gKgBBHKTGu3LbVBGsX6/wzjQHPG2+KZIRxmuhvEfLNmWihTo8BsFitSAkKxAB+Wbq11ZmtOzVI3VD516Iv5Expj0YN4irjLgooPjmEmJuG/+NCLdIts2oDqpbe5gPo+MkR148WB7wSzydk4rR9Op6fgUqDyqmQoiUa5Z60lEnM0wGK/D2VHrdCTM5TIUl9LUR6AQHMqDzxijSfwn7NPjUvbH8cst5Ptv/vKNkdvovMgJVaU9B/obi6SwCf+XCNzLHTp0+OHpOU=; 5:YtJfELnWJmaPLQ2h/xOI3CzgBbvw4hyOdmGecKkVePic5jk+aJAesfE7fiwftdYm5B03sxLRSyG9t/iSHA7aVynGgEHZa+MJlSBcWaheQYrZPhchM+vLF5fuiN5m8mvMSYNX4gqdN8g/YHqCkWlBhU/nmlEfX1KSKn81STOWZAQ=; 24:L5DUO4V0PlVgNhX9hjcTEqh3Jprr1bvuvwjkXmyVAKrH13wJGaDMNhFWtPX37shxNIyZQqg0ufbseDAVDJYlG4f2G/8WZyu5r8yXdu753GU=; 7:LWtJ8hCGDLweKcORJHCaqIyfJ/PhPJhJsLwuU2gfqvDnAy/4Ve78tNQQzMtbul1Vfw8gbxJX4tUJp7H9n6wjN8OGNLrdpYbBMfAeNTxJdBacMIJLIzzINbigwwixTdL1XktBKrR4oWmgoFvajkpTii00eK+r2e9CUBLNN7ekCtj7K+6hzZ7+FmO5l2L0HalElTZGwKJiQbxsgOtv88fV/FS3F1a07yz8RZDkZEaGIQYeE4mfEHDGL1xcwFQVtye2 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Feb 2018 09:35:31.9183 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 309c6c1a-703e-46ed-6f5c-08d579d79ec6 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0401MB2425 Subject: [dpdk-dev] [PATCH 7/9] raw/dpaa2_cmdif: support enqueue dequeue operations X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Feb 2018 09:35:35 -0000 Signed-off-by: Nipun Gupta --- doc/api/doxy-api-index.md | 1 + doc/api/doxy-api.conf | 1 + drivers/raw/dpaa2_cmdif/Makefile | 2 + drivers/raw/dpaa2_cmdif/dpaa2_cmdif.c | 146 ++++++++++++++++++++++++++ drivers/raw/dpaa2_cmdif/rte_pmd_dpaa2_cmdif.h | 35 ++++++ 5 files changed, 185 insertions(+) create mode 100644 drivers/raw/dpaa2_cmdif/rte_pmd_dpaa2_cmdif.h diff --git a/doc/api/doxy-api-index.md b/doc/api/doxy-api-index.md index 49fcec4..b9f28be 100644 --- a/doc/api/doxy-api-index.md +++ b/doc/api/doxy-api-index.md @@ -64,6 +64,7 @@ The public API headers are grouped by topics: [bnxt] (@ref rte_pmd_bnxt.h), [dpaa] (@ref rte_pmd_dpaa.h), [dpaa2] (@ref rte_dpaa2_mempool.h), + [dpaa2_cmdif] (@ref rte_pmd_dpaa2_cmdif.h), [crypto_scheduler] (@ref rte_cryptodev_scheduler.h) - **memory**: diff --git a/doc/api/doxy-api.conf b/doc/api/doxy-api.conf index 59cb580..88088d6 100644 --- a/doc/api/doxy-api.conf +++ b/doc/api/doxy-api.conf @@ -38,6 +38,7 @@ INPUT = doc/api/doxy-api-index.md \ drivers/net/i40e \ drivers/net/ixgbe \ drivers/net/softnic \ + drivers/raw/dpaa2_cmdif \ lib/librte_eal/common/include \ lib/librte_eal/common/include/generic \ lib/librte_acl \ diff --git a/drivers/raw/dpaa2_cmdif/Makefile b/drivers/raw/dpaa2_cmdif/Makefile index 1d91d0c..c570827 100644 --- a/drivers/raw/dpaa2_cmdif/Makefile +++ b/drivers/raw/dpaa2_cmdif/Makefile @@ -30,4 +30,6 @@ LIBABIVER := 1 # SRCS-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_CMDIF) += dpaa2_cmdif.c +SYMLINK-$(CONFIG_RTE_LIBRTE_PMD_DPAA2_CMDIF)-include += rte_pmd_dpaa2_cmdif.h + include $(RTE_SDK)/mk/rte.lib.mk diff --git a/drivers/raw/dpaa2_cmdif/dpaa2_cmdif.c b/drivers/raw/dpaa2_cmdif/dpaa2_cmdif.c index 9044489..a166b91 100644 --- a/drivers/raw/dpaa2_cmdif/dpaa2_cmdif.c +++ b/drivers/raw/dpaa2_cmdif/dpaa2_cmdif.c @@ -53,8 +53,154 @@ return 0; } +static int +dpaa2_cmdif_enqueue_bufs(struct rte_rawdev *dev, + struct rte_rawdev_buf **buffers, + unsigned int count, + rte_rawdev_obj_t context) +{ + struct dpaa2_dpci_dev *cidev = dev->dev_private; + struct rte_dpaa2_cmdif_context *cmdif_send_cnxt; + struct dpaa2_queue *txq; + struct qbman_fd fd; + struct qbman_eq_desc eqdesc; + struct qbman_swp *swp; + int ret; + + DPAA2_CMDIF_FUNC_TRACE(); + + RTE_SET_USED(count); + + if (unlikely(!DPAA2_PER_LCORE_DPIO)) { + ret = dpaa2_affine_qbman_swp(); + if (ret) { + DPAA2_CMDIF_ERR("Failure in affining portal\n"); + return 0; + } + } + swp = DPAA2_PER_LCORE_PORTAL; + + cmdif_send_cnxt = (struct rte_dpaa2_cmdif_context *)(context); + txq = &(cidev->tx_queue[cmdif_send_cnxt->priority]); + + /* Prepare enqueue descriptor */ + qbman_eq_desc_clear(&eqdesc); + qbman_eq_desc_set_fq(&eqdesc, txq->fqid); + qbman_eq_desc_set_no_orp(&eqdesc, 0); + qbman_eq_desc_set_response(&eqdesc, 0, 0); + + /* Set some of the FD parameters to i. + * For performance reasons do not memset + */ + fd.simple.bpid_offset = 0; + fd.simple.ctrl = 0; + + DPAA2_SET_FD_ADDR(&fd, buffers[0]->buf_addr); + DPAA2_SET_FD_LEN(&fd, cmdif_send_cnxt->size); + DPAA2_SET_FD_FRC(&fd, cmdif_send_cnxt->frc); + DPAA2_SET_FD_FLC(&fd, cmdif_send_cnxt->flc); + + /* Enqueue a packet to the QBMAN */ + do { + ret = qbman_swp_enqueue_multiple(swp, &eqdesc, &fd, NULL, 1); + if (ret < 0 && ret != -EBUSY) + DPAA2_CMDIF_ERR("Transmit failure with err: %d\n", ret); + } while (ret == -EBUSY); + + DPAA2_CMDIF_DEBUG("Successfully transmitted a packet\n"); + + return 0; +} + +static int +dpaa2_cmdif_dequeue_bufs(struct rte_rawdev *dev, + struct rte_rawdev_buf **buffers, + unsigned int count, + rte_rawdev_obj_t context) +{ + struct dpaa2_dpci_dev *cidev = dev->dev_private; + struct rte_dpaa2_cmdif_context *cmdif_rcv_cnxt; + struct dpaa2_queue *rxq; + struct qbman_swp *swp; + struct qbman_result *dq_storage; + const struct qbman_fd *fd; + struct qbman_pull_desc pulldesc; + uint8_t status; + int ret; + + DPAA2_CMDIF_FUNC_TRACE(); + + RTE_SET_USED(count); + + if (unlikely(!DPAA2_PER_LCORE_DPIO)) { + ret = dpaa2_affine_qbman_swp(); + if (ret) { + DPAA2_CMDIF_ERR("Failure in affining portal\n"); + return 0; + } + } + swp = DPAA2_PER_LCORE_PORTAL; + + cmdif_rcv_cnxt = (struct rte_dpaa2_cmdif_context *)(context); + rxq = &(cidev->rx_queue[cmdif_rcv_cnxt->priority]); + dq_storage = rxq->q_storage->dq_storage[0]; + + qbman_pull_desc_clear(&pulldesc); + qbman_pull_desc_set_fq(&pulldesc, rxq->fqid); + qbman_pull_desc_set_numframes(&pulldesc, 1); + qbman_pull_desc_set_storage(&pulldesc, dq_storage, + (dma_addr_t)dq_storage, 1); + + while (1) { + if (qbman_swp_pull(swp, &pulldesc)) { + DPAA2_CMDIF_ERR("VDQ cmd not issued. QBMAN is busy\n"); + /* Portal was busy, try again */ + continue; + } + break; + } + + /* + * Loop until the dq_storage is updated with + * new token by QBMAN + */ + while (!qbman_result_has_new_result(swp, dq_storage)) + ; + + /* + * Check whether Last Pull command is Expired and + * setting Condition for Loop termination + */ + if (qbman_result_DQ_is_pull_complete(dq_storage)) { + /* Check for valid frame. */ + status = (uint8_t)qbman_result_DQ_flags(dq_storage); + if (unlikely((status & QBMAN_DQ_STAT_VALIDFRAME) == 0)) { + DPAA2_CMDIF_DEBUG("No frame is delivered\n"); + return 0; + } + } + + /* + * Can avoid "qbman_result_is_DQ" check as + * we are not expecting Notification on this SW-Portal + */ + fd = qbman_result_DQ_fd(dq_storage); + + DPAA2_CMDIF_DEBUG("packet received\n"); + + buffers[0]->buf_addr = (void *)(DPAA2_GET_FD_ADDR(fd) + + DPAA2_GET_FD_OFFSET(fd)); + cmdif_rcv_cnxt->size = DPAA2_GET_FD_LEN(fd); + cmdif_rcv_cnxt->flc = DPAA2_GET_FD_FLC(fd); + cmdif_rcv_cnxt->frc = DPAA2_GET_FD_FRC(fd); + + return 1; +} + static const struct rte_rawdev_ops dpaa2_cmdif_ops = { .attr_get = dpaa2_cmdif_get_attr, + .enqueue_bufs = dpaa2_cmdif_enqueue_bufs, + .dequeue_bufs = dpaa2_cmdif_dequeue_bufs, }; static int diff --git a/drivers/raw/dpaa2_cmdif/rte_pmd_dpaa2_cmdif.h b/drivers/raw/dpaa2_cmdif/rte_pmd_dpaa2_cmdif.h new file mode 100644 index 0000000..bd0a444 --- /dev/null +++ b/drivers/raw/dpaa2_cmdif/rte_pmd_dpaa2_cmdif.h @@ -0,0 +1,35 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright 2018 NXP + */ + +#ifndef __RTE_PMD_DPAA2_CMDIF_H__ +#define __RTE_PMD_DPAA2_CMDIF_H__ + +/** + * @file + * + * NXP dpaa2 AIOP CMDIF PMD specific functions. + * + */ + +#ifdef __cplusplus +extern "C" { +#endif + +/** The context required in the I/O path for DPAA2 AIOP Command Interface */ +struct rte_dpaa2_cmdif_context { + /** Size to populate in QBMAN FD */ + uint32_t size; + /** FRC to populate in QBMAN FD */ + uint32_t frc; + /** FLC to populate in QBMAN FD */ + uint64_t flc; + /** Priority of the command. This priority determines DPCI Queue*/ + uint8_t priority; +}; + +#ifdef __cplusplus +} +#endif + +#endif /* __RTE_PMD_DPAA2_CMDIF_H__ */ -- 1.9.1