[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20230315173949.nakq7gk7c2wyqt6j@Svens-MacBookPro.local>
Date: Wed, 15 Mar 2023 18:39:49 +0100
From: Sven Auhagen <sven.auhagen@...eatech.de>
To: Maxime Chevallier <maxime.chevallier@...tlin.com>
Cc: netdev@...r.kernel.org, mw@...ihalf.com, linux@...linux.org.uk,
kuba@...nel.org, davem@...emloft.net
Subject: Re: [PATCH 1/3] net: mvpp2: classifier flow remove tagged
On Wed, Mar 15, 2023 at 11:19:50AM +0100, Maxime Chevallier wrote:
> On Wed, 15 Mar 2023 08:53:30 +0100
> Sven Auhagen <sven.auhagen@...eatech.de> wrote:
>
> > On Wed, Mar 15, 2023 at 08:31:48AM +0100, Maxime Chevallier wrote:
> > > Hello Sven,
> >
> > Hello Maxime,
> >
> > >
> > > On Sat, 11 Mar 2023 08:09:48 +0100
> > > Sven Auhagen <Sven.Auhagen@...eatech.de> wrote:
> > >
> > > > The classifier attribute MVPP22_CLS_HEK_TAGGED
> > > > has no effect in the definition and is filtered out by default.
> > >
> > > It's been a while since I've worked in this, but it looks like the
> > > non-tagged and tagged flows will start behaving the same way with
> > > this patch, which isn't what we want. Offsets to extract the
> > > various fields change based on the presence or not of a vlan tag,
> > > hence why we have all these flow definitions.
> > >
> >
> > In the sense of a match kind of.
> > There is one classifier match for no VLAN and one for any number of
> > VLANs. So no VLAN will match twice, correct.
> >
> > This is the case right now anyway though since
> > mvpp2_port_rss_hash_opts_set is filtering out MVPP22_CLS_HEK_TAGGED
> > for all rss hash options that are set in the driver at the moment.
> >
> > MVPP22_CLS_HEK_TAGGED is also not compatible with
> > MVPP22_CLS_HEK_IP4_5T which is probably the reason it is filtered out.
> >
> > The HEK can only have a match on up to 4 fields.
> > MVPP22_CLS_HEK_IP4_5T already covers 4 fields.
>
> That's not exactly how it works, the HEK comes in play after we have
> identified each flow during the parsing step, see my example below.
Sorry there was something off with my last email.
Yes, understood.
>
> > I disabled the hash_opts line which removes the HEK_TAGGED and the
> > entire rule will fail out and is not added because of that.
> >
> > So I am simply removing what is not working in the first place.
> >
> > > Did you check that for example RSS still behaves correctly when
> > > using tagged and untagged traffic on the same interface ?
> > >
> >
> > Yes all RSS work fine, I tested no VLAN, VLAN, QinQ, PPPoE and VLAN +
> > PPPoE.
> >
> > > I didn't test the QinQ at the time, so it's indeed likely that it
> > > doesn't behave as expected, but removing the MVPP22_CLS_HEK_TAGGED
> > > will cause issues if you start hashing inbound traffic based on the
> > > vlan tag.
> >
> > Please see my comment above.
> >
> > >
> > > the MVPP22_CLS_HEK_TAGGED does have an effect, as it's defined a
> > > (VLAN id | VLAN_PRI) hashing capability. Removing it will also break
> > > the per-vlan-prio rxnfc steering.
> > >
> > > Do you have more details on the use-case ? Do you wan to do RSS,
> > > steering ?
> >
> > I want to have RSS steering for all cases I tested above.
>
> Can you provide example commands you would use to configure that, so
> that we are on the same page ?
I did not use any custom rss rules.
I just enabled rxhash ethtool -K eno4 rxhash on
and otherwise the default rss opts are all I need:
https://elixir.bootlin.com/linux/latest/source/drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c#L1734
I am trying to make them work with all the different cases I mentioned.
There was a problem with fragmented packets, QinQ and PPPoE.
>
> > Do you have a different place that I do not know of where
> > MVPP22_CLS_HEK_TAGGED is actually loaded?
>
> https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Felixir.bootlin.com%2Flinux%2Flatest%2Fsource%2Fdrivers%2Fnet%2Fethernet%2Fmarvell%2Fmvpp2%2Fmvpp2_cls.c%23L1647&data=05%7C01%7Csven.auhagen%40voleatech.de%7C55114657d9d54ea1d71408db253ed26b%7Cb82a99f679814a7295344d35298f847b%7C0%7C0%7C638144723979910055%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=u78kzZ3oo%2BIxbhgGR1VGp48GbhQRvEokCIhiynwwDMo%3D&reserved=0
>
> Here the MVPP22_CLS_HEK_OPT_VLAN is loaded, and by removing
> MVPP22_CLS_HEK_TAGGED, this option will get filtered out.
>
> In the flow definitions, the MVPP22_CLS_HEK_TAGGED field indicates the
> possible HEK fields we can extract in this flow, not the ones that will
> actually be extracted.
>
> It is possible for example to use :
> ethtool -N eth0 flow-type tcp4 vlan 0xa000 m 0x1fff action 3 loc 1
>
> This makes any TCP over IPv4 traffic coming on VLAN with a priority of
> 6 to go in queue 3. In this case, we'll only have the vlan pri in the
> HEK. This will therefore apply regardless of the src/dst IP and src/dst
> port.
>
> The various flows defined here come from the parser, so when we hit a
> particular flow we know that we are dealing with "tagged TCP over IPv4"
> traffic, it's then up to the user to decide what to do with it, with
> the limitation of 4 HEK fields.
I understand your case now when using ethtool.
I will keep the MVPP22_CLS_HEK_TAGGED in and just fix the fragmented
problem in the first patch.
It does not matter much for my use case since I am using the default RSS
hash opts and not a custom one.
In the default RSS the HEK_TAGGED is filtered out and removed.
https://elixir.bootlin.com/linux/latest/source/drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c#L752
>
> > >
> > > I however do think that the missing frag flags are correct, and
> > > should be sent in a separate patch.
> > >
> >
> > Will do that in v2.
> >
> > > Thanks,
> > >
> > > Maxime
> > >
> > > > Even if it is applied to the classifier, it would discard double
> > > > or tripple tagged vlans.
> > > >
> > > > Also add missing IP Fragmentation Flag.
> > > >
> > > > Signed-off-by: Sven Auhagen <sven.auhagen@...eatech.de>
> > > >
> > > > diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c
> > > > b/drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c index
> > > > 41d935d1aaf6..efdf8d30f438 100644 ---
> > > > a/drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c +++
> > > > b/drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c @@ -44,17 +44,17
> > > > @@ static const struct mvpp2_cls_flow
> > > > cls_flows[MVPP2_N_PRS_FLOWS] = { /* TCP over IPv4 flows, Not
> > > > fragmented, with vlan tag */ MVPP2_DEF_FLOW(MVPP22_FLOW_TCP4,
> > > > MVPP2_FL_IP4_TCP_NF_TAG,
> > > > - MVPP22_CLS_HEK_IP4_5T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > + MVPP22_CLS_HEK_IP4_5T,
> > > > MVPP2_PRS_RI_L3_IP4 | MVPP2_PRS_RI_L4_TCP,
> > > > MVPP2_PRS_IP_MASK),
> > > >
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_TCP4, MVPP2_FL_IP4_TCP_NF_TAG,
> > > > - MVPP22_CLS_HEK_IP4_5T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > + MVPP22_CLS_HEK_IP4_5T,
> > > > MVPP2_PRS_RI_L3_IP4_OPT |
> > > > MVPP2_PRS_RI_L4_TCP, MVPP2_PRS_IP_MASK),
> > > >
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_TCP4, MVPP2_FL_IP4_TCP_NF_TAG,
> > > > - MVPP22_CLS_HEK_IP4_5T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > + MVPP22_CLS_HEK_IP4_5T,
> > > > MVPP2_PRS_RI_L3_IP4_OTHER |
> > > > MVPP2_PRS_RI_L4_TCP, MVPP2_PRS_IP_MASK),
> > > >
> > > > @@ -62,35 +62,38 @@ static const struct mvpp2_cls_flow
> > > > cls_flows[MVPP2_N_PRS_FLOWS] = { MVPP2_DEF_FLOW(MVPP22_FLOW_TCP4,
> > > > MVPP2_FL_IP4_TCP_FRAG_UNTAG, MVPP22_CLS_HEK_IP4_2T,
> > > > MVPP2_PRS_RI_VLAN_NONE |
> > > > MVPP2_PRS_RI_L3_IP4 |
> > > > - MVPP2_PRS_RI_L4_TCP,
> > > > + MVPP2_PRS_RI_IP_FRAG_TRUE |
> > > > MVPP2_PRS_RI_L4_TCP, MVPP2_PRS_IP_MASK | MVPP2_PRS_RI_VLAN_MASK),
> > > >
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_TCP4,
> > > > MVPP2_FL_IP4_TCP_FRAG_UNTAG, MVPP22_CLS_HEK_IP4_2T,
> > > > MVPP2_PRS_RI_VLAN_NONE |
> > > > MVPP2_PRS_RI_L3_IP4_OPT |
> > > > - MVPP2_PRS_RI_L4_TCP,
> > > > + MVPP2_PRS_RI_IP_FRAG_TRUE |
> > > > MVPP2_PRS_RI_L4_TCP, MVPP2_PRS_IP_MASK | MVPP2_PRS_RI_VLAN_MASK),
> > > >
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_TCP4,
> > > > MVPP2_FL_IP4_TCP_FRAG_UNTAG, MVPP22_CLS_HEK_IP4_2T,
> > > > MVPP2_PRS_RI_VLAN_NONE |
> > > > MVPP2_PRS_RI_L3_IP4_OTHER |
> > > > - MVPP2_PRS_RI_L4_TCP,
> > > > + MVPP2_PRS_RI_IP_FRAG_TRUE |
> > > > MVPP2_PRS_RI_L4_TCP, MVPP2_PRS_IP_MASK | MVPP2_PRS_RI_VLAN_MASK),
> > > >
> > > > /* TCP over IPv4 flows, fragmented, with vlan tag */
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_TCP4,
> > > > MVPP2_FL_IP4_TCP_FRAG_TAG,
> > > > - MVPP22_CLS_HEK_IP4_2T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > - MVPP2_PRS_RI_L3_IP4 | MVPP2_PRS_RI_L4_TCP,
> > > > + MVPP22_CLS_HEK_IP4_2T,
> > > > + MVPP2_PRS_RI_L3_IP4 |
> > > > MVPP2_PRS_RI_IP_FRAG_TRUE |
> > > > + MVPP2_PRS_RI_L4_TCP,
> > > > MVPP2_PRS_IP_MASK),
> > > >
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_TCP4,
> > > > MVPP2_FL_IP4_TCP_FRAG_TAG,
> > > > - MVPP22_CLS_HEK_IP4_2T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > - MVPP2_PRS_RI_L3_IP4_OPT |
> > > > MVPP2_PRS_RI_L4_TCP,
> > > > + MVPP22_CLS_HEK_IP4_2T,
> > > > + MVPP2_PRS_RI_L3_IP4_OPT |
> > > > MVPP2_PRS_RI_IP_FRAG_TRUE |
> > > > + MVPP2_PRS_RI_L4_TCP,
> > > > MVPP2_PRS_IP_MASK),
> > > >
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_TCP4,
> > > > MVPP2_FL_IP4_TCP_FRAG_TAG,
> > > > - MVPP22_CLS_HEK_IP4_2T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > - MVPP2_PRS_RI_L3_IP4_OTHER |
> > > > MVPP2_PRS_RI_L4_TCP,
> > > > + MVPP22_CLS_HEK_IP4_2T,
> > > > + MVPP2_PRS_RI_L3_IP4_OTHER |
> > > > MVPP2_PRS_RI_IP_FRAG_TRUE |
> > > > + MVPP2_PRS_RI_L4_TCP,
> > > > MVPP2_PRS_IP_MASK),
> > > >
> > > > /* UDP over IPv4 flows, Not fragmented, no vlan tag */
> > > > @@ -114,17 +117,17 @@ static const struct mvpp2_cls_flow
> > > > cls_flows[MVPP2_N_PRS_FLOWS] = {
> > > > /* UDP over IPv4 flows, Not fragmented, with vlan tag */
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_UDP4, MVPP2_FL_IP4_UDP_NF_TAG,
> > > > - MVPP22_CLS_HEK_IP4_5T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > + MVPP22_CLS_HEK_IP4_5T,
> > > > MVPP2_PRS_RI_L3_IP4 | MVPP2_PRS_RI_L4_UDP,
> > > > MVPP2_PRS_IP_MASK),
> > > >
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_UDP4, MVPP2_FL_IP4_UDP_NF_TAG,
> > > > - MVPP22_CLS_HEK_IP4_5T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > + MVPP22_CLS_HEK_IP4_5T,
> > > > MVPP2_PRS_RI_L3_IP4_OPT |
> > > > MVPP2_PRS_RI_L4_UDP, MVPP2_PRS_IP_MASK),
> > > >
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_UDP4, MVPP2_FL_IP4_UDP_NF_TAG,
> > > > - MVPP22_CLS_HEK_IP4_5T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > + MVPP22_CLS_HEK_IP4_5T,
> > > > MVPP2_PRS_RI_L3_IP4_OTHER |
> > > > MVPP2_PRS_RI_L4_UDP, MVPP2_PRS_IP_MASK),
> > > >
> > > > @@ -132,35 +135,38 @@ static const struct mvpp2_cls_flow
> > > > cls_flows[MVPP2_N_PRS_FLOWS] = { MVPP2_DEF_FLOW(MVPP22_FLOW_UDP4,
> > > > MVPP2_FL_IP4_UDP_FRAG_UNTAG, MVPP22_CLS_HEK_IP4_2T,
> > > > MVPP2_PRS_RI_VLAN_NONE |
> > > > MVPP2_PRS_RI_L3_IP4 |
> > > > - MVPP2_PRS_RI_L4_UDP,
> > > > + MVPP2_PRS_RI_IP_FRAG_TRUE |
> > > > MVPP2_PRS_RI_L4_UDP, MVPP2_PRS_IP_MASK | MVPP2_PRS_RI_VLAN_MASK),
> > > >
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_UDP4,
> > > > MVPP2_FL_IP4_UDP_FRAG_UNTAG, MVPP22_CLS_HEK_IP4_2T,
> > > > MVPP2_PRS_RI_VLAN_NONE |
> > > > MVPP2_PRS_RI_L3_IP4_OPT |
> > > > - MVPP2_PRS_RI_L4_UDP,
> > > > + MVPP2_PRS_RI_IP_FRAG_TRUE |
> > > > MVPP2_PRS_RI_L4_UDP, MVPP2_PRS_IP_MASK | MVPP2_PRS_RI_VLAN_MASK),
> > > >
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_UDP4,
> > > > MVPP2_FL_IP4_UDP_FRAG_UNTAG, MVPP22_CLS_HEK_IP4_2T,
> > > > MVPP2_PRS_RI_VLAN_NONE |
> > > > MVPP2_PRS_RI_L3_IP4_OTHER |
> > > > - MVPP2_PRS_RI_L4_UDP,
> > > > + MVPP2_PRS_RI_IP_FRAG_TRUE |
> > > > MVPP2_PRS_RI_L4_UDP, MVPP2_PRS_IP_MASK | MVPP2_PRS_RI_VLAN_MASK),
> > > >
> > > > /* UDP over IPv4 flows, fragmented, with vlan tag */
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_UDP4,
> > > > MVPP2_FL_IP4_UDP_FRAG_TAG,
> > > > - MVPP22_CLS_HEK_IP4_2T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > - MVPP2_PRS_RI_L3_IP4 | MVPP2_PRS_RI_L4_UDP,
> > > > + MVPP22_CLS_HEK_IP4_2T,
> > > > + MVPP2_PRS_RI_L3_IP4 |
> > > > MVPP2_PRS_RI_IP_FRAG_TRUE |
> > > > + MVPP2_PRS_RI_L4_UDP,
> > > > MVPP2_PRS_IP_MASK),
> > > >
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_UDP4,
> > > > MVPP2_FL_IP4_UDP_FRAG_TAG,
> > > > - MVPP22_CLS_HEK_IP4_2T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > - MVPP2_PRS_RI_L3_IP4_OPT |
> > > > MVPP2_PRS_RI_L4_UDP,
> > > > + MVPP22_CLS_HEK_IP4_2T,
> > > > + MVPP2_PRS_RI_L3_IP4_OPT |
> > > > MVPP2_PRS_RI_IP_FRAG_TRUE |
> > > > + MVPP2_PRS_RI_L4_UDP,
> > > > MVPP2_PRS_IP_MASK),
> > > >
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_UDP4,
> > > > MVPP2_FL_IP4_UDP_FRAG_TAG,
> > > > - MVPP22_CLS_HEK_IP4_2T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > - MVPP2_PRS_RI_L3_IP4_OTHER |
> > > > MVPP2_PRS_RI_L4_UDP,
> > > > + MVPP22_CLS_HEK_IP4_2T,
> > > > + MVPP2_PRS_RI_L3_IP4_OTHER |
> > > > MVPP2_PRS_RI_IP_FRAG_TRUE |
> > > > + MVPP2_PRS_RI_L4_UDP,
> > > > MVPP2_PRS_IP_MASK),
> > > >
> > > > /* TCP over IPv6 flows, not fragmented, no vlan tag */
> > > > @@ -178,12 +184,12 @@ static const struct mvpp2_cls_flow
> > > > cls_flows[MVPP2_N_PRS_FLOWS] = {
> > > > /* TCP over IPv6 flows, not fragmented, with vlan tag */
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_TCP6, MVPP2_FL_IP6_TCP_NF_TAG,
> > > > - MVPP22_CLS_HEK_IP6_5T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > + MVPP22_CLS_HEK_IP6_5T,
> > > > MVPP2_PRS_RI_L3_IP6 | MVPP2_PRS_RI_L4_TCP,
> > > > MVPP2_PRS_IP_MASK),
> > > >
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_TCP6, MVPP2_FL_IP6_TCP_NF_TAG,
> > > > - MVPP22_CLS_HEK_IP6_5T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > + MVPP22_CLS_HEK_IP6_5T,
> > > > MVPP2_PRS_RI_L3_IP6_EXT |
> > > > MVPP2_PRS_RI_L4_TCP, MVPP2_PRS_IP_MASK),
> > > >
> > > > @@ -202,13 +208,13 @@ static const struct mvpp2_cls_flow
> > > > cls_flows[MVPP2_N_PRS_FLOWS] = {
> > > > /* TCP over IPv6 flows, fragmented, with vlan tag */
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_TCP6,
> > > > MVPP2_FL_IP6_TCP_FRAG_TAG,
> > > > - MVPP22_CLS_HEK_IP6_2T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > + MVPP22_CLS_HEK_IP6_2T,
> > > > MVPP2_PRS_RI_L3_IP6 |
> > > > MVPP2_PRS_RI_IP_FRAG_TRUE | MVPP2_PRS_RI_L4_TCP,
> > > > MVPP2_PRS_IP_MASK),
> > > >
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_TCP6,
> > > > MVPP2_FL_IP6_TCP_FRAG_TAG,
> > > > - MVPP22_CLS_HEK_IP6_2T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > + MVPP22_CLS_HEK_IP6_2T,
> > > > MVPP2_PRS_RI_L3_IP6_EXT |
> > > > MVPP2_PRS_RI_IP_FRAG_TRUE | MVPP2_PRS_RI_L4_TCP,
> > > > MVPP2_PRS_IP_MASK),
> > > > @@ -228,12 +234,12 @@ static const struct mvpp2_cls_flow
> > > > cls_flows[MVPP2_N_PRS_FLOWS] = {
> > > > /* UDP over IPv6 flows, not fragmented, with vlan tag */
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_UDP6, MVPP2_FL_IP6_UDP_NF_TAG,
> > > > - MVPP22_CLS_HEK_IP6_5T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > + MVPP22_CLS_HEK_IP6_5T,
> > > > MVPP2_PRS_RI_L3_IP6 | MVPP2_PRS_RI_L4_UDP,
> > > > MVPP2_PRS_IP_MASK),
> > > >
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_UDP6, MVPP2_FL_IP6_UDP_NF_TAG,
> > > > - MVPP22_CLS_HEK_IP6_5T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > + MVPP22_CLS_HEK_IP6_5T,
> > > > MVPP2_PRS_RI_L3_IP6_EXT |
> > > > MVPP2_PRS_RI_L4_UDP, MVPP2_PRS_IP_MASK),
> > > >
> > > > @@ -252,13 +258,13 @@ static const struct mvpp2_cls_flow
> > > > cls_flows[MVPP2_N_PRS_FLOWS] = {
> > > > /* UDP over IPv6 flows, fragmented, with vlan tag */
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_UDP6,
> > > > MVPP2_FL_IP6_UDP_FRAG_TAG,
> > > > - MVPP22_CLS_HEK_IP6_2T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > + MVPP22_CLS_HEK_IP6_2T,
> > > > MVPP2_PRS_RI_L3_IP6 |
> > > > MVPP2_PRS_RI_IP_FRAG_TRUE | MVPP2_PRS_RI_L4_UDP,
> > > > MVPP2_PRS_IP_MASK),
> > > >
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_UDP6,
> > > > MVPP2_FL_IP6_UDP_FRAG_TAG,
> > > > - MVPP22_CLS_HEK_IP6_2T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > + MVPP22_CLS_HEK_IP6_2T,
> > > > MVPP2_PRS_RI_L3_IP6_EXT |
> > > > MVPP2_PRS_RI_IP_FRAG_TRUE | MVPP2_PRS_RI_L4_UDP,
> > > > MVPP2_PRS_IP_MASK),
> > > > @@ -279,15 +285,15 @@ static const struct mvpp2_cls_flow
> > > > cls_flows[MVPP2_N_PRS_FLOWS] = {
> > > > /* IPv4 flows, with vlan tag */
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_IP4, MVPP2_FL_IP4_TAG,
> > > > - MVPP22_CLS_HEK_IP4_2T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > + MVPP22_CLS_HEK_IP4_2T,
> > > > MVPP2_PRS_RI_L3_IP4,
> > > > MVPP2_PRS_RI_L3_PROTO_MASK),
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_IP4, MVPP2_FL_IP4_TAG,
> > > > - MVPP22_CLS_HEK_IP4_2T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > + MVPP22_CLS_HEK_IP4_2T,
> > > > MVPP2_PRS_RI_L3_IP4_OPT,
> > > > MVPP2_PRS_RI_L3_PROTO_MASK),
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_IP4, MVPP2_FL_IP4_TAG,
> > > > - MVPP22_CLS_HEK_IP4_2T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > + MVPP22_CLS_HEK_IP4_2T,
> > > > MVPP2_PRS_RI_L3_IP4_OTHER,
> > > > MVPP2_PRS_RI_L3_PROTO_MASK),
> > > >
> > > > @@ -303,11 +309,11 @@ static const struct mvpp2_cls_flow
> > > > cls_flows[MVPP2_N_PRS_FLOWS] = {
> > > > /* IPv6 flows, with vlan tag */
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_IP6, MVPP2_FL_IP6_TAG,
> > > > - MVPP22_CLS_HEK_IP6_2T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > + MVPP22_CLS_HEK_IP6_2T,
> > > > MVPP2_PRS_RI_L3_IP6,
> > > > MVPP2_PRS_RI_L3_PROTO_MASK),
> > > > MVPP2_DEF_FLOW(MVPP22_FLOW_IP6, MVPP2_FL_IP6_TAG,
> > > > - MVPP22_CLS_HEK_IP6_2T |
> > > > MVPP22_CLS_HEK_TAGGED,
> > > > + MVPP22_CLS_HEK_IP6_2T,
> > > > MVPP2_PRS_RI_L3_IP6,
> > > > MVPP2_PRS_RI_L3_PROTO_MASK),
> > > >
> > >
>
Powered by blists - more mailing lists