On Wed, Sep 23, 2020 at 8:06 PM Cristian Dumitrescu <cristian.dumitre...@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