Call for Contributions

This section needs improvements, examples and explanations.

Please take a look at the Contributing Guide for our Write Documentation.

VPP Dataplane Description

What is VPP in VyOS?

VyOS supports two packet forwarding dataplanes: the traditional Linux kernel dataplane and the optional Vector Packet Processor (VPP) dataplane. VPP is a high-performance userspace packet processing engine that can significantly improve throughput for demanding network workloads.

Key Benefits

Performance Improvement

VPP processes packets in a special way, using vectors, rather than one-by-one, delivering:

  • Much higher throughput compared to kernel forwarding

  • Lower and more consistent latency for time-sensitive applications

  • Linear scaling with additional CPU cores

VyOS Hybrid Integration

VyOS provides unique flexibility by supporting both dataplanes simultaneously:

  • Cross-dataplane forwarding: Traffic can flow between VPP and kernel interfaces seamlessly

  • Transparent configuration: Same CLI commands and most services work regardless of dataplane

  • Gradual migration: Enable VPP on high-traffic interfaces while keeping others on kernel

When to Use VPP

Consider VPP if you have:

  • High-throughput requirements

  • Latency-sensitive applications requiring consistent performance

Stay with kernel dataplane if you have:

  • Low to moderate traffic volumes

  • No latency-sensitive workloads

  • Applications requiring specific features not supported by VPP Dataplane

Packets Processing Integration Details

VPP Dataplane integration is done in the way that minimizes configuration changes. Features that exist in kernel dataplane are not removed but continue to operate in kernel dataplane. VPP Dataplane only takes over packet forwarding for interfaces explicitly assigned to it.

Examples of traffic flow between interfaces connected to VPP and kernel dataplanes:

../_images/vyos_vpp_integration.svg

Green path

Traffic between two VPP interfaces is processed entirely within VPP for maximum performance. Packets that follow this path can use only features available inside VPP dataplane.

Blue path

Traffic between a VPP interface and a kernel interface is processed by both dataplanes, with VPP handling the VPP side and the kernel handling the kernel side. Packets that follow this path can use features available in both VPP and kernel dataplanes, at the same time.

Note: Because packets must follow both dataplanes, performance will be slower than with pure VPP or pure kernel forwarding.

Red path

Traffic between two kernel interfaces is processed entirely within the kernel dataplane. Packets that follow this path can use only features available inside kernel dataplane, and lack VPP acceleration.

This is the traditional VyOS dataplane operation.

CLI Integration

VyOS CLI commands are designed to work seamlessly with both dataplanes. When configuring interfaces, routing, and other features, the same commands can be used regardless of the underlying dataplane.