summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNataliia Solomko <natalirs1985@gmail.com>2025-09-15 12:56:16 +0300
committerNataliia Solomko <natalirs1985@gmail.com>2025-09-16 17:59:53 +0300
commita23dbe4bb921fcf7930747fc5b9d2e5684a57123 (patch)
treebbb6669d4d503ce2b122cf87bb221e70c5f91441
parent78b961810ac346e9083659b29ada26e35dec95a1 (diff)
downloadvyos-1x-a23dbe4bb921fcf7930747fc5b9d2e5684a57123.tar.gz
vyos-1x-a23dbe4bb921fcf7930747fc5b9d2e5684a57123.zip
T7806: VPP do not allow skip-cores to be configured without main-core
-rw-r--r--python/vyos/vpp/config_verify.py9
-rwxr-xr-xsrc/conf_mode/vpp.py8
2 files changed, 9 insertions, 8 deletions
diff --git a/python/vyos/vpp/config_verify.py b/python/vyos/vpp/config_verify.py
index cb9b3ad19..b77b7de46 100644
--- a/python/vyos/vpp/config_verify.py
+++ b/python/vyos/vpp/config_verify.py
@@ -328,14 +328,15 @@ def verify_vpp_settings_cpu_skip_cores(skip_cores: int):
)
-def verify_vpp_settings_cpu_and_corelist_workers(settings: dict):
+def verify_vpp_settings_cpu(settings: dict):
"""
+ Verify 'cpu main-core' is set if worker-related settings are used.
`set vpp settings cpu workers` and `set vpp settings cpu corelist-workers`
are mutually exclusive!
"""
- if (
- 'corelist_workers' in settings or 'workers' in settings
- ) and 'main_core' not in settings:
+ worker_related = ('corelist_workers', 'workers', 'skip_cores')
+
+ if any(key in settings for key in worker_related) and 'main_core' not in settings:
raise ConfigError('"cpu main-core" is required but not set!')
if 'corelist_workers' in settings and 'workers' in settings:
diff --git a/src/conf_mode/vpp.py b/src/conf_mode/vpp.py
index 307c25df4..dc9ba1507 100755
--- a/src/conf_mode/vpp.py
+++ b/src/conf_mode/vpp.py
@@ -47,7 +47,7 @@ from vyos.vpp.config_verify import (
verify_dev_driver,
verify_vpp_minimum_cpus,
verify_vpp_minimum_memory,
- verify_vpp_settings_cpu_and_corelist_workers,
+ verify_vpp_settings_cpu,
verify_vpp_settings_cpu_corelist_workers,
verify_vpp_cpu_main_core,
verify_vpp_settings_cpu_skip_cores,
@@ -405,14 +405,14 @@ def verify(config):
verify_vpp_minimum_cpus()
if 'cpu' in config['settings']:
+ # Check whether the workers and corelist-workers are configured properly
+ verify_vpp_settings_cpu(cpu_settings)
+
# Check if there are enough CPU cores to skip according to config
if 'skip_cores' in cpu_settings:
skip_cores = int(cpu_settings['skip_cores'])
verify_vpp_settings_cpu_skip_cores(skip_cores)
- # Check whether the workers and corelist-workers are configured properly
- verify_vpp_settings_cpu_and_corelist_workers(cpu_settings)
-
# Check if there are enough CPU cores to add workers
if 'workers' in cpu_settings:
verify_vpp_settings_cpu_workers(cpu_settings)