summaryrefslogtreecommitdiff
path: root/smoketest/scripts/cli/test_vpp.py
diff options
context:
space:
mode:
authorNataliia Solomko <natalirs1985@gmail.com>2025-09-15 19:12:04 +0300
committerNataliia Solomko <natalirs1985@gmail.com>2025-09-17 17:49:45 +0300
commit03ded6c071b9bfee98c7ccf3983be56f0ad98c4f (patch)
treefb4a131462fb3845982f9aa5c2158a07798368a5 /smoketest/scripts/cli/test_vpp.py
parent4669748ca1b39dc0cb54496d5ce695d05c8431f7 (diff)
downloadvyos-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/test_vpp.py')
-rwxr-xr-xsmoketest/scripts/cli/test_vpp.py50
1 files changed, 50 insertions, 0 deletions
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)