From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 35A7145B90;
	Mon, 21 Oct 2024 08:34:31 +0200 (CEST)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 12A4B4066A;
	Mon, 21 Oct 2024 08:33:42 +0200 (CEST)
Received: from NAM02-BN1-obe.outbound.protection.outlook.com
 (mail-bn1nam02on2108.outbound.protection.outlook.com [40.107.212.108])
 by mails.dpdk.org (Postfix) with ESMTP id 13CD940666
 for <dev@dpdk.org>; Mon, 21 Oct 2024 08:33:40 +0200 (CEST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=eaGIt6Vth0/puObCvWbOomw9v2qKeIbPt9OKBK2/xRbuA/0jai5NvEotDMAFZa3RFeRdSZIdkl53OK8gMl3h5k38Ryv3I2A0RjauvuMLjXHIAnJwdOarWeHEY73ZFcpi5jz3LBRzgIInY5O/YeWyRDTcNSwOBdatyaVHaq0TSqLfYUQ9zdA345mrxzHxBb+DNWu3Zmbe4CqUHCzwuISwcZdcVy94r0dlODZe1sv1tBAblQA9qwZu0kdfsCWcHiRBRm9SBNfRaTrcsZZguTj5mmctsPoKCHG7b3+p2miA9hJ6VlrjKh1xj0jBAi7YrXLzYOPKIJ+Q3v4gzky1FVWFZg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector10001;
 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=f2ICVCYT8PYv7D6M7qxlvZ7Y6x1K9QF0wRdSeClqknA=;
 b=A07VDb/SF64ONqfYCQS87CdQI6KJ+X0O1GMAW/s5w3uIx64MVl39h2/5Hgd9jrqA3sziJ6D10KzCY2OVtvtzXevYUtXVWSt0N8Nsdn/62w77JflKokYXdxApI5cl0kKNHQszbiq69qF3uGY/bKZOIkcWlUmE0PYrYj19/oQS4R6LlOfQlGVqxaQQo4Y+yTNwKslqYwj5uH93/hbuIUfTCJAVCHYCWltL2kn95mDAsuyAey98ei4o1spI7uyrZNS2i2bd2HqAI5RnTnJu/ARxgOQWdYTwkA7MLspWEDULnuirNCGJN7SA/R+pxqm5UUBCj3LxJO0k97gf0yCKB0ropg==
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=f2ICVCYT8PYv7D6M7qxlvZ7Y6x1K9QF0wRdSeClqknA=;
 b=Vfn/bnV8xdJM0MO4Fa7TrXnFon9kayYhYqByclnH56CymwLZkAi4T9oCwSCbp9K3rATiJr55a3qFNDGqoCoBV1K2y3A0oNF9wLo0DtaLo0GGR9C6jfAQOnJ1PSZsRQ/GmK64H+IDqrhsK/b80lfPya1WxiOpXJyTWWNcM6IwgvY=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=corigine.com;
Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5)
 by SN7PR13MB6132.namprd13.prod.outlook.com (2603:10b6:806:355::16)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8069.28; Mon, 21 Oct
 2024 06:33:37 +0000
Received: from SJ0PR13MB5545.namprd13.prod.outlook.com
 ([fe80::b900:5f05:766f:833]) by SJ0PR13MB5545.namprd13.prod.outlook.com
 ([fe80::b900:5f05:766f:833%5]) with mapi id 15.20.8069.024; Mon, 21 Oct 2024
 06:33:37 +0000
From: Chaoyong He <chaoyong.he@corigine.com>
To: dev@dpdk.org
Cc: oss-drivers@corigine.com, Peng Zhang <peng.zhang@corigine.com>,
 Chaoyong He <chaoyong.he@corigine.com>, Long Wu <long.wu@corigine.com>
Subject: [PATCH 8/9] net/nfp: add the new operations for multiple PF
Date: Mon, 21 Oct 2024 14:33:00 +0800
Message-Id: <20241021063301.4146214-9-chaoyong.he@corigine.com>
X-Mailer: git-send-email 2.39.1
In-Reply-To: <20241021063301.4146214-1-chaoyong.he@corigine.com>
References: <20241021063301.4146214-1-chaoyong.he@corigine.com>
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-ClientProxiedBy: SG2PR03CA0118.apcprd03.prod.outlook.com
 (2603:1096:4:91::22) To SJ0PR13MB5545.namprd13.prod.outlook.com
 (2603:10b6:a03:424::5)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|SN7PR13MB6132:EE_
