[dpdk-dev] 18.02 Intel Roadmap

O'Driscoll, Tim tim.odriscoll at intel.com
Fri Nov 10 10:04:52 CET 2017


With the 17.11 release almost complete, it's time to start thinking about 18.02. These are the features that we plan to contribute:

Add Classification and Metering to SoftNIC PMD: The SoftNIC PMD provides software equivalency for Ethernet device (ethdev) features. Currently, only the Traffic Management (rte_tm) API is supported. Support will be added for flow classification (rte_flow API) and QoS metering & policing (rte_mtr API).

Port Representor: A Port Representor PMD will be created which will provide a logical representation of any port, either physical or virtual. This logical port provides a mechanism for control and monitoring. The primary purpose of port representors in DPDK is to support the configuration, management and monitoring of virtual functions whose physical function is also bound to a DPDK control plane application.

Baseband Device (BBDev) API and Turbo Encoding/Decoding: A Baseband Device (BBDev) API will be created to support wireless baseband accelerators. The initial accelerator which will be supported will be for turbo encoding/decoding (used for forward error correction).

Eventdev OPDL PMD: A new PMD for the Optimized Packet Distribution Library (OPDL) will be added to the eventdev API. OPDL provides a lockless, ring-based architecture that is suitable for certain types of stateless packet processing pipelines.

PCIe Hardware Hotplug: This will allow users to plug a NIC in/out during runtime, and have that event handled by DPDK.

AVF PMD: The Adaptive Virtual Function (AVF) specification provides a consistent interface to VFs for future generations of Intel NICs. An AVF PMD will be created to support future devices which comply with this specification.

I40E Support for GTP-U IPv6: Support for GTP-U with an IPv4 payload was added in 17.11. This will be enhanced to support an IPv6 payload.

I40E MAC Loopback: MAC loopback (Rx -> MAC loopback -> Tx) will be supported on I40E.

I40E Performance Improvement: Performance of the I40E PMD will be increased through improved use of vector instructions.

GRO VxLAN Support: Generic Receive Offload (GRO) is a popular software technique to reduce per-packet overhead for applications by aggregating small packets into large ones. Currently, DPDK GRO only supports TCP/IPv4 packets. GRO support for VxLAN packets that contain outer IPv4 and inner TCP/IPv4 headers will be added.

Set VF Queue Number at Run Time: Provides the ability to set the maximum number of queues for a VF at run time instead of at compile time.

Support Virtual Devices in Secondary Process: Support will be added for running virtual devices in secondary processes. See the patch set for further details (http://dpdk.org/ml/archives/dev/2017-August/073532.html).

Virtio Interrupt Coalescence: The Virtio spec has two methods to implement interrupt/notification suppression. If the VIRTIO_F_EVENT_IDX feature bit is not negotiated, the flags field in the available ring offers a crude mechanism for the driver to inform the device that it doesn't want interrupts when buffers are used. Otherwise used_event is a more performant alternative where the driver specifies how far the device can progress before interrupting. The former has been done in DPDK, the latter will be supported here.

Support Virtio Features in Vhost Lib for Live Migration Between DPDK vhost-user and Kernel vhost-net: DPDK vhost-user backend needs to support the default negotiated feature set in Kernel vhost-net to fix the gap for live migration. These features will be supported: VIRTIO_NET_F_GSO, VIRTIO_NET_F_GUEST_UFO, VIRTIO_NET_F_HOST_UFO, VIRTIO_NET_F_GUEST_ECN, VIRTIO_NET_F_HOST_ECN.

Support Guest Announce in Virtio PMD for Live Migration: Guest Announce feature enables guest driver to send RARP packets when live migration is done. Supporting it enables wider use scenarios for the virtio PMD.

Support AES_CCM in the AESNI_MB PMD: The AESNI_MB PMD will be enhanced to support AES_CCM.

DPDK Build System Redesign: The build system will be updated to use meson and ninja, as discussed during the DPDK Summit Userspace event. The existing build system will be retained for backwards compatibility.


In addition, we plan to issue the following RFCs in the 18.02 timeframe in order to get early feedback from the community:

Userspace eBPF: A userspace implementation of eBPF, which would provide the ability to execute BPF code within DPDK.

Support RSS in rte_flow: The rte_flow API is defined to include RSS but so far RSS hasn't been supported.

FPGA Bus Driver: A bus driver to discover and probe PCI devices.

vHost Data Path Acceleration: vHost Data Path Acceleration (vDPA) is a software framework to support heterogeneous Virtio accelerations.

Virtio Crypto: The vhost-crypto driver will act as a translator between virtio-crypto requests and the dpdk cryptodev crypto operations. The driver will dequeue from vrings and reassemble to cryptodev operations and then enqueue them to target PMD in bursts, and then dequeue bursts from PMD and assemble them to virtio-crypto responses and push to vring.


More information about the dev mailing list