summaryrefslogtreecommitdiff
path: root/smoketest/scripts/cli
diff options
context:
space:
mode:
Diffstat (limited to 'smoketest/scripts/cli')
-rwxr-xr-xsmoketest/scripts/cli/test_system_option.py3
-rwxr-xr-xsmoketest/scripts/cli/test_vpp.py49
2 files changed, 34 insertions, 18 deletions
diff --git a/smoketest/scripts/cli/test_system_option.py b/smoketest/scripts/cli/test_system_option.py
index 5a8e5b78c..e025c01ab 100755
--- a/smoketest/scripts/cli/test_system_option.py
+++ b/smoketest/scripts/cli/test_system_option.py
@@ -104,12 +104,10 @@ class TestSystemOption(VyOSUnitTestSHIM.TestCase):
def test_kernel_options(self):
amd_pstate_mode = 'active'
- isolate_cpus = '1,2,3'
nohz_full = '2'
rcu_no_cbs = '1,2,4-5'
self.cli_set(['system', 'option', 'kernel', 'cpu', 'disable-nmi-watchdog'])
- self.cli_set(['system', 'option', 'kernel', 'cpu', 'isolate-cpus', isolate_cpus])
self.cli_set(['system', 'option', 'kernel', 'cpu', 'nohz-full', nohz_full])
self.cli_set(['system', 'option', 'kernel', 'cpu', 'rcu-no-cbs', rcu_no_cbs])
self.cli_set(['system', 'option', 'kernel', 'disable-hpet'])
@@ -138,7 +136,6 @@ class TestSystemOption(VyOSUnitTestSHIM.TestCase):
self.assertIn(' hpet=disable', tmp)
self.assertIn(' mce=off', tmp)
self.assertIn(' nosoftlockup', tmp)
- self.assertIn(f' isolcpus={isolate_cpus}', tmp)
self.assertIn(f' nohz_full={nohz_full}', tmp)
self.assertIn(f' rcu_nocbs={rcu_no_cbs}', tmp)
self.assertIn(' numa_balancing=disable', tmp)
diff --git a/smoketest/scripts/cli/test_vpp.py b/smoketest/scripts/cli/test_vpp.py
index 59dbb2272..a506ad4f0 100755
--- a/smoketest/scripts/cli/test_vpp.py
+++ b/smoketest/scripts/cli/test_vpp.py
@@ -26,7 +26,8 @@ from json import loads
from base_vyostest_shim import VyOSUnitTestSHIM
from vyos.configsession import ConfigSessionError
-from vyos.utils.cpu import get_available_cpus
+from vyos.utils.convert import range_str_to_list
+from vyos.utils.convert import list_to_range_str
from vyos.utils.process import process_named_running
from vyos.utils.file import read_file
from vyos.utils.process import rc_cmd
@@ -86,12 +87,9 @@ def get_address(interface):
return ip_address
-def get_vpp_cpu_allocation():
- reserved_cpus = default_resource_map.get('reserved_cpu_cores')
- # Get sorted list of available CPU IDs
- available = sorted({cpu['cpu'] for cpu in get_available_cpus()})
- main_core = available[reserved_cpus] # first non-reserved CPU
- return reserved_cpus, main_core
+def get_isolated_cpus():
+ isolated = read_file('/sys/devices/system/cpu/isolated')
+ return range_str_to_list(isolated)
class TestVPP(VyOSUnitTestSHIM.TestCase):
@@ -133,7 +131,7 @@ class TestVPP(VyOSUnitTestSHIM.TestCase):
def test_01_vpp_basic(self):
poll_sleep = '0'
mtu = '2500'
- skip_cores, main_core = get_vpp_cpu_allocation()
+ isolated_cores = get_isolated_cpus()
self.cli_set(base_path + ['settings', 'poll-sleep-usec', poll_sleep])
@@ -142,8 +140,7 @@ class TestVPP(VyOSUnitTestSHIM.TestCase):
config_entries = (
f'poll-sleep-usec {poll_sleep}',
- f'skip-cores {skip_cores}',
- f'main-core {main_core}',
+ f'main-core {str(isolated_cores[0])}', # first isolated core is set as main-core
'plugin default { disable }',
'plugin dpdk_plugin.so { enable }',
'plugin linux_cp_plugin.so { enable }',
@@ -726,7 +723,9 @@ class TestVPP(VyOSUnitTestSHIM.TestCase):
def test_10_vpp_cpu_cores(self):
cpu_cores = '2'
- skip_cores, main_core = get_vpp_cpu_allocation()
+ isolated_cpus = get_isolated_cpus()
+ main_core = str(isolated_cpus[0]) # first isolated core is set as main-core
+ corelist_workers = list_to_range_str(isolated_cpus[1 : int(cpu_cores)])
# verify 'cpu-cores' are set not correctly
# expect raise ConfigError
@@ -738,9 +737,8 @@ class TestVPP(VyOSUnitTestSHIM.TestCase):
self.cli_commit()
config_entries = (
- f'skip-cores {skip_cores}', # reserved cpus skipped for system use
- f'main-core {main_core}', # first available core is set as main-core
- f'workers {int(cpu_cores) - 1}',
+ f'main-core {main_core}',
+ f'corelist-workers {corelist_workers}',
'dev 0000:00:00.0',
)
@@ -1218,7 +1216,7 @@ class TestVPP(VyOSUnitTestSHIM.TestCase):
self.cli_delete(['interfaces', 'ethernet', interface, 'vif-s', vif_s])
self.cli_commit()
- def test_18_kernel_options_hugepages(self):
+ def test_18_1_kernel_options_hugepages(self):
default_hp_size = '2M'
hp_size_1g = '1G'
hp_size_2m = '2M'
@@ -1251,6 +1249,27 @@ class TestVPP(VyOSUnitTestSHIM.TestCase):
self.assertIn(f' hugepagesz={hp_size_1g} hugepages={hp_count_1g}', tmp)
self.assertIn(f' hugepagesz={hp_size_2m} hugepages={hp_count_2m}', tmp)
+ def test_18_2_kernel_options_cpu(self):
+ isolate_cpus = '1,2'
+
+ self.cli_set(
+ ['system', 'option', 'kernel', 'cpu', 'isolate-cpus', isolate_cpus]
+ )
+ self.cli_commit()
+
+ # Read GRUB config file for current running image
+ tmp = read_file(
+ f'{image.grub.GRUB_DIR_VYOS_VERS}/{image.get_running_image()}.cfg'
+ )
+ self.assertIn(f' isolcpus={isolate_cpus}', tmp)
+
+ # verify 'isolate-cpus' are set not correctly
+ # expect raise ConfigError
+ self.cli_set(['system', 'option', 'kernel', 'cpu', 'isolate-cpus', '1-99'])
+ with self.assertRaises(ConfigSessionError):
+ self.cli_commit()
+ self.cli_discard()
+
def test_19_static_arp(self):
host = '192.0.2.10'
mac = '00:01:02:03:04:0a'