Now that the 18.05 release is complete, we need to update the roadmap for
18.08. The features that we plan to contribute are below. We'll submit a patch
to update the roadmap page with this info.
Power Management: Turbo Core Thread Pinning - An API will be created to
distinguish between regular cores and turbo cores. This will allow turbo cores
to be used for tasks like packet distribution, with regular cores being used as
worker cores.
Power Management: Traffic Pattern Aware Power Control - When a core is polling
there's no easy way to determine how busy it actually is. This feature will
provide a means for an application to determine how much work a core is
actually performing, and to dynamically adjust power management based on that.
Power Management: 100% Busy Polling - This is similar to the previous item, but
will provide a means of detecting traffic load and managing power that is
transparent to the application.
Failure Handler for PCIe Hardware Hotplug - Phase 1 of device hotplug (enabling
a device event monitoring framework) was added in 18.05. This will be extended
by adding a failure handler which will provide a mechanism to handle any
accesses to the device from the data path until such time as the removal is
complete.
Virtio IN_ORDER Support - A new feature (IN_ORDER) has been added to the virtio
spec, so that the performance can be improved when the requirement is met and
assumptions can be made on ring manipulation. Support for this will be added to
DPDK.
Allow Setup/Reconfiguration/Tear Down of Queues at Run Time - Currently, to
configure a DPDK ethdev, the application specifies how many Tx and Rx queues to
include prior to starting the device. This feature introduces a more dynamic
approach where the application can also setup/reconfigure/tear down queues
after the device has been started (on NICs where this is supported in hardware).
SoftNIC Restructuring - The SoftNIC will be modified to use the Packet
Framework, which will make it more flexible and easier to add new functionality
in future.
SoftNIC Support for NAT - Support for Network Address Translation (NAT44 &
NAT66) was added to the Packet Framework in 18.05. This support will be added
to the SoftNIC.
Virtual Device Hotplug - This will allow a DPDK primary process to create or
remove a virtual device and have this change mirrored in an already-started
secondary process by providing a framework to notify secondary processes when
virtual devices are added or removed.
Intel(r) QuickAssist Technology Compression PMD - A new compression API was
added in 18.05. Hardware acceleration of compression via an Intel(r)
QuickAssist Technology PMD will be added.
Vhost-User Extension to Improve vDPA - This will improve vHost Data Path
Acceleration (vDPA) performance by extending the vhost-user protocol to allow
the vhost-user backend to register memory-based host notifiers to QEMU. This
requires changes to both DPDK and QEMU.
Unified Packet Fragmentation - There are currently two separate libraries for
splitting large packets into smaller ones - IP Fragmentation for UDP packets
and GSO for other packet types. This feature will add support for UDP
fragmentation (using the IP Fragmentation library) to the GSO library, thus
enabling applications to use a unified API to split all types of large packets.
3DES Support in AESNI_MB PMD - Support for 3DES will be added to the AESNI_MB
PMD.
ISAL Compression PMD Enhancements - Support for Scatter Gather List (SGL) and
other enhancements will be added to the ISAL (Intel(r) Intelligent Storage
Acceleration Library) compression PMD.
Complete Intel PMD Support for New Descriptor Status APIs - Remaining Intel
PMDs (E1000 VF and FM10K PF/VF) will be updated to support the new descriptor
status APIs (rte_eth_rx_descriptor_status and rte_eth_tx_descriptor_status).