summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
18 hoursT861: secure-boot: document show secure-boot op-mode commandssecure-bootChristian Breunig
Add an Operation section with {opcmd} entries for 'show secure-boot' and 'show secure-boot detail', and reference it from the installation verification step.
45 hoursMerge pull request #2337 from mandelbitdev/T9386-openvpn-shared-secret-aeadrollingChristian Breunig
T9386: openvpn: AEAD fallback ciphers can't be used with shared-secret-key
3 daysopenvpn: T9386: AEAD fallback ciphers can't be used with shared-secret-keyAntonio Quartulli
Note that "encryption data-ciphers-fallback" only takes CBC ciphers together with "shared-secret-key".
4 daysMerge pull request #2336 from rnavarro/feat/T9413-router-advert-on-exitChristian Breunig
router-advert: T9413: document no-remove-on-exit and no-flush-* options
5 daysrouter-advert: T9413: suppress linter on NAT64 well-known prefix examplesRobert Navarro
The two nat64prefix examples use the well-known prefix 64:ff9b::/96, which the doc linter reports as outside the documentation ranges. Wrap them in stop/start_vyoslinter markers, as AGENTS.md describes for this prefix, so the page passes the linter.
5 daysrouter-advert: T9413: document no-remove-on-exit and no-flush-* optionsRobert Navarro
Document the three per-interface options added in vyos-1x for T9413, which keep radvd from sending zero-lifetime router, RDNSS and DNSSL advertisements on shutdown, and add an example of two routers sharing fe80::1 as the RA source address through VRRP.
5 daysMerge pull request #2324 from mandelbitdev/T9370-openvpn-chacha20poly1305Christian Breunig
openvpn: T9370: document the chacha20poly1305 data cipher
6 dayscontainer: document remaining per-container options and network types (#2244)Ruben Herold
* container: document remaining per-container options and network types The container page covered 44 of the 53 nodes in container.xml.in. Add the eight that were missing, grouped where they belong on the page: - allow-host-cgroups, next to allow-host-pid - network <net> mac, next to the network address option - volume <vol> propagation, with all six modes - stop-timeout, next to restart - shared-memory, next to memory - network <net> type bridge / type macvlan mode / type macvlan parent The network type is the notable gap: MACVLAN was entirely undocumented, although it is the way to put containers directly on a parent network instead of behind the host bridge and NAT. The page now states that parent and mode are both required, that the parent must exist, and that MACVLAN networks cannot be assigned to a VRF - all three are enforced by verify() in src/conf_mode/container.py. Defaults and ranges are taken from container.xml.in; the "--cgroupns host" note matches what the quadlet generator emits. * container: describe volume propagation in terms of mount events The six propagation modes were described in terms of sub-mount visibility, taken from the <description> text in container.xml.in. That is not what the modes do - mount(2)/umount(2) event propagation is. Per mount_namespaces(7): - MS_SHARED propagates events *both ways* between members of the peer group, not only from the original mount to the replica - MS_PRIVATE propagates no events out of or into the mount; it does not hide sub-mounts within it Also note the constraint the host side imposes, which is easy to trip over: per docker-run(1)/podman, shared propagation requires the source mount to be shared and slave requires it to be shared or slave, or the requested mode silently does not take effect. Added the findmnt invocation to check it. Raised by CodeRabbit on #2244. * container: document stop-timeout range and MACVLAN private mode precisely
6 daysdocs: T9200: note no-ipv6-auto-ra doesn't stop already-active RA (#2195)Ruben Herold
* docs: T9200: note no-ipv6-auto-ra doesn't stop already-active RA no-ipv6-auto-ra only prevents future RA initiation; it doesn't retroactively silence router advertisements already sent on an established session. Confirmed on VyOS 1.5.1: neither a soft nor a hard clear/reset bgp on the neighbor stopped it. Per FRR's bgp_zebra_terminate_radv()/upstream PR FRRouting/frr#19487, that only runs when the neighbor's remote-as is removed and re-added. * docs: T9200: distinguish blast radius of the two RA workarounds remote-as re-add only affects the one neighbor; a bgpd/frr restart clears every BGP session on the router. The note listed them as equivalent options - reframe the restart as a maintenance-window fallback instead. Flagged by CodeRabbit review on PR #2195. * Make the note less wordy --------- Co-authored-by: Daniil Baturin <daniil@baturin.org>
11 daysMerge pull request #2260 from ordex/T9364-openvpn-dco-mtuChristian Breunig
openvpn: T9364: document the mtu option
11 daysopenvpn: T9370: document the chacha20poly1305 data cipherAntonio Quartulli
Add chacha20poly1305 to "encryption data-ciphers" and "encryption data-ciphers-fallback".
14 daysopenvpn: T9364: document the mtu optionAntonio Quartulli
Document "interfaces openvpn <interface> mtu", its 1420 bytes default with DCO and its constraints.
14 daysMerge pull request #2051 from scottlaird/push-yvytkpvwmvzoChristian Breunig
ntp: T8882: add ntp polling options
14 daysT8882: add ntp polling optionsScott Laird
14 daysdocs: Installation: Clarify minisign verification for rolling images (#2257)LiudmylaNad
* docs: installation: clarify minisign verification for rolling images * Update install.md
14 daysdocs: Update IP page to VyOS 1.5 standards (#2255)LiudmylaNad
14 daysT9274: Add telegraf agent configuration (#2238)Michael
Added documentation to correspond to the change to make several agent values configurable instead of hardcoded
2026-09-28docs: T9122: clarify flow-accounting source-interface must belong to the VRF ↵LiudmylaNad
(#2252)
2026-09-28docs: Update FRR page to VyOS 1.5 standards (#2251)LiudmylaNad
* docs: Update FRR page to VyOS 1.5 standards * Minor corrections * Update frr.md
2026-09-28docs: Update Host name page to VyOS 1.5 standards (#2254)LiudmylaNad
2026-09-28docs: Update Serial console page to VyOS 1.5 standards (#2250)LiudmylaNad
* docs: Update Serial console page to VyOS 1.5 standards * Remove a passage with outdated information --------- Co-authored-by: Daniil Baturin <daniil@baturin.org>
2026-09-28docs: vpp: update common configuration physmem (#2245)Andrii Pidnebesny
2026-09-28docs: VPP IPsec remove lcp and netlink configuration (#2243)Andrii Pidnebesny
* docs: vpp: remove netlink and lcp IPsec options Removed netlink and lcp options from the VPP IPsec documentation (dataplane/ipsec.md) as they were removed from the CLI. Also updated the IPsec configuration page (vpp/configuration/ipsec.md): - Clarified that the IPsec option can be configured in the VPP configuration section - Removed the netlink rx-buffer-size and lcp ignore-kernel-routes options from the configuration example Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * docs: vpp: fix wording and broken anchor after netlink removal - Restore "VPN configuration section" wording (was accidentally changed to "VPP configuration section", which contradicts the linked page and the fact that IPsec tunnels are configured via the ordinary vpn ipsec tree, not a VPP-specific section). - Fix broken anchor in the "disable the kernel routes synchronization" link: lcp.md's real anchor is vpp_config_dataplane_lcp_ignore_kernel_routes, not vpp-lcp-configuration. - Remove leftover blank line left after deleting the netlink section. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * docs: vpp: fix lcp.md link path and wrap long line - The link target anchor lives in docs/vpp/configuration/dataplane/lcp.md, not a sibling docs/vpp/configuration/lcp.md, so the relative path needs the dataplane/ prefix. - Convert to a shortcut reference link to keep the visible line under the 80-character doc-lint limit; the long URL moves to a reference definition at the bottom of the file, suppressed with stop/start_vyoslinter per the documented convention for unavoidably long lines. Verified locally with `python3 scripts/doc-linter.py '["docs/vpp/configuration/ipsec.md"]'` (exit 0, no warnings). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * add ignore-kernel-routes.md --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-28docs: VPP Loopback interface MAC (#2242)Andrii Pidnebesny
* docs: vpp: document missing loopback mac option * Added correct mac option description loopback.md
2026-09-28docs: Cleaned up container document (#2197)Diekos
* Cleaned up container document Added more explicit explanation to some items Added note on Global State Policies and container networks about accept-invalid * Update docs/configuration/container/index.md Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update docs/configuration/container/index.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update docs/configuration/container/index.md Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update docs/configuration/container/index.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Added suggested fixes from coderabbit. * Fixed opmode for Adguard Home * Fix health-check retry command * Fixed the adguard example add container image fence and changed the wording around directories. * Fixed line exceeds 80 char at volume mount Fixed fences * Update docs/configuration/container/index.md No idea how that ended up in the file. Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Fix grammar for Zabbix example * Remove a third-party service example --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Daniil Baturin <daniil@baturin.org>
2026-09-28docs: T9175: document dns forwarding options security-status-poll-domain (#2193)Ruben Herold
* docs: T9175: document dns forwarding options security-poll-suffix Document the new opt-in `service dns forwarding options security-poll-suffix` setting that controls the PowerDNS recursor's periodic security status poll, disabled by default. * docs: T9175: fix security-poll-suffix placement and clarify disable The security-poll-suffix cfgcmd was placed under "Per-domain forwarding" even though it's a global forwarding option, and used the "forwarding options" convention (bold summary + Example block) used by ecs-add-for/ecs-ipv4-bits/edns-subnet-allow-list right above it. Also documents how to disable polling again (delete the option), clarifies it only takes effect with a non-empty suffix, and that secpoll.powerdns.com is PowerDNS' own poll domain rather than a VyOS default. Switches secpoll.powerdns.com from double to single backticks, matching MyST inline-code convention. Flagged by CodeRabbit and the Claude review bot on PR #2193. * docs: T9175: rename security-poll-suffix option to security-status-poll-domain Follows vyos-1x PR #5389 rename per dmbaturin's review: the value is a full FQDN, not a suffix, and the poll checks for known vulnerabilities.
2026-09-26Merge pull request #2149 from BradKollmyer/T9077-literal-question-markBradKollmyer
cli: T9077: document literal question mark entry and value quoting
2026-09-25docs: T9157: document firewall fib-type match (#2186)Ruben Herold
* docs: T9157: document firewall fib-type match Companion doc entry for vyos/vyos-1x#5372, which adds "fib-type" as a source/destination match option (nftables' fib daddr/saddr type expression) for forward/input/output/name rule sets, ipv4 and ipv6. * docs: T9157: update fib match docs for fib-type -> fib type rename Companion vyos-1x PR #5372 restructured the "fib-type" leaf into a "fib" node with a "type" child (following feedback from l0crian1 and sarthurdev to reserve the "fib" namespace for a possible future lookup/match concatenation feature, tracked separately under T5119). Update the CLI paths and examples here to match, and fix "prohibited" to "prohibit" to match nftables' actual fib_addrtype token. * docs: T9157: add prerouting raw fib type reference, fix backtick style CodeRabbit feedback on #2186: - the prose showed a "prerouting raw" example but the command reference only listed forward/input/output/name filter forms, even though fib.xml.i is also included from common-rule-ipv{4,6}-raw.xml.i for that hook. Add the missing source/destination cfgcmd entries. - MyST pages use single backticks for inline code, not double (that's for embedded RST); fix the fib type prose accordingly. * docs: T9157: update fib docs for rule-level lookup/match split Companion vyos-1x PR #5372 moved "fib" from a leaf nested under destination/source to a rule-level node with separate "lookup" (source-address/destination-address) and "match route-type" children, per l0crian1's review feedback - reserving room for mark/iif/oif lookup keys and oif/oifname match results later (tracked under T5119) without ever renaming what ships now. Update the CLI paths and examples here to match.
2026-09-15docs: vpp: document that kernel prerequisites need their own commit and ↵結友
reboot (#2233) * docs: vpp: document that kernel prerequisites need their own commit and reboot VPP depends on hugepages and, since T8460, on isolated CPUs. Both are configured under "system option kernel", take effect only after a reboot, and are validated by VPP against the running kernel. Because "vpp" is committed at priority 295 and "system option" at 9999, the two can never be applied in the same commit - the VPP part is always rejected with "Not enough free memory to start VPP!" or "Not enough isolated CPU cores available", both of which point back at the very command the user just issued. This is independent of the NIC: the checks that fail take no interface or PCI information and run before the NIC validation. It was reproduced both with an unsupported NIC and with a validated one. Such a commit is also partial: the "system option kernel" part is applied even though the commit is reported as failed, while the "set vpp ..." statements are discarded and have to be re-entered after the reboot. The "Optimal Configuration Example" showed exactly this failing one-shot form, mixing "set system option kernel ..." and "set vpp settings ..." in a single block. Split it into the two stages that actually work and state why, and add hugepages to it so the example covers every prerequisite. Also: * add a short "Kernel Configuration" item to the requirements page, which is what a first-time user reads and which had no pointer to the kernel settings at all * document the isolated-CPU requirement on the cpu-cores page, which did not mention "isolate-cpus" * add the missing 1af4:1041 (virtio modern ID) row to the validated NIC table - it is present in SUPPORTED_PCI_IDS but was absent here * correct the allow-unsupported-nics note, which said the check is bypassed "for the specified devices". There are no specified devices: _is_device_allowed() returns True for every interface as soon as the option is set, including interfaces attached later. That wording is a leftover from the per-PCI-ID form originally proposed in T8315, which was merged as a single boolean. Verified by building the docs; the three changed pages produce no Sphinx warnings. Claude-Session: https://claude.ai/code/session_01EQsKVSw5hhDu7jPq1YzQvj * docs: vpp: correct what a failed VPP commit leaves behind Two corrections to the pages added earlier in this PR. The partial-commit note claimed that the "set vpp ..." statements are "discarded". They are not. Verified on VyOS 2026.03: after the commit fails, "compare" still shows them staged in the configuration session. [vpp settings] + resource-allocation { + memory { + main-heap-size "6G" + } + } What actually happens is worse than the previous wording suggested and worth stating precisely: the statements are neither applied nor written by "save", because "save" writes the running configuration - which "system_option.py" has already updated with the kernel options while the VPP part was rejected. The session does not survive the reboot, so the VPP statements are lost there rather than at commit time. The isolated-CPU requirement was also described as if it only applied once "cpu-cores" is raised. It applies at the default of "cpu-cores 1" as well: verify_vpp_cpu_cores() rejects the commit whenever fewer CPUs are isolated than requested, and VPP takes its main core from the isolated set. The project's own test_01_vpp_basic relies on this - it never sets "cpu-cores" and still expects "main-core" to be taken from /sys/devices/system/cpu/isolated. Without this, a reader doing a minimal setup would conclude that CPU isolation is optional for them. Claude-Session: https://claude.ai/code/session_016gXeKHVBq2N8qRAMQkrdM6
2026-09-15firewall/groups: document include option and remote-group interval (#2241)Ruben Herold
* firewall/groups: document include option and remote-group interval These CLI nodes existed in the XML definitions but were missing from the docs entirely, per docs.vyos.io/en/1.5/coverage.html: - include: lets one group nest another group of the same type (address-group, ipv6-address-group, network-group, ipv6-network-group, mac-group, port-group, interface-group) - remote-group interval: overrides the global resolver-interval on a per-group basis * firewall/groups: clarify remote-group interval range applies post-conversion CodeRabbit review on #2241 noted the range (60-2419200s) wasn't clearly tied to suffixed values. Confirmed in vyos-1x conf_mode/firewall.py: human_to_seconds() converts the value first, then the range check runs on the converted seconds -- so e.g. "30s" is rejected same as "30".
2026-09-11docs: T8045: document dont-query (#2211)chariri
* docs: T8045: document dont-query --------- Co-authored-by: Daniil Baturin <daniil@baturin.org>
2026-09-11docs: Update sFlow page to VyOS 1.5 standards (#2237)LiudmylaNad
* docs: Update sFlow page to VyOS 1.5 standards
2026-09-11data-ciphers-fallback must required for s2s (#2235)srividya0208
2026-09-11docs: Update Conntrack page to VyOS 1.5 standards (#2232)LiudmylaNad
* docs: Update Conntrack page to VyOS 1.5 standards * Update conntrack.md * Apply suggestion from @dmbaturin * Apply suggestion from @dmbaturin * Apply suggestion from @dmbaturin * Apply suggestion from @dmbaturin --------- Co-authored-by: Daniil Baturin <daniil@baturin.org>
2026-09-11docs: Update Acceleration page to VyOS 1.5 standards (#2231)LiudmylaNad
* docs: Update Acceleration page to VyOS 1.5 standards * Apply batched suggestions from code review Co-authored-by: Daniil Baturin <daniil@baturin.org> * Update acceleration.md --------- Co-authored-by: Daniil Baturin <daniil@baturin.org>
2026-09-11Merge pull request #2210 from cqjjjzr/T9166-ipv6-haViacheslav Hletenko
docs: T9166: document IPv6 for HA peer link
2026-09-11firewall: T9076: document remote-group update interval (#2148)BradKollmyer
* firewall: T9076: document remote-group update interval Document the new 'set firewall group remote-group <name> interval' command: per-group update interval from 60 seconds to 4 weeks, given as plain seconds or with s/m/h/d/w suffixes (e.g. 4h), falling back to the global resolver-interval when unset. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * firewall: T9076: note URL quoting and log redaction for remote-group Warn that remote-group URLs with query strings must be quoted (unquoted '&' silently truncates the value; literal '?' may need Ctrl-V, see T9077) and that vyos-domain-resolver logs redact the query string on download failures (T8829). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * firewall: T9076: note that remote-group interval suffixes may be combined Address review feedback: document that s/m/h/d/w units can be stacked (e.g. 1h30m), matching human_to_seconds and the CLI regex. --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-09-11chore(deps): bump @vitest/mocker and vitest in /workers (#2239)dependabot[bot]
Bumps [@vitest/mocker](https://github.com/vitest-dev/vitest/tree/HEAD/packages/mocker) to 4.1.11 and updates ancestor dependency [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest). These dependencies need to be updated together. Updates `@vitest/mocker` from 4.1.10 to 4.1.11 - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md) - [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.11/packages/mocker) Updates `vitest` from 4.1.10 to 4.1.11 - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md) - [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.11/packages/vitest) --- updated-dependencies: - dependency-name: "@vitest/mocker" dependency-version: 4.1.11 dependency-type: indirect - dependency-name: vitest dependency-version: 4.1.11 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-09docs: Update Monitoring page to VyOS 1.5 standards (#2207)LiudmylaNad
* docs: Update Monitoring page to VyOS 1.5 standards --------- Co-authored-by: Daniil Baturin <daniil@baturin.org>
2026-09-09docs: Update SNMP page to VyOS 1.5 standards (#2222)LiudmylaNad
* docs: Update SNMP page to VyOS 1.5 standards --------- Co-authored-by: Daniil Baturin <daniil@baturin.org>
2026-09-09docs: Update PPPoE server page to VyOS 1.5 standards (#2223)LiudmylaNad
* docs: Update PPPoE server page to VyOS 1.5 standards * Update pppoe-server.md * Update pppoe-server.md * Clarify the meaning of `noauth` --------- Co-authored-by: Daniil Baturin <daniil@baturin.org>
2026-09-09docs: Update NTP page to VyOS 1.5 standards (#2224)LiudmylaNad
* docs: Update NTP page to VyOS 1.5 standards
2026-09-09docs: Update Flow accounting page to VyOS 1.5 standards (#2236)LiudmylaNad
* docs: Update Flow accounting page to VyOS 1.5 standards * Minor corrections * Minor corrections * Update flow-accounting.md * Apply batched suggestions from code review docs: Applied review suggestions to the Flow accounting page Co-authored-by: Daniil Baturin <daniil@baturin.org> * Remove the passage about address family match requirements --------- Co-authored-by: Daniil Baturin <daniil@baturin.org>
2026-09-04Merge pull request #2139 from jeleel-muibi/docs-gcp-ha-vpn-bgp-exampleViacheslav Hletenko
docs: add Google Cloud HA VPN BGP example
2026-09-01Merge pull request #2162 from alexandr-san4ez/T5735-rollingChristian Breunig
T5735: Add service stunnel documentation
2026-09-01T5735: Add service stunnel documentationOleksandr Kuchmystyi
Add a new configuration page for the stunnel service.
2026-08-31Merge pull request #2226 from vyos/oci-imageChristian Breunig
T9265: Update documentation for container image build
2026-08-31Merge pull request #2225 from vyos/container-fixViacheslav Hletenko
Docker: T9264: fix container build and publishing
2026-08-30T9265: Update documentation for container image buildChristian Breunig
2026-08-30Docker: T9264: fix container build and publishingChristian Breunig