We were a little late doing this for 16.07, so we're going to try and 
communicate our roadmap for future releases earlier. Our aim is to do this 6 
months before a release. Some things will obviously change during 
planning/development, so we'll provide an update 4 months before the release. 
After that, things should hopefully be relatively stable.

Below are the features that we're planning to submit for 16.11. 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 16.11.


Cryptodev Scheduler & Packet Reordering:
Add a scheduler to cryptodev which will allow hardware and software 
acceleration to be used on the same core. If both are available, the scheduler 
will determine whether to use hardware or software acceleration based on packet 
size and other factors (TBD). Support packet reordering in cryptodev so that 
packet order is maintained when hardware and software acceleration are combined.

Cryptodev Support for Hardware Acceleration (via Intel(r) QuickAssist 
Technology) for Additional Algorithms:
Add support for all algorithms which are supported by Intel(r) QuickAssist 
Technology but are not currently supported in DPDK. This includes: 
AES_CTR_128/192/256, MD5, MD5_HMAC, SHA1, SHA224, SHA224_HMAC, SHA256, SHA384, 
SHA384_HMAC, SHA512, AES-XTS, KASUMI.

Cryptodev Support for Software Acceleration for Additional Algorithms:
For every algorithm that we support in hardware, provide a software 
implementation. This means that an application can always rely on the cryptodev 
API to provide the requested service, even if hardware acceleration is not 
available.

Cryptodev Performance Optimization:
Analyze the performance of the cryptodev API, identify bottlenecks, and 
optimize where required.

Generic Classification API:
Create a new API to provide generic filtering capabilities that works across 
NICs. This will include a software implementation which can be used in cases 
where NICs that don't support all the capabilities of the API. An RFC will be 
submitted in the 16.07 timeframe. We're targeting the implementation at the 
16.11 release, but this is a complex change and there may be significant 
community interest/feedback on it, so it may be deferred until a later release.

Enhanced Packet Distributor:
Optimize performance of the Packet Distributor library by using vector 
instructions and other techniques.

QEMU vHost Back-End Reconnect:
Currently, if a vswitch is connected to VMs via vhost-user and the vswitch is 
restarted, then when it comes back up again it cannot reconnect to the existing 
VMs. To address this, both QEMU and vhost-user need to support client mode 
(currently only server mode is supported), which implements reconnection 
messages that allow the vswitch to reconnect to the VMs. Changes are required 
in QEMU as well as in DPDK, so this change will need to be coordinated with the 
QEMU community.

Delay Packet Copy in vHost-User Dequeue:
It may be possible to increase vhost-user performance by delaying the packet 
copy until a point where we know for certain whether the copy is required or 
not. This would avoid copying the packet in cases where it is not definitely 
required. Further investigation is required to determine how much of a 
performance gain can be achieved.

Cuckoo Hash Acceleration using TSX:
Improve performance of Cuckoo Hash using Transactional Synchronization 
Extensions (TSX).

Reply via email to