Skip to content

docs: Update IPoE server page to VyOS 1.5 standards - #2191

Merged
dmbaturin merged 3 commits into
vyos:rollingfrom
LiudmylaNad:revise-ipoe
Aug 14, 2026
Merged

docs: Update IPoE server page to VyOS 1.5 standards#2191
dmbaturin merged 3 commits into
vyos:rollingfrom
LiudmylaNad:revise-ipoe

Conversation

@LiudmylaNad

Copy link
Copy Markdown
Contributor

Change Summary

This PR refactors the IPoE server page to comply with the current VyOS documentation style guide.

Changes:

  • AI & SEO Context: Added :description: and :keywords: metadata tags.
  • Content: Proofread and improved. Rewrote the introduction and reorganized the page into Configuration, Operation, and Example sections with per-topic subsections.
  • New “RADIUS attributes” subsection added under Configuration, presenting the RADIUS attribute allocation behavior as a comparison table.
  • Technical accuracy: Verified commands against VyOS 1.5.
  • Added examples for all commands.
  • The style guide checklist was applied.

Added new conf-mode commands:
set service ipoe-server interface
set service ipoe-server interface vlan-mon
set service ipoe-server interface start-session <auto | dhcp | unclassified-packet>
set service ipoe-server authentication interface mac ip-address
set service ipoe-server lua-file
set service ipoe-server interface lua-username
set service ipoe-server authentication radius server acct-port <1-65535>
set service ipoe-server authentication radius server disable-accounting
set service ipoe-server authentication radius server priority <1-255>
set service ipoe-server authentication radius server backup
set service ipoe-server authentication radius accounting-interim-interval <1-3600>
set service ipoe-server authentication radius acct-interim-jitter <1-60>
set service ipoe-server authentication radius rate-limit multiplier <0.001-1000>
set service ipoe-server idle-timeout <0-86400>
set service ipoe-server thread-count <all | half | 1-512>
set service ipoe-server log level <0-5>

Related Task(s)

NOS-3200

Related PR(s)

Backport

Checklist:

@mergify mergify Bot added the rolling label Aug 7, 2026
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Claude finished @LiudmylaNad's task in 3m 44s —— View job


Claude Code Review

  • Read pass1-findings.json and gather context
  • Verify commands against .vyos-1x/ source (rolling)
  • Cross-check RADIUS attributes, defaults, and behavioral claims
  • Cross-check op-mode commands (show/reset/restart)
  • Post inline comments for confirmed issues
  • Post summary comment

Issues

None. All documented commands, ranges, defaults, and constraints match vyos-1x (branch: rolling).

Needs Verification

None.

Pass 1 finding (reviewed)

  • thread-count <all | half | 1-512> (line 1054) — pass1-findings.json flagged 1-512 as missing from completionHelp. False positive. In interface-definitions/include/accel-ppp/thread-count.xml.i the completionHelp only lists all half, but the <constraint> also accepts numeric --range 1-512 and there is a <valueHelp> entry for u32:1-512. The doc correctly documents all three input forms.

