summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-07-25ifconfig: T2653: move get_ethertype() from configdict to interfaceChristian Poessinger
... as it is only used inside the interface class.
2020-07-25vlan: ifconfig: T2653: move get_removed_vlans() to vyos.configdiffChristian Poessinger
As we wrap up additional functions from this library it should be part of it.
2020-07-25bonding: ifconfig: T2653: move to get_config_dict()Christian Poessinger
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.
2020-07-25ifconfig: T2653: move vlan configuration code to base classChristian Poessinger
This is required as other interfaces (e.g. pseudo-ethernet or bond) will have VLANs, too.
2020-07-25vyos.configdict: T2653: use dict_merge() over update()Christian Poessinger
With dict.update() existing keys will get overwritten when blending in interface default values.
2020-07-25ifconfig: T2653: implement update() in derived classes for admin up/downChristian Poessinger
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.
2020-07-25vyos.configdict: T2653: add new reusable helper node_changed()Christian Poessinger
This can be used to see if a tagNode has been changed. It will return a list of changed nodes.
2020-07-25geneve: ifconfig: T2653: move to get_config_dict()Christian Poessinger
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.
2020-07-25ifconfig: T2653: move bridge member check to base classChristian Poessinger
This test is reused by a lot of instances and thus must be moved to the base class.
2020-07-25interfaces: ifconfig: T2653: migrate to get_interface_dict() APIChristian Poessinger
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.
2020-07-25pseudo-ethernet: ifconfig: T2653: move to get_config_dict()Christian Poessinger
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.
2020-07-25bridge: ifconfig: T2653: move to get_config_dict()Christian Poessinger
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>
2020-07-25vlan: ifconfig: T2653: only enable interface when lower interface is upChristian Poessinger
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.
2020-07-25ethernet: ifconfig: T2653: move to get_config_dict()Christian Poessinger
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>
2020-07-25ifconfig: T2653: set arp-cache-timeout default value of 30msChristian Poessinger
2020-07-25vyos.util: add common helper to load kernel modulesChristian Poessinger
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.
2020-07-24T2727: add a dotted decimal validator.Daniil Baturin
Since it's relatively rarely used, Python's startup time should't be much of a problem.
2020-07-22Merge pull request #481 from thomas-mangin/T2582John Estabrook
xml: T2582: use xml for is_tag and is_leaf
2020-07-22xml: T2582: use xml for is_tag and is_leafThomas Mangin
2020-07-22Merge pull request #499 from jestabro/config_sourceJohn Estabrook
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
2020-07-22config: T2707: use ConfigSource and refactor Config methodsJohn Estabrook
2020-07-22load-config: subclass ConfigSourceSession instead of ConfigJohn Estabrook
2020-07-22http-api: remove unneeded check for VyOSErrorJohn Estabrook
The only calls to config (return_value, return_values, exists) do not throw VyOSError; remove unneeded except.
2020-07-22config: T2707: add ConfigSource classes for alternative init dataJohn Estabrook
2020-07-22Merge pull request #516 from varesa/T2725-fix-system-loginDaniil Baturin
T2725: Fix config parse for users without passwords
2020-07-22T2725: Fix config parse for users without passwordsEsa Varemo
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'`
2020-07-21Merge pull request #512 from sever-sever/T2658Daniil Baturin
interfaces: T2658: Fix description length
2020-07-21interfaces: T2658: Fix description lengthsever-sever
2020-07-21Merge pull request #511 from sever-sever/T2718Christian Poessinger
ntp: T2718: Change template for correct server names
2020-07-21ntp: T2718: Change template for correct server namessever-sever
2020-07-20Merge pull request #509 from efficiosoft/t2717_dhcp_pool_sizeChristian Poessinger
dhcp-server: T2717: Fix DHCP pool size in statistics
2020-07-20dhcp-server: T2717: Fix DHCP pool size in statisticsRobert Schindler
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.
2020-07-19Merge pull request #507 from jjakob/nft-translation-address-T2709Christian Poessinger
nat: T2709: remove 'translation address' mandatory check
2020-07-19Merge pull request #506 from jjakob/broadcast-fix-T2519Christian Poessinger
interface: T2519: add broadcast address when adding IPv4 addresses
2020-07-19nat: T2709: remove 'translation address' mandatory checkJernej Jakob
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.
2020-07-19interface: T2519: add broadcast address when adding IPv4 addressesJernej Jakob
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.
2020-07-19Merge pull request #500 from dmbaturin/currentDaniil Baturin
Improve readability of the port validation. Also fixes T2708.
2020-07-19broadcast-relay: T2712: migrate to get_config_dict()Christian Poessinger
Add additional verify() stage to check that the relaying interface actually exists on the system.
2020-07-19monitor: ndp: T2706: properly rename XML definitionChristian Poessinger
Commit 3435b251 ("monitor: ndp: T2706: remove ability to send commands") flipped the filename and placed the tree in front of the subtree. Unfurtunately I mixed up NTP and NDP. This has been corrected.
2020-07-18Merge pull request #505 from jestabro/config_diffJohn Estabrook
configdiff: T2689: add configdiff class
2020-07-18configdiff: T2689: add configdiff classJohn Estabrook
The configdiff class provides: (1) An abstract representation of VyOS config state, for use in configuration mode scripts. (2) Methods to query the differences between the effective and session config.
2020-07-18monitor: ndp: T2706: remove ability to send commandsChristian Poessinger
The "monitor" operational mode tree is for listening in on logfiles, chatter on the wire or other things - it subscribes to the system. Hence it should under no circumstances - ever - generate data. Sending our those requests, same as e.g. calling ndisc6 should be placed under a different node. Which one? I yet have no idea.
2020-07-18vyos.ifconfig: T2673: Fix admin state if the mac address is changed for an ↵srividya0208
interface Changes are made in the interface.py script in order to bring the admin state to 'UP' after the mac is manually added in system config.The script is marking the interface from up to down state(as the MAC address can only be changed if interface is in 'down' state) but it is not bringing it up after the change
2020-07-18T2704: force newlines after listActiveNode output.Daniil Baturin
2020-07-18T2710: make most "run show interfaces $type" commands work again.Daniil Baturin
2020-07-17Merge pull request #496 from jack9603301/currentChristian Poessinger
ndptool: T2706: Support NDP protocol monitoring
2020-07-18ndptool: T2706: Support NDP protocol monitoringjack9603301
It supports NDP protocol monitoring. The submission supports the following features: - Support the monitoring of specified port or all ports - Supports monitoring of specific message types - Support sending specific NDP message
2020-07-17config: T2689: cache config_dictJohn Estabrook
This is a minor modification of the implementation by Thomas Mangin.
2020-07-16Merge pull request #501 from srividya0208/new_changeChristian Poessinger
pseudo-ethernet: T2626: Fix for changing interface mode
2020-07-16pseudo-ethernet: T2626: Fix for changing interface modesrividya0208
Since it is not impossible to change MACVLAN interface mode on the fly, this fix adds a new one trigger to recreate it from scratch if the mode changed in system config