Hello, On Sun, 26 Jul 2026 at 17:34, Eli Britstein <[email protected]> wrote: > > 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. > > v4-v3: > - Licence comment headers. > - Styling fixes. > - CI dpdk is enhanced to compile mlx5 PMD and used with doca jobs. > - Removed ovs-rcu patch. > - Refmap fixes. > - DOCA mempool free by sweep. > > v5-v4: > - Rebased onto dpdk-latest. > - Removed dev_type field from netdev-dpdk. > - Dropped the direct mempool commit. > - Refactored more dpdk code to netdev-dpdk-common. > - --with-doca is changed to be a flag. Link type follows --with-dpdk. > - Added nvhws static link support. > - -DALLOW_EXPERIMENTAL_API: > - Removed from acinclude.m4. It still exists via doca's pkg-config files. > - Temporarily disabled shared DOCA linking in CI until a DOCA SDK built > against upstream DPDK with the promoted (non-experimental) > symbols is available. > - Fixed a potential leak with doca_dev_rep_close(). > - Preserve cX controller prefix in phys_port_name when probing ports. > - Changed doca log levels to match OVS vlog ones. > - Aligned flow-limit with ofproto. Keep mismatch warning in ovs-doca. > - Styling fixes. > > v6-v5: > - netdev_dpdk_is_vhost -> netdev_dpdk_is_eth. > - "is_started" atomic with memory_order_acquire. > - netdev-doca queues retry loop removed. > - Remove flow-limit read. It belongs to offloads, not this series. > - Add check-entry to verify an entry is indeed in HW. > - Styling fixes. > > > Ariel Levkovich (1): > acinclude.m4: Add '--with-doca' option. > > Eli Britstein (8): > packets: Move ETH_TYPE_LLDP to be a public define. > netdev-dpdk: Remove dev_type field. > netdev-dpdk-common: Refactor declarations from netdev-dpdk. > netdev-dpdk: Change access from dev->common.xxx to common->xxx. > netdev-dpdk: Make 'started' field atomic. > netdev-dpdk-common: Refactor common functions for netdev-doca reuse. > unixctl: Introduce unixctl_mem_stream(). > netdev-doca: Introduce doca netdev. > > Gaetan Rivet (1): > refmap: Introduce reference map. > > .ci/doca-build.sh | 54 + > .ci/dpdk-build.sh | 5 +- > .github/workflows/build-and-test.yml | 115 +- > Documentation/automake.mk | 2 + > Documentation/howto/doca.rst | 144 ++ > Documentation/howto/index.rst | 1 + > Documentation/intro/install/doca.rst | 120 + > Documentation/intro/install/index.rst | 1 + > Makefile.am | 1 + > NEWS | 5 + > acinclude.m4 | 177 ++ > configure.ac | 4 +- > lib/automake.mk | 14 +- > lib/dpdk.c | 32 +- > lib/netdev-doca.c | 2744 ++++++++++++++++++++ > lib/netdev-doca.h | 116 + > lib/netdev-dpdk-common.c | 2274 +++++++++++++++++ > lib/netdev-dpdk-common.h | 392 +++ > lib/netdev-dpdk.c | 3319 +++++-------------------- > lib/netdev-dpdk.h | 9 + > lib/ovs-doca.c | 892 +++++++ > lib/ovs-doca.h | 110 + > lib/ovs-lldp.c | 1 - > lib/packets.h | 9 +- > lib/refmap.c | 498 ++++ > lib/refmap.h | 162 ++ > lib/unixctl.c | 43 +- > lib/unixctl.h | 3 + > tests/automake.mk | 1 + > tests/library.at | 5 + > tests/ofproto-macros.at | 1 + > tests/system-dpdk.at | 2 +- > tests/test-aa.c | 2 - > tests/test-refmap.c | 1121 +++++++++ > utilities/checkpatch_dict.txt | 4 + > vswitchd/bridge.c | 5 + > vswitchd/ovs-vswitchd.c | 3 + > vswitchd/vswitch.ovsschema | 9 +- > vswitchd/vswitch.xml | 100 +- > 39 files changed, 9686 insertions(+), 2814 deletions(-) > create mode 100755 .ci/doca-build.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-common.c > create mode 100644 lib/netdev-dpdk-common.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
To avoid back and forth on this work, I went and prepared a RFC for a preparation netdev_dpdk refactoring (based on main branch, nothing is doca specific, so no need to go to dpdk-latest). I think it will simplify netdev-doca.c integration. Please have a look. Thanks. https://patchwork.ozlabs.org/project/openvswitch/list/?series=525717 -- David Marchand _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