X-MS-Office365-Filtering-Correlation-Id: a5388a60-ac5e-4801-7bbc-08dcf19a4b45
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
 ARA:13230040|52116014|376014|366016|1800799024|38350700014; 
X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?SH4mY7lBXwehTU3kDyqta0Zi/Bci+gYeS3Ld5CNGBW1VWsejady4AGhubZwM?=
 =?us-ascii?Q?AqmH2WoUjjbRaD+M06IlUQyrxtVf/uVGgTId7IAgc6gDZ2hOoKcy4WzkuoFv?=
 =?us-ascii?Q?TrMHY70lc7+Z01olwjPHwwwLD3urznzdIotARnwRqP6NUpy9uu5T+GZsHulF?=
 =?us-ascii?Q?pCKCmF2KKtxsdGKLHAx65FRUahrHt7Xhp0P7L6qVrijQ7AGbzK//xKimGBAN?=
 =?us-ascii?Q?XYLwCGOtdAYqxXiStOolo2syHzST5Dg60ybvMYu0WU4xZO6lTVELPTX7eqpu?=
 =?us-ascii?Q?vjdhI3tVOdURorTROcUrbRiy8/RjTmscYRqvPyCAQmX5bLr1rUCobaRSfn1r?=
 =?us-ascii?Q?Y9aKr7f3+YiEh9mFb9XlLiVepIDdXzvz7EL1Umpf10OuVH+D+srwxsK/pVKX?=
 =?us-ascii?Q?PRfzrUZiIK10VSXPzfdylAVNNz+mc4B0kpNIygHaygIGUgsoOTRB6aSbhzx7?=
 =?us-ascii?Q?nZKHNoO5Fr9hX67NaXWQwjORcHlKDxjjqdtOQ696F1LpEmZrpU7C8wCIJT6Z?=
 =?us-ascii?Q?E80mBk+QOfYEjkqtf2DyxfH0vzN1KWcIAks2RupiUWV8zBjrAqWLChIHF2fu?=
 =?us-ascii?Q?WQe+tnF+yWefd2EMq5fSphosf5tH162e7YP6SKHRd3K/OjTHbxSCAeCfg0Pp?=
 =?us-ascii?Q?Qri5fYCzgMg95MHQt+KNJ9EHGkg1iD9mWhim6ROI2r619UIdbPqH3e0c7sZg?=
 =?us-ascii?Q?cuZvcrHmDGnRp53NtaK0inC9Y5cpGh2InoL+Q7wEj4DkyaXohyYpGz5dxScO?=
 =?us-ascii?Q?Rjc+5wdlwh0jy6WUkjpftZs1LpU6jLLUJjlomerq/yKvUZDjczeoo+HDy4YW?=
 =?us-ascii?Q?TaSme6H5kGV2Foc3mC/XR6Aj2r8neDvxoro7mlti2PcS6jJXzRLzzeUDSaiu?=
 =?us-ascii?Q?2lwXvAbobtYigtPow7nMoSDIzIhJKMYlKuvplGvnTdcboZv743zBfwLq7hLU?=
 =?us-ascii?Q?zhi3thmjTQ2CsWs9gbI6NUCVV35R/tn5sZIqvZXn/f1+GrWQPmyM3azsebXh?=
 =?us-ascii?Q?YcD+/Itj6XJW+CTfGvRDYtwgRbsuomhW7eU1Nc0k+pWpw3mNAe/NV8z/sDQ5?=
 =?us-ascii?Q?tfvZmKf8+SioGVimM/KMRFA8csqT5bQQ7xhsJdAPMQjEt7ux9tP2r6QINvT1?=
 =?us-ascii?Q?EntKpC0tAK3BS0kjnbemeOC1o9NhDGaFqbxNvISy41ItoRSi1OKoWsjLwqzx?=
 =?us-ascii?Q?OAdqaAHn/Kc1OccfiZVpY7LjcVAYRNTQLIJm/7jM6c4LspZeBjZfkCZR0NE0?=
 =?us-ascii?Q?p0UAxRSmEOf6ss8/yEd3BsSTLehFaPioi1M/SRmRZF3bPZA3HF7JuUbFVOqY?=
 =?us-ascii?Q?NfuinqU7KN3EeNpkgPrPM5eXp8V60zoLEm9FPKrP7vcTqQlPyAtkcbEbuwN1?=
 =?us-ascii?Q?jjXQDuI=3D?=
