diff options
| author | Nataliia Solomko <natalirs1985@gmail.com> | 2025-09-15 19:12:04 +0300 |
|---|---|---|
| committer | Nataliia Solomko <natalirs1985@gmail.com> | 2025-09-17 17:49:45 +0300 |
| commit | 03ded6c071b9bfee98c7ccf3983be56f0ad98c4f (patch) | |
| tree | fb4a131462fb3845982f9aa5c2158a07798368a5 /smoketest/scripts/cli | |
| parent | 4669748ca1b39dc0cb54496d5ce695d05c8431f7 (diff) | |
| download | vyos-1x-03ded6c071b9bfee98c7ccf3983be56f0ad98c4f.tar.gz vyos-1x-03ded6c071b9bfee98c7ccf3983be56f0ad98c4f.zip | |
T7796: PPPoE-server add mapping in vpp if vpp-cp is enabled
Diffstat (limited to 'smoketest/scripts/cli')
| -rwxr-xr-x | smoketest/scripts/cli/test_service_pppoe-server.py | 15 | ||||
| -rwxr-xr-x | smoketest/scripts/cli/test_vpp.py | 50 |
2 files changed, 57 insertions, 8 deletions
diff --git a/smoketest/scripts/cli/test_service_pppoe-server.py b/smoketest/scripts/cli/test_service_pppoe-server.py index 609fb7aaa..8a6886cb9 100755 --- a/smoketest/scripts/cli/test_service_pppoe-server.py +++ b/smoketest/scripts/cli/test_service_pppoe-server.py @@ -212,18 +212,17 @@ class TestServicePPPoEServer(BasicAccelPPPTest.TestCase): self.assertIn('accept-blank-service=1', config) def test_accel_vpp_cp(self): - interface_vpp = f'{interface},vpp-cp=true' - self.basic_config() - self.set(['interface', interface, 'vpp-cp']) self.cli_commit() - # Validate configuration values - conf = ConfigParser(allow_no_value=True, delimiters='=') - conf.read(self._config_file) + self.set(['interface', interface, 'vpp-cp']) - # Validate configuration - self.assertEqual(conf['pppoe']['interface'], interface_vpp) + # vpp-cp require VPP service to be started and interface is configured in VPP + with self.assertRaises(ConfigSessionError): + self.cli_commit() + + # All other checks for PPPoE control-plane integration + # with VPP are verified in test_vpp.py if __name__ == '__main__': diff --git a/smoketest/scripts/cli/test_vpp.py b/smoketest/scripts/cli/test_vpp.py index b55db9e49..0611d2851 100755 --- a/smoketest/scripts/cli/test_vpp.py +++ b/smoketest/scripts/cli/test_vpp.py @@ -1445,6 +1445,56 @@ class TestVPP(VyOSUnitTestSHIM.TestCase): self.assertEqual(sysctl_read('vm.max_map_count'), '65530') self.assertEqual(sysctl_read('kernel.shmmax'), '8589934592') + def test_20_vpp_pppoe_mapping(self): + config_file = '/run/accel-pppd/pppoe.conf' + pool = "TEST-POOL" + vni = '23' + pppoe_base = ['service', 'pppoe-server'] + + self.cli_set(['interfaces', 'ethernet', interface, 'vif', vni]) + + # Basic pppoe-server config + self.cli_set(pppoe_base + ['authentication', 'mode', 'noauth']) + self.cli_set(pppoe_base + ['gateway-address', '192.0.2.1']) + self.cli_set(pppoe_base + ['client-ip-pool', pool, 'range', '192.0.2.0/24']) + self.cli_set(pppoe_base + ['default-pool', pool]) + + # Enable PPPoE control-plane integration with VPP + self.cli_set(pppoe_base + ['interface', interface, 'vpp-cp']) + self.cli_set(pppoe_base + ['interface', f'{interface}.{vni}', 'vpp-cp']) + + self.cli_commit() + + # Validate configuration values + config = read_file(config_file) + + # Validate configuration + self.assertIn(f'interface={interface},vpp-cp=true', config) + self.assertIn(f'interface={interface}.{vni},vpp-cp=true', config) + + # Check pppoe mapping + _, out = rc_cmd('sudo vppctl show pppoe control-plane binding') + self.assertRegex(out, rf'{interface}\s+tap4096') + self.assertRegex(out, rf'{interface}.{vni}\s+tap4096.23') + + # check if dependency is called and mapping is correct after changes in vpp script + self.cli_set( + base_path + ['settings', 'interface', interface, 'dpdk-options', 'promisc'] + ) + self.cli_commit() + + # Check pppoe mapping + _, out = rc_cmd('sudo vppctl show pppoe control-plane binding') + self.assertRegex(out, rf'{interface}\s+tap4096') + self.assertRegex(out, rf'{interface}.{vni}\s+tap4096.23') + + # delete PPPoE config + self.cli_delete(pppoe_base) + + # delete vif Ethernet interface + self.cli_delete(['interfaces', 'ethernet', interface, 'vif']) + self.cli_commit() + if __name__ == '__main__': unittest.main(verbosity=2) |
