Skip to content

History / go plugins

Revisions

  • 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.

    @thomas-mangin thomas-mangin committed Jul 26, 2026
  • 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>

    @thomas-mangin thomas-mangin committed Jul 25, 2026
  • 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>

    @thomas-mangin thomas-mangin committed Jun 15, 2026
  • 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>

    @thomas-mangin thomas-mangin committed May 30, 2026
  • 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>

    @thomas-mangin thomas-mangin committed Apr 11, 2026
  • 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>

    @thomas-mangin thomas-mangin committed Apr 11, 2026
  • 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>

    @thomas-mangin thomas-mangin committed Apr 11, 2026
  • 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>

    @thomas-mangin thomas-mangin committed Apr 8, 2026
  • 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>

    @thomas-mangin thomas-mangin committed Apr 8, 2026