summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorNataliia Solomko <natalirs1985@gmail.com>2026-02-18 10:51:07 +0200
committerNataliia Solomko <natalirs1985@gmail.com>2026-02-19 12:22:06 +0200
commita9070f1d5770241a46c4632528fef86edaba8392 (patch)
treea82f01805b3e3e298b5d5933907305ec5dc7de4d /python
parentc386550aa8dd07026eba25bf40323c8d2439b6e2 (diff)
downloadvyos-1x-a9070f1d5770241a46c4632528fef86edaba8392.tar.gz
vyos-1x-a9070f1d5770241a46c4632528fef86edaba8392.zip
vpp: T8261: Refactor resource settings into 'resource-allocation' section
Diffstat (limited to 'python')
-rw-r--r--python/vyos/vpp/config_resource_checks/memory.py29
-rw-r--r--python/vyos/vpp/config_resource_checks/resource_defaults.py2
-rw-r--r--python/vyos/vpp/config_verify.py16
3 files changed, 21 insertions, 26 deletions
diff --git a/python/vyos/vpp/config_resource_checks/memory.py b/python/vyos/vpp/config_resource_checks/memory.py
index e28a04873..c8073f64b 100644
--- a/python/vyos/vpp/config_resource_checks/memory.py
+++ b/python/vyos/vpp/config_resource_checks/memory.py
@@ -91,30 +91,32 @@ def get_numa_count():
def buffer_page_size(settings: dict) -> int:
- page_size = settings.get('buffers', {}).get('page_size')
+ page_size = settings['resource_allocation']['buffers']['page_size']
return human_memory_to_bytes(page_size)
def buffer_size(settings: dict) -> int:
numa_count = get_numa_count()
- buffers_per_numa = int(settings.get('buffers').get('buffers_per_numa'))
- data_size = int(settings.get('buffers').get('data_size'))
+ buffers_per_numa = int(
+ settings['resource_allocation']['buffers']['buffers_per_numa']
+ )
+ data_size = int(settings['resource_allocation']['buffers']['data_size'])
buffers_memory = buffers_per_numa * data_size * numa_count
return buffers_memory
def main_heap_page_size(settings: dict) -> int:
- heap_page_size = settings.get('memory').get('main_heap_page_size')
+ heap_page_size = settings['resource_allocation']['memory']['main_heap_page_size']
return human_memory_to_bytes(heap_page_size)
def memory_main_heap(settings: dict) -> int:
- heap_size = settings.get('memory').get('main_heap_size')
+ heap_size = settings['resource_allocation']['memory']['main_heap_size']
return human_memory_to_bytes(heap_size)
def ipv6_heap_size(settings: dict) -> int:
- heap_size = settings.get('ipv6').get('heap_size')
+ heap_size = settings['resource_allocation']['ipv6']['heap_size']
return human_memory_to_bytes(heap_size)
@@ -123,12 +125,12 @@ def total_heap_size(heap_size: int, heap_page_size: int) -> int:
def statseg_size(settings: dict) -> int:
- statseg_memory = settings.get('statseg').get('size')
+ statseg_memory = settings['resource_allocation']['memory']['stats']['size']
return human_memory_to_bytes(statseg_memory)
def statseg_page_size(settings: dict) -> int:
- page_size = settings.get('statseg').get('page_size')
+ page_size = settings['resource_allocation']['memory']['stats']['page_size']
return human_memory_to_bytes(page_size)
@@ -141,16 +143,7 @@ def total_memory_required(settings: dict) -> dict:
mem_stats = {
'memory_buffers': (buffer_size(settings), buffer_page_size(settings)),
- 'netlink_buffer_size': (
- int(
- settings.get('lcp', {})
- .get('netlink', {})
- .get(
- 'rx_buffer_size', default_resource_map.get('netlink_rx_buffer_size')
- )
- ),
- 0,
- ),
+ 'netlink_buffer_size': (default_resource_map.get('netlink_rx_buffer_size'), 0),
'heap_size': (
total_heap_size(
heap_size=memory_main_heap(settings),
diff --git a/python/vyos/vpp/config_resource_checks/resource_defaults.py b/python/vyos/vpp/config_resource_checks/resource_defaults.py
index 71a98703e..aa1c9a8a0 100644
--- a/python/vyos/vpp/config_resource_checks/resource_defaults.py
+++ b/python/vyos/vpp/config_resource_checks/resource_defaults.py
@@ -19,7 +19,7 @@
default_resource_map = {
# Default size of buffers transferred via netlink
- 'netlink_rx_buffer_size': 212992,
+ 'netlink_rx_buffer_size': 268435456,
# Minimal amount of memory required to start VPP
'min_memory': '8G',
# Minimal number of physical CPU cores required to start VPP
diff --git a/python/vyos/vpp/config_verify.py b/python/vyos/vpp/config_verify.py
index f8bfb214a..1e56457da 100644
--- a/python/vyos/vpp/config_verify.py
+++ b/python/vyos/vpp/config_verify.py
@@ -335,16 +335,16 @@ def verify_vpp_cpu_cores(cpu_cores: int):
def verify_vpp_statseg_size(settings: dict):
statseg_size = mem_checks.statseg_size(settings)
- if 'size' in settings.get('statseg'):
+ if 'size' in settings['resource_allocation']['memory']['stats']:
if statseg_size < 128 << 20:
- raise ConfigError('The statseg size must be greater than or equal to 128M')
+ raise ConfigError('The "stats size" must be greater than or equal to 128M')
- if 'page_size' in settings['statseg']:
+ if 'page_size' in settings['resource_allocation']['memory']['stats']:
statseg_page_size = mem_checks.statseg_page_size(settings)
if statseg_page_size > statseg_size:
readable_statseg_page = bytes_to_human_memory(statseg_page_size, 'K')
raise ConfigError(
- f'The statseg size must be greater than or equal to page-size ({readable_statseg_page})'
+ f'The "stats size" must be greater than or equal to page-size ({readable_statseg_page})'
)
@@ -370,9 +370,9 @@ def verify_routes_count(settings: dict):
bytes = 16 # each counter consumes 16 bytes
statseg_scale = 2
cpu_cores = int(settings['resource_allocation']['cpu_cores'])
- statseg_size = settings['statseg']['size']
+ statseg_size = settings['resource_allocation']['memory']['stats']['size']
statseg_size_in_bytes = human_memory_to_bytes(statseg_size)
- main_heap = settings['memory']['main_heap_size']
+ main_heap = settings['resource_allocation']['memory']['main_heap_size']
main_heap_in_gb = human_memory_to_bytes(main_heap) >> 30
formula = cpu_cores * counters * bytes * statseg_scale
@@ -389,7 +389,9 @@ def verify_routes_count(settings: dict):
def verify_vpp_buffers(settings: dict):
- buffers_configured = int(settings['buffers']['buffers_per_numa'])
+ buffers_configured = int(
+ settings['resource_allocation']['buffers']['buffers_per_numa']
+ )
buffers_required = mem_checks.buffers_required(settings)