Hi zhaowei > -----Original Message----- > From: Zhao1, Wei > Sent: Monday, June 15, 2020 2:13 PM > To: Sun, GuinanX <guinanx....@intel.com>; dev@dpdk.org > Cc: Xing, Beilei <beilei.x...@intel.com>; Guo, Jia <jia....@intel.com>; Sun, > GuinanX <guinanx....@intel.com> > Subject: RE: [dpdk-dev] [PATCH] net/i40e: enable port filter by switch filter > > Hi, Guinan > > > -----Original Message----- > > From: dev <dev-boun...@dpdk.org> On Behalf Of Guinan Sun > > Sent: Thursday, June 11, 2020 1:24 PM > > To: dev@dpdk.org > > Cc: Xing, Beilei <beilei.x...@intel.com>; Guo, Jia > > <jia....@intel.com>; Sun, GuinanX <guinanx....@intel.com> > > Subject: [dpdk-dev] [PATCH] net/i40e: enable port filter by switch > > filter > > > > This patch enables the filter that supports to create following two > > rules for the same packet type: > > One is to select source port only as input set and the other is for > > destination port only. > > > > Signed-off-by: Guinan Sun <guinanx....@intel.com> > > --- > > doc/guides/rel_notes/release_20_08.rst | 7 + > > drivers/net/i40e/i40e_ethdev.c | 195 ++++++++++++++++++++- > > drivers/net/i40e/i40e_ethdev.h | 17 ++ > > drivers/net/i40e/i40e_flow.c | 223 > > +++++++++++++++++++++++++ > > 4 files changed, 441 insertions(+), 1 deletion(-) > > > > diff --git a/doc/guides/rel_notes/release_20_08.rst > > b/doc/guides/rel_notes/release_20_08.rst > > index 7a67c960c..16870100d 100644 > > --- a/doc/guides/rel_notes/release_20_08.rst > > +++ b/doc/guides/rel_notes/release_20_08.rst > > @@ -68,6 +68,13 @@ New Features > > > > * Added new PMD devarg ``reclaim_mem_mode``. > > > > +* **Updated Intel i40e driver.** > > + > > + Updated i40e PMD with new features and improvements, including: > > + > > + * Added a new type of cloud filter to support the coexistence of the > > + following two rules. One selects L4 destination as input set and > > + the other one selects L4 source port. > > > > Removed Items > > ------------- > > diff --git a/drivers/net/i40e/i40e_ethdev.c > > b/drivers/net/i40e/i40e_ethdev.c index 970a31cb2..97e6e948a 100644 > > --- a/drivers/net/i40e/i40e_ethdev.c > > +++ b/drivers/net/i40e/i40e_ethdev.c > > @@ -7956,6 +7956,13 @@ i40e_dev_tunnel_filter_set(struct i40e_pf *pf, > > #define I40E_TR_GRE_KEY_MASK0x400 #define > > I40E_TR_GRE_KEY_WITH_XSUM_MASK0x800 > > #define I40E_TR_GRE_NO_KEY_MASK0x8000 > > > +#define I40E_AQC_REPLACE_CLOUD_CMD_INPUT_PORT_TR_WORD0 0x49 > > A confused question, this 0x49 seems to be a field vector index? Filed vector > table is 128 byte long, why does this can large than 64? >
This is not field vector. Examples of filed vector use are as follows I40E_AQC_ADD_CLOUD_FV_FLU_0X11_WORD1 or I40E_AQC_ADD_CLOUD_FV_FLU_0X10_WORD1. > > > #define > > +I40E_AQC_REPLACE_CLOUD_CMD_INPUT_DIRECTION_WORD0 0x41 > #define > > +I40E_AQC_REPLACE_CLOUD_CMD_INPUT_INGRESS_WORD0 0x80 #define > > +I40E_DIRECTION_INGRESS_KEY0x8000 #define I40E_TR_L4_TYPE_TCP0x2 > > +#define I40E_TR_L4_TYPE_UDP0x4 #define I40E_TR_L4_TYPE_SCTP0x8 > > > > static enum > > i40e_status_code i40e_replace_mpls_l1_filter(struct i40e_pf *pf) @@ > > -8254,6 +8261,131 @@ i40e_status_code > > i40e_replace_gtp_cloud_filter(struct i40e_pf *pf) return status; >