Spot-checks

  • Auth mode default local, options local | radius | noauth — match auth-mode.xml.i.
  • Interface mode default l2, network default shared, start-session default dhcp — match XML.
  • Behavioral claim "at least one interface must be configured" — enforced by service_ipoe-server.py:72.
  • "client-subnet and vlan are mutually exclusive" — enforced at line 84–88.
  • "vlan-mon requires vlan" — enforced at line 89–90.
  • "lua-username requires lua-file and RADIUS auth" — enforced at lines 92–100.
  • "external-dhcp dhcp-relay requires giaddr" — enforced at lines 102–106.
  • "at least one authentication interface … mac when mode is local" — enforced in accel_ppp_util.py:166-176.
  • "If no gateway-address, commit succeeds but generates a warning" — matches Warning(...) at accel_ppp_util.py:201.
  • RADIUS ranges/defaults verified: port 1812, acct-port 1813, fail-time 0 (0-600), priority 1-255, timeout 3 (1-60), acct-timeout 3 (0-60), max-try 3 (1-20), accounting-interim-interval 1-3600, acct-interim-jitter 1-60, rate-limit attribute default Filter-Id, rate-limit multiplier 0.001-1000 default 1, dynamic-author port default 1700.
  • IPv6 pool: mask 48-128 default 64, delegation-prefix 32-64 — match XML.
  • client-ip-pool range accepts prefix or start-end within a /24 — matches ipv4-range-mask -m 24 -r.
  • name-server: max 2 IPv4 + 3 IPv6 — enforced in verify_accel_ppp_name_servers.
  • idle-timeout 0-86400, max-concurrent-sessions 0-65535, shaper fwmark 1-2147483647, log level 0-5 default 3, description ≤ 255 chars — all match XML.
  • Op-mode: show ipoe-server sessions, show ipoe-server statistics, restart ipoe-server, reset ipoe-server session {interface|sid|username}, show log ipoe-server — all present in op-mode-definitions/.
  • Framed-IP-Address, Framed-Pool, Stateful-IPv6-Address-Pool, Delegated-IPv6-Prefix-Pool, Accel-VRF-Name documentation aligns with accel-ppp/RFC 6911 conventions.

Stats

  • Validated 1 MyST file.
  • Skipped 0 RST files awaiting MyST migration.
  • Files reviewed: docs/configuration/service/ipoe-server.md.
  • Commands checked: ~55 conf-mode + 6 op-mode.
  • Branch reviewed: rolling (vyos-1x: rolling).

Nicely done — content is comprehensive, technically accurate, and well-structured.

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: e3e3637b-e868-46b8-b202-53fe06f5f962

📥 Commits

Reviewing files that changed from the base of the PR and between 4c7adf3 and 435a45d.

📒 Files selected for processing (1)
  • docs/configuration/service/ipoe-server.md
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • ansible/ansible (manual)
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/configuration/service/ipoe-server.md
📜 Recent review details
⏰ Context from checks skipped due to timeout. (3)
  • GitHub Check: validate
  • GitHub Check: Mergify Merge Protections
  • GitHub Check: Summary
🧰 Additional context used
🔍 Remote MCP vyos.dev

Additional review context

  • T8910 — “ipoe-server: expose accel-ppp idle-timeout option” is resolved and adds set service ipoe-server idle-timeout <0-86400>. Verify the new documentation includes this option and accurately describes stale-session cleanup.

  • T8501 — “Add IPoE support for VPP interfaces” remains open; IPoE server configuration is currently not allowed on VPP interfaces. Documentation examples should not imply VPP-interface support.

  • T9038 — “Wrong Default port for DM/CoA for Radius in accel-ppp services” remains open and reports that the CLI default is UDP 1700 while RFC 3576/5176 specify UDP 3799. Check any documented RADIUS dynamic-authorization default carefully.

  • A broad search found current unresolved IPoE concerns, including unexpected-packet session initialization (T8130) and MAC-change handling (T8470). These may be useful as limitations or follow-up references if the documentation describes unclassified-packet session startup.


📝 Walkthrough

Summary by CodeRabbit

  • Documentation
    • Replaced the legacy IPoE server documentation with a comprehensive configuration and operations reference.
    • Added guidance for authentication, RADIUS, address pools, DNS, limits, traffic shaping, scripts, runtime changes, and operational commands.
    • Expanded coverage of interface and session-start options, IPv4/IPv6 configuration, dynamic authorization, and local authentication.
    • Updated the example configuration and reorganized related setup and operational guidance for easier reference.

Walkthrough

Changes

The IPoE server page now provides a configuration and operations reference. It covers interface setup, authentication, RADIUS, address assignment, traffic controls, commands, and a VLAN-based example.

IPoE Server Documentation

