On 9 Feb 2026, at 14:29, Eli Britstein wrote:

> From: Ariel Levkovich <[email protected]>
>
> Add a new option to build ovs with doca by specifying '--with-doca' in the
> configure line.
>
> This flag must be used along with '--with-dpdk'. Otherwise the configure step
> will fail.
>
> An example:
>
> ./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc \
>     --with-dpdk=static --with-doca=static

Thanks for the patch, Ariel/Eli! Much appreciated.

I did not dive too deeply into the automake changes, and I would love for
someone with more experience in that area to take a look as well. That
said, I did notice quite a bit of unusual handling going on there. Is all
of that really necessary, or might there be a cleaner way to approach it?
Maybe there is even an opportunity to simplify things in the DOCA package
itself.

> Co-authored-by: Salem Sol <[email protected]>
> Signed-off-by: Salem Sol <[email protected]>
> Co-authored-by: Eli Britstein <[email protected]>
> Signed-off-by: Eli Britstein <[email protected]>
> Signed-off-by: Ariel Levkovich <[email protected]>
> ---
>  acinclude.m4                  | 248 ++++++++++++++++++++++++++++++++++
>  configure.ac                  |   1 +
>  lib/automake.mk               |   4 +
>  lib/ovs-doca.c                |  86 ++++++++++++
>  lib/ovs-doca.h                |  31 +++++
>  utilities/checkpatch_dict.txt |   2 +
>  vswitchd/bridge.c             |   5 +
>  vswitchd/ovs-vswitchd.c       |   3 +
>  vswitchd/vswitch.ovsschema    |   9 +-
>  vswitchd/vswitch.xml          |  10 ++
>  10 files changed, 397 insertions(+), 2 deletions(-)
>  create mode 100644 lib/ovs-doca.c
>  create mode 100644 lib/ovs-doca.h
>
> diff --git a/acinclude.m4 b/acinclude.m4
> index 586163ef3..72411df48 100644
> --- a/acinclude.m4
> +++ b/acinclude.m4
> @@ -367,6 +367,253 @@ AC_DEFUN([OVS_CHECK_LINUX_AF_XDP], [
>    AM_CONDITIONAL([HAVE_AF_XDP], test "$AF_XDP_ENABLE" = true)
>  ])
>
> +dnl OVS_CHECK_DOCA
> +dnl
> +dnl Configure DOCA source tree

Skipped reviewing this part.

[...]

> diff --git a/lib/ovs-doca.c b/lib/ovs-doca.c
> new file mode 100644
> index 000000000..eae361a21
> --- /dev/null
> +++ b/lib/ovs-doca.c
> @@ -0,0 +1,86 @@
> +/*
> + * SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & 
> AFFILIATES.
> + * All rights reserved.
> + * SPDX-License-Identifier: Apache-2.0
> + *
> + * Licensed under the Apache License, Version 2.0 (the "License");
> + * you may not use this file except in compliance with the License.
> + * You may obtain a copy of the License at
> + *
> + * http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing, software
> + * distributed under the License is distributed on an "AS IS" BASIS,
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> + * See the License for the specific language governing permissions and
> + * limitations under the License.
> + */
> +
> +#include <config.h>
> +
> +#include "compiler.h"
> +#include "ovs-doca.h"
> +#include "vswitch-idl.h"
> +
> +#ifdef DOCA_NETDEV
> +
> +#include <rte_common.h>
> +#include <rte_pmd_mlx5.h>
> +
> +#include <doca_version.h>
> +
> +/* DOCA disables dpdk steering as a constructor in higher priority.
> + * Set a lower priority one to enable it back. Disable it only upon using
> + * doca ports.
> + */
> +RTE_INIT(dpdk_steering_enable)
> +{
> +    rte_pmd_mlx5_enable_steering();

This sounds a bit scary to me.

Is there anything else DOCA changes in DPDK which is not visible to the
user? Especially since normal DPDK ports might be used, and when
compiled with DOCA it could behave differently than when compiled
without DOCA. The latter should ideally not be the case with DOCA
integration.

[...]

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to