On 17 May 2026, at 11:59, Eli Britstein wrote:

> On 04/05/2026 17:04, Eelco Chaudron wrote:
>> External email: Use caution opening links or attachments
>>
>>
>> On 4 May 2026, at 15:48, Eli Britstein wrote:
>>
>>> On 01/05/2026 13:00, Eelco Chaudron wrote:
>>>> External email: Use caution opening links or attachments
>>>>
>>>>
>>>> On 1 Apr 2026, at 11:13, 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
>>>>>
>>>> Hi Ariel/Eli,
>>>>
>>>> See comments below.
>>>>
>>>> //Eelco
>>>>
>>>>> 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]>
>>>>> ---
>>>>>    .ci/doca-build.sh                    |  36 ++++++
> ...
>>>>> It should do make check here, as minimal tests should still pass.
>>>>> See linux-build.sh for details on how to run it.
>>> I added it, but it failed in some ODP tests, that pass locally for me. I 
>>> think there is some issue with it. I will keep investigating this but we 
>>> may have some unrelated noise that I don't want to hold the series for it.
>> Some times they fail, but with the RECHECK=yes is should pass.
>> If not we need to figure out why.
>
> I looked into it. It fails in parsing the text files in test-dpparse.py.
>
> I posted a fix commit as a separated one. If it's included, tests pass.
>
> https://mail.openvswitch.org/pipermail/ovs-dev/2026-May/432151.html

Thanks, I have a huge backlog of patches, I'll add it to the list...

>>
>>>>> diff --git a/.ci/doca-install.sh b/.ci/doca-install.sh
>>>>> new file mode 100755
>>>>> index 000000000..5931bf821
>>>>> --- /dev/null
>>>>> +++ b/.ci/doca-install.sh
>>>>> @@ -0,0 +1,20 @@
>>>>> +#!/bin/bash
> ...
>>>>> +    - name: install DOCA
>>>>> +      run:  ./.ci/doca-install.sh
>>>> We need this to be build against the DPDK_VER version of DPDK using the 
>>>> cached
>>>> build.  And probably also need a step to quick test to verify the output of
>>>> 'ovs-vswitchd -V'.
>>> We cannot use the cached dpdk version. It is a very minimal dpdk, without 
>>> mlx5 pmd. Doca installation also provides the compatible dpdk (25.11 + few 
>>> critical bug fixes - for advanced features that you probably won't 
>>> encounter).
>>>
>>> I added the "DOCA" prefix to the print of the doca version and check it 
>>> exists in -V.
>> We should build with upstream DPDK, as it is not clear what is in
>> the included DPDK. We, as in Red Hat, would probably also build
>> using upstream DPDK. I do not see any problems extending the cached
>> image to include the mlx5 PMD.
>
> The wishful thinking is to provide the vanilla upstream DPDK in doca package. 
> In practice, as package is provided to customers, there are few critical bug 
> fixes in mlx5 pmd that are included in parallel to sending them upstream.
>
> There won't be any issue building against upstream dpdk if it has mlx5 PMD.
>
> Anyway, I'll extend the cached version to include mlx5 and update using the 
> cached version. Note that for that we'll need more installations.

Thanks!

