diff options
| author | ciaens <commits@ciaens.com> | 2026-10-19 14:04:07 +0200 |
|---|---|---|
| committer | Christian Breunig <christian@breunig.cc> | 2026-11-05 23:21:40 +0100 |
| commit | 99271db4a3d75241fe8ccedef0877d7d07e3b96f (patch) | |
| tree | fba379fc82fdff046fe6390729c5413eb1497d5b /smoketest/scripts/cli/test_service_https.py | |
| parent | fc6fa8c6683988d09ed4f53ec69cc7a96ed03a41 (diff) | |
| download | vyos-1x-99271db4a3d75241fe8ccedef0877d7d07e3b96f.tar.gz vyos-1x-99271db4a3d75241fe8ccedef0877d7d07e3b96f.zip | |
interfaces: T6393: accept mirror and redirect targets defined on the CLI
Interface types are committed in priority order (ethernet 318, bridge 319,
bonding 320, ... tunnel 380). verify_mirror_redirect() required the mirror
and redirect target to exist in the Kernel, so "interfaces ethernet eth1
mirror ingress tun0" (or "redirect tun0") could never commit on the first
pass at boot, or when both interfaces are created in the same commit:
VYOS_TAGNODE_VALUE=eth1 .../interfaces_ethernet.py
Requested mirror interface "tun0" does not exist!
Sending reply: ERROR_COMMIT with output
VYOS_TAGNODE_VALUE=tun0 .../interfaces_tunnel.py
Sending reply: SUCCESS with output
The whole ethernet node was rolled back, taking its addresses and everything
on top of them down with it. The tc filter itself is installed by the
target's commit since the previous commit, only verify() blocks.
Also accept a target which is defined on the CLI, at its interface name
position of the interfaces tree that Config.get_config_dict() attaches to
its dictionaries. A target that is neither configured nor existing still
fails the commit with the same error message as before. VLAN sub-interface
targets are only accepted from the Kernel, as nothing would install their
filter later on. VLAN sub-interfaces as sources get the interfaces tree
attached to their own dictionaries in get_interface_dict().
A target placed in a network namespace is out of reach for tc(8) and is
rejected with its own message, also while its device still sits in the
default namespace.
A target whose device is created asynchronously by a daemon (OpenVPN) now
also passes verify at boot; if its device is not up yet when that interface
applies, the filter is installed on the next commit of either side instead
of the source interface being rolled back.
src/tests/test_configverify.py was removed together with its last test case
(T8859) and is re-added with tests for the target verification.
Diffstat (limited to 'smoketest/scripts/cli/test_service_https.py')
0 files changed, 0 insertions, 0 deletions
