summaryrefslogtreecommitdiff
path: root/smoketest/scripts/cli/test_interfaces_bridge.py
diff options
context:
space:
mode:
authorjack9603301 <jack9603301@163.com>2021-01-09 21:32:19 +0800
committerjack9603301 <jack9603301@163.com>2021-01-15 16:26:33 +0800
commit38566b8fbdec60b1601ed127fd759c85802909e9 (patch)
tree00a658fbeb2d2b27fe3d7def53b9bbdb681de0c3 /smoketest/scripts/cli/test_interfaces_bridge.py
parent931692c5e4b15eb5ab62cd537ffd915365429e1c (diff)
downloadvyos-1x-38566b8fbdec60b1601ed127fd759c85802909e9.tar.gz
vyos-1x-38566b8fbdec60b1601ed127fd759c85802909e9.zip
bridge: T3137: Let VLAN aware bridge approach the behavior of professional equipment
According to the consensus, the specific behavior of a VLAN aware bridge should conform to the behavior of professional equipment. This commit makes a significant change to the behavior of VLAN aware bridge, and has the following behaviors: 1. Disable `vif 1` configuration 2. When the VLAN aware bridge is enabled, the parent interface is always VLAN 1 3. When `native-vlan` is not configured, the default behavior of the device is `native-vlan 1` 4. The VLAN ids forwarded by the bridge are determined by `vif` 5. It has an `enable-vlan` node to enable VLAN awareness 6. VLAN configuration is allowed only when VLAN aware bridge is activated
Diffstat (limited to 'smoketest/scripts/cli/test_interfaces_bridge.py')
-rwxr-xr-xsmoketest/scripts/cli/test_interfaces_bridge.py25
1 files changed, 20 insertions, 5 deletions
diff --git a/smoketest/scripts/cli/test_interfaces_bridge.py b/smoketest/scripts/cli/test_interfaces_bridge.py
index 464226b6f..c1e98cc67 100755
--- a/smoketest/scripts/cli/test_interfaces_bridge.py
+++ b/smoketest/scripts/cli/test_interfaces_bridge.py
@@ -25,14 +25,13 @@ from netifaces import interfaces
from vyos.ifconfig import Section
from vyos.util import cmd
from vyos.util import read_file
+from vyos.validate import is_intf_addr_assigned
class BridgeInterfaceTest(BasicInterfaceTest.BaseTest):
def setUp(self):
self._test_ip = True
self._test_ipv6 = True
self._test_ipv6_pd = True
- self._test_vlan = True
- self._test_qinq = True
self._base_path = ['interfaces', 'bridge']
self._mirror_interfaces = ['dum21354']
self._members = []
@@ -52,6 +51,12 @@ class BridgeInterfaceTest(BasicInterfaceTest.BaseTest):
self._interfaces = list(self._options)
super().setUp()
+
+ def tearDown(self):
+ for intf in self._interfaces:
+ self.session.delete(self._base_path + [intf])
+
+ super().tearDown()
def test_add_remove_bridge_member(self):
# Add member interfaces to bridge and set STP cost/priority
@@ -88,11 +93,15 @@ class BridgeInterfaceTest(BasicInterfaceTest.BaseTest):
self.session.commit()
def test_bridge_vlan_filter(self):
+
+ vif_vlan = 2
# Add member interface to bridge and set VLAN filter
for interface in self._interfaces:
base = self._base_path + [interface]
- self.session.set(base + ['vif', '1', 'address', '192.0.2.1/24'])
- self.session.set(base + ['vif', '2', 'address', '192.0.3.1/24'])
+ self.session.set(base + ['enable-vlan'])
+ self.session.set(base + ['address', '192.0.2.1/24'])
+ self.session.set(base + ['vif', str(vif_vlan), 'address', '192.0.3.1/24'])
+ self.session.set(base + ['vif', str(vif_vlan), 'mtu', self._mtu])
vlan_id = 101
allowed_vlan = 2
@@ -159,7 +168,13 @@ class BridgeInterfaceTest(BasicInterfaceTest.BaseTest):
for member in self._members:
self.assertIn(member, bridge_members)
-
+
+ # Check VLAN sub interface
+ for intf in self._interfaces:
+ vif = f'{intf}.{vif_vlan}'
+ tmp = read_file(f'/sys/class/net/{vif}/mtu')
+ self.assertEqual(tmp, self._mtu)
+
# delete all members
for interface in self._interfaces:
self.session.delete(self._base_path + [interface, 'member'])