Age | Commit message (Collapse) | Author |
|
|
|
|
|
The current VyOS CLI parser code written in Python contains a ton of duplicates
which I can also hold myself accountable for - or maybe mainly me - depends on
the angle of judge.
|
|
traceroute: T2723: Support tcptraceroute
|
|
This reverts commit bfbf51acb2d4b6b5fe2d22d39f7259686f98d2a0, reversing
changes made to 1a85e758b105d493bb9d95916816bd206345bc5d.
|
|
* 'interface-rewrite' of github.com:c-po/vyos-1x:
vyos.configverify: T2653: fix some formatting issues
ifconfig: T2653: make ifname an optional argument to get_interface_dict()
vyos.configdict: T2653: remove obsolete code from configdict and ifconfig_vlan
wireless: ifconfig: T2653: move to get_config_dict()
ifconfig: T2653: move get_ethertype() from configdict to interface
vlan: ifconfig: T2653: move get_removed_vlans() to vyos.configdiff
bonding: ifconfig: T2653: move to get_config_dict()
ifconfig: T2653: move vlan configuration code to base class
vyos.configdict: T2653: use dict_merge() over update()
ifconfig: T2653: implement update() in derived classes for admin up/down
vyos.configdict: T2653: add new reusable helper node_changed()
geneve: ifconfig: T2653: move to get_config_dict()
ifconfig: T2653: move bridge member check to base class
interfaces: ifconfig: T2653: migrate to get_interface_dict() API
pseudo-ethernet: ifconfig: T2653: move to get_config_dict()
bridge: ifconfig: T2653: move to get_config_dict()
vlan: ifconfig: T2653: only enable interface when lower interface is up
ethernet: ifconfig: T2653: move to get_config_dict()
ifconfig: T2653: set arp-cache-timeout default value of 30ms
|
|
|
|
systemd: T2494: allow to restart vyos-hostsd without consequence
|
|
Further reduce the boiler-plate code to determine interface tag node or not.
It can be passed into get_interface_dict() if explicitly required - else it
is taken from the environment.
|
|
After all interfaces have been moved to the targetted implementation of T2653
the old implementations of migrating a CLI session to a configuration dict can
be dropped.
|
|
The current VyOS CLI parser code written in Python contains a ton of duplicates
which I can also hold myself accountable for - or maybe mainly me - depends on
the angle of judge.
|
|
... as it is only used inside the interface class.
|
|
As we wrap up additional functions from this library it should be part of it.
|
|
The current VyOS CLI parser code written in Python contains a ton of duplicates
which I can also hold myself accountable for - or maybe mainly me - depends on
the angle of judge.
|
|
This is required as other interfaces (e.g. pseudo-ethernet or bond) will have
VLANs, too.
|
|
With dict.update() existing keys will get overwritten when blending in interface
default values.
|
|
Every derived class must implement update() to set the interfaces admin
up/down state. This is required to prevend extensive link flaps when e.g.
reconfiguring bond interfaces.
|
|
This can be used to see if a tagNode has been changed. It will return a list
of changed nodes.
|
|
The current VyOS CLI parser code written in Python contains a ton of duplicates
which I can also hold myself accountable for - or maybe mainly me - depends on
the angle of judge.
|
|
This test is reused by a lot of instances and thus must be moved to the
base class.
|
|
After switching from raw parsing of the interface options to get_config_dict()
this utilizes another utility function which wraps get_config_dict() and adds
other common and reused parameters (like deleted or bridge member).
Overall this drops redundant code (again) and makes the rest more maintainable
as we only utilize a single function.
|
|
The current VyOS CLI parser code written in Python contains a ton of duplicates
which I can also hold myself accountable for - or maybe mainly me - depends on
the angle of judge.
While providing a new update() method in vyos.ifconfig.interfaces() this is
extended for pdeudo-ethernet interfaces in the derived class.
|
|
The current VyOS CLI parser code written in Python contains a ton of duplicates
which I can also hold myself accountable for - or maybe mainly me - depends on
the angle of judge.
While providing a new update() method in vyos.ifconfig.interfaces() this is
extended for bridge interfaces in the derived bridge class.
Signed-off-by: Christian Poessinger <christian@poessinger.com>
|
|
A VLAN interface can only be placed in admin up state when the lower interface
is up, too. If this is not the case the operating system will throw and
exception.
|
|
The current VyOS CLI parser code written in Python contains a ton of duplicates
which I can also hold myself accountable for - or maybe mainly me - depends on
the angle of judge.
While providing a new update() method in vyos.ifconfig.interfaces() this is
extended for ethernet based interfaces which also supports 802.1q, 802.1ad
VLANs. This commit migrates the existing codebase for an ethernet based
interfaces and implements the missing parts for VLANs. Adding or migrating other
interfaces (e.g. bridge or bond) will become much easier as they must reuse
the entire functionality - we now walk towards a single codepath.
Thanks for all who made this combined effort possible!
Signed-off-by: Christian Poessinger <christian@poessinger.com>
|
|
|
|
l2tpv3, wireguard, wirelessmodem, nat all require additional Kernel modules
to be present on the system. Each and every interface implemented their own
way of loading a module - by copying code.
Use a generic function, vyos.util.check_kmod() to load any arbitrary kernel
module passed as string or list.
|
|
Since it's relatively rarely used, Python's startup time should't
be much of a problem.
|
|
|
|
xml: T2582: use xml for is_tag and is_leaf
|
|
|
|
T2707: allow alternative initialization data for config
config: T2707: use ConfigSource and refactor Config methods
load-config: subclass ConfigSourceSession instead of Config
http-api: remove unneeded check for VyOSError
config: T2707: add ConfigSource classes for alternative init data
|
|
|
|
|
|
The only calls to config (return_value, return_values, exists) do not
throw VyOSError; remove unneeded except.
|
|
|
|
T2725: Fix config parse for users without passwords
|
|
Fix for https://phabricator.vyos.net/T2725
T2492 / a07e22377ab83104ac925e13d1824f241f0f8d4a
introduced a change which broke the initialization of
the user dict. In case the config contained an user
without an encrypted-password set, the property would
be missing and the commit would crash with
`KeyError: 'password_encrypted'`
|
|
interfaces: T2658: Fix description length
|
|
|
|
ntp: T2718: Change template for correct server names
|
|
|
|
dhcp-server: T2717: Fix DHCP pool size in statistics
|
|
The calculated size of DHCP server address pools was not corrent. The
fact that both boundaries of address ranges are inclusive wasn't
accounted for, so the calculated size was too small by 1 address
per range.
|
|
nat: T2709: remove 'translation address' mandatory check
|
|
interface: T2519: add broadcast address when adding IPv4 addresses
|
|
Rules without a translation address are also valid, they'll modify just
the port and leave the address intact.
This also used to be a valid syntax and it caused an error on upgrade.
|
|
This adds the last IP of the subnet being added as the broadcast address.
Example: adding 192.0.2.1/24 would yield:
inet 192.0.2.1/24 brd 192.0.2.255 scope global dum0
Without this the broadcast address would be missing.
Addidionally join two is_ipv4 calls into one.
|
|
Improve readability of the port validation. Also fixes T2708.
|
|
Add additional verify() stage to check that the relaying interface actually
exists on the system.
|