summaryrefslogtreecommitdiff
path: root/docs/_rst_legacy/vpp/rst-description.rst
blob: 8481bfe914d47cb51bca118ad71a84d728e27c1c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
:lastproofread: 2026-02-16

.. _vpp_description:

.. include:: /_include/need_improvement.txt

#########################
VPP Dataplane Description
#########################

What is VPP in VyOS?
====================

VyOS supports two packet forwarding dataplanes:

- **Linux kernel dataplane** (traditional)
- **Vector Packet Processor (VPP) dataplane** (optional)

VPP is a high-performance user space packet processor that improves
throughput for demanding network workloads.

Key Benefits
============

**Performance Improvement**

VPP uses vector-based packet processing instead of one-by-one handling,
delivering:

- **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 supports both dataplanes simultaneously, providing:

- **Cross-dataplane forwarding**: Traffic can flow between the VPP dataplane
  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

Packet Processing Integration
=============================

VPP Dataplane integration minimizes configuration changes. Features in the
kernel dataplane continue to operate there. VPP Dataplane only handles packet
forwarding for interfaces explicitly assigned to it.

Traffic flow examples between VPP and kernel dataplane interfaces:

.. image:: /_static/images/vpp/vyos_vpp_integration.svg
   :align: center

Green path
""""""""""

Traffic between two VPP interfaces stays within VPP for maximum performance
and can use only VPP dataplane features.

Blue path
"""""""""

Traffic between a VPP interface and a kernel interface is processed by both
dataplanes and can use features from both.

**Note:** This path has slower performance than pure VPP or pure kernel
forwarding because packets traverse both dataplanes.

Red path
""""""""

Traffic between two kernel interfaces stays within the kernel dataplane without
VPP acceleration. This is the traditional VyOS dataplane operation.


CLI Integration
===============

VyOS CLI commands work with both dataplanes. Use the same commands to
configure interfaces, routing, and other features regardless of the dataplane.