summaryrefslogtreecommitdiff
path: root/smoketest/scripts
AgeCommit message (Collapse)Author
2026-06-05dhcp-server: T8524: Validate DDNS key-name references defined tsig-keyNataliia Solomko
When a key-name is set under dynamic-dns-update forward-domain or reverse-domain, validate that the referenced TSIG key is defined under dynamic-dns-update tsig-key. Previously the missing key was only caught at runtime, causing kea-dhcp-ddns to fail to start with a fatal error. Also fix a pre-existing bug in `verify_ddns_domain` (formerly `verify_ddns_domain_servers`) where the function was called with the full tagNode dict but iterated as if it received a single domain config, causing the DNS server address check to never actually run.
2026-06-05vrf: T8936: Specify `pref 1998` when deleting fwmark routing rules on VRF ↵Nataliia Solomko
removal
2026-06-04geoip: T5746: Add GeoIP ASN supportsarthurdev
2026-05-28nat: T8939: fix KeyError: 'group' exceptionChristian Breunig
Prevent access to missing dictionary key by probing for availability. On removal of inbound-interface or outbound-interface name CLI node, there was a guard missing when accessing the CLI dictionary containing the config data.
2026-05-28Merge pull request #5109 from statio/fix/vrf-aware-port-checkDaniil Baturin
T8454: fix VRF-bind port availability check in service_https
2026-05-28Merge pull request #5169 from jestabro/exclusive-mask-config-syncJohn Estabrook
T8502: Add exclusion mask to config-sync
2026-05-28T8502: op-mode call needs to wait on completion of remote commitJohn Estabrook
The added calculations were just enough to introduce a race between remote commit completion and show remote config.
2026-05-27T8454: fix VRF-bind port availability check in service_httpsLee Clements
When service https is configured with a listen-address on a VRF interface, adding or changing the vrf option causes the commit to fail with "TCP port 443 is used by another service!" even though no conflict exists. Root cause: check_port_availability() performs a socket.bind() in the default network namespace. When the listen-address belongs to a VRF interface the address is unreachable from the default namespace, so the bind fails with OSError which is misinterpreted as "port in use". The secondary check via is_listen_port_bind_service() also fails because psutil cannot see sockets bound inside a VRF. Fix: add an optional vrf parameter to check_port_availability(). When set, the test socket is bound to the VRF master device via SO_BINDTODEVICE before the bind() call, so that the address is resolved in the correct L3 domain. This is done in-process (no subprocess) and works for both IPv4 and IPv6. service_https verify() now passes the configured VRF (if any) to check_port_availability(). Non-VRF configurations are unaffected. Add smoke test for HTTPS with listen-address inside a VRF. Co-authored-by: Christian Breunig <christian@breunig.cc>
2026-05-27Merge pull request #5208 from alexandr-san4ez/T8538-currentChristian Breunig
snmp: T8538: Persist engineBoots counter across reboots
2026-05-26Merge pull request #5197 from alexandr-san4ez/T7555-currentViacheslav Hletenko
ipsec: T7555: Implement `ikev2-reauth` for site-to-site peers
2026-05-26Merge pull request #5179 from josephillips85/currentChristian Breunig
Policy: T8823: validation of GE and LE according FRR instructions
2026-05-26Merge pull request #5119 from AppMana/T8480Christian Breunig
wan: T8480: add suppress_prefixlength ip rules for internal routing
2026-05-22snmp: T8538: Persist engineBoots counter across rebootsOleksandr Kuchmystyi
Per RFC 3414 section 2.2 (Replay Protection), the `snmpEngineBoots` counter must be stored in non-volatile storage and incremented on every snmpd restart. VyOS was not persisting this value, causing it to reset to 1 after every reboot. SNMP managers cache the engineBoots value from previous sessions. When VyOS resets the counter to 1 after reboot, managers reject incoming SNMPv3 trap packets as "too old", producing errors such as: ``` usm: Message too old. reboot count invalid ``` This change introduces `/config/snmp/engineboots.count` as a disk-backed persist file and it uses to sync the counter into snmpd's conf before the daemon starts.
2026-05-22T8910: ipoe-server: expose accel-ppp idle-timeout optionAlex Kudentsov
Add a CLI knob to terminate idle IPoE sessions after a configurable timeout: set service ipoe-server idle-timeout <0-86400> Today there is no way to age out stale IPoE sessions: clients that go silent (powered off, link down) leave a session record on the router indefinitely. accel-ppp natively supports idle-timeout in its [ipoe] section but VyOS did not expose it. The option is added as a shared accel-ppp include so it can be reused by other accel-ppp services in follow-up PRs.
2026-05-22Merge pull request #5198 from indrajitr/T8862-dhcpv6-reservation-multiViacheslav Hletenko
dhcpv6: T8862: Allow multiple addresses and prefixes for reservations
2026-05-21ntp: T8601: use read_file(..., sudo=True) for config read in smoketestChristian Breunig
2026-05-21ntp: T8601: add local stratum optionanderbak
2026-05-21Merge pull request #5210 from sever-sever/T8822Christian Breunig
T8822: Add BFD strict mode for BGP
2026-05-21Merge pull request #5175 from natali-rs1985/T8509Daniil Baturin
wireguard: T8509: Add fwmark ip rules for VRF-bound interfaces
2026-05-21T8822: Add BFD strict mode for BGPViacheslav Hletenko
2026-05-20load-balancing: T7928: Fix port conflict check to respect `listen-address` ↵Alexandr K.
(#5186) The port availability check in `verify()` was using `front_config.get('address')` which always resolved to `None`, causing the validator to treat any process holding a given port number as a conflict regardless of which IP it was bound to.
2026-05-20ipsec: T7555: Implement `ikev2-reauth` for site-to-site peersOleksandr Kuchmystyi
IKEv2 reauthentication was configurable via CLI but never translated into `swanctl.conf`. Add `reauth_time` to the peer connection template, driven by the `ikev2-reauth` flag on the ike-group and the per-peer override (yes/no/inherit).
2026-05-19high-availability: T7059: Allow disabling persistent connections for ↵Nataliia S.
virtual-server (#5205)
2026-05-18Smoketest: T8879: add missing Kernel config tests for hypervisor platforms ↵Christian Breunig
(#5203) Add checks for common used Hypervisor platforms where we know VyOS runs on. Check that Linux Kernel is build with proper drivers for Hyper-V, VirtIO and VMware.
2026-05-16dhcpv6: T8862: Allow multiple addresses and prefixes for reservationsIndrajit Raychaudhuri
Add support for allowing DHCPv6 to assign reservations for multiple addresses and prefixes to a single client simultaneously.
2026-05-14dhcpv6: T8849: Add time-zone support for Kea DHCPv6 (#5190)Indrajit Raychaudhuri
* dhcpv6: T8849: Add time-zone support for Kea DHCPv6 Add DHCPv6 option support for time zone (RFC4833 options 41 and 42). This includes both the POSIX-style TZ string (`new-posix-timezone`) and the IANA time zone name (`new-tzdb-timezone`). * dhcpv6: T8849: Refactor per code-review suggestion * dhcpv6: T8849: Reformat for compliance
2026-05-13T8823: validation of GE and LE according FRR instructionsJose Phillips
2026-05-13T8823: validation of GE and LE according FRR instructionsJose Phillips
2026-05-13dhcp: T8848: Fix timezone pcode data (#5189)Indrajit Raychaudhuri
According to Kea documentation: When a data field is a string and that string contains the comma (`,`; U+002C) character, the comma must be escaped with two backslashes (`\\,`; U+005C) because both the routine splitting of CSV data into fields and JSON use the same escape character. A single escape (`\,`) would make the JSON invalid. Accordingly, the pcode generated for time-zone should have the `,` double escaped. For example, `"GMT0BST,M3.5.0/1,M10.5.0"` should be rendered as `"GMT0BST\\,M3.5.0/1\\,M10.5.0"`. See: https://kea.readthedocs.io/en/stable/arm/dhcp4-srv.html#standard-dhcpv4-options
2026-05-13bgp: T8588: Add match source-peer to policy route-map (#5149)Robin Christ
2026-05-13T8600: Add option to change logging verbosity in Kea (#5178)Nataliia S.
2026-05-12wan: T8480: make only-default-route opt-indoctorpangloss
2026-05-12frr: T8606: add watchfrr timeout option (#5165)anderbak
Co-authored-by: Christian Breunig <christian@breunig.cc>
2026-05-12Merge pull request #5183 from c-po/ice-i40eChristian Breunig
smoketest: T6847: probe for Intel I40E and IAVF Out-Of-Tree drivers
2026-05-11smoketest: T6847: probe for Intel I40E and IAVF Out-Of-Tree driversChristian Breunig
The Intel iavf driver (formerly i40evf) is the Linux virtual function driver for modern Intel Ethernet adapters supporting SR-IOV, including the X700/E800 series. Renamed to iavf to support future devices, it replaced i40evf entirely by 2019. The driver facilitates high-performance networking in virtualized environments.
2026-05-11Merge pull request #5184 from hedrok/T8612-update-frr-10.6.1Christian Breunig
T8612: upgrade frr to 10.6.1
2026-05-11Merge pull request #5171 from natali-rs1985/T8607Christian Breunig
bgp: T8607: Add CLI support for BGP update-delay and establish-wait
2026-05-11smoketests: T8845: missing base-class call to commit() in tearDownClass()Christian Breunig
The smoketest framework heavily relies on deriving common code paths. The tearDownClass() is called when a testcase finishes and testcases like protocols BGP delete CLI nodes before calling the base class. The base-class never calls commit() thus the deletions are discarded instead of committed. test_protocols_bgp.py @classmethod def tearDownClass(cls): cls.cli_delete(cls, ['policy', 'route-map']) cls.cli_delete(cls, ['policy', 'prefix-list']) cls.cli_delete(cls, ['policy', 'prefix-list6']) super(TestProtocolsBGP, cls).tearDownClass() base class base_vyostest_shim.py @classmethod def tearDownClass(cls): # discard any pending changes which might caused a messed up config cls._session.discard()
2026-05-11wireguard: T8509: Add fwmark ip rules for VRF-bound interfacesNataliia Solomko
When a WireGuard interface has both fwmark and VRF configured, outgoing tunnel packets marked with the fwmark were not routed into the correct VRF routing table, causing them to hit the l3mdev unreachable rule instead. Add an ip rule at priority 1998 (after l3mdev at 1000 and before l3mdev unreachable at 2000) to route fwmark-tagged packets into the correct VRF routing table.
2026-05-11bgp: T8607: Add CLI support for BGP update-delay and establish-waitNataliia Solomko
2026-05-09tests: T8612: FRR 10.6 ospf ABR required for virtual-linkKyrylo Yatsenko
FRR commit 4257c1dc28e71234f9338f1623a8fe677445db7e introduced check that virtual-link is allowed only for ABR router. Update test accordingly.
2026-05-09Merge pull request #5170 from indrajitr/dhcp-vendor-space-fixChristian Breunig
kea: T8763: Fix vendor-encapsulated-options space
2026-05-06kea: T8763: Fix formatting for ruff validationIndrajit Raychaudhuri
2026-05-06kea: T8763: Smoketest vendor-encapsulated-options spaceIndrajit Raychaudhuri
2026-05-06Merge pull request #5159 from c-po/kernel-6.18Christian Breunig
T8147: Update Linux Kernel to 6.18
2026-05-06smoketest: T8147: add Kernel option tests for dummy interfacesChristian Breunig
2026-05-03smoketest: T8147: add Kernel option tests for MACVLANChristian Breunig
2026-05-03smoketest: T8147: add Kernel option tests for VXLANChristian Breunig
2026-05-03smoketest: T8147: add Kernel option tests for WireGuardChristian Breunig
2026-05-03smoketest: T8147: add CONFIG_STP to bridge kernel option listChristian Breunig