summaryrefslogtreecommitdiff
path: root/smoketest/scripts/cli/test_interfaces_bridge.py
AgeCommit message (Collapse)Author
2024-03-21bridge: T6125: support 802.1ad (ethertype 0x88a8) VLAN filteringChristian Breunig
Linux bridge uses EtherType 0x8100 by default. In some scenarios, an EtherType value of 0x88A8 is required. Reusing CLI command from VIF-S (QinQ) interfaces: set interfaces bridge br0 protocol 802.1ad (cherry picked from commit 9c9b1febff6863ccd3632a04d9e307909b3efe7a)
2024-02-18smoketest: T6043: proper cleanup after testcaseChristian Breunig
This extends commit dbe8c613b ("bridge: T6043: do not call vxlan dependency if interface does not exist (yet)") with a proper cleanup of additional interfaces created during the testrun. (cherry picked from commit 4cb80868ab3ab35453d8609392ca470a02764fac)
2024-02-18bridge: T6043: do not call vxlan dependency if interface does not exist (yet)Christian Breunig
In order to keep the proper priority list during system startup and on initial setup/commit for this feature the dependent VXLAN code should not be called, if the interface in question does not exist (yet). (cherry picked from commit dbe8c613bb80bc8b714398825054ade5942ea75b)
2023-08-07smoketest: make use of vlan=False API when calling Section.interfacesChristian Breunig
2023-08-06T5195: move helpers from vyos.validate to vyos.utils packageChristian Breunig
2023-07-14T5195: vyos.util -> vyos.utils package refactoring (#2093)Christian Breunig
* T5195: move run, cmd, call, rc_cmd helper to vyos.utils.process * T5195: use read_file and write_file implementation from vyos.utils.file Changed code automatically using: find . -type f -not -path '*/\.*' -exec sed -i 's/^from vyos.util import read_file$/from vyos.utils.file import read_file/g' {} + find . -type f -not -path '*/\.*' -exec sed -i 's/^from vyos.util import write_file$/from vyos.utils.file import write_file/g' {} + * T5195: move chmod* helpers to vyos.utils.permission * T5195: use colon_separated_to_dict from vyos.utils.dict * T5195: move is_systemd_service_* to vyos.utils.process * T5195: fix boot issues with missing imports * T5195: move dict_search_* helpers to vyos.utils.dict * T5195: move network helpers to vyos.utils.network * T5195: move commit_* helpers to vyos.utils.commit * T5195: move user I/O helpers to vyos.utils.io
2023-05-27smoketest: T5242: automatically detect interface "capabilities"Christian Breunig
Current state of vyos-1x smoketests have hardcoded features to test. The feature support is inside the base class BasicInterfaceTest class BasicInterfaceTest: class TestCase(VyOSUnitTestSHIM.TestCase): _test_dhcp = False _test_ip = False _test_mtu = False _test_vlan = False _test_qinq = False _test_ipv6 = False _test_ipv6_pd = False _test_ipv6_dhcpc6 = False _test_mirror = False All derived classes need to enable the tests that are supported on this interface type. Adding new feature to a given interface (like vif support in T5237) require manually enabling those tests for the given interface. It would make much more sense, if we can query the config backend for supported interface options - or in other words - is there a CLI node available that corresponds to set interfaces ethernet <name> vif - if that's the case, _test_vlan = True.
2022-08-22bridge: T4632: vlan aware bridge lacks CPU forwardingChristian Poessinger
The VLAN aware bridge was forwarding traffic between member ports, but traffic destined torwards the CPU was dropped. This resulted in a gateway not reachable or DHCP leases that could not be handed out. Tested via: VyOS set interfaces bridge br0 enable-vlan set interfaces bridge br0 member interface eth1 allowed-vlan '10' set interfaces bridge br0 member interface eth1 allowed-vlan '20' set interfaces bridge br0 member interface eth1 allowed-vlan '30' set interfaces bridge br0 member interface eth1 allowed-vlan '40' set interfaces bridge br0 member interface eth1 native-vlan '40' set interfaces bridge br0 member interface eth2 allowed-vlan '30' set interfaces bridge br0 member interface eth2 allowed-vlan '20' set interfaces bridge br0 member interface eth2 allowed-vlan '10' set interfaces bridge br0 member interface eth2 allowed-vlan '40' set interfaces bridge br0 vif 10 address '10.0.10.1/24' set interfaces bridge br0 vif 20 address '10.0.20.1/24' set interfaces bridge br0 vif 30 address '10.0.30.1/24' set interfaces bridge br0 vif 40 address '10.0.40.1/24' Arista vEOS vlan 10,20,30,40 interface Ethernet1 switchport trunk allowed vlan 10,20,30,40 interface Vlan10 ip address 10.0.10.2/24 interface Vlan20 ip address 10.0.20.2/24 interface Vlan30 ip address 10.0.30.2/24 interface Vlan40 ip address 10.0.40.2/24 interface Ethernet1 switchport trunk allowed vlan 10,20,30,40 switchport mode trunk spanning-tree portfast Cisco vIOS interface GigabitEthernet0/0 ip address 10.0.40.3 255.255.255.0 duplex auto speed auto media-type rj45 ! interface GigabitEthernet0/0.10 encapsulation dot1Q 10 ip address 10.0.10.3 255.255.255.0 ! interface GigabitEthernet0/0.20 encapsulation dot1Q 20 ip address 10.0.20.3 255.255.255.0 ! interface GigabitEthernet0/0.30 encapsulation dot1Q 30 ip address 10.0.30.3 255.255.255.0 !
2022-07-31smoketest: bridge: T4565: changes to lower interfaces must not destroy VLAN ↵Christian Poessinger
aware bridge
2022-07-11smoketest: bridge: also test QinQ bridge member interfacesChristian Poessinger
2022-07-04smoketest: bridge: T4498: add IGMP testcaseChristian Poessinger
2022-04-25smoketest: bugfix on proper inheritance levels for classmethodChristian Poessinger
2022-02-20smoketest: dhcp: T4203: move testcase to base classChristian Poessinger
We do not only provide DHCP functionality to ethernet interfaces, it's a common feature so the testcase should be made available for multiple interface types.
2021-05-24smoketest: vif: T3570: fix vlan interface MTU test for pseudo-ethernet ↵Christian Poessinger
interfaces The MTU size of the source-interface must be greater or equal to the MTU of the pseudo ethernet interface.
2021-05-21vlan: T3551: support runtime changing of ingress and egress QoS settingsJACK
2021-03-19bridge: T3415: add port isolation / private-vlan optionChristian Poessinger
Private VLAN, also known as port isolation, is a technique in computer networking where a VLAN contains switch ports that are restricted such that they can only communicate with a given "uplink". The restricted ports are called "private ports". Each private VLAN typically contains many private ports, and a single uplink. The uplink will typically be a port (or link aggregation group) connected to a router, firewall, server, provider network, or similar central resource. Q: https://en.wikipedia.org/wiki/Private_VLAN
2021-03-17smoketest: add shim for every test to re-use common tastsChristian Poessinger
Currently every smoketest does the setup and destruction of the configsession on its own durin setUp(). This creates a lot of overhead and one configsession should be re-used during execution of every smoketest script. In addiion a test that failed will leaf the system in an unconsistent state. For this reason before the test is executed we will save the running config to /tmp and the will re-load the config after the test has passed, always ensuring a clean environment for the next test.
2021-03-01smoketest: vif: T3349: derive test_vif_8021q_lower_up_down for bridgeChristian Poessinger
Commit 49bc3f1e ("vif: T3349: use fixed ordering when enabling parent and child interface") also shipped a smoketest to verify the functionality of the parent admin up/down problematic from T3349. The generic testcase failed for the VLAN aware bridge as vlan-awarenes was not turned on.
2021-01-26smoketest: refactor setUp() for all interface based testcasesChristian Poessinger
It does not make sense (at all!) to re-initialize the entire class with every call to setUp(). We neither change the enabled/disabled tastcases dynamically, not do we adjust the testinterfaces during a run. Remove the runtime overhead and place one-time init calls into setUpClass() instead.
2021-01-25smoketest: dhcpv6: add client smoketestsChristian Poessinger
2021-01-17smoketest: bridge: T3226: Remove redundant codejack9603301
In 558e1ca9, we found that the interface created by a test case was not cleaned up completely, which led to the destruction of smoke test. But in fact, the test case function retained an invalid deletion configuration code. We added a repair patch and forgot to delete the invalid code. Now we delete it
2021-01-17smoketest: bridge: T3226: Repair bridge smoke test damagejack9603301
2021-01-16smoketest: interfaces: use provided unittest framework assert methodsChristian Poessinger
2021-01-15smoketest: bridge: T3137: Optimize smoketestjack9603301
2021-01-15bridge: T3137: Let VLAN aware bridge approach the behavior of professional ↵jack9603301
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
2021-01-14smoketest: bridge: remove failfast=TrueChristian Poessinger
2021-01-12smoketest: interface: enable ip/ipv6 tests on additional interfacesChristian Poessinger
2021-01-08smoketest: bridge: bond: enable ip subsystem testsChristian Poessinger
2021-01-05smoketest: mirror: T3169: re-add mirror / SPAN test caseChristian Poessinger
Commit ef629504d4 ("smoketest: mirror: drop testcase") dropped the smoketests entirely as they have been programmed in a wrong way leading to outages on live development systems which used dummy interfaces for management traffic.
2021-01-03smoketest: bridge: cleanup hardcoded interfaces for vlan-aware bridgeChristian Poessinger
2021-01-03Partial Revert "interfaces: T3114: Fix VLAN-aware bridge setting failure"Christian Poessinger
This reverts parts of commit c4048b2047f693436b38196632cddf65beb67a86 because when tear-downing config session entire interface paths are removed with non test related interface (all dummy interfaces) this breaks e.g. remote connections when connected to one of the dummy interface IP addresses for management.
2020-12-29smoketest: interfaces: adjust to internal API changesChristian Poessinger
Commit 29e32d39 ("smoketest: T1466: add eapol tests") renamed interface methods of class BasicInterfaceTest, those change was not reflected in every derived class.
2020-12-29smoketest: run all tests with verbosity=2Christian Poessinger
2020-12-13smoketest: T3114: Completely remove `commit` in `setUp`jack9603301
2020-12-13interfaces: T3114: Fix VLAN-aware bridge setting failurejack9603301
2020-12-03interface: T3089: Migrate port mirroring to vyos-1xjack9603301
2020-11-14bridge: T3042: Better fix implementation errorsjack9603301
In #601, I provided a basic patch. Under this patch, I rely on vif to detect the vlan id range that the bridge should flow through, which may lead to greater redundancy in the configuration, so I am considering detecting effective vlan filters In setting the range of vlan id that is required to flow through the bridge, I use set() to complete the deduplication of this vlan id and set it to the bridge uniformly (at the same time, I slightly modified the smoke test script)
2020-11-10bridge: T3042: Support VLAN filter and VLAN sub-interface on the bridgejack9603301
2020-10-01vlan: configdict: T2945: determine if vlan is part of bridgeChristian Poessinger
Every interface knows if it is part of a bridge or not - except a VLAN (VIF) interface. Also VLANs should be aware of its master bridge. Add a testcase to ensure when VIFs on an interface change the bridge does not loos one of it's members.
2020-08-27Merge branch 'master' of github.com:vyos/vyos-smoketest into ↵Christian Poessinger
vyos-smoketest-integration (T2832) * 'master' of github.com:vyos/vyos-smoketest: (153 commits) pppoe-server: test some more values lcd: adjust to cli changes lcd: adapt test to new CLI design pppoe-server: initial smoketest with local and radius auth pppoe: validate dhcpv6 client will be started wireless: validate hostapd/wpa_supplicant is running pppoe: sync to new dhcpv6-pd cli anyconnect: T2812: add basic testing ethernet: check interface disable state router-advert: check 'infinity' option in script logic ssh: config file is now volatile (moved to /run) ipv6: link-local: test address assignment on interfaces router-advert: add initial test mdns-repeater: add basic test pseudo-ethernet: extend smoketests with VIFs l2tpv3: add initial interface test wireless: use library function for loading kernel modules ethernet: test "ip" subtree of interface for e.g. ARP settings pppoe: use assertEqual() service: bcast-relay: add initial tests ...