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

Reply via email to