As we're nearing the completion of the 16.04 release, I'd like to let the 
community know our plans for 16.07. 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 
targeted for 16.07.

These are the features that we're planning to submit:

Vhost/Virtio Performance Loopback Utility: A tool will be provided which will 
allow virtio/vhost performance testing without the need for NIC traffic.

Virtio Code Refactoring for Rx/TX Split: The Rx and Tx queues will be split as 
they have different information to maintain apart from the common vring. Other 
cleanups will be made to make the queues more friendly for optimization.

Virtio Descriptor Index Update: The virtio descriptor index will be optimized 
for cache2cache transfer in the virtio PMD. The performance increase is 
expected to be below 10%.

Virtio in Containers: Support will be added for virtio in containers (see 
http://dpdk.org/ml/archives/dev/2016-February/032786.html). Multi-queue support 
will also be added.

I40e NSH: This includes: 1. Recognize the Network Services Header packet type; 
2. Direct traffic to queues based on service path header and service index 
(dependent on firmware change so may not make 16.07); 3. Checksum offload.

I40e Floating VEB: Deferred from 16.04. See 
http://dpdk.org/ml/archives/dev/2016-March/036470.html for details.

Automatic VF Reset From PF (i40e/ixgbe): Currently, when a PF notifies a VF 
that a reset is required, DPDK just reports this event to the application, 
which then needs to restart the VF port. A more user-friendly mechanism will be 
implemented where DPDK will reset the VF port directly. The application will 
still be notified, but will not need to handle the reset of the VF port.

Software Implementation of the KASUMI Algorithm: Under the cryptodev API, a 
software implementation of the KASUMI algorithm will be supported. KASUMI is 
widely used in mobile communications systems.

Bit-Level Support for SNOW 3G: Support for the SNOW 3G algorithm is being added 
in the 16.04 release. In 16.07, this will be enhanced so that offsets and 
lengths can be specified in bits instead of bytes (so, you could encrypt 50 
bits of a stream starting from the 5th bit for example).

IPsec Sample App Enhancements: Support for IPv6 and Transport Mode will be 
added to the IPsec sample application that was submitted in 16.04.

XStats Enhancements: Improve the extended NIC stats API to use id value pairs 
instead of string value pairs. Remap stats registers to use standard interface 
MIB naming and sizing.

Keep-Alive Enhancements: Improve DPDK keep-alive to use the DPDK 
alarm/interrupt API instead of using callbacks.

Live Migration for SRIOV: Support for live migration for vhost-user is being 
added to 16.04. This will be further enhanced to support live migration for 
SR-IOV by using link bonding to bond an SRIOV interface with a virtio interface.

IP Pipeline Enhancements: This includes: 1. Configure the MAC address in the 
routing pipeline; 2. Enable RSS per network interface through the configuration 
file; 3. Streamline the CLI code of the IP pipeline application.

Packet Capture Framework: In 16.04, there was lots of discussion on 
requirements for tcpdump support in DPDK (see 
http://dpdk.org/ml/archives/dev/2016-March/035592.html). For 16.07, we plan to 
submit a packet capture framework which will support hooks for filtering 
capabilities such as BPF. Our specific use case for this is for low rate packet 
capture for debug purposes. It should be possible for others to extend the 
framework to support high rate packet capture if they require that capability.

External Mempool Manager: This was originally submitted for 16.04 but had to be 
deferred due to ABI changes. See 
http://dpdk.org/ml/archives/dev/2016-March/035107.html for details.


In addition, there are some features that we're working on now but which we 
know won't make 16.07, either because time is too tight or because of external 
dependencies. These include:

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.


Tim

Reply via email to