From a9070f1d5770241a46c4632528fef86edaba8392 Mon Sep 17 00:00:00 2001 From: Nataliia Solomko Date: Wed, 18 Feb 2026 10:51:07 +0200 Subject: vpp: T8261: Refactor resource settings into 'resource-allocation' section --- python/vyos/vpp/config_resource_checks/memory.py | 29 ++++++++-------------- .../config_resource_checks/resource_defaults.py | 2 +- python/vyos/vpp/config_verify.py | 16 ++++++------ 3 files changed, 21 insertions(+), 26 deletions(-) (limited to 'python') 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) -- cgit v1.2.3