summaryrefslogtreecommitdiff
path: root/python
AgeCommit message (Collapse)Author
2026-04-28kea: T8586: Skip static mappings without match criteriasarthurdev
2026-04-24Merge pull request #5130 from natali-rs1985/T8460Viacheslav Hletenko
vpp: T8460: Use isolated cpus for VPP cpu-cores
2026-04-24Merge pull request #5137 from c-po/sr-sysctl-fixViacheslav Hletenko
T8534: refactor sysctl_(read|write) to accept key parts
2026-04-21vpp: T8460: Use isolated cpus for VPP cpu-coresNataliia Solomko
VPP CPU core assignment now uses kernel-isolated CPUs (from /sys/devices/system/cpu/isolated) with explicit corelist-workers instead of computing offsets from available cores with skip-cores/workers. Added validation that enough CPUs are actually isolated before VPP starts, and that isolate-cpus config only references existing CPU IDs. Moved smoketest for kernel option 'isolate-cpus' to test_vpp.py
2026-04-21Merge pull request #5138 from natali-rs1985/T8411Daniil Baturin
bridge: T8411: Allow disabling MAC learning on bridge member interfaces
2026-04-21bridge: T8411: Allow disabling MAC learning on bridge member interfacesNataliia Solomko
2026-04-21T8534: refactor sysctl_(read|write) to accept key partsChristian Breunig
Interface names can contain dots (e.g. VLAN subinterfaces like eth0.10), which conflicts with sysctl's dot-separated key syntax. Change sysctl_read() and sysctl_write() to take key components as a list and normalize each component by replacing . with / before invoking sysctl. This fixes sysctl lookups/updates for VLAN subinterfaces. Extend the SR-TE smoketest to cover a VLAN subinterface. Previous error raising this issue: vyos-configd: sysctl: cannot stat /proc/sys/net/ipv6/conf/eth0/10/seg6_enabled: No such file or directory vyos-configd: sysctl: cannot stat /proc/sys/net/ipv6/conf/eth0/201/seg6_enabled: No such file or directory
2026-04-20Merge pull request #5096 from jestabro/extend-activation-systemJohn Estabrook
T8445: T8335: Extend config activation system
2026-04-16Merge pull request #5132 from natali-rs1985/T8505Daniil Baturin
vpp: T8505: Switch PPPoE bindings retrieval from CLI parsing to API call
2026-04-16vpp: T8505: Switch PPPoE bindings retrieval from CLI parsing to API callNataliia Solomko
2026-04-15T8335: use activation script for installation of config path hintJohn Estabrook
This is necessary for images produced from a raw_image build (qcow2), which no longer make use of the image_installer script.
2026-04-15T8445: add activation script to indicate first installed bootJohn Estabrook
Add script to leave hint of first installed boot (as, say, distinguished from first live boot, or subsequent); this is useful as pre/post conditions and self-modification of activation scripts.
2026-04-15T8445: add falsy callableJohn Estabrook
This is useful as default value for a getattr of a function from a module.
2026-04-15T8445: add activation utilsJohn Estabrook
2026-04-14dhcp: T8493: Fix ruff formattingIndrajit Raychaudhuri
2026-04-14dhcp: T8493: Fix sort ordering for remaining time displayIndrajit Raychaudhuri
Op mode command `show dhcp server leases sort remaining` should sort leases by remaining time in timedelta form, not string form.
2026-04-14Merge pull request #5092 from c-po/kernel-serial-activationChristian Breunig
serial: T8375: use boot activation script to define a serial console on the CLI
2026-04-13Merge pull request #5081 from alexandr-san4ez/T7784-currentJohn Estabrook
config-sync: T7784: Add command to diff configuration with secondary node
2026-04-09serial: T8375: add CLI option to explicitly set kernel consoleChristian Breunig
Previously, VyOS hardcoded the kernel boot log console to either ttyS0 or tty0, with no post-install CLI method to change it (manual GRUB edits were required). This commit adds a new CLI node: system console device <name> kernel When set, the selected serial console is used as the kernel boot console. When removed, the kernel boot console falls back to tty0.
2026-04-09serial: T8375: use boot activation script to define a serial console on the CLIChristian Breunig
Required during first-boot of a system. We have images form amd64 and arm64 CPUs which also tend to have different serial interfaces (ttyS vs. ttyAMA). The images which are installed have the correct serial setting for GRUB (ttyS0 or ttyAMA0) and the activation script will probe the Kernel command-line. If a serial interface is defined, we will include it in the VyOS CLI configuration.
2026-04-09T8375: general import cleanup on the way to serial activationChristian Breunig
For the sake of nice grep lines and refactoring we have an unspoken - unwritten rule considered as folklore to have imports one per line. This helped in the past with refactorings.
2026-04-07remote: T4732: redact u/p from URL on errorChristian Breunig
The upload error message echoes the full urlstring, which may include embedded credentials (e.g., https://user:pass@host/...). With this commit the information has been redacted.
2026-04-06remote: T4732: add VRF option for commit-archiveChristian Breunig
Add new CLI option to make transfers to the commit-archive working using a dedicated (e.g. management) VRF. set system config-management commit-archive vrf MGMT All transfers using vyos.remote module will now run through the VRF defined on the CLI.
2026-04-03Merge pull request #5101 from natali-rs1985/T8438Viacheslav Hletenko
vpp: T8438: Add bidirectional interface-in-use validation
2026-04-02Merge pull request #4872 from c-po/vyos-netlinkdChristian Breunig
vyos-netlinkd: T8047: replacement of netplugd
2026-04-02vpp: T8438: Add bidirectional interface-in-use validationNataliia Solomko
Add bidirectional VPP interface reference validation: prevent assigning an interface used by a VPP feature (NAT/ACL/IPFIX/sFlow, etc.) as a VPP member (bond/bridge/xconnect) and prevent using a VPP member interface in VPP features. Block interface deletion when it is still referenced by any VPP feature/member. Fix VLAN subinterface removal checks broken by the recent VPP config tree restructuring.
2026-04-01Merge pull request #5098 from alexandr-san4ez/T8275-currentChristian Breunig
firewall: T8275: Resolve migration issue for 'weekdays' option from 1.3.8
2026-04-01firewall: T8275: Resolve migration issue for 'weekdays' option from 1.3.8Oleksandr Kuchmystyi
Fix error parsing for day of week while loading firewall configuration.
2026-04-01config-sync: T7784: Add command to diff configuration with secondary nodeOleksandr Kuchmystyi
Add a new operational command to compare configuration between nodes participating in config synchronization. New command: - `show configuration secondary sync [commands] [running|candidate|saved] [config-node-path]`. This allows operators to view configuration differences across secondary peer before applying or syncing changes. Supports: - displaying using raw diff and 'commands' format; - optional section filtering (subtree comparison); - selectable config source (running, candidate, saved).
2026-03-31Merge pull request #5097 from natali-rs1985/T8229Viacheslav Hletenko
T8229: Fix handling of endpoint in Telegraf Loki template
2026-03-30Merge pull request #5086 from natali-rs1985/T8419Christian Breunig
vpp: T8419: Disallow cross-membership between VPP and kernel bonding/bridge interfaces
2026-03-30Merge pull request #5083 from fatpelt/currentDaniil Baturin
kea: T8408: Fixes to enable dhcp option 67
2026-03-30T8229: Fix handling of endpoint in Telegraf Loki templateNataliia Solomko
2026-03-27T8410: Fix typos and mistakes for comments and messagesViacheslav Hletenko
Fix typos and mistakes No functional changes
2026-03-27vpp: T8419: Disallow cross-membership between VPP and kernel bonding/bridge ↵Nataliia Solomko
interfaces
2026-03-26Merge pull request #5067 from AlectoTheFirst/fix/pppoe-ipv6-address-typeerrorChristian Breunig
T8404: pppoe: fix TypeError when ipv6 address node exists without autoconf
2026-03-26Merge pull request #5080 from natali-rs1985/T8416Christian Breunig
vpp: T8416: Prevent interfaces from being assigned to xconnect and bridge/bonding at the same time
2026-03-26Merge pull request #5069 from natali-rs1985/T8286Daniil Baturin
vpp: T8286: Uninitialized interfaces raise errors when added to VPP
2026-03-26vpp: T8286: Uninitialized interfaces raise errors when added to VPPNataliia Solomko
2026-03-26vpp: T8416: Prevent interfaces from being assigned to xconnect and ↵Nataliia Solomko
bridge/bonding at the same time
2026-03-26kea: T8408: Fixes to enable dhcp option 67Patrick Felt
- fix darker linter
2026-03-26kea: T8408: Fixes to enable dhcp option 67Patrick Felt
- convert to the simpler kea4_options dict - add the smoketest
2026-03-25kea: T8408: Fixes to enable dhcp option 67Patrick Felt
- update dict literal style
2026-03-25kea: T8408: Fixes to enable dhcp option 67Patrick Felt
- Kea overloads the meaning of the boot-file-name option. When used on its own, it represents the legacy bootp filename option. When option 67 is needed, boot-file-name must be included in an options block.
2026-03-24T8410: Fix typos and mistakes for operational and configuration commandsViacheslav Hletenko
Fix typos and mistakes in the commands and comments No functional changes
2026-03-24Merge pull request #5039 from natali-rs1985/T8355Daniil Baturin
vpp: T8355: Set MTU for vpp interfaces
2026-03-23vpp: T8355: Move rx-mode setup to base VPPInterface classNataliia Solomko
2026-03-23vpp: T8355: Set MTU for vpp interfacesNataliia Solomko
2026-03-20configverify: T8413: fix issue in duplex shaping (redirect to input interface)Christian Breunig
After commit 6eafdbf1a8 ("configdict: T8358: rename internal representation from traffic_policy to qos) we uncovered a bug/added a feature in supporting QoS and redirect on an interface. The code in VyOS stream 2026.02 is: if ('mirror' in config or 'redirect' in config) and dict_search('traffic_policy.in', config) is not None: and this got changed to: if 'qos' in config and ('mirror' in config or 'redirect' in config): in the commit mentioned above. When looking at the code in 2026.02 release $ git describe --tags 2026.02 $ git grep traffic_policy python/vyos/configdict.py: dict.update({'traffic_policy': {}}) python/vyos/configdict.py: dict['vif'][vif].update({'traffic_policy': {}}) python/vyos/configdict.py: dict['vif_s'][vif_s].update({'traffic_policy': {}}) python/vyos/configdict.py: dict['vif_s'][vif_s]['vif_c'][vif_c].update({'traffic_policy': {}}) python/vyos/configverify.py: if ('mirror' in config or 'redirect' in config) and dict_search('traffic_policy.in', config) is not None: python/vyos/ifconfig/interface.py: if not 'traffic_policy' in self.config: I never see traffic_policy.in set, so the check seems to have never worked in the past at all. During the QoS rewrite from 1.3 -> 1.4 CLI traffic-policy was renamed by me to qos but we kept that synthetic key in the Python code. That is the root cause. So it should have never worked (CLI wise) but during that bug it started to work as expected, and even the Python code stated in a comment: if 'qos' in config and ('mirror' in config or 'redirect' in config): # XXX: support combination of limiting and redirect/mirror - this is an # artificial limitation raise ConfigError('Can not use QoS together with mirror/redirect!') So we have enabled this feature for a long time by accident already.
2026-03-20T8404: fix TypeError when ipv6 address node exists without autoconfmetricsmancer
dict_search('ipv6.address', config) returns None when the ipv6 address node is empty (e.g. after deleting autoconf), causing a TypeError on the 'in' membership test. Use dict_search('ipv6.address.autoconf', config) instead, which safely returns None for any missing path segment.