summaryrefslogtreecommitdiff
path: root/interface-definitions
AgeCommit message (Collapse)Author
29 hoursMerge pull request #5534 from jbsky/container-tmpfs-chownChristian Breunig
container: T9401: add chown option to tmpfs mounts
3 daysMerge pull request #5502 from natali-rs1985/T6304John Estabrook
config-management: T6304: Rewrite commit-archive location into a structured CLI
5 daysMerge pull request #5540 from Hanarion/bgp-ipv6-route-map-vrf-importChristian Breunig
bgp: T9410: add route-map vrf import under ipv6-unicast
5 daysMerge pull request #5541 from rnavarro/feat/router-advert-no-remove-on-exitChristian Breunig
router-advert: T9413: add no-remove-on-exit and no-flush-* options
5 daysrouter-advert: T9413: add no-remove-on-exit and no-flush-* optionsRobert Navarro
On shutdown radvd sends a final RA with router lifetime 0 and announces its RDNSS and DNSSL entries with lifetime 0. On a VRRP pair that sends RAs from a shared source address (source-address fe80::1), hosts read the zero router lifetime as the shared router going away and remove their default route until the backup's next RA. On my routers that was 1.6 s of IPv6 loss when the master rebooted. radvd controls this with RemoveAdvOnExit, FlushRDNSS and FlushDNSSL, all defaulting to on. Expose them per interface: set service router-advert interface <if> no-remove-on-exit set service router-advert interface <if> no-flush-name-server set service router-advert interface <if> no-flush-dnssl The directives are only rendered when the options are set, so the generated radvd.conf is unchanged for existing configurations.
5 daysbgp: T9410: add route-map vrf import under ipv6-unicastLandry JUGE
The ipv4-unicast address family has 'route-map vrf import' to filter the VRF route leak; ipv6-unicast did not, so an IPv6 leak could not be filtered. The template is already AFI-generic: only the CLI node was missing.
5 daysMerge pull request #5523 from mandelbitdev/T9370-openvpn-chacha20poly1305Christian Breunig
openvpn: T9370: add chacha20poly1305 data cipher
5 daysMerge pull request #5536 from alexk37/bgp-default-local-pref-100Christian Breunig
bgp: T9404: do not render "bgp default local-preference" when the value is 100
5 daysMerge pull request #5442 from ritika0313/T9328-v1x-blast-radiusViacheslav Hletenko
T9351: Accel-PPP-NG: Add CLI support for Message Authenticator attribute in Access packets (Blast-RADIUS mitigation)
5 daysconfig-management: T6304: Rewrite commit-archive location into a structured CLINataliia Solomko
Replace the free-form 'commit-archive location <url>' leafNode with a structured, per-destination tagNode: `set system config-management commit-archive location <name> <protocol> \ authentication { username | password } | server | port | path` Each location selects exactly one transport protocol (scp, sftp, ssh, ftp, ftps, http, https, git, tftp). 'git' additionally accepts a 'transport' (https/http/ssh, default https). 'source-address' and 'vrf' stay under 'commit-archive' and apply to every location, as before.
6 daysbgp: T9404: do not render "bgp default local-preference" when the value is 100Alex Kudentsov
FRR does not print "bgp default local-preference 100" in show running-config because 100 is its default, so frr-reload never finds the line in the running config and sends it again on every reload. The command handler calls bgp_clear_star_soft_in() whether or not the value changed, so every reload ran "clear bgp * soft in" (once in pass 0 and twice in pass 1), a full inbound re-evaluation of every peer. Add the default (100) to the XML definition of parameters default local-pref. Templates cannot query the XML definition while rendering, so frrender takes the value from the config defaults of "parameters default" (conf.get_config_defaults) and adds it to the BGP dict as the key xml_default_local_pref, for the global instance and for every VRF instance. bgpd.frr.j2 renders the line only when the configured value differs from xml_default_local_pref, so the value 100 is not hardcoded in the template. A real value change (100 to 200, or 200 to 100) is still sent: frr-reload sees the difference between the rendered file and the running config.
7 dayscontainer: T9401: add chown option to tmpfs mountsjbsky
Since T9024 (Podman 5.8.4, crun replaced by runc 1.1.5), a tmpfs mounted over a directory that already exists in the image is owned by root:root 0755, whatever the image prepared. A container running as a non-root user (image USER or uid/gid) can no longer write its pid file or control socket there and fails to start. With crun 1.8.1 every tmpfs was 1777, so the same configuration used to work. runc 1.1.5 ignores tmpfs-mode; the Podman mount option `U` (chown the mount to the container user) is the only one that works on the runtime VyOS ships. Expose it as a valueless `chown` node: set container name <name> tmpfs <tag> chown Without the option the generated Quadlet line is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
11 daysopenvpn: T9370: add chacha20poly1305 data cipherAntonio Quartulli
Offer chacha20poly1305 in "encryption data-ciphers" and "encryption data-ciphers-fallback", rendered as CHACHA20-POLY1305 and allowed with DCO.
13 daysopenvpn: T9364: default the MTU to 1420 when DCO is enabledAntonio Quartulli
The ovpn Kernel module does no MSS clamping, so with a 1500 bytes MTU full sized packets get fragmented on the underlay. Add an "mtu" node, rendered as "tun-mtu". With "offload dco" it defaults to 1420, unless a raw tun-mtu/link-mtu/udp-mtu option is present. Reject "mtu" together with such an option, below 100, and below 1280 when IPv6 runs inside the tunnel.
14 daysT9351: Accel-PPP-NG: RADIUS: CLI support for Message Authenticator attribute ↵Ritika Chopra
in Access packets Add CLI options to control Message-Authenticator handling for Access packets. The new options allow including Message-Authenticator in Access-Request packets and requiring it in Access-Accept, Access-Reject and Access-Challenge responses. Render the corresponding accel-ppp-ng configuration options and warn when response validation is configured as required while Access-Request packets are not configured to include Message-Authenticator.
14 daysMerge pull request #5496 from vyos/T9338-l3vpn-multi-domain-switchingChristian Breunig
T9338: add bgp mpls l3vpn-multi-domain-switching
2026-09-28ntp: T8882: add per-server poll interval, presend and extension field optionsScott Laird
Poll intervals were left entirely to the NTP daemon's built-in defaults, so an operator could not widen or narrow the polling range for an individual server, warm up authenticated associations before a poll, or ask a peer for the higher resolution timestamps it may be able to provide. Each configured server and pool now accepts a minimum and maximum poll exponent, defaulting to the values the daemon already used, plus an optional presend exponent and a switch for the F323 extension field. Existing configurations render the same associations as before. Co-authored-by: Christian Breunig <christian@vyos.io>
2026-09-28Merge pull request #5389 from ruben-herold/T9175-security-poll-suffixDaniil Baturin
dns: T9175: make PowerDNS security status poll opt-in
2026-09-25Merge pull request #5453 from m-songer/T9274-add-telegraf-configNataliia S.
T9274: Add more telegraf configuration
2026-09-24Merge pull request #5484 from haakonnore/feat/T9319-vxlan-gbpChristian Breunig
vxlan: T9319: add VXLAN-GBP support
2026-09-24T9274: Add more telegraf configuration- #5453MichaelSonger
Added the ability to make several agent values configurable instead of hardcoded.
2026-09-24T9338: add bgp mpls l3vpn-multi-domain-switchingT9338-l3vpn-multi-domain-switchingKyrylo Yatsenko
Add command set protocols bgp interface <interface> mpls l3vpn-multi-domain-switching that exposes FRR's `mpls bgp l3vpn-multi-domain-switching` under interface node.
2026-09-22vxlan: T9319: add VXLAN-GBP supportHaakon Nore
Expose the Group Policy extension as a valueless gbp CLI node and pass it to iproute2 when creating VXLAN links. Recreate links when GBP changes and reject configurations combining GBP with GPE. Reject conflicting GBP settings on a shared UDP port, accounting for address families and underlay VRF socket bindings. Warn that external mode carries GBP in tunnel metadata instead of the packet mark. Add smoketest coverage for GBP creation, removal and re-enabling, retained interface settings, rejection without changing the running tunnel, shared ports, separate address families, and external mode.
2026-09-16ipsec: T8952: Allow per-peer strongSwan `unique` override for site-to-site peersOleksandr Kuchmystyi
VyOS does not expose the strongSwan `connections.<conn>.unique` parameter for site-to-site peers. The swanctl default is `unique = no`, which only replaces existing SAs if the new one carries `INITIAL_CONTACT`. With `dpd_action = restart`, charon initiates new IKE_SAs without `INITIAL_CONTACT`, so duplicates accumulate on every DPD timeout. Previously the strongSwan `unique` connection policy could only be driven by the global "disable-uniqreqids" option, which set it to "never" for every connection. Site-to-site peers had no way to opt into stricter enforcement on their own.
2026-09-13openvpn: T8264: mention the offload in the raw option helpAntonio Quartulli
Not every option that turns the offload off can be recognised, so say so where the option is entered.
2026-09-13openvpn: T8264: migrate away DCO the Kernel module cannot serveAntonio Quartulli
"offload dco" was accepted next to tap, static keys, compression, CBC ciphers and raw options OpenVPN refuses to offload, because 2.6 ignored the module altogether. Those combinations now fail verify(), which would break config load on upgrade, so drop the request instead. The migration has to mirror verify_dco() exactly: anything it keeps that verify() turns away leaves a router unable to commit its own configuration.
2026-09-11Merge pull request #5440 from sever-sever/T9260-seChristian Breunig
monitoring: T9260: relay local frr_exporter metrics via Telegraf
2026-09-11Merge pull request #5372 from ruben-herold/T9157-fib-type-matchRuben Herold
firewall: T9157: add fib-type match for destination/source
2026-09-11monitoring: T9260: relay local frr_exporter metrics via TelegrafViacheslav Hletenko
FRR routing state was only available through the Prometheus frr-exporter, a pull target. Operators who push everything else out via Telegraf had to run an external Prometheus server and open inbound access to the router just to scrape routing state. Add a dedicated "service monitoring telegraf frr-metrics" node. When set, Telegraf uses inputs.prometheus to scrape the already-running local frr-exporter and re-emits the metrics through whatever Telegraf outputs are already configured (InfluxDB, ADX, Loki, Splunk, etc.).
2026-09-07T9279: VPP exted num-rx and tx ring descriptiors to 32768Viacheslav Hletenko
Some NICs allow to configure more ring descriptors that we allow in our CLI, extend it to 32768 ``` sudo vppctl show hardware-interfaces detail eth2 Mellanox ConnectX-4/5/6 Family carrier up full duplex max-frame-size 1522 promisc flags: admin-up promisc maybe-multiseg tx-offload intel-phdr-cksum rx-ip4-cksum Devargs: rx: queues 6 (max 1024), desc 16384 (min 0 max 32768 align 1) tx: queues 6 (max 1024), desc 8192 (min 0 max 32768 align 1) ```
2026-09-02Merge pull request #5438 from sever-sever/T9273John Estabrook
T9273: Add Telegraf global_tags option configurable
2026-09-02Merge pull request #5381 from omnom62/T8989-rest-api-bearerJohn Estabrook
http-api: T8989: add REST Bearer token authentication
2026-09-02T9273: Add Telegraf global_tags option configurableViacheslav Hletenko
Adds Telegraf global_tags support - static tags stamped onto every metric. ``` set service monitoring telegraf global-tag <tag-name> value <tag-value> ``` Rendered as a [global_tags] block in telegraf.conf, applied ahead of all outputs.
2026-09-01http-api: T8989: address OIDC review commentsomnom62
- Use OpenID Connect discovery (/.well-known/openid-configuration) to resolve JWKS URI when jwks-url is not explicitly configured - Add optional audience validation via new oidc audience config node - Require exp claim in OIDC tokens - Reject jwks-url without issuer at commit time
2026-09-01http-api: T8989: add OAuth2/OIDC authentication for REST APIomnom62
Add support for validating OIDC Bearer tokens issued by external identity providers (Keycloak, Azure AD, Okta, Vault, etc.) against the configured JWKS endpoint. Configuration: set service https api rest authentication oidc issuer <url> set service https api rest authentication oidc jwks-url <url> If jwks-url is not set, it is derived from the issuer URL using the standard OpenID Connect discovery path. Auth priority: mTLS -> VyOS JWT -> OIDC -> API key
2026-09-01dns: T9175: rename security-poll-suffix option to security-status-poll-domainRuben Herold
Per dmbaturin's review: the value is a full FQDN, not a suffix, and the help text should clarify that the poll checks for known vulnerabilities in the running PowerDNS recursor version.
2026-09-01dns: T9175: make PowerDNS security status poll opt-inRuben Herold
The PowerDNS recursor periodically polls secpoll.powerdns.com to check for known security issues, but VyOS ships a patched/backported package that is never updated in-place, so the check result is meaningless and only produces log noise. Add a new `service dns forwarding options security-poll-suffix` option, disabled by default. Users who still want the check (e.g. against PowerDNS' own poll domain, or a custom one) can opt back in.
2026-09-01Merge pull request #5409 from cqjjjzr/T8045-dont-queryViacheslav Hletenko
dns: T8045: expose PowerDNS dont-query list as recursion-exclude-address
2026-08-29Merge pull request #5426 from sarthurdev/T9129Christian Breunig
podman: T9129: Use systemd quadlet for containers and networks
2026-08-28podman: T9129: Add `stop-timeout` and use low value for smoketestssarthurdev
This drastically reduces the wait time from podman killing containers during smoketest
2026-08-28Merge pull request #5408 from cqjjjzr/T9166-ipv6-haViacheslav Hletenko
ha: T9166: add IPv6 support for HA peer links
2026-08-27Merge pull request #5423 from indrajitr/container-cgroupnsJohn Estabrook
T9240: container: Allow sharing host's cgroup namespace with container
2026-08-26http-api: T8989: add mTLS client certificate authenticationomnom62
Add support for mutual TLS (mTLS) authentication to the VyOS REST API. When configured, nginx requests a client certificate and verifies it against the configured CA chain. FastAPI reads the X-Client-Verify header set by nginx and bypasses API key/token authentication when the client certificate is valid. Configuration: set service https certificates ca-certificate <name> set service https certificates verify-client <optional|required> Note: requires TLSv1.2 due to nginx 1.22 TLSv1.3 post-handshake authentication limitations. TLSv1.3 support pending nginx upgrade.
2026-08-26http-api: T8989: add REST Bearer token authenticationomnom62
Add JWT Bearer token support to the REST API, as an additional authentication method alongside the existing form-field key and X-API-Key header. - New POST /token endpoint mints a JWT for a valid API key - auth_required() accepts Authorization: Bearer <token> alongside existing key/X-API-Key auth - New config nodes: service https api rest authentication {expiration, secret-length} (defaults: 3600s / 32 bytes) - REST tokens use an independent signing secret from GraphQL's, since GraphQL may not be enabled on all deployments and the two subsystems have different expiry requirements - nginx location regex updated to allow /token - service_https.py default-value merge generalized to also apply to the rest node, not just graphql, so REST authentication defaults populate correctly on commit
2026-08-26dns: T8045: expose PowerDNS dont-query list as recursion-exclude-addresschariri
The `+=` append syntax is used for appending. To remove from the defaults, users can use negation.
2026-08-26dhcp: T9166: add IPv6 support for HA peer linkschariri
Accept IPv6 source and remote addresses for Kea high availability and bracket IPv6 endpoints in generated peer URLs.
2026-08-26conntrack-sync: T9166: add IPv6 support for HA peer linkschariri
Accept IPv6 peer, listen, and multicast addresses. Render the selected address family and validate it against the synchronization interface and listen addresses.
2026-08-23firewall: T9242: Add mac-address-mask supportl0crian1
- Add mac-address-mask support to firewall rules - Add smoketest for mac-address-mask
2026-08-22T9240: container: Allow sharing host's cgroup namespace with containerIndrajit Raychaudhuri
2026-08-20T8868: Change help message for reserved memoryViacheslav Hletenko
Co-authored-by: Daniil Baturin <daniil@baturin.org>