From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Iremonger, Bernard" Subject: Re: [RFC v2] Flow classification library Date: Fri, 19 May 2017 16:30:49 +0000 Message-ID: <8CEF83825BEC744B83065625E567D7C224D5F20E@IRSMSX108.ger.corp.intel.com> References: <20170420185448.19162-1-ferruh.yigit@intel.com> <20170518181203.15244-1-ferruh.yigit@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Cc: "Yigit, Ferruh" , "Mcnamara, John" , "Tahhan, Maryam" To: "Yigit, Ferruh" , "dev@dpdk.org" Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id A2B6A2901 for ; Fri, 19 May 2017 18:30:52 +0200 (CEST) In-Reply-To: <20170518181203.15244-1-ferruh.yigit@intel.com> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi Ferruh, > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Ferruh Yigit > Sent: Thursday, May 18, 2017 7:12 PM > To: dev@dpdk.org > Cc: Yigit, Ferruh ; Mcnamara, John > ; Tahhan, Maryam > > Subject: [dpdk-dev] [RFC v2] Flow classification library >=20 > DPDK works with packets, but some network administration tools works > based on flow information. >=20 > This library is suggested to provide helper API to convert packet based > information to the flow records. >=20 > Basically the library consist of a single API that gets packets, flow def= inition > and action as parameter and provides flow stats based on action. Applicat= ion > should call the API for all received packets. >=20 > Library header file has more comments on how library works and provided > APIs. >=20 > Packets to flow conversion will cause performance drop, that is why > conversion done on demand by an API call provided by this library. >=20 > Initial implementation in mind is to provide support for IPFIX metering > process but library planned to be as generic as possible. And flow inform= ation > provided by this library is missing to implement full IPFIX features, but= this is > planned to be initial step. >=20 > Flows are defined using rte_flow, also measurements (actions) are provide= d > by rte_flow. To support more IPFIX measurements, the implementation may > require extending rte_flow addition to implementing this library. Do you know what extensions are needed to the rte_flow code? >=20 > Since both flows and action defined by rte_flow, it is possible to consid= er this > library as rte_flow software fallback. >=20 > And in case the underlying hardware supports the provided flow and action= , > in implementation details this library may prefer to use hardware support= to > get the requested stats, for the actions that are not supported by hardwa= re > this library will implement the ways to get the stats. >=20 > It will be more beneficial to shape this library to cover more use cases,= please > feel free to comment on possible other use case and desired functionaliti= es. >=20 >=20 > Changes to previous version of the RFC: > v2: > * library uses rte_flow to define flows and action. > * no more callbacks used, user should call API in poll mode for flow stat= s. > * library no more maintain any flow data, all flow related stats returned > by API call and forgotten. >=20 > Thanks, > ferruh >=20 > cc: John McNamara > cc: Maryam Tahhan >=20 > Ferruh Yigit (1): > flow_classify: add librte_flow_classify library >=20 > config/common_base | 5 + > doc/api/doxy-api-index.md | 1 + > doc/api/doxy-api.conf | 1 + > doc/guides/rel_notes/release_17_08.rst | 1 + > lib/Makefile | 2 + > lib/librte_flow_classify/Makefile | 50 ++++++++ > lib/librte_flow_classify/rte_flow_classify.c | 72 ++++++++++++ > lib/librte_flow_classify/rte_flow_classify.h | 129 > +++++++++++++++++++++ > .../rte_flow_classify_version.map | 7 ++ > mk/rte.app.mk | 1 + > 10 files changed, 269 insertions(+) > create mode 100644 lib/librte_flow_classify/Makefile create mode 100644 > lib/librte_flow_classify/rte_flow_classify.c > create mode 100644 lib/librte_flow_classify/rte_flow_classify.h > create mode 100644 lib/librte_flow_classify/rte_flow_classify_version.ma= p >=20 > -- > 2.9.3