summaryrefslogtreecommitdiff
path: root/src/conf_mode
AgeCommit message (Collapse)Author
2026-01-27Merge pull request #4945 from natali-rs1985/T8143John Estabrook
pppoe-server: T8143: Set 'vpp-cp' option automatically if interface is in VPP
2026-01-22Merge pull request #4942 from natali-rs1985/T8125Daniil Baturin
vpp: T8125: Enable ip4-dhcp-client-detect feature if interface address is configured as DHCP
2026-01-22Merge pull request #4947 from natali-rs1985/T8183Daniil Baturin
vpp: T8143: Incorrect mapping in IPFIX for bond interfaces
2026-01-22ethtool: T7730: Add configuration coalesce for interfaceOleksandr Kuchmystyi
This change introduces CLI support for configuring network interface interrupt coalescing parameters via `netlink`. Note: Not all NIC drivers support interrupt coalescing. On unsupported interfaces, `netlink` returns an error and the VyOS commit will fail.
2026-01-21vpp: T8125: Enable ip4-dhcp-client-detect feature if interface address is ↵Nataliia Solomko
configured as DHCP DHCP address cannot be assigned on VPP interfaces without enabling the 'ip4-dhcp-client-detect' feature
2026-01-21geoip: T8049: Add MaxMind database supportsarthurdev
2026-01-21geoip: T7926: Refactor geoip handlingsarthurdev
* Move core logic to separate vyos.geoip module * Use a sqlite database for storing and querying address ranges by country * Remove downloaded geoip ranges once loaded into sqlite db * No longer rebuild geoip sets on each commit unless necessary * Allows for extensibility using other geoip data vendors
2026-01-19pppoe-server: T8143: Set 'vpp-cp' option automatically if interface is in VPPNataliia Solomko
2026-01-16vpp: T8143: Incorrect mapping in IPFIX for bond interfacesNataliia Solomko
2026-01-16T8187: fix watchdog timeout validation if kernel min/max timeout are zeroGrant Slater
2026-01-15Merge pull request #4843 from Firefishy/T7101Daniil Baturin
T7101: Add hardware watchdog support via systemd
2026-01-15Merge pull request #4923 from alexandr-san4ez/T7633-currentChristian Breunig
openvpn: T7633: Add support for `data-ciphers-fallback` in site-to-site tunnels
2026-01-14T7101: Add support for hardware watchdog support via systemdGrant Slater
2026-01-13Merge pull request #4939 from c-po/vrf-pbrViacheslav Hletenko
vrf: T8169: prevent deletion if instance referenced in policy based routing
2026-01-12openvpn: T7633: Add support for 'data-ciphers-fallback' in site-to-site tunnelsOleksandr Kuchmystyi
- Introduced new CLI option 'data-ciphers-fallback' for OpenVPN interfaces (used as fallback cipher in site-to-site mode) - Adjust migration 1‑to‑2 to skip migrating 'cipher' for site‑to‑site interfaces
2026-01-11Merge pull request #4938 from hedrok/T8158-fix-lsp-timersChristian Breunig
isis: T8158: fix lsp-timers
2026-01-10vrf: T8169: prevent deletion if instance referenced in policy based routingChristian Breunig
Check if the VRF which is about to be removed is referenced in any PBR rule, where any is one or more of route, route6, local-route or local-route6.
2026-01-09Merge pull request #4912 from hedrok/T8046-add-link-params-cliViacheslav Hletenko
T8046: traffic-engineering: support link-params
2026-01-09isis: T8158: fix lsp-timersKyrylo Yatsenko
There are three configuration values in VyOS isis XML: * lsp-gen-interval * lsp-refresh-interval * max-lsp-lifetime In FRR they have the following restrictions in yang model: * refresh-interval, default 900 * maximum-lifetime >= refresh-interval + 300 (350-65535), default 1200 * generation-interval < refresh-interval (1..120), default 30 When setting these values in separate steps we can get error e.g.: libyang: Must condition ". >= ../refresh-interval + 300" not satisfied. even when all restrictions are satisfied. To fix the issue: 1. Write default values in our XML. 2. Check these restrictions in protocol_isis.py 3. Use FRR command `lsp-timers` that sets all these values in one go
2026-01-09T8046: traffic-engineering: support link-paramsKyrylo Yatsenko
Add 'traffic-engineering' commands under 'protocols'. set protocols traffic-engineering admin-group ADMINGROUP bit-position 1 set protocols traffic-engineering interface INTERFACE admin-group ADMINGROUP set protocols traffic-engineering interface INTERFACE max-bandwidth 1280 set protocols traffic-engineering interface INTERFACE max-reservable-bandwidth 1280 Also add set protocols isis traffic-engineering export
2026-01-08Merge pull request #4887 from alexandr-san4ez/T8022-currentDaniil Baturin
ipsec: T8022: Fix invalid automatic `dynamic` prefix assignment for transport mode tunnels
2026-01-08Merge pull request #4920 from natali-rs1985/T7098Daniil Baturin
T7098: Fix VPP MTU misconfiguration
2026-01-05Merge pull request #4933 from c-po/eth-fixChristian Breunig
ethernet: T8142: do not raise ValueError for non-existing interfaces
2026-01-05T7098: Fix VPP MTU misconfigurationNataliia Solomko
2026-01-05Merge pull request #4618 from giga1699/T7635Viacheslav Hletenko
T7635: OpenConnect Certificate Authentication
2026-01-05ipsec: T8022: Fix invalid automatic `dynamic` prefix assignment for ↵Oleksandr Kuchmystyi
transport mode tunnels When ESP was configured in transport mode for GRE-based site-to-site tunnels, the default value `dynamic` was automatically injected into the configuration, even though prefixes must not be set in transport mode. This led to error "Local/remote prefix cannot be used with ESP transport mode" and commit failures. This fix updates configuration logic to skip default prefix assignment for site-to-site peers using ESP transport mode tunnels.
2026-01-04ethernet: T8142: do not raise ValueError for non-existing interfacesChristian Breunig
Call verify_interface_exists() with state_required=True to ensure the interface exists physically and is recognized by the kernel, rather than relying on its presence in the CLI configuration. Unlike bridge or bond interfaces, Ethernet interfaces are not virtual and must be physically present. Ethtool() instance can only be created when the physical interface exists, otherwise a ValueError is raised.
2026-01-01nat66: T8139: add support for NAT66 source groupsMarius Lindvall
Copy the support for NAT66 destination groups (commit f96733dd and commit 43554efc) over to NAT66 source groups as well. Change the existing smoketest for NAT66 groups to also cover a source group use-case example.
2025-12-30Update src/conf_mode/vpn_openconnect.pyDaniil Baturin
2025-12-30Merge pull request #4918 from c-po/no-pki-default-nodeDaniil Baturin
config: T8124: make get_config_dict() pki={} node purely optional
2025-12-29Merge pull request #4917 from c-po/bond-no-always-remove-memberChristian Breunig
bond: T2416: support hot-add/remove of bond member interfaces
2025-12-29T7635: OpenConnect Certificate AuthenticationGiga Murphy
2025-12-26config: T8124: make get_config_dict() pki={} node purely optionalChristian Breunig
Automatic parsing and integration of the PKI subsystem into the resulting config dict is now enabled by passing with_pki=True to get_config_dict(). However, when no PKI configuration is present, the resulting dictionary still includes an empty PKI key. This is undesirable; we should only include keys in the dictionary when they contain relevant data.
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-12-23Merge pull request #4904 from natali-rs1985/T8080Daniil Baturin
vpp: T8080: Fix handling of configuration system lock after vpp commit failure
2025-12-23vpp: T8080: Fix handling of configuration system lock after vpp commit failureNataliia Solomko
2025-12-19bond: T8084: disallow bond members that do not support MAC changesChristian Breunig
Building on commit ba60266ab1896 (“ethernet: T8084: prevent MAC changes on ENA interfaces (AWS EC2)”), add safeguards to prevent interfaces from being used as bond members if they: * do not support MAC address changes, or * appear on a denylist of interfaces invalid for bonding (currently empty)
2025-12-19ethernet: T8084: prevent MAC changes on ENA interfaces (AWS EC2)Christian Breunig
Add a safeguard to block MAC address changes when the underlying driver is ENA (used on AWS EC2), and display a clear error message instead of raising "OSError: [Errno 95] Operation not supported."
2025-12-19bond: T8084: refactor verify() to remove duplicationChristian Breunig
Consolidate repeated helper function calls used for both bonded and non-bonded Ethernet interfaces, resulting in cleaner and more maintainable code.
2025-12-19bond: T8084: remove dynamic interface type detection via vyos.ifconfig.SectionChristian Breunig
Aggregated / bonded interfaces do only work with ethernet interfaces as underlaying link. There is no need to "dynamically" detect that eth0, eth1 or any other interface starting with eth is an ethernet interface. Remove calls to vyos.ifconfig.Section().
2025-12-19T7995: Fix UnboundLocalError for key in parse_cmdlineNataliia Solomko
2025-12-18Merge pull request #4875 from natali-rs1985/T7995Daniil Baturin
T7995: Add capability to start VPP dataplane during system deployment
2025-12-18T7995: Add capability to start VPP dataplane during system deploymentNataliia Solomko
Kernel command-line change detection and automatic system reboot via kexec during initial deployment
2025-12-17login: T8086: replace getpwnam()/getpwuid() with get_local_passwd_entries()Christian Breunig
Switch to our custom implementation to avoid NSS/TACACS timeouts as explained in commit 4c9eaaa96e06 ("login: replace getpwall() user enumeration to avoid NSS/TACACS timeouts").
2025-12-17login: T8086: replace getpwall() occurances with get_local_passwd_entries()Christian Breunig
Switch to our custom implementation to avoid NSS/TACACS timeouts as explained in commit 4c9eaaa96e06 ("login: replace getpwall() user enumeration to avoid NSS/TACACS timeouts").
2025-12-14ssh: T8090: add support for config test mode (sshd -t)Christian Breunig
Add a safety-net for development to check if the rendered sshd(8) configuration can be applied at all. If it can't be applied - throw an error. From https://linux.die.net/man/8/sshd: -t Test mode. Only check the validity of the configuration file and sanity of the keys. This is useful for updating sshd reliably as configuration options may change. Explicitly forcing a broken config now results in: vyos@vyos# commit [ service ssh ] Unexpected error with SSH configuration! /run/sshd/sshd_config line 21: X11DisplayOffset integer value invalid. [[service ssh]] failed Commit failed
2025-12-11Merge pull request #4880 from natali-rs1985/T7972Viacheslav Hletenko
vpp: T7972: Make `nat44 no-forwarding` feature automatically configurable
2025-12-10T7819: VPP do not override driver if it is already doneViacheslav Hletenko
The upstream VPP code already writes the ena device ID to new_id So we can remove `ena` from `override_driver()` The kernel does not provide a reliable way to check whether an ID has already been registered, so we simply attempt the write and ignore the FileExistsError. Any other failure is treated as a warning. Fixes this case: Traceback (most recent call last): File "/usr/libexec/vyos/services/vyos-configd", line 156, in run_script script.apply(c) File "/usr/libexec/vyos/conf_mode/vpp.py", line 613, in apply control_host.override_driver( File "/usr/lib/python3/dist-packages/vyos/vpp/control_host.py", line 138, in override_driver Path('/sys/module/vfio_pci/drivers/pci:vfio-pci/new_id').write_text( File "/usr/lib/python3.11/pathlib.py", line 1079, in write_text with self.open(mode='w', encoding=encoding, errors=errors, newline=newline) as f: FileExistsError: [Errno 17] File exists
2025-12-07Merge pull request #4885 from dmbaturin/T8056-deprecate-salt-minionChristian Breunig
salt: T8056: add a deprecation warning
2025-12-05Merge pull request #4826 from nvollmar/T7982Viacheslav Hletenko
T7982: container: generate run arguments once