summaryrefslogtreecommitdiff
path: root/python
AgeCommit message (Collapse)Author
6 daysMerge pull request #4483 from markh0338/remote-group-v6HEADcurrentChristian Breunig
T7386: firewall: Allow IPv6 member in firewall remote-groups
10 daysMerge pull request #4323 from xeluior/T7095_vrf-fixDaniil Baturin
utils: T7095: make `vrf` and `netns` arguments aware of the shell
11 daysT7386: firewall: allow mix of IPv4 and IPv6 addresses/prefixes/ranges in ↵Mark Hayes
remote groups
12 daysMerge pull request #4495 from c-po/frr-logDaniil Baturin
frr: T7431: missing logging options after rewrite to frrender class
12 daysfrr: T7431: missing logging options after rewrite to frrender classChristian Breunig
In src/etc/systemd/system/frr.service.d/override.conf#L6-L11 the log entry is added on restart - but not during normal operation of frrender.py Logging should be added persistent when rendering the FRR configuration using FRRender class.
13 dayshaproxy: T7122: add ACME/certbot bootstrap supportChristian Breunig
When both the CLI PKI node for an ACME-issued certificate and HAProxy are configured during initial setup, the certbot challenge cannot be served via the reverse proxy because HAProxy has not yet been configured at all. This commit introduces a special case to handle this bootstrap scenario, ensuring that the certbot challenge can still be served correctly in standalone mode on port 80 despite initial config dependencies/priorities between PKI and HAProxy.
13 daysvyos.base: T7122: add new Message() helper wrapper for print()Christian Breunig
This will wrap the messages at 72 characters in the same way as Warning() and DeprecationWarning() would do. We now have simple wrappers for it! Example: vyos@vyos# commit [ pki ] Updating configuration: "load-balancing haproxy service frontend ssl certificate LE_cloud" Add/replace automatically imported CA certificate for "LE_cloud"
14 daysvyos.template: T7122: add Jinja2 clever function helper to read vyos.defaultsChristian Breunig
Add a new category if Jinja2 operands. We already have filters and tests, but sometimes we would like to call a Python function without and data "|" piped to it - that's what they call a clever-function. {{ get_default_port(NAME) }} can be used to retrieve the value from vyos.defaults.internal_ports[NAME] within Jinja2. We no longer need to extend the dictionary with arbitrary data retrieved from vyos.defaults, we can now simply register another clever-function to the Jinja2 backend.
2025-04-28pki: T7122: place certbot behind reverse-proxy if cert used by haproxyChristian Breunig
If we detect that an ACME issued certificate is consumed by haproxy service, we will move the certbot webserver to localhost and a highport, to proxy the request via haproxy which is already using port 80.
2025-04-28T7122: remove trailing chars and add new line for every template.render() callChristian Breunig
2025-04-28vyos.utils: T7122: fix IPv6 support in check_port_availability()Christian Breunig
Commit 4523e9c897b3 ("wireguard: T3763: Added check for listening port availability") added a function to check if a port is free to use or already occupied by a different running service. This has been done by trying to bind a socket to said given port. Unfortunately there is no support for IPv6 address-fdamily in both socketserver.TCPServer or socketserver.UDPServer. This must be done manually by deriving TCPServer and setting self.address_family for IPv6. The new implementation gets rid of both TCPServer and UDPServer and replaces it with a simple socket binding to a given IPv4/IPv6 address or any interface/ address if unspecified. In addition build time tests are added for the function to check for proper behavior during build time of vyos-1x.
2025-04-24Merge pull request #4442 from srividya0208/T7316Daniil Baturin
T7316: Add MTU validation for interfaces with MTU less then 1200
2025-04-23Merge pull request #4460 from c-po/systemd-syslogViacheslav Hletenko
syslog: T7367: ensure rsyslog is registered as default systemd syslog service
2025-04-23Merge pull request #4461 from c-po/slaac-removalViacheslav Hletenko
interface: T7375: cleanup SLAAC assigned address and default route after removing SLAAC CLI configuration
2025-04-22Merge pull request #4419 from sskaje/T5636Daniil Baturin
geoip: T5636: Add geoip for policy route/route6
2025-04-22Merge pull request #4392 from symysak/T4627Daniil Baturin
interface: T4627: support setting of IPv6 Interface Identifier(Token)
2025-04-22Merge pull request #4444 from l0crian1/T7322-fix-allowed-vlanDaniil Baturin
bridge: T7322: fix slow performance of allowed vlan
2025-04-22Merge pull request #4466 from aapostoliuk/T7383-rollingDaniil Baturin
ospf: T7383: Fixed unconfigured redistribution of nhrp into ospf
2025-04-22T6773: RFC-2136 support for Kea DHCP4 server (#4153)Alex Bukharov
2025-04-22interface: T7379: do not request SLAAC default route when only DHCPv6 is setChristian Breunig
When an interface runs in DHCPv6 only mode, there is no reason to have a default installed that was received via SLAAC. If SLAAC is needed, it should be turned on explicitly. This bug was only triggered during system boot where a DHCPv6 client address and a default route to a link-local address was shown in the system. If DHCPv6 was enabled only on an interface while VyOS was already running - no default route got installed.
2025-04-22interface: T7375: routes received via SLAAC are not cleared on exitChristian Breunig
When using SLAAC for IPv6 addresses we will also receive a default route via a RA (Router Advertisement). When we disable SLAAC on a interface the Linux Kernel does not automatically flush all addresses nor the routes received. The Kernel wait's until the addresses/prefixes/routes expire using their lifestime setting. When removing SLAAC from an interface, also remove the auto generated IPv6 address and both the default router received and the connected IP prefix of the SLAAC advertisement.
2025-04-22interface: T7375: remove superfluous "ifname = self.ifname" assignmentChristian Breunig
We can reference "self.ifname" in any Python f-ormatted string directly. No need for an interim temporary variable.
2025-04-22interface: T7375: SLAAC assigned address is not cleared when removing SLAACChristian Breunig
2025-04-22ospf: T7383: Fixed unconfigured redistribution of nhrp into ospfaapostoliuk
Fixed unconfigured redistribution of nhrp into ospf.
2025-04-18interface: T4627: support IPv6 Interface Identifier (token) for SLAACYoshiaki Suyama
Add common IPv6 CLI option (use ethernet as example): set interfaces ethernet eth0 ipv6 address interface-identifier Co-authored-by: Christian Breunig <christian@breunig.cc>
2025-04-18syslog: T7367: use generic systemd syslog.service over rsyslog.serviceChristian Breunig
2025-04-17Merge pull request #4453 from c-po/kernel-cmdline-T7327Christian Breunig
grub: T7327: honor "system option kernel" settings during image upgrade
2025-04-15grub: T7327: honor "system option kernel" settings during image upgradeChristian Breunig
When performing an image upgrade and Linux Kernel command-line option that should be passed via GRUB to the Linux Kernel are missing on the first boot. This is because when generating the GRUB command-line via the op-mode scripts the CLI nodes defining the options are not honored. This commit re-implements the code-path in op-mode which generates the strings passed via GRUB to the Linux Kernel command-line. NOTE: If (for a yet unknown reason) a Kernel command-line option string changes during a major - or minor - upgrade of the Linux Kernel, we will need to adapt that logic and possibly call a helper from within the NEW updated image rootfs. Thus we can ship future information back into the past like the "Grays Sports Almanac" from Back to the Future Part II.
2025-04-15Merge pull request #4412 from sarthurdev/kea_2.6Daniil Baturin
kea: T7281: Add ping-check, use built-in option for classless static routes
2025-04-15Merge pull request #4445 from jestabro/vyconf-configsessionJohn Estabrook
T7321: Replace legacy operations in configsession.py with vyconf client operations
2025-04-14kea: T7310: add support for RFC-5417 (option 138) (#4430)David Vølker
* dhcp-server: T7310: add support for option 138 CAPWAP AC to KEA * kea: T7310: Update data/templates/dhcp-server/kea-dhcp4.conf.j2 Co-authored-by: Simon <965089+sarthurdev@users.noreply.github.com> * kea: T7310: Update python/vyos/kea.py Co-authored-by: Simon <965089+sarthurdev@users.noreply.github.com> * kea: T7310: add smoketest for capwap-ac-v4 * kea: T7310: Update python/vyos/kea.py Co-authored-by: Simon <965089+sarthurdev@users.noreply.github.com> --------- Co-authored-by: David Vølker <davvol@davvol.dk> Co-authored-by: Simon <965089+sarthurdev@users.noreply.github.com>
2025-04-14kea: T7281: Add support for ping-check in Keasarthurdev
2025-04-14kea: T7281: Use Kea internal option for option 121 routes, remove option 249sarthurdev
Remove legacy windows static route on option 249
2025-04-11T7321: expose vyconfd client functions in configsessionJohn Estabrook
2025-04-11T7321: add decorator to raise named exception on errorJohn Estabrook
2025-04-11T7321: add VyconfSession class and methodsJohn Estabrook
Encapsulation of standard config session functions, to replace legacy versions in configsession.py.
2025-04-11T7321: translate enums by value instead of nameJohn Estabrook
2025-04-11T7321: add append version utilJohn Estabrook
2025-04-11T7321: normalize formattingJohn Estabrook
2025-04-10bridge:T7322: Fix bridge allowed-vlan handlingl0crian1
Fix indentation error in get_vlans_ids_and_range function.
2025-04-10bridge:T7322: Fix bridge allowed-vlan handlingl0crian1
Allowed VLAN ranges are unnecessarily deconstructed into individual vlans, and then added one by one to the bridge. This can take a long time if a large range like 1-4084 is used. - python/vyos/configdict.py - Added get_vlans_ids_and_range function to return configured ranges - python/vyos/ifconfig/bridge.py - Modified add and delete vlan section to not loop unnecessarily
2025-04-10mtu_value: T7316:commit validation for interfaces when mtu configured <1200srividya0208
2025-04-08T7302: implement commit dry-run for vyconfd/commitdJohn Estabrook
2025-04-08Merge pull request #4427 from jestabro/commit-postDaniil Baturin
T7292: add Python module client library for vyconfd
2025-04-05kea: T7324: Fix kea_get_domain_from_subnet_id returning incorrect valueAlex W
2025-04-04frrender: T7273: always start from the configs root levelChristian Breunig
Working on T7273 revealed that when committing the following CLI config "set interfaces vxlan vxlan0 parameters neighbor-suppress" the CLI level queried via conf.get_level() was at ['interfaces', 'vxlan']. This had the side effect that queries on the configuration like: conf.exists(['protocols', 'bgp']) returned False, as it would look accidently at the level: ['interfaces', 'vxlan', 'protocols', 'bgp'] This error was there from the beginning of the FRRender class implementation.
2025-04-04T7292: add vyconfd client library functionsJohn Estabrook
2025-04-03T7292: generate vyconfd client library dataclassesJohn Estabrook
2025-04-03T7272: drop test functionsJohn Estabrook
2025-03-28geoip: T5636: Add geoip for policy route/route6sskaje