From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1DAD945A3C; Fri, 27 Sep 2024 05:11:34 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DE447400EF; Fri, 27 Sep 2024 05:11:33 +0200 (CEST) Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02on2094.outbound.protection.outlook.com [40.107.95.94]) by mails.dpdk.org (Postfix) with ESMTP id 2D4984003C for ; Fri, 27 Sep 2024 05:11:32 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=S9xBfGhtCYaI3dFScpWFd3k6wMTqJutB2Q9kKlASqKxI4MgmYDgiAMeF279nEUPuahb8kZLMXfV5lNgK4ab3cNwEfNFBU1XOju9vJJmp0DOnV7hcLwaAb9fHkI9pZnjuo7r/qb0mmQmfz1eb1aGdkrLSERyEjfEUW+d0Aa8rfQjQ/VxNCUBgP7XhqjYV5dITuP2TlOf/OFX8qw9NXXNrPZLdW8qP+fKGyoi9DHco7ejXEfgyO5Zvo4EQAqvknYhJhsKw+ILbP/NPZGrBwMVUkkrvwFhxavSnLBbMa4OsA+xWBsVWjwxI9DUWt/nnh/j8r8F36D+yJvEdyu2cK1h9lg== 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=50KINPS/TUQspA+yVvI+e4iGHwMox0xYsxDtYE7DJHE=; b=N/9ild6yFerwZGUf6THfeZ8YzKJoh33eEpUHc7J1xczOvJGGuGzhdRFcTkcyerLlNQxIgLuVo0D1QHHSjgx9OwdsIt9dNhRSd/heQolwvLvIz7JMPVJXxooZLrAnX1e2/OjmsK0GlWJpg0HfQ96B/0OwaqqDX44FWj2+NqwR29cgwQU13yz2qwc3f4S5xe4rUz1mYuNtzQCvt1pKgbd1aUK1v6rDOriwRYR22+FFRIViySz7TN3ILXRgfJ9o9P63ngdDWxM0U9oc9oxeMF3J/TVGfdDY+tTPhfN9W/N40uchf37X9q0c85+u7AowDvbMuMR2GVTypZDw7ugeX+beSw== 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=50KINPS/TUQspA+yVvI+e4iGHwMox0xYsxDtYE7DJHE=; b=fweTxhIym6nnVBPeEU4n7kxxQuu//gih4+xByAcgX/OaxDA3mm/JUzddmQrlMTbaLbYFBJW/s/2A6b2yJXl+59Ty3XAG8v0qE0QXhAVQMtdACYAAWwOb2bL+71/zlWBYGl4dgc2ZrTomx5Fc5YMQIK0O9jX7+JHM6mfiiz3uIo8= 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 SA0PR13MB3981.namprd13.prod.outlook.com (2603:10b6:806:95::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8005.22; Fri, 27 Sep 2024 03:11:30 +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.8005.021; Fri, 27 Sep 2024 03:11:29 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Long Wu , Chaoyong He Subject: [PATCH v3] net/nfp: implement the device packet type set interface Date: Fri, 27 Sep 2024 11:10:54 +0800 Message-Id: <20240927031054.3379687-1-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20240926071620.3366399-1-chaoyong.he@corigine.com> References: <20240926071620.3366399-1-chaoyong.he@corigine.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SG2P153CA0026.APCP153.PROD.OUTLOOK.COM (2603:1096:4:c7::13) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|SA0PR13MB3981:EE_ X-MS-Office365-Filtering-Correlation-Id: 5d48ffa4-1314-4f15-6ad0-08dcdea21449 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|1800799024|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?YInYDqy1vKeU+l6QHt5Cx9SD1d2fWIGGAdwpFwhLTuG7maOIQdFv2oaEusaL?= =?us-ascii?Q?f6VFAU/TnKmm0EsMb8BMo4X0TNpsCfmg3O7OA+VJVpwRnbmxgpiRIF/NBX+e?= =?us-ascii?Q?FvUbDxXDZbQqubrybHeOYsm16GXXS17D2b9GK5CgoJGZyPjqYA6AYcqvGBK/?= =?us-ascii?Q?AnH42qm8EO8fc+mHet3jBlB/Fv1v2y1IkYpLPkx/Mwb6LLK/cw5xKGwP65kI?= =?us-ascii?Q?G6gYNku7meoGj8ppkj/p4tzrzRNHzRvxS4Un1SQ+oD2nkwz3yg/A0qz9N1Xq?= =?us-ascii?Q?SLEIuRiPy52dbY65CauwYfOU5O3dlerLRie5SOd7xDogfMPSQhnni3LFutGm?= =?us-ascii?Q?yNUMGi1ea1ZBvcJXe9RJXzse41vXt58DDl/77ZSGBcgetFuWrYogiKlG6oW0?= =?us-ascii?Q?0eh8Ni3ohOAfCs77okRI/lt5TBQbeF9dmY0fQ1xxC7DCFpfBg0wg7k1IJuP5?= =?us-ascii?Q?WmDYCb1d1gGmLXLu0PDJE22/7r5gWpUg57UO5naZ48gWQyPTReJxrEIGi5Xf?= =?us-ascii?Q?F6aBQFyusvzqzS3lCxFYGOlk4YbXlNk3k8Qu+X2N3Civxi4CPbcfLWUszsC4?= =?us-ascii?Q?zC8Zq2G0yd+Kh13Wbb4XufqLznsTjAcMN18FN3pW4lWdcYD2Xl2UwhjRp3sO?= =?us-ascii?Q?PZQZOLX0fUuoA97/koBgo15k6TVsYYU5Xg9Jo4TOELoSjcJBpbpSR1QuEM+4?= =?us-ascii?Q?5+DVsdYcS3M8UzgZSgMoityCumM1T6/OEJRfnagvPA9R50dZGsQZbfDzQ0Tp?= =?us-ascii?Q?hlUR5V8Rpn/iHFY7eUH/Azi/+WAYMS3EutLbzZRqJd8j+yaGZsYsviBKWY+U?= =?us-ascii?Q?7whG5z5H2KJfi9WPHsJy02Sv3Xoj4lf1M6mWwF0THlNagEQS6fEdDj+ziSKw?= =?us-ascii?Q?U0X//wab6rkj4mEDI4EqxO8YH4jEAh7PoLTzKMFndoIlETKf4+2JPelGxqe7?= =?us-ascii?Q?QjgsYiQroGHlKnwlomkqSUrfwQhakBloaa5rphhyoSv/vc4IExzYYBTVMJOj?= =?us-ascii?Q?VaWpv1f85MDJ+smZMbqFlw3aD1fpwEUxHJGIA/IQujvx4rxgumSdpSlpYixc?= =?us-ascii?Q?zo/9j1F/riipz8njUraXjPXQgtComoxegrfZjRF5InLDhOOa/ePSLU0Q2785?= =?us-ascii?Q?IKhujTty9NNijAquDzwsE+nCWpShp1EnB7Zg1ojYCO19lBbzN0TzlEuQmWYS?= =?us-ascii?Q?BVihaStbXaCss+Hr1XR66tGPjzg/lvSIjnDVXGztmaP5WpUQHNOSN5FD4ErT?= =?us-ascii?Q?FgIJT8FqxbyPtqS0DTwjP+st6zfeM0KkEuw7/gux6cSlS86893Z+7289tey6?= =?us-ascii?Q?HgeRpmLSKRiqOviEefC9nWLtk8xvCWuS8G67clZ9bUMqMQ=3D=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)(366016)(1800799024)(52116014)(376014)(38350700014); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ufmml68BI2fpJ8uwdD4277SpLv3VRQTK9gQzNbsrjAZQiqvyaqGBTVpXdlb6?= =?us-ascii?Q?4nb8aib07Ozi1x/e5hZcbRJQKYOEaQOvaBRREH4lZN+3CZtBUOsxmAb1NUgM?= =?us-ascii?Q?YyaP84CcwaYBCMFmq7BgqHYefmVtqw3i6wxjZCtBjD+FAQoseZR40bzCEl1W?= =?us-ascii?Q?LTTIU7CWRuxZAD3URIFcGub2gjO+VQaMto3KW74lshJVsSAXl8kPh9CSwtkP?= =?us-ascii?Q?4R8ySbM13EWI5zOLfCdCalV2OBxQ8CpdiovNr0MmWshi8XwgvZal0PGMVcRu?= =?us-ascii?Q?/L1YQs+4VLelqVbBRgiT4kGzSUTwBkLGxp8gOBs5RY58iAGt2pBUL/ikVvS8?= =?us-ascii?Q?yE1BjUpNZkmDNb2Qribxy8oHsDq0Yd1xVslMlNGBMBXKlLH5OEGX2aEAUds9?= =?us-ascii?Q?OKDAOu+pkKIO5eB+vvp7yYgvusP9gDmm8avmuEUbo5L1anl4YTFOMBCH3S9p?= =?us-ascii?Q?Iz8VUqwJcsghndiqdy9aUxOvhC62f1L/WjQXsWi9ldL5ECvKxOrc/0gBYGXu?= =?us-ascii?Q?fjms9MTcsfCO5z3iFTr8g+m8DkOEiRxUXy9XyWyHRE20m+wLTaiGpRz+lT0O?= =?us-ascii?Q?hx7LCLHg71M2aBgRXYRw4qUlHZ6lPrfvdNBFKrPXCAxSLA8rGXF9cF14Z056?= =?us-ascii?Q?/J3cEH4F6dk0OXhuNrXbL3JQ/BpGX3iOwo+uEb+nP8iP1qlSZlseyEtLQjNp?= =?us-ascii?Q?YBKquI+eiAcHj3rcs5RnwaxWtneiuLG0DIhPJwQaqGd/S6JFY8rOuBodLjuW?= =?us-ascii?Q?7+n5qqtXoZ8G3ZbCAPygq8lARrSyKATnw9NNkd9c1dqCBidPNp+R1daM3xP8?= =?us-ascii?Q?EzWMhEDQsAPlUl2F0fuR3aRIZetkQo0nhFQM+5svYHn1ulrRWqxQ0QR/qkpQ?= =?us-ascii?Q?fGjqCL42h08DhzIaLGoU9rr52JVEjUBBqQ9QoFS+t08lZpw/WI+TStFDXlzl?= =?us-ascii?Q?fylB/RLv8GHGoIWnjqceL5AZU2PeW/61fwE+1C4LlzsUGFs3Ity3ZjjiNLwj?= =?us-ascii?Q?oocmLxcXE1VtBKbTaAJJs+0aGvG5D7UdHcyqKiroYmKOsk9N4Vvu/CSDZzTM?= =?us-ascii?Q?1tC1aHBJhKS0hAHtWrDVPOllOmJTVDOH5aqn0QxFUeJUyOgUZNTXAm0owC8d?= =?us-ascii?Q?Zb9hDIwB82y6IcomWfY0yNKRO+XFGe2vc0M0/GdvePGtPgstyjJq8lDpbr3S?= =?us-ascii?Q?vf446sfPXJSxLv9HLBDZdWHHeQZSqHJ05y/fuw+yQ1Wze5lfKmSSUNVbDq8N?= =?us-ascii?Q?d6SONlSayDVEgQ7oacVhMv/IjGWnEi5IkR5fjGpv+ybZSKXxy52v2ybsSdeK?= =?us-ascii?Q?GwVzxf/C3rr/tAlB/Hr0fp0ovt9kzZ7KB2ITQOrhd7RshW5buEpeuhxgG7sX?= =?us-ascii?Q?p+hMu7aLWD9RxSGe1HaU8ggBPXPB3kqfPnatrtKpeEgTsKvoE58yNXjTxEhm?= =?us-ascii?Q?Suva2jcCSaMaSLz+n5KoWenZSiABaa7jMS7mEtvdEeRAbYLG7ifsbgOUe0Ah?= =?us-ascii?Q?TcrScPJ0FFQO4KYLk1O1+LAUz7pl3+kkn5ILsOKMAHdzi+Sam1KzL0ksbfGA?= =?us-ascii?Q?Uxm5WDBNmQjlGcV9S3ZUNOzf9KjdSruLXVMTGUePHJOdAWhRfB8+b/B+w1eB?= =?us-ascii?Q?EQ=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5d48ffa4-1314-4f15-6ad0-08dcdea21449 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Sep 2024 03:11:28.8175 (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: FBhxfHi2vz6xcAwtd6MwlNVrEi86FVwLh4QIbqXWBkfWNRhFJjj8I1szJS3y/lVmKbwPzkoN8Ntz4o4dAwEfYE11zOtZOkmG8otWjvunKbA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR13MB3981 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 From: Long Wu Using the Rx packet offload flag rather than the device capability to control the packet type offload configuration. Also implement the device packet type set interface to let application can set the Rx packet offload flag. Signed-off-by: Long Wu Reviewed-by: Chaoyong He --- V3: * Also add entry in the 'nfp.ini' file. V2: * Following the advice from reviewer, abandon the modification of RTE layer. --- doc/guides/nics/features/nfp.ini | 1 + drivers/net/nfp/nfp_ethdev.c | 1 + drivers/net/nfp/nfp_net_common.c | 42 +++++++++++++++++++++++++++++++- drivers/net/nfp/nfp_net_common.h | 1 + 4 files changed, 44 insertions(+), 1 deletion(-) diff --git a/doc/guides/nics/features/nfp.ini b/doc/guides/nics/features/nfp.ini index 5b507cfe94..c3c282b288 100644 --- a/doc/guides/nics/features/nfp.ini +++ b/doc/guides/nics/features/nfp.ini @@ -22,6 +22,7 @@ QinQ offload = Y FEC = Y L3 checksum offload = Y L4 checksum offload = Y +Packet type parsing = Y Basic stats = Y Stats per queue = Y Linux = Y diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index bd35df2dc9..09c15eedac 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -932,6 +932,7 @@ static const struct eth_dev_ops nfp_net_eth_dev_ops = { .xstats_get_names_by_id = nfp_net_xstats_get_names_by_id, .dev_infos_get = nfp_net_infos_get, .dev_supported_ptypes_get = nfp_net_supported_ptypes_get, + .dev_ptypes_set = nfp_net_ptypes_set, .mtu_set = nfp_net_dev_mtu_set, .mac_addr_set = nfp_net_set_mac_addr, .vlan_offload_set = nfp_net_vlan_offload_set, diff --git a/drivers/net/nfp/nfp_net_common.c b/drivers/net/nfp/nfp_net_common.c index 3d916cd147..0b71d55366 100644 --- a/drivers/net/nfp/nfp_net_common.c +++ b/drivers/net/nfp/nfp_net_common.c @@ -1459,13 +1459,53 @@ nfp_net_supported_ptypes_get(struct rte_eth_dev *dev, size_t *no_of_elements) return NULL; net_hw = dev->data->dev_private; - if ((net_hw->super.ctrl_ext & NFP_NET_CFG_CTRL_PKT_TYPE) == 0) + if ((net_hw->super.cap_ext & NFP_NET_CFG_CTRL_PKT_TYPE) == 0) return NULL; *no_of_elements = RTE_DIM(ptypes); return ptypes; } +int +nfp_net_ptypes_set(struct rte_eth_dev *dev, + uint32_t ptype_mask) +{ + int ret; + uint32_t update; + uint32_t ctrl_ext; + struct nfp_hw *hw; + struct nfp_net_hw *net_hw; + + net_hw = dev->data->dev_private; + hw = &net_hw->super; + + if ((hw->cap_ext & NFP_NET_CFG_CTRL_PKT_TYPE) == 0) + return -ENOTSUP; + + ctrl_ext = hw->ctrl_ext; + if (ptype_mask == 0) { + if ((ctrl_ext & NFP_NET_CFG_CTRL_PKT_TYPE) == 0) + return 0; + + ctrl_ext &= ~NFP_NET_CFG_CTRL_PKT_TYPE; + } else { + if ((ctrl_ext & NFP_NET_CFG_CTRL_PKT_TYPE) != 0) + return 0; + + ctrl_ext |= NFP_NET_CFG_CTRL_PKT_TYPE; + } + + update = NFP_NET_CFG_UPDATE_GEN; + + ret = nfp_ext_reconfig(hw, ctrl_ext, update); + if (ret != 0) + return ret; + + hw->ctrl_ext = ctrl_ext; + + return 0; +} + int nfp_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id) diff --git a/drivers/net/nfp/nfp_net_common.h b/drivers/net/nfp/nfp_net_common.h index bebb754ced..3c4d305b01 100644 --- a/drivers/net/nfp/nfp_net_common.h +++ b/drivers/net/nfp/nfp_net_common.h @@ -315,6 +315,7 @@ int nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info); const uint32_t *nfp_net_supported_ptypes_get(struct rte_eth_dev *dev, size_t *no_of_elements); +int nfp_net_ptypes_set(struct rte_eth_dev *dev, uint32_t ptype_mask); int nfp_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id); int nfp_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id); void nfp_net_params_setup(struct nfp_net_hw *hw); -- 2.39.1