[dpdk-dev] 17.02 Roadmap

Stephen Hemminger stephen at networkplumber.org
Fri Oct 14 19:29:45 CEST 2016


On Mon, 10 Oct 2016 16:13:42 +0000
"O'Driscoll, Tim" <tim.odriscoll at intel.com> wrote:

> We published our initial roadmap for 17.02 at the end of August. Since then we've been doing more detailed planning and would like to provide an update on the features that we plan to submit for this release. This is our current plan, which should hopefully remain fairly stable now:
> 
> Consistent Filter API: Add support for the Consistent Filter API (see http://dpdk.org/ml/archives/dev/2016-September/047924.html) for IGB, IXGBE and I40E.
> 
> Elastic Flow Distributor: The Elastic Flow Distributor (EFD) is a flow-based load balancing library which scales linearly for both lookup and insert with the number of threads or cores.  EFD lookup uses a "perfect hashing" scheme where only the information needed to compute a key's value (and not the key itself) is stored in the lookup table, thus reducing CPU cache storage requirements. 
> 
> Extended Stats (Latency and Bit Rate Statistics): Enhance the Extended NIC Stats (Xstats) implementation to support the collection and reporting of latency and bit rate measurements. Latency statistics will include min, max and average latency, and jitter. Bit rate statistics will include peak and average bit rate aggregated over a user-defined time period. This will be implemented for IXGBE and I40E.
> 
> Run-Time Configuration of Packet Type (PTYPE) for I40E: At the moment all packet types in DPDK are statically defined. This makes impossible to add new values without first defining them statically and then recompiling DPDK. The ability to configure packet types at run time will be added for I40E.
> 
> Packet Distributor Enhancements: Enhancements will be made to the Packet Distributor library to improve performance:
> 1. Introduce burst functionality to allow batches of packets to be sent to workers.
> 2. Improve the performance of the flow/core affinity through the use of SSE/AVX instructions.
> 
> Add MACsec for IXGBE: MACsec support will be added for IXGBE. Ethdev API primitives will be added to create/delete/enable/disable SC/SA, Next_PN etc. similar to those used in Linux for the macsec_ops. Sample apps (l3fwd, testpmd, etc.) will be updated to support MACsec for the IXGBE. 
> 
> Enhance AESNI_GCM PMD: The current AESNI_GCM PMD is limited to AES-128 and does not support other features such as "any AAD length value". It will be updated to use a newer GCM implementation supporting AES128/192/256 and other features.
> 
> Create Crypto Performance Test App: A new app, similar to testpmd, will be created to allow crypto performance to be tested using any crypto PMD and any supported crypto algorithm.
> 
> Enable Cipher-Only and Hash-Only Support in AESNI_MB PMD: Support will be added for cipher-only and hash-only operations in the AESNI_MB PMD.
> 
> Support Chained Mbufs in Cryptodev: Currently, an application using the cryptodev API needs to reserve a continuous block of memory for mbufs. Support will be added for chaining of mbufs in both the QAT and SW PMDs supported by cryptodev.
> 
> Optimize Vhost-User Performance for Large Packets: A new memory copy function optimized for core-to-core memory copy which will be added. This will be beneficial for virtualization cases involving large packets, but it can be used for other core-to-core cases as well.
> 
> Support New Device Types in Vhost-User: Support will be added to vhost-user for new device types including vhost-scsi and vhost-blk.
> 
> Interrupt Mode Support in Virtio PMD: Support for interrupt mode will be added to the virtio PMD.
> 
> Virtio-User as an Alternative Exception Path: Investigate the use of virtio-user and vhost-net as an alternative exception path to KNI that does not require out of tree drivers. This work is still at an experimental stage, so it may not be included in 17.02.
> 
> 
> > -----Original Message-----
> > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of O'Driscoll, Tim
> > Sent: Wednesday, August 31, 2016 11:32 AM
> > To: dev at dpdk.org
> > Subject: [dpdk-dev] 17.02 Roadmap
> > 
> > Below are the features that we're planning to submit for the 17.02
> > release. We'll submit a patch to update the roadmap page with this info.
> > 
> > Some things will obviously change during planning/development, so we'll
> > provide a more detailed update in late September/early October. After
> > that, things should hopefully be relatively stable.
> > 
> > It would be good if others are also willing to share their plans so that
> > we can build up a complete picture of what's planned for 17.02 and make
> > sure there's no duplication.
> > 
> > 
> > Consistent Filter API phase 2: Extend support for the Consistent Filter
> > API that will be first implemented in 16.11 to IGB and FM10K.
> > 
> > Elastic Flow Distributor: The Elastic Flow Distributor (EFD) is a flow-
> > based load balancing library which scales linearly for both lookup and
> > insert with the number of threads or cores.  EFD lookup uses a "perfect
> > hashing" scheme where only the information needed to compute a key's
> > value (and not the key itself) is stored in the lookup table, thus
> > reducing CPU cache storage requirements.
> > 
> > Cryptodev: Additional Software Algorithms:
> > - Optimize the AES-GCM software PMD.
> > - Enhance the Intel(r) AES-NI MB PMD to add support for cipher-only and
> > authentication-only operations. Add support for AES_CBC_MAC,
> > AES_CMAC_128, AES_GMAC_128.
> > - Add software support for: 3DES_ECB_128/192, AES_ECB_128/192/256,
> > AES_F8, AES_XTS, ARC4.
> > 
> > Run-Time Configuration of Flow Type (PCTYPE) and Packet Type (PTYPE) for
> > I40E: At the moment all flow types and packet types in DPDK are
> > statically defined. This makes impossible to add new values without
> > first defining them statically and then recompiling DPDK. The ability to
> > configure flow types and packet types at run time will be added for
> > I40E.
> > 
> > Extended Stats Latency and Bit Rate Statistics: Enhance the Extended NIC
> > Stats (Xstats) implementation to support the collection and reporting of
> > latency and bit rate measurements. Latency statistics will include min,
> > max and average latency, and jitter. Bit rate statistics will include
> > peak and average bit rate aggregated over a user-defined time period.
> > This will be implemented for IXGBE and I40E.
> > 
> > Hardware QoS for IXGBE and I40E: Implement support for Hardware QoS for
> > IXGBE and I40E. This involves using DCB so that a PF or VF can receive
> > packets for each of the Traffic Classes (TCs) based on the User Priority
> > field (in the VLAN header). Bandwidth on transmit for each TC is
> > programmable.  
> 

It seems like a lot of these feature are focused too narrowly on exposing
features that exist on specific Intel hardware. The concept of a general
purpose Dataplane Development Kit is that applications can be written that
have a generic API (like any operating system) that will run on a wide
variety of hardware.  This concept seems to getting lost as the DPDK is
becoming more of a platform for exposing what ever cool hardware features
exist.

I would propose that no new feature be allowed in the DPDK unless it
can be supported on all device types. Yes that means you have to build
and test software emulation layers for all other devices. The current
model is more of a hardware test bed.



More information about the dev mailing list