On 12 Sep 2024, at 16:07, Ilya Maximets wrote:

> On 9/12/24 15:47, Eelco Chaudron wrote:
>>
>>
>> On 12 Sep 2024, at 14:58, Ilya Maximets wrote:
>>
>>> On 9/3/24 11:37, Eelco Chaudron wrote:
>>>> The odp_flow_format() function applies a wildcard mask when a
>>>> mask for a given key was not present. However, in the context of
>>>> installing flows in the datapath, the absence of a mask actually
>>>> indicates that the key should be ignored, meaning it should not
>>>> be masked at all.
>>>>
>>>> To address this inconsistency, odp_flow_format() now includes an
>>>> option to skip formatting keys that are missing a mask.
>>>>
>>>> Signed-off-by: Eelco Chaudron <[email protected]>
>>>> ---
>>>>  lib/dpctl.c            |  4 ++--
>>>>  lib/dpif-netdev.c      |  6 +++---
>>>>  lib/dpif.c             |  4 ++--
>>>>  lib/odp-util.c         | 31 ++++++++++++++++++-------------
>>>>  lib/odp-util.h         |  2 +-
>>>>  lib/tnl-ports.c        |  2 +-
>>>>  ofproto/ofproto-dpif.c |  2 +-
>>>>  tests/test-odp.c       |  6 ++++--
>>>>  8 files changed, 32 insertions(+), 25 deletions(-)
>>>
>>>
>>> Hi, Eelco.
>>>
>>> I got a notification from oss-fuzz that this change broke the build
>>> of the fuzzing target:
>>> https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=71524
>>>
>>> Step #3 - "compile-afl-address-x86_64": mv -f $depbase.Tpo $depbase.Po
>>> Step #3 - "compile-afl-address-x86_64": tests/oss-fuzz/odp_target.c:84:72: 
>>> error: too few arguments to function call, expected 8, have 7
>>> Step #3 - "compile-afl-address-x86_64":    83 |         
>>> odp_flow_format(odp_key.data, odp_key.size,
>>> Step #3 - "compile-afl-address-x86_64":       |         ~~~~~~~~~~~~~~~
>>> Step #3 - "compile-afl-address-x86_64":    84 |                         
>>> odp_mask.data, odp_mask.size, NULL, &out, false);
>>> Step #3 - "compile-afl-address-x86_64":       |                             
>>>                                            ^
>>> Step #3 - "compile-afl-address-x86_64": ./lib/odp-util.h:171:6: note: 
>>> 'odp_flow_format' declared here
>>> Step #3 - "compile-afl-address-x86_64":   171 | void odp_flow_format(const 
>>> struct nlattr *key, size_t key_len,
>>> Step #3 - "compile-afl-address-x86_64":       |      ^               
>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> Step #3 - "compile-afl-address-x86_64":   172 |                      const 
>>> struct nlattr *mask, size_t mask_len,
>>> Step #3 - "compile-afl-address-x86_64":       |                      
>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> Step #3 - "compile-afl-address-x86_64":   173 |                      const 
>>> struct hmap *portno_names, struct ds *,
>>> Step #3 - "compile-afl-address-x86_64":       |                      
>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> Step #3 - "compile-afl-address-x86_64":   174 |                      bool 
>>> verbose, bool skip_no_mask);
>>> Step #3 - "compile-afl-address-x86_64":       |                      
>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>> Step #3 - "compile-afl-address-x86_64": 1 error generated.
>>> Step #3 - "compile-afl-address-x86_64": make: *** [Makefile:4718: 
>>> tests/oss-fuzz/odp_target.o] Error 1
>>> Step #3 - "compile-afl-address-x86_64": 
>>> ********************************************************************************
>>> Step #3 - "compile-afl-address-x86_64": Failed to build.
>>> Step #3 - "compile-afl-address-x86_64": To reproduce, run:
>>> Step #3 - "compile-afl-address-x86_64": python infra/helper.py build_image 
>>> openvswitch
>>> Step #3 - "compile-afl-address-x86_64": python infra/helper.py 
>>> build_fuzzers --sanitizer address --engine afl --architecture x86_64 
>>> openvswitch
>>> Step #3 - "compile-afl-address-x86_64": 
>>> ********************************************************************************
>>> Finished Step #3 - "compile-afl-address-x86_64"
>>> ERROR
>>> ERROR: build step 3 "gcr.io/cloud-builders/docker" failed: step exited with 
>>> non-zero status: 1
>>>
>>>
>>> Could you, please, send a fix?
>>
>> Sent a patch…
>
> Thanks!
>
>> I learned something new today, as I was not aware OVS was part of this 
>> project.
>> Should we do the build as part of the CI?
>
> I don't remember how long does it take to build, but I remember it pulls
> a pile of large container images that takes a while.  Not sure how that
> will impact our CI times.

Yes, it takes quite some time to pull the containers and build. Maybe we can 
just build it standalone, let me investigate, as some of the tools are 
available on Fedora, and they might also be there on Ubuntu.

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

Reply via email to