| Age | Commit message (Collapse) | Author |
|
* docs: Update RIP page to VyOS 1.5 standards
* Update rip.md
|
|
* docs: Update PIM page to VyOS 1.5 standards
* Update pim.md
|
|
* docs: Update MPLS page to VyOS 1.5 standards
* Update mpls.md
|
|
T8967: Fix update-check URL for rolling
|
|
|
|
conntrack: T8308: Enhancements to the `show conntrack table` op-mode command
|
|
* docs: Update Static page to VyOS 1.5 standards
* Update static.md
* Remove needless words
* Fix an incorrect fact about RIB not preserving routes after interface state changes
---------
Co-authored-by: Daniil Baturin <daniil@baturin.org>
|
|
(#2047)
|
|
* docs: Update BFD page to VyOS 1.5 standards
* Update bfd.md
* Remove mentions of security from the minimum-ttl section
---------
Co-authored-by: Daniil Baturin <daniil@baturin.org>
|
|
* docs: Update IGMP Proxy page to VyOS 1.5 standards
* Minor formatting corrections
* docs: use RFC 5737 IP range
* Apply suggestions from code review
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update igmp-proxy.md
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
|
|
|
|
|
|
- Display per-flow packet and byte counters (original and reply
direction).
- Add VRF filter option `show conntrack table <ipv4|ipv6> vrf <vrf-name>`.
|
|
high-availability: T7059: Add persistence-timeout option in virtual-server
|
|
|
|
Update the upstream Git branch from 'current' to 'rolling in the
'Write Documentation' instructions.
|
|
* bgp: T8607: Add CLI support for BGP update-delay and establish-wait
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* T8607: Apply Copilot's suggestions
---------
Co-authored-by: Christian Breunig <christian@breunig.cc>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
|
docs: fix CLI typo, orphan fences, CloudWatch case, terraformvyos link labels
|
|
doc-lint regression on [vyos-documentation#2024](https://github.com/vyos/vyos-documentation/pull/2024): the CI workflow's
`scripts/doc-linter.py` scans every line of every changed file
(not just changed lines), so the typo fix on `cli.md:464` and the
capitalization fix on `aws.md:118` surfaced 57 pre-existing >80-char
violations that have lived on rolling since the MyST migration.
`cli.md` — 53 prose paragraphs hard-wrapped at word boundaries to
80 chars, preserving content fidelity. List items use hanging-indent
continuations under their `- ` marker. No content reworded; only
soft-wrap → hard-wrap.
`aws.md` — wrapped the inline AWS GWLB blog link (L164) and the
References section (L185-187) with `% stop_vyoslinter` /
`% start_vyoslinter` markers. These are URL-bearing lines that
cannot be shortened (URL itself >80 chars).
Verified locally:
`python3 scripts/doc-linter.py "['docs/cli.md','docs/installation/cloud/aws.md','docs/automation/terraform/terraformvyos.md']"`
→ exit 0, no violations.
🤖 Generated by [robots](https://vyos.io)
|
|
The full HashiCorp install-CLI URL is 79 chars, so any reference
definition `[X]: <URL>` form exceeds the 80-char docs-lint limit
regardless of label length. Existing `% stop_vyoslinter` /
`% start_vyoslinter` markers in this file were back-to-back with
no content between them (flagged by Copilot on
[vyos-documentation#2021](https://github.com/vyos/vyos-documentation/pull/2021)) — put them to work by wrapping the long
`[install Terraform]:` reference. The shorter
`[Terraform introduction]:` reference (73 chars) sits outside the
suppression range.
Both Copilot and CodeRabbit flagged the docs-lint regression on
[vyos-documentation#2024](https://github.com/vyos/vyos-documentation/pull/2024) — verified locally with
`python3 scripts/doc-linter.py docs/automation/terraform/terraformvyos.md`:
no warnings.
🤖 Generated by [robots](https://vyos.io)
|
|
Surfaced by CodeRabbit on the circinus RST→MD conversion PR
[vyos-documentation#2021](https://github.com/vyos/vyos-documentation/pull/2021) (`terraformvyos.md:14`). Both labels violate MD059
(descriptive link text) — generic words like "link" don't convey
the destination to screen-reader users or search indexers.
Pre-existing on rolling; out of scope for the conversion port,
fixed here at the source. Mergify will backport to circinus and
sagitta. Sibling `automation/terraform/index.md` already uses the
descriptive form ([Terraform], [Ansible]).
🤖 Generated by [robots](https://vyos.io)
|
|
The original RST `_include/need_improvement.txt` wrapped the admonition
in `.. raw:: latex \iffalse / \fi`, intentionally hiding the
"Call for Contributions" notice from the LaTeX/PDF builder (see
b222a313, 2020). `.readthedocs.yml` enables `formats: - pdf` and
`conf.py` configures `latex_elements`/`latex_documents`, so PDF output
is a real downstream artifact.
The previous commit (82a06e1d) dropped that suppression. Restore it
using Sphinx's `only` directive with `not latex`, which is the MyST
equivalent of the original RST builder-conditional pattern.
Spotted by Copilot inline review on #2016.
🤖 Generated by [robots](https://vyos.io)
|
|
Three pre-existing rolling docs bugs, surfaced by Copilot review on
the sagitta RST→MD conversion PR #2022 against the byte-for-byte
ports of `cli.md` and `aws.md`:
- `cli.md` line 464: `set interface ethernet …` is wrong; the CLI
command is `set interfaces ethernet …` (plural). Users copying the
example verbatim would hit "Configuration path is not valid".
- `cli.md` lines 527-528: orphan `:::` / `::::` fence closers after
the `{cfgcmd} save` block. The `(save)=` directive opens at line
503 and closes at line 506; the two `` ``` none `` blocks at
508-526 are self-contained; nothing opens these colon fences.
MyST/Sphinx tolerates them silently today but they're literal
noise. Drop both.
- `aws.md` line 118: "Cloudwatch" → "CloudWatch", matching the
surrounding correctly-cased uses on lines 115/121/122 and AWS's
product naming.
Mergify will backport to circinus and sagitta via the standard
`@Mergifyio backport circinus sagitta` post-merge.
🤖 Generated by [robots](https://vyos.io)
|
|
renders correctly
After the RST→MyST migration, ~45 MD pages use the plain `{include}` MyST
directive to pull in `_include/need_improvement.txt`. The included file
still contained RST (`.. raw:: html`, `.. raw:: latex`, `:ref:`), and
MyST's built-in `{include}` parses the content with the *outer* file's
parser — i.e. as MyST. RST directives then render as literal paragraphs.
Visible symptom on docs.vyos.io/en/rolling (and across 1.5/1.4):
the VPP index, VPP subpages, haproxy, isis, bfd, policy, pki, salt,
flowtables, webproxy, and others all show:
.. raw:: latex
\iffalse
.. raw:: html
Call for Contributions
Help improve this section ...
For contribution guidelines, see :ref: documentation .
Fix: rewrite `_include/need_improvement.txt` as a native MyST admonition
(`:::{admonition} Call for Contributions / :class: error / ... / :::`)
and drop the now-unnecessary `{eval-rst}` wrapper at the single callsite
(`configuration/highavailability/index.md`) that wrapped the include for
RST processing.
The fix is companion to 9c815d68 (cmdincludemd RST plumbing) but targets
the plain-`{include}` path which doesn't route through our custom
extension.
🤖 Generated by [robots](https://vyos.io)
|
|
Introduce 'anycast-gateway' option for pseudo-ethernet interfaces.
When set, a local FDB entry is installed on the parent bridge to
prevent the shared anycast MAC from leaking over the VXLAN overlay.
|
|
docs: fix typos across configuration, contributing, and vpp docs
|
|
directives render
The `_include/*.txt` library is written in reStructuredText (`.. cfgcmd::`,
`.. code-block::`, `.. note::`, `.. cmdinclude::`). After the RST→MyST
migration, the `{cmdincludemd}` fence on .md pages routed include content
through `MockState.nested_parse`, which in MyST 2.0 simply replays the
content through the MyST renderer (see myst_parser/mocking.py:153). RST
directives in the .txt file then rendered as literal paragraph text:
<p>.. cmdinclude:: /_include/interface-description.txt</p>
<p>.. cfgcmd:: set interfaces ethernet ...</p>
<p>.. code-block:: none</p>
User-visible symptom (reported on rolling docs): the Ethernet, dummy,
tunnel, bonding, bridge, macsec, vxlan, l2tpv3, pseudo-ethernet,
virtual-ethernet, and wireless pages all showed unprocessed `.. cfgcmd::`
and `.. cmdinclude::` directives instead of styled command boxes.
Fix: mirror MyST's own `{eval-rst}` plumbing
(`MockRSTParser().parse(text, doc)` per
`mdit_to_docutils/base.py:1655`). Build a fresh document that inherits
the outer document's settings + reporter, run `MockRSTParser` over the
substituted include content, and graft the resulting children back
into the calling document with explicit-target registration. Keeps the
Sphinx env available to `cfgcmd`/`opcmd`/`cmdinclude` directives.
Verified locally on rolling (Sphinx 7.x, myst-parser 2.0): zero literal
`cfgcmd::` / `cmdinclude::` / `code-block::` / `opcmd::` / `note::` /
`include::` strings remain in any built HTML page under
`configuration/`, `automation/`, `installation/`, `operation/`,
`vpp/`; all 11 affected interface pages now render proper
`cfgcmd-heading` / `cfgcmd-body` blocks (e.g. ethernet.html: 160,
wireless.html: 172, dummy.html: 4).
🤖 Generated by [robots](https://vyos.io)
|
|
- webproxy.md: replace `ftp.univ-tlse1.fr` with `ftp.example.com` so the
hostname matches the documentation-reserved IP `192.0.2.249` (Copilot).
- ospf.md: insert missing preposition in `show ip ospf interface` and
`show ipv6 ospfv3 interface` op-cmd descriptions (CodeRabbit).
- ipsec.md: rewrite intro sentence ("can significantly speed up …") and
hyphenate `feature-rich` (CodeRabbit).
🤖 Generated by [robots](https://vyos.io)
|
|
- ipsec.md: "to speed-up" -> "to speed up"; drop article in "creates a
corresponding SAs and policies"; "there routes" -> "these routes".
- ospf.md: "Cost calculation wireguard interfaces" -> "Cost calculation
for WireGuard interfaces".
https://claude.ai/code/session_01RDpSBDLSWLKMGnyPCaKECB
|
|
scripts/doc-linter.py enforces an 80-character limit outside fenced code
blocks and treats any finding as a failure. Wrap long paragraphs in
files that this PR touched so CI passes:
- docs/configuration/protocols/ospf.md: wrap the WireGuard cost note.
- docs/configuration/protocols/traffic-engineering.md: wrap the IS-IS/
OSPF note.
- docs/contributing/debugging.md: wrap the Phabricator paragraph, and
guard the long [bootchart.conf]/[vyatta-cfg] link references at EOF
with `% stop_vyoslinter`/`% start_vyoslinter`.
- docs/vpp/configuration/ipsec.md: wrap the integration, requirements,
algorithm, ACL, VTI example, troubleshooting paragraphs.
Pure reformatting; no semantic changes.
https://claude.ai/code/session_01RDpSBDLSWLKMGnyPCaKECB
|
|
- terraformAWS.md: balance the orphan `.. stop_vyoslinter` directive
inside the eval-rst block and wrap the long MyST link references at
EOF with `% stop_vyoslinter`/`% start_vyoslinter`.
- webproxy.md: replace real-world IP 193.49.48.249 with doc-range
192.0.2.249 in the blacklist update example output.
- console-server.md: "some times" -> "sometimes".
- bgp.md: "command disable" -> "command disables"; add comma before
"use the delete form"; "Route dampening which described in" ->
"Route dampening, described in".
https://claude.ai/code/session_01RDpSBDLSWLKMGnyPCaKECB
|
|
Corrections include: adresses->addresses, oder->other, Them->The,
criterias->criteria, seeting->setting, carefull->careful,
beeing->being, reenable->re-enable, wich->which, derection->direction,
Whith->With, assosiate->associate, fpr->for, bootup->boot, trough->through.
https://claude.ai/code/session_01RDpSBDLSWLKMGnyPCaKECB
|
|
|
|
The .md equivalent already exists alongside it; with both present and
`source_suffix = ['.rst', '.md']`, Sphinx silently preferred the .rst.
Deletion removes the shadowing and the only active .rst left in tree
(legacy is archived under docs/_rst_legacy/).
Restricting source_suffix to ['.md'] prevents future stray .rst files
from being picked up, and is what external indexers (e.g. context7)
look at when classifying the source format of the docs.
🤖 Generated by [robots](https://vyos.io)
|
|
The md- prefix on MyST-migrated pages was retired; the ignore was dead
config. Replace with _rst_legacy/ so sphinx-autobuild watches don't
trigger on archive edits. Addresses Copilot's low-confidence suggestion
on PR #1940.
🤖 Generated by [robots](https://vyos.io)
|
|
The swap mechanism (RST-as-fallback for migrated MD pages) is dormant —
docs/_rst_overrides.txt has been empty since the MyST flip trio
(#1899/#1900/#1901) landed in May 2026. The mechanism's surface area
(scripts/swap_sources.py, its 245-line test, RTD pre/post hooks,
Makefile glue, conf.py dynamic loader) is dead weight, and the
rst-*.rst shadows scattered across the source tree cause Context7's
parser to misclassify the project as RST.
Changes:
- Move 253 rst-*.rst shadow files into docs/_rst_legacy/ preserving
subdirectory structure. They remain in the repo for reference; Sphinx
excludes the folder via exclude_patterns; Context7 excludes it via
excludeFolders.
- Strip swap_sources.py invocation from docs/Makefile (swap/restore
targets, : swap deps, trap chains).
- Strip jobs: pre_build/post_build block from .readthedocs.yml.
- Strip rst-*.rst exclude entry and the _md_exclude.txt loader from
docs/conf.py; replace with a single _rst_legacy exclude.
- Delete scripts/swap_sources.py, tests/test_swap_sources.py,
docs/_rst_overrides.txt.
- Update context7.json: add docs/_rst_legacy to excludeFolders;
fix stale "Branch current tracks…" rule to "Branch rolling tracks…"
(default branch was renamed 2026-05-10).
- Update AGENTS.md: drop the "RST override mechanism" section and the
test-runner snippet for the deleted test; describe _rst_legacy as
archive only.
Verified: sphinx-build -b html with --keep-going produces identical
warning set (68 unique), identical sitemap entry count (257), identical
llms.txt entry count (22), zero rst-* URLs in any artifact.
🤖 Generated by [robots](https://vyos.io)
|
|
Cleanup PR following the current→rolling default-branch rename. Drops
the now-stale current branch from workflow triggers, flips remaining
defaults, and updates documentation/templates.
Workflows:
- pr-mirror-repo-sync.yml: branches narrowed to [rolling]; workflow_dispatch
default and choice list now rolling-only; sync_branch fallback flipped
from 'current' to 'rolling'.
- check-open-prs-conflict.yml: dropped current from push.branches.
- update-version-tags.yml: dropped current from push.branches and from
the case statement (now bare 'rolling) TAG=rolling').
- submodules.yml: renamed update_current job, branch
update-dependencies-current, and the related commit/title strings to
rolling.
- update-translations.yml: PR branch update-translations-current renamed
to update-translations-rolling.
- ai-validation.yml: prompt example updated.
Docs/templates:
- docs/conf.py: READTHEDOCS_GIT_IDENTIFIER fallback flipped to 'rolling';
comment block updated to describe the rolling branch (the user-facing
"(current)" suffix is release-channel terminology and remains).
- README.md: branching-scheme section now describes rolling as the
default branch, with a note about the rename date.
- .github/PULL_REQUEST_TEMPLATE.md: CONTRIBUTING link points at
blob/rolling.
External @current refs to vyos/.github and vyos/vyos-cla-signatures are
left untouched — they reference those repos' default branches and are
unaffected by this repo's rename.
🤖 Generated by [robots](https://vyos.io)
|
|
troubleshooting: T8608: document TCP ping
|
|
T8600: Add option to change logging verbosity in Kea
|
|
|
|
|
|
|
|
🤖 Generated by [robots](https://vyos.io)
|
|
Read COOKIEBOT_ID from the environment via conf.py html_context,
replacing the hardcoded data-cbid value in layout.html.
Guards tightened to {% if gtm_id and cookiebot_id %} so neither
GTM nor Cookiebot loads unless both IDs are present.
🤖 Generated by [robots](https://vyos.io)
|
|
Prevents broken googletagmanager.com requests with empty container IDs
when GTM_ID is not set (local builds, preview environments).
🤖 Generated by [robots](https://vyos.io)
|
|
Move the Google Tag Manager container ID out of the template and into
conf.py via os.environ.get('GTM_ID', ''), exposed to Jinja via
html_context. Set GTM_ID in the RTD project environment variables.
🤖 Generated by [robots](https://vyos.io)
|
|
🤖 Generated by [robots](https://vyos.io)
|
|
Agent-Logs-Url: https://github.com/vyos/vyos-documentation/sessions/f6d95cc7-cdbe-4d76-8077-f7fae5e9ddf2
Co-authored-by: andamasov <12631358+andamasov@users.noreply.github.com>
|
|
Inject Cookiebot CMP, Google Consent Mode v2 defaults, and Google Tag
Manager into the Sphinx layout. Cookiebot loads first so its
auto-blocker can scan and block other tags before they execute;
Consent Mode v2 starts denied for all categories except security_storage
and updates only after Cookiebot fires the consent update.
🤖 Generated by [robots](https://vyos.io)
|
|
Specificity (0,2,1) > (0,1,1) — no longer relies on rule order.
🤖 Generated by [robots](https://vyos.io)
|