From patchwork Wed Jun 7 01:57:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Chaoyong He X-Patchwork-Id: 128244 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id A512D42C45; Wed, 7 Jun 2023 03:58:56 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E3E8242D70; Wed, 7 Jun 2023 03:58:12 +0200 (CEST) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2090.outbound.protection.outlook.com [40.107.220.90]) by mails.dpdk.org (Postfix) with ESMTP id 2604642D51 for ; Wed, 7 Jun 2023 03:58:12 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Xx+325A8pnTvqxsmTI8U8ARBfBRBuiLMxDt7L5cxTl81TAiAbxUM8d4I2wyduagW+/V7xfIjV49Gji2aCM6DHd7yHKTgmlAn5TZeEXtvrWFF4irnZ6H5Wwc0wUyq0ZdsP3gnwhLqwvoBfMA3pc5KjrZxMDL0/bXDRESYiTG93IqimytzHuYHwM4r5sc9KrZyoWHz92KX9T/AVJz76ZLO0w4BcnlD0GloW7Qd9w5JXJ+JRqwri21fX3YTXahI3yzaiUDYwloogDfbAVD1Jbq9VmRK6s1V+s+hIXTcjzMIlOw4Zyhicr+eIgbMe7oYwuCTg+1ufmtZt2R4TJnMJMfVyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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; bh=5zvTqVe3jw65IrGlPlYlwuyX0pDmsbkHcZlW8JJ9N2g=; b=KhBHJNPq2dX0z5cWajm7gAifvvIIRVvOIZATpZfKLN4WESwcqHhtou0SJmDO0o0h2cZx9kshhUHIryBWEY5r/KqTxs12v4b+N6BIr4ngfeuiaXbFqIYgSSeNW2WFOYHqi9skfnG7pAiHyqZLU/51oi0M20YFRKkohgPYRvm5xLWMwp2hS1q3k3HOOOKrVRLtOOPNS066kuoupTe7jn9eipJIAz/7LzdIOYDdS/tgW+Lt4AXW83l7UI9LACnZoEIva8O3dsQ8HAHfL3a5H0pb6tKWJywhFJCOMmZLHYQVVWLxHqoqIQGG9aFQiDx1NgDMDqhDdvYwCiDaiX2uB4UCSQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5zvTqVe3jw65IrGlPlYlwuyX0pDmsbkHcZlW8JJ9N2g=; b=MVDGLypLtlPg4/9/c+zpr9y+5z5YCudRT7Fa1j+wERUBdXR8fUAzr4pTet2zJI0Uf3sHVozS3NpQQP8OHh0nq8qNf7BfXh8yE4rWnCcF69PYi0osOw3v4xfGZ5Ln9Uwzy55EcVSuREAJhcaHyamcKvHjPx5CB0OAzXmz2b/TBGo= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by PH7PR13MB5453.namprd13.prod.outlook.com (2603:10b6:510:138::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.33; Wed, 7 Jun 2023 01:58:10 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::d2cb:a650:e1ce:2174]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::d2cb:a650:e1ce:2174%3]) with mapi id 15.20.6455.030; Wed, 7 Jun 2023 01:58:10 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, niklas.soderlund@corigine.com, Chaoyong He Subject: [PATCH 09/10] net/nfp: add the xmit function of NFDk for PF representor Date: Wed, 7 Jun 2023 09:57:08 +0800 Message-Id: <20230607015709.336420-10-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230607015709.336420-1-chaoyong.he@corigine.com> References: <20230607015709.336420-1-chaoyong.he@corigine.com> X-ClientProxiedBy: SG2PR02CA0131.apcprd02.prod.outlook.com (2603:1096:4:188::6) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|PH7PR13MB5453:EE_ X-MS-Office365-Filtering-Correlation-Id: a72911dc-7920-4e8c-a390-08db66faa508 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Xdq7UjxnttjsaPcr9b2OLYcNQu63pAsbwLiYvY7Y4aggD72SAoDiMswneaMZa+UK6af27D6/LNHsoi7SumVpd+wTgPpgKPYdPt5WKA7dT1dX4zoibJs5i4tvs2s27df3KUt6RYs73OL5uLxjBuE+GjTWEpgVK1NwLTAeeqGkJZyHqYLCiM7cpnGVGRBhiD6feojNdAxxNSvW6iHMJlqNlJ/MgQuPaw9pONYJR+55ZbNwv6rB7rXNKCfTxd9AOVdyPiYQTy4TAFkqMHOQ12V7XhLrSD52fF6bBBAKfLrBt2V4jg77GLj1hRd/IoDJyzUrHI+ZS/5MGwVzrSgGCyfaoaJIszfG3xppRn3qV63T2AURrXkZPNeTFF7GFa8XS6r4cv2ID4mfgTDOu/6M+szDTRSZ/kOxQZEk8A+UQdX541l6eBkHFlelkQlqFcD8EbztCSzDvdXub11iBARFyPipkxXLdnCnndhl7QuPqJMi57WKWOObQNS9S+Y071Zk7jxfy+povWC7wdEsGbnEs9EXBbLvgO0Za0N74TXVEnb2G0lvml0fCnkPLMqrFOXwuSn0kqiwqLZ2fb4LBO9r6YmVZUmP/if9wIVLqFmWKmLhjmqQe69XE+dLyf1Wjss7vYdN X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(346002)(396003)(376002)(136003)(366004)(39840400004)(451199021)(107886003)(1076003)(6506007)(26005)(6512007)(36756003)(66574015)(83380400001)(38350700002)(86362001)(38100700002)(186003)(2616005)(8676002)(4326008)(41300700001)(44832011)(6916009)(478600001)(66946007)(66476007)(2906002)(316002)(8936002)(5660300002)(6486002)(52116002)(66556008); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?0lcwI6d17Om3iK7dciM6BkWEq7b6?= =?utf-8?q?+z+e4UTTmQPey4EM7yucZOQbm6ALWiRofNcLMMbPs72FSy9k+3Eg/ZnSf2Lk0i1vz?= =?utf-8?q?6pMNIivchdBs7ti4VnSKY1LnZUV+K+RqfhfivgtZkVx70LGJ4QSEmBGVixHZSkUZS?= =?utf-8?q?TbMHX1B9K4+WKe0krAkqZjccA6eM6MomPJEu34fpPVS4HrEwSrvdu9Y7YzNDAAUAM?= =?utf-8?q?zHbyH0jg35bt1Tm17bLA9C2gN90cMN+zdAzgT5JNda4c/z9vhj/ASUENWHGboQoES?= =?utf-8?q?FWBrEVFKwMyy9nVsAZwsojmXbaqwQ0/P34NoVPf0mJGbyCbrjV50kArPfswuH07s8?= =?utf-8?q?jJuCA90q9Ui7MTlEvO/OrORihZy2RLFhkeSQbdUy5za3nVTZrjT1TzeUbcPJB6hTG?= =?utf-8?q?Hi2vq0EYurb2HqtUaWp2H8IvL4JD9R1dY7o2zRZ5ShBRTdDVJywoWSbzw4Gy0fkob?= =?utf-8?q?4Xoba0pv6Da8iCBHEmC4ErA+4D4FCJU/t+kbkSldJJ7rETyqyDK76lMeKra6HA28S?= =?utf-8?q?Yy1Q2qgv8ntABWJ77t/pifPti2PWzJiCNgma1zo9iD/DwaWXOvvuR8/+ILS24dU3v?= =?utf-8?q?yh8OuEBDOm920rTIEUI2i0jrwp3Amb+lIidZPRCYJGUhjhc2Mm2M9HlZtHDD+n2c4?= =?utf-8?q?+A4yAeFpTE3VsrOK6W3VQA4AhVYt3Dj30ot6h25HbYbqRH3TutEe9hopmWRK0p3Q5?= =?utf-8?q?VRLsHUZVPV1lAIZrkxN57AdHNvzBnx+xkdIYSA6hdBMn1iRbx481uVYfJl3aTIx3d?= =?utf-8?q?KV7A+hK9yiSKcxDz1LNp8MUOoWRp9AdH/0wYDYb7tNGp5D4mE+/KHsxRWiq0ct1I7?= =?utf-8?q?rkpteITeKWSF6cKx9Y5lLmUIzIaYHV/aDzbuL2MFw4t4hP7TcXwlvizbAOc8VJvOd?= =?utf-8?q?4ZxvJg19Vt/uW127QQS9Vwq9KjJBy35gaRt5bdccoQQOOsqjkFJhPFmrFVgzUh3vG?= =?utf-8?q?IEDZmHXW7awg1YGvsC9cSRuRriaG+3SQq2+PhOO5VitgMADlVw9Uv5a0oICGtS9HR?= =?utf-8?q?9UQWSzucTqi6ixN7okZ9HLXk9BVaROYZC997d4Y0nTGJoVQSZGreejr6Th7TQseOe?= =?utf-8?q?EZf9jZvKj+qWxUDZJNjVukMdyyJuXDWMeHBbm3HdQ/B5/t7xhUDD995WVOTkiVdN4?= =?utf-8?q?8Yr0jPYxeBnT16kA1mzCuh3zN3AHkAe8h3FrKpg12VnKZwAEsbW4EA0TYpeMg5xOx?= =?utf-8?q?IBOITk7oYxp32OTR4XW0+UgR/nKS4VWaF2c3AJGw7RoguWk1RsA6Hbr7AxGe/3JTn?= =?utf-8?q?bXeiAXHHhukvUMwsPJdUxhWgaGiIQU0yS/9kxxz1hNUokYYQo0cAe3emM2Q1ifRqi?= =?utf-8?q?OiCLErIpQLyq4guQumBA12zACKi8/juvvoAHxqK/Fv31cQwtuHRna8eM20DvG1afq?= =?utf-8?q?LF7t2aNExDBcUoVevbDSjejvLsObDFngECnESRLfajZcRSAXVu0KPR7LQ0ifrvpBD?= =?utf-8?q?ASODBUz7wfk+aFwjInx58JbrZpuSRYOJaZCKFim9rfaIklNKfCrxSxKbKzmGMtaVK?= =?utf-8?q?PSg/zFRTVBmTqI5mBrDprWREM0nvdUEnTw=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: a72911dc-7920-4e8c-a390-08db66faa508 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jun 2023 01:58:10.3801 (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: o4RGmXPTVYGPnY9gq7rSE09TnhCIKzBCE6Zdbu5Q/eWUGR3lvqdhRyYR6rrJOad4XnPBP/rH9POSg96ftf+ZG9kskyVJ5T4YATF9/8phHFs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR13MB5453 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The only different logic between the NFDk xmit function of PF representor and PF is if the logic about metadata exists. Refactor the NFDk xmit function and use a parameter to distinguish them. Signed-off-by: Chaoyong He Reviewed-by: Niklas Söderlund --- drivers/net/nfp/flower/nfp_flower.c | 15 ++++++++++++++- drivers/net/nfp/nfdk/nfp_nfdk.h | 4 ++++ drivers/net/nfp/nfdk/nfp_nfdk_dp.c | 17 +++++++++++++++-- 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/drivers/net/nfp/flower/nfp_flower.c b/drivers/net/nfp/flower/nfp_flower.c index 3bc863b9f1..5b452da6eb 100644 --- a/drivers/net/nfp/flower/nfp_flower.c +++ b/drivers/net/nfp/flower/nfp_flower.c @@ -493,14 +493,27 @@ nfp_flower_pf_nfd3_xmit_pkts(void *tx_queue, return nfp_net_nfd3_xmit_pkts_common(tx_queue, tx_pkts, nb_pkts, true); } +static uint16_t +nfp_flower_pf_nfdk_xmit_pkts(void *tx_queue, + struct rte_mbuf **tx_pkts, + uint16_t nb_pkts) +{ + return nfp_net_nfdk_xmit_pkts_common(tx_queue, tx_pkts, nb_pkts, true); +} + static void nfp_flower_pf_xmit_pkts_register(struct nfp_app_fw_flower *app_fw_flower) { + struct nfp_net_hw *hw; struct nfp_flower_nfd_func *nfd_func; + hw = app_fw_flower->pf_hw; nfd_func = &app_fw_flower->nfd_func; - nfd_func->pf_xmit_t = nfp_flower_pf_nfd3_xmit_pkts; + if (hw->ver.extend == NFP_NET_CFG_VERSION_DP_NFD3) + nfd_func->pf_xmit_t = nfp_flower_pf_nfd3_xmit_pkts; + else + nfd_func->pf_xmit_t = nfp_flower_pf_nfdk_xmit_pkts; } uint16_t diff --git a/drivers/net/nfp/nfdk/nfp_nfdk.h b/drivers/net/nfp/nfdk/nfp_nfdk.h index 898454102d..66f020efb0 100644 --- a/drivers/net/nfp/nfdk/nfp_nfdk.h +++ b/drivers/net/nfp/nfdk/nfp_nfdk.h @@ -229,6 +229,10 @@ nfp_net_nfdk_tx_tso(struct nfp_net_txq *txq, uint32_t nfp_flower_nfdk_pkt_add_metadata(struct rte_mbuf *mbuf, uint32_t port_id); +uint16_t nfp_net_nfdk_xmit_pkts_common(void *tx_queue, + struct rte_mbuf **tx_pkts, + uint16_t nb_pkts, + bool repr_flag); uint16_t nfp_net_nfdk_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts); diff --git a/drivers/net/nfp/nfdk/nfp_nfdk_dp.c b/drivers/net/nfp/nfdk/nfp_nfdk_dp.c index dbb15581c4..f66802211f 100644 --- a/drivers/net/nfp/nfdk/nfp_nfdk_dp.c +++ b/drivers/net/nfp/nfdk/nfp_nfdk_dp.c @@ -165,12 +165,20 @@ uint16_t nfp_net_nfdk_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) +{ + return nfp_net_nfdk_xmit_pkts_common(tx_queue, tx_pkts, nb_pkts, false); +} + +uint16_t +nfp_net_nfdk_xmit_pkts_common(void *tx_queue, + struct rte_mbuf **tx_pkts, + uint16_t nb_pkts, + bool repr_flag) { uint32_t buf_idx; uint64_t dma_addr; uint32_t free_descs; uint32_t npkts = 0; - uint64_t metadata = 0; struct rte_mbuf *pkt; struct nfp_net_hw *hw; struct rte_mbuf **lmbuf; @@ -203,6 +211,7 @@ nfp_net_nfdk_xmit_pkts(void *tx_queue, uint32_t tmp_dlen; uint32_t dlen_type; uint32_t used_descs; + uint64_t metadata = 0; pkt = *(tx_pkts + npkts); nop_descs = nfp_net_nfdk_tx_maybe_close_block(txq, pkt); @@ -219,7 +228,11 @@ nfp_net_nfdk_xmit_pkts(void *tx_queue, RTE_MBUF_PREFETCH_TO_FREE(*lmbuf); temp_pkt = pkt; - nfp_net_nfdk_set_meta_data(pkt, txq, &metadata); + + if (repr_flag) + metadata = NFDK_DESC_TX_CHAIN_META; + else + nfp_net_nfdk_set_meta_data(pkt, txq, &metadata); if (unlikely(pkt->nb_segs > 1 && (hw->cap & NFP_NET_CFG_CTRL_GATHER) == 0)) {