[dpdk-dev] [RFC v2] Flow classification library

Iremonger, Bernard bernard.iremonger at intel.com
Fri May 19 18:30:49 CEST 2017


Hi Ferruh,

> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Ferruh Yigit
> Sent: Thursday, May 18, 2017 7:12 PM
> To: dev at dpdk.org
> Cc: Yigit, Ferruh <ferruh.yigit at intel.com>; Mcnamara, John
> <john.mcnamara at intel.com>; Tahhan, Maryam
> <maryam.tahhan at intel.com>
> Subject: [dpdk-dev] [RFC v2] Flow classification library
> 
> DPDK works with packets, but some network administration tools works
> based on flow information.
> 
> This library is suggested to provide helper API to convert packet based
> information to the flow records.
> 
> Basically the library consist of a single API that gets packets, flow definition
> and action as parameter and provides flow stats based on action. Application
> should call the API for all received packets.
> 
> Library header file has more comments on how library works and provided
> APIs.
> 
> Packets to flow conversion will cause performance drop, that is why
> conversion done on demand by an API call provided by this library.
> 
> Initial implementation in mind is to provide support for IPFIX metering
> process but library planned to be as generic as possible. And flow information
> provided by this library is missing to implement full IPFIX features, but this is
> planned to be initial step.
> 
> Flows are defined using rte_flow, also measurements (actions) are provided
> 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?

> 
> Since both flows and action defined by rte_flow, it is possible to consider this
> library as rte_flow software fallback.
> 
> 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 hardware
> this library will implement the ways to get the stats.
> 
> 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 functionalities.
> 
> 
> 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 stats.
> * library no more maintain any flow data, all flow related stats returned
>   by API call and forgotten.
> 
> Thanks,
> ferruh
> 
> cc: John McNamara <john.mcnamara at intel.com>
> cc: Maryam Tahhan <maryam.tahhan at intel.com>
> 
> Ferruh Yigit (1):
>   flow_classify: add librte_flow_classify library
> 
>  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.map
> 
> --
> 2.9.3



More information about the dev mailing list