summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorNataliia Solomko <natalirs1985@gmail.com>2025-09-18 12:10:19 +0300
committerNataliia Solomko <natalirs1985@gmail.com>2025-09-18 15:43:25 +0300
commit45f7f3849a15af888cb826b4d71046553911eebd (patch)
tree5caf869ecae8f35e4d96607c80439424432c8e7f /python
parent1522496d16c77a5f69c96e01a72780e33e9045a3 (diff)
downloadvyos-1x-45f7f3849a15af888cb826b4d71046553911eebd.tar.gz
vyos-1x-45f7f3849a15af888cb826b4d71046553911eebd.zip
T7805: VPP remove unused 'default-hugepage-size' from memory section and restrict page sizes in xml
Diffstat (limited to 'python')
-rw-r--r--python/vyos/vpp/config_resource_checks/memory.py45
-rw-r--r--python/vyos/vpp/config_resource_checks/resource_defaults.py14
-rw-r--r--python/vyos/vpp/utils.py17
3 files changed, 13 insertions, 63 deletions
diff --git a/python/vyos/vpp/config_resource_checks/memory.py b/python/vyos/vpp/config_resource_checks/memory.py
index ea4697ba2..03fe097e9 100644
--- a/python/vyos/vpp/config_resource_checks/memory.py
+++ b/python/vyos/vpp/config_resource_checks/memory.py
@@ -21,10 +21,7 @@ import re
import psutil
from vyos.utils.process import cmd
-from vyos.vpp.utils import (
- human_memory_to_bytes,
- human_page_memory_to_bytes,
-)
+from vyos.vpp.utils import human_memory_to_bytes
from vyos.vpp.config_resource_checks.resource_defaults import default_resource_map
@@ -53,7 +50,7 @@ def get_hugepages_info() -> dict:
for entry in os.listdir(base_path):
page_size_kb = entry[10:]
- page_size = human_page_memory_to_bytes(page_size_kb)
+ page_size = human_memory_to_bytes(page_size_kb)
key = classify_page_size(page_size)
info[key] = {}
@@ -94,44 +91,30 @@ def get_numa_count():
def buffer_page_size(settings: dict) -> int:
- page_size = settings.get('buffers', {}).get('page_size', 'default')
- return human_page_memory_to_bytes(page_size)
+ page_size = settings.get('buffers', {}).get('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', default_resource_map.get('buffers_per_numa')
- )
- )
- data_size = int(
- settings.get('buffers', {}).get(
- 'data_size', default_resource_map.get('data_size')
- )
- )
+ buffers_per_numa = int(settings.get('buffers').get('buffers_per_numa'))
+ data_size = int(settings.get('buffers').get('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', default_resource_map.get('main_heap_page_size')
- )
- return human_page_memory_to_bytes(heap_page_size)
+ heap_page_size = settings.get('memory').get('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', default_resource_map.get('main_heap_size')
- )
+ heap_size = settings.get('memory').get('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', default_resource_map.get('ipv6_heap_size')
- )
+ heap_size = settings.get('ipv6').get('heap_size')
return human_memory_to_bytes(heap_size)
@@ -140,15 +123,13 @@ 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', default_resource_map.get('statseg_heap_size')
- )
+ statseg_memory = settings.get('statseg').get('size')
return human_memory_to_bytes(statseg_memory)
def statseg_page_size(settings: dict) -> int:
- page_size = settings.get('statseg', {}).get('page_size')
- return human_page_memory_to_bytes(page_size)
+ page_size = settings.get('statseg').get('page_size')
+ return human_memory_to_bytes(page_size)
def total_statseg_size(_statseg_size: int, _statseg_page: int) -> int:
diff --git a/python/vyos/vpp/config_resource_checks/resource_defaults.py b/python/vyos/vpp/config_resource_checks/resource_defaults.py
index d8316fcaf..71a98703e 100644
--- a/python/vyos/vpp/config_resource_checks/resource_defaults.py
+++ b/python/vyos/vpp/config_resource_checks/resource_defaults.py
@@ -18,26 +18,12 @@
default_resource_map = {
- # Default amount of buffers per NUMA (populated CPU socket)
- 'buffers_per_numa': 16384,
- # Default size of buffer (in bytes)
- 'data_size': 2048,
- # Default hugepage size for VPP
- 'hugepage_size': '2M',
- # Default amount of memory allocated for VPP exclusive usage
- 'main_heap_size': '3G',
- # Default main heap page size
- 'main_heap_page_size': '2M',
# Default size of buffers transferred via netlink
'netlink_rx_buffer_size': 212992,
- # Default amount of memory allocated for VPP stats segment usage
- 'statseg_heap_size': '128M',
# Minimal amount of memory required to start VPP
'min_memory': '8G',
# Minimal number of physical CPU cores required to start VPP
'min_cpus': 4,
# Reserve at least 2 physical cores
'reserved_cpu_cores': 2,
- # Default heap size for IPv6
- 'ipv6_heap_size': '32M',
}
diff --git a/python/vyos/vpp/utils.py b/python/vyos/vpp/utils.py
index 4e42232cd..963423e2b 100644
--- a/python/vyos/vpp/utils.py
+++ b/python/vyos/vpp/utils.py
@@ -330,23 +330,6 @@ def bytes_to_human_memory(value: int, unit: str) -> str | None:
return f'{val}{unit}' if val else None
-def human_page_memory_to_bytes(value: str) -> int:
- """
- Convert a human-readable vpp page size format to a byte value.
-
- :param value: The string memory size in vpp human-readable format.
- :return: A int representing the value.
- """
- default = {
- 'default': get_default_page_size,
- 'default-hugepage': get_default_hugepage_size,
- }
- try:
- return default[value]()
- except KeyError:
- return human_memory_to_bytes(value)
-
-
class EthtoolGDrvinfo:
"""Return interface details like `ethtol -i` does"""