docs(wiki): sync wiki with 15f9b98ae..acbef856e (93 commits)
No new pages. Updated 26 existing pages covering: the plugin peer-up
barrier and exclusive role claims, progress-bounded plugin startup, the
route-server replay/live partition at a peer-up cut, one End-of-RIB per
family per session, forward refusal on an unresolvable source, IRR
filtering becoming opt-in, same-subnet interface renumbering, all-
participant config reload and nested config roots, tc noqueue snapshot
and per-protocol filter priorities, DDoS fail-closed on an unresolved
victim, OSPF interface-open resilience and the OSPFv3 DAD source, L2TP
control frames on the adopted socket, runtime state persistence, the
appliance e2fsprogs resolution, and off-Linux unit tests.
Corrects two false claims found while syncing:
- rfc-implementation.md said Ze "deviates from RFCs in a small number of
cases, and every deviation is documented in exabgp-differences.md or
in the relevant in-tree architecture doc". Neither half held. There
are 539 {gap:} annotations across 84 of the 166 enrolled RFCs, and
that is where deviations live, on the specific requirement line with
the producing file:line. Replaced with the real shape plus three
worked RFC 4271 examples.
- The attribute-ordering deviation it cited no longer exists: all three
builders keep type-code order since ea9c83ca5.
Stale counts fixed: 86 registered plugins is now 87.
docs(wiki): repoint every repo link at github.com/ze-software/ze
Codeberg's 2026-07-23 LLM policy made hosting development there untenable, so
the module path and origin moved to github.com/ze-software/ze (main 34cd33b87).
Every clone URL, browse link, issue link and Go import path in the wiki still
named a repository the project has left.
Three forms needed three different targets, which is why this was scripted
rather than sed'd: a browse link becomes /blob/main/ for a file and /tree/main/
for a directory, an import path just swaps its root, and the clone, issues and
wiki links each have their own GitHub shape. The two prose labels that named
Codeberg (the footer's "Source on Codeberg" and Home's "development on
Codeberg") are corrected too, since the rewrite would otherwise leave them
contradicting their own links.
bin/gen-llms-txt.go carried the old base URL as its default, so every
regeneration would have reintroduced 177 stale links into llms.txt. Fixed at
the source rather than in the generated output.
The Codeberg wiki remains a single-page redirect, so the remotes described in
the untracked CLAUDE.md are unchanged and still accurate.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
docs(wiki): sync wiki with 57bc272..e87103f (130 commits)
New pages: class-of-service, bgp-filter-irr, bgp-nlri-srpolicy.
Updated 23 existing pages covering: CoS/QoS subsystem, PATHS-LIMIT capability,
SR-Policy NLRI, IRR prefix filtering, granular debug, ze format, nop keyword,
env var promotion, show enricher, FlowSpec rate-limit, plugin DoctorChecks,
L2TP priority, Workbench default UI, appliance ISO workflow, and performance
round 3 optimizations.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
docs: convert plugin examples from external { use } to internal { use }
Match the new `internal` keyword added in ze main. Built-in plugins
are now declared with `plugin { internal <name> { use <builtin> } }`
instead of the ambiguous `external { use }` form.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Document plugin-owned Prometheus metrics per plugin
Add a Metrics section to each of the six plugin pages whose plugin
registers its own counters and gauges through ConfigureMetrics. Each
section lists the exact metric names, types, and meanings taken from
the plugin source (not invented).
- bgp-rib: ze_rib_routes_in/out_total, per-peer vectors, per-peer/
family insert/withdrawal counters, plus attribute-pool stats.
Also adds a short Route replay on reconnect note pointing at the
three-bug fix from the recent pass (direction routing, missing
WireUpdate, text-codec format mismatch).
- bgp-watchdog: peers_up, route_announcements_total,
route_withdrawals_total.
- bgp-rpki: vrps_cached, sessions_active,
validation_outcomes_total{result}.
- bgp-persist: routes_stored, peers_tracked, route_replays_total.
- fib-kernel: routes_installed, route_installs/updates/removals_total,
errors_total{operation}.
- sysrib: routes_best, route_changes_total{action},
events_received_total.
go-plugins.md, plugins.md, and telemetry.md: add bgp-rib to the list
of plugins that ship ConfigureMetrics (was previously listed as five,
now six).
All metric names verified against register.go / *.go sources.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Critical-review fixes: correct show uptime, rename syntax, and stale examples
Self-review of the wiki-update pass caught several factual errors and
fabricated sample outputs. Fixes:
- show uptime is daemon start-time + duration, not per-peer uptime.
Corrected in show-commands.md, peers.md verification section, and
command-reference.md (moved from Peers group to Daemon group).
- rename syntax is "rename <path> <old-key> to <new-key>" with a
mandatory "to" keyword (JunOS style), not "rename <path> <new-key>"
as previously documented in editor-workflow.md.
- Removed the unverified claim that rename preserves live session
state. rename is a config-tree operation; runtime reconcile behaviour
is implementation-dependent and was not checked.
- Added the insert ambiguity gotcha (values literally named first /
last / before / after collide with position keywords).
- Added the copy verb (deep-copy a list entry to a new key, same "to"
syntax as rename) -- previously undocumented.
- show interface brief / counters: dropped fabricated sample tables
and replaced with a description of the fields and command forms.
- Fixed stale peer syntax (remote { ip; as; }) inside code blocks on
pages this pass touched: redistribution.md, editor-workflow.md,
go-plugins.md, cli-tour.md. All now use the canonical
connection { remote { ip } } + session { asn } form.
- Replaced "leaf-pass" placeholder filter name in peers.md with
<filter-name>.
- gRPC Python example: simplified the import path to a generic form,
noting that the exact package layout depends on protoc invocation.
check-links.go reports all links OK. Broader stale peer syntax still
exists on pages not touched this pass (cli.md, bgp-rs.md, blueprints,
graceful-restart.md, rpki.md, etc.) -- out of scope for this cleanup
but flagged for a future sweep.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Document plugin-owned Prometheus metrics
Go plugins can now register their own Prometheus metrics through a
ConfigureMetrics callback on the Registration. The engine calls it
with a metrics.Registry before RunEngine; the plugin declares its
counters and gauges and holds them in package-level state.
go-plugins.md: add a Prometheus metrics section with a code example
and the ze_{scope}_{subject}_{detail} naming convention. List the
five shipped examples (bgp-watchdog, bgp-rpki, bgp-persist,
fib-kernel, sysrib).
telemetry.md: split the exposed-metrics section into engine metrics
and plugin-owned metrics with a pointer to go-plugins.md.
Source commit: 7fcc8083 (main repo).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Update plugin config to use 'use' keyword for built-in plugins
Replace 'run "ze plugin <name>"' with 'use <name>' across all wiki
pages (46 files). The 'use' keyword is for built-in (in-process)
plugins; 'run' is now reserved for external process plugins.
Updated system.md plugin section to document both keywords.
Based on main@80b7b7da (feat: add 'use' keyword for built-in plugins).
Added .source-commit to track the codebase commit this wiki is synced to.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Flatten wiki to root directory for GitHub wiki compatibility
GitHub wiki resolves pages by filename in the root directory only.
Moved all 123 .md files from subdirectories to root. Renamed
configuration/interfaces.md to configuration-interfaces.md to avoid
collision with interfaces/interfaces.md. Fixed 8 image paths.
Subdirectories are now empty (images/ retained for assets).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>