[dpdk-dev] [PATCH v5 00/41] Pipeline alignment with the P4 language

Dumitrescu, Cristian cristian.dumitrescu at intel.com
Wed Sep 30 08:50:58 CEST 2020



> -----Original Message-----
> From: David Marchand <david.marchand at redhat.com>
> Sent: Tuesday, September 29, 2020 3:09 PM
> To: Dumitrescu, Cristian <cristian.dumitrescu at intel.com>
> Cc: dev <dev at dpdk.org>; Thomas Monjalon <thomas at monjalon.net>
> Subject: Re: [PATCH v5 00/41] Pipeline alignment with the P4 language
> 
> On Wed, Sep 23, 2020 at 8:06 PM Cristian Dumitrescu
> <cristian.dumitrescu at intel.com> wrote:
> >
> > This patch set introduces a new pipeline type that combines the DPDK
> > performance with the flexibility of the P4-16 language[1]. The new API
> > can be used either by itself to code a complete software switch (SWX)
> > or data plane app, or in combination with the open-source P4 compiler
> > P4C [2], potentially acting as a P4C back-end, thus allowing the P4
> > programs to be translated to the DPDK API and run on multi-core CPUs.
> >
> > Main new features:
> >
> > * Nothing is hard-wired, everything is dynamically defined: The packet
> >   headers (i.e. protocols), the packet meta-data, the actions, the
> >   tables and the pipeline itself are dynamically defined instead of
> >   having to be selected from a pre-defined set.
> >
> > * Instructions: The actions and the life of the packet through the
> >   pipeline are defined with instructions that manipulate the pipeline
> >   objects mentioned above. The pipeline is the main function of the
> >   packet program, with actions as subroutines triggered by the tables.
> >
> > * Call external plugins: Extern objects and functions can be defined
> >   to call functionality that cannot be efficiently implemented with
> >   the existing pipeline-oriented instruction set, such as: special
> >   error detecting/correcting codes, crypto, meters, stats arrays,
> >   heuristics, etc.
> >
> > * Better control plane interaction: Transaction-oriented table update
> >   mechanism that supports multi-table atomic updates. Multiple tables
> >   can be updated in a single step with only the before and after table
> >   sets visible to the packets. Alignment with P4Runtime [3].
> >
> > * Performance: Multiple packets are in-flight within the pipeline at
> >   any moment. Each packet is owned by a different time-sharing thread
> >   in run-to-completion, with the thread pausing before memory access
> >   operations such as packet I/O and table lookup to allow the memory
> >   prefetch to complete. The instructions are verified and translated
> >   at initialization time with no run-time impact. The instructions are
> >   also optimized to detect and "fuse" frequently used patterns into
> >   vector-like instructions transparently to the user.
> >
> > API deprecation and maturing roadmap:
> > * The existing pipeline stable API (rte_pipeline.h) to be deprecated
> >   prior to and removed as part of the DPDK 21.11 LTS release.
> > * The new SWX pipeline experimental API (rte_swx_pipeline.h) to mature
> >   and become stable as part of the same DPDK 21.11 LTS release.
> 
> This is a new feature: we are missing a release note update as part of
> the series.
> 
> 
> --
> David Marchand

Added release notes update in V6, thanks!



More information about the dev mailing list