High-speed Software Data Plane via Vectorized Packet Processing

content_copy

What is VPP?

A software framework for high-speed networking

developer_board

What are VPP components?

  • A set of nodes
  • A set of plugins

info_outline

What does VPP provide?

User-space packet proessing via Kernel Bypass

trending_up

Acceleration techniques

I/O and Compute Batching, Multiple RX/TX queues, Zero-copy

Visualizing Vector Packet Processor

A simple Forwarding Graph

Description of the framework

VPP is a framework for building high- speed data plane functionalities in software. In a nutshell, VPP offers the flex- ibility of a modular router, retaining a programming model similar to that of Click. Additionally, it does so in a very effective way, by extending benefits brought by techniques such as batch processing to the whole packet processing path, increasing as much as possible the number of instructions per clock cycle (IPC) executed by the microprocessor. This is in contrast with existing batch-processing techniques, that are merely used to reduce interrupt pressure (as done by netmap or DPDK) or are non-systematic and pay the price of a high-level implementation (e.g., in FastClick batch processing advantages are offset by the overhead of linked- lists).