>>
>>>>> +
>>>>> +    - name: build
>>>>> +      run:  ./.ci/doca-build.sh
>>>>> +
>>>>> +    - name: upload logs on failure
>>>>> +      if: failure() || cancelled()
>>>>> +      uses: actions/upload-artifact@v4
>>>>> +      with:
>>>>> +        name: logs-doca-ubuntu-${{ matrix.compiler }}-${{ 
>>>>> matrix.doca_link }}
>>>>> +        path: config.log
>>>>> diff --git a/Makefile.am b/Makefile.am
>>>>> index a805f21d1..ddc3e931e 100644
>>>>> --- a/Makefile.am
>>>>> +++ b/Makefile.am
>>>>> @@ -77,6 +77,8 @@ EXTRA_DIST = \
>>>>>         MAINTAINERS.rst \
>>>>>         README.rst \
>>>>>         NOTICE \
>>>>> +     .ci/doca-build.sh \
>>>>> +     .ci/doca-install.sh \
>>>>>         .ci/dpdk-build.sh \
>>>>>         .ci/dpdk-prepare.sh \
>>>>>         .ci/linux-build.sh \
>>>>> diff --git a/acinclude.m4 b/acinclude.m4
>>>>> index 060c416f8..e8d475f37 100644
>>>>> --- a/acinclude.m4
>>>>> +++ b/acinclude.m4
>>>>> @@ -374,6 +374,179 @@ 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
>>>>> +AC_DEFUN([OVS_CHECK_DOCA], [
>>>>> +  AC_ARG_WITH([doca],
>>>>> +              [AS_HELP_STRING([--with-doca=static],
>>>> The code below seems to have something like; 
>>>> --with-doca=static|shared|<path>
>>>> should this be removed, or this help be updated?  If the latter we also 
>>>> need
>>>> documentation updates in the next patch.
>>> I removed the <path> option.
>>>> To simplify things, would it be an idea to align DOCA with DPDK?
>>>> Meaning, we just add an --enable-doca option and it takes the link
>>>> mode from whatever is configured for DPDK? A quick glance on the
>>>> changes shows a lot cleaner implementation.
>>> I agree we don't really need "mixed" linkage types.
>>>
>>> However, I tried it. It doesn't look simpler I prefer to keep it as is.
>>>
>>> Also, in the future we may remove the dependency with dpdk.
>> I guess the cleanup came from the removed path part. However if we allow
>> for mixed options we might need to test against it :(
> I think a separated --with-doca is clearer. I'll add a validation that it's 
> the same as dpdk.
>>
>>>>> +                              [Specify "static" depending on the
>>>>> +                              DOCA libraries to use. A custom DOCA 
>>>>> install path
>>>>> +                              can be used otherwise for local builds.])],
> ...
>>>>> +      LIBS="$DOCA_LIBS $LIBS"
>>>>> +    else
>>>>> +      LIBS="$DOCA_LIBS $ovs_save_libs_before_dpdk"
>>>> I do not like saving the libraries in a variable and then replacing it.
>>>> Could we fix this in a cleaner way? Maybe delay adding DPDK_LIB to LIBS 
>>>> until
>>>> after the DOCA check? We are also resetting some other variables below.
>>>>
>>>> Maybe we should split this up into something like:
>>>>
>>>>       OVS_CHECK_DPDK
>>>>       OVS_CHECK_DOCA
>>>>       OVS_CHECK_DPDK_POST_DOCA
>>>>
>>>> Not sure if this would be accepted, but it might make things a bit
>>>> cleaner.
>>> I think it will be even less clear. Hopefully if we move to meson based 
>>> compilation and stop using pkg-config it will simplify things a lot.
>>>
>>> For now, this is the way it is.
>> I know, but we could make it better as they seem to depend on each other, 
>> and using global variables does not make much sense to me. Ilya any idea, as 
>> you might have more experience with AC?
>>
>>>>> +    fi
>>>>> +    AC_MSG_CHECKING([for DOCA-flow link])
> ...
>>>>> Also, enabling experimental DPDK APIs globally with 
>>>>> -DALLOW_EXPERIMENTAL_API
>>>>> is not desirable.  There are plans to remove experimental APIs completely.
>>>>> Which specific DPDK APIs require this flag?  It might be better to get 
>>>>> those
>>>>> promoted out of experimental state instead.
>>> We must have ALLOW_EXPERIMENTAL_API. For example 
>>> rte_pmd_mlx5_enable_steering().
>>>
>>> If all APIs we use become non-experimental we will be able to remove it. 
>>> For now we can't.
>> Is there a list of APIs you are planning to use, so you can drive
>> this upstream in DPDK?
>
> rte_flow_dynf_metadata_register, rte_flow_dynf_metadata_offs, later also 
> rte_flow_dynf_metadata_get
>
> rte_pmd_mlx5_enable_steering/rte_pmd_mlx5_disable_steering

Added David and Kevin to get their input on how they could move to 
non-experimental.

>>
>> Ilya, can you elaborate on plans to remove all experimental APIs
>> from OVS, as this might affect DOCA?
>
> We will drive them to be promoted in dpdk. Until then, we still need them.
>
> There are few more API in doca itself that will be promoted. When all are 
> promoted, doca will also remove -DALLOW_EXPERIMENTAL_API from their PC files.
>
> Until then, we still need this.
>
>>
>>>>> +
> ...

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

Reply via email to