| Age | Commit message (Collapse) | Author |
|
vpp: T8460: Use isolated cpus for VPP cpu-cores
|
|
T8534: refactor sysctl_(read|write) to accept key parts
|
|
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
|
|
bridge: T8411: Allow disabling MAC learning on bridge member interfaces
|
|
|
|
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
|
|
T8445: T8335: Extend config activation system
|
|
vpp: T8505: Switch PPPoE bindings retrieval from CLI parsing to API call
|
|
|
|
This is necessary for images produced from a raw_image build (qcow2),
which no longer make use of the image_installer script.
|
|
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.
|
|
This is useful as default value for a getattr of a function from a
module.
|
|
|
|
|
|
Op mode command `show dhcp server leases sort remaining`
should sort leases by remaining time in timedelta form,
not string form.
|
|
serial: T8375: use boot activation script to define a serial console on the CLI
|
|
config-sync: T7784: Add command to diff configuration with secondary node
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
vpp: T8438: Add bidirectional interface-in-use validation
|
|
vyos-netlinkd: T8047: replacement of netplugd
|
|
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.
|
|
firewall: T8275: Resolve migration issue for 'weekdays' option from 1.3.8
|
|
Fix error parsing for day of week while loading firewall configuration.
|
|
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).
|
|
T8229: Fix handling of endpoint in Telegraf Loki template
|
|
vpp: T8419: Disallow cross-membership between VPP and kernel bonding/bridge interfaces
|
|
kea: T8408: Fixes to enable dhcp option 67
|
|
|
|
Fix typos and mistakes
No functional changes
|
|
interfaces
|
|
T8404: pppoe: fix TypeError when ipv6 address node exists without autoconf
|
|
vpp: T8416: Prevent interfaces from being assigned to xconnect and bridge/bonding at the same time
|
|
vpp: T8286: Uninitialized interfaces raise errors when added to VPP
|
|
|
|
bridge/bonding at the same time
|
|
- fix darker linter
|
|
- convert to the simpler kea4_options dict
- add the smoketest
|
|
- update dict literal style
|
|
- 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.
|
|
Fix typos and mistakes in the commands and comments
No functional changes
|
|
vpp: T8355: Set MTU for vpp interfaces
|
|
|
|
|
|
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.
|
|
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.
|
|
If we would like to get the CLI config path as a dot delimited string (instead
of whitespace) we can now request it. This is usefull when feeding in the result
of get_config_path() into dict_search().
|