Layer / File(s) Summary
Interface and session configuration
docs/configuration/service/ipoe-server.md (lines 1–199)
Documents IPoE operation, session startup, connectivity modes, VLAN monitoring, client subnets, and DHCP relay settings.
Authentication and RADIUS integration
docs/configuration/service/ipoe-server.md (lines 200–728)
Documents local, RADIUS, and unauthenticated modes, RADIUS server behavior, dynamic authorization, rate limits, and RADIUS attributes.
Address assignment and traffic controls
docs/configuration/service/ipoe-server.md (lines 729–1023)
Documents IPv4 and IPv6 pools, delegated prefixes, DNS, session limits, connection-rate controls, traffic-shaping exclusions, and lifecycle scripts.
Operations and configuration example
docs/configuration/service/ipoe-server.md (lines 1025–1154)
Documents server settings, operational commands, and a VLAN-based local-authentication example.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the IPoE server documentation update and its alignment with VyOS 1.5 standards.
Description check ✅ Passed The description directly explains the documentation restructuring, style updates, technical verification, and added IPoE server content.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
✨ Simplify code
  • Create PR with simplified code

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/configuration/service/ipoe-server.md`:
- Around line 704-705: Insert a blank line between the `% stop_vyoslinter`
marker and the RADIUS attribute table’s header row, preserving the existing
paired VyOS linter suppression markers.
- Around line 24-28: Update the IPoE server session-start documentation to
include the `auto` mode: state that it starts sessions automatically and uses
the interface name as the username, alongside the existing DHCPv4 Discover and
unclassified-packet behavior.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 80de0d15-0943-4be9-b2aa-a05e7a18e860

📥 Commits

Reviewing files that changed from the base of the PR and between 3f6c16e and 4c7adf3.

📒 Files selected for processing (1)
  • docs/configuration/service/ipoe-server.md
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • ansible/ansible (manual)
📜 Review details
⏰ Context from checks skipped due to timeout. (3)
  • GitHub Check: validate
  • GitHub Check: Mergify Merge Protections
  • GitHub Check: Summary
🧰 Additional context used
📓 Path-based instructions (2)
docs/**/*.md

📄 CodeRabbit inference engine (AGENTS.md)

docs/**/*.md: Canonical docs pages must be written as MyST Markdown (.md); edit existing pages in .md only and never use the old md- prefix for new pages.
Use {cfgcmd}, {opcmd}, and {cmdincludemd} fenced directives in MyST pages for VyOS command coverage; do not replace them with plain text or bash fences.
Use MyST ATX headings (#, ##, ###, etc.) in canonical pages; the RST heading hierarchy does not apply to .md sources.
In MyST pages, prefer single backticks for inline code; double backticks are reserved for embedded RST contexts.
Use % stop_vyoslinter and % start_vyoslinter comment markers in top-level MyST content to suppress real IPs or other allowed long-line exceptions, and keep them paired.
In MyST pages, write TODO markers as {todo} fenced directives.

Files:

  • docs/configuration/service/ipoe-server.md
docs/{_include/*.txt,**/*.md}

📄 CodeRabbit inference engine (AGENTS.md)

Keep documentation lines within 80 characters unless the content is inside a code block or fenced/preformatted block.

Files:

  • docs/configuration/service/ipoe-server.md
🧠 Learnings (13)
📚 Learning: 2026-05-06T20:48:49.689Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 1902
File: CLAUDE.md:71-71
Timestamp: 2026-05-06T20:48:49.689Z
Learning: In vyos/vyos-documentation, the 80-character line-length rule documented under Source conventions / Formatting applies only to documentation source files located under docs/ (e.g., docs/**/*.rst and docs/**/*.md). The rule is enforced by the vyoslinter (doc-linter.py from vyos/.github) when reviewing changed files via lint-doc.yml, and only for files within docs/**. Do not suggest hard-wrapping CLAUDE.md (repo-root documentation) because GitHub renders and reflows content. For CLAUDE.md, reviews should not enforce the 80-char wrapping; apply the rule only to files matching **/docs/**/*.{rst,md}.

Applied to files:

  • docs/configuration/service/ipoe-server.md
📚 Learning: 2026-05-06T20:48:57.970Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 1902
File: CLAUDE.md:91-93
Timestamp: 2026-05-06T20:48:57.970Z
Learning: The 80-character line limit applies only to documentation sources under docs/** (RST/MD). Do not enforce this limit on repo-root Markdown files like CLAUDE.md or README.md. The vyoslinter (doc-linter.py, run via lint-doc.yml from vyos/.github) lints only changed files within docs/**; root files are excluded. GitHub renders root Markdown with viewport-width reflow, so hard-wrapping these files reduces readability without tooling benefit.

Applied to files:

  • docs/configuration/service/ipoe-server.md
📚 Learning: 2026-05-06T20:48:50.446Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 1902
File: CLAUDE.md:64-64
Timestamp: 2026-05-06T20:48:50.446Z
Learning: Enforce the 80-character line-length limit only for documentation source files under docs/ (docs/**/*.md and docs/**/*.rst rendered by Sphinx and linted by vyoslinter via lint-doc.yml). Do not flag line-length issues in repository-root Markdown files such as CLAUDE.md or README.md, which GitHub renders with viewport-width reflow. This applies to all files within docs/ that are part of the documentation source.

Applied to files:

  • docs/configuration/service/ipoe-server.md
📚 Learning: 2026-05-06T20:48:54.578Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 1902
File: CLAUDE.md:80-84
Timestamp: 2026-05-06T20:48:54.578Z
Learning: Enforce the 80-character line-length limit only for documentation source files under docs/ (docs/**/*.rst and docs/**/*.md). Do not flag repo-root files like CLAUDE.md or README.md, since they are rendered by GitHub and not subject to this rule. The doc-linter (doc-linter.py via lint-doc.yml) only lints docs/**, so CI checks won't flag root files for line length.

Applied to files:

  • docs/configuration/service/ipoe-server.md
📚 Learning: 2026-05-06T20:49:00.044Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 1902
File: CLAUDE.md:108-108
Timestamp: 2026-05-06T20:49:00.044Z
Learning: Limit the 80-character line length check and vyoslinter (doc-linter.py) enforcement to documentation source files under docs/**/*.{rst,md}. Do not apply or flag line-length issues in repo-root files like CLAUDE.md or README.md, which are rendered directly by GitHub and are not linted by lint-doc.yml. This pattern narrows checks to Sphinx source docs and prevents false positives in non-doc files.

Applied to files:

  • docs/configuration/service/ipoe-server.md
📚 Learning: 2026-05-06T20:48:53.302Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 1902
File: CLAUDE.md:79-79
Timestamp: 2026-05-06T20:48:53.302Z
Learning: Limit line length to 80 characters only for documentation sources under the docs directory (docs/**/*.rst and docs/**/*.md). This is enforced by the vyoslinter doc-linter.py (from the vyos/.github repo) via lint-doc.yml on changed files under docs/**. Do not flag line-length violations in repository-root Markdown files like CLAUDE.md or README.md, as they are rendered by GitHub and reflow in the UI.

Applied to files:

  • docs/configuration/service/ipoe-server.md
📚 Learning: 2026-05-06T20:49:10.359Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 1902
File: CLAUDE.md:142-142
Timestamp: 2026-05-06T20:49:10.359Z
Learning: In vyos/vyos-documentation, the 80-character line limit and vyoslinter enforcement apply only to documentation source files under docs/**/*.rst and docs/**/*.md that Sphinx renders. Repo-root files such as CLAUDE.md and README.md are outside the linter's scope (lint-doc.yml runs on docs/**) and are rendered by GitHub with automatic paragraph reflow — do not flag line-length violations in these files.

Applied to files:

  • docs/configuration/service/ipoe-server.md
📚 Learning: 2026-05-06T20:49:15.361Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 1902
File: CLAUDE.md:163-163
Timestamp: 2026-05-06T20:49:15.361Z
Learning: In vyos/vyos-documentation, enforce the 80-character line-length limit (Source conventions / Formatting) only for Sphinx documentation source files under docs/**/*.rst and docs/**/*.md. The lint-doc.yml workflow runs the doc-linter (doc-linter.py) and checks only docs/** changed files. Files in the repository root (e.g., CLAUDE.md, README.md) are rendered by GitHub and are not subject to this rule; do not flag line-length violations in those files.

Applied to files:

  • docs/configuration/service/ipoe-server.md
📚 Learning: 2026-05-08T07:01:22.978Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 1878
File: docs/troubleshooting/connectivity.rst:0-0
Timestamp: 2026-05-08T07:01:22.978Z
Learning: For the VyOS documentation (MyST-based docs), MyST directive opener lines must keep the entire directive arguments on a single line. This includes MyST fenced-directive openers like ```{opcmd} ... ``` and the RST-equivalent form .. opcmd:: ... when ported/used in MyST. Because the MyST parser does not support wrapped/continued directive arguments across multiple lines, do not raise/keep review warnings suggesting line wrapping for these directive opener lines due to line-length (even if they exceed 80 characters).

Applied to files:

  • docs/configuration/service/ipoe-server.md
📚 Learning: 2026-05-08T07:01:22.978Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 1878
File: docs/troubleshooting/connectivity.rst:0-0
Timestamp: 2026-05-08T07:01:22.978Z
Learning: In vyos/vyos-documentation, do not raise line-length (>80 chars) review findings for MyST directive opener lines (the directive “opener” that uses MyST directive syntax such as `{cfgcmd}` / `{opcmd}` fence/openers). CI does not enforce the 80-character limit for these specific opener lines, and existing documentation contains longer opener lines that pass lint.

Applied to files:

  • docs/configuration/service/ipoe-server.md
📚 Learning: 2026-05-13T22:16:06.198Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 2021
File: docs/automation/terraform/terraformvyos.md:14-14
Timestamp: 2026-05-13T22:16:06.198Z
Learning: In the vyos/vyos-documentation repo, when a PR is a byte-for-byte documentation port of an existing file from the rolling branch to a release branch (e.g., circinus, sagitta), keep the port content identical to the production-tested rolling source. For these ports, do not raise new review findings for documentation issues that are already present in the rolling source (for example, markdownlint MD059 like non-descriptive link text such as `[link]`/`[install]`). Instead, defer those existing issues to a rolling-side cleanup PR (e.g., `#2024`) and then backport the cleanup via Mergify.

