From patchwork Wed Apr 1 09:13:07 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eli Britstein X-Patchwork-Id: 2218447 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256 header.s=selector2 header.b=Kq9gNAt7; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=2605:bc80:3010::136; helo=smtp3.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=patchwork.ozlabs.org) Received: from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4flzpb4cxPz1yGw for ; Wed, 01 Apr 2026 20:15:03 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 3DA2C605B3; Wed, 1 Apr 2026 09:15:02 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id t6t_HOAgARty; Wed, 1 Apr 2026 09:14:58 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.9.56; helo=lists.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org C0D4360646 Authentication-Results: smtp3.osuosl.org; dkim=fail reason="signature verification failed" (2048-bit key, unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256 header.s=selector2 header.b=Kq9gNAt7 Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp3.osuosl.org (Postfix) with ESMTPS id C0D4360646; Wed, 1 Apr 2026 09:14:58 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 8DB3BC054E; Wed, 1 Apr 2026 09:14:58 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136]) by lists.linuxfoundation.org (Postfix) with ESMTP id 7C991C003D for ; Wed, 1 Apr 2026 09:14:56 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 1C2786101D for ; Wed, 1 Apr 2026 09:14:51 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id pKXJ8mbu3cln for ; Wed, 1 Apr 2026 09:14:47 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2a01:111:f403:c10d::1; helo=sn4pr2101cu001.outbound.protection.outlook.com; envelope-from=elibr@nvidia.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp3.osuosl.org 55B8061029 Authentication-Results: smtp3.osuosl.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 55B8061029 Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazlp170120001.outbound.protection.outlook.com [IPv6:2a01:111:f403:c10d::1]) by smtp3.osuosl.org (Postfix) with ESMTPS id 55B8061029 for ; Wed, 1 Apr 2026 09:14:47 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dr4L3ZsdlQpKjvGclYdjqc1QN8214iBkB+lfJlre8+tHXBoz4PKlyHMfnurc9HVXbqWKe+Z6d/Hgr6jWok8RzrD24TQxilvl27FAOr7REJVD7sDGO+TQjnBB2KOPAmAcbLvXGbf9Ssw5T/Q/7wqTigR13YNOhBQjD40XfIw9mdJO75tw1Fi+VWcpMefM7N165uV5n3HdMF6xxKgmr6e+9zeoCJI5pGvYpGBHcMiHcfd+0AvCXvoHkIQ31qsrr+xEq0bm32wdcmTLS3mFO3yP7Ln86C4yoZjYjkHLI3W3xz/76rYgCJMJQeesJd8jEJIyOxT59Say+gugoNqYnNdNdg== 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=Pif8wGMMrHky04zdVM4+v06ScOOmdJnD0Fs1WyXD28Q=; b=BFr0ens3dO2OT2lguOwMvH+KSgeUuRCQqoE6+bjZ1mkevTNGSwGRNI07MaQREDjVJ0/a9Cacs7bnLAl8AuMS8/vZ7B8a8b9d+3bigq8cPZjAT1+y/0eKprFzb4IKKJRxEYatufbXRIf1+S90ur6rDtZczZfXCncbI4a8f3wa6bI3VbksoLLXYIuCEtjvuNpSPs+Qfk6O/2LZe3w6exjJId4ncfqbtpbe3qUlQxW1LIgH5Vo9ElOtXBaG1GayI2E5ImWsXnWr4COJWz6ISgaJroz3UrC4JpYaxG2CznON/ttxAD75DkwbMqIj4pRJDcPskzKfumRr74CSzgDbf5T+XQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=openvswitch.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Pif8wGMMrHky04zdVM4+v06ScOOmdJnD0Fs1WyXD28Q=; b=Kq9gNAt74KjHW1bUV6nql+m18FxxQY13EqhYdu337SW2yqDfCaxy/q8GNioRxB8UrnTqINm6xTlHcOIeEbONgAuhWCNVd6TQr6+n6rn+XuiYqOHYTSV3ODANn+t7VBIdDEBowoC2VibkYr85TsBHCk1WITTvu1qHjKsxx5GdUUczXXPtoMsMbJiKEHbhV12LzsCAp30wvLK6LnxJ/SFf5tYIPyxZjl7YDH1AMmvOkwDKVVLM83W+2nImqwFJ5R5z9tW3HEITNsZnGbgSucXbHkBF7cYcfUzD0m8EWs841ohksyxBL/caQtIklaBxRBe0kwNfaNFnL3/UGQS3vKLbBw== Received: from PH7PR02CA0030.namprd02.prod.outlook.com (2603:10b6:510:33d::24) by IA1PR12MB7733.namprd12.prod.outlook.com (2603:10b6:208:423::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.16; Wed, 1 Apr 2026 09:14:42 +0000 Received: from SA2PEPF000015C8.namprd03.prod.outlook.com (2603:10b6:510:33d:cafe::71) by PH7PR02CA0030.outlook.office365.com (2603:10b6:510:33d::24) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.30 via Frontend Transport; Wed, 1 Apr 2026 09:14:29 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by SA2PEPF000015C8.mail.protection.outlook.com (10.167.241.198) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Wed, 1 Apr 2026 09:14:41 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 1 Apr 2026 02:14:26 -0700 Received: from nvidia.com (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 1 Apr 2026 02:14:23 -0700 To: Date: Wed, 1 Apr 2026 12:13:07 +0300 Message-ID: <20260401091318.2671624-1-elibr@nvidia.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF000015C8:EE_|IA1PR12MB7733:EE_ X-MS-Office365-Filtering-Correlation-Id: d4dda5be-c147-4463-0f30-08de8fcf1b46 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|36860700016|82310400026|376014|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: D7LgOZPR2+w8VvpH2lgJDtaYBlywLLwfPiP3HftoS4k9rL2SBBcwg1x6UcJ7blbPS9OhZZQ7k5eImweZZRbsAzBp1wtX0ePo9ilLDiO6739Ed8tuEQm08j7r3n4vfIVD7IGj5smJ07qGehhWkHOy0GeNZqFBgLhiAg3nEV9B+POXBdNf2JGiGQ/W0TO6X7IQZryVaaml8NAcG63aDrEKGzx1gwH0yNifxWJvKwZIK2O/J+p6qekEC91aUNxyau/yJEcKJw+6w0H4EzscAidv8qZOiB8eo1CDniakhGZpthDevfPIXKbXccOR9PMZT44GGaXOGXXGuoghlAGGn+cZfzxy1XKuEBCfXYz8Q30ajPtd9A+/h5WZ4VAKy+9kfrI5gl/bSO733TH16sDjBxK0foWqmjGyp1w6Ea8CEQs7Usn1Ys4XvuxgMRDTYBOxYVOg3CBPu7yEBdM14EVQ7nTxriMYdgODX5lviB44GxkRCCYJlmWx13L78G9gGeHf41Mu2/L8BRcLdcYLLv9cVosm8UqqMEncELm2pihkgzxLlV9Y8XWwiw6T8XlL1GxH9f/ndM3DVxkil81fPtYj7HPWO55NLJxjA+0j8OBVO/uc2d5C8jd9oGr2WSP6C27YNPZMpqxNJGSMXvDbaDQwPmpJPAdDazrTpn98z17C7pPIVuQmFHeS7iPh/k/TbpyHLIxHpb55IJtFBXnmkVehCHDf45QzlFwGZ1NaiNMM/hX4IeruFrq5zt4cpfHJLWkShZJUrDK2LdLdOiU012UrlEkzDw== X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230040)(1800799024)(36860700016)(82310400026)(376014)(56012099003)(18002099003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: rYEC7K+zi20sQHOf2VZ14dbxfB8qYvkojwVABeb0OV0zOyZ3K2qR9n6bHLImbGtqheUsidUwx1QKk/EVTGc6ILrOsZ0YZuaquTDyxvVaVr0odw6rJ6xARyH5VPyivuvXbhfDac9w5+UxNiT7GnjsTfsPOPAE7/TwTIcoZeRvh1JslmgHrlfayV6opsdfLuoIUXgs6c9L9tt8FP3wk5RBmvowAh8kYPAw1zdkYkN10jz/uYSjhgBpy762KJGMl27uz9sbc+sftCl8NPoSUf7DqrJhVhsueTcgz1H807wHUYztQBZPbyoQXV+HviSns83rcoVFI482VPWHuU9NoSbQP3hHHaQBajZwJnm5aJNtzhjL4C9ArPoJOHBrKek9UpxJoKZ4nXUg7Bd9nSUoBUUiLhLt5dzOYMCK8DqDhC7u+HK1q3WDQDhNRlUOadQrGD5V X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2026 09:14:41.0270 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d4dda5be-c147-4463-0f30-08de8fcf1b46 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SA2PEPF000015C8.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB7733 Subject: [ovs-dev] [PATCH v3 00/11] netdev-doca X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Eli Britstein via dev From: Eli Britstein Reply-To: Eli Britstein Cc: Eli Britstein , Ilya Maximets , David Marchand , Maor Dickman Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" Introduce a new netdev type - netdev-doca. In order to compile, need to install doca on the build machine. v2-v1: - Fixed licence comment headers. - Abandoned dpdk-extra patch. It is a configuration issue and there is also [1]. - Added co-author to some of the commits. [1] https://mail.openvswitch.org/pipermail/ovs-dev/2026-February/430134.html v3-v2: - There is a lot of code that can be shared with netdev-dpdk. Refactored it to enable sharing. - Added documentation files. - Styling fixes. - Reworked ovs-rcu and refmap patches. - Added support for github actions (CI) to compile with doca. - Simplified acinclude.m4. - Reworked sysfs access. Most of the accesses are now with doca-API. - Reworked error paths - returned values, messages and rollbacks. Ariel Levkovich (1): acinclude.m4: Add '--with-doca' option. Eli Britstein (8): packets: Move ETH_TYPE_LLDP to be a public define. netdev-dpdk-private: Refactor declarations from netdev-dpdk. netdev-dpdk: Change access from dev->common.xxx to common->xxx. netdev-dpdk: Make 'started' field atomic. netdev-dpdk: Direct mempool usage. netdev-dpdk: Refactor common functions for reuse by netdev-doca. unixctl: Introduce unixctl_mem_stream(). netdev-doca: Introduce doca netdev. Gaetan Rivet (2): ovs-rcu: Add support for embedded variant. refmap: Introduce reference map. .ci/doca-build.sh | 36 + .ci/doca-install.sh | 20 + .github/workflows/build-and-test.yml | 58 + Documentation/automake.mk | 2 + Documentation/howto/doca.rst | 143 ++ Documentation/howto/index.rst | 1 + Documentation/intro/install/doca.rst | 104 + Documentation/intro/install/index.rst | 1 + Makefile.am | 2 + NEWS | 4 + acinclude.m4 | 174 ++ configure.ac | 3 +- lib/automake.mk | 13 + lib/dpdk.c | 32 +- lib/dpdk.h | 1 + lib/guarded-list.c | 10 + lib/guarded-list.h | 2 + lib/netdev-doca.c | 2898 +++++++++++++++++++++++++ lib/netdev-doca.h | 159 ++ lib/netdev-dpdk-private.h | 290 +++ lib/netdev-dpdk.c | 2163 +++++++++--------- lib/ovs-doca.c | 812 +++++++ lib/ovs-doca.h | 113 + lib/ovs-lldp.c | 1 - lib/ovs-rcu.c | 110 +- lib/ovs-rcu.h | 39 + lib/packets.h | 7 +- lib/refmap.c | 485 +++++ lib/refmap.h | 130 ++ lib/unixctl.c | 44 +- lib/unixctl.h | 3 + tests/automake.mk | 1 + tests/library.at | 5 + tests/ofproto-macros.at | 1 + tests/test-aa.c | 2 - tests/test-rcu.c | 131 ++ tests/test-refmap.c | 894 ++++++++ utilities/checkpatch_dict.txt | 4 + vswitchd/bridge.c | 5 + vswitchd/ovs-vswitchd.c | 3 + vswitchd/vswitch.ovsschema | 9 +- vswitchd/vswitch.xml | 95 +- 42 files changed, 7802 insertions(+), 1208 deletions(-) create mode 100755 .ci/doca-build.sh create mode 100755 .ci/doca-install.sh create mode 100644 Documentation/howto/doca.rst create mode 100644 Documentation/intro/install/doca.rst create mode 100644 lib/netdev-doca.c create mode 100644 lib/netdev-doca.h create mode 100644 lib/netdev-dpdk-private.h create mode 100644 lib/ovs-doca.c create mode 100644 lib/ovs-doca.h create mode 100644 lib/refmap.c create mode 100644 lib/refmap.h create mode 100644 tests/test-refmap.c