X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230040)(52116014)(376014)(366016)(1800799024)(38350700014); DIR:OUT;
 SFP:1102; 
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kWYvzSs7LAiSzHWvaVnS2tEM6Di+KgtZ/iToGS5icp6gFY+vld/v5bDdVycm?=
 =?us-ascii?Q?uSFW3Qh46HNGcOQzexoNJUiW764BIYLf3o6hJ1A7sWDIcihyZmtE6HBCUtrz?=
 =?us-ascii?Q?Q5O0Uz42OIqG0GrkK1mHXQ5JS1oId9lDIl7oC+Y/odPSHX2BGO4M7mNa2X6m?=
 =?us-ascii?Q?ykfgWQt5FfL0mhDVxy54EQtBJAa3pozw8MetH0fNCsDvhT4WKAcTJnvVdK9m?=
 =?us-ascii?Q?lDSwmnLI7ExKmT7ZVZKJZlWbELWnB80rnCtoG8cdWBPuhMGRR14FmXVksjQc?=
 =?us-ascii?Q?OkepqhCa1cGYBMqvYVw/fYAcLtcwtNZfZP5EEOCn8wEfrO1fRwEuWanBShtq?=
 =?us-ascii?Q?jjaRfj6l8mHd8uoSf4CKq3Yh3IXzz6/rwG3wBv79wojADUy4XqOdec5JYBgs?=
 =?us-ascii?Q?J4FNS2xLBFOmfwGzOZkBbW4FwcQb4mN1E9iMZOa0k6vlHzD1wL9SmT9tQvl9?=
 =?us-ascii?Q?IbbcGWSZ8GSFxdxIWBcvL5rLpbhyB30ngDwdeYR2d2siKZYhBPVI/Q728zcI?=
 =?us-ascii?Q?H0bsG9FOhW7modyhtAdgO1zWeEeSdSxhpTWaEqvQFkM0tKXGSpc5XEu2XXFB?=
 =?us-ascii?Q?W7Z6YCE0Q5JZox2kT9Zkp0+7cc1ENw+CwIuSUSUzpVsRTEzJeKG6f1LNVwLM?=
 =?us-ascii?Q?9Rp3dVOGzWEoDSt1xQcwuNUJ/6SiC4OuP/jUhRq4duS67vOLHoHEwMJs2lcz?=
 =?us-ascii?Q?2++tV1kS0XEhvJMMuSRLuSJOGlvwb+rewBdL9q2LAIftrIKmM7/rDJzSLjFZ?=
 =?us-ascii?Q?Rpq7lhv4SC/wMzHUiPY0PrJy+v2GUF067arH4Gcx78B4iDQei8zyZISdeJLk?=
 =?us-ascii?Q?cojguR5perrb6hRnDpY3ZsC1zMJ5rbT6xg94NC4hrDO9/bRx/PTUGaLMOscb?=
 =?us-ascii?Q?gCZsHB/LRph1DSWkpHA5qdgFxdCvZu9qZArj62C/TvCn41p3pXIOjwveP7EF?=
 =?us-ascii?Q?Jaq1ctbrqTpTPohox7PhSUWlSr11yP82n/EGLzTQtEPB8Ws2wwSaHWkUn7kK?=
 =?us-ascii?Q?0knoxThyIrkqHEbCV6xgybdD/juFh6t2Nj9a18RPaDepvCN88raHC+JX24ST?=
 =?us-ascii?Q?c00LfkF0qbF07+QMIeCx8EKoqrJO8ILvB4ShXEq7oLSzeaG/eUVcqnA7FTvQ?=
 =?us-ascii?Q?MB0Ac1kEckH+orq3+CUOUJAnziKfF8k2TDeqffwSgwToqTPJkqmcZjmUb5oH?=
 =?us-ascii?Q?X5EHKFrA3MtgyZOpZUz0dqlLCIn53wFxoFS9CHw4ANtCc42ko9jpls+wl5+I?=
 =?us-ascii?Q?RMBXcVX7/c3oLjSdf7M31pDlk6gcfM85xekyJLUDQQFblMWa838KM5qiWuHP?=
 =?us-ascii?Q?2ZP7gkKDQrGhmxe7GONjFTyXpTj8iK0hROwJw+bfjbEseNcOV0q9hn5ENcDF?=
 =?us-ascii?Q?F3PNwiVAbzuwb5IuHJybTPvZ2lJpPPaREleSUsYdrhJM5sOT8XF94iWkDLoh?=
 =?us-ascii?Q?d5zfDN/tjb+8X7vZkQlHVuHJw6uXj/hwVpPSddOJGFkLcvQL5zTsKokCX/4B?=
 =?us-ascii?Q?h2QSZ9P4Yu52MsRXrNCTRRnCNH2Dt6iVJ1hnddX15whh6ze8FDN+HzIKMZdC?=
 =?us-ascii?Q?UbzYa81Mmina7+pBQSqGfAk44aJWNHmrApcLBRDPT0PxH5JumvihiBGYbY0M?=
 =?us-ascii?Q?Eg=3D=3D?=