Applied to files:

  • docs/configuration/service/ipoe-server.md
📚 Learning: 2026-05-13T22:43:41.056Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 2024
File: docs/automation/terraform/terraformvyos.md:0-0
Timestamp: 2026-05-13T22:43:41.056Z
Learning: In docs/**/*.md, for Markdown reference definition lines of the form `[label]: <URL>`, if the line cannot be shortened to <= 80 characters (because the URL itself is near/at the limit), suppress the vyoslinter warning by wrapping only that reference definition with a `% stop_vyoslinter` / `% start_vyoslinter` block. If the reference definition can fit within 80 characters, leave it outside any suppression block.

Applied to files:

  • docs/configuration/service/ipoe-server.md
📚 Learning: 2026-06-05T19:21:44.474Z
Learnt from: LiudmylaNad
Repo: vyos/vyos-documentation PR: 2066
File: docs/configuration/protocols/traffic-engineering.md:0-0
Timestamp: 2026-06-05T19:21:44.474Z
Learning: In the vyos/vyos-documentation MyST documentation pages, when writing CLI example invocations directly under a `{cfgcmd}` directive, use `none` fenced code blocks for those examples. Do not change these example blocks to `{opcmd}` or `{cfgcmd}`—`{opcmd}` is reserved for operational-mode commands, and the surrounding `{cfgcmd}` directive already documents the target command. Plain `none` blocks for these CLI examples are intentional and correct.

