Data Path Development Kit (DPDK)

Packet handling in Kernel has performance overheads due to interrupt handling in Kernel, data copy between Kernel and user space, system calls, and context switching. The Data Plane Development Kit (DPDK) provides high-performance packet processing libraries and user-space drivers for accelerated user-space data paths. The DPDK uses a run-to-completion model for enhanced network packet throughput and performance with much lower latency. It employs methods to avoid polling threads instead of interrupt processing, huge pages, multi-core processing, processor affinity, no copy from Kernel, lockless ring design with readers, and writers running on separate cores. Refer http://dpdk.org/.

Open vSwitch with DPDK

Open vSwitch can use the DPDK library to operate entirely in the user space as separate threads of the vswitch daemon (vswitchd).

Open vSwitch with DPDK

Figure 8: OVS-DPDK components

Using DPDK with OVS provides a performance boost by optimizing hotspot areas inside OVS using the DPDK packet processing libraries.

DPDK bypasses the Linux network stack and maps hardware registers to user space.

DPDK provides para-virtualized virtio Poll Mode Drivers (PMD) to access the RX and TX descriptors directly without interrupts to efficiently receive, process, and deliver packets in the user's application. Data traffic from a virtual machine is transferred to the OVS-DPDK data path and to the physical port. DPDK supports VSHMEM and user space vHost methods to communicate between guests and hosts. The vhost library implements a user space virtio net server allowing user application to perform packet input/output with the VM virtio net device directly. Implementation of DPDK-optimized vHost guest interface(s) allows for high-performance VM-to-VM or PHY-VM-PHY type use cases. The DPDK IVSHMEM library facilitates fast zero-copy data sharing among virtual machines (host-to-guest or guest-to-guest) by means of QEMU's IVSHMEM mechanism. Refer to: https://github.com/01org/dpdk-ovs/blob/development/docs/00_Overview.md.

Performance tests on OVS with DPDK indicate significant improvements in packet processing over the native OVS configuration.

Open vSwitch with DPDK requires special operating system packages. For Ubuntu these DPDK package installation details are available at https://help.ubuntu.com/16.04/serverguide/DPDK.html.

The steps for installing and using OVS with DPDK are available at https://github.com/openvswitch/ovs/blob/master/INSTALL.DPDK-ADVANCED.md.

Neutron with Open vSwitch + DPDK

Neutron supports using Open vSwitch + DPDK vHost-user interfaces directly in the OVS ML2 driver and agent. The OVS ML2 driver will use the vHost-user VIF type when the datapath_type configuration is set to netdev. It will publish the required binding details to use OVS+DPDK and vHost-user sockets.

Refer to: http://docs.openstack.org/developer/neutron/devref/ovs_vhostuser.html.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.226.172.130