X-OriginatorOrg: corigine.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a5388a60-ac5e-4801-7bbc-08dcf19a4b45
X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Oct 2024 06:33:37.1523 (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: CaZyKdJXpH1qEjnMXUQxWPW6tHHPSFPsa7/D+dgbTt2KgmST7aU37JVhccOD2PEZFe/F8XzMe8qOY6w5XdqvIL6U0VHL7LFyzVBhWxD58fI=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR13MB6132
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

From: Peng Zhang <peng.zhang@corigine.com>

When using the multiple PF firmware, add the new
operations and update the port start and stop
function.

Signed-off-by: Peng Zhang <peng.zhang@corigine.com>
Reviewed-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Long Wu <long.wu@corigine.com>
---
 drivers/net/nfp/flower/nfp_flower.c           | 21 ++++++++++++
 drivers/net/nfp/flower/nfp_flower.h           |  1 +
 .../net/nfp/flower/nfp_flower_representor.c   | 34 ++++++++++++++++++-
 3 files changed, 55 insertions(+), 1 deletion(-)

diff --git a/drivers/net/nfp/flower/nfp_flower.c b/drivers/net/nfp/flower/nfp_flower.c
index fd0a454432..df7a150a99 100644
--- a/drivers/net/nfp/flower/nfp_flower.c
+++ b/drivers/net/nfp/flower/nfp_flower.c
@@ -23,6 +23,20 @@
 
 #define CTRL_VNIC_NB_DESC 512
 
+int
+nfp_flower_pf_stop(struct rte_eth_dev *dev)
+{
+	struct nfp_net_hw_priv *hw_priv;
+	struct nfp_flower_representor *repr;
+
+	repr = dev->data->dev_private;
+	hw_priv = dev->process_private;
+	nfp_flower_cmsg_port_mod(repr->app_fw_flower, repr->port_id, false);
+	(void)nfp_eth_set_configured(hw_priv->pf_dev->cpp, repr->nfp_idx, 0);
+
+	return nfp_net_stop(dev);
+}
+
 int
 nfp_flower_pf_start(struct rte_eth_dev *dev)
 {
@@ -34,6 +48,7 @@ nfp_flower_pf_start(struct rte_eth_dev *dev)
 	struct nfp_net_hw *net_hw;
 	struct rte_eth_conf *dev_conf;
 	struct rte_eth_rxmode *rxmode;
+	struct nfp_net_hw_priv *hw_priv;
 	struct nfp_flower_representor *repr;
 
 	repr = dev->data->dev_private;
@@ -84,6 +99,12 @@ nfp_flower_pf_start(struct rte_eth_dev *dev)
 		return -EIO;
 	}
 
+	hw_priv = dev->process_private;
+	if (hw_priv->pf_dev->multi_pf.enabled) {
+		(void)nfp_eth_set_configured(hw_priv->pf_dev->cpp, repr->nfp_idx, 1);
+		nfp_flower_cmsg_port_mod(repr->app_fw_flower, repr->port_id, true);
+	}
+
 	for (i = 0; i < dev->data->nb_rx_queues; i++)
 		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
 	for (i = 0; i < dev->data->nb_tx_queues; i++)
diff --git a/drivers/net/nfp/flower/nfp_flower.h b/drivers/net/nfp/flower/nfp_flower.h
index 1dc868fb68..a257366656 100644
--- a/drivers/net/nfp/flower/nfp_flower.h
+++ b/drivers/net/nfp/flower/nfp_flower.h
@@ -116,6 +116,7 @@ bool nfp_flower_pf_dispatch_pkts(struct nfp_net_rxq *rxq,
 uint16_t nfp_flower_pf_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
 		uint16_t nb_pkts);
 int nfp_flower_pf_start(struct rte_eth_dev *dev);
+int nfp_flower_pf_stop(struct rte_eth_dev *dev);
 uint32_t nfp_flower_pkt_add_metadata(struct nfp_app_fw_flower *app_fw_flower,
 		struct rte_mbuf *mbuf, uint32_t port_id);
 
diff --git a/drivers/net/nfp/flower/nfp_flower_representor.c b/drivers/net/nfp/flower/nfp_flower_representor.c
index c096862a0f..6e957b125f 100644
--- a/drivers/net/nfp/flower/nfp_flower_representor.c
+++ b/drivers/net/nfp/flower/nfp_flower_representor.c
@@ -523,6 +523,38 @@ static const struct eth_dev_ops nfp_flower_pf_repr_dev_ops = {
 	.fw_version_get       = nfp_net_firmware_version_get,
 };
 
+static const struct eth_dev_ops nfp_flower_multiple_pf_repr_dev_ops = {
+	.dev_infos_get        = nfp_flower_repr_dev_infos_get,
+
+	.dev_start            = nfp_flower_pf_start,
+	.dev_configure        = nfp_net_configure,
+	.dev_stop             = nfp_flower_pf_stop,
+	.dev_close            = nfp_flower_repr_dev_close,
+
+	.rx_queue_setup       = nfp_net_rx_queue_setup,
+	.tx_queue_setup       = nfp_net_tx_queue_setup,
+
+	.link_update          = nfp_flower_repr_link_update,
+
+	.stats_get            = nfp_flower_repr_stats_get,
+	.stats_reset          = nfp_flower_repr_stats_reset,
+
+	.promiscuous_enable   = nfp_net_promisc_enable,
+	.promiscuous_disable  = nfp_net_promisc_disable,
+
+	.mac_addr_set         = nfp_flower_repr_mac_addr_set,
+	.fw_version_get       = nfp_net_firmware_version_get,
+
+	.flow_ops_get         = nfp_flow_ops_get,
+	.mtr_ops_get          = nfp_net_mtr_ops_get,
+
+	.xstats_get             = nfp_net_xstats_get,
+	.xstats_reset           = nfp_net_xstats_reset,
+	.xstats_get_names       = nfp_net_xstats_get_names,
+	.xstats_get_by_id       = nfp_net_xstats_get_by_id,
+	.xstats_get_names_by_id = nfp_net_xstats_get_names_by_id,
+};
+
 static const struct eth_dev_ops nfp_flower_repr_dev_ops = {
 	.dev_infos_get        = nfp_flower_repr_dev_infos_get,
 
@@ -782,7 +814,7 @@ nfp_flower_multiple_pf_repr_init(struct rte_eth_dev *eth_dev,
 	repr = eth_dev->data->dev_private;
 	hw_priv = repr_init->hw_priv;
 
-	eth_dev->dev_ops = &nfp_flower_pf_repr_dev_ops;
+	eth_dev->dev_ops = &nfp_flower_multiple_pf_repr_dev_ops;
 	eth_dev->rx_pkt_burst = nfp_net_recv_pkts;
 	eth_dev->tx_pkt_burst = nfp_flower_pf_xmit_pkts;
 	eth_dev->data->dev_flags |= RTE_ETH_DEV_REPRESENTOR |
-- 
2.39.1