Applied to files:

  • docs/configuration/service/ipoe-server.md
🪛 markdownlint-cli2 (0.23.2)
docs/configuration/service/ipoe-server.md

[warning] 705-705: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)

🔍 Remote MCP vyos.dev

Relevant review context

  • The PR’s NOS-3200 reference does not resolve: searching it returned no task. T3200 is an unrelated invalid bug titled “LRO can't be tuned off on KVM.”
  • The closest documentation task is T1494 — “accel-ppp: IPoE update documentation”, resolved with the requirement “write documentation and config examples.” Its comments specifically mention documenting vlan-id/range for vlan_mon and automatic VLAN creation.
  • Related resolved IPoE feature tasks found in Phorge include:
    • T6906: unclassified-packet session startup
    • T6872: Lua username mapping
    • T7471: RADIUS dynamic-authorization port handling
    • T7472: giaddr validation with DHCP relay
      These are useful targets for verifying that the new examples and command descriptions match implemented behavior.
🔇 Additional comments (6)
docs/configuration/service/ipoe-server.md (6)

1-23: LGTM!


29-411: LGTM!


418-703: LGTM!


706-1134: LGTM!


1135-1152: 🎯 Functional Correctness

Make the VLAN example explicit about VLAN creation.

The example configures vlan 100-200 but does not configure vlan-mon or define pre-existing VLAN interfaces. VyOS separates VLAN listening from automatic VLAN creation, and auto-creation is disabled unless vlan-mon is configured. Add vlan-mon, or state that eth1.100 through eth1.200 must already exist. (blog.vyos.io)

 set service ipoe-server interface eth1 vlan '100-200'
+set service ipoe-server interface eth1 vlan-mon

Source: MCP tools


412-417: 🗄️ Data Integrity & Integration

No documentation change needed.

disable-accounting is the documented VyOS command for disabling RADIUS accounting, and setting acct-port 0 underlies the disable behavior.

Comment thread docs/configuration/service/ipoe-server.md Outdated
Comment thread docs/configuration/service/ipoe-server.md
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Claude finished @LiudmylaNad's task in 58s —— View job


Claude Code Review

  • Read pass1-findings.json and gather context
  • Verify changes made in latest commits (auto session-start, blank-line fix)
  • Cross-check any new/changed content against .vyos-1x/ (rolling)
  • Post inline comments for any remaining issues
  • Post summary comment

Issues

None. Both CodeRabbit findings from the previous review are correctly addressed in commit 435a45d, and no new issues introduced.

Needs Verification

None.

Verification of 435a45d

  • auto session-start mode documented (line 24-32) — Introduction now states sessions start "upon receiving a DHCPv4 Discover message, upon receiving an IP packet from an unknown source address, also known as an unclassified packet, or automatically when the interface comes up." Matches start-session.xml.i (auto | dhcp | unclassified-packet).
  • Blank line before RADIUS table (line 705-707) — % stop_vyoslinter is now separated from the table header by a blank line, resolving MD058 while keeping the paired suppression markers intact.

Pass 1 finding (still reviewed)

  • thread-count <all | half | 1-512> (line 1056) — remains a false positive, as noted in the prior review. interface-definitions/include/accel-ppp/thread-count.xml.i has completionHelp listing only all half, but the <constraint> also accepts numeric --range 1-512 and a matching <valueHelp> for u32:1-512. Doc correctly documents all three input forms.

Stats

  • Validated 1 MyST file.
  • Skipped 0 RST files awaiting MyST migration.
  • Files reviewed: docs/configuration/service/ipoe-server.md.
  • Delta reviewed: commit 4c7adf3435a45d (2 hunks: intro paragraph + RADIUS table separator).
  • Branch reviewed: rolling (vyos-1x: rolling).

LGTM — both prior review comments resolved cleanly.
· Branch: revise-ipoe

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR modernizes the IPoE server documentation page to match the VyOS 1.5 documentation style and command set, improving structure and completeness for operators configuring service ipoe-server.

Changes:

  • Added MyST front-matter html_meta (description, keywords) for better page metadata.
  • Rewrote and reorganized the page into clearer Configuration/Operation/Example sections with per-command cfgcmd/opcmd blocks and examples.
  • Added a “RADIUS attributes” subsection documenting address/prefix allocation precedence via a comparison table.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@dmbaturin dmbaturin left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see any issues so I'm happy to merge the update.

@dmbaturin
dmbaturin merged commit 224cc62 into vyos:rolling Aug 14, 2026
13 checks passed
@sever-sever

Copy link
Copy Markdown
Member

@Mergifyio backport circinus

@mergify

mergify Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

backport circinus

✅ Backports have been created

Details

sever-sever added a commit that referenced this pull request Aug 19, 2026
docs: Update IPoE server page to VyOS 1.5 standards (backport #2191)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Development

Successfully merging this pull request may close these issues.

4 participants