Professional Documents
Culture Documents
Outline
Container-based VNF, why DPDK?
Future work
Virtual Network
Function
Virtual machine,
Container
Kernel
/VMM
CPU
VF
driver
PF
driver
core
core
core
Kernel
/VMM
PF
VF
Slicing
vSwitch
core
core
core
VF
I/O
Embedded Switch
NIC
driver
core
CPU
I/O
vNIC
vNIC
VF
driver
NIC
Aggregation
core
VNFs
Benefits
Challenges
Security/Isolation
High throughput
Low latency
Jitter (deterministic)
netns
Container
Container
ETHx
ETHy
PF Driver
VF
Driver
VF
Driver
PF
VF
VF
Host Kernel
VTEP
SR-IOV in Kernel
Userland
NIC driver
Host Kernel
Container
Container
VF
VF
PF Driver
PF
VTEP
SR-IOV in Userland
Prepare VFs
Prepare hugetlbfs
Start container
$ modprobe vfio-pci
$ ./tools/dpdk_nic_bind.py -b vfio-pci 0000:81:10.0
http://developers.redhat.com/blog/2015/06/02/can-you-run-intels-data-plane-development-kit-dpdk-in-a-docker-container-yep/
/ numactl
$ pqos -e "llc:2=0x00003"
$ pqos -a "llc:2=8,9,10"
CAT
Noisy
Neighbor
Throughput
(Mpps)
LLC Occupancy
(MB)
Not Present
Present
9.8
4.5
Present
Present
15
13.75
http://www.intel.com/content/www/us/en/communications/increasing-platform-determinism-pqos-dpdk-white-paper.html
Pros:
Container
Low latency
HW-based QoS
Cons:
Virtual
Appliance
Linux
Kernel
C
C
VM kernel
Host Kernel
PF
VF
VF
VF
IPC
Virtual
Appliance
VM kernel
Performance
Bypass kernel
Smarter notification
Cache friendly
Security
Host Kernel
vSwitch
or
vRouter
Kernel
DPDK
virtio PMD
Transport:
PCI bus
or
virtio-net
MMIO or PMIO
Hypervisor
Device Emulation
vhost-user adapter
vhost
IPC based
Transport bus and device
emulation is no longer
used.
VM
virtio
PV based
virtio device is emulated
in QEMU
virtio can use various
different bus (PCI Bus,
MMIO, Channel I/O)
vSwitch
vRouter
Interrupt injection
Socket
/tmp/xx.socket
Container/App
ETHDEV
virtio PMD
virtio
PCI device
vhost
DPDK
virtio
vSwitch
virtio-user
vhost-user
adapter
Virtual device
Socket
/tmp/xx.socket
VM
Non-DPDK
memory
Container
virtio
virtio-user
GPA
BVA
LEN
FVA
BVA
LEN
GPA 0
BVA 0
Len 0
FVA 0
BVA 0
Len 0
GPA 1
BVA 1
Len 1
FVA 1
BVA 1
Len 1
Len n
FVA n
GPA n
BVA n
BVA n
Len n
Prepare hugetlbfs
Run container
$ docker run \
-v /usr/local/var/run/openvswitch/vhost-user-1:/var/run/usvhost \
-v /mnt/huge_c0/:/dev/hugepages/ \
Performance Evaluation
Latency
Throughput
process
Cores initialization
When/how
Future work
Summary
Use DPDK to accelerate container networking
Userland SR-IOV
Userland virtio_user (available in DPDK 16.07)
networking
Legal Disclaimers
No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this
document.
Intel disclaims all express and implied warranties, including without limitation, the implied warranties of
merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from
course of performance, course of dealing, or usage in trade.
This document contains information on products, services and/or processes in development. All information
provided here is subject to change without notice. Contact your Intel representative to obtain the latest
forecast, schedule, specifications and roadmaps.
Intel technologies features and benefits depend on system configuration and may require enabled
hardware, software or service activation. Performance varies depending on system configuration. No
computer system can be absolutely secure. Check with your system manufacturer or retailer or learn more
at intel.com.
2016 Intel Corporation. Intel, the Intel logo, Intel. Experience Whats Inside, and the Intel. Experience
Whats Inside logo are trademarks of Intel. Corporation in the U.S. and/or other countries.
Questions?
Cunming Liang
cunming.liang@intel.com