> -----Original Message-----
> From: Ilya Maximets <i.maxim...@ovn.org>
> Sent: Monday 21 March 2022 16:56
> To: d...@openvswitch.org; Stokes, Ian <ian.sto...@intel.com>; Van Haaren,
> Harry
> <harry.van.haa...@intel.com>; Ferriter, Cian <cian.ferri...@intel.com>;
> Amber, Kumar
> <kumar.am...@intel.com>
> Cc: i.maxim...@ovn.org; Toms Atteka <cpp.code...@gmail.com>
> Subject: Re: [ovs-dev] [PATCHv2] IPv6: Add IPv6 extension header support
>
> On 3/18/22 22:34, Toms Atteka wrote:
> > IPv6 extension headers carry optional internet layer information
> > and are placed between the fixed header and the upper-layer
> > protocol header.
> >
> > This change adds a new OpenFlow field OFPXMT_OFB_IPV6_EXTHDR and
> > packets can be filtered using ipv6_ext flag.
> >
> > Some spacing style issues fixed.
> >
> > Tested-at: https://github.com/TomCodeLV/ovs/actions/runs/504185214
> > Signed-off-by: Toms Atteka <cpp.code...@gmail.com>
> > ---
> > build-aux/extract-odp-netlink-macros-h | 1 +
> > build-aux/extract-ofp-fields | 4 +-
> > datapath/flow.c | 192 +++++++++++++++---
> > datapath/flow.h | 14 ++
> > datapath/flow_netlink.c | 25 ++-
> > .../linux/compat/include/linux/openvswitch.h | 6 +
> > include/openvswitch/flow.h | 8 +-
> > include/openvswitch/match.h | 2 +
> > include/openvswitch/meta-flow.h | 18 ++
> > lib/dpif-netdev-extract-avx512.c | 2 +-
> > lib/flow.c | 188 ++++++++++++++++-
> > lib/flow.h | 6 +-
> > lib/match.c | 25 ++-
> > lib/meta-flow.c | 80 +++++++-
> > lib/meta-flow.xml | 14 ++
> > lib/nx-match.c | 13 +-
> > lib/odp-execute.c | 2 +
> > lib/odp-util.c | 111 +++++++++-
> > lib/odp-util.h | 11 +-
> > lib/ofp-match.c | 2 +-
> > lib/packets.c | 28 +++
> > lib/packets.h | 12 ++
> > ofproto/ofproto-dpif-rid.h | 2 +-
> > ofproto/ofproto-dpif-sflow.c | 1 +
> > ofproto/ofproto-dpif-xlate.c | 2 +-
> > ofproto/ofproto-dpif.c | 47 +++++
> > tests/ofproto.at | 4 +-
> > tests/system-traffic.at | 31 +++
> > 28 files changed, 789 insertions(+), 62 deletions(-)
> >
>
> <snip>
>
> > diff --git a/lib/dpif-netdev-extract-avx512.c
> > b/lib/dpif-netdev-extract-avx512.c
> > index c1c1fefb6..3cbe04ca9 100644
> > --- a/lib/dpif-netdev-extract-avx512.c
> > +++ b/lib/dpif-netdev-extract-avx512.c
> > @@ -289,7 +289,7 @@ BUILD_ASSERT_DECL((OFFSETOFEND(struct dp_packet, l4_ofs)
> > BUILD_ASSERT_DECL(FLOWMAP_UNITS == 2);
> >
> > /* Ensure the miniflow-struct ABI is the expected version. */
> > -BUILD_ASSERT_DECL(FLOW_WC_SEQ == 42);
> > +BUILD_ASSERT_DECL(FLOW_WC_SEQ == 43);
> >
> > /* If the above build assert happens, this means that you might need to
> > make
> > * some modifications to the AVX512 miniflow extractor code. In general,
> > the
>
> Harry, Cian, others,
>
> This patch requires some changes in the avx512 miniflow_extract
> implementation, due to changes in the layout of the struct flow.
>
> Could you, please, assist with providing necessary adjustments?
>
> Best regards, Ilya Maximets.
Hi Ilya/all,
Thanks again for pointing out the 'struct miniflow' change here.
>From a code inspection point of view, I can see that there will be AVX512 MFEX
>changes required since 'struct flow' in 'include/openvswitch/flow.h' has been
>modified with members being inserted into the middle of the struct. This means
>the miniflow bits output by the scalar miniflow_extract will change, so AVX512
>MFEX must change to match.
I can also see that a change to AVX512 MFEX is necessary from a testing point
of view when I apply this patchset and do some MFEX autovalidator testing. The
map or miniflow bits are different:
> Autovalidation map failed
> Good: 0x18a0000000000000 0x80801 Test: 0x18a0000000000000 0x40401
I'm wondering about the best next steps here. I can see that there's still an
open about the best potential placing of the 'uint16_t ipv6_exthdr'. I think it
makes sense to wait until the placing of `ipv6_exthdr` has been finalized
before sending a patch with the necessary adjustments to AVX512 MFEX. Does this
make sense?
Thanks,
Cian
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev