Vector Packet Processing (VPP) introduction

The Vector Packet Processing(VPP) platform is an extensible framework that provides out-of-the-box production quality switch/router functionality.It is the open source version of Cisco's Vector Packet Processing (VPP) technology(a high performance packet-processing stack that can run on commodity CPUs). The benefits of this implementation of VPP are its high performance, proven technology, its modularity and flexibility, and rich feature set.

VPP is open source high-performance packet processing software. It leverages the Data Plane Development Kit (DPDK) to take advantage of fast I/O. DPDK provides fast packet processing libraries and user space drivers. It receives and send packets with a minimum number of CPU cycles by bypassing the kernel and using a user poll mode driver. Details on how to configure DPDK can be found in the DPDK Documentation. One of the benefits of this implementation of VPP is its high performance on relatively low-power computing. 

This high level of performance is based on the following highlights:
  •  High-performance user-space network stack for commodity hardware
  • The same code for host, VMs, Linux containers
  • Integrated vhost-user virtio backend for high speed VM-to-VM connectivity
  • L2 and L3 functionality, multiple encapsulations
  • Leverages best-of-breed open source driver technology: DPDK
  • Extensible by use of plugins
  • Control-plane / orchestration-plane via standards-based APIs
ref:

Vector Packet Processing(VPP) -
  1. https://fd.io/technology/
  2. https://wiki.fd.io/view/VPP/What_is_VPP%3F
  3. https://buildmedia.readthedocs.org/media/pdf/fdio-vpp/latest/fdio-vpp.pdf
  4. https://object-storage-ca-ymq-1.vexxhost.net/swift/v1/6e4619c416ff4bd19e1c087f27a43eea/www-assets-prod/presentation-media/VPP-Barcelona.pdf
Data Plane Development Kit (DPDK) overview -
  1. https://www.linuxjournal.com/content/userspace-networking-dpdk
  2. https://pdfs.semanticscholar.org/e6d9/e0b89795005d7d5d4b0464bf7271ddd02ac0.pdf
  3. https://doc.dpdk.org/guides/prog_guide/overview.html
  4. https://blog.selectel.com/introduction-dpdk-architecture-principles/
Build a Fast Network Stack with Vector Packet Processing (VPP) on an Intel® Architecture Server - https://software.intel.com/en-us/articles/build-a-fast-network-stack-with-vpp-on-an-intel-architecture-server


PVPP(Programmable Vector Packet Processing) - https://web.stanford.edu/~yo2seol/static/talks/pvpp-cisco.pdf