summaryrefslogtreecommitdiff
path: root/smoketest/scripts/cli/test_interfaces_bonding.py
AgeCommit message (Collapse)Author
2026-06-16T8923: normalize "can not" to "cannot"Christian Breunig
Replace two-word "can not" / "Can not" with "cannot" across comments, ConfigError messages, CLI help text, and op-mode output. Standard SNMP MIB files under mibs/ are left unchanged.
2026-03-10vyos.ifconfig: T8358: clear qdiscs when deleting mirror CLI nodeChristian Breunig
When removing the mirror CLI node to stop mirroring or redirecting traffic to another interface, the egress configuration was not cleared. This caused traffic to continue being sent out the SPAN port even after the node was removed. Fix by properly clearing all tc(8) qdiscs. Update smoketests to verify nothing remains after mirror deletion.
2025-12-26bond: T2416: support hot-add/remove of bond member interfacesChristian Breunig
Previously, adding or removing a bond member interface would force the entire bond into an admin-down state, removing and re-adding all member interfaces. This caused unnecessary link up/down events and excessive log noise on partner devices. This change refactors the code to allow hot-adding and removal of bond member interfaces without disrupting existing members, minimizing link state changes and log entries.
2025-11-21bond: T8023: validate member interface min/max MTUChristian Breunig
It is impossible to set the bond interface MTU to be larger or lower then the limits of the underlaying interface MTU. Add proper commit validation and smoketest.
2025-10-16frr: T7664: drop BASH/SED implementation in smoketest getFRRconfig()Christian Breunig
Rathern then re-inventing the wheel by outself we import the frr-reload.py script and their read-in function of the current vtysh configuration.
2025-09-30smoketest: T7858: make failfast main argument dynamicChristian Breunig
When smoketest debugging is enabled (by creating the file /tmp/vyos.smoketest.debug), all available smoketests will fail fast instead of running to completion. This helps reduce test time when something is broken or undergoing refactoring, as it avoids waiting for the full test suite to finish.
2025-08-11bond: T7571: fix inconsistent MAC address behaviourChristian Breunig
After upgrading from VyOS 1.3 to 1.4, there is an inconsistent behavior with MAC address assignment on bonded interfaces. In VyOS 1.3, bond interfaces used a hardware MAC address from one of the member interfaces. In 1.4, a synthetic MAC is used by default - generated by the Linux Kernel. Oddly, setting mode 802.3ad (which is also the default) temporarily causes the hardware MAC to be used again - until a reboot, after which the synthetic MAC returns. Deleting the mode config again causes the hardware MAC to be used. This inconsistent behavior has caused issues with MAC-based filtering in networks. The fix is to retrive the hardware MAC address from the first bond member interface and use set it explicitly for the bond interface.
2025-06-28T7591: remove copyright years from source filesChristian Breunig
The legal team says years are not necessary so we can go ahead with it, since it will simplify backporting. Automatically removed using: git ls-files | grep -v libvyosconfig | xargs sed -i -E \ 's/^# Copyright (19|20)[0-9]{2}(-[0-9]{4})? VyOS maintainers.*/# Copyright VyOS maintainers and contributors <maintainers@vyos.io>/g' In addition we will error-out during "make" if someone re-adds a legacy copyright notice
2025-02-23bond: T7191: fix error message when member interface is used multiple timesChristian Breunig
Sharing the same physical interface among multiple bond interfaces causes information to be lost within the error message set interfaces bonding bond10 member interface eth1 set interfaces bonding bond10 member interface eth2 set interfaces bonding bond20 member interface eth1 set interfaces bonding bond20 member interface eth2 commit Results in: [ interfaces bonding bond10 ] Can not add interface "eth1" to bond, it is already a member of bond "b"! [[interfaces bonding bond10]] failed [ interfaces bonding bond20 ] Can not add interface "eth1" to bond, it is already a member of bond "b"! It should infact output the full name of the bond interface.
2024-12-30frr: T6746: additional improvements after 10.2 upgrade (#4259)Christian Breunig
* smoketest: T6746: add substring search in getFRRconfig() Some daemons (e.g. bgpd) have several nested substrings/sections like router bgp 100 address-family ipv4 unicast .. exit-address-family exit We can now use getFRRconfig() with the substring option to extract only address-family ipv4 unicast .. exit-address-family Making config validation more granular * frrender: T6746: only re-render FRR config if config_dict did change * frrender: T6746: fix naming glitch isis/eigrp * frrender: T6746: add --stdout option when running with debug flags * smoketest: T6746: remove unneeded commit_guard time It was an invalid workarround as the underlaying issue seems to be a race condition in CStore. The commit process is not finished until all pending files from VYATTA_CHANGES_ONLY_DIR are copied to VYATTA_ACTIVE_CONFIGURATION_DIR. This is done inside libvyatta-cfg1 and the FUSE UnionFS part. On large non-interactive commits FUSE UnionFS might not replicate the real state in time, leading to errors when querying the working and effective configuration. TO BE DELETED AFTER SWITCH TO IN MEMORY CONFIG
2024-12-16frr: T6746: remove superseeded vyos.frr moduleChristian Breunig
2024-12-16frr: T6747: make daemon definitions re-usable for both conf-mode and smoketestsChristian Breunig
2024-05-10bond: T6303: must reset system-mac to 00:00:00:00:00:00 on deletionChristian Breunig
2024-05-10bond: T6303: add system mac address on bondfett0
2023-10-30bond: T5698: add support for EVPN MultihomingChristian Breunig
set interfaces bonding bond10 evpn es-df-pref '50' set interfaces bonding bond10 evpn es-id '10' set interfaces bonding bond10 evpn es-sys-mac '01:23:45:67:89:ab' set interfaces bonding bond10 member interface 'eth3' set interfaces bonding bond10 mode '802.3ad'
2023-08-07smoketest: make use of vlan=False API when calling Section.interfacesChristian Breunig
2023-07-20smoketest: remove failfast=True on unittest startupChristian 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-07-10bond: T4522: add ability to specify mii monitor interval via CLIChristian Poessinger
Linux Kernel supports to specify the MII link monitoring frequency in milliseconds. This determines how often the link state of each slave is inspected for link failures. A value of zero disables MII link monitoring. A value of 100 is a good starting point. The default value is 100. set interfaces bonding bond0 mii-mon-interval <n>
2022-07-10smoketest: bond: remove second instance of layer2+3 hash-policy testChristian Poessinger
2022-07-10smoketest: bond: add testcase for conflicting bridge memberChristian Poessinger
A bond member can not also be used as a member of a bridge interface.
2022-07-10smoketest: bond: add testcase for source-interface re-useChristian Poessinger
A bond member is not allowed to also be used as a source interface for e.g. PPPoE or MACsec.
2022-04-25smoketest: bugfix on proper inheritance levels for classmethodChristian Poessinger
2022-04-14smoketest: T4354: Add test for uniq bonding membersViacheslav Hletenko
Extend bonding smoketest Add descriptions to bonding members We encountered a situation where adding any configuration for member of bonding interface excludes the interface from bonding
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.
2022-02-06smoketest: bond: T4228: verify bond member is only used onceChristian Poessinger
2021-06-25smoketest: bonding: T3649: fix typo in testcase nameChristian Poessinger
2021-06-25T3649: bonding: Add additional hash policiesDmitriyEshenko
2021-05-13bonding: T3543: add support to configure lact-rate (slow or fast)Christian Poessinger
Option specifying the rate in which we'll ask our link partner to transmit LACPDU packets in 802.3ad mode. set interfaces bonding bond0 lacp-rate <slow|fast> slow: Request partner to transmit LACPDUs every 30 seconds (default) fast: Request partner to transmit LACPDUs every 1 second
2021-05-13smoketest: bonding: test minimum link assignmentChristian Poessinger
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-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-16smoketest: interfaces: use provided unittest framework assert methodsChristian 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.
2020-12-29smoketest: adjust test method namesChristian Poessinger
This is for better readability during testruns
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-03interface: T3089: Migrate port mirroring to vyos-1xjack9603301
2020-09-17smoketest: bond: T2894: extend commentsChristian Poessinger
2020-09-17smoketest: bond: T2894: vlan interfaces must not remove bond membersChristian Poessinger
A regression showed that when adding a vif to a bond the bond interface will loose all its member interfaces. This is - of course - super bad!
2020-09-15bonding: T2515: preserve interface admin state when removing from bondChristian Poessinger
Removing a member from a bond/LACP will turn the physical interface always in admin-down state. This is invalid, the interface should be placed into the state configured on the VyOS CLI. Smoketest on bond interfaces is extended to check this behavior.
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 ...