summaryrefslogtreecommitdiff
path: root/docs/vpp/requirements.md
blob: db53058a82064f12789c6d1e575b43a9a28454bb (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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
---
lastproofread: '2026-02-16'
---

(vpp-requirements)=

```{include} /_include/need_improvement.txt
```


# VPP Dataplane Requirements

VPP Dataplane requires specific hardware. Ensure your system meets these
prerequisites before enabling VPP:

- **Deployment Platform**

  VPP Dataplane is available on both bare-metal, on-premise virtualized, and
  cloud deployment platforms.

- **CPU Requirements**

  Regardless of the platform, VPP Dataplane requires a CPU with:

  - SSE4.2 support (available on most modern Intel and AMD CPUs).
  - At least 4 physical CPU cores for a minimum configuration (more cores
    recommended for higher throughput).

  :::{important}
  **Physical Cores vs Logical Cores**

  VPP Dataplane requires 4 *physical* CPU cores, not logical cores.
  Systems with Simultaneous Multithreading (SMT) or Hyper-Threading (HT)
  present each physical core as 2 logical cores.

  Cloud providers often display logical cores as "cores" or "vCPUs".
  For example, a cloud instance showing "4 cores" may have only 2 physical
  cores with SMT/HT enabled. Always verify the actual physical core count
  in your cloud provider's documentation.
  :::

  For virtualized environments, ensure CPU features are passed through to the
  VM and that sufficient physical cores are allocated.

- **Memory Requirements**

  Memory significantly affects VPP stability. Insufficient RAM can cause
  initialization failures or prevent the dataplane from starting.

  - Minimum: 8 GB RAM. VyOS will not start the VPP Dataplane if less than 8 GB
    is available.
  - Recommended: 16 GB or more (especially for high throughput, many interfaces,
    or large routing tables).

- **Kernel Configuration**

  Besides the hardware itself, VPP needs hugepages and isolated CPU cores.
  Both are configured under `system option kernel` and only take effect after
  a reboot, while VPP validates them against the *running* kernel.

  :::{important}
  The kernel options and the VPP configuration cannot be applied in the same
  commit. Configure them under `system option kernel` first, `commit`, `save`
  and reboot, and only then configure VPP.
  :::

  :::{seealso}
  {ref}`VyOS Configuration for VPP <vpp_config_system>` — hugepages, CPU
  isolation and kernel tuning, with a worked example of both steps.
  :::

- **Network Interface Cards (NICs)**

  :::{warning}
  VyOS supports only specific NICs for the VPP dataplane. Using unsupported
  hardware may cause activation failures, initialization errors, crashes,
  or degraded performance.
  :::

  When enabling VPP, VyOS checks detected network interfaces against a list
  of validated NICs. Validation is based on the **PCI ID** of the device or
  the **kernel driver** used by the interface.

  Supported NICs:

  :::{list-table}
  :widths: 15 18 40 35
  :header-rows: 1

  * - **Filter Type**
    - **Filter Value**
    - **NIC Name/Description**
    - **Platform Where NIC Can Be Found**
  * - PCI ID
    - 15b3:1019
    - Mellanox Technologies MT28800 Family
      [ConnectX-5 Ex]
    - Bare-metal
  * - PCI ID
    - 15b3:101d
    - Mellanox Technologies MT2892 Family
      [ConnectX-6 Dx]
    - Bare-metal
  * - PCI ID
    - 15b3:101e
    - Mellanox Technologies ConnectX Family
      mlx5Gen Virtual Function
    - Oracle Cloud
  * - PCI ID
    - 8086:1592
    - Intel Corporation Ethernet Controller
      E810-C for QSFP
    - Bare-metal
  * - PCI ID
    - 1ae0:0042
    - Google, Inc. Compute Engine Virtual
      Ethernet [gVNIC]
    - Google Cloud
  * - PCI ID
    - 1af4:1000
    - Red Hat, Inc. Virtio network device
      (legacy ID)
    - KVM-based hypervisors, including with
      Open vSwitch; Google Cloud
  * - PCI ID
    - 1af4:1041
    - Red Hat, Inc. Virtio network device
      (modern ID)
    - KVM-based hypervisors, including with
      Open vSwitch; Google Cloud
  * - PCI ID
    - 1d0f:ec20
    - Amazon.com, Inc. Elastic Network
      Adapter (ENA)
    - AWS
  * - Kernel Driver
    - hv_netvsc
    - Microsoft Hyper-V network interface
      card
    - Microsoft Azure
  :::

  If no supported NIC is detected, VPP activation will be rejected.

  In testing or advanced deployments, unsupported hardware can be explicitly
  allowed in the configuration:

  ```{cfgcmd} set vpp settings allow-unsupported-nics
  ```

  :::{note}
  This option is a single global switch, not a per-device one: it bypasses
  the hardware validation check for every interface attached to VPP, not
  only for the one that needed it, and for interfaces attached later as
  well. Stability and performance are not guaranteed when using unsupported
  NICs or drivers.
  :::