summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2026-02-19 16:16:46 +0100
committerGitHub <noreply@github.com>2026-02-19 16:16:46 +0100
commit388fecf3cfb7729dbd18162a19f84b08afea4afd (patch)
treea82f01805b3e3e298b5d5933907305ec5dc7de4d /src
parentc386550aa8dd07026eba25bf40323c8d2439b6e2 (diff)
parenta9070f1d5770241a46c4632528fef86edaba8392 (diff)
downloadvyos-1x-388fecf3cfb7729dbd18162a19f84b08afea4afd.tar.gz
vyos-1x-388fecf3cfb7729dbd18162a19f84b08afea4afd.zip
Merge pull request #4997 from natali-rs1985/T8261
vpp: T8261: Refactor resource settings into 'resource-allocation' section
Diffstat (limited to 'src')
-rwxr-xr-xsrc/conf_mode/vpp.py13
-rw-r--r--src/migration-scripts/vpp/7-to-857
2 files changed, 67 insertions, 3 deletions
diff --git a/src/conf_mode/vpp.py b/src/conf_mode/vpp.py
index d436fbe6b..b02c809ec 100755
--- a/src/conf_mode/vpp.py
+++ b/src/conf_mode/vpp.py
@@ -170,9 +170,14 @@ def _configure_vpp_cpu_settings(config: dict):
def _normalize_buffers(config: dict):
"""Replace 'auto' buffers_per_numa with calculated value"""
- if config['settings']['buffers']['buffers_per_numa'] == 'auto':
+ if (
+ config['settings']['resource_allocation']['buffers']['buffers_per_numa']
+ == 'auto'
+ ):
buffers = memory.buffers_required(config['settings'])
- config['settings']['buffers']['buffers_per_numa'] = str(buffers)
+ config['settings']['resource_allocation']['buffers']['buffers_per_numa'] = str(
+ buffers
+ )
def _get_max_xdp_rx_queues(config: dict):
@@ -770,7 +775,9 @@ def apply(config):
vpp_control = VPPControl()
# preconfigure LCP plugin
- if 'ignore_kernel_routes' in config.get('settings', {}).get('lcp', {}):
+ if 'ignore_kernel_routes' in config['settings'].get(
+ 'resource_allocation', {}
+ ):
vpp_control.cli_cmd('lcp param route-no-paths off')
else:
vpp_control.cli_cmd('lcp param route-no-paths on')
diff --git a/src/migration-scripts/vpp/7-to-8 b/src/migration-scripts/vpp/7-to-8
index 54a1a7c43..22d5e6d31 100644
--- a/src/migration-scripts/vpp/7-to-8
+++ b/src/migration-scripts/vpp/7-to-8
@@ -31,6 +31,8 @@
# - `vpp settings interface <ethN> num-*`
# and delete `vpp settings interface <ethN> dpdk-options promisc` (T8274)
#
+# Migrate all resource settings into 'resource-allocation' section (T8261)
+#
from vyos.configtree import ConfigTree
@@ -188,6 +190,60 @@ def _migrate_vpp_dpdk_options(config: ConfigTree) -> None:
config.delete(promisc_path)
+def _migrate_vpp_resources(config: ConfigTree) -> None:
+ base = ['vpp', 'settings']
+ new_base = ['vpp', 'settings', 'resource-allocation']
+
+ if not config.exists(new_base):
+ config.set(new_base)
+
+ if config.exists(base + ['buffers']):
+ # copy "settings buffers" to "settings resource-allocation buffers"
+ config.copy(base + ['buffers'], new_base + ['buffers'])
+ config.delete(base + ['buffers'])
+
+ if config.exists(base + ['memory']):
+ # copy "settings memory" to "settings resource-allocation memory"
+ config.copy(base + ['memory'], new_base + ['memory'])
+ config.delete(base + ['memory'])
+
+ if config.exists(base + ['statseg']):
+ # copy "settings statseg" to "settings resource-allocation memory stats"
+ if not config.exists(new_base + ['memory']):
+ config.set(new_base + ['memory'])
+ config.copy(base + ['statseg'], new_base + ['memory', 'stats'])
+ config.delete(base + ['statseg'])
+
+ if config.exists(base + ['ipv6']):
+ # copy "settings ipv6" to "settings resource-allocation ipv6"
+ config.copy(base + ['ipv6'], new_base + ['ipv6'])
+ config.delete(base + ['ipv6'])
+
+ if config.exists(base + ['lcp']):
+ # move "settings lcp ignore-kernel-routes" to "settings resource-allocation ignore-kernel-routes"
+ # and remove "settings lcp netlink" node
+ if config.exists(base + ['lcp', 'ignore-kernel-routes']):
+ config.set(new_base + ['ignore-kernel-routes'])
+ config.delete(base + ['lcp'])
+
+ if config.exists(base + ['l2learn']):
+ # move "settings l2learn limit" to "settings resource-allocation mac-limit"
+ if config.exists(base + ['l2learn', 'limit']):
+ tmp = config.return_value(base + ['l2learn', 'limit'])
+ config.set(new_base + ['mac-limit'], value=tmp)
+ config.delete(base + ['l2learn'])
+
+ if config.exists(base + ['physmem']):
+ # move "settings physmem max-size" to "settings resource-allocation memory physmem-max-size"
+ if config.exists(base + ['physmem', 'max-size']):
+ tmp = config.return_value(base + ['physmem', 'max-size'])
+ config.set(new_base + ['memory', 'physmem-max-size'], value=tmp)
+ config.delete(base + ['physmem'])
+
+ if len(config.list_nodes(new_base)) == 0:
+ config.delete(new_base)
+
+
def migrate(config: ConfigTree) -> None:
if not config.exists(['vpp']):
# Nothing to do
@@ -200,3 +256,4 @@ def migrate(config: ConfigTree) -> None:
_migrate_vpp_cpu(config)
_migrate_vpp_interface_rx_mode(config)
_migrate_vpp_dpdk_options(config)
+ _migrate_vpp_resources(config)