High-speed Software Data Plane via Vectorized Packet Processing
What is VPP?
A software framework for high-speed networking
What are VPP components?
- A set of nodes
- A set of plugins
What does VPP provide?
User-space packet proessing via Kernel Bypass
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).