From: "Fu, Qi" <qi.fu@intel.com>
To: "Zhao1, Wei" <wei.zhao1@intel.com>, "dev@dpdk.org" <dev@dpdk.org>
Cc: "Zhang, Qi Z" <qi.z.zhang@intel.com>
Subject: Re: [dpdk-dev] [PATCH] net/ice/base: fix bm mask set and find switch recipe method
Date: Wed, 29 Apr 2020 10:16:13 +0000 [thread overview]
Message-ID: <MN2PR11MB3566CEE75822304DBB064777EAAD0@MN2PR11MB3566.namprd11.prod.outlook.com> (raw)
In-Reply-To: <MWHPR11MB1391DF568955CFA3802EA3D3B7AC0@MWHPR11MB1391.namprd11.prod.outlook.com>
Tested-by: Fu, Qi <qi.fu@intel.com>
> -----Original Message-----
> From: Zhao1, Wei <wei.zhao1@intel.com>
> Sent: Tuesday, April 28, 2020 2:50 PM
> To: dev@dpdk.org
> Cc: Zhang, Qi Z <qi.z.zhang@intel.com>; Fu, Qi <qi.fu@intel.com>
> Subject: RE: [PATCH] net/ice/base: fix bm mask set and find switch recipe
> method
>
> Add fuqi
>
> > -----Original Message-----
> > From: Zhao1, Wei <wei.zhao1@intel.com>
> > Sent: Tuesday, April 28, 2020 2:22 PM
> > To: dev@dpdk.org
> > Cc: Zhang, Qi Z <qi.z.zhang@intel.com>; Zhao1, Wei
> > <wei.zhao1@intel.com>
> > Subject: [PATCH] net/ice/base: fix bm mask set and find switch recipe
> > method
> >
> > When we download a switch rule for ipv6 with esp payload "eth / ipv6 /
> > esp spi is 1 / end actions queue index 2 / end"
> >
> > if we don't add bm bit set check for tun_type, then a packet of
> > ipv4 with esp payload
> >
> > "sendp([Ether(dst="00:00:00:00:01:00")/IP(proto=50)/ESP(spi=1)/
> > ("X"*480)], iface="ens5f0", count=10)"
> >
> > will also go to queue index 2. And also, we need to do tun_type check,
> > or the second rule of following can not be download because of
> > rejection from switch rule download function ice_aq_sw_rules().
> >
> > "eth / ipv4 / esp spi is 1 / end actions queue index 5 / end"
> >
> > "eth / ipv6 / esp spi is 1 / end actions queue index 2 / end"
> >
> > Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
> > ---
> > drivers/net/ice/base/ice_switch.c | 15 ++++++++++-----
> > drivers/net/ice/base/ice_switch.h | 2 ++
> > 2 files changed, 12 insertions(+), 5 deletions(-)
> >
> > diff --git a/drivers/net/ice/base/ice_switch.c
> > b/drivers/net/ice/base/ice_switch.c
> > index e64b03136..7d5d57938 100644
> > --- a/drivers/net/ice/base/ice_switch.c
> > +++ b/drivers/net/ice/base/ice_switch.c
> > @@ -5278,11 +5278,8 @@ static u16 ice_find_recp(struct ice_hw *hw,
> > struct ice_prot_lkup_ext *lkup_exts,
> > /* If for "i"th recipe the found was never set to false
> > * then it means we found our match
> > */
> > - if (ice_is_prof_rule(tun_type) &&
> > - tun_type == recp[i].tun_type && found)
> > - return i; /* Return the recipe ID */
> > - else if (!ice_is_prof_rule(tun_type) && found)
> > - return i; /* Return the recipe ID */
> > + if (tun_type == recp[i].tun_type && found)
> > + return i;
> > }
> > }
> > return ICE_MAX_NUM_RECIPES;
> > @@ -5998,9 +5995,11 @@ ice_get_compat_fv_bitmap(struct ice_hw *hw,
> > struct ice_adv_rule_info *rinfo,
> > prof_type = ICE_PROF_TUN_PPPOE;
> > break;
> > case ICE_SW_TUN_PROFID_IPV6_ESP:
> > + case ICE_SW_TUN_IPV6_ESP:
> > ice_set_bit(ICE_PROFID_IPV6_ESP, bm);
> > return;
> > case ICE_SW_TUN_PROFID_IPV6_AH:
> > + case ICE_SW_TUN_IPV6_AH:
> > ice_set_bit(ICE_PROFID_IPV6_AH, bm);
> > return;
> > case ICE_SW_TUN_PROFID_MAC_IPV6_L2TPV3:
> > @@ -6029,6 +6028,12 @@ ice_get_compat_fv_bitmap(struct ice_hw *hw,
> > struct ice_adv_rule_info *rinfo,
> > case ICE_SW_TUN_IPV4_L2TPV3:
> > ice_set_bit(ICE_PROFID_MAC_IPV4_L2TPV3, bm);
> > return;
> > + case ICE_SW_TUN_IPV4_ESP:
> > + ice_set_bit(ICE_PROFID_IPV4_ESP, bm);
> > + return;
> > + case ICE_SW_TUN_IPV4_AH:
> > + ice_set_bit(ICE_PROFID_IPV4_AH, bm);
> > + return;
> > case ICE_SW_TUN_AND_NON_TUN:
> > default:
> > prof_type = ICE_PROF_ALL;
> > diff --git a/drivers/net/ice/base/ice_switch.h
> > b/drivers/net/ice/base/ice_switch.h
> > index 09dc1f236..6bb742d2f 100644
> > --- a/drivers/net/ice/base/ice_switch.h
> > +++ b/drivers/net/ice/base/ice_switch.h
> > @@ -16,7 +16,9 @@
> > #define ICE_FLTR_TX_RX (ICE_FLTR_RX | ICE_FLTR_TX)
> >
> > /* Switch Profile IDs for Profile related switch rules */
> > +#define ICE_PROFID_IPV4_ESP 71
> > #define ICE_PROFID_IPV6_ESP 72
> > +#define ICE_PROFID_IPV4_AH 73
> > #define ICE_PROFID_IPV6_AH 74
> > #define ICE_PROFID_IPV4_NAT_T 75
> > #define ICE_PROFID_IPV6_NAT_T 76
> > --
> > 2.19.1
next prev parent reply other threads:[~2020-04-29 10:16 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-28 6:22 [dpdk-dev] [PATCH] net/ice/base: fix bm mask set and find switch recipe method Wei Zhao
2020-04-28 6:49 ` Zhao1, Wei
2020-04-29 10:16 ` Fu, Qi [this message]
2020-04-30 2:17 ` Zhang, Qi Z
2020-04-29 8:42 ` [dpdk-dev] [PATCH v2] " Wei Zhao
2020-05-06 5:17 ` Ye Xiaolong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=MN2PR11MB3566CEE75822304DBB064777EAAD0@MN2PR11MB3566.namprd11.prod.outlook.com \
--to=qi.fu@intel.com \
--cc=dev@dpdk.org \
--cc=qi.z.zhang@intel.com \
--cc=wei.zhao1@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.