Skip to content

feature inventory

Thomas Mangin edited this page Apr 11, 2026 · 16 revisions

Pre-Alpha. This page describes behavior that may change.

The full inventory of what Ze does. Not the narrative ("why this exists") or the comparison ("how it stacks up"), just the list. Use this page when you need to check whether a specific feature is present and whether it is built into the engine or provided by a plugin.

The in-tree docs/features.md is the canonical source. When this page and that one disagree, the in-tree page wins.

BGP protocol

See BGP peers for the configuration surface and the comparison page for the per-feature breakdown against other daemons.

Area Detail
Address families 21, covering IPv4/IPv6 unicast, multicast, labelled unicast, VPN, FlowSpec, EVPN, VPLS, BGP-LS, MVPN, RTC, and MUP. IPv4/IPv6 unicast and multicast are built into the engine; everything else ships as an nlri plugin.
Capabilities Multiprotocol, 4-byte ASN, Route Refresh, Enhanced Route Refresh, ADD-PATH, Extended Messages, Extended Next Hop, Graceful Restart, Long-Lived GR, BGP Role, Hostname, Software Version, Link-Local Next Hop.
Path attributes ORIGIN, AS_PATH, NEXT_HOP, MED, LOCAL_PREF, ATOMIC_AGGREGATE, AGGREGATOR, COMMUNITY, ORIGINATOR_ID, CLUSTER_LIST, MP_REACH_NLRI, MP_UNREACH_NLRI, EXTENDED_COMMUNITY, LARGE_COMMUNITY, PREFIX_SID.
Route loop detection AS loop (RFC 4271 section 9), ORIGINATOR_ID (RFC 4456), CLUSTER_LIST (RFC 4456). All three run before prefix-limit counting and silently treat the route as withdrawn.

Configuration

Feature Detail
YANG-modelled Every field, every CLI prompt, every web UI form comes from the same YANG schemas.
Atomic commit Edit, diff, commit, rollback, commit confirmed with auto-rollback.
Per-user drafts Each user gets an independent editor session; drafts survive disconnection.
Hot reload No daemon restart required for config changes. Session resets only when the underlying change demands it.
Prefix limits (RFC 4486) Mandatory per-family per-peer maximum. Refuses to start without one.
Update groups Automatic cross-peer UPDATE building deduplication, based on encoding context.
Session resilience TCP_NODELAY, DSCP CS6, graceful close, Send Hold Timer (RFC 9687), congestion extension for hold timer, bounded overflow pool with GR-aware teardown.

Interface management

iface plugin. Netlink on Linux, stdlib fallback elsewhere.

Interface type MAC required Notes
ethernet Yes Physical ethernet interface.
veth Yes Virtual ethernet pair.
bridge Yes Bridge interface.
dummy No Virtual dummy interface.
loopback No Container, no key.

Static addressing, DHCP client, interface monitoring, and make-before-break migration with ze interface migrate.

Operator surfaces

Surface Transport Auth
CLI SSH, port 2222 by default. User database with bcrypt passwords, ED25519 host key.
Web UI HTTPS, port 3443 by default. Same user database. Session cookies for browsers, Basic Auth for API clients.
Looking Glass HTTP or HTTPS on its own configurable port (separate from the web UI). None. Read-only by design.
MCP HTTP on 127.0.0.1, port must be specified. Optional bearer token.
REST API Dedicated HTTP(S) server on port 8081 by default, /api/v1/execute, /api/v1/commands, typed config sessions, Swagger UI. Bearer per-user or single token.
gRPC API Dedicated server on port 50051 by default, ze.api.v1.ZeService + ze.api.v1.ZeConfigService, server reflection, built-in TLS. Bearer metadata (same tokens as REST).

Plugins

The list of built-in plugins, grouped by category. Full reference in plugins.

Category Plugins
Storage bgp-rib, bgp-adj-rib-in, bgp-persist.
Policy bgp-rs, bgp-watchdog, bgp-healthcheck, bgp-filter-community, loop, bgp-role.
Resilience bgp-gr, bgp-route-refresh.
Validation bgp-rpki, bgp-rpki-decorator.
Capabilities bgp-aigp, bgp-hostname, bgp-llnh, bgp-softver.
Address families bgp-nlri-vpn, bgp-nlri-evpn, bgp-nlri-flowspec, bgp-nlri-ls, bgp-nlri-labeled, bgp-nlri-vpls, bgp-nlri-mvpn, bgp-nlri-rtc, bgp-nlri-mup.
Infrastructure iface, fib-kernel, fib-p4, iface-dhcp, sysrib.

Observability

Feature Where
Prometheus metrics telemetry { prometheus { ... } }. Peer state, message counters, prefix counters, forward-pool utilisation, connection timing histograms, plugin health.
Structured logging JSON output, hierarchical per-subsystem levels, runtime-configurable.
Live event stream ze cli monitor event, pipeable to `
Live peer dashboard ze cli monitor bgp. Auto-refreshing two seconds, sortable.
Operational report bus ze show warnings, ze show errors. Cross-subsystem state and event surface, login banner reads the same source.
MRT analysis Standalone ze-analyse tool. Downloads from RIPE RIS and RouteViews, runs density, attribute, and community analyses.
Benchmarking ze-perf cross-implementation latency benchmark.

Chaos testing

Feature Detail
In-daemon chaos --chaos-seed and --chaos-rate flags inject faults at runtime. Deterministic with a fixed seed.
Orchestrator ze-chaos runs mock peers, validates protocol properties, and records runs to NDJSON.
Dashboard Live HTMX web dashboard with peer table, property badges, and interactive controls.
Event logs Record, replay, and shrink failing runs.
Properties Convergence deadline, route consistency, no duplicate routes, hold timer enforcement, message ordering.

Developer surfaces

Feature Detail
Self-describing ze help --ai, ze schema list, ze env list, ze --plugins.
Plugin SDK Go SDK for in-tree plugins, line-protocol SDK for external plugins in any language.
ExaBGP migration ze config migrate converts configs, ze exabgp plugin runs existing scripts unchanged.
ze bgp decode / ze bgp encode Offline BGP message codec.
Fuzz testing Every external-input parser has a fuzz harness.
Interop testing 32 Docker-based scenarios against FRR, BIRD, and GoBGP.

Testing surface

Kind Count or scope
Unit tests Several thousand test functions.
Functional tests Hundreds. Config parsing, wire encoding, plugin behaviour.
Fuzz harnesses Every external-input parser.
Chaos scenarios Configurable, deterministic, with event-log replay and shrinking.
Interop suite Docker scenarios against FRR, BIRD, GoBGP.

See also

Adapted from main/docs/features.md.

Home

About

First Steps

Configuration

Operation

Interfaces

Plugins

Plugin Development

Chaos Testing

Blueprints

Development

Reference

Clone this wiki locally