> -----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

Reply via email to