From patchwork Thu Jun 23 02:26:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 113282 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 D6BABA0545; Thu, 23 Jun 2022 04:27:00 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9964A427ED; Thu, 23 Jun 2022 04:27:00 +0200 (CEST) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2122.outbound.protection.outlook.com [40.107.93.122]) by mails.dpdk.org (Postfix) with ESMTP id 1980F40DDB for ; Thu, 23 Jun 2022 04:26:56 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lCHjTccUavnTSSkoZctYSDrqTN5PkP1pSdEo39pq0NLN1FqyLmeVOnmx1yc+h01Yf3yxP1tZB6EVWoR0hKxefdvQ7Aw2wI9hCePAf/FmkCFRyJqKbxsobq3FeSIrsNxEzbleYUXGciXe2lhk4hzTpq7lbdGq183oOMhzmRqb40mGCQRc6BELwapjLGZ3A4oWbsPmA3kK9tfRmDOTTibly3f/oIiAAoQAT45ZYulOS11YKdp84iYlKU2VnQv6O1ph6ylsV3MAKc6tT9qg/i3WDOik8zdC+pOhJp52xJhaumKTabRmDTIaSTgTXgfQhp26FUD9zhkcuVkvQZQtAqGYsQ== 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=E1F0KhzKNLTITEtuMBBwGbCAeEgIHdkg/fCLINgmD14=; b=Z3yNXgpimca8EYaQdbdhgNgSam8A6exBXibpuVuHiYBRvhsoAI05XRD5D66/pliU4iqFC4OYbLaGHB8QjJ3v7aMobsNh0ZXSZVumm4G8vJYFumVCY3OvOb+2LDgCvsvnj+KfYeXqyrlZsoBGUPL1tmF142hFo5sqVBRS/ZtffzYOxvi4BIzIZTH+ezY7AOOyf9pTHOMAkOBsc/Z0/CZ1w6oh6p+Uv+wGirn67k6v7l6It9icOzAVHb3wZTcexDc1X3LdRSSG6MXowK5CMxji4jPX5l4AZddeIPnswWeM0DIwEaNTKAUBIRnh8KN+MH4w/petQGNRCnQf6CDs2/G8GA== 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=E1F0KhzKNLTITEtuMBBwGbCAeEgIHdkg/fCLINgmD14=; b=R9mSMgr0Vdz09WIl9kDrJcDgziTATmibXaUeiS5ewWA76e1NDJnKWvA0/BLTn86Wg2Vzo+nts/mESFxRWaoo3XS4NlEM++gqD3pDjrlIybmc8NmzIN9TNjYf0hgqj00y7HaDTZ7osd5xvIT+47votXbxu3B1bDp7xMsUWrjQ5qg= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by SN6PR13MB2272.namprd13.prod.outlook.com (2603:10b6:805:5e::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Thu, 23 Jun 2022 02:26:54 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35%7]) with mapi id 15.20.5373.015; Thu, 23 Jun 2022 02:26:54 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Chaoyong He Subject: [PATCH v4 01/13] net/nfp: change the coding style Date: Thu, 23 Jun 2022 04:26:03 +0200 Message-Id: <20220623022615.3628093-2-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220623022615.3628093-1-jin.liu@corigine.com> References: <20220617093444.2004000-1-jin.liu@corigine.com> <20220623022615.3628093-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P265CA0222.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:33a::10) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 70c229fa-ebd6-4a7e-0fb2-08da54bfd65f X-MS-TrafficTypeDiagnostic: SN6PR13MB2272:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: c/W9HilCx3yqr1ZySY1g4ndqKqm7QC9d1l1eB3XBXahch2CTcRY15kPuDNB9FK7Qs4i90bC6pJSD6363SSg5phUrL6/fhax5RIPqCZqQ2XsEC4l5xDhaa5joJj5PUz4rSCxERfrkTq9jmygrVNGHEYOGIx3WX5eFYRhGzmBP5nNos3ZNNRgv+Be2ubVabHdBo02LanswNwARLuq+A8vpz3EKCoceBgbUnt5yoqjVI2H8grFyoTrla/JaoGDxW0WMvWAursq62CcKwVjkaIQhUKa6SMmg32AwtVnvqifGBev9n9IqPaPtm3NMrNdOIcMWZ8v61GfFs9GcRmHRUfoIzJVa6JNJ+fO5wqNULdUpoRdk+ruA0D1KR0a8ErqV+S9+wqv+dhGek4idV54ryuaF3Q82IqCrIEUQk3bTTTqVF6cHzxtoScSFp7IsJ7tg5olqKtfCyiy5Fcg0dsNEAVrkaNjWbe0RV3r9NkgI3i+2NF16dY/Gp87d68Dq84WEmP5AjRpbh5KQ2DNLDFsibn5HrruKnfG4SnSnf/CftSR9IdyWPJ6TNaFcmjmJS6t1eSeP0Bx6Qkcfqxa604b4hkcZfYpKuUvxRwyyBck9aA/Ebw9mdNoEIIWgOFIYcGYMc6CYDmJi8rbx2TfrGPXN0U/YhRk2wrvRBerh0B3NfpYj4zXMO0CWel8YD3d64zCyCASI48rNw+OQeB/3/Qy9tuH6cA95KMe7Bf2H1a+98NWGKDbc2i4cQrAMe9MBP5vaJrDytWmU9/N/w47e1zEznohexQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(136003)(39830400003)(346002)(366004)(376002)(1076003)(66574015)(44832011)(6666004)(38100700002)(38350700002)(86362001)(83380400001)(186003)(52116002)(41300700001)(30864003)(316002)(5660300002)(478600001)(2906002)(26005)(4326008)(54906003)(66946007)(6486002)(6512007)(107886003)(36756003)(2616005)(6916009)(66476007)(66556008)(8936002)(8676002)(6506007); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?44oA1ff86KTZcZIc9htEGvZT7rIp?= =?utf-8?q?nui4MbqjwEhGd4lch6yvj7jkMiGd9IzOsbQsneDcqQCoNPO7GXeJ4T5lyoKToCt06?= =?utf-8?q?6otaklj+2tCnTOMumnDHNSYfFnrBzWzLhnFtw73SxR+dCXkg4r2fdEQSA5OunHd6n?= =?utf-8?q?KCdY1degS0fca45JPPagDqljRpSvx8oZ0t+kPiMA33S7IRKY28IQOBLP/wqMqf/Hb?= =?utf-8?q?SulbeRaPsOZA6k30jmtpsaDZ57NasPUyrd48MGYYA+SsOHxMKMy8IakPjob5UYW/X?= =?utf-8?q?0d13oYH+UqD8tt/5p10dRBTeymOXk6XPnArBlYxMtT19dGzmGtBH8WBHLiH1evn/+?= =?utf-8?q?NGZBw/T40GkU65Q0Ikh8P7fNhELqo1RjEK149HFSiguxGgYxKkiMoeCIUBWNa8g2M?= =?utf-8?q?lkcn8wk65afk5egUPKoYBGrEcgGY/nqZBdWMTadPTkNncGZ0UBVGqvRKPERpLdQkc?= =?utf-8?q?gntmYvMQ3CdCgKHvzHVLE3MGGG9PuSCMNQBD7O7w8YlDShrr1lWq0zpb5MMCtC5JO?= =?utf-8?q?mTISpMAdxUZHFngx3GPsJG9Zyuo1xXYCM2dYyM+b0XVHA4cqiT5uRDXKgn1pUEAN2?= =?utf-8?q?SOHgEsPmMKpgcxEjK7imvs1MprrdlDNRiacBwCBWBIyYbpz6RAWxxHi1ejRJ1L5vn?= =?utf-8?q?5LpvEVmz906FbVH8RU6ol+7urgigt/49NuTMy+Z2v9KE3gP2nxtAVBQIOj4Ompi6P?= =?utf-8?q?d0YTuoq3l2BMG6u0m0IGKUL1iyZ3HcE8WkQNYvm8w55MDi6v2sd/G8JTljFaTVzL1?= =?utf-8?q?83bCZ7psbRfJs0KPbdDfWcBEOJb5YkdJ5XBogBm43KuxYoPn4CRaefOGEav91aup6?= =?utf-8?q?HN7cdEieXEUFHmjMhN9O86aFCfYX+x/omKAmlNUyLcwKnfev8o4Y7GxrZCaQ7qhZB?= =?utf-8?q?0E+n4seLQCgFeZewKL67Tva/ZfbdvcTDJUebcFi968E8+B23SdAps67JNHijDyS7z?= =?utf-8?q?L4N0QTHReYYZe/L07FM7sqca6XDjUB+RGy29nhqHLhJIWT5AyuYhndkXCxeZwxIxF?= =?utf-8?q?2o9drTgAvUV/QhlEEFlbyvNt+TLF1K0j7ojYKBHjlIuNE36142Lt3MpZrylA2t/J/?= =?utf-8?q?9Zm5ltWGao26X+fT3IiTALALEUE+gwJcDwK2OMHfAGS0YscKf5k/rCKsLhFjcVguA?= =?utf-8?q?5S6EUTgRd5Wb1bHAuREUUmOxrjIL2opqETIVi/wYSOmwZlFMNFEL6r8qvFBnxdTLP?= =?utf-8?q?SbfYTH+rGEu0/3fsYDMC6x/vamHmCvWuSMZUkbyoBbnkGnppIYWGDunt0cuBO/UG5?= =?utf-8?q?BaBQ/yAWh0HATHLo/YLHVggb979UcZmovs1YcxYHyJok6bqC4MFo6Y1JGtACXyi+u?= =?utf-8?q?TnvNvahP+ZQSVB8oRppWiAiiPwLQCXFYOYxUMoGwUP8uOnb/vPsvcQdk1KQFmqBxB?= =?utf-8?q?M+wqGr+6GWt0fhMmU3C5Xvx6101fK91co+87ZDznSUk7Y7D0Be4QxqHJ6+ax1/rao?= =?utf-8?q?cPsi2ozoPYNqJRU5ynvHzKjzW9lB7bFbo2GXIFhShgOnSY4UsKLMQUYICTBU7LcKT?= =?utf-8?q?PE1511IyFwrf?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 70c229fa-ebd6-4a7e-0fb2-08da54bfd65f X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2022 02:26:54.2137 (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: clZevsiPHPCea1wU9EKqBkM4eVcAtPnH3PHXmhnn+nNSmulffuikFIH3zgLUQpY7qFy5auKfu2DdYW/Y2nMprA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR13MB2272 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 Change the coding style of some logics, to make it more compatible with the DPDK coding style. Signed-off-by: Chaoyong He Signed-off-by: Jin Liu Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_ethdev.c | 149 ++++++++++++++++---------------- drivers/net/nfp/nfp_ethdev_vf.c | 8 +- 2 files changed, 77 insertions(+), 80 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 9166f65da3..eb0d92a98c 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -340,8 +340,7 @@ nfp_net_close(struct rte_eth_dev *dev) /* unregister callback func from eal lib */ rte_intr_callback_unregister(pci_dev->intr_handle, - nfp_net_dev_interrupt_handler, - (void *)dev); + nfp_net_dev_interrupt_handler, (void *)dev); /* * The ixgbe PMD disables the pcie master on the @@ -388,8 +387,8 @@ nfp_net_init(struct rte_eth_dev *eth_dev) struct nfp_pf_dev *pf_dev; struct nfp_net_hw *hw; struct rte_ether_addr *tmp_ether_addr; - - uint64_t tx_bar_off = 0, rx_bar_off = 0; + uint64_t rx_bar_off = 0; + uint64_t tx_bar_off = 0; uint32_t start_q; int stride = 4; int port = 0; @@ -404,11 +403,11 @@ nfp_net_init(struct rte_eth_dev *eth_dev) /* NFP can not handle DMA addresses requiring more than 40 bits */ if (rte_mem_check_dma_mask(40)) { - RTE_LOG(ERR, PMD, "device %s can not be used:", - pci_dev->device.name); - RTE_LOG(ERR, PMD, "\trestricted dma mask to 40 bits!\n"); + RTE_LOG(ERR, PMD, + "device %s can not be used: restricted dma mask to 40 bits!\n", + pci_dev->device.name); return -ENODEV; - }; + } port = ((struct nfp_net_hw *)eth_dev->data->dev_private)->idx; if (port < 0 || port > 7) { @@ -416,14 +415,14 @@ nfp_net_init(struct rte_eth_dev *eth_dev) return -ENODEV; } - /* Use PF array of physical ports to get pointer to + /* + * Use PF array of physical ports to get pointer to * this specific port */ hw = pf_dev->ports[port]; PMD_INIT_LOG(DEBUG, "Working with physical port number: %d, " - "NFP internal port number: %d", - port, hw->nfp_idx); + "NFP internal port number: %d", port, hw->nfp_idx); eth_dev->dev_ops = &nfp_net_eth_dev_ops; eth_dev->rx_queue_count = nfp_net_rx_queue_count; @@ -456,13 +455,10 @@ nfp_net_init(struct rte_eth_dev *eth_dev) if (port == 0) { hw->ctrl_bar = pf_dev->ctrl_bar; } else { - if (!pf_dev->ctrl_bar) + if (pf_dev->ctrl_bar == NULL) return -ENODEV; - /* Use port offset in pf ctrl_bar for this - * ports control bar - */ - hw->ctrl_bar = pf_dev->ctrl_bar + - (port * NFP_PF_CSR_SLICE_SIZE); + /* Use port offset in pf ctrl_bar for this ports control bar */ + hw->ctrl_bar = pf_dev->ctrl_bar + (port * NFP_PF_CSR_SLICE_SIZE); } PMD_INIT_LOG(DEBUG, "ctrl bar: %p", hw->ctrl_bar); @@ -557,8 +553,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev) tmp_ether_addr = (struct rte_ether_addr *)&hw->mac_addr; if (!rte_is_valid_assigned_ether_addr(tmp_ether_addr)) { - PMD_INIT_LOG(INFO, "Using random mac address for port %d", - port); + PMD_INIT_LOG(INFO, "Using random mac address for port %d", port); /* Using random mac addresses for VFs */ rte_eth_random_addr(&hw->mac_addr[0]); nfp_net_write_mac(hw, (uint8_t *)&hw->mac_addr); @@ -583,8 +578,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev) if (rte_eal_process_type() == RTE_PROC_PRIMARY) { /* Registering LSC interrupt handler */ rte_intr_callback_register(pci_dev->intr_handle, - nfp_net_dev_interrupt_handler, - (void *)eth_dev); + nfp_net_dev_interrupt_handler, (void *)eth_dev); /* Telling the firmware about the LSC interrupt entry */ nn_cfg_writeb(hw, NFP_NET_CFG_LSC, NFP_NET_IRQ_LSC_IDX); /* Recording current stats counters values */ @@ -656,8 +650,10 @@ nfp_fw_upload(struct rte_pci_device *dev, struct nfp_nsp *nsp, char *card) } static int -nfp_fw_setup(struct rte_pci_device *dev, struct nfp_cpp *cpp, - struct nfp_eth_table *nfp_eth_table, struct nfp_hwinfo *hwinfo) +nfp_fw_setup(struct rte_pci_device *dev, + struct nfp_cpp *cpp, + struct nfp_eth_table *nfp_eth_table, + struct nfp_hwinfo *hwinfo) { struct nfp_nsp *nsp; const char *nfp_fw_model; @@ -675,12 +671,12 @@ nfp_fw_setup(struct rte_pci_device *dev, struct nfp_cpp *cpp, if (nfp_eth_table->count == 0 || nfp_eth_table->count > 8) { PMD_DRV_LOG(ERR, "NFP ethernet table reports wrong ports: %u", - nfp_eth_table->count); + nfp_eth_table->count); return -EIO; } PMD_DRV_LOG(INFO, "NFP ethernet port table reports %u ports", - nfp_eth_table->count); + nfp_eth_table->count); PMD_DRV_LOG(INFO, "Port speed: %u", nfp_eth_table->ports[0].speed); @@ -689,7 +685,7 @@ nfp_fw_setup(struct rte_pci_device *dev, struct nfp_cpp *cpp, nfp_eth_table->ports[0].speed / 1000); nsp = nfp_nsp_open(cpp); - if (!nsp) { + if (nsp == NULL) { PMD_DRV_LOG(ERR, "NFP error when obtaining NSP handle"); return -EIO; } @@ -701,19 +697,19 @@ nfp_fw_setup(struct rte_pci_device *dev, struct nfp_cpp *cpp, return err; } -static int nfp_init_phyports(struct nfp_pf_dev *pf_dev) +static int +nfp_init_phyports(struct nfp_pf_dev *pf_dev) { + int i; + int ret = 0; struct nfp_net_hw *hw; struct rte_eth_dev *eth_dev; - struct nfp_eth_table *nfp_eth_table = NULL; - int ret = 0; - int i; + struct nfp_eth_table *nfp_eth_table; nfp_eth_table = nfp_eth_read_ports(pf_dev->cpp); - if (!nfp_eth_table) { + if (nfp_eth_table == NULL) { PMD_INIT_LOG(ERR, "Error reading NFP ethernet table"); - ret = -EIO; - goto error; + return -EIO; } /* Loop through all physical ports on PF */ @@ -726,7 +722,7 @@ static int nfp_init_phyports(struct nfp_pf_dev *pf_dev) /* Allocate a eth_dev for this phyport */ eth_dev = rte_eth_dev_allocate(port_name); - if (!eth_dev) { + if (eth_dev == NULL) { ret = -ENODEV; goto port_cleanup; } @@ -734,8 +730,8 @@ static int nfp_init_phyports(struct nfp_pf_dev *pf_dev) /* Allocate memory for this phyport */ eth_dev->data->dev_private = rte_zmalloc_socket(port_name, sizeof(struct nfp_net_hw), - RTE_CACHE_LINE_SIZE, numa_node); - if (!eth_dev->data->dev_private) { + RTE_CACHE_LINE_SIZE, numa_node); + if (eth_dev->data->dev_private == NULL) { ret = -ENOMEM; rte_eth_dev_release_port(eth_dev); goto port_cleanup; @@ -759,7 +755,6 @@ static int nfp_init_phyports(struct nfp_pf_dev *pf_dev) * nfp_net_init */ ret = nfp_net_init(eth_dev); - if (ret) { ret = -ENODEV; goto port_cleanup; @@ -782,24 +777,25 @@ static int nfp_init_phyports(struct nfp_pf_dev *pf_dev) } eth_table_cleanup: free(nfp_eth_table); -error: + return ret; } -static int nfp_pf_init(struct rte_pci_device *pci_dev) +static int +nfp_pf_init(struct rte_pci_device *pci_dev) { - struct nfp_pf_dev *pf_dev = NULL; + int err; + int ret = 0; + int total_ports; struct nfp_cpp *cpp; + struct nfp_pf_dev *pf_dev; struct nfp_hwinfo *hwinfo; - struct nfp_rtsym_table *sym_tbl; - struct nfp_eth_table *nfp_eth_table = NULL; char name[RTE_ETH_NAME_MAX_LEN]; - int total_ports; - int ret = -ENODEV; - int err; + struct nfp_rtsym_table *sym_tbl; + struct nfp_eth_table *nfp_eth_table; - if (!pci_dev) - return ret; + if (pci_dev == NULL) + return -ENODEV; /* * When device bound to UIO, the device could be used, by mistake, @@ -813,21 +809,21 @@ static int nfp_pf_init(struct rte_pci_device *pci_dev) else cpp = nfp_cpp_from_device_name(pci_dev, 1); - if (!cpp) { + if (cpp == NULL) { PMD_INIT_LOG(ERR, "A CPP handle can not be obtained"); ret = -EIO; goto error; } hwinfo = nfp_hwinfo_read(cpp); - if (!hwinfo) { + if (hwinfo == NULL) { PMD_INIT_LOG(ERR, "Error reading hwinfo table"); ret = -EIO; goto error; } nfp_eth_table = nfp_eth_read_ports(cpp); - if (!nfp_eth_table) { + if (nfp_eth_table == NULL) { PMD_INIT_LOG(ERR, "Error reading NFP ethernet table"); ret = -EIO; goto hwinfo_cleanup; @@ -841,7 +837,7 @@ static int nfp_pf_init(struct rte_pci_device *pci_dev) /* Now the symbol table should be there */ sym_tbl = nfp_rtsym_table_read(cpp); - if (!sym_tbl) { + if (sym_tbl == NULL) { PMD_INIT_LOG(ERR, "Something is wrong with the firmware" " symbol table"); ret = -EIO; @@ -865,7 +861,7 @@ static int nfp_pf_init(struct rte_pci_device *pci_dev) /* Allocate memory for the PF "device" */ snprintf(name, sizeof(name), "nfp_pf%d", 0); pf_dev = rte_zmalloc(name, sizeof(*pf_dev), 0); - if (!pf_dev) { + if (pf_dev == NULL) { ret = -ENOMEM; goto sym_tbl_cleanup; } @@ -883,9 +879,8 @@ static int nfp_pf_init(struct rte_pci_device *pci_dev) /* Map the symbol table */ pf_dev->ctrl_bar = nfp_rtsym_map(pf_dev->sym_tbl, "_pf0_net_bar0", - pf_dev->total_phyports * 32768, - &pf_dev->ctrl_area); - if (!pf_dev->ctrl_bar) { + pf_dev->total_phyports * 32768, &pf_dev->ctrl_area); + if (pf_dev->ctrl_bar == NULL) { PMD_INIT_LOG(ERR, "nfp_rtsym_map fails for _pf0_net_ctrl_bar"); ret = -EIO; goto pf_cleanup; @@ -895,10 +890,9 @@ static int nfp_pf_init(struct rte_pci_device *pci_dev) /* configure access to tx/rx vNIC BARs */ pf_dev->hw_queues = nfp_cpp_map_area(pf_dev->cpp, 0, 0, - NFP_PCIE_QUEUE(0), - NFP_QCP_QUEUE_AREA_SZ, - &pf_dev->hwqueues_area); - if (!pf_dev->hw_queues) { + NFP_PCIE_QUEUE(0), NFP_QCP_QUEUE_AREA_SZ, + &pf_dev->hwqueues_area); + if (pf_dev->hw_queues == NULL) { PMD_INIT_LOG(ERR, "nfp_rtsym_map fails for net.qc"); ret = -EIO; goto ctrl_area_cleanup; @@ -906,7 +900,8 @@ static int nfp_pf_init(struct rte_pci_device *pci_dev) PMD_INIT_LOG(DEBUG, "tx/rx bar address: 0x%p", pf_dev->hw_queues); - /* Initialize and prep physical ports now + /* + * Initialize and prep physical ports now * This will loop through all physical ports */ ret = nfp_init_phyports(pf_dev); @@ -941,15 +936,16 @@ static int nfp_pf_init(struct rte_pci_device *pci_dev) * is no need to initialise the PF again. Only minimal work is required * here */ -static int nfp_pf_secondary_init(struct rte_pci_device *pci_dev) +static int +nfp_pf_secondary_init(struct rte_pci_device *pci_dev) { - struct nfp_cpp *cpp; - struct nfp_rtsym_table *sym_tbl; - int total_ports; int i; int err; + int total_ports; + struct nfp_cpp *cpp; + struct nfp_rtsym_table *sym_tbl; - if (!pci_dev) + if (pci_dev == NULL) return -ENODEV; /* @@ -964,7 +960,7 @@ static int nfp_pf_secondary_init(struct rte_pci_device *pci_dev) else cpp = nfp_cpp_from_device_name(pci_dev, 1); - if (!cpp) { + if (cpp == NULL) { PMD_INIT_LOG(ERR, "A CPP handle can not be obtained"); return -EIO; } @@ -974,7 +970,7 @@ static int nfp_pf_secondary_init(struct rte_pci_device *pci_dev) * here so we have to read the number of ports from firmware */ sym_tbl = nfp_rtsym_table_read(cpp); - if (!sym_tbl) { + if (sym_tbl == NULL) { PMD_INIT_LOG(ERR, "Something is wrong with the firmware" " symbol table"); return -EIO; @@ -989,13 +985,11 @@ static int nfp_pf_secondary_init(struct rte_pci_device *pci_dev) snprintf(port_name, sizeof(port_name), "%s_port%d", pci_dev->device.name, i); - PMD_DRV_LOG(DEBUG, "Secondary attaching to port %s", - port_name); + PMD_DRV_LOG(DEBUG, "Secondary attaching to port %s", port_name); eth_dev = rte_eth_dev_attach_secondary(port_name); - if (!eth_dev) { + if (eth_dev == NULL) { RTE_LOG(ERR, EAL, - "secondary process attach failed, " - "ethdev doesn't exist"); + "secondary process attach failed, ethdev doesn't exist"); return -ENODEV; } eth_dev->process_private = cpp; @@ -1012,8 +1006,9 @@ static int nfp_pf_secondary_init(struct rte_pci_device *pci_dev) return 0; } -static int nfp_pf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, - struct rte_pci_device *dev) +static int +nfp_pf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, + struct rte_pci_device *dev) { if (rte_eal_process_type() == RTE_PROC_PRIMARY) return nfp_pf_init(dev); @@ -1035,7 +1030,8 @@ static const struct rte_pci_id pci_id_nfp_pf_net_map[] = { }, }; -static int nfp_pci_uninit(struct rte_eth_dev *eth_dev) +static int +nfp_pci_uninit(struct rte_eth_dev *eth_dev) { struct rte_pci_device *pci_dev; uint16_t port_id; @@ -1052,7 +1048,8 @@ static int nfp_pci_uninit(struct rte_eth_dev *eth_dev) return -ENOTSUP; } -static int eth_nfp_pci_remove(struct rte_pci_device *pci_dev) +static int +eth_nfp_pci_remove(struct rte_pci_device *pci_dev) { return rte_eth_dev_pci_generic_remove(pci_dev, nfp_pci_uninit); } diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index 0034d68ea6..381a25c03c 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -296,11 +296,11 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) /* NFP can not handle DMA addresses requiring more than 40 bits */ if (rte_mem_check_dma_mask(40)) { - RTE_LOG(ERR, PMD, "device %s can not be used:", - pci_dev->device.name); - RTE_LOG(ERR, PMD, "\trestricted dma mask to 40 bits!\n"); + RTE_LOG(ERR, PMD, + "device %s can not be used: restricted dma mask to 40 bits!\n", + pci_dev->device.name); return -ENODEV; - }; + } hw = NFP_NET_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private); From patchwork Thu Jun 23 02:26:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 113283 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 9962CA0545; Thu, 23 Jun 2022 04:27:09 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 142674280B; Thu, 23 Jun 2022 04:27:05 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2097.outbound.protection.outlook.com [40.107.94.97]) by mails.dpdk.org (Postfix) with ESMTP id 4ABF140DDB for ; Thu, 23 Jun 2022 04:26:59 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oVetUeuqxqnusVpZzfvFIMjDUSmh5B7+6U9HZvbdeCF6ZFfjoGAZEcGpH839V4YKCKm6uoE+tC4rvPpFF6edPfNV5mA6q5nOqIzc/5LMVvZbzA8T6w6cSZvNbZbb7EHcPeQLwx8Rqlq0ypuWjCEG6+y7/nduSQmG1fGG42CdhMK+K6sIetS+xkjkOcZFog9tz1szzx2iCzsyQIltXMIYwUpG1QZ1QnBS0dHE5SGlfwl0ZGUVgekEgT8Xb5+rCcv3gu5R3isd9uSN1YdgpiVZrDhA3NTI2uu0ZPOEs03qBQyhPnZmIao84ZijNyjrK9fS2QSRe3LlYXv6vB5L3rdz3g== 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=h0XMQ/gppdgEIimBF1bLvhm5GOnKmL0wp/g835CrBL0=; b=JY47l6l07o0SrAnh6nHCxhpr8FuTYY82ytgSJaxAoPblq0Pv1xKxFgdZVw0B8qvdgKs0gwX+TEaHQjYOkTLiANqLgJ1fkAEqT1i2U7ERP3al736T7YZ/lLbTSy+AC077IzRcTJpCrrgcP2zzYCyulMF1crrqVnsyVa4wTLffR5gZ/mNM/1eUSHZfvD7+YoXfbDbt5THGOu9sK7nOc+0a2Tot/NhxHmipTQVVR8bTUxajIIU2TT7rIG0eYuqeSxk8hYdGIJOQPyyCdPOUnVObSsQiJsEeYrRty7qll4ul1frLynBLibq9R+/0MV5Es4icMgPAjts5EaeBFhBjUhiTqw== 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=h0XMQ/gppdgEIimBF1bLvhm5GOnKmL0wp/g835CrBL0=; b=IqQES08JaGWYNULrS7/EHmb5i8diVSyZs1cmeSWppACQ6c3H1BXOd0fuD7Ax9KMLnr2BEVKNMBU7M1coR1Q8ZF4dYckbYprt69O1EHcquUvwifiBkI9k6xLHp/ymFFiiOg8FYUmYKyflAgsBv+r0qLfKW+dolk+fMArN+WTnt6M= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by MN2PR13MB3535.namprd13.prod.outlook.com (2603:10b6:208:169::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Thu, 23 Jun 2022 02:26:56 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35%7]) with mapi id 15.20.5373.015; Thu, 23 Jun 2022 02:26:56 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Chaoyong He Subject: [PATCH v4 02/13] net/nfp: remove unnecessary forward function declaration Date: Thu, 23 Jun 2022 04:26:04 +0200 Message-Id: <20220623022615.3628093-3-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220623022615.3628093-1-jin.liu@corigine.com> References: <20220617093444.2004000-1-jin.liu@corigine.com> <20220623022615.3628093-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P265CA0222.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:33a::10) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 379222ff-4b86-4a05-f6f0-08da54bfd7d2 X-MS-TrafficTypeDiagnostic: MN2PR13MB3535:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1R1JJOB/57yGWThj2F3G5cPwejRM9wdZxqf7w1EcM9zZQtLdnuseQRMo5p2WLIc4Y35gzUiG4WcKGWw3SKQnDFIg1yzMP6oaaDYMzM8Cgy8hxc5Ek8pwAUrBpZCLtNoWqav32Cjk3bQJUU47VfJXapxg88l4FYVTg4+INB1LJT/iuGrmKLyhxLQFfnIfXdOmqy5JaI9lA9TJsjKcllrpP82cVA8gPh4ATWsna79+QCxrfMlUJTvhaTca9RMfeIT3hcg2g0jZgLE4jkhTvQmR89YYzrMr8Pmtnkcjc03vSR9jsd90rKE2oXNGmN8N5vCvtJY1Z74076qyvaUVWNlZYdK36eczk8Krgkj6jHtbE4JjPzr26sUPFZm47r4qyoDO3h4rRtBarmICDxa0kmO9j9eiN9nXKPe4jK/MF5VAiDaTpBmU2VGB+9PwG8iqApBT2LUfNHljSm8dX/Fa/FV+MSZINKNmrlQwUhSfKRZ/QZxI/R5SV6DW1lYnruqrBz9rz1DIxIDMJBkzjf90gUNBX/rQokSPoxsNvVEcGyrMgHTANbdKQAXv6OctuUVsK4L4BnaIrzz4jmlvzEyxgAHvhfj4u2qPs9riczF4GBo4cBdyNq2ZqOE1p5hwAiFof1MxiAxc9oWqlLMDSxOWpct6BPBp9vkhPEAgEC+5cn8c39SEneUEJdb5k7F92bA/wUC3JKOJvq+OGw5IOmP0kDlg/snf5pta4OiEc+kRzvp8oznmFePYSWjyL9z7R3LN1ful6KKYPfQHPR8Uewu5SfgYat4q0ih3MKFuluFloiEW+wCbKR8912QAFYlmjoBKcz9V X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(376002)(366004)(346002)(136003)(396003)(39830400003)(6666004)(107886003)(1076003)(38100700002)(38350700002)(6486002)(36756003)(66574015)(8936002)(54906003)(2616005)(6916009)(5660300002)(316002)(66556008)(52116002)(6506007)(186003)(66946007)(8676002)(4326008)(66476007)(41300700001)(86362001)(6512007)(26005)(83380400001)(478600001)(2906002)(44832011); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?jP12wZ6kjm4NciOYJqKXjcV96+wI?= =?utf-8?q?SbdVFnNWEnDLj56Wf3SFymN8bbGflsbcewta1A1xQJtDuB9cSnWDTTmGEk1K6NUCy?= =?utf-8?q?bIwkGJUFg4zECWVrKRJ2SpmGMLvxegtwLjrIO45zchoFXP5dJtw6id0vo/IxY6jc9?= =?utf-8?q?hnF14a/omLWkzzU9XbyVld0rHA02V0yByIgtBNqsF2P5UDTFR3ANRhk24iCQsU+wt?= =?utf-8?q?vo4LzI5ZYgp+IXrSU+u3uNf8mxsmRZumIzAmhVL1qQb/fzs9SSAIfoUJPwao5vgv6?= =?utf-8?q?eyE/+Bz4XsYxkMhLwR3iifqZusUO/UJSiT5K4DUjuIYY6SvbXOu4KcDfXF7lzuAUn?= =?utf-8?q?uhUY/qc3H+i4dYg83/OYDlXGhhIb9AwPK/84XS9IDn5vuIVSbO6rSFvpO4koiQmeH?= =?utf-8?q?y+IU7COvuacd3Et35OEVKVZTP+MM8wkaTxUAsAPmjzQYCr3TC8hvSWikXgmJBtkEN?= =?utf-8?q?k+2g8L8ojdarbOki83787yNsghbmRq39vr2kDy4RN63CVAJ79x189ZHFUJEB6EssD?= =?utf-8?q?ZTz6MmBckmLAS9qRRnglqac5lFZuKsakXSfZmWDkCBgWX9D0ViPn/4/fKvRWFEWWA?= =?utf-8?q?nCV/KGzRK7wDFXjRPRmEo4ZGSAJoyB8WT+4u66oN0mOSY8xhgNaIM/VjdKi4UMJiJ?= =?utf-8?q?p5PTAjXZJCp0jVSBeZrenaxARajbxT/3YUzX2omqUB6I95BR4HDyJcUhrR0yAwGwc?= =?utf-8?q?jXFJM7D/Z5/ajysp5uwOAk1aii32Hzr+3juK/dVSuA5fJi4cuxsWHDJPvauFIfRKo?= =?utf-8?q?b3/mzZdAhxF0tKpWfZ1LF9458HI4BN4RgCWlJq8oNi70OquDs6egeIyYfPD35XwbB?= =?utf-8?q?+wPWmWtJSJBuCFZA7CGESCRKeKVQm1+416kgpejoyrMCmIuk/Pd+WrbX6ZWPt3lC2?= =?utf-8?q?xqpbctZmtI5ZY+DauWMtjBVZPkQL2tzOq4beJ2wB+8R1N636mHYKtERtENPJBg4XV?= =?utf-8?q?zGdZ4HY2uYBj2PeGQsfSTW/BnsKCD475jEpECC2Fll4YLxSc0Me5vJLW3p2M30zwt?= =?utf-8?q?vJX5smMw0n+XQbQB/+SePN2VsP0X37Sx38xpxDFtmjrz2RrIYdT0puQzhFKwJSj6M?= =?utf-8?q?cOMO+w+utlnQ9abzkW79DHcDIK0ZMigLOxthhLlMTtaxPGiNMBawPHf3xCd7msDKA?= =?utf-8?q?pK39/05PoUOv0EvaNfiZYtKPONgcwsYSS7/KDz3vJcnXYfZ4wQ7yJMTajn4i8ntpJ?= =?utf-8?q?fVWW/YvUovLf0Pefu1sU59kzO3mlMsELpoJd0pL0n9wR4KhbPXJ92n55C7pQGNI7i?= =?utf-8?q?xbUoNcsFDWB9mfLltBreNIkgI1ywIHJ24TN07G4hDrPOsKiUQiBy7q5cUeYC7QU2+?= =?utf-8?q?TN3+mHCFGQlIBnnFaUlPDprlmtlRGCS2qNabEewBamx7/juYB/yWLn1FOLOaKQXcB?= =?utf-8?q?+jtmMllwVlJG9B7F3xIH16PNRDYyzKUji0fJGMEoVQjdJUxokKcuDlqKnfbmC/73G?= =?utf-8?q?b2UyoKrUF0PcNHeUIWa51Gb5OdLmrx/9+1GheEpBdmTdR9jZN5QL5weZR8Yjdxpvi?= =?utf-8?q?b7eCCLQrQ71E?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 379222ff-4b86-4a05-f6f0-08da54bfd7d2 X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2022 02:26:56.5103 (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: uWjBfipXRLfdOaTU7j5DkR9Dnu0yWVVN7qXPLNeJnsVEmx6RSX4nzT/K1jiVbJssDqq1L25sl/BSeQUOR8O59g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR13MB3535 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 This commit remove some unnecessary forward function declarations. Signed-off-by: Chaoyong He Signed-off-by: Jin Liu Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_ethdev.c | 22 ---------------------- drivers/net/nfp/nfp_ethdev_vf.c | 12 ------------ drivers/net/nfp/nfp_rxtx.c | 21 --------------------- 3 files changed, 55 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index eb0d92a98c..36ab31b688 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -38,28 +38,6 @@ #include "nfp_ctrl.h" #include "nfp_cpp_bridge.h" - -static int nfp_net_pf_read_mac(struct nfp_pf_dev *pf_dev, int port); -static int nfp_net_start(struct rte_eth_dev *dev); -static int nfp_net_stop(struct rte_eth_dev *dev); -static int nfp_net_set_link_up(struct rte_eth_dev *dev); -static int nfp_net_set_link_down(struct rte_eth_dev *dev); -static int nfp_net_close(struct rte_eth_dev *dev); -static int nfp_net_init(struct rte_eth_dev *eth_dev); -static int nfp_fw_upload(struct rte_pci_device *dev, - struct nfp_nsp *nsp, char *card); -static int nfp_fw_setup(struct rte_pci_device *dev, - struct nfp_cpp *cpp, - struct nfp_eth_table *nfp_eth_table, - struct nfp_hwinfo *hwinfo); -static int nfp_init_phyports(struct nfp_pf_dev *pf_dev); -static int nfp_pf_init(struct rte_pci_device *pci_dev); -static int nfp_pf_secondary_init(struct rte_pci_device *pci_dev); -static int nfp_pf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, - struct rte_pci_device *dev); -static int nfp_pci_uninit(struct rte_eth_dev *eth_dev); -static int eth_nfp_pci_remove(struct rte_pci_device *pci_dev); - static int nfp_net_pf_read_mac(struct nfp_pf_dev *pf_dev, int port) { diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index 381a25c03c..8d68ccbc95 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -23,18 +23,6 @@ #include "nfp_logs.h" #include "nfp_ctrl.h" -static void nfp_netvf_read_mac(struct nfp_net_hw *hw); -static int nfp_netvf_start(struct rte_eth_dev *dev); -static int nfp_netvf_stop(struct rte_eth_dev *dev); -static int nfp_netvf_set_link_up(struct rte_eth_dev *dev); -static int nfp_netvf_set_link_down(struct rte_eth_dev *dev); -static int nfp_netvf_close(struct rte_eth_dev *dev); -static int nfp_netvf_init(struct rte_eth_dev *eth_dev); -static int nfp_vf_pci_uninit(struct rte_eth_dev *eth_dev); -static int eth_nfp_vf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, - struct rte_pci_device *pci_dev); -static int eth_nfp_vf_pci_remove(struct rte_pci_device *pci_dev); - static void nfp_netvf_read_mac(struct nfp_net_hw *hw) { diff --git a/drivers/net/nfp/nfp_rxtx.c b/drivers/net/nfp/nfp_rxtx.c index 335a90b2c9..cd7faa2c58 100644 --- a/drivers/net/nfp/nfp_rxtx.c +++ b/drivers/net/nfp/nfp_rxtx.c @@ -21,27 +21,6 @@ #include "nfp_logs.h" #include "nfp_ctrl.h" -/* Prototypes */ -static int nfp_net_rx_fill_freelist(struct nfp_net_rxq *rxq); -static inline void nfp_net_mbuf_alloc_failed(struct nfp_net_rxq *rxq); -static inline void nfp_net_set_hash(struct nfp_net_rxq *rxq, - struct nfp_net_rx_desc *rxd, - struct rte_mbuf *mbuf); -static inline void nfp_net_rx_cksum(struct nfp_net_rxq *rxq, - struct nfp_net_rx_desc *rxd, - struct rte_mbuf *mb); -static void nfp_net_rx_queue_release_mbufs(struct nfp_net_rxq *rxq); -static int nfp_net_tx_free_bufs(struct nfp_net_txq *txq); -static void nfp_net_tx_queue_release_mbufs(struct nfp_net_txq *txq); -static inline uint32_t nfp_free_tx_desc(struct nfp_net_txq *txq); -static inline uint32_t nfp_net_txq_full(struct nfp_net_txq *txq); -static inline void nfp_net_tx_tso(struct nfp_net_txq *txq, - struct nfp_net_tx_desc *txd, - struct rte_mbuf *mb); -static inline void nfp_net_tx_cksum(struct nfp_net_txq *txq, - struct nfp_net_tx_desc *txd, - struct rte_mbuf *mb); - static int nfp_net_rx_fill_freelist(struct nfp_net_rxq *rxq) { From patchwork Thu Jun 23 02:26:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 113284 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 1C06EA0545; Thu, 23 Jun 2022 04:27:15 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 17FB942824; Thu, 23 Jun 2022 04:27:06 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2107.outbound.protection.outlook.com [40.107.94.107]) by mails.dpdk.org (Postfix) with ESMTP id 93A044069C for ; Thu, 23 Jun 2022 04:27:00 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dHrX+2JV1ciXq13XsWwXEJqzveNdW5G5OSG+B5kfqO8KlBcfscDpjPF/JsE93NyqL1fEc6lHowfgRDemweN1NpTX/5/QMCtE2xVcvEnn4qMVEsAkXXJFR8dtyZNrAjExTy3MJLh9vrCXkBjvUx7YVB2iYbOyW4bP+wrz7OvhULVHZ5FiZqjHquVYvkET6twvZ0u4iDvhAwKTKYNhVV9NGHx4Z+IEZyr8QA7Fu2vvS/b3aJAg1Lzuo2C5SyCWCYpeD3EeYVXAEVfv7/A67/HXkPTo/c8Nt6hhfHZWi4cn9YlOyw0/xtwsDJnYExZzZg64PBG6c6+p5fJ4s8plo1SFUA== 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=lunMfxd+SXFstKpVpG/MG5UK3s2BSPPs53tqidbF2+k=; b=gr2+6zFmNt9cAJjxWxH616XZQra31iurkb1eGVce14SVW33CK3QvdAwQXN6renuQV+zAMG/rGopSh7IAWXkwnyDe8VjtgWb4pkWXCxsMxHoW6nlZwiQAd3hVITmEb/UZ+dY7YQRrvHezTE2BjGON5UZ24pas7L0mk7heDBsfme46fxCtsEpnrcn7K8Mbwcroe5S71obAEp+14kXXs9N37NQXefkX/VgwJAvBSl/WjfNLtngRMog5vwCJ1oHJYcIFtx0cfP1+Z7PGzYEPNUFsnBcHfdWid5mJWxVtI/3Xcm2qoGO7rzGPXmMcVev9sb6GS6/L2Who4U7T5JlV7HP91g== 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=lunMfxd+SXFstKpVpG/MG5UK3s2BSPPs53tqidbF2+k=; b=IkTl6RqC2HmuZdOk8J5FQ9AiOK8vI9aueIbaiRzidpUZA53VRzoXUBZmTB04xPGX90IEWs0WgdORIimpKog3qHlUXP31b11nlxcX1YFpYGHn9rM9YhdmQN34/I/WlNur5k1oSmvB9IQ9Xdgec7qClK2yMG3oYbs8rzwf7Ujo3ew= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by MN2PR13MB3535.namprd13.prod.outlook.com (2603:10b6:208:169::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Thu, 23 Jun 2022 02:26:59 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35%7]) with mapi id 15.20.5373.015; Thu, 23 Jun 2022 02:26:59 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Yinjun Zhang , Chaoyong He Subject: [PATCH v4 03/13] net/nfp: remove pessimistic limit Date: Thu, 23 Jun 2022 04:26:05 +0200 Message-Id: <20220623022615.3628093-4-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220623022615.3628093-1-jin.liu@corigine.com> References: <20220617093444.2004000-1-jin.liu@corigine.com> <20220623022615.3628093-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P265CA0222.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:33a::10) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 28b00879-d0ae-4cc6-c9b6-08da54bfd952 X-MS-TrafficTypeDiagnostic: MN2PR13MB3535:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NoYVlPUL+1TR8dxh5vUhwhFTK7EJSI0JUpvPZVXKBrjJrN+UoPlBO4Jn+A/NT8KFXwBvIF+x2vvGmyMo6+ez3Uk59wt56yxl21hCmj9wVwYaPEyv0kiQrGTsWPNJfSh2Bf1h+FTbP/h28Jra9DvZEMX/TPdQxtBuO+qUT+BYSwTZh1NqDhiPbq1P1CRN8cvetjwMKzW1aDSnWaW8kJoskXyv7rew8aB5IFJoRzXUsfZmaxxVPuZVlJZoxMbVynJT9YAlirTaDTPpvmxaIAEKN4zj6+/zyHftkJI6I3SsXF5HVvKCqKFLHwKZLryUXHp/ZLKZUCIOoZVidXROyL3atZCWF9ENXeFeAxa7P+lhwk7iv7QMbueQre5dzzuoWS1+GVxthi9Ld9R7IYf4azhOqCJxXMmdtIYLeKNEG3NzpyEFnDBUVmTYpjFfDYJm7lZ+2xxB8gv9pzYeWyglDNI96p+fw07tNsZP1az3vPh4pAI5TUXkx2zstzZ+57EEufk/UJhQCxBtpn5czk51XDCYjU5G3BGOrr59CvAH4k8riO7R9zmxycsJw9pSSZPrw+HGb6jXyzrdDWH0P15KsmGJN6JFvUKass3bkx/yrAfqwRwkAe0h/WsZRxEtKuIHgWu8ryb0vbnMYRdfEYb4CLYaWI5+b4bOsIBg8HXQiMKmOk+M08e3EhkbQiadnt+5F/hwGPdnzocxnsDbAhHJ8MmK14G0bjzogmcih3G32DWrJks90hNA0getcGpp//Pr+08FBVZo/l5P42Vga+8T6CW0c07eSqmt4Z3lSwN74hgou0i/VR4bDUkQmQbxR+DuI9Ic X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(376002)(366004)(346002)(136003)(396003)(39830400003)(6666004)(107886003)(1076003)(38100700002)(38350700002)(6486002)(36756003)(66574015)(8936002)(54906003)(2616005)(6916009)(5660300002)(316002)(66556008)(52116002)(6506007)(186003)(66946007)(8676002)(4326008)(66476007)(41300700001)(86362001)(6512007)(26005)(83380400001)(478600001)(2906002)(44832011); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?HsGccSdMPY5bplY0lflA4004+ucc?= =?utf-8?q?S1hmIuXimnzn0wTb4BEeDRkaT+wZ2qYItToPd1CipKf8b+phk+j7Zitfpi18+d4Aw?= =?utf-8?q?e3+eNpHKQyTwA3aYMJPMUJoAC2+GUCFrfv+hl8bQ9yZTJ21S2mlf0jLrhXDaYQp34?= =?utf-8?q?PKf4EKPPA3VOOj/zJUwYwLYlmW3KtF6R1aga0r6w90khaLYk5tDl7krSyZBUh6vfE?= =?utf-8?q?eb5GiUczr9LwSop6rl4B1IAONFLw89qDG5pu+r6hLxFnsddJ8IPEJGzFpQilkHxjC?= =?utf-8?q?RlClB0dTDsWYSygwRCFBVw92248NtiAsKyomf7aDx843BazT6lW9PnlnCszo25Mky?= =?utf-8?q?ypUfZA/U8XpZAci+P1biWFlvepeP971i9+XDyRyllVCQC1UtQ/X/eHG8QswPJ2VJU?= =?utf-8?q?MxxgkE7agZ1deRJaPhmwiE3Lj/WRtbAdJc5KkaHoXcuKd3r/HBXV9FecfQZLelHWd?= =?utf-8?q?JAeMJEL+lc4z+A8oOlt5BhINS1aF9+05PkP63rOKkjJ/kqGv44RUJk6hVqNw5uGxN?= =?utf-8?q?NLBcxvdv86FpaTv9OnMiqb2aA7lotgpjAw4ZgTInD2PFVw713gcbB634P5IxHoqjw?= =?utf-8?q?EJKcMUO+6G+1EsUFsYwb9B0tQd9nw0O7uj3UzxndEpWjeokUAthkb6KO75X8gPx7k?= =?utf-8?q?mIVcu4dIz+L0CIChreXxxdaQ0nfnpnRUd6NvacAq7ho4gMymGDHsqnmxw86twLYyE?= =?utf-8?q?vAeR/d8972OEQiAFPIs6UAZccai1AWX2bBtqy7zc6rjYMS4EPSCukEXPFHa0KYxh/?= =?utf-8?q?c6q+y4re6AKUova8xzrLplDthHmw3qcp5FQ02Ul3lfQ1kJA9zQmAL84FoZ9GpvPPV?= =?utf-8?q?Kgo1Jm4aEGyweIP/m9/+If9CNXPxj3HlDP8W6QjbEJsNtHOs2yvUJRouFszS+4GkP?= =?utf-8?q?DOIEFvm/yo+EssoITEaosvR7f7YMoA9S0QcHOscINzpu8AWrhdidhRqOu5RgJgCFJ?= =?utf-8?q?1VZ77/AT92O7p69eSnkq/uqFAOHgW9/oMD9CUfM0EAfQJhTYisHlphnp87rpVVLwI?= =?utf-8?q?YmplguFYIqxaWO4tTM9at8Fy/TijQDGXFyWXzMGkjU56d9VpXvRDF0dUkIhRbpHVK?= =?utf-8?q?2aeTafGxe5suhTedPUfpy5PtXuXLuGYylpa62hoXfvtL6Jy/B+NaITYekl6Qwc1jX?= =?utf-8?q?VeCL0G6yAxt1fx/1y2VaM7zjMdgYoRdDqxm/kWb7nbDapYc0KbKCITqwndmd8Ciwm?= =?utf-8?q?hO3Lcibosb5+VR/1J9KwTHsX37X6yvI/XKLYY6qhPLAFFZXCHOSSBGEPOlMKjblWa?= =?utf-8?q?fDNT9ao97F2eX8rYAWrk9iNkpeUHDEFztliSLvEamudg3F+QHh5ISflM3rcNVBfwy?= =?utf-8?q?ew9+lt9w9mgEq3SmSTN/DQKtxEs2U8qOjMXIr7AO+hVq/7j3ysUyaNizwWNtdrs0H?= =?utf-8?q?IT1W64XlV+n9OgVcOG1X1DmJINhnGYIix4FGKgzdwxzH4LH9XmvI6HeLCtp7NDDF+?= =?utf-8?q?2jSmXM+uKcpsuAk15dxvXyK7bky/SDy/1aKsr4rbCFsSfgj6LpU0hMtp0LpKsIrg2?= =?utf-8?q?U17Hw1yRQH5b?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 28b00879-d0ae-4cc6-c9b6-08da54bfd952 X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2022 02:26:59.0414 (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: qXP+KycmRgJubKHA3D0j54TIgzAuzOtzECnhLm2cKoUAkZAyZ3Yza0jg7Qyx7dqlF625wBHBD2wssKXepxGVNg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR13MB3535 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 Multiple writes cause intermediate pointer values that do not end on complete TX descriptors. The QCP peripheral on the NFP provides a number of access modes. In some access modes, the maximum amount to add must be restricted to a 6bit value. The particular access mode used by _nfp_qcp_ptr_add() has no such restrictions, so the "NFP_QCP_MAX_ADD" test is unnecessary. Note that trying to add more that the configured ring size in a single add will cause a QCP overflow, caught and handled by the QCP peripheral. Signed-off-by: Jin Liu Signed-off-by: Yinjun Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_common.h | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/drivers/net/nfp/nfp_common.h b/drivers/net/nfp/nfp_common.h index 8db5ec23f8..49d6bb6ad5 100644 --- a/drivers/net/nfp/nfp_common.h +++ b/drivers/net/nfp/nfp_common.h @@ -44,9 +44,6 @@ struct nfp_net_adapter; /* The offset of the queue controller queues in the PCIe Target */ #define NFP_PCIE_QUEUE(_q) (0x80000 + (NFP_QCP_QUEUE_ADDR_SZ * ((_q) & 0xff))) -/* Maximum value which can be added to a queue with one transaction */ -#define NFP_QCP_MAX_ADD 0x7f - /* Interrupt definitions */ #define NFP_NET_IRQ_LSC_IDX 0 @@ -307,8 +304,6 @@ nn_cfg_writeq(struct nfp_net_hw *hw, int off, uint64_t val) * @q: Base address for queue structure * @ptr: Add to the Read or Write pointer * @val: Value to add to the queue pointer - * - * If @val is greater than @NFP_QCP_MAX_ADD multiple writes are performed. */ static inline void nfp_qcp_ptr_add(uint8_t *q, enum nfp_qcp_ptr ptr, uint32_t val) @@ -320,12 +315,7 @@ nfp_qcp_ptr_add(uint8_t *q, enum nfp_qcp_ptr ptr, uint32_t val) else off = NFP_QCP_QUEUE_ADD_WPTR; - while (val > NFP_QCP_MAX_ADD) { - nn_writel(rte_cpu_to_le_32(NFP_QCP_MAX_ADD), q + off); - val -= NFP_QCP_MAX_ADD; -} - -nn_writel(rte_cpu_to_le_32(val), q + off); + nn_writel(rte_cpu_to_le_32(val), q + off); } /* From patchwork Thu Jun 23 02:26:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 113285 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 87D78A0545; Thu, 23 Jun 2022 04:27:20 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 44FC042847; Thu, 23 Jun 2022 04:27:07 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2112.outbound.protection.outlook.com [40.107.94.112]) by mails.dpdk.org (Postfix) with ESMTP id 5383342820 for ; Thu, 23 Jun 2022 04:27:03 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ITmGpvldcbiMP9L8jZnDqJBbiJLXiHQwYUsUQFPSjIi1A3Cg8UChe+BDfRJBLSmpZJPeTehDqs8Lvbal9u8NA6qS9PbyubBF9JljeiQuIxa7ovig3IEtOl3mdjUIgjY67LouQ97ZWQOAQlckKQo05kySER8trp1ZAnpJaLC0Q3tjiuATV1l5lEfcddd/BdilNujtnB+ds8VNJ2ZR3N845Y8RfRwFX/6UKFBQ0CfORaaaCurPPgWBxNrQwVNjXyVA3sDe2GH5mbRFWdWvsDS0Cce2UA9ZOVWtXQKFuXJvMR2m2LMIKgubODjFhBuK0y+Zbx9V8oDrC+Uvp28IdOo/mw== 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=RU9gmDKOVRrLslsiwEu0anotCV1KAc8Bfwn9RI+f7wc=; b=NEQMvQce3+Ps1i57inxDOJ9AMkKLK1cwBhnY8EVJgKUCBzIFMKrNjgUAS7YYrOQZ+eek9lN3CcRuS2M4vqT6SdbzE5qsPCCo3xMdhF0POzQKhLeCaXmMe/wq4OGV0ZnQpADvqrpaQOissYxbQmcIq+lFn0x9sNYTDMey8DOaQg5p/gjbNb9zv6x1UwJsbBUPs6Fjzi7z9f8byWLU1HiGcnbrHLvgvcTmH3thAuvXQoU2aibdt3vOfoZtiafRjsfBRaSbLkIUME8u/ROa4+2WORzxgsW8cuhv0M78xM4sfGQDh7nz0V5bziw++wfugdkXwm0colW/60e+BHnZpInQUQ== 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=RU9gmDKOVRrLslsiwEu0anotCV1KAc8Bfwn9RI+f7wc=; b=D1ZwaykNbYVYnjf9trOXIDdlr/AtncPo/mJKIo1L+KZFSC4ZXv6LhBW+EPI29rd30YRqF5Q6i5iO7rbnu8yTfQN78voGAsQa3HI/k+Pc/Y+U6kFZXFS8RucdbRd9zEY+nQ1evNdMASebo7Rb1bTQvsf8wPYuvU1rRxqEX3UGQ6U= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by MN2PR13MB3535.namprd13.prod.outlook.com (2603:10b6:208:169::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Thu, 23 Jun 2022 02:27:02 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35%7]) with mapi id 15.20.5373.015; Thu, 23 Jun 2022 02:27:01 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Diana Wang , Peng Zhang , Chaoyong He Subject: [PATCH v4 04/13] net/nfp: rename set MAC function Date: Thu, 23 Jun 2022 04:26:06 +0200 Message-Id: <20220623022615.3628093-5-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220623022615.3628093-1-jin.liu@corigine.com> References: <20220617093444.2004000-1-jin.liu@corigine.com> <20220623022615.3628093-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P265CA0222.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:33a::10) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7816f9a7-f8e8-46a3-85e3-08da54bfdafd X-MS-TrafficTypeDiagnostic: MN2PR13MB3535:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: b14Cq8V214BzGv1it6LOgLVEnDpV3yWHK5NzP6eyeWmj7Gd/FQma71fXeJ7T9mHNk+AG2LBSniGYSY+ZWhRX1uTCzbkIEyItui9dJY2bh41Sty681McZyK/DJ+77ARMlNgELYq0u0GIrfz2SYRxUiOdd/8qtjKPUslN9NPZ72chKT/oGpNAm6UGsULwkrslCrX22KRYwgGhbxfy3vWjlBBi2hRLIdzrlUIWa7c1AlZTMTr7p0k8KfGzcrclCJ3wLWtTUiuc2z9gLFKJ1V+xAx07x8yoQVQ6J2WcIMKzdV3AK/zif2awBq5UhZJFCvX7FUeb7UQwx8EEpE0PDAhFgX8khfLw+ulUylIUL58z7dLox3Mj7qXRe2tNFjkQULNHt4i5iYCGDbEf3Apzl9mUQ8Li2q/OfnpHfOyDqBsGc1tF/WQtXuiS0lQqgsuZpcfl0EuhkA8FcbOyiEQYfPP6sWEt0Qp/VOOaZrsuLidnWmXHx9m9h87lKjGRmPpXYXR1aibqHGbtmLZvu3/PG52VVFjw1tWPnmBTtYbUMHoO3TDhmCYa6SFFo6RdiV7Ue98yLlg0ffiOkhR1/Q+AeRZJFdOiS0ZFCYoex/iv7BFcdGNuCcIf6kcjh5eUcldzp3CvP93DG8Cp0v4rE44P/APTfqYqbe6leRlwqFbW4rIxDYaTOc78Cc+1ZoF9Vp/QyLlgT7OdKptqCgtzOkQjuGRFr7iMZDUGx0m25323dhYPUl/kqB+Nm7meuv6/tvJXQar2+eodb0iElqDWY1/T2gedkuZifT5fK52aXtKlwxyLZJVDM5oyNh8eGg+NQaYVAujvy X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(376002)(366004)(346002)(136003)(396003)(39830400003)(107886003)(1076003)(38100700002)(38350700002)(6486002)(36756003)(66574015)(8936002)(54906003)(2616005)(6916009)(5660300002)(316002)(66556008)(52116002)(6506007)(186003)(66946007)(8676002)(4326008)(66476007)(41300700001)(86362001)(6512007)(26005)(83380400001)(478600001)(2906002)(44832011); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?mxIda5Gy1aJs/WBtD8vVLoo3ZZBU?= =?utf-8?q?AAk3YT8qeDKgIBaqBan10xrl/Ttwh6UrMMGPR+j/TbMPdyNjB/pKabCUiG2eGgDA0?= =?utf-8?q?giRcT0z0PLCahGP3EDMZlq1QYh+/pZwrr2p7M4/jLTm+ekOSrDKxbxxuJTDjZRNL8?= =?utf-8?q?Tx5qPKtExuivP09IjIlnjPWyHJYrOokiiTLuhxRnzXQuFQ3biOjLSbJDE5mySBZ8G?= =?utf-8?q?XWsE2/bZSi9ootI3APR7qHObpGZ05NxtfMCmY+ZqhYQqOa2VQ7UWBVZIyFL2YaCnl?= =?utf-8?q?5KX2GCgx6YFEFbBPjlVcuLIQFi556T3v2EktZ6nUNrDPcRUK9LAykCNW/X5qivpd5?= =?utf-8?q?+go8V+cOuJfFjRXxnyvYyKETgSIeB6b6UX3VMdDUuRNHT0QTzSrdEz0AW0vxcl6qf?= =?utf-8?q?7vrllCbVslcprZtnXY2cOppma+Fy8nxYGQgLlNYaNyBb1AQ9QH5HdJ0vlf88ihSXQ?= =?utf-8?q?tNBFLXWdVepY0BhRN8MlXw4W46orOfoKhMIfMaUCK/fRGF1XwMCAImZKldOUDxcze?= =?utf-8?q?ilgVCp703vSaBeZGzkG2pEf4d0je+8MaNS/esWVYYkR/wiNhItq3WV+ET0LBn7WEJ?= =?utf-8?q?OGMt4lmg9PVGpl9e2KE/XBnOGIZTDTL4CHZ19AajNF0vxMq40ylY1yWQ5QLSZhXYJ?= =?utf-8?q?oRCy11aICnvOPXopBSLRd8QtofxWQ/T9DcNbjB/27sKOWTAJmFrBUcKmPqeUhOxSu?= =?utf-8?q?2rhmDVRfh7fE9/1w2ywe0kJFzHzoorct/hfTnGkfMzhJUqorN9a/kKtHQS33gJ5iD?= =?utf-8?q?ngN5drAjgrivSlXCzQiLo0V1rNQpFq8/M3WWzzI5p+ED5iqoiRwnGuZhwobpU3oBC?= =?utf-8?q?E3yXkh2fAOtmw3KHYSuKhADzM/nuL0gTALV/G8uuMaBIbg/GTPedO/bg9ds9c4Spp?= =?utf-8?q?D5frQK87ao6eXBGmDwfVxyesrGqbHIIIAIaMu+nm7CQC51n01etX3i8gtM1TUy1Yp?= =?utf-8?q?fiCFwXZNyrqcHnZnp7ci2F46z9VBEvS6LfPBPMMKkGvwjp7MhdrQd8pSCDtUfdPM0?= =?utf-8?q?xTAUteSy9PsetKWRgySm5VHfAUGRf68fO0/gSv77CbA+KDO93/kKbLIZdiYfOshCa?= =?utf-8?q?nRfuXc/fFsJ0zSkiSc6DaClAdM9b9o9k+ai8AJo1P4zZ+7LbUBbSBuGuVSdyhGGz4?= =?utf-8?q?WWdNi9e5ChrRMe5j5ynrJ7+XaLQcTXyuLpYNElXFuMfF6zOiUsOhlt36DgFZM5ZMS?= =?utf-8?q?FLXe390W8KliDuuGHtgJO9Z6T2obHj50/o5klo5kECiiNE2HUb7phxWiGmvbltm0Y?= =?utf-8?q?4bw57vxm18sDcVf4H4vvM+Md9ErkElvJxsbix8B3kOsiRgQGymzv9MmAmymo+8ENN?= =?utf-8?q?WxlJR/sdjXfkqk2BJeV70977C3AEroXWMiCRMFyht88NjuuyEcFIpQ8Be0sSZHa7Z?= =?utf-8?q?dvWIw9ofyFNye+yCUy++QI+EkPxi6WPZa2ZFJrfcKvNjTwxuBwxWK6JmlEhrBbZ7M?= =?utf-8?q?Wkj2Fb6gEQhVEN3k8I9ffjBB0l2A4VDlWxcFbn14zVaZ3X2Q8/Z5L6dRKWsbOSskE?= =?utf-8?q?88qOJJUUD7l+?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7816f9a7-f8e8-46a3-85e3-08da54bfdafd X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2022 02:27:01.8537 (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: CKYKnSdwxB/R+DlCkYCC0DZgP1Ym2zRYf3PKYo3WnlNc9Basle+p5F2AO/YhmF/a6YJ/YSs7/idNyJtki5Is0w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR13MB3535 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 NFP eth driver function name start with 'nfp_net', but set_mac function start with 'nfp' only, rename it, be consistent with others. Signed-off-by: Jin Liu Signed-off-by: Diana Wang Signed-off-by: Peng Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_common.c | 2 +- drivers/net/nfp/nfp_common.h | 2 +- drivers/net/nfp/nfp_ethdev.c | 2 +- drivers/net/nfp/nfp_ethdev_vf.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/nfp/nfp_common.c b/drivers/net/nfp/nfp_common.c index 34e3a03edd..9903a1bd5a 100644 --- a/drivers/net/nfp/nfp_common.c +++ b/drivers/net/nfp/nfp_common.c @@ -274,7 +274,7 @@ nfp_net_write_mac(struct nfp_net_hw *hw, uint8_t *mac) } int -nfp_set_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr) +nfp_net_set_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr) { struct nfp_net_hw *hw; uint32_t update, ctrl; diff --git a/drivers/net/nfp/nfp_common.h b/drivers/net/nfp/nfp_common.h index 49d6bb6ad5..8e1b4fb6a4 100644 --- a/drivers/net/nfp/nfp_common.h +++ b/drivers/net/nfp/nfp_common.h @@ -350,7 +350,7 @@ void nfp_net_disable_queues(struct rte_eth_dev *dev); void nfp_net_params_setup(struct nfp_net_hw *hw); void nfp_eth_copy_mac(uint8_t *dst, const uint8_t *src); void nfp_net_write_mac(struct nfp_net_hw *hw, uint8_t *mac); -int nfp_set_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr); +int nfp_net_set_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr); int nfp_configure_rx_interrupt(struct rte_eth_dev *dev, struct rte_intr_handle *intr_handle); uint32_t nfp_check_offloads(struct rte_eth_dev *dev); diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 36ab31b688..b80109ec37 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -344,7 +344,7 @@ static const struct eth_dev_ops nfp_net_eth_dev_ops = { .dev_infos_get = nfp_net_infos_get, .dev_supported_ptypes_get = nfp_net_supported_ptypes_get, .mtu_set = nfp_net_dev_mtu_set, - .mac_addr_set = nfp_set_mac_addr, + .mac_addr_set = nfp_net_set_mac_addr, .vlan_offload_set = nfp_net_vlan_offload_set, .reta_update = nfp_net_reta_update, .reta_query = nfp_net_reta_query, diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index 8d68ccbc95..08077632c6 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -251,7 +251,7 @@ static const struct eth_dev_ops nfp_netvf_eth_dev_ops = { .dev_infos_get = nfp_net_infos_get, .dev_supported_ptypes_get = nfp_net_supported_ptypes_get, .mtu_set = nfp_net_dev_mtu_set, - .mac_addr_set = nfp_set_mac_addr, + .mac_addr_set = nfp_net_set_mac_addr, .vlan_offload_set = nfp_net_vlan_offload_set, .reta_update = nfp_net_reta_update, .reta_query = nfp_net_reta_query, From patchwork Thu Jun 23 02:26:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 113286 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 79D4CA0545; Thu, 23 Jun 2022 04:27:28 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B53AC4281C; Thu, 23 Jun 2022 04:27:17 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2096.outbound.protection.outlook.com [40.107.94.96]) by mails.dpdk.org (Postfix) with ESMTP id 6BACD4282C for ; Thu, 23 Jun 2022 04:27:06 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Vrz1Xf0HHcahiCFgyAES/uCSMZah05DDVUCNeBtFEY1MqNNIhaGwnprpp1HYTaaY7zZnp1SiNNycE97HCi5jKirofO9BMQZgAYYawb5oACJUH6YfcbGOUBB0oq22LMSj+ddEmPHn+y8CeGFpjO3lnm7achYapJXCmvKz/WbYNzMQPrToKIWAzRneOkLisWRaKEjvK2w2DjAm60A24PAPQ1/Fvt3lkSdl3FSnFK8O8f7LQXVD8eHXymFK4k8j8KkGyBnjgzP+q2VaeASZOS3qEzIS3Fosk1S57bp7h0LoWvbHKZtJmx5b8kNLjyNC851CimQoAfN/dLHHJfO8D9Z6uw== 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=8i3tIAISLgeP2g66yVp8LOoOojfrZBjxUk9Fp4H/RkE=; b=TsvCQMjmeE2tyou2/lEBW8jB9Dx17rXCz3J2uTgaxlXKDMKKqlia66u0vZ14lXZgjwmo7OsXcSkpmEd1SwB9UUxMiurMeDYOR14puaEQgcQdXStUaDIk0XaJmIVE6xUFcCZU+V8WtJutpnUaTm4w4ia2gB6cEkyEVoNNynR0v8G1LwUEGuHqRw6PnGZ/ye05ZC3u5wSzyAAQYGjFE6ZSITfNs0lptXmfoG3tohvHbD98nBLoSt87wibUbHw9KbNpOlHOicF7gx9uARObyvVxPXiAZptmfB6mW5UnK8SGhJAWwHr+b9MVuV7IcoKyb3PeOCgbMf+X6ofKqrODX2ylzA== 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=8i3tIAISLgeP2g66yVp8LOoOojfrZBjxUk9Fp4H/RkE=; b=h6OXI/4lFyS7zZriNxouIHbtv11Tyydy1EsyX2FVB8gEei2fv877VVaOl9Igu4oOSpd2fDCqIWrIGM81nSwFAo21J3N7sMMO/+1udA/jspTrowIxRhAGTNnB9trknOaKdbZHOFTc9uY9rr1M8Odcy5H3eyAIAfExHVTKkBwundU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by MN2PR13MB3535.namprd13.prod.outlook.com (2603:10b6:208:169::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Thu, 23 Jun 2022 02:27:04 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35%7]) with mapi id 15.20.5373.015; Thu, 23 Jun 2022 02:27:04 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Diana Wang , Peng Zhang , Chaoyong He Subject: [PATCH v4 05/13] net/nfp: rename function and struct Date: Thu, 23 Jun 2022 04:26:07 +0200 Message-Id: <20220623022615.3628093-6-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220623022615.3628093-1-jin.liu@corigine.com> References: <20220617093444.2004000-1-jin.liu@corigine.com> <20220623022615.3628093-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P265CA0222.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:33a::10) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ef44d1cb-4a2b-4729-422c-08da54bfdca8 X-MS-TrafficTypeDiagnostic: MN2PR13MB3535:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CHJRggx1fCEsfWk1cpXo7VK3S1HyMZy4lJ3WPDGtcREPySfVU1BPoBR1zPd9eOVmVcTOZ+acpDw6055tkbDmwvwEe2lKoUb1aR4sc99XN6mt7bUB/WvVQwZhO/Oirz8x/fqfafR9971hkcYViz77CUmJFI+YYwe3dUU+9CzO2bvTjiS+psuVtauOUnLIsKZoTAtuZ34iIdNJDdVqWUdFI1vvYJd0721XZ8loitqB4ksRKBr4seh5WbQiPiuTB0lB4bf59C01i9ril59ktJCrkmJw5mwrYollGXHw8kQruzA+jhSWp4EqLEhBdX0tjcCfiIEJ1zmAZULHgX6Lx58tsduhkwBm63RQH7HAKvxbpXb+qwSTLFfZ26GLzPZD4qdQzLdEBI1Bo4ZZlRkDJDcQoIIXt+tGwlLbavQTOW+rsFW3zaFcOg1QsEz5OvMWBQe7qmVcU+pKNJtAPrqWJgvqRI1gtCSWrlCq0+M8nYfDgDxDOd62LqSja+a6IOjdD3pJmcjjnSOua+SN57cisSwv0dCKleRR0nuPAVTHBli6rtSxvueIMCmZfxHEOtTZu3Yc96Vlz6Qqho2uhSMJ+sowIaNfOm2P0oy41bn51ygTymh4vi7m/TF/5T2FwblsmWuUmlzOMg8MKEnaF5PHoD56BeELvXdKLma3itQjtaLiq3RnT7SMSIADc6PdPWWAdjKELZU7KRcqOo0S8ynZByPhJZpYD0KF5hL2AD4mE6As5lfP+uMQJI6LdZmcn2zTr8gZtuZY6HAtR5Ja7UK7OpHSxwfVjldHNyx6mw8AklxG/KJ7cGogGnB0DkZrB1ZDUTDH X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(376002)(366004)(346002)(136003)(396003)(39830400003)(107886003)(1076003)(38100700002)(38350700002)(6486002)(36756003)(66574015)(8936002)(54906003)(2616005)(6916009)(5660300002)(316002)(66556008)(52116002)(6506007)(186003)(66946007)(8676002)(4326008)(66476007)(41300700001)(86362001)(6512007)(26005)(83380400001)(478600001)(2906002)(44832011); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?ouSbdyBPa7EVNHfi8gh+aw6gkhsc?= =?utf-8?q?TQzk/fUrjoG7prpVlAhYWwKxqHFl60Wj/fLJSoarZL9/bN7yZkrBZQ4EKatwXp72N?= =?utf-8?q?nNRPNWxnP9VkTGzy6VUVIRJJGlqgUPJeQ+UgtYNgutwxUip9cq9FFMeF5oWCidNn/?= =?utf-8?q?G5oYRpeK1+qYjCoyo3l/D/xHLZqsDmIiBtM4u4xpT2nQYBNLMoGWvIoarbX3SFiJu?= =?utf-8?q?eUgjwPKeiVru9N7j9mmj9cM6vGLWX1hF/KV/yoUDP6Rktr1taOgxaao3wt73GxtpF?= =?utf-8?q?zCOLvNHg6CmDxMFZaxNfEl2D7OKl1f+pYzPUQSEZXfInElNYtvE1afj+LBF5M6jau?= =?utf-8?q?SUBseTdcSwuopTG/vGffZ3GnPh8knPa15F6hUKibgfF1Gyr84iJmdu1QFzn4OXDVF?= =?utf-8?q?OoEruHSf5P8XPo9Ke9WE6zIrqRGmdQJ+2p4BKAfscydiM2xgW/BPaIDA7QjBDkop7?= =?utf-8?q?qtUFdpjA0t5ALNE9qUHEiJ8SV9ATgCrFxh2O+BpRQYKihXy8yjfCN1i98u07W2lYT?= =?utf-8?q?zmSxtxh4eQvKC5TnTmW3Ou1Hj7FVwKZDw27C5Y0IHn1suwy4ufC6AqQzGXWEJdRIX?= =?utf-8?q?u6jbIp+JOg9S2LB/yuP5TJG4UMPVtQcUhWr0RF72ZvoIQ5unayIKbwZaaeLDKa7KG?= =?utf-8?q?cK1GVFf7FupUn3UYcPfvgfb5P04eqPh5HwaHruaOy88WWOIbDBpndEaeFV9f7tnag?= =?utf-8?q?en9rR/8IiBHc9ihtY9cB9tSqCDr1cRfPiRP9Jbeh/X2j/n8lJhdCfZ0HoR9s1tvZw?= =?utf-8?q?4GPei/ZY8ISGLXMhsot1nJ+rjxZR4YX7z1HtvSio/NV1fsAwuhS0RwMq/0SAVEcxw?= =?utf-8?q?MFcJeXMo217Bpeb90WnVylEs0GNK5jyLzQaHgp50BPxVQVM1EzuGHsYx+bO174BWo?= =?utf-8?q?I3CKI4Nin7/You3IUtTRf5FFu44Ss7QkWgKiNvBbBmphTlQfii2aua5F6xtis+SYe?= =?utf-8?q?i/SyZkjnuX6Whmg+bedG72vwMQznFoIPNo2bP5YFw12bjJl7hKOUHgeGahcvw2+81?= =?utf-8?q?hTtmVqLe5fpNsiBQ3mAsEoJ5q1BpAeVmJcbkpaK+3rL9lxr5lmY3jQZthfelCLciu?= =?utf-8?q?UKXNNlDWNkfz3MWQ0gmRQuBPKTxt/79uEJsOp1aFmNOnXfqbd9o6jCVlJyxfLHvEF?= =?utf-8?q?X1O15JJG8ZdFqp5ONVjOif/+D4MJdP75/qplFtJyGXEq6SXN/7qlmmaEliAUPqHAK?= =?utf-8?q?ejicayZ0X4P+Jn4kImIAp1F7Q31+J7PFPAz861qISiF0Xcl12pmugJd5ROutsZ3tq?= =?utf-8?q?kP2iOZNmGKnuvoyIEGWyrZru6GlXBgI42Vzqjrkv2WUGegUAeRs13ZztrGv07I2bZ?= =?utf-8?q?g7g+vyksv36v2oN6GNVQtw8jr0xym6F/DpebZMlRAv1QQL2RM2MJLqX1NE6MTrx8s?= =?utf-8?q?5ihHtHSi/K3ltxiVjKVT80xmsR+TTT4nJWJJuwMwVIpzSQ/CmIA794eDszkz4b+vU?= =?utf-8?q?mO49MSlfaM3/8CW+V1RnGrISflEB2U1nzKuguBBhAdPj2vCTfJSY6DXxnTcJ6Nozf?= =?utf-8?q?jlzRnwlUFSig?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: ef44d1cb-4a2b-4729-422c-08da54bfdca8 X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2022 02:27:04.7441 (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: 0DQWpADZDwh7cxFnp7wCCOrFxlByaTjg2oF+2TTL9RHknvAoAED//bXdKMARJqw2XPsaeOhai5b6GR6Epq6AGg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR13MB3535 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 Add 'nfd3' into the firmware with NFD3 eth driver function name, preparation for the next work, as we will support another version firmware with NFDk. Signed-off-by: Jin Liu Signed-off-by: Diana Wang Signed-off-by: Peng Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_ethdev.c | 12 ++++++------ drivers/net/nfp/nfp_ethdev_vf.c | 8 ++++---- drivers/net/nfp/nfp_rxtx.c | 30 +++++++++++++++--------------- drivers/net/nfp/nfp_rxtx.h | 8 ++++---- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index b80109ec37..ae6cb5943f 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -329,7 +329,7 @@ nfp_net_close(struct rte_eth_dev *dev) } /* Initialise and register driver with DPDK Application */ -static const struct eth_dev_ops nfp_net_eth_dev_ops = { +static const struct eth_dev_ops nfp_net_nfd3_eth_dev_ops = { .dev_configure = nfp_net_configure, .dev_start = nfp_net_start, .dev_stop = nfp_net_stop, @@ -352,7 +352,7 @@ static const struct eth_dev_ops nfp_net_eth_dev_ops = { .rss_hash_conf_get = nfp_net_rss_hash_conf_get, .rx_queue_setup = nfp_net_rx_queue_setup, .rx_queue_release = nfp_net_rx_queue_release, - .tx_queue_setup = nfp_net_tx_queue_setup, + .tx_queue_setup = nfp_net_nfd3_tx_queue_setup, .tx_queue_release = nfp_net_tx_queue_release, .rx_queue_intr_enable = nfp_rx_queue_intr_enable, .rx_queue_intr_disable = nfp_rx_queue_intr_disable, @@ -402,10 +402,10 @@ nfp_net_init(struct rte_eth_dev *eth_dev) PMD_INIT_LOG(DEBUG, "Working with physical port number: %d, " "NFP internal port number: %d", port, hw->nfp_idx); - eth_dev->dev_ops = &nfp_net_eth_dev_ops; + eth_dev->dev_ops = &nfp_net_nfd3_eth_dev_ops; eth_dev->rx_queue_count = nfp_net_rx_queue_count; eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; - eth_dev->tx_pkt_burst = &nfp_net_xmit_pkts; + eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; /* For secondary processes, the primary has done all the work */ if (rte_eal_process_type() != RTE_PROC_PRIMARY) @@ -971,10 +971,10 @@ nfp_pf_secondary_init(struct rte_pci_device *pci_dev) return -ENODEV; } eth_dev->process_private = cpp; - eth_dev->dev_ops = &nfp_net_eth_dev_ops; + eth_dev->dev_ops = &nfp_net_nfd3_eth_dev_ops; eth_dev->rx_queue_count = nfp_net_rx_queue_count; eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; - eth_dev->tx_pkt_burst = &nfp_net_xmit_pkts; + eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; rte_eth_dev_probing_finish(eth_dev); } diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index 08077632c6..d0fa1df24d 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -236,7 +236,7 @@ nfp_netvf_close(struct rte_eth_dev *dev) } /* Initialise and register VF driver with DPDK Application */ -static const struct eth_dev_ops nfp_netvf_eth_dev_ops = { +static const struct eth_dev_ops nfp_netvf_nfd3_eth_dev_ops = { .dev_configure = nfp_net_configure, .dev_start = nfp_netvf_start, .dev_stop = nfp_netvf_stop, @@ -259,7 +259,7 @@ static const struct eth_dev_ops nfp_netvf_eth_dev_ops = { .rss_hash_conf_get = nfp_net_rss_hash_conf_get, .rx_queue_setup = nfp_net_rx_queue_setup, .rx_queue_release = nfp_net_rx_queue_release, - .tx_queue_setup = nfp_net_tx_queue_setup, + .tx_queue_setup = nfp_net_nfd3_tx_queue_setup, .tx_queue_release = nfp_net_tx_queue_release, .rx_queue_intr_enable = nfp_rx_queue_intr_enable, .rx_queue_intr_disable = nfp_rx_queue_intr_disable, @@ -292,10 +292,10 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) hw = NFP_NET_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private); - eth_dev->dev_ops = &nfp_netvf_eth_dev_ops; + eth_dev->dev_ops = &nfp_netvf_nfd3_eth_dev_ops; eth_dev->rx_queue_count = nfp_net_rx_queue_count; eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; - eth_dev->tx_pkt_burst = &nfp_net_xmit_pkts; + eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; /* For secondary processes, the primary has done all the work */ if (rte_eal_process_type() != RTE_PROC_PRIMARY) diff --git a/drivers/net/nfp/nfp_rxtx.c b/drivers/net/nfp/nfp_rxtx.c index cd7faa2c58..9b769c9775 100644 --- a/drivers/net/nfp/nfp_rxtx.c +++ b/drivers/net/nfp/nfp_rxtx.c @@ -655,7 +655,7 @@ nfp_net_reset_tx_queue(struct nfp_net_txq *txq) } int -nfp_net_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, +nfp_net_nfd3_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, uint16_t nb_desc, unsigned int socket_id, const struct rte_eth_txconf *tx_conf) { @@ -670,7 +670,7 @@ nfp_net_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, PMD_INIT_FUNC_TRACE(); /* Validating number of descriptors */ - tx_desc_sz = nb_desc * sizeof(struct nfp_net_tx_desc); + tx_desc_sz = nb_desc * sizeof(struct nfp_net_nfd3_tx_desc); if (tx_desc_sz % NFP_ALIGN_RING_DESC != 0 || nb_desc > NFP_NET_MAX_TX_DESC || nb_desc < NFP_NET_MIN_TX_DESC) { @@ -718,7 +718,7 @@ nfp_net_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, * resizing in later calls to the queue setup function. */ tz = rte_eth_dma_zone_reserve(dev, "tx_ring", queue_idx, - sizeof(struct nfp_net_tx_desc) * + sizeof(struct nfp_net_nfd3_tx_desc) * NFP_NET_MAX_TX_DESC, NFP_MEMZONE_ALIGN, socket_id); if (tz == NULL) { @@ -743,7 +743,7 @@ nfp_net_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, /* Saving physical and virtual addresses for the TX ring */ txq->dma = (uint64_t)tz->iova; - txq->txds = (struct nfp_net_tx_desc *)tz->addr; + txq->txds = (struct nfp_net_nfd3_tx_desc *)tz->addr; /* mbuf pointers array for referencing mbufs linked to TX descriptors */ txq->txbufs = rte_zmalloc_socket("txq->txbufs", @@ -773,7 +773,7 @@ nfp_net_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, /* Leaving always free descriptors for avoiding wrapping confusion */ static inline -uint32_t nfp_free_tx_desc(struct nfp_net_txq *txq) +uint32_t nfp_net_nfd3_free_tx_desc(struct nfp_net_txq *txq) { if (txq->wr_p >= txq->rd_p) return txq->tx_count - (txq->wr_p - txq->rd_p) - 8; @@ -790,14 +790,14 @@ uint32_t nfp_free_tx_desc(struct nfp_net_txq *txq) * This function uses the host copy* of read/write pointers */ static inline -uint32_t nfp_net_txq_full(struct nfp_net_txq *txq) +uint32_t nfp_net_nfd3_txq_full(struct nfp_net_txq *txq) { - return (nfp_free_tx_desc(txq) < txq->tx_free_thresh); + return (nfp_net_nfd3_free_tx_desc(txq) < txq->tx_free_thresh); } /* nfp_net_tx_tso - Set TX descriptor for TSO */ static inline void -nfp_net_tx_tso(struct nfp_net_txq *txq, struct nfp_net_tx_desc *txd, +nfp_net_nfd3_tx_tso(struct nfp_net_txq *txq, struct nfp_net_nfd3_tx_desc *txd, struct rte_mbuf *mb) { uint64_t ol_flags; @@ -828,7 +828,7 @@ nfp_net_tx_tso(struct nfp_net_txq *txq, struct nfp_net_tx_desc *txd, /* nfp_net_tx_cksum - Set TX CSUM offload flags in TX descriptor */ static inline void -nfp_net_tx_cksum(struct nfp_net_txq *txq, struct nfp_net_tx_desc *txd, +nfp_net_nfd3_tx_cksum(struct nfp_net_txq *txq, struct nfp_net_nfd3_tx_desc *txd, struct rte_mbuf *mb) { uint64_t ol_flags; @@ -857,11 +857,11 @@ nfp_net_tx_cksum(struct nfp_net_txq *txq, struct nfp_net_tx_desc *txd, } uint16_t -nfp_net_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) +nfp_net_nfd3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) { struct nfp_net_txq *txq; struct nfp_net_hw *hw; - struct nfp_net_tx_desc *txds, txd; + struct nfp_net_nfd3_tx_desc *txds, txd; struct rte_mbuf *pkt; uint64_t dma_addr; int pkt_size, dma_size; @@ -876,10 +876,10 @@ nfp_net_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) PMD_TX_LOG(DEBUG, "working for queue %u at pos %d and %u packets", txq->qidx, txq->wr_p, nb_pkts); - if ((nfp_free_tx_desc(txq) < nb_pkts) || (nfp_net_txq_full(txq))) + if ((nfp_net_nfd3_free_tx_desc(txq) < nb_pkts) || (nfp_net_nfd3_txq_full(txq))) nfp_net_tx_free_bufs(txq); - free_descs = (uint16_t)nfp_free_tx_desc(txq); + free_descs = (uint16_t)nfp_net_nfd3_free_tx_desc(txq); if (unlikely(free_descs == 0)) return 0; @@ -913,8 +913,8 @@ nfp_net_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) * multisegment packet, but TSO info needs to be in all of them. */ txd.data_len = pkt->pkt_len; - nfp_net_tx_tso(txq, &txd, pkt); - nfp_net_tx_cksum(txq, &txd, pkt); + nfp_net_nfd3_tx_tso(txq, &txd, pkt); + nfp_net_nfd3_tx_cksum(txq, &txd, pkt); if ((pkt->ol_flags & RTE_MBUF_F_TX_VLAN) && (hw->cap & NFP_NET_CFG_CTRL_TXVLAN)) { diff --git a/drivers/net/nfp/nfp_rxtx.h b/drivers/net/nfp/nfp_rxtx.h index dec1857da3..d784f52b66 100644 --- a/drivers/net/nfp/nfp_rxtx.h +++ b/drivers/net/nfp/nfp_rxtx.h @@ -53,7 +53,7 @@ #define PCIE_DESC_TX_ENCAP_VXLAN (1 << 1) #define PCIE_DESC_TX_ENCAP_GRE (1 << 0) -struct nfp_net_tx_desc { +struct nfp_net_nfd3_tx_desc { union { struct { uint8_t dma_addr_hi; /* High bits of host buf address */ @@ -124,7 +124,7 @@ struct nfp_net_txq { * of the queue and @size is the size in bytes for the queue * (needed for free) */ - struct nfp_net_tx_desc *txds; + struct nfp_net_nfd3_tx_desc *txds; /* * At this point 48 bytes have been used for all the fields in the @@ -286,10 +286,10 @@ int nfp_net_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, struct rte_mempool *mp); void nfp_net_tx_queue_release(struct rte_eth_dev *dev, uint16_t queue_idx); void nfp_net_reset_tx_queue(struct nfp_net_txq *txq); -int nfp_net_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, +int nfp_net_nfd3_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, uint16_t nb_desc, unsigned int socket_id, const struct rte_eth_txconf *tx_conf); -uint16_t nfp_net_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, +uint16_t nfp_net_nfd3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts); #endif /* _NFP_RXTX_H_ */ From patchwork Thu Jun 23 02:26:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 113287 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 680D9A0545; Thu, 23 Jun 2022 04:27:35 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BD47942B6E; Thu, 23 Jun 2022 04:27:18 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2100.outbound.protection.outlook.com [40.107.94.100]) by mails.dpdk.org (Postfix) with ESMTP id 71F7A42B74 for ; Thu, 23 Jun 2022 04:27:09 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AB4BMsuJHLbbIisBWA0dTPzfjmsThQcWJehZWvLc5D1KPJviq78f3oD5pfEDBba8QEIXuNoLBCS0jq7k1+KEKOz6KTN5ZvRtPi9H5mMdP7ZnK43P9txO0N1uVUsc8OmkF1dTcNESajP31zi8dfCb+b2pyjguLwrt28oDB+U/pWMVG0jt80Ngh34mgRRrlLz5KIH/kQ3Gz7ODNuSQ1JKaGDBp/K36UDMR3IJfHVGAX3csjInJGGTnf4rLuRL8SNM7PGkKT/ZHJOcc/Pj897B47conWPGaqcFWEw2rPT1zLAECYIakEMFzyoy/IbScOqJaTsRsGz0/hL661nhG1LfjNw== 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=+IbkRzZI+k90O8t0zYy11/8e4XRdT5anWVyDXpR/Z0c=; b=E+tpuh67qkQ6mUlgH/OZpLp5rdgjRDpOZAsf3NCTslJe2XyBZTwuDwoAzdHdbMQcMe7IyHAqHoagL+RvOQDvI6YRWFTt1Zz3RCaqIb1CwDIuTy5YubY7BkhuYHoL9g76V9ixhLWs/Pg78269ZKkOc8l32RT4uOz7DHfAUc1pv+4fAsiY7Nt9DmyCZvGPupidWVNUW2Vg38wQ9L1+OnrPWl9SejoBkaABZlY4HlcR6oELrPjIP4vMBMhL08AyOI+R6WZSHzk2q75Nw6AgF02w+BxRnxqk8rZFoqYUjzfIMPtTNZn3BVKv82R3gc4fjiFO8fGaC9E6E9fz/iEvB6sFlA== 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=+IbkRzZI+k90O8t0zYy11/8e4XRdT5anWVyDXpR/Z0c=; b=nrZGKMwmmDgnbR5qqbQBbtkoReAJe9LsbtkN3tbGdwzWzpltCokBi5wv0yK+WGeHs7btU7iQ5UD/KhdMrcw4QxpgkEzO5Ty9Ymiq1GAU+PAWglJAdwF8J6UaoL09AxYa2ET5Sl4oudYbP7cNocK46O2omZMvuAq64MDEFgUB48I= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by MN2PR13MB3535.namprd13.prod.outlook.com (2603:10b6:208:169::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Thu, 23 Jun 2022 02:27:07 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35%7]) with mapi id 15.20.5373.015; Thu, 23 Jun 2022 02:27:07 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Diana Wang , Peng Zhang , Chaoyong He Subject: [PATCH v4 06/13] net/nfp: support NFP3800 card Date: Thu, 23 Jun 2022 04:26:08 +0200 Message-Id: <20220623022615.3628093-7-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220623022615.3628093-1-jin.liu@corigine.com> References: <20220617093444.2004000-1-jin.liu@corigine.com> <20220623022615.3628093-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P265CA0222.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:33a::10) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 99882342-93e2-4652-4c3a-08da54bfde61 X-MS-TrafficTypeDiagnostic: MN2PR13MB3535:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vkmPGzhwiLccGS+R1iPbgiCbFvf69NLEhcaiAweGEd6hlhpF4wrh+bSPpoL1lBqCbn68i+nt7wZ6/qJjyp99RKvR1ec+0MOA9bxPcyyRa+556rdkXZeo6RvIuqfTFzxP8+xQIFxeo98P749hJ7KVf30AHdVfG5HaTE/uVPK2t5JUjoH+pCjJ8zvo5WTfvAvww2xpaeaBurD4BrpHuy62zrE5fxJpxlAPwBYdKui179NeB0IZiSaOy8PnrVJt3rG8cytcwzO4x2GdaPU6Y+P7rouf/4ILZLw3Y3S2ODDt8D9OSsFdDIhy9tC2vnfFtPrWV40ebR3nMy/rCGTn9PopjJw6eWXus0f/Ex//weN5kk6oqDAt4STDRGccVns20qh+YExpCuHFnMrof+tNfXqXGE0U+tiu07Dc4F5lmcRWycfAVdTAsARcM2wXv+J+uotTSd1aaEnPNZu+XRQUl2k7vVQfbGXgnd9syGjyp+yNsZ9nPO0K5OsDmpnWW93YhuScFWgAV8DlSxBjAL5bVoFXrw0YJLRrztn/o1G+rVuEUw+v7qn5h39C6U9Qv/F37w6LJZnyA3kb0uLNbyl27uAzURu+vnQHVemK/a894pQ/nvs/MV4Sz7zANAfzXyryRbGlYXyaqWOZAsQVrL72OtbODsM1ZqvS7HpyRXdl07OgT0ESfhnPp2uv1dJrPSCiWamWYkM5d4RCurXkAUJQbQZfHf1c8xGsPNfPSxqJOBPnYF0UsGQ6G7Z/lSF7Bl2/C04HhZxEha6tl/j7u2sl/7EjCbNWrextF2Ac7XsoJbix9No= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(376002)(366004)(346002)(136003)(396003)(39830400003)(107886003)(1076003)(38100700002)(38350700002)(6486002)(36756003)(66574015)(8936002)(54906003)(2616005)(6916009)(5660300002)(316002)(66556008)(52116002)(6506007)(186003)(66946007)(8676002)(4326008)(66476007)(41300700001)(86362001)(6512007)(26005)(83380400001)(478600001)(2906002)(44832011); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?CsoXKYcp8XC4GW+Cluid82tC4Hn3?= =?utf-8?q?WQ4DyQvNBHS41AIrM4wlptq69gAZ7e05PPs9xOMSg6aEAJyod+nE3j7bDoCLV7ERO?= =?utf-8?q?WCaMCAo2hXN1NtXzfrx2L68L+DqfIweOBnjljilnr8wkhcxAc18o2PeehxmTO5jID?= =?utf-8?q?PRVinT1W0lPhtozxI2X9G/2wz1T/pf1GAEj8B1IIBiR1CX+V1AZHY50LiZescNw0D?= =?utf-8?q?2rWbZMOTsIJal+271fjCmf5ezltQsEfc6axv7zh3xkQV0gXW+nin4gljt+biltURy?= =?utf-8?q?mIxJu49C51Ixbwy1MFUtweaeNgMp34ABDVkl3YMWd+2HYJH86KNPDttkoZxrE6azj?= =?utf-8?q?kXB59CiQUSUw6VauQzBpeoYBvyJLqk880RxUjGNrGakEMonkIeiRPcIgoBLFjejgW?= =?utf-8?q?R0ZHltwwsuDPA4PZChn8BsGogPsql9u5CtyazPh6uMng0slnIesYwU26W4UeSHLSk?= =?utf-8?q?EgF5bU/cAvo3e2twuvg/7sAr6wbnTNwbBK6bRDwQUk4u1Foyi4X2kQpPEhHX9kknj?= =?utf-8?q?47BRl6KE0YxsniGUacy3VI5RIgbskVfDnZMLJKlgTUbg/584moUz320xf+2OQfNLk?= =?utf-8?q?HHyUkrToTqI01DkscrkmzZFNN+R1CQ9RZlnoS25uVKUyyTKlQRhsTW7urGRnjs76Q?= =?utf-8?q?baLbevNGRu0u55vJX/EsnAV3BLDQzhFVoRElwBO6bPxURN7HMHmXolwyVd39JJfda?= =?utf-8?q?Krhh7ZcKrOPS5MLgetPlWL71dx63J5gGTU3CX2CKDPTdFuQ3hVqW/1gTSbKywO+N8?= =?utf-8?q?NqvKIw45FJFF7vm72LPp3IfKDkkTdAR/ri+LISmNMOWi63GDFirMTAOJ5TY6gglFA?= =?utf-8?q?N6gkJKrrkzo4x+L1Ii6NhSjrjQ5ScZMzWzplVkK8UJk15oNu5duZM/XZD1RHhm7U0?= =?utf-8?q?gIYorFZG1nyT02ShCSIOhL6eMYYyUILW/h0TmGVogiqKJof25BmkeyABC0vJdPXxO?= =?utf-8?q?mbBxQwskJRHhwiN5Wb1Ln2mv13/hfIfh7b8FD/H85Nx/BWRLcySb88B+3PLK4VMu0?= =?utf-8?q?yHBzZtVuaINz27Zdqi6kXNt0Bd00IKFl4d2dc4U9LYCd9PF2V8VAC/bgMpEMEdyhR?= =?utf-8?q?aOZBVs38zc+BlNoneJCwYtuNKAnCLYN1x2raaFSR2mipOJCjxPQspjWCBtrkE1PvU?= =?utf-8?q?XZ1QBzWRXL3UUDeZtS2X2LFbyu/Kj4nh4XLgz+W0gK1Mdz0wuOW+b4P65ULlDrcCE?= =?utf-8?q?FYe/3MLYnO0pKd7Y4HG531pPwQAp0pquo0FPeNvJl+mDnpSt1TVCuU+Jt/VfO21Qs?= =?utf-8?q?FGZHTmFaR1rQ05yX2JxOndhJUABDMC2qgQv5G9HLHt+UtY6y2yamiexo7jAShM5Fg?= =?utf-8?q?/G+mZQwo+GCZlcUSAB0szE6TgfWEsOQSOWqwcUH1WlTCuY2mq5BUo11CMhRdIOJ08?= =?utf-8?q?RvsyjsnIFxGCnk38s1VQ0vOrX8/70HwyuoroGQz29PTpJI8UG7VLcsOc6/T+8toDT?= =?utf-8?q?+7eubK54EwxRoER39st1/EsY23HFGWd10F8Qu4AgSAb/Yq/3cn9K6GK2tFy+IY9jY?= =?utf-8?q?ymKzZYs9Djf8?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 99882342-93e2-4652-4c3a-08da54bfde61 X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2022 02:27:07.5251 (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: f2H2ULR3qD9Hq77GbGlTTOBI63PAEs2Ui88qG3jMWXk0zYylO2AmEGhZwANb9veHzgIvzwzlcJiwZ9jKulJCSQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR13MB3535 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 Add support for a new type of NIC NFP3800 card, and update some network card data acquisition interface functions. Signed-off-by: Jin Liu Signed-off-by: Diana Wang Signed-off-by: Peng Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- doc/guides/nics/nfp.rst | 3 ++- doc/guides/rel_notes/release_22_07.rst | 4 +++ drivers/net/nfp/nfp_common.h | 34 ++++++++++++++++++++++++-- drivers/net/nfp/nfp_ethdev.c | 28 ++++++++++++++++++--- drivers/net/nfp/nfp_ethdev_vf.c | 9 +++++-- drivers/net/nfp/nfpcore/nfp_cpp.h | 2 +- drivers/net/nfp/nfpcore/nfp_nsp_eth.c | 20 +++++++++++---- 7 files changed, 86 insertions(+), 14 deletions(-) diff --git a/doc/guides/nics/nfp.rst b/doc/guides/nics/nfp.rst index 30cdc69202..dcefac3ef6 100644 --- a/doc/guides/nics/nfp.rst +++ b/doc/guides/nics/nfp.rst @@ -12,7 +12,8 @@ up to 400-Gb/s. This document explains how to use DPDK with the Netronome Poll Mode Driver (PMD) supporting Netronome's Network Flow Processor 6xxx -(NFP-6xxx) and Netronome's Flow Processor 4xxx (NFP-4xxx). +(NFP-6xxx), Netronome's Network Flow Processor 4xxx (NFP-4xxx) and +Netronome's Network Flow Processor 38xx (NFP-38xx). NFP is a SRIOV capable device and the PMD supports the physical function (PF) and the virtual functions (VFs). diff --git a/doc/guides/rel_notes/release_22_07.rst b/doc/guides/rel_notes/release_22_07.rst index 7d5e3fac77..d5d8c735b1 100644 --- a/doc/guides/rel_notes/release_22_07.rst +++ b/doc/guides/rel_notes/release_22_07.rst @@ -108,6 +108,10 @@ New Features * Added support for MTU on Windows. * Added matching and RSS on IPsec ESP. +* **Updated Netronome nfp driver.** + + * Added support for NFP3800 NIC. + * **Updated VMware vmxnet3 networking driver.** * Added version 5 support. diff --git a/drivers/net/nfp/nfp_common.h b/drivers/net/nfp/nfp_common.h index 8e1b4fb6a4..19e96414e3 100644 --- a/drivers/net/nfp/nfp_common.h +++ b/drivers/net/nfp/nfp_common.h @@ -16,9 +16,11 @@ #define NFP_NET_PMD_VERSION "0.1" #define PCI_VENDOR_ID_NETRONOME 0x19ee +#define PCI_DEVICE_ID_NFP3800_PF_NIC 0x3800 +#define PCI_DEVICE_ID_NFP3800_VF_NIC 0x3803 #define PCI_DEVICE_ID_NFP4000_PF_NIC 0x4000 #define PCI_DEVICE_ID_NFP6000_PF_NIC 0x6000 -#define PCI_DEVICE_ID_NFP6000_VF_NIC 0x6003 +#define PCI_DEVICE_ID_NFP6000_VF_NIC 0x6003 /* Include NFP4000VF */ /* Forward declaration */ struct nfp_net_adapter; @@ -41,8 +43,16 @@ struct nfp_net_adapter; #define NFP_QCP_QUEUE_STS_HI 0x000c #define NFP_QCP_QUEUE_STS_HI_WRITEPTR_mask (0x3ffff) +#define NFP_PCIE_QCP_NFP3800_OFFSET 0x400000 +#define NFP_PCIE_QCP_NFP6000_OFFSET 0x80000 +#define NFP_PCIE_QUEUE_NFP3800_MASK 0x1ff +#define NFP_PCIE_QUEUE_NFP6000_MASK 0xff +#define NFP_PCIE_QCP_PF_OFFSET 0x0 +#define NFP_PCIE_QCP_VF_OFFSET 0x0 + /* The offset of the queue controller queues in the PCIe Target */ -#define NFP_PCIE_QUEUE(_q) (0x80000 + (NFP_QCP_QUEUE_ADDR_SZ * ((_q) & 0xff))) +#define NFP_PCIE_QUEUE(_offset, _q, _mask) \ + ((_offset) + (NFP_QCP_QUEUE_ADDR_SZ * ((_q) & (_mask)))) /* Interrupt definitions */ #define NFP_NET_IRQ_LSC_IDX 0 @@ -342,6 +352,26 @@ nfp_qcp_read(uint8_t *q, enum nfp_qcp_ptr ptr) return val & NFP_QCP_QUEUE_STS_HI_WRITEPTR_mask; } +static inline uint32_t +nfp_pci_queue(struct rte_pci_device *pdev, uint16_t queue) +{ + switch (pdev->id.device_id) { + case PCI_DEVICE_ID_NFP4000_PF_NIC: + case PCI_DEVICE_ID_NFP6000_PF_NIC: + return NFP_PCIE_QUEUE(NFP_PCIE_QCP_PF_OFFSET, queue, + NFP_PCIE_QUEUE_NFP6000_MASK); + case PCI_DEVICE_ID_NFP3800_VF_NIC: + return NFP_PCIE_QUEUE(NFP_PCIE_QCP_VF_OFFSET, queue, + NFP_PCIE_QUEUE_NFP3800_MASK); + case PCI_DEVICE_ID_NFP6000_VF_NIC: + return NFP_PCIE_QUEUE(NFP_PCIE_QCP_VF_OFFSET, queue, + NFP_PCIE_QUEUE_NFP6000_MASK); + default: + return NFP_PCIE_QUEUE(NFP_PCIE_QCP_PF_OFFSET, queue, + NFP_PCIE_QUEUE_NFP3800_MASK); + } +} + /* Prototypes for common NFP functions */ int nfp_net_reconfig(struct nfp_net_hw *hw, uint32_t ctrl, uint32_t update); int nfp_net_configure(struct rte_eth_dev *dev); diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index ae6cb5943f..cb84dc3188 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -446,12 +446,13 @@ nfp_net_init(struct rte_eth_dev *eth_dev) /* Work out where in the BAR the queues start. */ switch (pci_dev->id.device_id) { + case PCI_DEVICE_ID_NFP3800_PF_NIC: case PCI_DEVICE_ID_NFP4000_PF_NIC: case PCI_DEVICE_ID_NFP6000_PF_NIC: start_q = nn_cfg_readl(hw, NFP_NET_CFG_START_TXQ); - tx_bar_off = (uint64_t)start_q * NFP_QCP_QUEUE_ADDR_SZ; + tx_bar_off = nfp_pci_queue(pci_dev, start_q); start_q = nn_cfg_readl(hw, NFP_NET_CFG_START_RXQ); - rx_bar_off = (uint64_t)start_q * NFP_QCP_QUEUE_ADDR_SZ; + rx_bar_off = nfp_pci_queue(pci_dev, start_q); break; default: PMD_DRV_LOG(ERR, "nfp_net: no device ID matching"); @@ -764,6 +765,7 @@ nfp_pf_init(struct rte_pci_device *pci_dev) { int err; int ret = 0; + uint64_t addr; int total_ports; struct nfp_cpp *cpp; struct nfp_pf_dev *pf_dev; @@ -867,8 +869,24 @@ nfp_pf_init(struct rte_pci_device *pci_dev) PMD_INIT_LOG(DEBUG, "ctrl bar: %p", pf_dev->ctrl_bar); /* configure access to tx/rx vNIC BARs */ + switch (pci_dev->id.device_id) { + case PCI_DEVICE_ID_NFP3800_PF_NIC: + addr = NFP_PCIE_QUEUE(NFP_PCIE_QCP_NFP3800_OFFSET, + 0, NFP_PCIE_QUEUE_NFP3800_MASK); + break; + case PCI_DEVICE_ID_NFP4000_PF_NIC: + case PCI_DEVICE_ID_NFP6000_PF_NIC: + addr = NFP_PCIE_QUEUE(NFP_PCIE_QCP_NFP6000_OFFSET, + 0, NFP_PCIE_QUEUE_NFP6000_MASK); + break; + default: + PMD_INIT_LOG(ERR, "nfp_net: no device ID matching"); + err = -ENODEV; + goto ctrl_area_cleanup; + } + pf_dev->hw_queues = nfp_cpp_map_area(pf_dev->cpp, 0, 0, - NFP_PCIE_QUEUE(0), NFP_QCP_QUEUE_AREA_SZ, + addr, NFP_QCP_QUEUE_AREA_SZ, &pf_dev->hwqueues_area); if (pf_dev->hw_queues == NULL) { PMD_INIT_LOG(ERR, "nfp_rtsym_map fails for net.qc"); @@ -995,6 +1013,10 @@ nfp_pf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, } static const struct rte_pci_id pci_id_nfp_pf_net_map[] = { + { + RTE_PCI_DEVICE(PCI_VENDOR_ID_NETRONOME, + PCI_DEVICE_ID_NFP3800_PF_NIC) + }, { RTE_PCI_DEVICE(PCI_VENDOR_ID_NETRONOME, PCI_DEVICE_ID_NFP4000_PF_NIC) diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index d0fa1df24d..c46ee0f913 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -327,11 +327,12 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) /* Work out where in the BAR the queues start. */ switch (pci_dev->id.device_id) { + case PCI_DEVICE_ID_NFP3800_VF_NIC: case PCI_DEVICE_ID_NFP6000_VF_NIC: start_q = nn_cfg_readl(hw, NFP_NET_CFG_START_TXQ); - tx_bar_off = (uint64_t)start_q * NFP_QCP_QUEUE_ADDR_SZ; + tx_bar_off = nfp_pci_queue(pci_dev, start_q); start_q = nn_cfg_readl(hw, NFP_NET_CFG_START_RXQ); - rx_bar_off = (uint64_t)start_q * NFP_QCP_QUEUE_ADDR_SZ; + rx_bar_off = nfp_pci_queue(pci_dev, start_q); break; default: PMD_DRV_LOG(ERR, "nfp_net: no device ID matching"); @@ -456,6 +457,10 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) } static const struct rte_pci_id pci_id_nfp_vf_net_map[] = { + { + RTE_PCI_DEVICE(PCI_VENDOR_ID_NETRONOME, + PCI_DEVICE_ID_NFP3800_VF_NIC) + }, { RTE_PCI_DEVICE(PCI_VENDOR_ID_NETRONOME, PCI_DEVICE_ID_NFP6000_VF_NIC) diff --git a/drivers/net/nfp/nfpcore/nfp_cpp.h b/drivers/net/nfp/nfpcore/nfp_cpp.h index 720d3989e6..a04a68f546 100644 --- a/drivers/net/nfp/nfpcore/nfp_cpp.h +++ b/drivers/net/nfp/nfpcore/nfp_cpp.h @@ -214,7 +214,7 @@ void nfp_cpp_free(struct nfp_cpp *cpp); * @return true if model is in the NFP6000 family, false otherwise. */ #define NFP_CPP_MODEL_IS_6000(model) \ - ((NFP_CPP_MODEL_CHIP_of(model) >= 0x4000) && \ + ((NFP_CPP_MODEL_CHIP_of(model) >= 0x3800) && \ (NFP_CPP_MODEL_CHIP_of(model) < 0x7000)) /* diff --git a/drivers/net/nfp/nfpcore/nfp_nsp_eth.c b/drivers/net/nfp/nfpcore/nfp_nsp_eth.c index 67946891ab..f8f3c372ac 100644 --- a/drivers/net/nfp/nfpcore/nfp_nsp_eth.c +++ b/drivers/net/nfp/nfpcore/nfp_nsp_eth.c @@ -266,6 +266,7 @@ __nfp_eth_read_ports(struct nfp_nsp *nsp) struct nfp_eth_table *table; uint32_t table_sz; int i, j, ret, cnt = 0; + const struct rte_ether_addr *mac; entries = malloc(NSP_ETH_TABLE_SIZE); if (!entries) @@ -278,9 +279,15 @@ __nfp_eth_read_ports(struct nfp_nsp *nsp) goto err; } - for (i = 0; i < NSP_ETH_MAX_COUNT; i++) - if (entries[i].port & NSP_ETH_PORT_LANES_MASK) + /* The NFP3800 NIC support 8 ports, but only 2 ports are valid, + * the rest 6 ports mac are all 0, ensure we don't use these port + */ + for (i = 0; i < NSP_ETH_MAX_COUNT; i++) { + mac = (const struct rte_ether_addr *)entries[i].mac_addr; + if ((entries[i].port & NSP_ETH_PORT_LANES_MASK) && + (!rte_is_zero_ether_addr(mac))) cnt++; + } /* Some versions of flash will give us 0 instead of port count. For * those that give a port count, verify it against the value calculated @@ -299,10 +306,13 @@ __nfp_eth_read_ports(struct nfp_nsp *nsp) memset(table, 0, table_sz); table->count = cnt; - for (i = 0, j = 0; i < NSP_ETH_MAX_COUNT; i++) - if (entries[i].port & NSP_ETH_PORT_LANES_MASK) + for (i = 0, j = 0; i < NSP_ETH_MAX_COUNT; i++) { + mac = (const struct rte_ether_addr *)entries[i].mac_addr; + if ((entries[i].port & NSP_ETH_PORT_LANES_MASK) && + (!rte_is_zero_ether_addr(mac))) nfp_eth_port_translate(nsp, &entries[i], i, - &table->ports[j++]); + &table->ports[j++]); + } nfp_eth_calc_port_geometry(table); for (i = 0; i < (int)table->count; i++) From patchwork Thu Jun 23 02:26:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 113288 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 23B18A0545; Thu, 23 Jun 2022 04:27:41 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E73CA42B7C; Thu, 23 Jun 2022 04:27:19 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2102.outbound.protection.outlook.com [40.107.94.102]) by mails.dpdk.org (Postfix) with ESMTP id 0B7E042823 for ; Thu, 23 Jun 2022 04:27:12 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EH+XA9OrcEqAW2nywGiLlLH9C0vSNDruZkDOqK2xqWsYZ+ZIyt/UjVarE+PFO498XFCOq14NflxUaWzRxzMgCcAMzTCBpRkcbjLdWBs+KxsDMaWDOUCHDkFuKaAfDmyMaBGS5Hi+K3lngmTPQN73IwMrVMXZ0WhFztdjqKK1OMt5fZeiH2fbRf5OKwz5UwR/qKJvt2t0+y2hydE/XxrUfe1tjd+pOPbyaDoH/04c/pvoG41agr3YJcsLbvsLf85TfseT4WFhFFPGXOMI/0IZq3K7McKOtDQdAOKBNGxoKxDLd0Qmf9idWVjGnFI4x5DTFSSAFaL0G9x4dWvMHXlOjA== 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=L3T+F9lLbwKb/edutfQI/I6V5Tc0434kyN5Bx9zMMS0=; b=mLWbtVerQqM/n1qmh+6b5c/Ka216AmkjPdV7ghPCW49yfY4ZGmZmGlk1ELLHRjPFGf0Ek44sxWb8RxoQVqsmAxtatIrfo/nIUPW1YK2ppTUTiYFCS+g14xKI7Va+azpR7TV5vX6dfnyIq+Y6bxF9av3TO/E66C5oIV8ttJA3NWJdrJK7GfUHz0uH34ngjl6dMUCzcXPLVewkJzPk+qJU1CyQa4k66FfxqrqoIaODXJtDXKFiqU0uU64olFw+5aOwEHGjcJK7XlbU/GBVnnKcXvtb5FVSics8OqFoTmmNhLf2m+pnO09byrftTodeLSRFQyvtXzogmTNRcNRwsyxK5Q== 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=L3T+F9lLbwKb/edutfQI/I6V5Tc0434kyN5Bx9zMMS0=; b=E5U8WQoEKIF99D/p3CPXOxHLMYFt1AeX71T9xtQJexXhktucUHcggGZGbCbmeof/xyzI9+SlYIk1xTHyH4VFqHEkA/ro2li6s5cjcwoTVX67qTBWon+Tj0E0qEZ1z7AZAa/4lfBtSiUILn34TV4a/o+AmMQyDsqxMul3sfwGWyo= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by MN2PR13MB3535.namprd13.prod.outlook.com (2603:10b6:208:169::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Thu, 23 Jun 2022 02:27:10 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35%7]) with mapi id 15.20.5373.015; Thu, 23 Jun 2022 02:27:10 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Diana Wang , Peng Zhang , Chaoyong He Subject: [PATCH v4 07/13] net/nfp: support firmware with NFDk Date: Thu, 23 Jun 2022 04:26:09 +0200 Message-Id: <20220623022615.3628093-8-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220623022615.3628093-1-jin.liu@corigine.com> References: <20220617093444.2004000-1-jin.liu@corigine.com> <20220623022615.3628093-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P265CA0222.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:33a::10) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 96bace3c-f150-4b20-a605-08da54bfe009 X-MS-TrafficTypeDiagnostic: MN2PR13MB3535:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JjQ6nQPVOxcfB3ZYXkO/lLyLT8aUC8PQaxRboIVQedUT1ehVnAQkvLa73HTwhDTxXeUe1iRQ2JWTVAUWAFJ0MzgeEhX7SnqfD6mKnuBLvNLSEoQrLx14a4KrOpORyye9jHUUG+FuI34wlMkeIDtY6TKObYbxW5b1nn4WuxmfWoPsK2RZXRKdqcAIztTg24MDzKOJbMKg8XJXpxVMiu2ImJuROOGSqnXQS2d4S/c5MO1Wz3o7nv5/I3dzCUKLO0LJQhGStcYw382ZAp5K6xXpepHv+W9iXgzTHif+OyakC3jugnqBnveduZIbprpESOZmQcnCea2qGMSEEDQ9X3T7Omg5Qqg8pxvq+i8V8YuBTmNXdtltY1DN0oKRf5KjHgAi9ZfyXWjwpN6w3cU83VEi3Qxv3cIAtPOSV9iwtSviKRuiVZoceLZKKBm+dNnopsmauasnAP4/3iSLA4oxXVm8x1m5Xxxbx5e39hZaVlADNbOwnabGBs2BeZoqHQ3LDbZrOj9oI7Tynw14mophI+6vQHAAbEBOiEnqq2WJkkNwmbZvouDLGlWOdsHQqXpxvXdMCMe5YOye61xDe4ssfIVKkgRcZIod886FD6zMIgeUkpt8GPTVvwK8JvfpjjJNtgDIW2T0Qml3u324DiDztpKdwBbcrmSqr9KnWEU6v4hS/EZUfOjWKK/iGre5mRexS93bylXgfMwy4IjWW5TEUbTzbGRLmj9OF/AGecCzwTSeeljW8G94zJWa17IT+XVnhrBIYPtf8rIhsXAcHieNnLRDNAdvaCNSq0VukbSw7lYxAEz6V/wgtzRNYliRO3rZcaGdB6DUTLzsdL4GMtAdB/efYg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(376002)(366004)(346002)(136003)(396003)(39830400003)(107886003)(1076003)(38100700002)(38350700002)(6486002)(966005)(36756003)(8936002)(54906003)(2616005)(6916009)(5660300002)(316002)(66556008)(52116002)(6506007)(186003)(66946007)(8676002)(4326008)(66476007)(41300700001)(86362001)(6512007)(26005)(83380400001)(478600001)(2906002)(44832011); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?7XqVi0VahDymvBQW3SGPpeEhWLus?= =?utf-8?q?HINPy9Ln2EQ/cHjjuM2YXNNTS2jbYp8M1aHO6/5qN+qnczyJmDoqzr76dRuKpaO4G?= =?utf-8?q?ZBCfJubLIZ3v0wYWMKVaF/Jcq+dGi8th1xuCaFGXmkCLtGotS/hjyshWh/EbJ+vVz?= =?utf-8?q?+USH4h+noJTn60J7gIlma0YCcp35JZIDvI13Zx7dUFiMTt6bGD3ZjqOagk1h3DpQC?= =?utf-8?q?exChKGAQLPlhhAhXiiDvSMeE137Am6AHbxXFBdID6HmbTgMSmDW+2xQI2NknVHb0l?= =?utf-8?q?zvmzrANvglHJzKIeJxVeePmpLcAkgLcG9L65xlxhEP5svQMngbGfe98tDexoQZtCV?= =?utf-8?q?ecWWvBWWm5mdb6cp3CGLFcEmaN/Fq/O7eOuVKoR6bmDYlOYmsNFnVFZn6M/U2XSFs?= =?utf-8?q?/clgVUuduvgS4c4/SqceR0602rOYg3mXVGgrtRvQR3tpdlbawNIi/np6nVSIlnXA0?= =?utf-8?q?90UcnZ8/N2ICqL4NgGQ9HTM7J+6JEWDMdq3zL+eVmEeKuaG3OrqaeUVYZGzCvykaY?= =?utf-8?q?V+s7IkYziHUA4dGY22K9MlzoT95vXrpjQ5UswjTZ363hA5a4tsxFf39/wQVqny12/?= =?utf-8?q?/IHAIq8ncD/2IVvh4GhQPljDkEFiWb7yjoH5aB2SYkbTUCf9h5SdD0cJYYE+tIfnO?= =?utf-8?q?ExRZw0KR4+K8jp9qs2bx4ehlS+Ag3jQK4luP6ckfXPeUV2H8zUMmoTxTb7Q7+s7v7?= =?utf-8?q?0wnQrEc4d3XDjIYFenSD2Obh/3yD8Bh8GWiui7NDoV0aa1sAKye8NnTWggsU/i51w?= =?utf-8?q?e41yQc7kTyHnfHZxrPdnDYdeS6OZ1guNpc+NCfBIRl57hw8ex53L5qXGGAyMJHc6b?= =?utf-8?q?51uVrP6XIiOVBYiI6bdF4yrdgUBVzT4sEfPYBlOQAGo6tmPacR2xFOJGPqA6L2CRI?= =?utf-8?q?88X/Xp/HbDW3tuQq+IyV4d658afM7vaep1RZFiRWx12uRbtArafGJH0AGZh5Lylxh?= =?utf-8?q?uXWC8j3kA46uiBtWSF0G5mToCUerY/eHdA2BROY8W1/TpwCJXYmfJ0x3s0HYg9NDd?= =?utf-8?q?4GQMiAbmBQfVCywBTF2OMzp3qfDLMDR0J7WTGy5IUOfq++sAYE4sSNUYQRMC01il5?= =?utf-8?q?qPBTkpFuwxyCIJLokZe14HbjBWY/Qn+P6UyeRxsh2fNnwtdg+cVU+Cto+nVGr1HQp?= =?utf-8?q?uOT3D/DVNEOcwhTO/rWJrRt7s3MmkHhwD4TKH+U4UmTRagDWoUhmMWQ6YCkY6kFzT?= =?utf-8?q?jnVsbiYqn0aXcuyOjlUxrMfN4r+mkq1BEyzYEHtOcTvzKiIVzWwUmeqFxcv/3mE4u?= =?utf-8?q?W6zi1l5DiiHX8UEtUqtZiEj3XZcyHd8/JbsHCfT9oRqHdmN76+2jtmRFOAcQCUVgn?= =?utf-8?q?k9+7+0wm2LSFajgYVvGXDdG9p4abnP6YgZkQ9d60lwFB5Ek45YNqMRSo+ImItugIL?= =?utf-8?q?FPJOh9qUmyMEHbQcQPaDshf4FAd2tRWCBNF76GAhWi2/KynC1F6JXWd/2wKRr4ckR?= =?utf-8?q?RE+vGGqt6pdE4wKiRoD726ezxIsdnLVj/jIjCZ8XC6J5GJd0IfMwYICXGc0sfRJIV?= =?utf-8?q?LhlKpBn62JC4?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 96bace3c-f150-4b20-a605-08da54bfe009 X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2022 02:27:10.3374 (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: PNQET0Mzs1InzHpYt+Df2ClMoCI+MhDM9UX28xEhRtJrA1RSvzp+cqvG7Ikqb9CITLX1Hg+bZs4zAFWb/Qzs0Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR13MB3535 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 Modify nfp driver logic, add firmware version (NFD3 or NFDK) judgment, will according to the firmware version, mount different driver functions. Signed-off-by: Jin Liu Signed-off-by: Diana Wang Signed-off-by: Peng Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- doc/guides/nics/nfp.rst | 7 ++-- doc/guides/rel_notes/release_22_07.rst | 1 + drivers/net/nfp/nfp_ctrl.h | 2 + drivers/net/nfp/nfp_ethdev.c | 49 +++++++++++++++++++----- drivers/net/nfp/nfp_ethdev_vf.c | 53 +++++++++++++++++++------- 5 files changed, 85 insertions(+), 27 deletions(-) diff --git a/doc/guides/nics/nfp.rst b/doc/guides/nics/nfp.rst index dcefac3ef6..55539accc2 100644 --- a/doc/guides/nics/nfp.rst +++ b/doc/guides/nics/nfp.rst @@ -100,9 +100,10 @@ more than one SmartNIC, same type of SmartNIC or different ones, and to upload a different firmware to each SmartNIC. .. Note:: - Currently the NFP PMD supports using the PF with Agilio Basic Firmware. See - https://help.netronome.com/support/solutions for more information on the - various firmwares supported by the Netronome Agilio CX smartNIC. + Currently the NFP PMD supports using the PF with Agilio Firmware with NFD3 + and Agilio Firmware with NFDk. See https://help.netronome.com/support/solutions + for more information on the various firmwares supported by the Netronome + Agilio CX smartNIC. PF multiport support -------------------- diff --git a/doc/guides/rel_notes/release_22_07.rst b/doc/guides/rel_notes/release_22_07.rst index d5d8c735b1..64308e6c1a 100644 --- a/doc/guides/rel_notes/release_22_07.rst +++ b/doc/guides/rel_notes/release_22_07.rst @@ -111,6 +111,7 @@ New Features * **Updated Netronome nfp driver.** * Added support for NFP3800 NIC. + * Added support for firmware with NFDk. * **Updated VMware vmxnet3 networking driver.** diff --git a/drivers/net/nfp/nfp_ctrl.h b/drivers/net/nfp/nfp_ctrl.h index 4dd62ef194..e73715e2aa 100644 --- a/drivers/net/nfp/nfp_ctrl.h +++ b/drivers/net/nfp/nfp_ctrl.h @@ -135,6 +135,8 @@ * - define more STS bits */ #define NFP_NET_CFG_VERSION 0x0030 +#define NFP_NET_CFG_VERSION_DP_NFD3 0 +#define NFP_NET_CFG_VERSION_DP_NFDK 1 #define NFP_NET_CFG_VERSION_RESERVED_MASK (0xff << 24) #define NFP_NET_CFG_VERSION_CLASS_MASK (0xff << 16) #define NFP_NET_CFG_VERSION_CLASS(x) (((x) & 0xff) << 16) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index cb84dc3188..1bbba9187e 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -358,6 +358,32 @@ static const struct eth_dev_ops nfp_net_nfd3_eth_dev_ops = { .rx_queue_intr_disable = nfp_rx_queue_intr_disable, }; +static inline int +nfp_net_ethdev_ops_mount(struct nfp_net_hw *hw, struct rte_eth_dev *eth_dev) +{ + switch (NFD_CFG_CLASS_VER_of(hw->ver)) { + case NFP_NET_CFG_VERSION_DP_NFD3: + break; + case NFP_NET_CFG_VERSION_DP_NFDK: + if (NFD_CFG_MAJOR_VERSION_of(hw->ver) < 5) { + PMD_DRV_LOG(ERR, "NFDK must use ABI 5 or newer, found: %d", + NFD_CFG_MAJOR_VERSION_of(hw->ver)); + return -EINVAL; + } + break; + default: + PMD_DRV_LOG(ERR, "The version of firmware is not correct."); + return -EINVAL; + } + + eth_dev->dev_ops = &nfp_net_nfd3_eth_dev_ops; + eth_dev->rx_queue_count = nfp_net_rx_queue_count; + eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; + eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; + + return 0; +} + static int nfp_net_init(struct rte_eth_dev *eth_dev) { @@ -402,11 +428,6 @@ nfp_net_init(struct rte_eth_dev *eth_dev) PMD_INIT_LOG(DEBUG, "Working with physical port number: %d, " "NFP internal port number: %d", port, hw->nfp_idx); - eth_dev->dev_ops = &nfp_net_nfd3_eth_dev_ops; - eth_dev->rx_queue_count = nfp_net_rx_queue_count; - eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; - eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; - /* For secondary processes, the primary has done all the work */ if (rte_eal_process_type() != RTE_PROC_PRIMARY) return 0; @@ -441,6 +462,11 @@ nfp_net_init(struct rte_eth_dev *eth_dev) PMD_INIT_LOG(DEBUG, "ctrl bar: %p", hw->ctrl_bar); + hw->ver = nn_cfg_readl(hw, NFP_NET_CFG_VERSION); + + if (nfp_net_ethdev_ops_mount(hw, eth_dev)) + return -EINVAL; + hw->max_rx_queues = nn_cfg_readl(hw, NFP_NET_CFG_MAX_RXRINGS); hw->max_tx_queues = nn_cfg_readl(hw, NFP_NET_CFG_MAX_TXRINGS); @@ -473,7 +499,6 @@ nfp_net_init(struct rte_eth_dev *eth_dev) nfp_net_cfg_queue_setup(hw); /* Get some of the read-only fields from the config BAR */ - hw->ver = nn_cfg_readl(hw, NFP_NET_CFG_VERSION); hw->cap = nn_cfg_readl(hw, NFP_NET_CFG_CAP); hw->max_mtu = nn_cfg_readl(hw, NFP_NET_CFG_MAX_MTU); hw->mtu = RTE_ETHER_MTU; @@ -939,6 +964,7 @@ nfp_pf_secondary_init(struct rte_pci_device *pci_dev) int err; int total_ports; struct nfp_cpp *cpp; + struct nfp_net_hw *hw; struct nfp_rtsym_table *sym_tbl; if (pci_dev == NULL) @@ -988,11 +1014,14 @@ nfp_pf_secondary_init(struct rte_pci_device *pci_dev) "secondary process attach failed, ethdev doesn't exist"); return -ENODEV; } + + hw = NFP_NET_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private); + + if (nfp_net_ethdev_ops_mount(hw, eth_dev)) + return -EINVAL; + eth_dev->process_private = cpp; - eth_dev->dev_ops = &nfp_net_nfd3_eth_dev_ops; - eth_dev->rx_queue_count = nfp_net_rx_queue_count; - eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; - eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; + rte_eth_dev_probing_finish(eth_dev); } diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index c46ee0f913..0b4660aba6 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -265,6 +265,32 @@ static const struct eth_dev_ops nfp_netvf_nfd3_eth_dev_ops = { .rx_queue_intr_disable = nfp_rx_queue_intr_disable, }; +static inline int +nfp_netvf_ethdev_ops_mount(struct nfp_net_hw *hw, struct rte_eth_dev *eth_dev) +{ + switch (NFD_CFG_CLASS_VER_of(hw->ver)) { + case NFP_NET_CFG_VERSION_DP_NFD3: + break; + case NFP_NET_CFG_VERSION_DP_NFDK: + if (NFD_CFG_MAJOR_VERSION_of(hw->ver) < 5) { + PMD_DRV_LOG(ERR, "NFDK must use ABI 5 or newer, found: %d", + NFD_CFG_MAJOR_VERSION_of(hw->ver)); + return -EINVAL; + } + break; + default: + PMD_DRV_LOG(ERR, "The version of firmware is not correct."); + return -EINVAL; + } + + eth_dev->dev_ops = &nfp_netvf_nfd3_eth_dev_ops; + eth_dev->rx_queue_count = nfp_net_rx_queue_count; + eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; + eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; + + return 0; +} + static int nfp_netvf_init(struct rte_eth_dev *eth_dev) { @@ -292,10 +318,19 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) hw = NFP_NET_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private); - eth_dev->dev_ops = &nfp_netvf_nfd3_eth_dev_ops; - eth_dev->rx_queue_count = nfp_net_rx_queue_count; - eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; - eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; + hw->ctrl_bar = (uint8_t *)pci_dev->mem_resource[0].addr; + if (hw->ctrl_bar == NULL) { + PMD_DRV_LOG(ERR, + "hw->ctrl_bar is NULL. BAR0 not configured"); + return -ENODEV; + } + + PMD_INIT_LOG(DEBUG, "ctrl bar: %p", hw->ctrl_bar); + + hw->ver = nn_cfg_readl(hw, NFP_NET_CFG_VERSION); + + if (nfp_netvf_ethdev_ops_mount(hw, eth_dev)) + return -EINVAL; /* For secondary processes, the primary has done all the work */ if (rte_eal_process_type() != RTE_PROC_PRIMARY) @@ -313,15 +348,6 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) pci_dev->addr.domain, pci_dev->addr.bus, pci_dev->addr.devid, pci_dev->addr.function); - hw->ctrl_bar = (uint8_t *)pci_dev->mem_resource[0].addr; - if (hw->ctrl_bar == NULL) { - PMD_DRV_LOG(ERR, - "hw->ctrl_bar is NULL. BAR0 not configured"); - return -ENODEV; - } - - PMD_INIT_LOG(DEBUG, "ctrl bar: %p", hw->ctrl_bar); - hw->max_rx_queues = nn_cfg_readl(hw, NFP_NET_CFG_MAX_RXRINGS); hw->max_tx_queues = nn_cfg_readl(hw, NFP_NET_CFG_MAX_TXRINGS); @@ -354,7 +380,6 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev) nfp_net_cfg_queue_setup(hw); /* Get some of the read-only fields from the config BAR */ - hw->ver = nn_cfg_readl(hw, NFP_NET_CFG_VERSION); hw->cap = nn_cfg_readl(hw, NFP_NET_CFG_CAP); hw->max_mtu = nn_cfg_readl(hw, NFP_NET_CFG_MAX_MTU); hw->mtu = RTE_ETHER_MTU; From patchwork Thu Jun 23 02:26:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 113289 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 E56DDA0545; Thu, 23 Jun 2022 04:27:46 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 225B242B80; Thu, 23 Jun 2022 04:27:21 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2129.outbound.protection.outlook.com [40.107.94.129]) by mails.dpdk.org (Postfix) with ESMTP id 9A8FC4069C for ; Thu, 23 Jun 2022 04:27:14 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YuedeGBevvv9mKsL2HBVDa5iMgABBYgaLRbyjCXTPWwZOVE/da++rn022UmuuR1q5eUxSGQaCDMBC1c1R9U+mMZtN3HsLeFU9+vQK8FkbgRRcUi87aBJ+2jXB+gvErbYVL0B0qNYM1yMwHTuKzp5WqTTiDL0CBZD6MyjSX957coyBF0wEmvEiLop5tCq4m5jvyYlT4Evp7C7z5QFW1GU3AIxuqkFCPVSJjRJYBB8nl/Xrk2q0IXx9AbNVBazcrRJna/AMWigIWeeg5tpOfeEpztH2S3mMumM1T3W3BxT1j4Oj9TLSgqMX8hjFD9xBExVSjSOZ1Fv3a1CM60gpyzE2A== 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=Cjt7IeDq2CKmNe4bfo6q0xJ/6rfvIeanQKvRwqjDELo=; b=PeiNp0BFgmrbI+YqDS1HRD0mhWzLkkAoYSteOHU1VzkUi0VZLhHdKzFDD7eKDzjtXYkQ2faChtwsIgeesZaYOBG6eCa86+JWPWvEuL9pqLXRJ+ArrW3TMFJw1+EMEgp2k5Fmw1rZUaSJJ0iDXubUAmT1luel+lRlysSZG8JpRLjGEslT4477cCTVdWrciFLbau7ynFAISKnzZONLVi14W2AsweKyDl8b6moFeGNVi1JEjdgIy1xkuW/pxuJWA+b7UwlBdQXjS9E4w7tfLLP8PtaDHDwwsrBJe74TKC7ZukVgTI5RdG6i/CIPDXo7TT5hTjTx3KyJN88VHwb8zNNrsw== 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=Cjt7IeDq2CKmNe4bfo6q0xJ/6rfvIeanQKvRwqjDELo=; b=MOCBm7b+ON8pnBcN1UftSaeC/pVIdAkyqdQrGzlnASX9Dc0+sfybGc0lOsPxt0MyKai4/jBZCA5hB/tuKWEODOHdvc7cBQ8wH3HyaLV7b5BJAQx6fwfSMlkHVsIhYIW4kAbUr25gCRoj6StfICnOTaA3iolGI4ttxjGn7VxCN+A= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by MN2PR13MB3535.namprd13.prod.outlook.com (2603:10b6:208:169::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Thu, 23 Jun 2022 02:27:13 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35%7]) with mapi id 15.20.5373.015; Thu, 23 Jun 2022 02:27:13 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Diana Wang , Peng Zhang , Chaoyong He Subject: [PATCH v4 08/13] net/nfp: structure adjustment Date: Thu, 23 Jun 2022 04:26:10 +0200 Message-Id: <20220623022615.3628093-9-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220623022615.3628093-1-jin.liu@corigine.com> References: <20220617093444.2004000-1-jin.liu@corigine.com> <20220623022615.3628093-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P265CA0222.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:33a::10) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 31ab9d58-158d-4fb7-26d8-08da54bfe1b9 X-MS-TrafficTypeDiagnostic: MN2PR13MB3535:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KZM99Zn33Q10yRcmMO3vbgGoA/HKzTmFD2YGwyrh0QSTyOVuPehrcyLj+ah/GLOMZq9/PrrC7fVONW8qG7X+AzmjVtDb+xBpAq72bzqCK8mwaaYMRjEVQa5vRU7BabbothDDwZQ+jKKvZjQyfiX9OetZOEiTtq9OLo0CJM/q96tUxIGOJTiKsRqJREL5aLo4y/Hnef53D4WYVxMYypeUoOVceVP+QQ9zFNNk7ajlXYHDE5rEv+65bFROpfbsKxhybwoUUMgB7KchBIpHbC5Pvxbu1wyGgmqwdEeZvku+LAKrLsaA21gpWeNleExmgsBGYh4E6QkO+KdxI4ipnLbhDOwLjykjlqeOxxhEoEcMzIkwHONJMhZK0LpHNFpI4v9UrBgXD+t7HxEKfu3+PJw2T0Z2GbK9Q8XgplTv+xj3c5wz7yrjc1P6FQ4ddqadpdO+h84ZAzNiJhgQLzIBWRJOWi/qmKlQkMAXuQbww8PoC0CeKXtSHfO/vNWm4cUMxKh7j/7GlDIptUdeL/gyoBLTrwV9iNyL1tVNWcCh5/CA6JtLJWmIbWqQTG+6KMaiulBmddZW7M64LrLevnGT1IZrGtUIeTjcMdkYkJ/AZcKeGLnipa/C820cNbz2Nrl+6lr3++TiE8Kx4GM/Sm0EaCplt9S7ElOoadQXUTqwjNd0UOv0faoDXTNJZNDm9pryNBOSeOeHYxPNQuOCYF5oQw8Im0vO/Fa01Z/Dg91qKy7JDm1qp8PA5pqZ+fzdO8MIQPT3YCKz/HMzFpWgMk7jMu1p+AjLHyUTh9dypk7IeSr4pG+NV59ScvxhEdKfR247Jmkx X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(376002)(366004)(346002)(136003)(396003)(39830400003)(107886003)(1076003)(38100700002)(38350700002)(6486002)(36756003)(66574015)(8936002)(54906003)(2616005)(6916009)(5660300002)(316002)(66556008)(52116002)(6506007)(186003)(66946007)(8676002)(4326008)(66476007)(41300700001)(86362001)(6512007)(26005)(83380400001)(478600001)(2906002)(44832011); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?nC6zramb8uwJ+yC/IPhONur9oVWs?= =?utf-8?q?+Lg9O+1lUTCXFHGbleiLJwFHSEI5jcfhgshwnQ20gqfA3Xcu7CSUi/qLE9GeAEZMs?= =?utf-8?q?yn6B2Gq6fxcX6ardOa+3uEsZBlh/opHi6lIqch5T2zrBgQhNSXzwDRqXd8u8ArgBJ?= =?utf-8?q?UsJPgmorHwoGXGxJBSpiHTAP9wL30IwwNlMyklYBuqZJt1GL2OPGwzZ5CsTGRVJVE?= =?utf-8?q?taHtGDwu38ObOFUx74b8DkN+aOwhQCPzeB0gP5PnESvG8kwW3bBTR8dmVk4uuo54V?= =?utf-8?q?ssGCBpSa6Y0Xqe/PuwQMjuplB7fsl2GlA+ODotMvsTzi4IX9mnnMnXXS4e9EV5sb6?= =?utf-8?q?E1YpmELZAhp4XiKC0U/ms2gdVsGbnC2m2iGCQL+NKvRAq5lGJEUMZxPmqTdZXxxho?= =?utf-8?q?KvXkXmjyoTJb1qQpCkk4807Tt2NGLO+/+XcWwPQhlY48E6NluOIQ3bVSnEWOCx0CP?= =?utf-8?q?iiWBWl3+UaWXO0MLMc+rPZgj5acMiu4kUw350WD1eW7RPnQElZhEckR4XSGg6dNty?= =?utf-8?q?qqEwC/SUos+8tS8SrU2ZDm4bj4sM+XLzoEhdZQ2v+VqDgpJV5F54pUz9IWSMEnIQu?= =?utf-8?q?NAUQgzNqUOjKyQ+T53H02xN8cpIbYNnZtCutdq51Ti+t47I2ZTPB/aQS8kvbrR288?= =?utf-8?q?UGYf93UCUz+dvz3tHkFnOiWzZX1gVb8z7yl4NLH8NmT04rOVAPvTknfhPicYYcGRC?= =?utf-8?q?FfLJ5qr4YotbRM3iAqUHM8fVejb9zvt/E0AAzdgAAml0K7R+XHfmgnhHp634sJH58?= =?utf-8?q?5vaMP3SJe8XYr0VqvKwunSHTjHUnEPWEOixl3/m0qDSHWxtrOtCX/iMcglAe7eoLJ?= =?utf-8?q?/iupEzRMrXoO1iSHUWYDfbsqRiymBMaXDsF0MgoSj9tnPkOkCB2hiXt/cj9GPbdV5?= =?utf-8?q?27DA/qgqpaou57clvpmfZmBUImNw+aYpZ5ysgUO7hIgwJg4lgMXKtP89o5TcEBZ+6?= =?utf-8?q?juMNz6UjF3awQqNRWeSzMNsDjBemWTqLwMoP7E71YzKEmDpcj1FtjeyFPRUkZhBNY?= =?utf-8?q?SZqtSeHmPujUYhlHr62M+lKONLcH3esUi+vIcDqhgubiMEzvv2F8TRsnuMy+IojwN?= =?utf-8?q?kpTDv3/wkPTJmjomHfHc3AJ2P5mRqcQKERH+3qMaxsS+tdBuSKKapEyWPIHezpEPv?= =?utf-8?q?xpX0Ir/6uyrqYSqhVnZwXxjIao/iWs0DUdFGHyKMfYN8LYNP3WxITjiGAugTmqOfV?= =?utf-8?q?LoNSDBDwSGvoqs7x4i+KZZioWlfq4XGcILjf7kK3Hy4hks0Qy4+0Pmujjg13IyN7/?= =?utf-8?q?0dwGabJpkAYuygEMNOxqNvFvlK2bXxhkYlRTsaL8ldULVc2fzxBOqMw1V0zMZ0h6V?= =?utf-8?q?yX4GHjnMFxtEYK91y0IB/q1o2ZYo2DFvt4A8EakABncYYcchcX/44s/xl3Xq17cpJ?= =?utf-8?q?ty8qUYztu79ssosKkyDoO6FwAGYfX+1+dhrIMRY4n55pWfsJuzWrmpicZFWlmCd8i?= =?utf-8?q?UvBilFhOeo/fDZ9Jeog2ORlQvfg5SkczzLegpoB0Wg1V7VRKYDkanJyZ3lFeG6iYk?= =?utf-8?q?PCX0QVoQSXef?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 31ab9d58-158d-4fb7-26d8-08da54bfe1b9 X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2022 02:27:13.1184 (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: 5KULBCti671cCB0DLU5UTAUS2QeHNGOeKcTf404kw8uh6AM1VMP0D7RJrMZ5xw7bc9jocZAKGdbTedyMzeYGyg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR13MB3535 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 Add and modify the nfp PMD struct and macro that will be used by firmware with NFDk. Signed-off-by: Jin Liu Signed-off-by: Diana Wang Signed-off-by: Peng Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_rxtx.h | 58 +++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/drivers/net/nfp/nfp_rxtx.h b/drivers/net/nfp/nfp_rxtx.h index d784f52b66..106980b9a7 100644 --- a/drivers/net/nfp/nfp_rxtx.h +++ b/drivers/net/nfp/nfp_rxtx.h @@ -53,6 +53,31 @@ #define PCIE_DESC_TX_ENCAP_VXLAN (1 << 1) #define PCIE_DESC_TX_ENCAP_GRE (1 << 0) +#define NFDK_TX_MAX_DATA_PER_HEAD 0x00001000 +#define NFDK_DESC_TX_DMA_LEN_HEAD 0x0fff +#define NFDK_DESC_TX_TYPE_HEAD 0xf000 +#define NFDK_DESC_TX_DMA_LEN 0x3fff +#define NFDK_TX_DESC_PER_SIMPLE_PKT 2 +#define NFDK_DESC_TX_TYPE_TSO 2 +#define NFDK_DESC_TX_TYPE_SIMPLE 8 +#define NFDK_DESC_TX_TYPE_GATHER 1 +#define NFDK_DESC_TX_EOP BIT(14) +#define NFDK_DESC_TX_L4_CSUM BIT(1) +#define NFDK_DESC_TX_L3_CSUM BIT(0) + +#define NFDK_TX_MAX_DATA_PER_DESC 0x00004000 +#define NFDK_TX_DESC_GATHER_MAX 17 +#define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) +#define NFDK_TX_DESC_BLOCK_SZ 256 +#define NFDK_TX_DESC_BLOCK_CNT (NFDK_TX_DESC_BLOCK_SZ / \ + sizeof(struct nfp_net_nfdk_tx_desc)) +#define NFDK_TX_DESC_STOP_CNT (NFDK_TX_DESC_BLOCK_CNT * \ + NFDK_TX_DESC_PER_SIMPLE_PKT) +#define NFDK_TX_MAX_DATA_PER_BLOCK 0x00010000 +#define D_BLOCK_CPL(idx) (NFDK_TX_DESC_BLOCK_CNT - \ + (idx) % NFDK_TX_DESC_BLOCK_CNT) +#define D_IDX(ring, idx) ((idx) & ((ring)->tx_count - 1)) + struct nfp_net_nfd3_tx_desc { union { struct { @@ -84,6 +109,33 @@ struct nfp_net_nfd3_tx_desc { }; }; +struct nfp_net_nfdk_tx_desc { + union { + struct { + __le16 dma_addr_hi; /* High bits of host buf address */ + __le16 dma_len_type; /* Length to DMA for this desc */ + __le32 dma_addr_lo; /* Low 32bit of host buf addr */ + }; + + struct { + __le16 mss; /* MSS to be used for LSO */ + uint8_t lso_hdrlen; /* LSO, TCP payload offset */ + uint8_t lso_totsegs; /* LSO, total segments */ + uint8_t l3_offset; /* L3 header offset */ + uint8_t l4_offset; /* L4 header offset */ + __le16 lso_meta_res; /* Rsvd bits in TSO metadata */ + }; + + struct { + uint8_t flags; /* TX Flags, see @NFDK_DESC_TX_* */ + uint8_t reserved[7]; /* meta byte placeholder */ + }; + + __le32 vals[2]; + __le64 raw; + }; +}; + struct nfp_net_txq { struct nfp_net_hw *hw; /* Backpointer to nfp_net structure */ @@ -124,7 +176,10 @@ struct nfp_net_txq { * of the queue and @size is the size in bytes for the queue * (needed for free) */ - struct nfp_net_nfd3_tx_desc *txds; + union { + struct nfp_net_nfd3_tx_desc *txds; + struct nfp_net_nfdk_tx_desc *ktxds; + }; /* * At this point 48 bytes have been used for all the fields in the @@ -137,6 +192,7 @@ struct nfp_net_txq { uint32_t tx_hthresh; /* not used by now. Future? */ uint32_t tx_wthresh; /* not used by now. Future? */ uint16_t port_id; + uint16_t data_pending; /* used by nfdk only */ int qidx; int tx_qcidx; __le64 dma; From patchwork Thu Jun 23 02:26:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 113290 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 4FE52A0545; Thu, 23 Jun 2022 04:27:54 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 80C4242B85; Thu, 23 Jun 2022 04:27:22 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2134.outbound.protection.outlook.com [40.107.94.134]) by mails.dpdk.org (Postfix) with ESMTP id A6E9E4069C for ; Thu, 23 Jun 2022 04:27:17 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ddu8jtBtO7M/fxqU3A/AFlqKGbWTht/2Igq3XHBLMMBEsUwRLwouJi1oBvd3GwPdW3SKekEQHf1dqdM+XJ6g5RTTtBgnddAfySpxQ8nVHh3evjj21eR/Rqc/ELTJXyh/wT7NOjqxpsI1IWLy2XEnQBYYL79IHVfBTjznDta4TF8aFn4j0OCOc5swve5HfP5EQ0g4D7cX+dBqApW8pUu0OzyrQNM/rIVJtaxe4YmU38jd8Fz5IATto4UCxuCoHqX8YPqBVDEqwfWZpXku2Mn8fNDvoQYXbSIr4VgRlAmJHM9Du6qiAedFEsFm6CUjvrs1vXRma8zwoh92O3tBiSJmrg== 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=MoQsr4EhxfQ9iPrVyE2HRtvLfTCzUUfA8wN0a82cIj8=; b=Ya93p5EydQ0ifbBoSxlILNHv0VQeE+/IS/1HCGVGiiNa4SWjThJfDBLNGXKn62blHg0StfkeKNBO4lfZt4VlAtYdvngnrqXk42NgGjIUkrGRmEM8DGAQ5VZhA2XkeED+KUaid9i2mpmA2ryYlJ/A6JxbjIBB6FaY4/oELOFOfd2CXHW5s0zFe4G/jW/AdSCEjOy8nHEz0A0kzLZFhkRpDRPzNZM74582OSbBM1efeoWecYpJ9KqpA0aICHS9nRlSJffXBl+ioWTZMxCMnaSjEdfvu2m0fQ6cmF8qpp0CWo0w8q8bfsdfQwC0uIn9Giocc9FzXgI1uUgjciN3t8jlGA== 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=MoQsr4EhxfQ9iPrVyE2HRtvLfTCzUUfA8wN0a82cIj8=; b=HO/OSoKY1znE1rA9omdhrKmdxY/YqAPiPF70DXgWDnxDDcHQ8Pbj6vvX8/VGlWH9NEVs9fxU1mJ8ZJUHb8O7i7dyVzx7ixgtekE78Elgz9o7G/oYeBvklZ61itUiiETdPqDFisPSjZfvD70nAZLvASuG3lr/TWT1gL7eNgvG5Ao= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by MN2PR13MB3535.namprd13.prod.outlook.com (2603:10b6:208:169::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Thu, 23 Jun 2022 02:27:16 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35%7]) with mapi id 15.20.5373.015; Thu, 23 Jun 2022 02:27:16 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Diana Wang , Peng Zhang , Chaoyong He Subject: [PATCH v4 09/13] net/nfp: nfdk netdev option and queue function Date: Thu, 23 Jun 2022 04:26:11 +0200 Message-Id: <20220623022615.3628093-10-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220623022615.3628093-1-jin.liu@corigine.com> References: <20220617093444.2004000-1-jin.liu@corigine.com> <20220623022615.3628093-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P265CA0222.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:33a::10) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f6bdfd8f-ff1d-4d55-1e74-08da54bfe35f X-MS-TrafficTypeDiagnostic: MN2PR13MB3535:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: x+m9Vkjj4uvVlcyxFqhKxXrEGYrm8PTokr9ma7+Mu18gXoHW4L+vPhp37/TVtjhW2Aof3RUA3taaq/FM/epmv6CGLCM4ji41pT0GKsvwjSlm6ffJUoeBFmBvloJNLdCxeSIzAf1X4hcAEbgLSpZ5Xl87tCHv6yKE4DD9gsyCn3dY/KRGYA5oifPpP2wLyXBXo2+uvc/jt21X+NuTHmaJms4oEJwqxK1zFJE5V70V0YRhfkBiX73ZBaH4/ymxA330ZCTiOcOYd5puwG72/NXwsHWGyaHaaEeZhq/jpr0vmw1A5nOSVjGUOJIamk2891iAsh66YGAt5p0tquldfuVzErKSJp5lpWGAkrqIqgJ3IRofNo5tMxxVAV3rc+KfO3SdIemcskZ2TGsqjtEpwEHvdEhrtaAkDSXToMryLWkcDZauo6VkxnhgMSBJ/50N3pI5eFeBBZ5r6KrPX8B+uPt8igMKjaHvMnSnPEHaGfdHmYnfeE/3nrd7BcgYam7XHOWWiuVpO1By6mHwYIeEgKMK1I1/m820UVT9ecB5VduL7snXB/p5sVDDTE5s82o7Kh9CZOPADgqOMVcgDeK7BQHQoYf/Ctooj1+++rniOaIP9RQF2ByWcybEzhbLeyD0mcbc/ebOtdf0oxsSFYAkirH59EDSsKsCCizCPV3/5EjS1RF6rlTphfcgtxg6GaQ8w8A9jfpIUuuM0qaE00YFOlMuNSQ2KBQPT8L4IFO8Ft8vuWfzUzmzjFSOGaXzHpVWnjLwl8XlAezemPIxxd4QCGfZ++Y5NfSjekMVfMsiNvisKNc= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(376002)(366004)(346002)(136003)(396003)(39830400003)(6666004)(107886003)(1076003)(38100700002)(38350700002)(6486002)(36756003)(66574015)(8936002)(54906003)(2616005)(6916009)(5660300002)(316002)(66556008)(52116002)(6506007)(186003)(66946007)(8676002)(4326008)(66476007)(41300700001)(86362001)(6512007)(26005)(83380400001)(478600001)(2906002)(44832011); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?kfyUd+0LBrEcGSk09C6q7/baLVYO?= =?utf-8?q?FbGBnIYSu4AzR8+gwRqtGc3z+Qs4iUgnci6I742sKRJA23pYRj87kXQ0FYYAfpIY0?= =?utf-8?q?vyuBp0hcwJE3jHR/q3HUnmKwU9kfOLbX6uzroBE+6XdsAFIfpxZBt7NCMDR11A+Iz?= =?utf-8?q?8aS84VbelX31fcKvwUWbMt5G/MJRo4CqPZJyeB06QnltYxgYy9vxtFiF2Jxa8+/Pu?= =?utf-8?q?BbWw32+0y23nm10EDiHTHGhNbY5ysQKd7aLN2tzsvtJpToXfk40GA2Psukeu4F4ke?= =?utf-8?q?NHZo5QR6nVRi6bzYc4VIJd8dbLepal+hOINyOcOH6CRAvdOYhB+8OkehEepIx54rw?= =?utf-8?q?lF+WDbjyB/2dwNgSN7eHGFuERxMXNDaLZQBFpzycqUu3sWn6VMdJm0CzkWLvaifn2?= =?utf-8?q?GqIaqqifVid8LMCZYI469z7CXxWX4+Hirbu8ttVizvlL6A31GdmvL3VmKuQgr8a41?= =?utf-8?q?VlWJRKChdXOOmCO8IC1Dhj020tGugTh1FLCwpS65MtFUYQz3dFwSN0EHOOYoLC+lp?= =?utf-8?q?BNFMZBs1vJ4bdBxAq+WPAy0G9cNwuN2OJ3/Ee9NriKyFJbdlZ00qEoNXWAUWUlCXM?= =?utf-8?q?2tGODqulj4Gexdo0qbvROEX9Ve4m4a11Dq0olo6B88KVa6gOyejAaWLap8pZ6S8fZ?= =?utf-8?q?M2x4la1CG9ISm90BMQo2QWqqOVI/DXHARtFUUInJbfAb/dmbjAF+srcGdGqs0Py1E?= =?utf-8?q?kivYN3E4KvXSNtPgpkdJaQf1sDPgEGSl29EneDSak9lhLjruqSb6FiKYOZxPDvARX?= =?utf-8?q?30h+WJ11qn4VVtB9Bn1vNeZG7QEA98BfVAWpHfqEHj0f2mWszXnu7XNMFlbeiowtj?= =?utf-8?q?BP513jb94/INrJIT0f9f7mdtxde8JprJ5J4jY9jOLZ2F3jT/0gJqYNf5uSrgXLGe+?= =?utf-8?q?dSQck5Ll7KZrYEkAoVGamsP3lAu0MNGv/jO/oSnp0iTjtGC8Rp/so0o9qf/tdl38R?= =?utf-8?q?ExqVVBQjTp+v091xlor9WjTPZE0piJd+qf6tTMtm11mldpjfifkeCbPIxxHgSaTsN?= =?utf-8?q?MTp2XXxiJ90DljAQ94sQCYgMpJJgvZvRuu2SmjqHfErD55AH+zunu5tRLA1dTMTPv?= =?utf-8?q?hVAzZDhIEsuPIC/BaSfVZ+fRV9vBiLOmFPh6xFpC4r6GVUE99URavcZ9ipqGWCBIS?= =?utf-8?q?y+Ecq+YbX53mCm1A5bEfRVtJnmdruQvdJvLgOA4gIYebcafWn0KxTQ7neosYtq0fn?= =?utf-8?q?CV1r1LTyRWo7oucdi3qQ92Wu5hIQmfH1bdJ2ImPdQS35s4iniJkWryAx6BYSIwJGP?= =?utf-8?q?JgYiaPMMsnv422ipd0K5mvuUlp21afCXBV4+x7gqJRPbxt8HFvmIJIo/AykpoQKuE?= =?utf-8?q?0Nddws2Be0PwUSWeVE78fvXvScRTwlcvb2xFrLlbbjEBbyUUFuFTC+UqxfT4KFKkC?= =?utf-8?q?WUzhZj47Ty63mmF32cp6pNHSv4F7QxvXCNqs/xYXZWzZu6mokEZ4stcVqPSPlqd22?= =?utf-8?q?V1icK1AM5jdCC+o8onnXpTLVPNDb9RlSF2e0pYiDB/v5v7Y1kzliGLQeJB79RXhGH?= =?utf-8?q?QE7BUSHFEEkf?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: f6bdfd8f-ff1d-4d55-1e74-08da54bfe35f X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2022 02:27:15.9932 (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: /p8YBSuDQjga4q3XMwDUQFb0ivLnPsbjXKVyXxPhcYTCXRTasfP0K3jkSv/aV6eHRuYlh06weq6pkmvrYSbdFQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR13MB3535 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 Add ethdev option for firmware with NFDk, implement tx_queue setup function for firmware with NFDk. Signed-off-by: Jin Liu Signed-off-by: Diana Wang Signed-off-by: Peng Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_ethdev.c | 32 ++++++++- drivers/net/nfp/nfp_ethdev_vf.c | 32 ++++++++- drivers/net/nfp/nfp_rxtx.c | 117 ++++++++++++++++++++++++++++++++ drivers/net/nfp/nfp_rxtx.h | 5 ++ 4 files changed, 184 insertions(+), 2 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 1bbba9187e..0d650efd27 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -358,11 +358,41 @@ static const struct eth_dev_ops nfp_net_nfd3_eth_dev_ops = { .rx_queue_intr_disable = nfp_rx_queue_intr_disable, }; +static const struct eth_dev_ops nfp_net_nfdk_eth_dev_ops = { + .dev_configure = nfp_net_configure, + .dev_start = nfp_net_start, + .dev_stop = nfp_net_stop, + .dev_set_link_up = nfp_net_set_link_up, + .dev_set_link_down = nfp_net_set_link_down, + .dev_close = nfp_net_close, + .promiscuous_enable = nfp_net_promisc_enable, + .promiscuous_disable = nfp_net_promisc_disable, + .link_update = nfp_net_link_update, + .stats_get = nfp_net_stats_get, + .stats_reset = nfp_net_stats_reset, + .dev_infos_get = nfp_net_infos_get, + .dev_supported_ptypes_get = nfp_net_supported_ptypes_get, + .mtu_set = nfp_net_dev_mtu_set, + .mac_addr_set = nfp_net_set_mac_addr, + .vlan_offload_set = nfp_net_vlan_offload_set, + .reta_update = nfp_net_reta_update, + .reta_query = nfp_net_reta_query, + .rss_hash_update = nfp_net_rss_hash_update, + .rss_hash_conf_get = nfp_net_rss_hash_conf_get, + .rx_queue_setup = nfp_net_rx_queue_setup, + .rx_queue_release = nfp_net_rx_queue_release, + .tx_queue_setup = nfp_net_nfdk_tx_queue_setup, + .tx_queue_release = nfp_net_tx_queue_release, + .rx_queue_intr_enable = nfp_rx_queue_intr_enable, + .rx_queue_intr_disable = nfp_rx_queue_intr_disable, +}; + static inline int nfp_net_ethdev_ops_mount(struct nfp_net_hw *hw, struct rte_eth_dev *eth_dev) { switch (NFD_CFG_CLASS_VER_of(hw->ver)) { case NFP_NET_CFG_VERSION_DP_NFD3: + eth_dev->dev_ops = &nfp_net_nfd3_eth_dev_ops; break; case NFP_NET_CFG_VERSION_DP_NFDK: if (NFD_CFG_MAJOR_VERSION_of(hw->ver) < 5) { @@ -370,13 +400,13 @@ nfp_net_ethdev_ops_mount(struct nfp_net_hw *hw, struct rte_eth_dev *eth_dev) NFD_CFG_MAJOR_VERSION_of(hw->ver)); return -EINVAL; } + eth_dev->dev_ops = &nfp_net_nfdk_eth_dev_ops; break; default: PMD_DRV_LOG(ERR, "The version of firmware is not correct."); return -EINVAL; } - eth_dev->dev_ops = &nfp_net_nfd3_eth_dev_ops; eth_dev->rx_queue_count = nfp_net_rx_queue_count; eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index 0b4660aba6..2342f44523 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -265,11 +265,41 @@ static const struct eth_dev_ops nfp_netvf_nfd3_eth_dev_ops = { .rx_queue_intr_disable = nfp_rx_queue_intr_disable, }; +static const struct eth_dev_ops nfp_netvf_nfdk_eth_dev_ops = { + .dev_configure = nfp_net_configure, + .dev_start = nfp_netvf_start, + .dev_stop = nfp_netvf_stop, + .dev_set_link_up = nfp_netvf_set_link_up, + .dev_set_link_down = nfp_netvf_set_link_down, + .dev_close = nfp_netvf_close, + .promiscuous_enable = nfp_net_promisc_enable, + .promiscuous_disable = nfp_net_promisc_disable, + .link_update = nfp_net_link_update, + .stats_get = nfp_net_stats_get, + .stats_reset = nfp_net_stats_reset, + .dev_infos_get = nfp_net_infos_get, + .dev_supported_ptypes_get = nfp_net_supported_ptypes_get, + .mtu_set = nfp_net_dev_mtu_set, + .mac_addr_set = nfp_net_set_mac_addr, + .vlan_offload_set = nfp_net_vlan_offload_set, + .reta_update = nfp_net_reta_update, + .reta_query = nfp_net_reta_query, + .rss_hash_update = nfp_net_rss_hash_update, + .rss_hash_conf_get = nfp_net_rss_hash_conf_get, + .rx_queue_setup = nfp_net_rx_queue_setup, + .rx_queue_release = nfp_net_rx_queue_release, + .tx_queue_setup = nfp_net_nfdk_tx_queue_setup, + .tx_queue_release = nfp_net_tx_queue_release, + .rx_queue_intr_enable = nfp_rx_queue_intr_enable, + .rx_queue_intr_disable = nfp_rx_queue_intr_disable, +}; + static inline int nfp_netvf_ethdev_ops_mount(struct nfp_net_hw *hw, struct rte_eth_dev *eth_dev) { switch (NFD_CFG_CLASS_VER_of(hw->ver)) { case NFP_NET_CFG_VERSION_DP_NFD3: + eth_dev->dev_ops = &nfp_netvf_nfd3_eth_dev_ops; break; case NFP_NET_CFG_VERSION_DP_NFDK: if (NFD_CFG_MAJOR_VERSION_of(hw->ver) < 5) { @@ -277,13 +307,13 @@ nfp_netvf_ethdev_ops_mount(struct nfp_net_hw *hw, struct rte_eth_dev *eth_dev) NFD_CFG_MAJOR_VERSION_of(hw->ver)); return -EINVAL; } + eth_dev->dev_ops = &nfp_netvf_nfdk_eth_dev_ops; break; default: PMD_DRV_LOG(ERR, "The version of firmware is not correct."); return -EINVAL; } - eth_dev->dev_ops = &nfp_netvf_nfd3_eth_dev_ops; eth_dev->rx_queue_count = nfp_net_rx_queue_count; eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; diff --git a/drivers/net/nfp/nfp_rxtx.c b/drivers/net/nfp/nfp_rxtx.c index 9b769c9775..4f422c5090 100644 --- a/drivers/net/nfp/nfp_rxtx.c +++ b/drivers/net/nfp/nfp_rxtx.c @@ -987,3 +987,120 @@ nfp_net_nfd3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pk return i; } + +int +nfp_net_nfdk_tx_queue_setup(struct rte_eth_dev *dev, + uint16_t queue_idx, + uint16_t nb_desc, + unsigned int socket_id, + const struct rte_eth_txconf *tx_conf) +{ + const struct rte_memzone *tz; + struct nfp_net_txq *txq; + uint16_t tx_free_thresh; + struct nfp_net_hw *hw; + uint32_t tx_desc_sz; + + hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private); + + PMD_INIT_FUNC_TRACE(); + + /* Validating number of descriptors */ + tx_desc_sz = nb_desc * sizeof(struct nfp_net_nfdk_tx_desc); + if (((NFDK_TX_DESC_PER_SIMPLE_PKT * tx_desc_sz) % NFP_ALIGN_RING_DESC) != 0 || + ((NFDK_TX_DESC_PER_SIMPLE_PKT * nb_desc) % NFDK_TX_DESC_BLOCK_CNT) != 0 || + nb_desc > NFP_NET_MAX_TX_DESC || nb_desc < NFP_NET_MIN_TX_DESC) { + PMD_DRV_LOG(ERR, "Wrong nb_desc value"); + return -EINVAL; + } + + tx_free_thresh = (uint16_t)((tx_conf->tx_free_thresh) ? + tx_conf->tx_free_thresh : + DEFAULT_TX_FREE_THRESH); + + if (tx_free_thresh > (nb_desc)) { + PMD_DRV_LOG(ERR, + "tx_free_thresh must be less than the number of TX " + "descriptors. (tx_free_thresh=%u port=%d " + "queue=%d)", (unsigned int)tx_free_thresh, + dev->data->port_id, (int)queue_idx); + return -(EINVAL); + } + + /* + * Free memory prior to re-allocation if needed. This is the case after + * calling nfp_net_stop + */ + if (dev->data->tx_queues[queue_idx]) { + PMD_TX_LOG(DEBUG, "Freeing memory prior to re-allocation %d", + queue_idx); + nfp_net_tx_queue_release(dev, queue_idx); + dev->data->tx_queues[queue_idx] = NULL; + } + + /* Allocating tx queue data structure */ + txq = rte_zmalloc_socket("ethdev TX queue", sizeof(struct nfp_net_txq), + RTE_CACHE_LINE_SIZE, socket_id); + if (txq == NULL) { + PMD_DRV_LOG(ERR, "Error allocating tx dma"); + return -ENOMEM; + } + + /* + * Allocate TX ring hardware descriptors. A memzone large enough to + * handle the maximum ring size is allocated in order to allow for + * resizing in later calls to the queue setup function. + */ + tz = rte_eth_dma_zone_reserve(dev, "tx_ring", queue_idx, + sizeof(struct nfp_net_nfdk_tx_desc) * + NFDK_TX_DESC_PER_SIMPLE_PKT * + NFP_NET_MAX_TX_DESC, NFP_MEMZONE_ALIGN, + socket_id); + if (tz == NULL) { + PMD_DRV_LOG(ERR, "Error allocating tx dma"); + nfp_net_tx_queue_release(dev, queue_idx); + return -ENOMEM; + } + + txq->tx_count = nb_desc * NFDK_TX_DESC_PER_SIMPLE_PKT; + txq->tx_free_thresh = tx_free_thresh; + txq->tx_pthresh = tx_conf->tx_thresh.pthresh; + txq->tx_hthresh = tx_conf->tx_thresh.hthresh; + txq->tx_wthresh = tx_conf->tx_thresh.wthresh; + + /* queue mapping based on firmware configuration */ + txq->qidx = queue_idx; + txq->tx_qcidx = queue_idx * hw->stride_tx; + txq->qcp_q = hw->tx_bar + NFP_QCP_QUEUE_OFF(txq->tx_qcidx); + + txq->port_id = dev->data->port_id; + + /* Saving physical and virtual addresses for the TX ring */ + txq->dma = (uint64_t)tz->iova; + txq->ktxds = (struct nfp_net_nfdk_tx_desc *)tz->addr; + + /* mbuf pointers array for referencing mbufs linked to TX descriptors */ + txq->txbufs = rte_zmalloc_socket("txq->txbufs", + sizeof(*txq->txbufs) * txq->tx_count, + RTE_CACHE_LINE_SIZE, socket_id); + + if (txq->txbufs == NULL) { + nfp_net_tx_queue_release(dev, queue_idx); + return -ENOMEM; + } + PMD_TX_LOG(DEBUG, "txbufs=%p hw_ring=%p dma_addr=0x%" PRIx64, + txq->txbufs, txq->ktxds, (unsigned long)txq->dma); + + nfp_net_reset_tx_queue(txq); + + dev->data->tx_queues[queue_idx] = txq; + txq->hw = hw; + /* + * Telling the HW about the physical address of the TX ring and number + * of descriptors in log2 format + */ + nn_cfg_writeq(hw, NFP_NET_CFG_TXR_ADDR(queue_idx), txq->dma); + nn_cfg_writeb(hw, NFP_NET_CFG_TXR_SZ(queue_idx), rte_log2_u32(txq->tx_count)); + + return 0; +} diff --git a/drivers/net/nfp/nfp_rxtx.h b/drivers/net/nfp/nfp_rxtx.h index 106980b9a7..ba8ffbd1ff 100644 --- a/drivers/net/nfp/nfp_rxtx.h +++ b/drivers/net/nfp/nfp_rxtx.h @@ -347,6 +347,11 @@ int nfp_net_nfd3_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, const struct rte_eth_txconf *tx_conf); uint16_t nfp_net_nfd3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts); +int nfp_net_nfdk_tx_queue_setup(struct rte_eth_dev *dev, + uint16_t queue_idx, + uint16_t nb_desc, + unsigned int socket_id, + const struct rte_eth_txconf *tx_conf); #endif /* _NFP_RXTX_H_ */ /* From patchwork Thu Jun 23 02:26:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 113291 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 28F75A0545; Thu, 23 Jun 2022 04:28:01 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CB52442B76; Thu, 23 Jun 2022 04:27:26 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2103.outbound.protection.outlook.com [40.107.94.103]) by mails.dpdk.org (Postfix) with ESMTP id 9959742B75 for ; Thu, 23 Jun 2022 04:27:20 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kGDlRKWAajsA6e/FcwmLAFrm6JbzfPThNqkL7EvnDUmYKcyq9RZ4drRKxAb+BL6DOwWuMx68Y+vKDigFbFgLHt729QrqhuutPLATn3bBqw4mVN9X/B8tA6YVQ5cQSpyARVbqdGzOETD/pnQ3mTyqEo6LmLyk8/XjCq2bdV0BAunHz1FaMXZfWQGCgK/hcIYcuPNQi5GxMHCDQ0DUlwn/I38rVR/a3d55LwwbQp0fhrWb0e2YTMQR1HWZrLorc3WmNBw8GVlMhJRuq5wDtc/9Xxg7iRQB7Vr6+Wqz4mkeTv/Kjc1vFP/6lGkjFjyvBCNLlP/gVw4j96cpBttvP/2bgQ== 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=jFZzr2930Vv2c4QQaVDS7/EwLKkvku48EhdYPEyXKfo=; b=BU9w92vlf2Iq/ZqqsU8WIJMW55HfXxBuSGsh+eFA9JDYILsZyl3YuHx7+87AWvtaPasHCzWBvnW0pbf74ZaJXU0BKj1idTLBY87xD7uSjykSTJGMsPcsF/CFy3/SjP72pE4bv6Lv0jO4SbXvPbafbXE5t7L00y+b6MQc73umXAExR81Pagil5Ekf1xCMEfYZuzEcDbSA3KCjmo/ddYxf/iDq1Js+o9464glXkG3mUbvS4e4895gTWqTUf0RMvboh/nTolRVudjogmtDwd736m1XBK0rkQtBqlSQFm/MnADwVNIwvIISoJp9Gz+afsI1IVErVLVOxGt5CG9hcRGYOig== 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=jFZzr2930Vv2c4QQaVDS7/EwLKkvku48EhdYPEyXKfo=; b=cOnX13PaQY3an+dM6Wshe3Z/sOYJrXf7Uhxmz8MY/Fmmp08sUqjnhy+ItmsHjuRN/s61u5I2Qu7p7sGRgPfXsm326lATkbkSq/utrD7JjZ2FFLHzXwr1ntp4+kZ7ByhZZiEw+POx+hQBAFamvYkndgRGJtHBD47LjL90IBN89uE= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by MN2PR13MB3535.namprd13.prod.outlook.com (2603:10b6:208:169::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Thu, 23 Jun 2022 02:27:18 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35%7]) with mapi id 15.20.5373.015; Thu, 23 Jun 2022 02:27:18 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Diana Wang , Peng Zhang , Chaoyong He Subject: [PATCH v4 10/13] net/nfp: add queue stop and close helper function Date: Thu, 23 Jun 2022 04:26:12 +0200 Message-Id: <20220623022615.3628093-11-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220623022615.3628093-1-jin.liu@corigine.com> References: <20220617093444.2004000-1-jin.liu@corigine.com> <20220623022615.3628093-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P265CA0222.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:33a::10) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 741a10a9-d6bc-4a3f-c628-08da54bfe515 X-MS-TrafficTypeDiagnostic: MN2PR13MB3535:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mGGlD9EfQtpueRQVTDCJOvTZ6dVJOq4k4zZKwG5PG96BkpTaIL/q+Hn0oEdR5MTGOIZmXJMZCP+jPJNMsH2p9XDM8kBxpcZEpOZ9pENUTfo9dml1BySNWeJG151xfRVjftORcP5xOoF/IN8lfz1ajuTPU1Bap2Re+LiahixXJnnBP3nkLOw40e2pB/FayPW5yL5zGVn7zPkjn86kyxxx5FoyCQjikKUMDLp/eXz2bEaapBo+Ib2QtAObXQjlz0iuIWMzX0g7IB4Mtf4NhmdwJV5OYbpnpThgNsi+eYU5EJnBVT56VdpblQlnG7A0JkqJBm/uUlpinKmAE4TW86i8mPdp8T0VJeDXZu8bMaPHL3cZVUkV0FaIZi6oudFTjuWTYuiuipUcejuzFc/ZqTC/5qmSFHyez5PoXOT1H2JdfPzcjQw6WCwYj/qdrtElawapzcV7N6Zm85+MEkumZ8Bp5KBucjX8KGdWyDa10spFBLAcW5HO0/22Xs80dB+E66GbtD/9Lyu8nqibFEV7YNEWGvZUjLdolESl8O9ubpCcww+KVs53yiMVOxCBIcS+p/eS+w8Rkf2RPcKqd4BgEP/84t+pk6P96VUFP8DdUBvEWU19qM+SGdSEyZa2xeYkiBWUDmPmat6xFnL5C6WTW1D3NAwaV1E9OXjjsEcEG0IEezdH0gQY09D3ytYkzxzrJ10vBY4Aba9EgYNV16S3O5gFyFPk4eg81PWsnDYy4KmCpxTB+Pun9HG6xOuSKBnS+a8hjP7htvcI2GfT7LFhE7oLrQaLhAyhzf1oyLLgK8QpBZ5Y9C2eBXp3z7idAqJM8gQ8 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(376002)(366004)(346002)(136003)(396003)(39830400003)(6666004)(107886003)(1076003)(38100700002)(38350700002)(6486002)(36756003)(66574015)(8936002)(54906003)(2616005)(6916009)(5660300002)(316002)(66556008)(52116002)(6506007)(186003)(66946007)(8676002)(4326008)(66476007)(41300700001)(86362001)(6512007)(26005)(83380400001)(478600001)(2906002)(44832011); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?5hGxWkrOKksLJUQSg4ncJ4i0getL?= =?utf-8?q?QB4AKTpGht/Z8floQMStlyvDx/Te3ghYErwLjfKutZTdUa7MM6mG4eTEjkjo65fb1?= =?utf-8?q?YNWzWDx48KuHhZK5ZHLOsRoS3MrGLeYu+pJa2YoVUkO0wnSRLCWdqMQNJTBKfzrYJ?= =?utf-8?q?04O7ydsY3399JWArLq7X0bhPbofjUEKq3VwNfHoXnPqtL+xsHgrWhMmNc5oJIfUNz?= =?utf-8?q?QlV/+haJZ5Jp09u7VaRYCGMcu6pCxaaA0uP52hPk2dZ0uO9XJInGrCsXh4dDL4Vnb?= =?utf-8?q?CFe83gu+NSsvYqpAW4Zu091eCCYE6EadGNDHS3aBzYcFbPwbhOInMWupfBjN1GYbg?= =?utf-8?q?pH5k035V/QUZcXnTN+EywY5jCMa6FQq/5dqY9YKnYwZeOkRAQwWKSMnfpUe6H5Nu7?= =?utf-8?q?uTIzapw74kJ/qfoSnSaxFRtzo1KERpW10mvMGDVMejgSj6sjj3jFtf91FpLN7bPBC?= =?utf-8?q?eyeUtTGGjHszd154vPmL8oQOUMR+G01uRrPNKOxNMdff2BShyH6MwhcxaQ+ystP4C?= =?utf-8?q?AQOEQUb0ls22WMzbWd2mwCPv5CsztOOfr4OAbUqWdZhPbV/X5Yip0CsdQNVqDto+F?= =?utf-8?q?+PWPTTjzUV2zhjWPAoHEcpEuknxPcKZ4TPnnwRpEk9W2xFxN/n4RKw720oYY0D8mR?= =?utf-8?q?ZD57hSmR4NgJUIIRVUP8Nz0OAPbnH1LXzKpwFyfw52e52EAOJZ0n9UPD4i3RHYw6S?= =?utf-8?q?XkubiGqEBVgpG8FXhUorjRMwiSCVC58rYajL6Jrao0NBOu1aBPmzhz2xx6Jem9U3v?= =?utf-8?q?BSHrtzslk6cYlU+yxSNUS7ALicPJdZB/ikZifr0XbIO2zun9dyvMhVF/QrFWKcE01?= =?utf-8?q?IzifSu/TIj8k0RYzcq4ZA3GfAp35p8SAybBVE6Q6KG1yEknJS6sywra3g8RH9BJ7n?= =?utf-8?q?QNTpsaG3lye+7T1Lw8L8l9ziCkyr5UAkug7JdjFPU68bSSUfpT6MPiXvYF34uMp7Y?= =?utf-8?q?4zx9xGd4pFGtG++pfGdDxCm0WNUgY54ao868SIc/UFu4lFh9lmAZ9lO4ZovdyA4Za?= =?utf-8?q?w+oqwIIKTbsiyEiX9N32mv5t3mhKVodjnI6CNTvQjpMHwB9+ubzdz+Sm3lCis3vpT?= =?utf-8?q?M4P9gHOZLXZ66DUoz2jxTRXAPJNydCw9vahS0qwAZKrncVPTPkHcokbGpZgY1UYxN?= =?utf-8?q?qeAIwTCYYIwZICMzZc0tbv0y/ErwCyD6XXdQkNFC0XcJ8SfwAv0CcBO8dcTD5ozaL?= =?utf-8?q?4G2FrI48R82ubFEEglvRjWw/u4Saa8eUgm+pQYSQfTGsWA/wj1rJpZNQAJ+hYeQpV?= =?utf-8?q?uIWWjlsq59W3gLEcYwofCUTTB7C7BmGPYFgEausFRiMlDy4akvQ0+CuniIeVxucgE?= =?utf-8?q?inFyKF171s+ME4lozXiaaam3p7nwtM/hMLNao4+skOfxWc1WZXQolQGNRyQRyRJCD?= =?utf-8?q?OZ+EUqj52kPsMtEKiGu3oecWKTei8JMtp99lIRqPjfZiBYapwaHldGuANMwpj62VK?= =?utf-8?q?DG1W6aGvU+NwJ9sOsZYlCwJ0pOCpl4WTV8tTGqLNiekx8PO54DX4DvdwuSOOP884u?= =?utf-8?q?u2pt7o2T1GVO?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 741a10a9-d6bc-4a3f-c628-08da54bfe515 X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2022 02:27:18.8054 (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: VhY5pgg2JxIIP3RTtHLekqts7MRqe6RkG43SA21mOplkBpbF7886n3KXADI17mojXpEUdP3khScJhEI/N1xbRg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR13MB3535 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 This commit does not introduce new features, just integrate some common logic into helper functions to reduce the same logic and increase code reuse, include queue stop and queue close logic, will be used when NFP net stop and close. queue stop: reset queue queue close: reset and release queue Modify NFP net stop and close function, use helper function to stop and close queue instead of before logic. Signed-off-by: Jin Liu Signed-off-by: Diana Wang Signed-off-by: Peng Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_common.c | 50 +++++++++++++++++++++++++++++++++ drivers/net/nfp/nfp_common.h | 4 +++ drivers/net/nfp/nfp_ethdev.c | 27 +++--------------- drivers/net/nfp/nfp_ethdev_vf.c | 29 +++---------------- 4 files changed, 62 insertions(+), 48 deletions(-) diff --git a/drivers/net/nfp/nfp_common.c b/drivers/net/nfp/nfp_common.c index 9903a1bd5a..755c5ec4d9 100644 --- a/drivers/net/nfp/nfp_common.c +++ b/drivers/net/nfp/nfp_common.c @@ -1320,6 +1320,56 @@ nfp_net_rss_config_default(struct rte_eth_dev *dev) return ret; } +void +nfp_net_stop_rx_queue(struct rte_eth_dev *dev) +{ + uint16_t i; + struct nfp_net_rxq *this_rx_q; + + for (i = 0; i < dev->data->nb_rx_queues; i++) { + this_rx_q = (struct nfp_net_rxq *)dev->data->rx_queues[i]; + nfp_net_reset_rx_queue(this_rx_q); + } +} + +void +nfp_net_close_rx_queue(struct rte_eth_dev *dev) +{ + uint16_t i; + struct nfp_net_rxq *this_rx_q; + + for (i = 0; i < dev->data->nb_rx_queues; i++) { + this_rx_q = (struct nfp_net_rxq *)dev->data->rx_queues[i]; + nfp_net_reset_rx_queue(this_rx_q); + nfp_net_rx_queue_release(dev, i); + } +} + +void +nfp_net_stop_tx_queue(struct rte_eth_dev *dev) +{ + uint16_t i; + struct nfp_net_txq *this_tx_q; + + for (i = 0; i < dev->data->nb_tx_queues; i++) { + this_tx_q = (struct nfp_net_txq *)dev->data->tx_queues[i]; + nfp_net_reset_tx_queue(this_tx_q); + } +} + +void +nfp_net_close_tx_queue(struct rte_eth_dev *dev) +{ + uint16_t i; + struct nfp_net_txq *this_tx_q; + + for (i = 0; i < dev->data->nb_tx_queues; i++) { + this_tx_q = (struct nfp_net_txq *)dev->data->tx_queues[i]; + nfp_net_reset_tx_queue(this_tx_q); + nfp_net_tx_queue_release(dev, i); + } +} + RTE_LOG_REGISTER_SUFFIX(nfp_logtype_init, init, NOTICE); RTE_LOG_REGISTER_SUFFIX(nfp_logtype_driver, driver, NOTICE); /* diff --git a/drivers/net/nfp/nfp_common.h b/drivers/net/nfp/nfp_common.h index 19e96414e3..6d917e4b4a 100644 --- a/drivers/net/nfp/nfp_common.h +++ b/drivers/net/nfp/nfp_common.h @@ -413,6 +413,10 @@ int nfp_net_rss_hash_update(struct rte_eth_dev *dev, int nfp_net_rss_hash_conf_get(struct rte_eth_dev *dev, struct rte_eth_rss_conf *rss_conf); int nfp_net_rss_config_default(struct rte_eth_dev *dev); +void nfp_net_stop_rx_queue(struct rte_eth_dev *dev); +void nfp_net_close_rx_queue(struct rte_eth_dev *dev); +void nfp_net_stop_tx_queue(struct rte_eth_dev *dev); +void nfp_net_close_tx_queue(struct rte_eth_dev *dev); #define NFP_NET_DEV_PRIVATE_TO_HW(adapter)\ (&((struct nfp_net_adapter *)adapter)->hw) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index 0d650efd27..e8a8368d0f 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -181,10 +181,7 @@ nfp_net_start(struct rte_eth_dev *dev) static int nfp_net_stop(struct rte_eth_dev *dev) { - int i; struct nfp_net_hw *hw; - struct nfp_net_txq *this_tx_q; - struct nfp_net_rxq *this_rx_q; PMD_INIT_LOG(DEBUG, "Stop"); @@ -193,15 +190,9 @@ nfp_net_stop(struct rte_eth_dev *dev) nfp_net_disable_queues(dev); /* Clear queues */ - for (i = 0; i < dev->data->nb_tx_queues; i++) { - this_tx_q = (struct nfp_net_txq *)dev->data->tx_queues[i]; - nfp_net_reset_tx_queue(this_tx_q); - } + nfp_net_stop_tx_queue(dev); - for (i = 0; i < dev->data->nb_rx_queues; i++) { - this_rx_q = (struct nfp_net_rxq *)dev->data->rx_queues[i]; - nfp_net_reset_rx_queue(this_rx_q); - } + nfp_net_stop_rx_queue(dev); if (rte_eal_process_type() == RTE_PROC_PRIMARY) /* Configure the physical port down */ @@ -256,8 +247,6 @@ nfp_net_close(struct rte_eth_dev *dev) struct nfp_net_hw *hw; struct rte_pci_device *pci_dev; struct nfp_pf_dev *pf_dev; - struct nfp_net_txq *this_tx_q; - struct nfp_net_rxq *this_rx_q; int i; if (rte_eal_process_type() != RTE_PROC_PRIMARY) @@ -277,17 +266,9 @@ nfp_net_close(struct rte_eth_dev *dev) nfp_net_disable_queues(dev); /* Clear queues */ - for (i = 0; i < dev->data->nb_tx_queues; i++) { - this_tx_q = (struct nfp_net_txq *)dev->data->tx_queues[i]; - nfp_net_reset_tx_queue(this_tx_q); - nfp_net_tx_queue_release(dev, i); - } + nfp_net_close_tx_queue(dev); - for (i = 0; i < dev->data->nb_rx_queues; i++) { - this_rx_q = (struct nfp_net_rxq *)dev->data->rx_queues[i]; - nfp_net_reset_rx_queue(this_rx_q); - nfp_net_rx_queue_release(dev, i); - } + nfp_net_close_rx_queue(dev); /* Cancel possible impending LSC work here before releasing the port*/ rte_eal_alarm_cancel(nfp_net_dev_interrupt_delayed_handler, diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index 2342f44523..56428814b7 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -145,24 +145,14 @@ nfp_netvf_start(struct rte_eth_dev *dev) static int nfp_netvf_stop(struct rte_eth_dev *dev) { - struct nfp_net_txq *this_tx_q; - struct nfp_net_rxq *this_rx_q; - int i; - PMD_INIT_LOG(DEBUG, "Stop"); nfp_net_disable_queues(dev); /* Clear queues */ - for (i = 0; i < dev->data->nb_tx_queues; i++) { - this_tx_q = (struct nfp_net_txq *)dev->data->tx_queues[i]; - nfp_net_reset_tx_queue(this_tx_q); - } + nfp_net_stop_tx_queue(dev); - for (i = 0; i < dev->data->nb_rx_queues; i++) { - this_rx_q = (struct nfp_net_rxq *)dev->data->rx_queues[i]; - nfp_net_reset_rx_queue(this_rx_q); - } + nfp_net_stop_rx_queue(dev); return 0; } @@ -185,9 +175,6 @@ static int nfp_netvf_close(struct rte_eth_dev *dev) { struct rte_pci_device *pci_dev; - struct nfp_net_txq *this_tx_q; - struct nfp_net_rxq *this_rx_q; - int i; if (rte_eal_process_type() != RTE_PROC_PRIMARY) return 0; @@ -204,17 +191,9 @@ nfp_netvf_close(struct rte_eth_dev *dev) nfp_net_disable_queues(dev); /* Clear queues */ - for (i = 0; i < dev->data->nb_tx_queues; i++) { - this_tx_q = (struct nfp_net_txq *)dev->data->tx_queues[i]; - nfp_net_reset_tx_queue(this_tx_q); - nfp_net_tx_queue_release(dev, i); - } + nfp_net_close_tx_queue(dev); - for (i = 0; i < dev->data->nb_rx_queues; i++) { - this_rx_q = (struct nfp_net_rxq *)dev->data->rx_queues[i]; - nfp_net_reset_rx_queue(this_rx_q); - nfp_net_rx_queue_release(dev, i); - } + nfp_net_close_rx_queue(dev); rte_intr_disable(pci_dev->intr_handle); From patchwork Thu Jun 23 02:26:13 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 113292 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 4783DA0545; Thu, 23 Jun 2022 04:28:06 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 060AB42B8F; Thu, 23 Jun 2022 04:27:28 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2103.outbound.protection.outlook.com [40.107.94.103]) by mails.dpdk.org (Postfix) with ESMTP id 193C042B88 for ; Thu, 23 Jun 2022 04:27:23 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZqkQHKwOaFIeAb0UjF7WnxYRNsjdJWa96suQVfBtmwfwFVqeZA6pnmzmhUgc5SoK7+JULPq8oERZ6+EZk1fRP3U2XlWIxnKv7wueG6QmY0FrPmbaxxQFZF6Rs6VDaispGYL4nbNjRghLL0/dsra3CP+3BZ7+rOHNWOsbJ5BHfhpynD/RMr3I9720UVPnWnv3F2eyYuq7Syd4jeaDqWocL7UNm528DEy8BmCa6Q5PwyKazGvZ4sSMFrLF7jDXoFpZRNKpyBSb4FI7ZC+r72YOq1ft+GXMQFeR9dm0wutoJLuFCkHMJbN03/WCq7JC6IVw2D6ae6QZWmT4JwcYCHxMLA== 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=qSG3E8RYAvM0H42u7IYQmlBNIHDtskhEYNNda8yu5oY=; b=bbOzv/E+sKyYSpcRe/M9Ys1cJsXKnnGq4dWBVriX06zXdCSMIkCct40nvpA6croTcc0LZiuKoLXFEhsmPmx4+MBZ9MlgAdFDEek2xy1hFLvIZM+pgg4H85uFO3kV1jsr5ZJNyEgCLTltuICVEgU/UjPN8g34XpuIoNLXQ3sGuifB4PTeOhqsbp6owzY4DlLLKpe7ExdTZFfDFmadqGwZfHID9fZplfF9P9KWQVdLc1phoCGjHmFI31PxtWE7xVBQ8tHHKORivOMwX+prKDGSUkSnw90vH8mscte9zROrlD2TNprnLAXZaUphMgojiXYQcnEeHEWn+hJ/Xa3aSw6x4Q== 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=qSG3E8RYAvM0H42u7IYQmlBNIHDtskhEYNNda8yu5oY=; b=qu+yBX+DR+5MJ5nr+4uK+0KjQaPF8U8r0k6eF7l/k9fp2a/lop5wXFjLTf39SnvvyP8uDZoqKs23NGuDN9M1ek/X2Ee5muDIBclffiT30+A4TxvyQDxa89xf1VV+UQTnjxLjyU2YHDhrNUDR/LOFcSBs0APVyFi5HHggqRgqnLk= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by MN2PR13MB3535.namprd13.prod.outlook.com (2603:10b6:208:169::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Thu, 23 Jun 2022 02:27:21 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35%7]) with mapi id 15.20.5373.015; Thu, 23 Jun 2022 02:27:21 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Diana Wang , Peng Zhang , Chaoyong He Subject: [PATCH v4 11/13] net/nfp: move macro from C file to head file Date: Thu, 23 Jun 2022 04:26:13 +0200 Message-Id: <20220623022615.3628093-12-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220623022615.3628093-1-jin.liu@corigine.com> References: <20220617093444.2004000-1-jin.liu@corigine.com> <20220623022615.3628093-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P265CA0222.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:33a::10) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b1e7843c-4617-4086-e4b2-08da54bfe6c2 X-MS-TrafficTypeDiagnostic: MN2PR13MB3535:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bVQheshHaeqWpB38+gRAXIgl+g1HqHC9BilQvIe4Az+kYHFD75EoWR7Q16DEHwE/Mti43sBG6ZP6Lxthykn+2b+mBzWwqG++ReLNE6c6OgcITrIHlZM6PsadsDCANJfsR25qLjMf3M1AeEumrlF+IgYZSpIdoZaPVVSpXp2vL8LBiPniVGIQx3KtTYwYjWpI3Uyfd8rKHGAbuNcSck36LlmltuAd+jPXXZ77NjhoFrJn4/AOjWyfaycwBOoxxPXYXa9G34J4EeMlPCVPvu3L34MCB7ux2mplqMnTZp+CQGDfl7l15EajV3TOEFF9BW81I5A33O5gyZesxKjd4UrttqU0w/cXP573BG3FSF7LvRig+onRS6QnF/tKv768EE4piN1CMdzKe+ICYmSSaghISNbM/LNyATomgmunJGR8omVdO77F/KhvN8UR//KQqjkGMXgAweoWZ0Rn0uuwrVO/4KL3VfRo5KrApR0T3MThoyiePIsz7LhH4dnosWOlQ+6Rv5af/Zyp4jwG1ECVd2Ax1SZnXKRqm3og4nlHf5yTAFXh3dG79uhZrC2Vk4eCMsjPaNo0o0L3wDCxl5CZ9CidVDH4k7t095+TvLtILE577NvmKQ5F9f1uhyDqNb8shbJK8SF59cIOCThDjlg0dAuphcHUMKcrztN/Ys+ruQzM8yup5891C13P6hd0bjjcFGM14UX1H/gpCrGjQu+Vo0H9h+ytnqnEAeRXsnSQKZEBUFIuOTivlGH96w6qZ6jsG51+vBpd2+0bPVluMi12r1/kRMnaahZtNzGd/e1I7+JSsT0zD6JOsFW6U0uAC88xGKXW X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(376002)(366004)(346002)(136003)(396003)(39830400003)(6666004)(107886003)(1076003)(38100700002)(38350700002)(6486002)(36756003)(8936002)(54906003)(2616005)(6916009)(5660300002)(316002)(66556008)(52116002)(6506007)(186003)(66946007)(8676002)(4326008)(66476007)(41300700001)(86362001)(6512007)(26005)(83380400001)(478600001)(2906002)(44832011); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?MRBmm1yg9v/SZ1sxtv5GT5+ugqi3?= =?utf-8?q?x4ETB/37dwbdlYY3q4DONlHVKaS9QeqT1Np7XcO1qRzhBY4rH9A/s/foz5dtEiIr+?= =?utf-8?q?FOz8kAe6YTP+zBirQ+L3VXtkxzVmAwrKSaJAgjm4z6bfaXGBuXDYYmgcTw2eYNky7?= =?utf-8?q?IRcNSU1FSJp5bpw/Cmn+I1p3cEY+mqSx0VT6tpI1AXeMle8vmm8IW7OmWcskf54zP?= =?utf-8?q?gBESUob2Dd5PPuXTg6/6IZ800J9nkWBXQHxgKYKG1OfoJXqaQAsTeIBNe62u6Cnpm?= =?utf-8?q?RTfuTlnnTwOio/aDrejzM6HbgK1GlCbaA8Fod0MtVZPX82VEqOM05YWHqAqwp13CU?= =?utf-8?q?i0ZqITd2fZvFtvABM9cLk96uX0e4/tAlPL3ivEffPCEiWUuIdGagt7NUvkeIXhVrp?= =?utf-8?q?8td5VmqIbOc75wTcjvMRVdIbgzAoUD8ciE1JOFeHSFbjgWer6nbw9AjXmAyJoCyQ8?= =?utf-8?q?+2w6kd5XbJ5eYjLtO+Jf8Ecb6Isgcq0co1HaWI7z2Lb2Zp7e73WJOYMR/oP0wzYni?= =?utf-8?q?wpLTSA+FsORHpeY+z9ymE8ceu4rm4Icu0lnDBXNjQSelxbh5qOdyQvk6O9nZBsSON?= =?utf-8?q?8RmgZ6Js07IpUf4E9LK6u9dBhn0ErXcHFdlQvw4dstzKM56hCoLky2pATtNbjJ5+O?= =?utf-8?q?VENoW8UeoMpIGjzxerIPyxqqfPDbHCWc6v4cbnNB2zmw1h0zxBINumknNip3vR1Er?= =?utf-8?q?K/C0xF+IbLyLFLfmnldi2oO/0rgrI9qfZw6rBTZeGGVTNtR+exDKs21KwoKsWZ58M?= =?utf-8?q?CzVoZmg9k40pjLnVQNfJ7+MZV5InbxsHEDWVDVHC3/NJHcj92SsbXcSpHSrqjegfE?= =?utf-8?q?+/0xLNvwLEyJCXghYfLLKLymZnalnrTUn3d3+KO3sL93iDa7M+1zV1bo4lt3EJYb8?= =?utf-8?q?Hia2E5i+HBGOEe6orjYOT3Y/OoAAxcw8bWtPCH+MF5fEihg3OpF9eIqKg683sgMrh?= =?utf-8?q?vanXCHt5RZRo/fIZV7+IN8jVPC4ULeu655Z1pbTgpzbdFOjs+J7rCsCBkk3G+3Zk2?= =?utf-8?q?6SdcZfNedefzCnrF701GUjFvU8TUwvye0q1NS+pnbfpbcybsuXnSscK9iSQUeGArb?= =?utf-8?q?uDKVI8/WrayCv9vPncCmmuzIipjW6cmtMFVDiPL+RmT63rws4U39boAvWBDcQB9Gf?= =?utf-8?q?Ft5Q5+eW2VszxYX9gjh1G9q1XW+tDC5KfzyfcMPHxsG072x9zhSl3jhYn8gsi3DCp?= =?utf-8?q?gZzIi0RIncuEWzrL3tHjsNOaG1jEUn8hpvTZJIL+dzXZ9aB/CQyzSrzhysgZv6HrB?= =?utf-8?q?brdoBdx4A6qdXQ4nyKfbyDGDnBFDh+V4R6y1Iy88sfTdjE4NTLDfXWxCgTILn/w2U?= =?utf-8?q?EdaCfwS2L3cGj/T6mANRDGPPcsTlL2ArZw8YNSMXGRXsmNZXU+iFEVccuZWT6LmqT?= =?utf-8?q?i+1x8KabRo1icp3ORywTa+DR9upGtvnRBU3CXYh+F4czXjJhbwYsj3bovM6QIwz2E?= =?utf-8?q?IT3ADf3ft+fif+67pUMKFtSBeG8FfHpBCON+nlqaIDXr+eQj5QyMgPu9cTO8e3IyF?= =?utf-8?q?V/1VSA3KcTd6?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: b1e7843c-4617-4086-e4b2-08da54bfe6c2 X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2022 02:27:21.5865 (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: G+JxFXW/vTtxUK5z5SW7pmF/4rV1ONkBZs8Dbl7TsbbdXSEesL1RY0YXG/jHzZQmBB5OFrSzL3/sDNXbkyQfZQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR13MB3535 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 Move macro __round_mask, round_up and round_down from C file to corresponding head file, will be used by TX function of nfp net firmware with NFDk. Signed-off-by: Jin Liu Signed-off-by: Diana Wang Signed-off-by: Peng Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfpcore/nfp_rtsym.c | 19 ------------------- drivers/net/nfp/nfpcore/nfp_rtsym.h | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/drivers/net/nfp/nfpcore/nfp_rtsym.c b/drivers/net/nfp/nfpcore/nfp_rtsym.c index 2feca2ed81..56bbf05cd8 100644 --- a/drivers/net/nfp/nfpcore/nfp_rtsym.c +++ b/drivers/net/nfp/nfpcore/nfp_rtsym.c @@ -94,25 +94,6 @@ nfp_rtsym_table_read(struct nfp_cpp *cpp) return rtbl; } -/* - * This looks more complex than it should be. But we need to get the type for - * the ~ right in round_down (it needs to be as wide as the result!), and we - * want to evaluate the macro arguments just once each. - */ -#define __round_mask(x, y) ((__typeof__(x))((y) - 1)) - -#define round_up(x, y) \ - (__extension__ ({ \ - typeof(x) _x = (x); \ - ((((_x) - 1) | __round_mask(_x, y)) + 1); \ - })) - -#define round_down(x, y) \ - (__extension__ ({ \ - typeof(x) _x = (x); \ - ((_x) & ~__round_mask(_x, y)); \ - })) - struct nfp_rtsym_table * __nfp_rtsym_table_read(struct nfp_cpp *cpp, const struct nfp_mip *mip) { diff --git a/drivers/net/nfp/nfpcore/nfp_rtsym.h b/drivers/net/nfp/nfpcore/nfp_rtsym.h index 8b494211bc..d2856e19c3 100644 --- a/drivers/net/nfp/nfpcore/nfp_rtsym.h +++ b/drivers/net/nfp/nfpcore/nfp_rtsym.h @@ -15,6 +15,25 @@ #define NFP_RTSYM_TARGET_LMEM -1 #define NFP_RTSYM_TARGET_EMU_CACHE -7 +/* + * This looks more complex than it should be. But we need to get the type for + * the ~ right in round_down (it needs to be as wide as the result!), and we + * want to evaluate the macro arguments just once each. + */ +#define __round_mask(x, y) ((__typeof__(x))((y) - 1)) + +#define round_up(x, y) \ + (__extension__ ({ \ + typeof(x) _x = (x); \ + ((((_x) - 1) | __round_mask(_x, y)) + 1); \ + })) + +#define round_down(x, y) \ + (__extension__ ({ \ + typeof(x) _x = (x); \ + ((_x) & ~__round_mask(_x, y)); \ + })) + /* * Structure describing a run-time NFP symbol. * From patchwork Thu Jun 23 02:26:14 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 113293 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 5D287A0545; Thu, 23 Jun 2022 04:28:11 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 06A1242B96; Thu, 23 Jun 2022 04:27:29 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2094.outbound.protection.outlook.com [40.107.94.94]) by mails.dpdk.org (Postfix) with ESMTP id 0113042B7D for ; Thu, 23 Jun 2022 04:27:26 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ATbrJRg/8PaRARurgCpA2Leg911bGk8a1QgLVJDNMYHx2XUayZ4EgdenCFhOM64vkLhFmSilUPDh9M8u6T5q1k5qYmFDaViT8ayOabkW1hQIldE/JU7U9h/4LDuywBOLHVlDg679MO23NOSbPG9CEr4sujsh+9miyl++TxhfSx6sae3GaXS6iXarrvbdOUEoEYGs6OW/6m8LZjzbKp+hPWO0SH2bnT4vi8NoxnV7etPEIjeGmon8JNvO454QTTcqgH/H90UvUlLsEC7akyvfJYzMkjvYV8azJIbRSROhq0xnbI1+pIWKIWjWmFGvPwLCRQ3XmONbxGNmhulaZ+MhzA== 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=mli084exFEdgNMZoG88E9vi53O8jmtCTHlT2Xft54Kw=; b=LS2TKCaRLKe1PUSUysa+UIh6pW8QFTGxjGQ8Uvz/v0up1nc7Mr+QbnEYoA2WbcMV86paiTPSNIIho5mT27jRw4XfRVzHedhu58XmUlvN+QXa8iRa0m9OGT3syXmUB95Jajsghn/JK/NeNngJL+r94xxzkS8WIkyDilm1m21FY/N2ePiGi9qQv9QuRoEG4LrfejE4UNI9+rzIC3p/PJb0TFqdN+SdDIVbQNvnwbojfGzKUwnhVjH3tcI8+1qNHf6Thf/h8S8wbP4nBE0n8pmdfjlGXXHYqzKYBpwEGiSQZdCph5+mAbv+pKV1ZbXbBx40oIE1ljOlkJB77i/rC9mVoQ== 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=mli084exFEdgNMZoG88E9vi53O8jmtCTHlT2Xft54Kw=; b=AKK+owcFyD0UwJfVmar0BYEcVEWSduzmX0xLmuZjp+MFwfPLCnqJAsvOBJFtY+5R2jxG4XR8Rbef+2aIs9LZU0oYaUPUAA5qtXWiivIh8oQ/FwX0nCxPHt4p7yhzn1HD0EjkPl5AOehRzdArYSsocJFr/Faszs433CWYTwHiECE= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by MN2PR13MB3535.namprd13.prod.outlook.com (2603:10b6:208:169::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Thu, 23 Jun 2022 02:27:24 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35%7]) with mapi id 15.20.5373.015; Thu, 23 Jun 2022 02:27:24 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Diana Wang , Peng Zhang , Chaoyong He Subject: [PATCH v4 12/13] net/nfp: nfdk packet xmit function Date: Thu, 23 Jun 2022 04:26:14 +0200 Message-Id: <20220623022615.3628093-13-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220623022615.3628093-1-jin.liu@corigine.com> References: <20220617093444.2004000-1-jin.liu@corigine.com> <20220623022615.3628093-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P265CA0222.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:33a::10) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 884010c6-29be-4f89-dc46-08da54bfe868 X-MS-TrafficTypeDiagnostic: MN2PR13MB3535:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GOdnmDsEj0HJ5fWNvOcHR85Wqswzie+3H4zOiP1vLYX3Ddt8JY35hFfHX4zrTkhr98APsrB5Xqj3ThwuWMKNLfHDy4KfItJxrvMrO2T67sejH9+AMHJGnIv4bvx2ablf4iVdX+16JXg+1xEBN7bRE2UP8b8Uc7Rkkm/ws53xQsdOWSkGmUnPYeQT+5A7A3tinvgCdXPVeh1PhTNU4wQcdzRjrZ5Fb+sYmphAJZw2EKSlz1v+jbFpGo6/WDWhpubW3HhOAvStYprFxad/ZX8leXQ6iPFiC3Nlu4jBmRQfiRHQcwL820BES+MsRKzLiS+SqfOEcVx7qulWb361LaWxjwiVXgC4ukhRY+KacPFQ1SV+OnZJOky0vCMzzyYRPU4U4k9hlaHma2haJLpPMB3LPT8n9GSsIAAVDcfa4Y24meU8gBF5IScgmkYGmRegG9ceoWWZQr3zRZSw5ekzFriOg4142rFPS7wGalpYq2gUyVLfR2U8CTPH/FzjkhsYV9K6uANSaukqH+tGENQ3XlzoEqEkIJEP9JWtNxmSFkItFyOSQzIzhqn1TOOmFJPgKpJ5QBljcbNRK+W8eJYC2pGeRJVR2IKfBRne5F9dmA548Jp24prVB81+Thhj4yAuTO2WBOcerRkf2//TixHoy6UXtpKjjOOctX8VB31nxWT4zs3ZRjLbu9ST8ujBM83AEFiIVUqfXT/VoPiqXQCxAUIh8gkN8FPFAoIxXE3SZ0s/z/Ip5SgMf4cN4+TlcjAz3DMjWprI9Jj+2Ff8MgFlFpH2HyTYc7f5k2KTpOo/asqNmZXb0BOCJW6bIYYexrsx3daC X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(376002)(366004)(346002)(136003)(396003)(39830400003)(6666004)(107886003)(1076003)(38100700002)(38350700002)(6486002)(36756003)(66574015)(8936002)(54906003)(2616005)(6916009)(5660300002)(316002)(66556008)(52116002)(6506007)(186003)(66946007)(8676002)(30864003)(4326008)(66476007)(41300700001)(86362001)(6512007)(26005)(83380400001)(478600001)(2906002)(44832011); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?YHYPZW4lQqhkCykqKb4gk+Ov9hG+?= =?utf-8?q?vJqmyqlR6PqdmOAYx3it2ItHa2hgDt4ruQYrQUui33VFVEECabdyTRgdXrYheYN8Z?= =?utf-8?q?fnM5hgvcvXYfnCJIUW2d7h23dxcC3ihsuWIZlXGMl/TnZZy8NqFSNC5fhLVS4rjR6?= =?utf-8?q?04hxETSX9xoa1zs3TMTAOA94zVc8LzCLq+WdjgdkWLpbe4UNcPn46Y/QLoPtsZMwn?= =?utf-8?q?7avcGHVAJW9t4lqrPE554FuSSJcYWmIDWru7PGJeXx50QQ04nQjnbHzJU39U5Kckv?= =?utf-8?q?cF6kF85u7W/WsBTzqXEQoA59s42P+3TWBWBFMefksBPPcR9VNQMljX7Xp3PqWgrww?= =?utf-8?q?NicbeACgtCpjuwEt31EXA47zCkVjHe17TRJdyFKwtbfNAPAsgDmzkJ35btobkkMgI?= =?utf-8?q?BDzawbTJu+mZwpry4VprgnbpNP9e36evu2M+qyoy+5j+MjE8neQatPb1q8PMEMS+d?= =?utf-8?q?XUFbDili1yzCFZNjL/e14YF7zZFZGCt+7l+Ps+SN4Bs/TYy3ch0Rud0yc2aYe6UeA?= =?utf-8?q?Yv6nC4M8X7VAVN+iPS52BH1Sg1RUqTPkcxrWVk5uYNP78q7/cHVyC+kEaAYQ7Z44e?= =?utf-8?q?oDnGvsrUwA7CM8gZY0nMZv1HXwWhCp86WDgqHbCakoc9WMPBxv2mQxTcJmD1DESA2?= =?utf-8?q?GobgusGJmw+Fg9XUi5NkhMhP4Y4PZz/XOd/5l54xS9hqQ38aZ/45j9doRPTa6kAEQ?= =?utf-8?q?Qd4ZEj1r6F0pv8GsOHDT1Vvg95qhpI3WOOi5bdt0ZYc/xsMbYvmhndZzohl5Seo3a?= =?utf-8?q?94B4B9LKmsYVNbG7fFwHwkc8RHuysPpXIUbiaaUZLd712oyPD8uAlF+E4bUmPR7qO?= =?utf-8?q?qvpXVrxqCP8oud3g1KYg6xN7jL0k8B7mvk60QrTlO+7WrsXgNYd0kQxUErhjQXshe?= =?utf-8?q?724bbUYC6C6yZDZR1EkcSvN/7mY8t/J3N6lzM29lNTY15RQPyKs4VLfyI44dJyOXw?= =?utf-8?q?bkXRd3p1h0GYZBUd2o7q9M2J/fFSOH5G+as2coC7Td/+6w4bLULF8bLET3sFp1b9Y?= =?utf-8?q?a9L+6bN10sdReQGyfbNXkROZPcZJZHKtL+gKfz9VXpMaDmPRIS3JknhuWZwUMUcAX?= =?utf-8?q?MGJM6uC2K5b45cN195lPBgBasRojZAVxjF6BrmeD9kLn+shpXw7Cc6xS65NnIb/Sf?= =?utf-8?q?T8ET+I76YA0aqjcDDo5g2mQGKjPGikYxclLQz/i3dqn+ucO5hRII8X2pqQljQo2yj?= =?utf-8?q?mHY4lGJHIOmPvnDUvaxOFxK414ChLxovJEI9yWnbiUAFq0q21QhesP8+gwVgoZzlf?= =?utf-8?q?fG+cZK6J4Woxm9G8ggTjcyUSIL7BN7e7WtLNjWbe1ZTdv4qtVyy3fvTlkokO3zpn4?= =?utf-8?q?CB7kw6geNjg58PM0r/skesW1EIa4zqPJRzTxPN2YmtSEwScjKpf49yc/nRcHVH+WS?= =?utf-8?q?YPm+IdIB0BEW/HC/TB8l1Uj63L4snPP3AL5Ra+aF986FDtV0KRINeMewProiMKGFR?= =?utf-8?q?/hGWt66DDl+PHic9iFijMRLwS3ScxaMOQjoeVC9KCWNJODT6+Ncee8yU9BM36bEph?= =?utf-8?q?/8Td/sfecGNu?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 884010c6-29be-4f89-dc46-08da54bfe868 X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2022 02:27:24.4612 (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: E3aE8/kA7rXbsj1S+jMGBQ/vi+/W1F4FtPrGKh1jiOXoHTpKOrcZbLuaLkZnkpQr0zIQuOMXaZF4YOmUbvX0Dw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR13MB3535 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 Implement NFP3800 card packet transmit function for firmware with NFDk. Signed-off-by: Jin Liu Signed-off-by: Diana Wang Signed-off-by: Peng Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_ethdev.c | 3 +- drivers/net/nfp/nfp_ethdev_vf.c | 3 +- drivers/net/nfp/nfp_rxtx.c | 283 ++++++++++++++++++++++++++++++++ drivers/net/nfp/nfp_rxtx.h | 3 + 4 files changed, 290 insertions(+), 2 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index e8a8368d0f..b6817c10da 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -374,6 +374,7 @@ nfp_net_ethdev_ops_mount(struct nfp_net_hw *hw, struct rte_eth_dev *eth_dev) switch (NFD_CFG_CLASS_VER_of(hw->ver)) { case NFP_NET_CFG_VERSION_DP_NFD3: eth_dev->dev_ops = &nfp_net_nfd3_eth_dev_ops; + eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; break; case NFP_NET_CFG_VERSION_DP_NFDK: if (NFD_CFG_MAJOR_VERSION_of(hw->ver) < 5) { @@ -382,6 +383,7 @@ nfp_net_ethdev_ops_mount(struct nfp_net_hw *hw, struct rte_eth_dev *eth_dev) return -EINVAL; } eth_dev->dev_ops = &nfp_net_nfdk_eth_dev_ops; + eth_dev->tx_pkt_burst = &nfp_net_nfdk_xmit_pkts; break; default: PMD_DRV_LOG(ERR, "The version of firmware is not correct."); @@ -390,7 +392,6 @@ nfp_net_ethdev_ops_mount(struct nfp_net_hw *hw, struct rte_eth_dev *eth_dev) eth_dev->rx_queue_count = nfp_net_rx_queue_count; eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; - eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; return 0; } diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index 56428814b7..66a1c0a36b 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -279,6 +279,7 @@ nfp_netvf_ethdev_ops_mount(struct nfp_net_hw *hw, struct rte_eth_dev *eth_dev) switch (NFD_CFG_CLASS_VER_of(hw->ver)) { case NFP_NET_CFG_VERSION_DP_NFD3: eth_dev->dev_ops = &nfp_netvf_nfd3_eth_dev_ops; + eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; break; case NFP_NET_CFG_VERSION_DP_NFDK: if (NFD_CFG_MAJOR_VERSION_of(hw->ver) < 5) { @@ -287,6 +288,7 @@ nfp_netvf_ethdev_ops_mount(struct nfp_net_hw *hw, struct rte_eth_dev *eth_dev) return -EINVAL; } eth_dev->dev_ops = &nfp_netvf_nfdk_eth_dev_ops; + eth_dev->tx_pkt_burst = &nfp_net_nfdk_xmit_pkts; break; default: PMD_DRV_LOG(ERR, "The version of firmware is not correct."); @@ -295,7 +297,6 @@ nfp_netvf_ethdev_ops_mount(struct nfp_net_hw *hw, struct rte_eth_dev *eth_dev) eth_dev->rx_queue_count = nfp_net_rx_queue_count; eth_dev->rx_pkt_burst = &nfp_net_recv_pkts; - eth_dev->tx_pkt_burst = &nfp_net_nfd3_xmit_pkts; return 0; } diff --git a/drivers/net/nfp/nfp_rxtx.c b/drivers/net/nfp/nfp_rxtx.c index 4f422c5090..63729261c8 100644 --- a/drivers/net/nfp/nfp_rxtx.c +++ b/drivers/net/nfp/nfp_rxtx.c @@ -20,6 +20,9 @@ #include "nfp_rxtx.h" #include "nfp_logs.h" #include "nfp_ctrl.h" +#include "nfpcore/nfp_mip.h" +#include "nfpcore/nfp_rtsym.h" +#include "nfpcore/nfp-common/nfp_platform.h" static int nfp_net_rx_fill_freelist(struct nfp_net_rxq *rxq) @@ -1104,3 +1107,283 @@ nfp_net_nfdk_tx_queue_setup(struct rte_eth_dev *dev, return 0; } + +static inline uint32_t +nfp_net_nfdk_free_tx_desc(struct nfp_net_txq *txq) +{ + uint32_t free_desc; + + if (txq->wr_p >= txq->rd_p) + free_desc = txq->tx_count - (txq->wr_p - txq->rd_p); + else + free_desc = txq->rd_p - txq->wr_p; + + return (free_desc > NFDK_TX_DESC_STOP_CNT) ? + (free_desc - NFDK_TX_DESC_STOP_CNT) : 0; +} + +static inline uint32_t +nfp_net_nfdk_txq_full(struct nfp_net_txq *txq) +{ + return (nfp_net_nfdk_free_tx_desc(txq) < txq->tx_free_thresh); +} + +static inline int +nfp_net_nfdk_headlen_to_segs(unsigned int headlen) +{ + return DIV_ROUND_UP(headlen + + NFDK_TX_MAX_DATA_PER_DESC - + NFDK_TX_MAX_DATA_PER_HEAD, + NFDK_TX_MAX_DATA_PER_DESC); +} + +static int +nfp_net_nfdk_tx_maybe_close_block(struct nfp_net_txq *txq, struct rte_mbuf *pkt) +{ + unsigned int n_descs, wr_p, i, nop_slots; + struct rte_mbuf *pkt_temp; + + pkt_temp = pkt; + n_descs = nfp_net_nfdk_headlen_to_segs(pkt_temp->data_len); + while (pkt_temp->next) { + pkt_temp = pkt_temp->next; + n_descs += DIV_ROUND_UP(pkt_temp->data_len, NFDK_TX_MAX_DATA_PER_DESC); + } + + if (unlikely(n_descs > NFDK_TX_DESC_GATHER_MAX)) + return -EINVAL; + + n_descs += !!(pkt->ol_flags & RTE_MBUF_F_TX_TCP_SEG); + + if (round_down(txq->wr_p, NFDK_TX_DESC_BLOCK_CNT) != + round_down(txq->wr_p + n_descs, NFDK_TX_DESC_BLOCK_CNT)) + goto close_block; + + if ((uint32_t)txq->data_pending + pkt->pkt_len > NFDK_TX_MAX_DATA_PER_BLOCK) + goto close_block; + + return 0; + +close_block: + wr_p = txq->wr_p; + nop_slots = D_BLOCK_CPL(wr_p); + + memset(&txq->ktxds[wr_p], 0, nop_slots * sizeof(struct nfp_net_nfdk_tx_desc)); + for (i = wr_p; i < nop_slots + wr_p; i++) { + if (txq->txbufs[i].mbuf) { + rte_pktmbuf_free_seg(txq->txbufs[i].mbuf); + txq->txbufs[i].mbuf = NULL; + } + } + txq->data_pending = 0; + txq->wr_p = D_IDX(txq, txq->wr_p + nop_slots); + + return nop_slots; +} + +static inline uint64_t +nfp_net_nfdk_tx_cksum(struct nfp_net_txq *txq, struct rte_mbuf *mb, + uint64_t flags) +{ + uint64_t ol_flags; + struct nfp_net_hw *hw = txq->hw; + + if (!(hw->cap & NFP_NET_CFG_CTRL_TXCSUM)) + return flags; + + ol_flags = mb->ol_flags; + + /* IPv6 does not need checksum */ + if (ol_flags & RTE_MBUF_F_TX_IP_CKSUM) + flags |= NFDK_DESC_TX_L3_CSUM; + + if (ol_flags & RTE_MBUF_F_TX_L4_MASK) + flags |= NFDK_DESC_TX_L4_CSUM; + + return flags; +} + +static inline uint64_t +nfp_net_nfdk_tx_tso(struct nfp_net_txq *txq, struct rte_mbuf *mb) +{ + uint64_t ol_flags; + struct nfp_net_nfdk_tx_desc txd; + struct nfp_net_hw *hw = txq->hw; + + if (!(hw->cap & NFP_NET_CFG_CTRL_LSO_ANY)) + goto clean_txd; + + ol_flags = mb->ol_flags; + + if (!(ol_flags & RTE_MBUF_F_TX_TCP_SEG)) + goto clean_txd; + + txd.l3_offset = mb->l2_len; + txd.l4_offset = mb->l2_len + mb->l3_len; + txd.lso_meta_res = 0; + txd.mss = rte_cpu_to_le_16(mb->tso_segsz); + txd.lso_hdrlen = mb->l2_len + mb->l3_len + mb->l4_len; + txd.lso_totsegs = (mb->pkt_len + mb->tso_segsz) / mb->tso_segsz; + +clean_txd: + txd.l3_offset = 0; + txd.l4_offset = 0; + txd.lso_hdrlen = 0; + txd.mss = 0; + txd.lso_totsegs = 0; + txd.lso_meta_res = 0; + + return txd.raw; +} + +uint16_t +nfp_net_nfdk_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) +{ + uint32_t buf_idx; + uint64_t dma_addr; + uint16_t free_descs; + uint32_t npkts = 0; + uint64_t metadata = 0; + uint16_t issued_descs = 0; + struct nfp_net_txq *txq; + struct nfp_net_hw *hw; + struct nfp_net_nfdk_tx_desc *ktxds; + struct rte_mbuf *pkt, *temp_pkt; + struct rte_mbuf **lmbuf; + + txq = tx_queue; + hw = txq->hw; + + PMD_TX_LOG(DEBUG, "working for queue %u at pos %d and %u packets", + txq->qidx, txq->wr_p, nb_pkts); + + if ((nfp_net_nfdk_free_tx_desc(txq) < NFDK_TX_DESC_PER_SIMPLE_PKT * + nb_pkts) || (nfp_net_nfdk_txq_full(txq))) + nfp_net_tx_free_bufs(txq); + + free_descs = (uint16_t)nfp_net_nfdk_free_tx_desc(txq); + if (unlikely(free_descs == 0)) + return 0; + + PMD_TX_LOG(DEBUG, "queue: %u. Sending %u packets", txq->qidx, nb_pkts); + /* Sending packets */ + while ((npkts < nb_pkts) && free_descs) { + uint32_t type, dma_len, dlen_type, tmp_dlen; + int nop_descs, used_descs; + + pkt = *(tx_pkts + npkts); + nop_descs = nfp_net_nfdk_tx_maybe_close_block(txq, pkt); + if (nop_descs < 0) + goto xmit_end; + + issued_descs += nop_descs; + ktxds = &txq->ktxds[txq->wr_p]; + /* Grabbing the mbuf linked to the current descriptor */ + buf_idx = txq->wr_p; + lmbuf = &txq->txbufs[buf_idx++].mbuf; + /* Warming the cache for releasing the mbuf later on */ + RTE_MBUF_PREFETCH_TO_FREE(*lmbuf); + + temp_pkt = pkt; + + if (unlikely(pkt->nb_segs > 1 && + !(hw->cap & NFP_NET_CFG_CTRL_GATHER))) { + PMD_INIT_LOG(INFO, "NFP_NET_CFG_CTRL_GATHER not set"); + PMD_INIT_LOG(INFO, "Multisegment packet unsupported"); + goto xmit_end; + } + + /* + * Checksum and VLAN flags just in the first descriptor for a + * multisegment packet, but TSO info needs to be in all of them. + */ + + dma_len = pkt->data_len; + if ((hw->cap & NFP_NET_CFG_CTRL_LSO_ANY) && + (pkt->ol_flags & RTE_MBUF_F_TX_TCP_SEG)) { + type = NFDK_DESC_TX_TYPE_TSO; + } else if (!pkt->next && dma_len < NFDK_TX_MAX_DATA_PER_HEAD) { + type = NFDK_DESC_TX_TYPE_SIMPLE; + } else { + type = NFDK_DESC_TX_TYPE_GATHER; + } + dma_len -= 1; + dlen_type = (NFDK_DESC_TX_DMA_LEN_HEAD & dma_len) | + (NFDK_DESC_TX_TYPE_HEAD & (type << 12)); + ktxds->dma_len_type = rte_cpu_to_le_16(dlen_type); + dma_addr = rte_mbuf_data_iova(pkt); + PMD_TX_LOG(DEBUG, "Working with mbuf at dma address:" + "%" PRIx64 "", dma_addr); + ktxds->dma_addr_hi = rte_cpu_to_le_16(dma_addr >> 32); + ktxds->dma_addr_lo = rte_cpu_to_le_32(dma_addr & 0xffffffff); + ktxds++; + + tmp_dlen = dlen_type & NFDK_DESC_TX_DMA_LEN_HEAD; + dma_len -= tmp_dlen; + dma_addr += tmp_dlen + 1; + + while (pkt) { + if (*lmbuf) + rte_pktmbuf_free_seg(*lmbuf); + *lmbuf = pkt; + while (dma_len > 0) { + dma_len -= 1; + dlen_type = NFDK_DESC_TX_DMA_LEN & dma_len; + + ktxds->dma_len_type = rte_cpu_to_le_16(dlen_type); + ktxds->dma_addr_hi = rte_cpu_to_le_16(dma_addr >> 32); + ktxds->dma_addr_lo = rte_cpu_to_le_32(dma_addr & 0xffffffff); + ktxds++; + + dma_len -= dlen_type; + dma_addr += dlen_type + 1; + } + + if (!pkt->next) + break; + + pkt = pkt->next; + dma_len = pkt->data_len; + dma_addr = rte_mbuf_data_iova(pkt); + PMD_TX_LOG(DEBUG, "Working with mbuf at dma address:" + "%" PRIx64 "", dma_addr); + + lmbuf = &txq->txbufs[buf_idx++].mbuf; + } + + (ktxds - 1)->dma_len_type = rte_cpu_to_le_16(dlen_type | NFDK_DESC_TX_EOP); + + ktxds->raw = rte_cpu_to_le_64(nfp_net_nfdk_tx_cksum(txq, temp_pkt, metadata)); + ktxds++; + + if ((hw->cap & NFP_NET_CFG_CTRL_LSO_ANY) && + (temp_pkt->ol_flags & RTE_MBUF_F_TX_TCP_SEG)) { + ktxds->raw = rte_cpu_to_le_64(nfp_net_nfdk_tx_tso(txq, temp_pkt)); + ktxds++; + } + + used_descs = ktxds - txq->ktxds - txq->wr_p; + if (round_down(txq->wr_p, NFDK_TX_DESC_BLOCK_CNT) != + round_down(txq->wr_p + used_descs - 1, NFDK_TX_DESC_BLOCK_CNT)) { + PMD_INIT_LOG(INFO, "Used descs cross block boundary"); + goto xmit_end; + } + + txq->wr_p = D_IDX(txq, txq->wr_p + used_descs); + if (txq->wr_p % NFDK_TX_DESC_BLOCK_CNT) + txq->data_pending += temp_pkt->pkt_len; + else + txq->data_pending = 0; + + issued_descs += used_descs; + npkts++; + free_descs = (uint16_t)nfp_net_nfdk_free_tx_desc(txq); + } + +xmit_end: + /* Increment write pointers. Force memory write before we let HW know */ + rte_wmb(); + nfp_qcp_ptr_add(txq->qcp_q, NFP_QCP_WRITE_PTR, issued_descs); + + return npkts; +} diff --git a/drivers/net/nfp/nfp_rxtx.h b/drivers/net/nfp/nfp_rxtx.h index ba8ffbd1ff..5c005d74e7 100644 --- a/drivers/net/nfp/nfp_rxtx.h +++ b/drivers/net/nfp/nfp_rxtx.h @@ -352,6 +352,9 @@ int nfp_net_nfdk_tx_queue_setup(struct rte_eth_dev *dev, uint16_t nb_desc, unsigned int socket_id, const struct rte_eth_txconf *tx_conf); +uint16_t nfp_net_nfdk_xmit_pkts(void *tx_queue, + struct rte_mbuf **tx_pkts, + uint16_t nb_pkts); #endif /* _NFP_RXTX_H_ */ /* From patchwork Thu Jun 23 02:26:15 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jin Liu X-Patchwork-Id: 113294 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 C55CFA0545; Thu, 23 Jun 2022 04:28:17 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5380842B98; Thu, 23 Jun 2022 04:27:32 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2124.outbound.protection.outlook.com [40.107.94.124]) by mails.dpdk.org (Postfix) with ESMTP id BCDA542B92 for ; Thu, 23 Jun 2022 04:27:28 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=S8x17Ca8Kue+uMScjIAzd02PcGSx8g6YYhjjYPFYr359SIC/tSy5bprgRl56lycHDdVt5khEtGjCp7XqdL+NO64abTA2YgJ9Tk2ATaRxTuB7C/Q625r/j7+zbwqxHlEa88h5WzL7JqP3SHBkYllLxe2lJUY8XiqT2AI53WNUj9OwbIZbAnwZwUGrMaLQi6z0/KaSa8n85K7NJQwwZSGBVhXbD3o9Yr3/mRF1jOMc709mXfR8xKAA2EhS23hz6yxe5Vron9MxJrRmF48gh/D9lzt2OelDrJ7xs6C43kasOhvkiSAAXN3OtvCa5iZbGZmKJu1+uniAt/k8DoUfbfqB+Q== 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=kbiIdy9GYlaYOdYqzFu+5Gi4H8XtelBFlrwwvfmoFxw=; b=EGwn5ioElSdjOPNx+JHhEQq4P1gKmcNNjmq7QALUeEgnkkC/RP42EkZR/TYdOJ4eoJ+7e/16UNLQGpq/FNcUTptodeV66X7ST4CfXBg8F5Vm6EYyIwZCWpQua3EPF0p/k7ZyWgfy7tjBdle0nme0w9dBpaN0F7WTm7dDpJcIB8cqsAc9yswJStz2OjHajrjNSNLCccjLq/Vr/P9lqVM+dY0+Lu5DYli+qG9so9mU2/ap/bCciAW5EPFsO+IJXySEXun5qV8YCtDm+tXp0TUSW8gRJuCF2DXj85ghLFuH2iENYNKkKnNpHLVMlNECqIxSsDitqaOfn/eUU1R0pYtOrQ== 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=kbiIdy9GYlaYOdYqzFu+5Gi4H8XtelBFlrwwvfmoFxw=; b=n1bIA06knDdr7MWfWSvy01bouBXTtcR7H8KcxXNjEuWcImYtqPEzpmJIb2p4+F2lMimVHHfHWCn1A1isRBYaprl2I7KvOcZe5r1kRNqzKcEgrzCosLFHMyrOZzGJ69iU6NNZ6sb1eVxEpUWfTiri3lBncDMTJ1oq24CRYV1no/E= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) by MN2PR13MB3535.namprd13.prod.outlook.com (2603:10b6:208:169::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Thu, 23 Jun 2022 02:27:27 +0000 Received: from DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35]) by DM6PR13MB3004.namprd13.prod.outlook.com ([fe80::ac31:a36a:cc15:cd35%7]) with mapi id 15.20.5373.015; Thu, 23 Jun 2022 02:27:27 +0000 From: Jin Liu To: dev@dpdk.org Cc: niklas.soderlund@corigine.com, Jin Liu , Diana Wang , Peng Zhang , Chaoyong He Subject: [PATCH v4 13/13] net/nfp: modify RSS logic Date: Thu, 23 Jun 2022 04:26:15 +0200 Message-Id: <20220623022615.3628093-14-jin.liu@corigine.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20220623022615.3628093-1-jin.liu@corigine.com> References: <20220617093444.2004000-1-jin.liu@corigine.com> <20220623022615.3628093-1-jin.liu@corigine.com> X-ClientProxiedBy: LO4P265CA0222.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:33a::10) To DM6PR13MB3004.namprd13.prod.outlook.com (2603:10b6:5:191::21) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b097e502-50a1-45f3-83fe-08da54bfea1f X-MS-TrafficTypeDiagnostic: MN2PR13MB3535:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: h8ij3cyE6rhe8l2iv9eB8nN1NG49paTOOEGR7k1ATWdbLNpRnorpSX8beDjHI9zlE3ea6+DFDyeXpEnPkjZHZrGpwNs2mM2xBCvhAMHJflkAxixZJ3rY8b6afH/ViBNweK7ZuDKPZSQVcw1YkhX6/GKBvNt+aSJqeE+5zukQmg2eH23zhCi9ZP1BCSYcfs2jTgM06TnSCGEIPIlhLCuKivmFT9edGoX7mwia+vKtqVgLTt/GDZwEJWcrJ7ZSB/2ydfTOcKjUuQxsaxc6lhMCOXKBzv9Q2ASLogAieg/2rU5QKPNnBQItGcCDln4RtinnniV9k3/IliNU0gfQjo2GSVKpT0dWqCQUIJtMpTf90opJFnpd7qATKlrvN0+cGsA+zEK/be6hF9m1WcRqSh6E9CpZjn6RCNPBN40Jxd9KGl4PX5FnkfBc493kPnx1PzqKxsvwDN3ZhD5kIwuQ0+0sQNWBjXqR3w2W6/6QZC14PWM+D8GLG8kxC64wx4KrXAv95Op7LRyPVInZG+bsw20WpfcKPOsyq63ZAekeB2M7ow0ax0UrrMGi78hMIpMrbHWhb7SsgQSUGJsKcOYXMri4hz5UJr9R6rPdctVjmMXliEZRUlGa6FkqMEn/TusiAO0OpHgjThpTUdrI0v+JjtYuXck1T316JYF5cfIqAZWhyFgn0pSWMtvx4E3sJxk2ydrkaz8lzU7B8Bziz49nyyMkJmXV3ZzltCQshyTqu30MxQ1/qQYq0y+yclYvIgeWRwEOivzsqpoes+JtYHN/yW9mMUX+F1hXySKNO13XmkvCHoXl8rOrE8pviEtO8rDGB34F X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR13MB3004.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(376002)(366004)(346002)(136003)(396003)(39830400003)(6666004)(107886003)(1076003)(38100700002)(38350700002)(6486002)(36756003)(66574015)(8936002)(54906003)(2616005)(6916009)(5660300002)(316002)(66556008)(52116002)(6506007)(186003)(66946007)(8676002)(4326008)(66476007)(41300700001)(86362001)(6512007)(26005)(83380400001)(478600001)(2906002)(44832011); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?JhKZ7WSU4n/7FedNhCVgGbrWRPnO?= =?utf-8?q?54naBItGSUe999dMXx05RCwozo84S3FbdLDQx7XNXgm2F64rAWlm5oW7ONg1v9Cpg?= =?utf-8?q?zzzbvO5jiQ6vhc5DBctN+Vb4ylVv9L5e8+t+GI/ddhIfgq0Eaq5vGOjuUvln/5Cb3?= =?utf-8?q?ZVoJTBfxa/VcXns8kg4phGj78PSHC7G5s2mS2eEhGnohqSHoiM7qwbJ9/bg8bBAdm?= =?utf-8?q?FHtAT1PFaORBP7J+eUuOi83RuRe5FNJeMYbRJRW0d7u/sge02ojBc5UMij7xNg6gA?= =?utf-8?q?tRC4rqLHYiUlKTLFTFvl6oGBIvV/AZUuIXP2cPusRm9X1eFjE/J7Abvz2/HPhU2KO?= =?utf-8?q?YsdlcnSEmyAI0uY7VasLu9iYGeZC930AWYYKq3Zc3rCt7HDTe7Xuzo7/7YP4LfhZA?= =?utf-8?q?zlM2wq7lLttsdcz6pZJAxuRCtVwum2aSWCJcOW9Y1wHm3xh/6m72Y78YHKTLLGMvt?= =?utf-8?q?CXal5NirZbhswL92LMfyGP3Ntio0XqsKuejkh9mu+SufB4r5vCMOW6nm1+D8TLpXE?= =?utf-8?q?O3v868imZwrq2ZY42zjiGpZRZ3481EO8YlqnU+h1Yi2kJHG4nxGcEk88/2THbsrgU?= =?utf-8?q?0+XUY3pizbIexgHNDLxlp8d8gZrkOuXV9iEvwSZlJ7DDZKntFrvFQyEFUbiKwxNyy?= =?utf-8?q?g4xoehqC+0f+Z8I2e58G8Ce6CtZ+5EGnjJIkZKX62iaPPIdX4l3z6/3zI0I3sbIOo?= =?utf-8?q?82VpmHV5YwZTtQyferBjUdbahFfFCPYnDBZkmEbBdexmRpHd95r9rcP+aoNRrxQm+?= =?utf-8?q?KtA1fMEbCuZaHuosuOdxm/wTf3RqYCwPmiUoZ9ioyb4nRIZ+maV+9YisqlRu2hUeD?= =?utf-8?q?7eUDJuozuSO2SWWxpFN1IDyQvB8OV/xXVmKoDKNdblZMHsjwBn82YeeSIGtFlMYgS?= =?utf-8?q?Bki/CY7CKBy65OfovKwisUXnkp2ZEsjqcAECHD0nxRmrnikRvm0LUDLNBRQIwqNmE?= =?utf-8?q?uG9NOGGk3Bog9c2bQZjxXWCVebn4brPbTW8fhb3zlcT33pijjTrYfaBhDIdGsSBgi?= =?utf-8?q?SdhmJ/CKeoWOhksM9oYwc1l6+qY0n+OsRQ+ifOUBYcDQMoRPd7rmLAC3REV2+Ahjh?= =?utf-8?q?OPnnuFETLPXw2+FwKLE4D/qtEmUpFJXgufEOJwbJfP8YKnBf1WGGCrOcJ43tr1Amx?= =?utf-8?q?yk96+e/tQdJFxlmcbARMaXbFSlVVaWzMA+C7bhEFSHjl51Mdg4YY1vOxhoyuQ7PV3?= =?utf-8?q?08JaGuqYP59ho1fhr+axQcRjM62sRRWgsiEGwHZiyUS8dkYTCJTalblm+djRy7G4P?= =?utf-8?q?C2QY5KZImwY5dqfYLHUmCw3V8uvPBhCBmLVTZ66TtNt7qvMRuPq0eCfaq2tryPwWd?= =?utf-8?q?P7kz6Zph6sRcvDGIJCJt1KNFYIWv6odG7jTjzbqE+VyMP8IU1iMuWg+xNyHOPxyaV?= =?utf-8?q?YgOIatcW1F9+dgeyO2Hc8X/+IQVw/Z0uuaHGmcDB7qVNf+3mc1lbZnIG+uszgkhju?= =?utf-8?q?bTibtmAX0RQ2bly0yLc8csanvg+EPCP84PnC0LMszW3acrStyaS2xuUB2ULfwBYm7?= =?utf-8?q?UdnxdfJP9fUX?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: b097e502-50a1-45f3-83fe-08da54bfea1f X-MS-Exchange-CrossTenant-AuthSource: DM6PR13MB3004.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2022 02:27:27.2266 (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: td+oD3YDLAju26BKLaCI9/TIdRGXqEc7Cqflje1+bdm2tzQSmGXAWHO3LDIixi4TtyDtGIyKcgWxR6Yx2jqQng== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR13MB3535 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 Now NFP NIC support two type of RSS logic, NFP_NET_CFG_CTRL_RSS and NFP_NET_CFG_CTRL_RSS2, use NFP_NET_CFG_CTRL_RSS2 if NIC capability support, otherwise use NFP_NET_CFG_CTRL_RSS. Signed-off-by: Jin Liu Signed-off-by: Diana Wang Signed-off-by: Peng Zhang Signed-off-by: Chaoyong He Signed-off-by: Niklas Söderlund --- drivers/net/nfp/nfp_common.c | 12 ++++++------ drivers/net/nfp/nfp_ctrl.h | 1 + drivers/net/nfp/nfp_ethdev.c | 5 ++++- drivers/net/nfp/nfp_ethdev_vf.c | 5 ++++- drivers/net/nfp/nfp_rxtx.c | 2 +- 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/drivers/net/nfp/nfp_common.c b/drivers/net/nfp/nfp_common.c index 755c5ec4d9..0e55f0c792 100644 --- a/drivers/net/nfp/nfp_common.c +++ b/drivers/net/nfp/nfp_common.c @@ -171,7 +171,7 @@ nfp_net_configure(struct rte_eth_dev *dev) /* Checking RX mode */ if (rxmode->mq_mode & RTE_ETH_MQ_RX_RSS && - !(hw->cap & NFP_NET_CFG_CTRL_RSS)) { + !(hw->cap & NFP_NET_CFG_CTRL_RSS_ANY)) { PMD_INIT_LOG(INFO, "RSS not supported"); return -EINVAL; } @@ -769,7 +769,7 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) .nb_mtu_seg_max = NFP_TX_MAX_MTU_SEG, }; - if (hw->cap & NFP_NET_CFG_CTRL_RSS) { + if (hw->cap & NFP_NET_CFG_CTRL_RSS_ANY) { dev_info->rx_offload_capa |= RTE_ETH_RX_OFFLOAD_RSS_HASH; dev_info->flow_type_rss_offloads = RTE_ETH_RSS_IPV4 | @@ -1080,7 +1080,7 @@ nfp_net_reta_update(struct rte_eth_dev *dev, uint32_t update; int ret; - if (!(hw->ctrl & NFP_NET_CFG_CTRL_RSS)) + if (!(hw->ctrl & NFP_NET_CFG_CTRL_RSS_ANY)) return -EINVAL; ret = nfp_net_rss_reta_write(dev, reta_conf, reta_size); @@ -1108,7 +1108,7 @@ nfp_net_reta_query(struct rte_eth_dev *dev, hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private); - if (!(hw->ctrl & NFP_NET_CFG_CTRL_RSS)) + if (!(hw->ctrl & NFP_NET_CFG_CTRL_RSS_ANY)) return -EINVAL; if (reta_size != NFP_NET_CFG_RSS_ITBL_SZ) { @@ -1206,7 +1206,7 @@ nfp_net_rss_hash_update(struct rte_eth_dev *dev, rss_hf = rss_conf->rss_hf; /* Checking if RSS is enabled */ - if (!(hw->ctrl & NFP_NET_CFG_CTRL_RSS)) { + if (!(hw->ctrl & NFP_NET_CFG_CTRL_RSS_ANY)) { if (rss_hf != 0) { /* Enable RSS? */ PMD_DRV_LOG(ERR, "RSS unsupported"); return -EINVAL; @@ -1241,7 +1241,7 @@ nfp_net_rss_hash_conf_get(struct rte_eth_dev *dev, hw = NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private); - if (!(hw->ctrl & NFP_NET_CFG_CTRL_RSS)) + if (!(hw->ctrl & NFP_NET_CFG_CTRL_RSS_ANY)) return -EINVAL; rss_hf = rss_conf->rss_hf; diff --git a/drivers/net/nfp/nfp_ctrl.h b/drivers/net/nfp/nfp_ctrl.h index e73715e2aa..372d537462 100644 --- a/drivers/net/nfp/nfp_ctrl.h +++ b/drivers/net/nfp/nfp_ctrl.h @@ -119,6 +119,7 @@ #define NFP_NET_CFG_MACADDR 0x0024 #define NFP_NET_CFG_CTRL_LSO_ANY (NFP_NET_CFG_CTRL_LSO | NFP_NET_CFG_CTRL_LSO2) +#define NFP_NET_CFG_CTRL_RSS_ANY (NFP_NET_CFG_CTRL_RSS | NFP_NET_CFG_CTRL_RSS2) /* * Read-only words (0x0030 - 0x0050): diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index b6817c10da..673a17c26c 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -123,7 +123,10 @@ nfp_net_start(struct rte_eth_dev *dev) if (rxmode->mq_mode & RTE_ETH_MQ_RX_RSS) { nfp_net_rss_config_default(dev); update |= NFP_NET_CFG_UPDATE_RSS; - new_ctrl |= NFP_NET_CFG_CTRL_RSS; + if (hw->cap & NFP_NET_CFG_CTRL_RSS2) + new_ctrl |= NFP_NET_CFG_CTRL_RSS2; + else + new_ctrl |= NFP_NET_CFG_CTRL_RSS; } /* Enable device */ diff --git a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c index 66a1c0a36b..3f4ad3e7ab 100644 --- a/drivers/net/nfp/nfp_ethdev_vf.c +++ b/drivers/net/nfp/nfp_ethdev_vf.c @@ -95,7 +95,10 @@ nfp_netvf_start(struct rte_eth_dev *dev) if (rxmode->mq_mode & RTE_ETH_MQ_RX_RSS) { nfp_net_rss_config_default(dev); update |= NFP_NET_CFG_UPDATE_RSS; - new_ctrl |= NFP_NET_CFG_CTRL_RSS; + if (hw->cap & NFP_NET_CFG_CTRL_RSS2) + new_ctrl |= NFP_NET_CFG_CTRL_RSS2; + else + new_ctrl |= NFP_NET_CFG_CTRL_RSS; } /* Enable device */ diff --git a/drivers/net/nfp/nfp_rxtx.c b/drivers/net/nfp/nfp_rxtx.c index 63729261c8..8429b44de0 100644 --- a/drivers/net/nfp/nfp_rxtx.c +++ b/drivers/net/nfp/nfp_rxtx.c @@ -138,7 +138,7 @@ nfp_net_set_hash(struct nfp_net_rxq *rxq, struct nfp_net_rx_desc *rxd, uint32_t hash = 0; uint32_t hash_type = 0; - if (!(hw->ctrl & NFP_NET_CFG_CTRL_RSS)) + if (!(hw->ctrl & NFP_NET_CFG_CTRL_RSS_ANY)) return; /* this is true for new firmwares */