| Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
vpp: T8315: Add support for configuring unsupported NICs and update compatible list
|
|
vpp: T8230: Add support for PPPoE on bonding interfaces
|
|
compatible list
Introduce `set vpp settings unsupported nics <pci-id>` and
`set vpp settings unsupported drivers <driver>` to permit VPP activation
on hardware not present in the validated NIC list. Update current compatible list.
|
|
|
|
T8387: fix hardcoded saddr in add-address-to-group
|
|
vpp: T8368: Features nat44 and cgnat should not use the same interfaces
|
|
|
|
|
|
|
|
T8351: VPP add GRE tunnel key configuration
|
|
vpp: T8342: Add verification of members for bond and bridge interfaces
|
|
T8186: netflow: disable IPv6 for netflow protocol version 5
|
|
vpp: T8276: Add verification for virtual interfaces in PPPoE server configuration
|
|
T8357: Allow prefix vpp for show interfaces
|
|
vyos.ifconfig: T8358: clear qdiscs when deleting mirror CLI node
|
|
vpp: T8356: Fix traceback when adding a VPP bridge without members
|
|
|
|
configuration
- Implemented `verify_virtual_interface_exists` function to check for existing interfaces.
- Enhanced error handling for non-existent virtual interfaces in VPP mapping.
- Modified test cases to validate changes regarding PPPoE with subinterfaces.
|
|
|
|
Add prefix `vpp` for the op-mode output of `show interfaces`
|
|
|
|
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.
|
|
op-mode: T8362: "compare" command lacks catch_broken_pipe decorator
|
|
When compare calculation is still in progress and it should be abourted
by Ctrl+C, prevent a backtrace and catch the KeyboardInterrupt.
|
|
Multiple helper functions imported json.loads() or vyos.utils.process.cmd(),
this has been unified in one place.
|
|
Commit 0bf386cee9b0 ('qos: T4284: rename "traffic-policy" node to "qos policy"')
already renamed the CLI for QoS. The internal data representation kept the old
name which is now corrected.
|
|
|
|
T8347: enable pylint for all files under python/* path
|
|
Pylint warns about mask being used before assignment because mask is created
inside the try block. While os.umask() itself is highly unlikely to fail,
Python can raise asynchronous exceptions like KeyboardInterrupt or MemoryError
at any given moment. If one of those exceptions occurs precisely after the try:
statement but before "mask = os.umask(0o111)" completes, Python calls
finally with "os.umask(mask)" causing UnboundLocalError.
|
|
Pylint is pointing out that because sftp.put(location, path) is located inside
a finally block, it is guaranteed to execute regardless of whether the try
block succeeds or fails.
If an exception other than an IOError is raised inside the try block,
"except IOError" block gets skipped, Python then jumps straight to the finally
block. When it executes the finally block, it attempts to read the variable
path, but path was never assigned!
This triggers UnboundLocalError, local variable 'path' referenced before
assignment.
|
|
This happens because requests.packages.urllib3 is essentially a dynamic alias
that requests creates at runtime. Because it's dynamically generated, pylint's
static analysis cannot find it, which triggers the import error.
Avoid dynamic import by importing PoolManager directly from urllib3.
|
|
|
|
As the python netifaces module is written in C - we can not inspect any import
line as the linter does not see it. Disable the warnings here.
|
|
Instead of re-defining a per module helper which verifies that a given CLI path
exists during execution, rather create a generic representation which takes a
CLI path (list) as argument with an optional error message to display on the
CLI.
This is the initial implementation of the generic helper with some migrations
for VPP, WireGuard and Wireless interfaces. More opmode scripts should follow.
|
|
geoip: T8326: Resolve permission issue on database paths
|
|
tech-support: T8215: Extend tech-support archive and report generation
|
|
Restore required sudo on geoip op-mode
Ensures group/permission set on geoip nftables config
|
|
|
|
T8313: T8074: add vyconf support for copy/rename
|
|
vpp: T8339: Cleanup vpp interfaces and kernel-interfaces after migration
|
|
T7513: vyos-1x: CGNAT Exclude Rule CLI support
|
|
|
|
|
|
|