Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2218456/?format=api
{ "id": 2218456, "url": "http://patchwork.ozlabs.org/api/patches/2218456/?format=api", "web_url": "http://patchwork.ozlabs.org/project/openvswitch/patch/20260401091318.2671624-11-elibr@nvidia.com/", "project": { "id": 47, "url": "http://patchwork.ozlabs.org/api/projects/47/?format=api", "name": "Open vSwitch", "link_name": "openvswitch", "list_id": "ovs-dev.openvswitch.org", "list_email": "ovs-dev@openvswitch.org", "web_url": "http://openvswitch.org/", "scm_url": "git@github.com:openvswitch/ovs.git", "webscm_url": "https://github.com/openvswitch/ovs", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260401091318.2671624-11-elibr@nvidia.com>", "list_archive_url": null, "date": "2026-04-01T09:13:17", "name": "[ovs-dev,v3,10/11] acinclude.m4: Add '--with-doca' option.", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "a5b69a4ac6888b199874bbee5c359a75140b612e", "submitter": { "id": 79848, "url": "http://patchwork.ozlabs.org/api/people/79848/?format=api", "name": "Eli Britstein", "email": "elibr@nvidia.com" }, "delegate": { "id": 75123, "url": "http://patchwork.ozlabs.org/api/users/75123/?format=api", "username": "echaudron", "first_name": "Eelco", "last_name": "Chaudron", "email": "echaudro@redhat.com" }, "mbox": "http://patchwork.ozlabs.org/project/openvswitch/patch/20260401091318.2671624-11-elibr@nvidia.com/mbox/", "series": [ { "id": 498297, "url": "http://patchwork.ozlabs.org/api/series/498297/?format=api", "web_url": "http://patchwork.ozlabs.org/project/openvswitch/list/?series=498297", "date": "2026-04-01T09:13:07", "name": "netdev-doca", "version": 3, "mbox": "http://patchwork.ozlabs.org/series/498297/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2218456/comments/", "check": "success", "checks": "http://patchwork.ozlabs.org/api/patches/2218456/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<ovs-dev-bounces@openvswitch.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "dev@openvswitch.org" ], "Delivered-To": [ "patchwork-incoming@legolas.ozlabs.org", "ovs-dev@lists.linuxfoundation.org" ], "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=pTuBRooV;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org\n (client-ip=2605:bc80:3010::138; helo=smtp1.osuosl.org;\n envelope-from=ovs-dev-bounces@openvswitch.org; receiver=patchwork.ozlabs.org)", "smtp1.osuosl.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key,\n unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=pTuBRooV", "smtp1.osuosl.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com" ], "Received": [ "from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4flzr668BXz1yGH\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 01 Apr 2026 20:16:22 +1100 (AEDT)", "from localhost (localhost [127.0.0.1])\n\tby smtp1.osuosl.org (Postfix) with ESMTP id 6E0C582016;\n\tWed, 1 Apr 2026 09:16:21 +0000 (UTC)", "from smtp1.osuosl.org ([127.0.0.1])\n by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id HwVj8gWSVH1J; Wed, 1 Apr 2026 09:16:19 +0000 (UTC)", "from lists.linuxfoundation.org (lf-lists.osuosl.org\n [IPv6:2605:bc80:3010:104::8cd3:938])\n\tby smtp1.osuosl.org (Postfix) with ESMTPS id 5055781DEF;\n\tWed, 1 Apr 2026 09:16:19 +0000 (UTC)", "from lf-lists.osuosl.org (localhost [127.0.0.1])\n\tby lists.linuxfoundation.org (Postfix) with ESMTP id 38E72C0070;\n\tWed, 1 Apr 2026 09:16:19 +0000 (UTC)", "from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138])\n by lists.linuxfoundation.org (Postfix) with ESMTP id 6C481C0070\n for <dev@openvswitch.org>; Wed, 1 Apr 2026 09:16:18 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n by smtp1.osuosl.org (Postfix) with ESMTP id EFACD81DEF\n for <dev@openvswitch.org>; Wed, 1 Apr 2026 09:15:26 +0000 (UTC)", "from smtp1.osuosl.org ([127.0.0.1])\n by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id dI_pEiYQJqzI for <dev@openvswitch.org>;\n Wed, 1 Apr 2026 09:15:25 +0000 (UTC)", "from SN4PR0501CU005.outbound.protection.outlook.com\n (mail-southcentralusazlp170110003.outbound.protection.outlook.com\n [IPv6:2a01:111:f403:c10d::3])\n by smtp1.osuosl.org (Postfix) with ESMTPS id 6138E81DF3\n for <dev@openvswitch.org>; Wed, 1 Apr 2026 09:15:25 +0000 (UTC)", "from PH1PEPF000132EA.NAMP220.PROD.OUTLOOK.COM (2603:10b6:518:1::2e)\n by BL1PR12MB5899.namprd12.prod.outlook.com (2603:10b6:208:397::19)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17; Wed, 1 Apr\n 2026 09:15:15 +0000", "from SA2PEPF000015CB.namprd03.prod.outlook.com\n (2a01:111:f403:c801::5) by PH1PEPF000132EA.outlook.office365.com\n (2603:1036:903:47::3) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.28 via Frontend Transport; Wed,\n 1 Apr 2026 09:15:14 +0000", "from mail.nvidia.com (216.228.117.161) by\n SA2PEPF000015CB.mail.protection.outlook.com (10.167.241.201) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9769.17 via Frontend Transport; Wed, 1 Apr 2026 09:15:14 +0000", "from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com\n (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 1 Apr\n 2026 02:14:55 -0700", "from nvidia.com (10.126.231.35) by rnnvmail201.nvidia.com\n (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 1 Apr\n 2026 02:14:52 -0700" ], "X-Virus-Scanned": [ "amavis at osuosl.org", "amavis at osuosl.org" ], "X-Comment": "SPF check N/A for local connections -\n client-ip=2605:bc80:3010:104::8cd3:938; helo=lists.linuxfoundation.org;\n envelope-from=ovs-dev-bounces@openvswitch.org; receiver=<UNKNOWN> ", "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 smtp1.osuosl.org 5055781DEF", "OpenDKIM Filter v2.11.0 smtp1.osuosl.org 6138E81DF3" ], "Received-SPF": [ "Pass (mailfrom) identity=mailfrom;\n client-ip=2a01:111:f403:c10d::3;\n helo=sn4pr0501cu005.outbound.protection.outlook.com;\n envelope-from=elibr@nvidia.com; receiver=<UNKNOWN>", "Pass (protection.outlook.com: domain of nvidia.com designates\n 216.228.117.161 as permitted sender) receiver=protection.outlook.com;\n client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C" ], "DMARC-Filter": "OpenDMARC Filter v1.4.2 smtp1.osuosl.org 6138E81DF3", "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=Ac+GfkuSuljUknDP8YfPgV4QJEfIeSjgGuHI+rcl/RJ5o4IuTGSKAbkW4C7Cicmr9watcQtnS3XZCDvq+dNHQxBSwvopbNescYwxBp4J7diNuqmZ5ixfA/DYjn53dN0vWiqYc8yRQawiqDbTDFtgUUI/1+mjgD0OA2hUGQdmdh/AyHVzZCdZtAharYiA+DjbCg0gGDw76rxSUORYzQKJSTPF2sH6N4lzi/1YG45Tiyhbtraeqr6ty0UxfkDqVSJghEdZXfm+ODPJxN6tGErs+yAhijlwCuxheV4NroHM9tWkrA31M9MrrEHJADwuSMT1h61hzIACPA0/J9Wf2P5d2w==", "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=J1gdZhWuet6S+390boHU1C4sls7ts8v4vvD5YjHFBgk=;\n b=uXMVKd0e+kSHf/eznCa++c40hSqGCbJAOSXfs2sAswMWOE+u2PfrKrt6uW+WOOEhtUYO5DWW8qDgbsVo9UafBMaxXTPROZ3091XKqB1f+R7Dd7Yeg8hH689YarFFDcW2T+bhOcgMp1I/qLYFh6vdwb0nDVzqsVC2SfBwS0ol69fajU916hBeI2oqOka8BAa0M9QXMW5qgf8puYpd5+NyM3oU1rG4prBeH2MRP7zGvdXOdGSbtIcCwDkHh8j+iBMthwAV3BmiFUSCpQWVrvGwTxgwZCNhMiVQayP48qEDmEwqNwVUYWY+HuUy8qw4kSuF1sw2lU9fAyQIGsUH80Bt2Q==", "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 216.228.117.161) smtp.rcpttodomain=openvswitch.org smtp.mailfrom=nvidia.com;\n dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com;\n dkim=none (message not signed); arc=none (0)", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=J1gdZhWuet6S+390boHU1C4sls7ts8v4vvD5YjHFBgk=;\n b=pTuBRooVjyb1aPJcte01j0Ho19bzGhZb1afEoKvtePYsQhvXf7qkIeXN0gy3rKeFZiRYyZh5kIEjM9ia0un/0uVaQBD7of4g9OlXRav+JpTL6crlWcR3dtsIJ7pTkBNCizrV42NsEoWWUZDKMpFU3EGXWC49hujzbqnUNJ3V0y7knAzv75rlruoWKK1JPPc3R+SwWywtHom9iVvaOJCDAd3ldhk3UtL7CJ63W258uWdKIKDionp6IoDM0xEjDJ7iOMTCNLj1+oYa/TAwWmpiE/bXcIG8+frtq8laR2ADkes5DFvCt2ZQ8ucsdQZWiXUEqOczVs07gJ5QiMQwzx72Bg==", "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 216.228.117.161)\n smtp.mailfrom=nvidia.com;\n dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=nvidia.com;", "From": "Eli Britstein <elibr@nvidia.com>", "To": "<dev@openvswitch.org>", "Date": "Wed, 1 Apr 2026 12:13:17 +0300", "Message-ID": "<20260401091318.2671624-11-elibr@nvidia.com>", "X-Mailer": "git-send-email 2.34.1", "In-Reply-To": "<20260401091318.2671624-1-elibr@nvidia.com>", "References": "<20260401091318.2671624-1-elibr@nvidia.com>", "MIME-Version": "1.0", "X-Originating-IP": "[10.126.231.35]", "X-ClientProxiedBy": "rnnvmail203.nvidia.com (10.129.68.9) To\n rnnvmail201.nvidia.com (10.129.68.8)", "X-EOPAttributedMessage": "0", "X-MS-PublicTrafficType": "Email", "X-MS-TrafficTypeDiagnostic": "SA2PEPF000015CB:EE_|BL1PR12MB5899:EE_", "X-MS-Office365-Filtering-Correlation-Id": "556857ba-c0e2-4e97-b675-08de8fcf2f55", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|36860700016|376014|82310400026|1800799024|13003099007|18002099003|56012099003|22082099003;", "X-Microsoft-Antispam-Message-Info": "\n nImoXpXE5f4KagG6MA+kmrB42i44WtP02/85R1ldcBa87EGQSQTUYaWBDrO20XDLCJsXwnzCBFrFbF9LkjP/iNzuYfFk9iFVwLWmVk2qtrVMBilu/97inZmrgj8vCMfFjsPjHgp5ALr6tDuv90eJQg1vtcgkRXOx1ZIJ8hNz4lZUR3gle+5PG1KLEv7jQYmqmhb9N1gwL6FY1Z4b0JLCHVN3W0pBN85LoNhomeCs72G1ib1BbFsu4LTl2a40cb5wv54bzJjEtaJ1n4EBJhEyuukDY0QpdVnXbV7Pjui4XGyGjRLN5Oe5+MBrX7NbaF8gZiCcGa97IyY6X+bx21PO3nD5JH1pep/zzIIf6oBW0KC06He8q8O688bLN6gP2uCqsMNBtH3chZhoH5esrjAC/pCLjK58CIZ8MVMSu9mwnHmUgPT9Eu3Ro5/lCmR+SzmJeA7v5TbAEWlIajJqPH3Ys3pqLEMB7vZzI3fSAAmJOLjUmtBsoKtBEKz7ocGoyKt4mDnvW0cgF6SCS3HEyz8gSI/vGVUabJX6BaMxbGSe7Owt0tUkAZR8kGnDWeMaaupE4qI1jDFC1E3afnXSmXODxBCIVqlsdkNygsGHzSzGlBX/lsSHI4OS7z/Kh1jdNXHuMyclgSbU4edXLpt8phmBHmEx6nA/bRtvRKpyFDLKICicx7bMm11hHIcrZ1BpZcEOxWRWl8NwB/afozzhLgj3l73EgEaHS8pFXUoNOoZG8tQdJ0JLXbTEjINADL2Er8wZh/tTUkPHC8hop6H4m+55qQ==", "X-Forefront-Antispam-Report": "CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1;\n SRV:;\n IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE;\n SFS:(13230040)(36860700016)(376014)(82310400026)(1800799024)(13003099007)(18002099003)(56012099003)(22082099003);\n DIR:OUT; SFP:1101;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "\n pPCAaXgi9zQsE6Vnpq8eY7mDQQ5HF925q658AtDGlthze+ymOb2jRHfDxNggHJI8IVxB/EpZ9HBKpCPhhjj/xMmzAVHAiFma0h9kVHIgjuCcC9hrD/Q6ou6Df6GcxdSCCBwvdB+PEHOKs5REOt9Bpo0wDeFnlgjwIyoK8/stVupVqEYu7nai6d/gpyZsKeYrJPKPH8WxPodlrhJ1B01fS7m+F4u9cmcxyU48sbQAYJNDFTD5Tn3AL2/CCKQS2XH5GYIe4QAlDXgFzue0CCt8iV6tR8u5mXOoeVYhJjtYNJag9rIpV/oyXVCOKu+wjpPTYV3/XqgiCiI+cmR8SPvDjdSEfTcdWamc3uQ0ymbjXKeLhpZQdRQY5fXhehQbPeSfufKLPo/na6gGxslZ50zof0oU0B5pnHsnMj/m1VuBZAcyZBNzkM+Z2HZ4L7dbgYIU", "X-OriginatorOrg": "Nvidia.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "01 Apr 2026 09:15:14.6838 (UTC)", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 556857ba-c0e2-4e97-b675-08de8fcf2f55", "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a", "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161];\n Helo=[mail.nvidia.com]", "X-MS-Exchange-CrossTenant-AuthSource": "\n SA2PEPF000015CB.namprd03.prod.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous", "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BL1PR12MB5899", "Subject": "[ovs-dev] [PATCH v3 10/11] acinclude.m4: Add '--with-doca' option.", "X-BeenThere": "ovs-dev@openvswitch.org", "X-Mailman-Version": "2.1.30", "Precedence": "list", "List-Id": "<ovs-dev.openvswitch.org>", "List-Unsubscribe": "<https://mail.openvswitch.org/mailman/options/ovs-dev>,\n <mailto:ovs-dev-request@openvswitch.org?subject=unsubscribe>", "List-Archive": "<http://mail.openvswitch.org/pipermail/ovs-dev/>", "List-Post": "<mailto:ovs-dev@openvswitch.org>", "List-Help": "<mailto:ovs-dev-request@openvswitch.org?subject=help>", "List-Subscribe": "<https://mail.openvswitch.org/mailman/listinfo/ovs-dev>,\n <mailto:ovs-dev-request@openvswitch.org?subject=subscribe>", "Cc": "Eli Britstein <elibr@nvidia.com>, Ariel Levkovich <lariel@nvidia.com>,\n Ilya Maximets <i.maximets@ovn.org>,\n David Marchand <david.marchand@redhat.com>,\n Maor Dickman <maord@nvidia.com>", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Errors-To": "ovs-dev-bounces@openvswitch.org", "Sender": "\"dev\" <ovs-dev-bounces@openvswitch.org>" }, "content": "From: Ariel Levkovich <lariel@nvidia.com>\n\nAdd a new option to build ovs with doca by specifying '--with-doca' in the\nconfigure line.\n\nThis flag must be used along with '--with-dpdk'. Otherwise the configure step\nwill fail.\n\nAn example:\n\n./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc \\\n --with-dpdk=static --with-doca=static\n\nCo-authored-by: Salem Sol <salems@nvidia.com>\nSigned-off-by: Salem Sol <salems@nvidia.com>\nCo-authored-by: Eli Britstein <elibr@nvidia.com>\nSigned-off-by: Eli Britstein <elibr@nvidia.com>\nSigned-off-by: Ariel Levkovich <lariel@nvidia.com>\n---\n .ci/doca-build.sh | 36 ++++++\n .ci/doca-install.sh | 20 +++\n .github/workflows/build-and-test.yml | 58 +++++++++\n Makefile.am | 2 +\n acinclude.m4 | 174 +++++++++++++++++++++++++++\n configure.ac | 1 +\n lib/automake.mk | 4 +\n lib/dpdk.h | 1 +\n lib/ovs-doca.c | 86 +++++++++++++\n lib/ovs-doca.h | 31 +++++\n utilities/checkpatch_dict.txt | 1 +\n vswitchd/bridge.c | 5 +\n vswitchd/ovs-vswitchd.c | 3 +\n vswitchd/vswitch.ovsschema | 9 +-\n vswitchd/vswitch.xml | 10 ++\n 15 files changed, 439 insertions(+), 2 deletions(-)\n create mode 100755 .ci/doca-build.sh\n create mode 100755 .ci/doca-install.sh\n create mode 100644 lib/ovs-doca.c\n create mode 100644 lib/ovs-doca.h", "diff": "diff --git a/.ci/doca-build.sh b/.ci/doca-build.sh\nnew file mode 100755\nindex 000000000..ed9dd7dc9\n--- /dev/null\n+++ b/.ci/doca-build.sh\n@@ -0,0 +1,36 @@\n+#!/bin/bash\n+\n+set -o errexit\n+set -x\n+\n+CFLAGS_FOR_OVS=\"-g -O2\"\n+EXTRA_OPTS=\"--enable-Werror\"\n+JOBS=${JOBS:-\"-j4\"}\n+\n+DOCA_LINK=\"${DOCA_LINK:-static}\"\n+\n+for pc_dir in $(find /opt/mellanox -name pkgconfig -type d 2>/dev/null); do\n+ PKG_CONFIG_PATH=\"${pc_dir}:${PKG_CONFIG_PATH}\"\n+done\n+export PKG_CONFIG_PATH\n+\n+if [ \"$DOCA_LINK\" = \"shared\" ]; then\n+ DOCA_LIB=$(find /opt/mellanox -name pkgconfig -type d 2>/dev/null \\\n+ | head -1 | sed 's|/pkgconfig$||')\n+ export LD_LIBRARY_PATH=\"${DOCA_LIB}:${LD_LIBRARY_PATH}\"\n+fi\n+sudo ldconfig\n+\n+if [ \"$CC\" = \"clang\" ]; then\n+ CFLAGS_FOR_OVS=\"${CFLAGS_FOR_OVS} -Wno-error=unused-command-line-argument\"\n+fi\n+\n+EXTRA_OPTS=\"$EXTRA_OPTS --with-dpdk=$DOCA_LINK --with-doca=$DOCA_LINK\"\n+\n+if [ \"$DOCA_LINK\" = \"shared\" ]; then\n+ EXTRA_OPTS=\"$EXTRA_OPTS --enable-shared\"\n+fi\n+\n+./boot.sh\n+./configure CFLAGS=\"${CFLAGS_FOR_OVS}\" $EXTRA_OPTS\n+make $JOBS\ndiff --git a/.ci/doca-install.sh b/.ci/doca-install.sh\nnew file mode 100755\nindex 000000000..5931bf821\n--- /dev/null\n+++ b/.ci/doca-install.sh\n@@ -0,0 +1,20 @@\n+#!/bin/bash\n+\n+set -ev\n+\n+# Install DOCA SDK packages.\n+#\n+# Download the DOCA host repo package from:\n+# https://developer.nvidia.com/doca-downloads\n+# deployment_platform=Host-Server, deployment_package=DOCA-Host,\n+# target_os=Linux, Architecture=x86_64, Profile=doca-all\n+#\n+\n+DOCA_REPO_PKG_URL=\"${DOCA_REPO_PKG_URL:?Set to .deb repo package URL}\"\n+\n+wget -q \"$DOCA_REPO_PKG_URL\" -O /tmp/doca-repo.deb\n+sudo dpkg -i /tmp/doca-repo.deb\n+sudo apt-get update\n+sudo apt-get install -y dpdk-community-dev \\\n+ libdoca-sdk-flow-dev libdoca-sdk-dpdk-bridge-dev\n+\ndiff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml\nindex f1d006de6..8924d517c 100644\n--- a/.github/workflows/build-and-test.yml\n+++ b/.github/workflows/build-and-test.yml\n@@ -699,3 +699,61 @@ jobs:\n path: |\n rpm/rpmbuild/SRPMS/*.rpm\n rpm/rpmbuild/RPMS/*/*.rpm\n+\n+ build-doca:\n+ env:\n+ dependencies: |\n+ automake libtool gcc bc libssl-dev llvm-dev libnuma-dev \\\n+ libunbound-dev libunwind-dev libsystemd-dev wget python3-pip\n+ DOCA_REPO_PKG_URL: \"https://www.mellanox.com/downloads/DOCA/DOCA_v3.3.0/host/doca-host_3.3.0-088000-26.01-ubuntu2404_amd64.deb\"\n+ CC: ${{ matrix.compiler }}\n+ DOCA_LINK: ${{ matrix.doca_link }}\n+\n+ name: doca ubuntu ${{ matrix.compiler }} ${{ matrix.doca_link }}\n+ runs-on: ubuntu-24.04\n+ timeout-minutes: 30\n+\n+ strategy:\n+ fail-fast: false\n+ matrix:\n+ include:\n+ - compiler: gcc\n+ doca_link: static\n+ - compiler: gcc\n+ doca_link: shared\n+ - compiler: clang\n+ doca_link: static\n+ - compiler: clang\n+ doca_link: shared\n+\n+ steps:\n+ - name: checkout\n+ uses: actions/checkout@v4\n+\n+ - name: update PATH\n+ run: |\n+ echo \"$HOME/bin\" >> $GITHUB_PATH\n+ echo \"$HOME/.local/bin\" >> $GITHUB_PATH\n+\n+ - name: set up python\n+ uses: actions/setup-python@v5\n+ with:\n+ python-version: ${{ env.python_default }}\n+\n+ - name: update APT cache\n+ run: sudo apt update || true\n+ - name: install common dependencies\n+ run: sudo apt install -y ${{ env.dependencies }}\n+\n+ - name: install DOCA\n+ run: ./.ci/doca-install.sh\n+\n+ - name: build\n+ run: ./.ci/doca-build.sh\n+\n+ - name: upload logs on failure\n+ if: failure() || cancelled()\n+ uses: actions/upload-artifact@v4\n+ with:\n+ name: logs-doca-ubuntu-${{ matrix.compiler }}-${{ matrix.doca_link }}\n+ path: config.log\ndiff --git a/Makefile.am b/Makefile.am\nindex a805f21d1..ddc3e931e 100644\n--- a/Makefile.am\n+++ b/Makefile.am\n@@ -77,6 +77,8 @@ EXTRA_DIST = \\\n \tMAINTAINERS.rst \\\n \tREADME.rst \\\n \tNOTICE \\\n+\t.ci/doca-build.sh \\\n+\t.ci/doca-install.sh \\\n \t.ci/dpdk-build.sh \\\n \t.ci/dpdk-prepare.sh \\\n \t.ci/linux-build.sh \\\ndiff --git a/acinclude.m4 b/acinclude.m4\nindex 060c416f8..e8d475f37 100644\n--- a/acinclude.m4\n+++ b/acinclude.m4\n@@ -374,6 +374,179 @@ AC_DEFUN([OVS_CHECK_LINUX_AF_XDP], [\n AM_CONDITIONAL([HAVE_AF_XDP], test \"$AF_XDP_ENABLE\" = true)\n ])\n \n+dnl OVS_CHECK_DOCA\n+dnl\n+dnl Configure DOCA source tree\n+AC_DEFUN([OVS_CHECK_DOCA], [\n+ AC_ARG_WITH([doca],\n+ [AS_HELP_STRING([--with-doca=static],\n+ [Specify \"static\" depending on the\n+ DOCA libraries to use. A custom DOCA install path\n+ can be used otherwise for local builds.])],\n+ [have_doca=true])\n+\n+ if test \"$have_dpdk\" != true || test \"$with_dpdk\" = no; then\n+ if test \"$have_doca\" = true; then\n+ AC_MSG_ERROR([Cannot compile link against doca without dpdk, please add --with-dpdk])\n+ fi\n+ fi\n+ AC_MSG_CHECKING([whether doca is enabled])\n+ if test \"$have_doca\" != true || test \"$with_doca\" = no; then\n+ AC_MSG_RESULT([no])\n+ DOCALIB_FOUND=false\n+ else\n+ AC_MSG_RESULT([yes])\n+ if test -d \"$with_doca\"; then\n+ DOCA_INSTALL=\"$with_doca\"\n+ elif test -d \"/opt/mellanox/doca\"; then\n+ DOCA_INSTALL=/opt/mellanox/doca\n+ else\n+ DOCA_INSTALL=/usr/local\n+ fi\n+ DOCA_PKGCONFIG=\"$(find ${DOCA_INSTALL} -type f -name doca-flow.pc -exec dirname {} \\; | head -1)\"\n+ if test -n \"$DOCA_PKGCONFIG\"; then\n+ if test -n \"$PKG_CONFIG_PATH\"; then\n+ export PKG_CONFIG_PATH=\"${DOCA_PKGCONFIG}:${PKG_CONFIG_PATH}\"\n+ else\n+ export PKG_CONFIG_PATH=\"${DOCA_PKGCONFIG}\"\n+ fi\n+ fi\n+\n+ echo \"checking for DOCA in PKG_CONFIG_PATH='${PKG_CONFIG_PATH}'\"\n+ case \"$with_doca\" in\n+ \"static\"|\"shared\")\n+ DOCA_LINK=\"$with_doca\"\n+ ;;\n+ *)\n+ if test \"$enable_shared\" = yes; then\n+ DOCA_LINK=\"shared\"\n+ else\n+ DOCA_LINK=\"static\"\n+ fi\n+ ;;\n+ esac\n+\n+ DOCA_PKGS=\"doca-flow doca-dpdk-bridge doca-common\"\n+ if test \"$DOCA_LINK\" = static; then\n+ PKG_CHECK_MODULES_STATIC([DOCA], [$DOCA_PKGS], [],\n+ [AC_MSG_ERROR([unable to use $DOCA_PKGS .pc files for $DOCA_LINK build])])\n+ else\n+ PKG_CHECK_MODULES([DOCA], [$DOCA_PKGS], [],\n+ [AC_MSG_ERROR([unable to use $DOCA_PKGS .pc files for $DOCA_LINK build])])\n+ fi\n+ DOCA_INCLUDE=\"$DOCA_CFLAGS -DDOCA_ALLOW_EXPERIMENTAL_API\"\n+\n+ if test \"$DOCA_LINK\" = static; then\n+ # pkg-config --static may emit the same library in duplicate\n+ # --whole-archive blocks when multiple packages share a dependency\n+ # (both doca-flow and doca-dpdk-bridge pull in doca-common).\n+ # Linking the same .a under --whole-archive twice causes \"multiple\n+ # definition\" errors. Remove the second occurrence using a sed\n+ # backreference, and strip redundant shared-lib flags (-l<lib>)\n+ # since the static .a is already linked via --whole-archive.\n+ DOCA_DEDUP_LIBS=\"doca_common doca_dpdk_bridge\"\n+ for lib in $DOCA_DEDUP_LIBS; do\n+ lib_count=$(echo \"$DOCA_LIBS\" | grep -o \"l:lib${lib}\\.a\" | wc -l)\n+ if test \"$lib_count\" -ge 2; then\n+ DOCA_LIBS=$(echo \"$DOCA_LIBS\" | sed \"s@-Wl,--whole-archive -L[[^ ]]* -l:lib${lib}\\.a -Wl,--no-whole-archive -Wl,--as-needed @@2g\")\n+ fi\n+ if echo \"$DOCA_LIBS\" | grep -q \"l:lib${lib}\\.a\"; then\n+ DOCA_LIBS=$(echo \"$DOCA_LIBS\" | sed \"s/-l${lib}//g\")\n+ fi\n+ done\n+ fi\n+\n+ USED_PATH=`$PKG_CONFIG --variable=prefix doca-flow`\n+ echo \"Using DOCA release: '$USED_PATH'\"\n+\n+ ovs_save_CFLAGS=\"$CFLAGS\"\n+ ovs_save_LDFLAGS=\"$LDFLAGS\"\n+ # Statically linked libraries might have been built with sanitizers enabled.\n+ # In such case, use the generated sanitizer cflags.\n+ CFLAGS=\"$CFLAGS $SANITIZER_CFLAGS $DOCA_INCLUDE\"\n+\n+ AC_MSG_CHECKING([for doca_flow.h])\n+ AC_COMPILE_IFELSE(\n+ [AC_LANG_PROGRAM([#include <doca_flow.h>],\n+ [struct doca_flow_port *port = NULL ;])],\n+ [AC_MSG_RESULT([yes])],\n+ [AC_MSG_RESULT([no])\n+ AC_MSG_ERROR(m4_normalize([\n+ Unable to include doca_flow.h, check the config.log for more details.\n+ As a DOCA library was found in the current search path, a missing doca_flow.h\n+ usually means that it was built without DOCA-flow support.\n+ Verify that you fullfilled all DOCA-flow build dependencies and that it\n+ was not automatically disabled.]))\n+ ])\n+\n+ # DOCA's static pkg-config output already includes DPDK through\n+ # its transitive dependency on libdpdk (via doca-dpdk-bridge), so\n+ # no need to add DPDK_LIB separately for static link tests.\n+ if test \"$enable_shared\" = yes; then\n+ LIBS=\"$DOCA_LIBS $LIBS\"\n+ else\n+ LIBS=\"$DOCA_LIBS $ovs_save_libs_before_dpdk\"\n+ fi\n+ AC_MSG_CHECKING([for DOCA-flow link])\n+ AC_LINK_IFELSE(\n+ [AC_LANG_PROGRAM([#include <doca_flow_net.h>\n+ #include <doca_flow.h>],\n+ [struct doca_flow_cfg *cfg;\n+ int rv;\n+ doca_flow_cfg_create(&cfg);\n+ rv = doca_flow_init(cfg);\n+ doca_flow_cfg_destroy(cfg);\n+ return rv;])],\n+ [AC_MSG_RESULT([yes])\n+ DOCALIB_FOUND=true],\n+ [AC_MSG_RESULT([no])\n+ AC_MSG_ERROR(m4_normalize([\n+ Unable to link with DOCA-flow, check the config.log for more details.\n+ If a working DOCA-flow library was not found in the current search path,\n+ update PKG_CONFIG_PATH for pkg-config to find the .pc file in a proper location.]))\n+ ])\n+ CFLAGS=\"$ovs_save_CFLAGS\"\n+ LDFLAGS=\"$ovs_save_LDFLAGS\"\n+ OVS_CFLAGS=\"$OVS_CFLAGS $DOCA_INCLUDE -Wno-deprecated-declarations -DALLOW_EXPERIMENTAL_API\"\n+\n+ # DOCA libraries are very specific in their ordering and inherit DPDK\n+ # libraries which contain --whole-archive. Autotools will reorder\n+ # them, breaking static links. Use the same solution as DPDK below.\n+ # Transform the pkg-config output into a single linker parameter, separated\n+ # by commas and wrapped by -Wl.\n+ DOCA_LDFLAGS=$(echo \"$DOCA_LIBS\" | tr -s ' ' ',' | sed 's/-Wl,//g')\n+ # Replace -pthread with -lpthread for LD and remove the last extra comma.\n+ DOCA_LDFLAGS=$(echo \"$DOCA_LDFLAGS\"| sed 's/,$//' | sed 's/-pthread/-lpthread/g')\n+ # Prepend \"-Wl,\".\n+ DOCA_LDFLAGS=\"-Wl,$DOCA_LDFLAGS\"\n+\n+ # The full DOCA linker parameters must be made available to every\n+ # object trying to link against libopenvswitch. It means every\n+ # binary generated will contain DOCA unfortunately.\n+ if test \"$DOCA_LINK\" = static; then\n+ # DOCA's static pkg-config output already includes DPDK through\n+ # its transitive dependency on libdpdk (via doca-dpdk-bridge).\n+ OVS_LDFLAGS=\"$OVS_LDFLAGS $DOCA_LDFLAGS\"\n+ # Clear to prevent double linkage from Makefile.am\n+ DPDK_vswitchd_LDFLAGS=\"\"\n+ else\n+ # For shared builds, DPDK is not in DOCA's output (libdpdk is in\n+ # Requires.private, not followed by pkg-config without --static).\n+ # Link DPDK separately. Add PMD drivers explicitly as they may\n+ # not be in Libs field for shared builds.\n+ for pmd in rte_net_mlx5 rte_net_vhost; do\n+ if ! echo \"$DPDK_LIB\" | grep -q \"\\-l$pmd\"; then\n+ DPDK_LIB=\"$DPDK_LIB -l$pmd\"\n+ fi\n+ done\n+ OVS_LDFLAGS=\"$OVS_LDFLAGS $DOCA_LDFLAGS $DPDK_LIB\"\n+ fi\n+ AC_DEFINE([DOCA_NETDEV], [1], [System uses the DOCA module.])\n+ fi\n+\n+ AM_CONDITIONAL([DOCA_NETDEV], [$DOCALIB_FOUND])\n+])\n+\n dnl OVS_CHECK_DPDK\n dnl\n dnl Configure DPDK source tree\n@@ -478,6 +651,7 @@ AC_DEFUN([OVS_CHECK_DPDK], [\n OVS_FIND_DEPENDENCY([dlopen], [dl], [libdl])\n \n AC_MSG_CHECKING([whether linking with dpdk works])\n+ ovs_save_libs_before_dpdk=\"$LIBS\"\n LIBS=\"$DPDK_LIB $LIBS\"\n AC_LINK_IFELSE(\n [AC_LANG_PROGRAM([#include <rte_config.h>\ndiff --git a/configure.ac b/configure.ac\nindex cd063f811..031d38c90 100644\n--- a/configure.ac\n+++ b/configure.ac\n@@ -204,6 +204,7 @@ OVS_CHECK_LINUX_TC\n OVS_CHECK_LINUX_SCTP_CT\n OVS_CHECK_LINUX_VIRTIO_TYPES\n OVS_CHECK_DPDK\n+OVS_CHECK_DOCA\n OVS_CHECK_PRAGMA_MESSAGE\n OVS_CHECK_VERSION_SUFFIX\n AC_SUBST([CFLAGS])\ndiff --git a/lib/automake.mk b/lib/automake.mk\nindex bab03c3e7..66c5c3d93 100644\n--- a/lib/automake.mk\n+++ b/lib/automake.mk\n@@ -517,6 +517,10 @@ lib_libopenvswitch_la_SOURCES += \\\n \tlib/dpdk-stub.c\n endif\n \n+lib_libopenvswitch_la_SOURCES += \\\n+\tlib/ovs-doca.c \\\n+\tlib/ovs-doca.h\n+\n if WIN32\n lib_libopenvswitch_la_SOURCES += \\\n \tlib/dpif-netlink.c \\\ndiff --git a/lib/dpdk.h b/lib/dpdk.h\nindex 1b790e682..7571604dd 100644\n--- a/lib/dpdk.h\n+++ b/lib/dpdk.h\n@@ -18,6 +18,7 @@\n #define DPDK_H\n \n #include <stdbool.h>\n+#include <stdint.h>\n \n #ifdef DPDK_NETDEV\n \ndiff --git a/lib/ovs-doca.c b/lib/ovs-doca.c\nnew file mode 100644\nindex 000000000..eae361a21\n--- /dev/null\n+++ b/lib/ovs-doca.c\n@@ -0,0 +1,86 @@\n+/*\n+ * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES.\n+ * All rights reserved.\n+ * SPDX-License-Identifier: Apache-2.0\n+ *\n+ * Licensed under the Apache License, Version 2.0 (the \"License\");\n+ * you may not use this file except in compliance with the License.\n+ * You may obtain a copy of the License at\n+ *\n+ * http://www.apache.org/licenses/LICENSE-2.0\n+ *\n+ * Unless required by applicable law or agreed to in writing, software\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+ * See the License for the specific language governing permissions and\n+ * limitations under the License.\n+ */\n+\n+#include <config.h>\n+\n+#include \"compiler.h\"\n+#include \"ovs-doca.h\"\n+#include \"vswitch-idl.h\"\n+\n+#ifdef DOCA_NETDEV\n+\n+#include <rte_common.h>\n+#include <rte_pmd_mlx5.h>\n+\n+#include <doca_version.h>\n+\n+/* DOCA disables dpdk steering as a constructor in higher priority.\n+ * Set a lower priority one to enable it back. Disable it only upon using\n+ * doca ports.\n+ */\n+RTE_INIT(dpdk_steering_enable)\n+{\n+ rte_pmd_mlx5_enable_steering();\n+}\n+\n+void\n+ovs_doca_init(const struct smap *ovs_other_config OVS_UNUSED)\n+{\n+}\n+\n+void\n+print_doca_version(void)\n+{\n+ puts(doca_version_runtime());\n+}\n+\n+void\n+ovs_doca_status(const struct ovsrec_open_vswitch *cfg)\n+{\n+ if (!cfg) {\n+ return;\n+ }\n+\n+ ovsrec_open_vswitch_set_doca_initialized(cfg, false);\n+ ovsrec_open_vswitch_set_doca_version(cfg, doca_version_runtime());\n+}\n+\n+#else /* DOCA_NETDEV */\n+\n+void\n+ovs_doca_init(const struct smap *ovs_other_config OVS_UNUSED)\n+{\n+}\n+\n+void\n+print_doca_version(void)\n+{\n+}\n+\n+void\n+ovs_doca_status(const struct ovsrec_open_vswitch *cfg)\n+{\n+ if (!cfg) {\n+ return;\n+ }\n+\n+ ovsrec_open_vswitch_set_doca_initialized(cfg, false);\n+ ovsrec_open_vswitch_set_doca_version(cfg, \"none\");\n+}\n+\n+#endif /* DOCA_NETDEV */\ndiff --git a/lib/ovs-doca.h b/lib/ovs-doca.h\nnew file mode 100644\nindex 000000000..9bd96c941\n--- /dev/null\n+++ b/lib/ovs-doca.h\n@@ -0,0 +1,31 @@\n+/*\n+ * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES.\n+ * All rights reserved.\n+ * SPDX-License-Identifier: Apache-2.0\n+ *\n+ * Licensed under the Apache License, Version 2.0 (the \"License\");\n+ * you may not use this file except in compliance with the License.\n+ * You may obtain a copy of the License at\n+ *\n+ * http://www.apache.org/licenses/LICENSE-2.0\n+ *\n+ * Unless required by applicable law or agreed to in writing, software\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+ * See the License for the specific language governing permissions and\n+ * limitations under the License.\n+ */\n+\n+#ifndef OVS_DOCA_H\n+#define OVS_DOCA_H\n+\n+#include <config.h>\n+\n+struct ovsrec_open_vswitch;\n+struct smap;\n+\n+void ovs_doca_init(const struct smap *ovs_other_config);\n+void print_doca_version(void);\n+void ovs_doca_status(const struct ovsrec_open_vswitch *);\n+\n+#endif /* OVS_DOCA_H */\ndiff --git a/utilities/checkpatch_dict.txt b/utilities/checkpatch_dict.txt\nindex 5ad599c1d..6a454bcf8 100644\n--- a/utilities/checkpatch_dict.txt\n+++ b/utilities/checkpatch_dict.txt\n@@ -55,6 +55,7 @@ dhcpv4\n dhcpv6\n dnat\n dns\n+doca\n dpcls\n dpctl\n dpdk\ndiff --git a/vswitchd/bridge.c b/vswitchd/bridge.c\nindex 7a68e19ac..dd494b0f6 100644\n--- a/vswitchd/bridge.c\n+++ b/vswitchd/bridge.c\n@@ -50,6 +50,7 @@\n #include \"openvswitch/ofpbuf.h\"\n #include \"openvswitch/vconn.h\"\n #include \"openvswitch/vlog.h\"\n+#include \"ovs-doca.h\"\n #include \"ovs-lldp.h\"\n #include \"ovs-numa.h\"\n #include \"packets.h\"\n@@ -451,6 +452,8 @@ bridge_init(const char *remote)\n ovsdb_idl_omit(idl, &ovsrec_open_vswitch_col_system_version);\n ovsdb_idl_omit_alert(idl, &ovsrec_open_vswitch_col_dpdk_version);\n ovsdb_idl_omit_alert(idl, &ovsrec_open_vswitch_col_dpdk_initialized);\n+ ovsdb_idl_omit_alert(idl, &ovsrec_open_vswitch_col_doca_version);\n+ ovsdb_idl_omit_alert(idl, &ovsrec_open_vswitch_col_doca_initialized);\n \n ovsdb_idl_omit_alert(idl, &ovsrec_bridge_col_datapath_id);\n ovsdb_idl_omit_alert(idl, &ovsrec_bridge_col_datapath_version);\n@@ -3260,6 +3263,7 @@ run_status_update(void)\n connectivity_seqno = seq;\n status_txn = ovsdb_idl_txn_create(idl);\n dpdk_status(cfg);\n+ ovs_doca_status(cfg);\n HMAP_FOR_EACH (br, node, &all_bridges) {\n struct port *port;\n \n@@ -3400,6 +3404,7 @@ bridge_run(void)\n \n if (cfg) {\n dpdk_init(&cfg->other_config);\n+ ovs_doca_init(&cfg->other_config);\n userspace_tso_init(&cfg->other_config);\n }\n \ndiff --git a/vswitchd/ovs-vswitchd.c b/vswitchd/ovs-vswitchd.c\nindex 6d90c73b8..03c739443 100644\n--- a/vswitchd/ovs-vswitchd.c\n+++ b/vswitchd/ovs-vswitchd.c\n@@ -30,6 +30,7 @@\n #include \"compiler.h\"\n #include \"daemon.h\"\n #include \"dirs.h\"\n+#include \"dpdk.h\"\n #include \"dpif.h\"\n #include \"dummy.h\"\n #include \"fatal-signal.h\"\n@@ -37,6 +38,7 @@\n #include \"netdev.h\"\n #include \"openflow/openflow.h\"\n #include \"ovsdb-idl.h\"\n+#include \"ovs-doca.h\"\n #include \"ovs-rcu.h\"\n #include \"ovs-router.h\"\n #include \"ovs-thread.h\"\n@@ -220,6 +222,7 @@ parse_options(int argc, char *argv[], char **unixctl_pathp)\n case 'V':\n ovs_print_version(0, 0);\n print_dpdk_version();\n+ print_doca_version();\n exit(EXIT_SUCCESS);\n \n case OPT_MLOCKALL:\ndiff --git a/vswitchd/vswitch.ovsschema b/vswitchd/vswitch.ovsschema\nindex c658291c7..d3b84ac30 100644\n--- a/vswitchd/vswitch.ovsschema\n+++ b/vswitchd/vswitch.ovsschema\n@@ -1,6 +1,6 @@\n {\"name\": \"Open_vSwitch\",\n- \"version\": \"8.8.0\",\n- \"cksum\": \"2823623553 27869\",\n+ \"version\": \"8.9.0\",\n+ \"cksum\": \"2639123554 28037\",\n \"tables\": {\n \"Open_vSwitch\": {\n \"columns\": {\n@@ -56,6 +56,11 @@\n \"dpdk_initialized\": {\n \"type\": \"boolean\"},\n \"dpdk_version\": {\n+ \"type\": {\"key\": {\"type\": \"string\"},\n+ \"min\": 0, \"max\": 1}},\n+ \"doca_initialized\": {\n+ \"type\": \"boolean\"},\n+ \"doca_version\": {\n \"type\": {\"key\": {\"type\": \"string\"},\n \"min\": 0, \"max\": 1}}},\n \"isRoot\": true,\ndiff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml\nindex b7a5afc0a..9edd1027e 100644\n--- a/vswitchd/vswitch.xml\n+++ b/vswitchd/vswitch.xml\n@@ -941,6 +941,10 @@\n true and the DPDK library is successfully initialized.\n </column>\n \n+ <column name=\"doca_initialized\">\n+ Always false.\n+ </column>\n+\n <group title=\"Statistics\">\n <p>\n The <code>statistics</code> column contains key-value pairs that\n@@ -1131,6 +1135,12 @@\n </p>\n </column>\n \n+ <column name=\"doca_version\">\n+ <p>\n+ The version of the linked DOCA library.\n+ </p>\n+ </column>\n+\n </group>\n \n <group title=\"Capabilities\">\n", "prefixes": [ "ovs-dev", "v3", "10/11" ] }