diff options
| author | Christian Breunig <christian@breunig.cc> | 2026-03-30 21:29:26 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-30 21:29:26 +0200 |
| commit | 03b412fd9ca754f3ea61c8c7c210babf4aa4d251 (patch) | |
| tree | 85f96d1c79a924c5142dbe98c0de7eb235d318c9 /smoketest/scripts/cli/test_vpp.py | |
| parent | 7a0b2775278338902631ea8bfe51170d5119a876 (diff) | |
| parent | 2f0ef2bfe9d36228795ae46eee23031a37ab5957 (diff) | |
| download | vyos-1x-03b412fd9ca754f3ea61c8c7c210babf4aa4d251.tar.gz vyos-1x-03b412fd9ca754f3ea61c8c7c210babf4aa4d251.zip | |
Merge pull request #5086 from natali-rs1985/T8419
vpp: T8419: Disallow cross-membership between VPP and kernel bonding/bridge interfaces
Diffstat (limited to 'smoketest/scripts/cli/test_vpp.py')
| -rwxr-xr-x | smoketest/scripts/cli/test_vpp.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/smoketest/scripts/cli/test_vpp.py b/smoketest/scripts/cli/test_vpp.py index 108741790..d4238f68c 100755 --- a/smoketest/scripts/cli/test_vpp.py +++ b/smoketest/scripts/cli/test_vpp.py @@ -1401,6 +1401,45 @@ class TestVPP(VyOSUnitTestSHIM.TestCase): # Ensure that VPP process is active self.assertTrue(process_named_running(PROCESS_NAME)) + def test_22_no_vpp_kernel_bridge_cross_membership(self): + vlan = '123' + member = f'{interface}.{vlan}' + bridge_iface = 'br1' + + self.cli_commit() + + # Ensure that VPP process is active + self.assertTrue(process_named_running(PROCESS_NAME)) + + # Attempt to add a VPP interface VLAN as a bridge member + self.cli_set(['interfaces', 'ethernet', interface, 'vif', vlan]) + self.cli_set( + ['interfaces', 'bridge', bridge_iface, 'member', 'interface', member] + ) + + # Adding a VPP interface (or its VLAN) as a bridge member is not allowed + # expect raise ConfigError + with self.assertRaises(ConfigSessionError): + self.cli_commit() + + self.cli_delete(base_path) + self.cli_commit() + + # Ensure interface is a member of bridge + self.assertTrue(os.path.isdir(f'/sys/class/net/{bridge_iface}/lower_{member}')) + + # Adding a bridge member as a VPP interface is not allowed + # expect raise ConfigError + self.cli_set(base_path + ['settings', 'interface', interface]) + with self.assertRaises(ConfigSessionError): + self.cli_commit() + + self.cli_delete(['interfaces', 'bridge']) + self.cli_commit() + + # Ensure that VPP process is active + self.assertTrue(process_named_running(PROCESS_NAME)) + if __name__ == '__main__': unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on()) |
