Weekly update

Week of 2026-10-05

A week on configuration safety, the public API and the appliance kernel, with fixes across BGP, RSVP-TE and IKEv2. Several changes need a look before upgrading, listed first.

The release queue closed the week at 202 required work items and 224 nice-to-have, against 213 and 221 at the start. 12 required items joined and 23 left. Most of those that left were behaviour that shipped earlier and gained its end-to-end proof this week. The additions are the appliance kernel, live BGP reconfiguration and gaps the RFC checking found. This is an inventory preview. It reads two endpoints, so an item added and finished inside the same week never appears in it, and the counts measure work items rather than readiness: https://ze-software.net/project/roadmap/

← All weekly updates

⚠️ Changes to check

  • Config editor: commit is now commit now, with commit confirmed <seconds>, commit accept, commit abort and commit verify. A bare commit is refused and names the form to type.
  • API: the method names were reorganised by owner, for example ze-show:ospf-neighbors is now ze-ospf:show-neighbors. Scripts that call methods by name need updating. ze help ai --json lists the current set.
  • BGP: the bgp-persist plugin is gone. Bind bgp-rib instead, as described in the plugins guide. Sent-route history no longer survives a restart.
  • BGP: route-refresh and extended-message take enable, disable, require or refuse. The old bare and { } spellings are refused, and ze config validate prints the new one.
  • Commands and YANG modules are checked more strictly: an argument outside its declared length or pattern is refused, and so is a plugin module with a misspelt extension.
  • commit-revisions pruning now works. The default file name never matched before, so an archive over the limit will be trimmed on upgrade.

🛠️ Configuration

New:

  • The daemon now owns the commit confirmed window. It survives a restart and is rolled back at boot if it was never accepted. While it is open, other users and every other writer (REST, gNMI, the web editor, rollback) are told who holds it and for how long.
  • ze doctor kernel-capabilities lists what the running kernel supports for L2TP, PPPoE, WireGuard and IPsec.

Fixed:

  • commit confirmed without config history wrote the change permanently. It now refuses and points at ze init.
  • ze signal stop over SSH left the daemon running.

🛰️ Routing

New:

  • Administrative distance now lives in the Loc-RIB under rib { distance { } }. Changing it re-ranks installed routes, and the FIB follows.
  • ze_bgp_open_rejected_bad_peer_as_total counts OPENs refused for AS 0 or an unexpected peer AS (RFC 7607, RFC 4271 Section 6.2).

Fixed:

  • Adding a receive-only process, such as RPKI, to an established BGP peer no longer resets the session when the peer supports route refresh.
  • Changes to the IRR filter took effect only after a restart.
  • Peers made with create bgp peer were lost on the next reload, and a removed peer's routes stayed in the RIB.
  • The looking glass showed an empty best-routes table, and counted routes sent to a peer as learned from it.
  • RSVP-TE refuses a path MTU below what an MPLS packet needs, which could hang a stock kernel. A repaired LSP now stays on its bypass when refreshed (RFC 4090 Section 6.4.3).

💿 Appliance and VPN

  • The appliance now boots only Ze's own kernel, Linux 7.2.9, with WireGuard and every IPsec transform built in. Each image carries the kernel's GPL source notice.
  • IKEv2: a refused Child SA no longer tears down the IKE SA. Ze keeps it and retries the Child SA later (RFC 7296 Section 2.21.2).
  • IKEv2: a refused rekey was resent every second until the SA expired. It now waits, and never re-offers a group the peer refused.

📚 Standards programme

Ze is being checked against every RFC it implements, one MUST at a time. The work continues.

175 RFCs are on the list. Of 6,452 requirements, 4,524 are MUST-level and 4,147 are checked. 218 still owe a test, down from 248 last week. Each test is also being read again against the RFC sentence it checks. Fixes from that second reading are finished for four of its eight areas and are being checked: https://ze-software.net/quality/rfc-compliance/

🔭 Coming up

Under way:

  • Fixing the remaining defects the second reading found in BGP and OSPF.
  • Finishing the appliance kernel: VPN support proven on a running image, and the test hosts booting the same kernel.
  • Enabling BFD on an established BGP peer without resetting the session, as FRR and BIRD do.
  • Deeper route decision and FIB programming, and a third round of hot-path performance work.

Ready to start:

  • BGP DelayOpen and automatic start (RFC 4271 Section 8).
  • BGP EPE peer segments and SRv6 PeerNode SIDs (RFC 9086, RFC 9514).
  • A choice of when a fetched IRR change takes effect: at once, on a schedule, or only when the operator applies it.