summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorQuill <69414602+teslazonda@users.noreply.github.com>2026-03-05 19:12:18 +0900
committerGitHub <noreply@github.com>2026-03-05 10:12:18 +0000
commitfda831d4cac50a6eb9142303a54ce46fe3a559d0 (patch)
tree648ad810725d61a6cd742e5f74b4106e1d62d0f8 /docs
parentdfce431e2d3af56416e1f823aa98cf54e4a22e2f (diff)
downloadvyos-documentation-fda831d4cac50a6eb9142303a54ce46fe3a559d0.tar.gz
vyos-documentation-fda831d4cac50a6eb9142303a54ce46fe3a559d0.zip
doc: proofread docs in /vpp/configuration/dataplane directory (#1777)
* Initial proofread * buffers.rst * cpu.rst * index.rst * interface.rst * proofread ipsec.rst * Proofread ipv6, l2learn, lcp * Proofread remaining files in /dataplane * Fix line length lint errors
Diffstat (limited to 'docs')
-rw-r--r--docs/vpp/configuration/dataplane/buffers.rst62
-rw-r--r--docs/vpp/configuration/dataplane/cpu.rst36
-rw-r--r--docs/vpp/configuration/dataplane/index.rst11
-rw-r--r--docs/vpp/configuration/dataplane/interface.rst59
-rw-r--r--docs/vpp/configuration/dataplane/ipsec.rst43
-rw-r--r--docs/vpp/configuration/dataplane/ipv6.rst29
-rw-r--r--docs/vpp/configuration/dataplane/l2learn.rst22
-rw-r--r--docs/vpp/configuration/dataplane/lcp.rst35
-rw-r--r--docs/vpp/configuration/dataplane/logging.rst35
-rw-r--r--docs/vpp/configuration/dataplane/memory.rst85
-rw-r--r--docs/vpp/configuration/dataplane/system.rst88
-rw-r--r--docs/vpp/configuration/dataplane/unix.rst41
12 files changed, 383 insertions, 163 deletions
diff --git a/docs/vpp/configuration/dataplane/buffers.rst b/docs/vpp/configuration/dataplane/buffers.rst
index 76f8e849..b08eb691 100644
--- a/docs/vpp/configuration/dataplane/buffers.rst
+++ b/docs/vpp/configuration/dataplane/buffers.rst
@@ -1,4 +1,4 @@
-:lastproofread: 2025-09-04
+:lastproofread: 2026-02-23
.. _vpp_config_dataplane_buffers:
@@ -8,15 +8,21 @@
VPP Dataplane Buffers Configuration
###################################
-Buffers are essential for handling network packets efficiently, and proper configuration can enhance performance, reliability and is mandatory for VPP work.
-
-Buffers are used to temporarily store packets during processing, therefore their configuration should be in sync with NIC configuration, CPU threads, and overall system resources.
+Buffers are essential for handling network packets efficiently. Proper
+configuration enhances performance and reliability, and is mandatory for
+VPP to work. Buffers temporarily store packets during processing. Therefore,
+their configuration must be in sync with NIC configuration, CPU threads, and
+overall system resources.
.. important::
- VPP buffers are allocated from the physical memory pool (physmem). The total amount of memory available for buffer allocation is controlled by the ``physmem-max-size`` setting, while the buffer configuration parameters below control how that memory is used for buffer allocation.
+ VPP buffers are allocated from the physical memory pool (``physmem``). The
+ total amount of memory available for buffer allocation is controlled by the
+ ``physmem-max-size`` setting, while the buffer configuration parameters
+ below control how that memory is used for buffer allocation.
- See :ref:`VPP Physical Memory Configuration <vpp_config_dataplane_physmem>` for details on configuring physmem.
+ See :ref:`VPP Physical Memory Configuration <vpp_config_dataplane_physmem>`
+ for details on configuring ``physmem``.
Buffer Configuration Parameters
===============================
@@ -26,17 +32,19 @@ The following parameters can be configured for VPP buffers:
buffers-per-numa
----------------
-Number of buffers allocated per NUMA node. This setting helps in optimizing memory access patterns for multi-CPU systems.
+Number of buffers allocated per NUMA node. This setting optimizes
+memory access patterns for multi-CPU systems.
-Usually it needs to be tuned if:
+Typically, you need to tune this value if:
-- there are a lot of interfaces in the system
-- there are a lot of queues in NICs
-- there are big descriptors size configured for NICs
+- The system has many interfaces
+- NICs have many queues
+- NICs have large descriptor sizes
-The value should be set responsibly.
+Set this value carefully to balance memory usage and performance.
-.. cfgcmd:: set vpp settings resource-allocation buffers buffers-per-numa <value>
+.. cfgcmd:: set vpp settings resource-allocation buffers buffers-per-numa
+ <value>
The common approach for the calculation is to use the formula:
@@ -44,37 +52,43 @@ The common approach for the calculation is to use the formula:
buffers-per-numa = (num-rx-queues * num-rx-desc) + (num-tx-queues * num-tx-desc)
-This should be done for each NIC, and then sum the results for all NICs in the system needs to be multiplied by 2.5 and the result will be the minimum value for `buffers-per-numa`.
+Calculate this formula for each NIC and sum the results. Multiply the
+total by 2.5 to get the minimum recommended value for
+``buffers-per-numa``.
-Try to avoid setting this value too low to avoid packet drops.
+Avoid setting this value too low to prevent packet drops.
data-size
---------
-This value sets how much payload data can be stored in a single buffer allocated by VPP.
-Making it larger can reduce buffer chains for big packets, while a smaller value can save memory for environments handling mostly small packets.
+This value sets how much payload data can be stored in a single buffer
+allocated by VPP. Larger values reduce buffer chains for large packets,
+while smaller values conserve memory for environments handling mostly
+small packets.
.. cfgcmd:: set vpp settings resource-allocation buffers data-size <value>
-Optimal size depends on the typical packet size in your network. If you are not sure, use the value of biggest MTU in your network plus some overhead (e.g., 128 bytes).
+Optimal size depends on the typical packet size in your network. If
+unsure, use the largest MTU in your network plus overhead (for example,
+128 bytes).
page-size
---------
A memory pages type used for buffer allocation. Common values are 4K, 2M, or 1G.
-Use pages that are configured in system settings.
+Use page sizes configured in your system settings.
.. cfgcmd:: set vpp settings resource-allocation buffers page-size <value>
Potential Issues and Troubleshooting
====================================
-Improper buffer configuration can lead to various issues, including:
+Improper buffer configuration can lead to issues such as:
- Increased latency and packet loss
- Inefficient CPU utilization
-- Interfaces initialization failures
+- Interface initialization failures
Indicators of such issues are:
@@ -83,5 +97,7 @@ Indicators of such issues are:
To troubleshoot buffer-related issues, consider the following steps:
-- Review VPP logs for any errors related to buffer allocation (often the message may contains error `-5`).
-- Tune available buffers by adjusting the `buffers-per-numa` and `data-size` parameters.
+- Review VPP logs for errors related to buffer allocation. Look for
+ error ``-5`` messages.
+- Tune available buffers by adjusting the ``buffers-per-numa`` and
+ ``data-size`` parameters.
diff --git a/docs/vpp/configuration/dataplane/cpu.rst b/docs/vpp/configuration/dataplane/cpu.rst
index 3137072a..22158ce3 100644
--- a/docs/vpp/configuration/dataplane/cpu.rst
+++ b/docs/vpp/configuration/dataplane/cpu.rst
@@ -1,4 +1,4 @@
-:lastproofread: 2025-09-05
+:lastproofread: 2026-02-23
.. _vpp_config_dataplane_cpu:
@@ -8,15 +8,21 @@
VPP Dataplane CPU Configuration
###############################
-VPP can utilize multiple CPU cores to enhance packet processing performance. Proper CPU configuration is crucial for achieving optimal throughput and low latency.
+VPP can utilize multiple CPU cores for better packet processing
+performance. Proper CPU configuration is essential for optimal
+throughput and low latency.
-CPU assignment for VPP handled automatically. You only specify how many CPU cores VPP may use, and the system distributes them between the main thread and worker threads.
+VPP CPU assignment is handled automatically. You specify how many CPU
+cores VPP may use, and the system distributes them between the main
+thread and worker threads.
.. important::
- Please read carefully the system configuration settings page before making any changes to CPU settings: :doc:`system`.
+ Review the system configuration settings page before changing CPU
+ settings: :doc:`system`.
-If CPU settings are not configured, VPP uses a single CPU core for its main thread and does not create worker threads.
+If you don't configure CPU settings, VPP uses a single core for the
+main thread and doesn't create worker threads.
CPU Configuration Parameters
============================
@@ -30,9 +36,11 @@ This parameter defines the total number of CPU cores allocated to VPP.
The system automatically assigns cores using the following rules:
- * The first two CPU cores are always reserved for the operating system and other services.
+ * The first two CPU cores are always reserved for the operating system and
+ other services.
- * The main VPP thread is assigned to the first available core after the reserved ones.
+ * The main VPP thread is assigned to the first available core after the
+ reserved ones.
* The remaining allocated cores are used for worker threads.
@@ -46,17 +54,21 @@ For example:
* 3 cores for worker threads
-Choose a value based on available hardware resources and expected traffic load. Allocating too few cores may limit performance, while allocating too many can negatively impact other system services.
+Choose a value based on available hardware resources and expected
+traffic load. Too few cores may limit performance, while too many can
+negatively impact other system services.
Potential Issues and Troubleshooting
====================================
-Improper CPU configuration can lead to various issues, including:
+Improper CPU configuration can lead to issues such as:
-- Underperformance for both VPP (not enough cores were assigned) and kernel (too many cores were assigned to VPP)
-- Resource conflicts with other processes and services
+- VPP underperformance when not enough cores are assigned, or kernel
+ underperformance when too many cores are assigned to VPP.
+- Resource conflicts with other processes and services.
Indicators of such issues are:
- VPP or kernel forwarding performance is lower than expected
-- Slower work of system components or services, including DNS, DHCP, dynamic routing, etc.
+- Degraded performance of system components or services, such as DNS,
+ DHCP, and dynamic routing
diff --git a/docs/vpp/configuration/dataplane/index.rst b/docs/vpp/configuration/dataplane/index.rst
index 90ecc6f6..323d7588 100644
--- a/docs/vpp/configuration/dataplane/index.rst
+++ b/docs/vpp/configuration/dataplane/index.rst
@@ -1,4 +1,4 @@
-:lastproofread: 2025-09-04
+:lastproofread: 2026-02-23
.. _vpp_config_dataplane_index:
@@ -8,9 +8,14 @@
VPP Dataplane Core Configuration
################################
-This section covers the core configuration options for the VPP dataplane in VyOS. It includes settings for memory management, CPU allocation, hugepages, and other essential parameters that influence the performance and behavior of the VPP dataplane.
+This section covers the core configuration options for the VPP dataplane in
+VyOS. It includes settings for memory management, CPU allocation, hugepages,
+and other essential parameters that influence the performance and behavior
+of the VPP dataplane.
-Please review the general system configuration, before starting to configure VPP. Without proper VyOS preconditions, VPP will not start or its efficiency will be significantly degraded.
+Please review the general system configuration, before starting to configure
+VPP. Without proper VyOS preconditions, VPP will not start or its efficiency
+will be significantly degraded.
.. toctree::
:maxdepth: 1
diff --git a/docs/vpp/configuration/dataplane/interface.rst b/docs/vpp/configuration/dataplane/interface.rst
index 13e244bd..e4556021 100644
--- a/docs/vpp/configuration/dataplane/interface.rst
+++ b/docs/vpp/configuration/dataplane/interface.rst
@@ -1,4 +1,4 @@
-:lastproofread: 2025-09-04
+:lastproofread: 2026-02-23
.. _vpp_config_dataplane_interface:
@@ -8,13 +8,17 @@
VPP Dataplane Interfaces Configuration
######################################
-Only Ethernet interfaces (physical or virtual) can be connected to the VPP dataplane. Interfaces configured here act as a bridge between VPP and the outside world, allowing VPP to send and receive packets into the network.
+Only Ethernet interfaces (physical or virtual) can be connected to the
+VPP dataplane. Interfaces configured here act as a bridge between VPP
+and the outside world, allowing VPP to send and receive network
+packets.
Interface Configuration Parameters
==================================
-Interfaces connected to the VPP dataplane use the DPDK driver by default, providing high performance and low latency.
+Interfaces connected to the VPP dataplane use the DPDK driver by default,
+providing high performance and low latency.
.. cfgcmd:: set vpp settings interface <interface-name>
@@ -23,25 +27,35 @@ Some network interface cards (NICs) may not be compatible with the DPDK driver.
DPDK interface options
----------------------
-This section allows for the configuration of various DPDK-specific settings for an interface.
+This section shows how to configures DPDK-specific settings for an interface.
.. cfgcmd:: set vpp settings interface <interface-name> num-rx-queues <value>
-Specifies the number of receive queues for the interface. More queues can improve performance on multi-core systems by allowing parallel processing of incoming packets. Each queue will be assigned to a separate CPU core.
+Specifies the number of receive queues for the interface. More queues
+improve performance on multi-core systems by allowing parallel
+processing of incoming packets. Each queue is assigned to a separate
+CPU core.
.. cfgcmd:: set vpp settings interface <interface-name> num-tx-queues <value>
-Specifies the number of transmit queues for the interface. Similar to receive queues, more transmit queues can enhance performance by enabling parallel processing of outgoing packets. By default, the VPP Dataplane has one TX queue per enabled CPU worker, or a single queue if no workers are configured.
+Specifies the number of transmit queues for the interface. Similar to
+receive queues, more transmit queues improve performance by enabling
+parallel processing of outgoing packets. By default, the VPP Dataplane
+has one TX queue per enabled CPU worker, or a single queue if no
+workers are configured.
.. seealso:: :doc:`cpu`
.. cfgcmd:: set vpp settings interface <interface-name> num-rx-desc <value>
-Defines the size of each receive queue. Larger queue sizes can help accommodate bursts of incoming traffic, reducing the likelihood of packet drops during high traffic periods.
+Defines the size of each receive queue. Larger queue sizes accommodate
+bursts of incoming traffic and reduce the likelihood of packet drops
+during high traffic periods.
.. cfgcmd:: set vpp settings interface <interface-name> num-tx-desc <value>
-Defines the size of each transmit queue. Larger sizes can help manage bursts of outgoing traffic more effectively.
+Defines the size of each transmit queue. Larger sizes help manage
+bursts of outgoing traffic more effectively.
Global Interface Parameters
===========================
@@ -51,23 +65,36 @@ Global Interface Parameters
interface-rx-mode
-----------------
-The interface-rx-mode parameter defines how VPP handles incoming packets on interfaces. There are several modes available, each with its own advantages and use cases:
-
-- ``interrupt``: In this mode, VPP relies on hardware interrupts to notify it of incoming packets. This mode is suitable for low to moderate traffic loads and can help reduce CPU usage during idle periods. It is not recommended if low-latency processing is required. May not be supported by some NICs.
-- ``polling``: In polling mode, VPP continuously checks the interface for incoming packets. This mode is ideal for high-throughput scenarios where low latency is critical, as it minimizes the time packets spend waiting to be processed. However, it can lead to higher CPU usage, especially during periods of low traffic, because the polling process is always active.
-- ``adaptive``: Adaptive mode combines the benefits of both interrupt and polling modes. VPP starts in interrupt mode and switches to polling mode when the traffic load increases.
+The ``interface-rx-mode`` parameter defines how VPP handles incoming
+packets on interfaces. There are several modes available, each with its
+own advantages and use cases:
+
+- ``interrupt``: In this mode, VPP relies on hardware interrupts to
+ notify it of incoming packets. This mode suits low to moderate
+ traffic loads and reduces CPU usage during idle periods. It is not
+ recommended for low-latency processing. Some NICs may not support
+ this mode.
+- ``polling``: In polling mode, VPP continuously checks the interface
+ for incoming packets. This mode is ideal for high-throughput
+ scenarios where low latency is critical, as it minimizes packet
+ waiting time. However, it can increase CPU usage, especially during
+ low traffic periods, as the polling process is always active.
+- ``adaptive``: Adaptive mode combines the benefits of interrupt and
+ polling modes. VPP starts in interrupt mode and switches to polling
+ mode when traffic load increases.
.. cfgcmd:: set vpp settings interface-rx-mode <mode>
-The choice of rx-mode should be based on the expected traffic patterns and performance requirements of the network environment.
+Choose an rx-mode based on expected traffic patterns and performance
+requirements of your network.
Potential Issues and Troubleshooting
====================================
-Improper interface configuration can lead to various issues, including:
+Improper interface configuration can lead to issues such as:
- Failure to initialize the interface
-- Poor performance due to suboptimal driver selection or driver settings
+- Poor performance due to suboptimal driver selection or settings
Indicators of such issues are:
diff --git a/docs/vpp/configuration/dataplane/ipsec.rst b/docs/vpp/configuration/dataplane/ipsec.rst
index eab799db..31734c86 100644
--- a/docs/vpp/configuration/dataplane/ipsec.rst
+++ b/docs/vpp/configuration/dataplane/ipsec.rst
@@ -1,4 +1,4 @@
-:lastproofread: 2025-09-04
+:lastproofread: 2026-02-23
.. _vpp_config_dataplane_ipsec:
@@ -8,42 +8,58 @@
VPP IPsec Configuration
#######################
-VPP supports IPsec (Internet Protocol Security) offloading from kernel, allowing to speed-up cryptographic operations by leveraging VPP's high-performance packet processing capabilities.
+VPP supports IPsec (Internet Protocol Security) offloading from the
+kernel, which speeds up cryptographic operations by leveraging VPP's
+high-performance packet processing capabilities.
-IPSec does not require any specific configuration on VPP side. If both source and destinations of the IPsec traffic are reachable via VPP interfaces, VPP will automatically offload the IPsec processing from kernel. IPSec tunnels are configured in the VPN configuration section, see :ref:`ipsec_general`.
+IPsec does not require any specific configuration on VPP side. If both
+sources and destinations of the IPsec traffic are reachable via VPP
+interfaces, VPP will automatically offload the IPsec processing from
+the kernel. IPsec tunnels are configured in the VPN configuration
+section, see :ref:`ipsec_general`.
-IPSec Configuration Parameters
+IPsec Configuration Parameters
==============================
enable IPsec acceleration
^^^^^^^^^^^^^^^^^^^^^^^^^
-When VPP is used for offloading IPsec, it creates a virtual interface to connect to peers. The interface type is always 'ipsec', which is used for IPsec tunnels.
+When VPP is used for offloading IPsec, it creates a virtual interface to
+connect to peers. The interface type is always 'ipsec', which is used for
+IPsec tunnels.
.. cfgcmd:: set vpp settings ipsec-acceleration
-Enabling this option allows VPP to handle IPsec traffic more efficiently by offloading processing from the kernel.
+Enabling this option allows VPP to handle IPsec traffic more efficiently by
+offloading processing from the kernel.
netlink
^^^^^^^
-VPP uses netlink to receive IPSec event messages from the kernel. Proper settings of the following parameters are crucial for ensuring that VPP can process all such messages:
+VPP uses netlink to receive IPsec event messages from the kernel. Proper
+settings of the following parameters are crucial for ensuring that VPP can
+process all such messages:
.. cfgcmd:: set vpp settings lcp netlink batch-delay-ms <milliseconds>
-This parameter specifies the delay in milliseconds between processing batch netlink messages.
+This parameter specifies the delay in milliseconds between processing
+batch netlink messages.
.. cfgcmd:: set vpp settings lcp netlink batch-size <number>
-This parameter specifies the maximum number of netlink messages to process in a single batch.
+This parameter specifies the maximum number of netlink messages to
+process in a single batch.
.. cfgcmd:: set vpp settings lcp netlink rx-buffer-size <number>
-This parameter specifies the size of the receive buffer for netlink socket. If you expect to offload a lot of IPsec tunnels or get frequent and intensive rekeying, you may need to increase this value.
+This parameter specifies the size of the receive buffer for netlink
+socket. If you expect to offload many IPsec tunnels or get frequent and
+intensive rekeying, you may need to increase this value.
.. note::
- IPsec uses the same netlink parameters as LCP, so tuning them affects both LCP and IPsec processing.
+ IPsec uses the same netlink parameters as LCP, so tuning them
+ affects both LCP and IPsec processing.
Potential Issues and Troubleshooting
====================================
@@ -51,5 +67,6 @@ Potential Issues and Troubleshooting
Improper IPsec configuration can lead to various issues, including:
- Failure to offload IPsec tunnels to VPP
-- Lost IPsec event messages due to insufficient netlink buffer size or batch settings
-- IPSec states or SAs are not synchronized between kernel and VPP
+- Lost IPsec event messages due to insufficient netlink buffer size or
+ batch settings
+- IPsec states or SAs are not synchronized between kernel and VPP
diff --git a/docs/vpp/configuration/dataplane/ipv6.rst b/docs/vpp/configuration/dataplane/ipv6.rst
index 46ef4126..94f38476 100644
--- a/docs/vpp/configuration/dataplane/ipv6.rst
+++ b/docs/vpp/configuration/dataplane/ipv6.rst
@@ -1,4 +1,4 @@
-:lastproofread: 2025-09-04
+:lastproofread: 2026-02-26
.. _vpp_config_dataplane_ipv6:
@@ -8,25 +8,36 @@
VPP IPv6 Configuration
######################
-VPP allows to configure resources allocated for IPv6 traffic processing independently from IPv4. This allows to ensure that in networks without IPv6 traffic, the resources are not wasted on IPv6. But if IPv6 traffic is present - especially big routing tables - you need to allocate more resources for IPv6 processing to make dataplane stable.
+VPP lets you configure resources allocated for IPv6 traffic processing
+independently from IPv4. This helps ensure that in networks without IPv6
+traffic, resources are not wasted. If IPv6 traffic is present, especially
+with large routing tables, you must allocate additional resources for IPv6
+processing to keep the dataplane stable.
-There are two main resources that can be configured for IPv6 traffic processing:
+You can configure two main resources for IPv6 traffic processing:
.. cfgcmd:: set vpp settings resource-allocation ipv6 hash-buckets <value>
-This parameter configures the number of hash buckets used for IPv6 routing table. If you have a big IPv6 routing table, you may need to increase this value to ensure that the routing table is efficient and lookups are fast.
+This parameter configures the number of hash buckets used for IPv6
+routing. If you have a large IPv6 routing table, you may need to increase
+this value to ensure efficient routing table performance and fast lookups.
.. cfgcmd:: set vpp settings resource-allocation ipv6 heap-size <value>
-This parameter configures the size of the heap used for IPv6 forwarding table. If you have a big IPv6 routing table, you may need to increase this value to ensure that the routing table can accommodate all routes.
+This parameter configures the heap size used for IPv6 forwarding. If you
+have a large IPv6 routing table, you may need to increase this value to
+ensure the routing table can accommodate all routes.
Potential Issues and Troubleshooting
====================================
Improper IPv6 configuration can lead to various issues, including:
-- Inefficient, slow routing table lookups and traffic processing due to insufficient hash buckets
-- Crashes or instability of the dataplane due to insufficient heap size if there are a lot of IPv6 routes
-- Overall instability of the dataplane when handling IPv6 traffic
+- Inefficient, slow routing table lookups and traffic processing due to
+ insufficient hash buckets
+- Dataplane crashes or instability due to insufficient heap size when
+ handling a large number of IPv6 routes
+- Overall dataplane instability when handling IPv6 traffic
-Consider increasing configuration values if you experience issues with IPv6 traffic processing or if you have a large IPv6 routing table.
+Consider increasing configuration values if you experience issues with
+IPv6 traffic processing or if you have a large IPv6 routing table.
diff --git a/docs/vpp/configuration/dataplane/l2learn.rst b/docs/vpp/configuration/dataplane/l2learn.rst
index 06b58e39..b204c41f 100644
--- a/docs/vpp/configuration/dataplane/l2learn.rst
+++ b/docs/vpp/configuration/dataplane/l2learn.rst
@@ -1,4 +1,4 @@
-:lastproofread: 2025-09-04
+:lastproofread: 2026-02-26
.. _vpp_config_dataplane_l2learn:
@@ -8,21 +8,27 @@
VPP L2LEARN Configuration
#########################
-When VPP dataplane is connected to a L2 domain, it needs to learn MAC addresses of devices connected to the domain. And the amount of MAC addresses that can be learned is limited by default.
+When VPP dataplane connects to an L2 domain, it learns MAC addresses of
+devices in the domain. By default, the number of MAC addresses it can
+learn is limited.
-The limit can be configured using the following command:
+You can configure the limit using the following command:
.. cfgcmd:: set vpp settings resource-allocation mac-limit <value>
-This parameter configures the maximum number of MAC addresses that can be learned in the L2 domain. If you have a large number of devices, you may need to increase this limit to ensure all MAC addresses can be learned.
+This parameter sets the maximum number of MAC addresses that can be
+learned in the L2 domain. If you have many devices, you may need to
+increase this limit to ensure VPP learns all MAC addresses.
Potential Issues and Troubleshooting
====================================
Improper L2LEARN configuration can lead to various issues, including:
-- Inability to learn all MAC addresses in the L2 domain if the limit is set too low
-- Increased packet loss or latency for devices that are not learned
-- Overall instability of the dataplane when handling L2 traffic
+- MAC address learning failure in the L2 domain if the limit is set too
+ low
+- Increased packet loss or latency for devices that aren't learned
+- Overall dataplane instability when handling L2 traffic
-Consider increasing the L2LEARN limit if you experience issues with MAC address learning or if you have a large number of devices in the L2 domain.
+Consider increasing the L2LEARN limit if you experience issues with MAC
+address learning or if you have many devices in the L2 domain.
diff --git a/docs/vpp/configuration/dataplane/lcp.rst b/docs/vpp/configuration/dataplane/lcp.rst
index 785512c1..dcc09dfa 100644
--- a/docs/vpp/configuration/dataplane/lcp.rst
+++ b/docs/vpp/configuration/dataplane/lcp.rst
@@ -1,4 +1,4 @@
-:lastproofread: 2025-09-04
+:lastproofread: 2026-02-26
.. _vpp_config_dataplane_lcp:
@@ -8,19 +8,36 @@
VPP LCP Configuration
#####################
-Linux Control Plane (LCP) is one of core components of VPP that allows to offload various control plane functions to the Linux kernel. LCP provides seamless integration with other components of VyOS, allowing usage of other system components, like DHCP client, routing daemons, etc. together with VPP dataplane.
-
-VPP integration in VyOS relies heavily on LCP, building the relationship where almost all control plane functions are handled by other daemons and services and VPP is used exclusively for high-performance packet forwarding. This also reduces VPP management processing load, improving overall performance and stability of the dataplane.
-
-VyOS contains unique integration between kernel and VPP routing tables. By default, all the routes, even if they are not directly connected to VPP interfaces, are imported from kernel routing table to VPP routing table, pointing to the kernel. This allows to forward traffic to any destination known to the kernel, even if VPP itself does not have a route to that destination.
-
-However, in some scenarios, this behavior may not be desired. For example, if you have a large number of routes in the kernel routing table that are not directly connected to VPP interfaces, and you do not need forwarding between such destinations and destinations reachable via VPP, you can disable this behavior. This can be done using the following command:
+Linux Control Plane (LCP) is a core component of VPP that lets you
+offload various control plane functions to the Linux kernel. LCP provides
+seamless integration with other VyOS components, letting you use system
+components like DHCP clients and routing daemons together with the VPP
+dataplane.
+
+VPP integration in VyOS relies heavily on LCP. Almost all control plane
+functions are handled by other daemons and services, while VPP handles
+high-performance packet forwarding exclusively. This approach also reduces
+VPP management processing load, improving overall dataplane performance and
+stability.
+
+VyOS integrates the kernel and VPP routing tables uniquely. By default,
+all routes, even those not directly connected to VPP interfaces, are
+imported from the kernel routing table to the VPP routing table, pointing
+to the kernel. This lets you forward traffic to any destination known to
+the kernel, even if VPP doesn't have a route to that destination.
+
+However, in some scenarios this behavior may not be desired. For example,
+if you have many routes in the kernel routing table not directly connected
+to VPP interfaces, and you don't need forwarding between those
+destinations and destinations reachable via VPP, you can disable this
+behavior using the following command:
.. _vpp_config_dataplane_lcp_ignore-kernel-routes:
.. cfgcmd:: set vpp settings resource-allocation ignore-kernel-routes
-Pay attention that disabling this option leads to loss of connectivity to destinations if there are no direct routes in VPP routing table.
+Pay attention that disabling this option leads to loss of connectivity to
+destinations if there are no direct routes in VPP routing table.
Potential Issues and Troubleshooting
====================================
diff --git a/docs/vpp/configuration/dataplane/logging.rst b/docs/vpp/configuration/dataplane/logging.rst
index 47455925..70d57028 100644
--- a/docs/vpp/configuration/dataplane/logging.rst
+++ b/docs/vpp/configuration/dataplane/logging.rst
@@ -1,4 +1,4 @@
-:lastproofread: 2025-09-04
+:lastproofread: 2026-02-27
.. _vpp_config_dataplane_logging:
@@ -8,14 +8,21 @@
VPP Logging Configuration
#########################
-VPP logging is an important part of monitoring and troubleshooting the performance and behavior of the VPP dataplane.
+VPP logging is an important part of monitoring and troubleshooting
+the performance and behavior of the VPP dataplane.
VPP stores logs in two places:
-- ``/var/log/vpp.log`` — This file contains logs related to daemon startup and log of commands executed directly via VPP CLI. Pay attention, VyOS does not use VPP CLI for configuration, so this log will not contain any configuration changes made via VyOS CLI, and will not be informative in most cases.
-- System journal — contains logs related to the VPP daemon work, including errors, warnings, and informational messages. It is the main destination of logs generated by VPP.
+- ``/var/log/vpp.log`` — This file contains logs related to daemon
+ startup and logs of commands executed directly via VPP CLI. Pay
+ attention: VyOS does not use VPP CLI for configuration, so this log
+ will not contain any configuration changes made via VyOS CLI and will
+ not be informative in most cases.
+- System journal — contains logs related to the VPP daemon work,
+ including errors, warnings, and informational messages. It is the
+ main destination of logs generated by VPP.
-Logging detalization can be configured via the next command:
+Logging detail level can be configured via the next command:
.. cfgcmd:: set vpp settings logging default-level <level>
@@ -31,15 +38,21 @@ Where ``<level>`` can be one of the following:
- ``debug`` (Debug) - Detailed debugging messages.
- ``disabled`` (Disabled) - Logging disabled.
-It is recommended to set logging level to ``debug`` only for troubleshooting purposes, as it can generate a large volume of log data. For regular operation, a level of ``info`` or ``warn`` is usually sufficient.
+It is recommended to set logging level to ``debug`` only for
+troubleshooting purposes, as it can generate a large volume of log
+data. For regular operation, a level of ``info`` or ``warn`` is usually
+sufficient.
-Potential Issues and Troubleshooting
-====================================
+Troubleshooting
+===============
Improper logging configuration can lead to various issues, including:
-- Excessive log file sizes if the logging level is set too high (e.g., ``debug``)
-- Missing critical information if the logging level is set too low (e.g., ``alert``)
+- Excessive log file sizes if the logging level is set too high
+ (for example, ``debug``).
+- Missing critical information if the logging level is set too low
+ (for example, ``alert``).
- Performance degradation due to excessive logging overhead
-Consider adjusting the logging level if you experience issues mentioned above.
+Consider adjusting the logging level if you experience issues mentioned
+above.
diff --git a/docs/vpp/configuration/dataplane/memory.rst b/docs/vpp/configuration/dataplane/memory.rst
index 8e4749ed..c2d74991 100644
--- a/docs/vpp/configuration/dataplane/memory.rst
+++ b/docs/vpp/configuration/dataplane/memory.rst
@@ -1,4 +1,4 @@
-:lastproofread: 2025-09-04
+:lastproofread: 2026-02-27
.. _vpp_config_dataplane_memory:
@@ -8,23 +8,36 @@
VPP Memory Configuration
########################
-VPP heavily relies on hugepages for its memory management. Hugepages are larger memory pages that reduce the overhead of page management and improve performance for applications that require large amounts of memory, such as VPP.
+VPP heavily relies on hugepages for its memory management. Hugepages
+are larger memory pages that reduce the overhead of page management and
+improve performance for applications that require large amounts of
+memory, such as VPP.
-VPP supports both 2MB and 1GB hugepages, but the default and most commonly used size is 2MB. The choice of hugepage size can impact performance, with larger pages generally providing better performance for memory-intensive applications.
+VPP supports both 2MB and 1GB hugepages, but the default and most
+commonly used size is 2MB. The choice of hugepage size can impact
+performance, with larger pages generally providing better performance
+for memory-intensive applications.
-Before configuring memory in VPP dataplane settings, you need to ensure that hugepages are enabled and properly configured on your system.
+Before configuring memory in VPP dataplane settings, you need to
+ensure that hugepages are enabled and properly configured on your
+system.
-.. seealso:: :ref:`Hugepages in VyOS Configuration for VPP <vpp_config_hugepages>`
+.. seealso:: :ref:`Hugepages in VyOS Configuration for VPP
+ <vpp_config_hugepages>`
-To configure memory settings for VPP, you can use the following commands in the VPP CLI:
+To configure memory settings for VPP, you can use the following
+commands in the VPP CLI:
-VPP uses a main heap as a central memory pool for FIB data structures entries allocations.
+VPP uses a main heap as a central memory pool for FIB data structures
+entry allocations.
-Efficient memory management is crucial for VPP's performance, and the main heap plays a significant role in this.
+Efficient memory management is crucial for VPP's performance, and the
+main heap plays a significant role in this.
It can be configured using the following command:
-.. cfgcmd:: set vpp settings resource-allocation memory main-heap-page-size <size>
+.. cfgcmd:: set vpp settings resource-allocation memory main-heap-page-size
+ <size>
Sets the main heap page size for VPP.
@@ -37,22 +50,29 @@ Sets the main heap size for VPP.
Physical Memory Configuration
=============================
-VPP uses physical memory for packet buffers and interface operations. The ``physmem`` setting controls how much memory VPP can allocate for these operations.
+VPP uses physical memory for packet buffers and interface operations.
+The ``physmem`` setting controls how much memory VPP can allocate for
+these operations.
.. cfgcmd:: set vpp settings resource-allocation memory physmem-max-size <size>
-Sets the maximum amount of physical memory VPP can use for packet processing and interface buffers.
+Sets the maximum amount of physical memory VPP can use for packet
+processing and interface buffers.
**Default**: 16GB (usually sufficient for most deployments)
-You may need to modify the value for high-throughput environments with many interfaces, large packet buffers, or very high packet rates or memory-constrained systems where you need to limit VPP's memory usage.
+You may need to modify the value for high-throughput environments with
+many interfaces, large packet buffers, very high packet rates, or
+memory-constrained systems where you need to limit VPP's memory usage.
-**Physmem Independent of main heap size** - physmem is for packet buffers, main heap is for routing tables.
+**Physmem independent of main heap size** — physmem is for packet
+buffers, main heap is for routing tables.
.. seealso::
- :ref:`Hugepages in VyOS Configuration for VPP <vpp_config_hugepages>`
- - :ref:`VPP Buffer Configuration <vpp_config_dataplane_buffers>` - for controlling buffer allocation within physmem
+ - :ref:`VPP Buffer Configuration <vpp_config_dataplane_buffers>` - for
+ controlling buffer allocation within physmem
Common configurations
---------------------
@@ -68,9 +88,12 @@ Common configurations
Stats Memory Configuration
==========================
-VPP uses a dedicated statistics memory segment to store runtime counters and telemetry data. This segment is used by the VPP CLI and monitoring tools to access performance and status information.
+VPP uses a dedicated statistics memory segment to store runtime
+counters and telemetry data. This segment is used by the VPP CLI and
+monitoring tools to access performance and status information.
-The statistics segment is allocated from hugepage memory and can be configured independently from the main heap and physmem settings.
+The statistics segment is allocated from hugepage memory and can be
+configured independently from the main heap and physmem settings.
You can configure statistics memory using the following commands:
@@ -82,25 +105,37 @@ Sets the hugepage page size used for the statistics memory segment.
Sets the total size of the statistics memory segment.
-Increasing this value may be required in large deployments with many interfaces or enabled features that generate a high number of counters.
+Increasing this value may be required in large deployments with many
+interfaces or enabled features that generate a high number of counters.
-Statistics memory is used only for telemetry and monitoring. It does not affect packet buffer allocation or routing table memory.
+Statistics memory is used only for telemetry and monitoring. It does
+not affect packet buffer allocation or routing table memory.
-Potential Issues and Troubleshooting
-====================================
+Troubleshooting
+===============
-Improper configuration of main heap size can lead to performance degradation or even system instability. If VPP runs out of memory in the main heap, it may crash or exhibit erratic behavior. Symptoms you may observe include:
+Improper configuration of main heap size can lead to performance
+degradation or even system instability. If VPP runs out of memory in the
+main heap, it may crash or exhibit erratic behavior. Symptoms you may
+observe include:
- Increased latency or packet loss
-- Crashes or restarts of VPP processes, especially during routing table populating (e.g., BGP session establishment)
+- Crashes or restarts of VPP processes, especially during routing table
+ population (for example, BGP session establishment)
- Error messages related to memory allocation failures
-You need to tune the main heap size based on expected FIB entries. Pay attention - same amount of routes with a single next-hop and with multiple next-hops will consume different amounts of memory.
+You need to tune the main heap size based on expected FIB entries. Pay
+attention: the same amount of routes with a single next-hop and with
+multiple next-hops will consume different amounts of memory.
-For physmem, insufficient allocation can lead to packet drops, interface initialization failures, and overall degraded performance. Symptoms include:
+For physmem, insufficient allocation can lead to packet drops, interface
+initialization failures, and overall degraded performance. Symptoms
+include:
- Packet drops or failures to allocate buffers
- Increased latency or jitter in packet processing
- Crashes or restarts of VPP processes under heavy load
-You need to tune the physmem settings based on expected traffic patterns and interface usage. Monitor memory usage closely and adjust the configuration as needed to ensure optimal performance.
+You need to tune the physmem settings based on expected traffic patterns
+and interface usage. Monitor memory usage closely and adjust the
+configuration as needed to ensure optimal performance.
diff --git a/docs/vpp/configuration/dataplane/system.rst b/docs/vpp/configuration/dataplane/system.rst
index 80a7a409..608035a1 100644
--- a/docs/vpp/configuration/dataplane/system.rst
+++ b/docs/vpp/configuration/dataplane/system.rst
@@ -1,4 +1,4 @@
-:lastproofread: 2025-09-04
+:lastproofread: 2026-02-27
.. _vpp_config_system:
@@ -12,7 +12,10 @@ VyOS Configuration for VPP
Hugepages
=========
-VPP utilizes hugepages for efficient memory management. Hugepages are larger memory pages that reduce the overhead of page management and improve performance for applications that require large amounts of memory.
+
+VPP uses hugepages for efficient memory management. Hugepages are larger
+memory pages that reduce the overhead of page management and improve
+performance for applications that require large amounts of memory.
Hugepages can be configured in VyOS using the following commands:
@@ -24,20 +27,27 @@ Hugepages can be configured in VyOS using the following commands:
To enable hugepages:
-.. cfgcmd:: set system option kernel memory hugepage-size <size> hugepage-count '<count>'
+.. cfgcmd:: set system option kernel memory hugepage-size <size> hugepage-count
+ '<count>'
-Enables hugepages with the specified size and count. The size can be either 2MB or 1GB, and the count specifies the number of hugepages to allocate.
+Enables hugepages with the specified size and count. The size can be either
+2MB or 1GB, and the count specifies the number of hugepages to allocate.
-If your system has multiple NUMA nodes, the total amount of hugepages will be divided equally among them.
+If your system has multiple NUMA nodes, the total amount of hugepages will be
+divided equally among them.
Resources Limits
================
.. note::
- By default, system will calculate and set the recommended values for resource limits. Avoid tuning these values if you are not sure what you are doing.
+ By default, system will calculate and set the recommended values for
+ resource limits. Avoid tuning these values if you are not sure what you
+ are doing.
-During operations VPP utilizes a significant amount of system resources, especially memory. There are two main settings that may to be adjusted to ensure VPP runs smoothly:
+During operations VPP utilizes a significant amount of system resources,
+especially memory. There are two main settings that may need to be
+adjusted to ensure VPP runs smoothly:
Maximum number of memory map areas a process may have:
@@ -52,32 +62,45 @@ Both settings are automatically calculated based on configured hugepages.
Kernel Tuning
=============
-VPP performance greatly benefits from proper kernel tuning, especially CPU isolation and disabling unnecessary kernel features. These optimizations ensure dedicated CPU cores are available exclusively for VPP dataplane processing without interference from the kernel scheduler or other system processes.
+VPP performance greatly benefits from proper kernel tuning, especially
+CPU isolation and disabling unnecessary kernel features. These
+optimizations ensure dedicated CPU cores are available exclusively for
+VPP dataplane processing without interference from the kernel scheduler
+or other system processes.
.. warning::
Kernel tuning changes require a system reboot to take effect.
- Improper CPU isolation can lead to system instability if essential system processes are starved of CPU resources.
+ Improper CPU isolation can lead to system instability if essential system
+ processes are starved of CPU resources.
CPU Isolation and Optimization
-------------------------------
-CPU isolation is crucial for VPP performance as it dedicates specific CPU cores exclusively to VPP dataplane processing. The isolated cores are removed from the kernel scheduler and will not run regular system processes.
+CPU isolation is crucial for VPP performance as it dedicates specific
+CPU cores exclusively to VPP dataplane processing. The isolated cores are
+removed from the kernel scheduler and will not run regular system
+processes.
**Disable NMI Watchdog**
-The NMI (Non-Maskable Interrupt) watchdog can interfere with VPP performance by generating interrupts on isolated cores and is not compatible with nohz-full mode:
+The NMI (Non-Maskable Interrupt) watchdog can interfere with VPP
+performance by generating interrupts on isolated cores and is not
+compatible with nohz-full mode:
.. cfgcmd:: set system option kernel cpu disable-nmi-watchdog
- Disables the NMI watchdog for detecting hard CPU lockups. This prevents unnecessary interrupts on VPP worker cores.
+ Disables the NMI watchdog for detecting hard CPU lockups. This
+ prevents unnecessary interrupts on VPP worker cores.
**CPU Core Isolation**
.. cfgcmd:: set system option kernel cpu isolate-cpus <cpu-range>
- Isolates specified CPUs from the kernel scheduler. Isolated cores will not run regular system processes and are dedicated to applications like VPP.
+ Isolates specified CPUs from the kernel scheduler. Isolated cores will
+ not run regular system processes and are dedicated to applications like
+ VPP.
The ``<cpu-range>`` can be:
@@ -87,15 +110,22 @@ The NMI (Non-Maskable Interrupt) watchdog can interfere with VPP performance by
.. important::
- Always reserve at least 2 cores for the operating system to ensure system stability. For example, on a 4-core system, isolate cores 2-3 for VPP and leave cores 0-1 for the OS.
+ Always reserve at least 2 cores for the operating system to ensure
+ system stability. For example, on a 4-core system, isolate cores
+ 2-3 for VPP and leave cores 0-1 for the OS.
- Assign the first isolated core as the VPP main core and the remaining isolated cores as VPP worker cores. Ensure that VPP CPU assignments match the isolated CPU range.
+ Assign the first isolated core as the VPP main core and the
+ remaining isolated cores as VPP worker cores. Ensure that VPP CPU
+ assignments match the isolated CPU range.
**Adaptive-Tick Mode**
.. cfgcmd:: set system option kernel cpu nohz-full <cpu-range>
- Enables adaptive-tick mode (NO_HZ_FULL) for specified CPUs. This causes the kernel to avoid sending scheduling-clock interrupts to CPUs that have only one runnable task, significantly reducing interrupt overhead for dedicated workloads like VPP.
+ Enables adaptive-tick mode (NO_HZ_FULL) for specified CPUs. This
+ causes the kernel to avoid sending scheduling-clock interrupts to CPUs
+ that have only one runnable task, significantly reducing interrupt
+ overhead for dedicated workloads like VPP.
Use the same CPU range as configured for ``isolate-cpus``.
@@ -103,44 +133,56 @@ The NMI (Non-Maskable Interrupt) watchdog can interfere with VPP performance by
.. cfgcmd:: set system option kernel cpu rcu-no-cbs <cpu-range>
- Offloads Read-Copy-Update (RCU) callback processing from specified CPUs. This ensures that RCU callbacks do not prevent the specified CPUs from entering dyntick-idle or adaptive-tick mode, which is essential for nohz-full functionality.
+ Offloads Read-Copy-Update (RCU) callback processing from specified
+ CPUs. This ensures that RCU callbacks do not prevent the specified CPUs
+ from entering dyntick-idle or adaptive-tick mode, which is essential
+ for nohz-full functionality.
Use the same CPU range as configured for ``isolate-cpus``.
System Optimization
--------------------
-Additional kernel optimizations can further improve VPP performance by disabling unnecessary features and reducing system overhead.
+Additional kernel optimizations can further improve VPP performance by
+disabling unnecessary features and reducing system overhead.
**Disable High Precision Event Timer**
.. cfgcmd:: set system option kernel disable-hpet
- Disables the High Precision Event Timer (HPET). HPET can cause additional interrupts and overhead that may impact VPP performance.
+ Disables the High Precision Event Timer (HPET). HPET can cause
+ additional interrupts and overhead that may impact VPP performance.
**Disable Machine Check Exceptions**
.. cfgcmd:: set system option kernel disable-mce
- Disables Machine Check Exception (MCE) reporting and handling. While MCE provides hardware error detection, it can introduce latency in high-performance scenarios.
+ Disables Machine Check Exception (MCE) reporting and handling. While
+ MCE provides hardware error detection, it can introduce latency in
+ high-performance scenarios.
**Disable CPU Power Saving**
.. cfgcmd:: set system option kernel disable-power-saving
- Disables CPU power saving mechanisms (C-states). This keeps CPU cores at maximum performance levels, eliminating latency from power state transitions.
+ Disables CPU power saving mechanisms (C-states). This keeps CPU cores
+ at maximum performance levels, eliminating latency from power state
+ transitions.
**Disable Soft Lockup Detection**
.. cfgcmd:: set system option kernel disable-softlockup
- Disables the soft lockup detector for kernel threads. This prevents false positives when VPP worker threads are busy processing packets.
+ Disables the soft lockup detector for kernel threads. This prevents
+ false positives when VPP worker threads are busy processing packets.
**Disable CPU Mitigations**
.. cfgcmd:: set system option kernel disable-mitigations
- Disables all optional CPU mitigations for security vulnerabilities (e.g., Spectre, Meltdown). This may improve performance on some platforms.
+ Disables all optional CPU mitigations for security vulnerabilities
+ (for example, Spectre, Meltdown). This may improve performance on some
+ platforms.
Optimal Configuration Example
-----------------------------
diff --git a/docs/vpp/configuration/dataplane/unix.rst b/docs/vpp/configuration/dataplane/unix.rst
index 45c59bfa..f31d6381 100644
--- a/docs/vpp/configuration/dataplane/unix.rst
+++ b/docs/vpp/configuration/dataplane/unix.rst
@@ -1,4 +1,4 @@
-:lastproofread: 2025-09-04
+:lastproofread: 2026-02-27
.. _vpp_config_dataplane_unix:
@@ -8,22 +8,37 @@
VPP Unix Dataplane Configuration
################################
-The UNIX configuration section is used to control VPP's interaction with the underlying operating system, including operations scheduling.
+The UNIX configuration section is used to control VPP's interaction
+with the underlying operating system, including operations scheduling.
-VPP relies on the polling mechanism to efficiently manage I/O operations and system events. By default VPP continuously polls for events, which leads to permanent 100% CPU usage by all cores assigned to VPP dataplane. This is optimal for performance, but may not be desirable in all environments, especially where power consumption is a concern or where VPP is running inside a hypervisor, especially if VM has burstable thresholds and CPU usage limits.
+VPP relies on the polling mechanism to efficiently manage I/O operations
+and system events. By default VPP continuously polls for events, which
+leads to permanent 100% CPU usage by all cores assigned to VPP dataplane.
+This is optimal for performance, but may not be desirable in all
+environments, especially where power consumption is a concern or where VPP
+is running inside a hypervisor, especially if the VM has burstable
+thresholds and CPU usage limits.
-To mitigate this, VPP provides a configurable polling delay that allows to reduce CPU usage by introducing a delay between polling cycles. This introduces a trade-off between CPU usage and latency, as longer delays can lead to increased latency in processing events.
+To mitigate this, VPP provides a configurable polling delay that allows
+reducing CPU usage by introducing a delay between polling cycles. This
+introduces a trade-off between CPU usage and latency, as longer delays
+can lead to increased latency in processing events.
-You can configure the polling delay using the following command in the VyOS CLI:
+You can configure the polling delay using the following command in the
+VyOS CLI:
.. cfgcmd:: set vpp settings poll-sleep-usec <delay>
-Sets the polling delay in microseconds. A value of 0 means no delay (default), while higher values introduce a delay between polling cycles.
+Sets the polling delay in microseconds. A value of 0 means no delay
+(default), while higher values introduce a delay between polling cycles.
-Potential Issues and Troubleshooting
-====================================
+Troubleshooting
+===============
-Setting the polling delay too high can lead to increased latency and reduced performance, as VPP may not respond to events as quickly. Conversely, setting it too low may result in high CPU usage, which can be problematic in resource-constrained environments.
+Setting the polling delay too high can lead to increased latency and
+reduced performance, as VPP may not respond to events as quickly.
+Conversely, setting it too low may result in high CPU usage, which can be
+problematic in resource-constrained environments.
Symptoms of improper configuration may include:
@@ -31,6 +46,10 @@ Symptoms of improper configuration may include:
- Higher CPU usage than expected
- Packets lost due to buffer overruns
-If you do not need to reduce CPU usage, it is recommended to leave the polling delay at its default value of 0 for optimal performance.
+If you do not need to reduce CPU usage, it is recommended to leave the
+polling delay at its default value of 0 for optimal performance.
-If you need to reduce CPU usage, you may also consider using ``interrupt`` or ``adaptive`` :ref:`DPDK driver modes <vpp_config_dataplane_interface_rx_mode>`, which can provide a balance between performance and resource utilization without affecting polling behavior. \ No newline at end of file
+If you need to reduce CPU usage, you may also consider using ``interrupt`` or
+``adaptive`` :ref:`DPDK driver modes <vpp_config_dataplane_interface_rx_mode>`,
+which can provide a balance between performance and resource utilization
+without affecting polling behavior.