From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 61A137CCE for ; Mon, 5 Jun 2017 08:08:05 +0200 (CEST) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Jun 2017 23:08:04 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.39,299,1493708400"; d="scan'208";a="976797132" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga003.jf.intel.com with ESMTP; 04 Jun 2017 23:08:04 -0700 Received: from fmsmsx122.amr.corp.intel.com (10.18.125.37) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 4 Jun 2017 23:08:04 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by fmsmsx122.amr.corp.intel.com (10.18.125.37) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 4 Jun 2017 23:08:04 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.146]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.116]) with mapi id 14.03.0319.002; Mon, 5 Jun 2017 14:08:02 +0800 From: "Lu, Wenzhuo" To: "Zhao1, Wei" , "dev@dpdk.org" Thread-Topic: [PATCH v2 10/11] net/e1000: destroy consistent filter Thread-Index: AQHS22vfCpDf5EAp/06OBV8Pa8EGeqIVxZeg//9/owCAAIdUoA== Date: Mon, 5 Jun 2017 06:08:01 +0000 Message-ID: <6A0DE07E22DDAD4C9103DF62FEBC09093B5CBE6D@shsmsx102.ccr.corp.intel.com> References: <1495523581-56027-1-git-send-email-wei.zhao1@intel.com> <1496385391-12445-1-git-send-email-wei.zhao1@intel.com> <1496385391-12445-11-git-send-email-wei.zhao1@intel.com> <6A0DE07E22DDAD4C9103DF62FEBC09093B5CBE44@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v2 10/11] net/e1000: destroy consistent filter X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jun 2017 06:08:07 -0000 Hi, > -----Original Message----- > From: Zhao1, Wei > Sent: Monday, June 5, 2017 2:01 PM > To: Lu, Wenzhuo; dev@dpdk.org > Subject: RE: [PATCH v2 10/11] net/e1000: destroy consistent filter >=20 > Hi, wenzhuo >=20 > > -----Original Message----- > > From: Lu, Wenzhuo > > Sent: Monday, June 5, 2017 1:42 PM > > To: Zhao1, Wei ; dev@dpdk.org > > Subject: RE: [PATCH v2 10/11] net/e1000: destroy consistent filter > > > > Hi Wei, > > > > > -----Original Message----- > > > From: Zhao1, Wei > > > Sent: Friday, June 2, 2017 2:37 PM > > > To: dev@dpdk.org > > > Cc: Lu, Wenzhuo; Zhao1, Wei > > > Subject: [PATCH v2 10/11] net/e1000: destroy consistent filter > > > > > > This patch adds a function to destroy the flow fliter. > > > > > > Signed-off-by: Wei Zhao > > > --- > > > drivers/net/e1000/igb_flow.c | 100 > > > ++++++++++++++++++++++++++++++++++++++++++- > > > 1 file changed, 99 insertions(+), 1 deletion(-) > > > > > > diff --git a/drivers/net/e1000/igb_flow.c > > > b/drivers/net/e1000/igb_flow.c index fac76bf..bced291 100644 > > > --- a/drivers/net/e1000/igb_flow.c > > > +++ b/drivers/net/e1000/igb_flow.c > > > @@ -1464,10 +1464,108 @@ igb_flow_validate(__rte_unused struct > > > rte_eth_dev *dev, > > > return ret; > > > } > > > > > > +/* Destroy a flow rule on igb. */ > > > +static int > > > +igb_flow_destroy(struct rte_eth_dev *dev, > > > + struct rte_flow *flow, > > > + struct rte_flow_error *error) > > > +{ > > > + int ret; > > > + struct rte_flow *pmd_flow =3D flow; > > > + enum rte_filter_type filter_type =3D pmd_flow->filter_type; > > > + struct rte_eth_ntuple_filter ntuple_filter; > > > + struct rte_eth_ethertype_filter ethertype_filter; > > > + struct rte_eth_syn_filter syn_filter; > > > + struct rte_eth_flex_filter flex_filter; > > > + struct igb_ntuple_filter_ele *ntuple_filter_ptr; > > > + struct igb_ethertype_filter_ele *ethertype_filter_ptr; > > > + struct igb_eth_syn_filter_ele *syn_filter_ptr; > > > + struct igb_flex_filter_ele *flex_filter_ptr; > > > + struct igb_flow_mem *igb_flow_mem_ptr; > > > + > > > + switch (filter_type) { > > > + case RTE_ETH_FILTER_NTUPLE: > > > + ntuple_filter_ptr =3D (struct igb_ntuple_filter_ele *) > > > + pmd_flow->rule; > > > + (void)rte_memcpy(&ntuple_filter, > > > + &ntuple_filter_ptr->filter_info, > > > + sizeof(struct rte_eth_ntuple_filter)); > > > + ret =3D igb_add_del_ntuple_filter(dev, &ntuple_filter, FALSE); > > Is a copy necessary? Could "ntuple_filter_ptr->filter_info" be used > > directly for deleting? > > The same below. >=20 > Maybe this is ok? >=20 > ntuple_filter_ptr =3D (struct igb_ntuple_filter_ele *) > pmd_flow->rule; > ret =3D igb_add_del_ntuple_filter(dev, &ntuple_filter_ptr->filter_info, > FALSE); Yes, I prefer this one. I've had a quick look at igb_add_del_ntuple_filter,= at least for deleting, ntuple_filter is only an input argument. >=20 >=20 > > > > > + if (!ret) { > > > + TAILQ_REMOVE(&igb_filter_ntuple_list, > > > + ntuple_filter_ptr, entries); > > > + rte_free(ntuple_filter_ptr); > > > + } > > > + break;