Weekly update
Week of 2025-12-22
Work on the BGP engine itself: route encoding correctness, session robustness, and a first real API surface for driving peers programmatically.
π°οΈ Protocol correctness
- Extended communities now parse hex format per RFC 4360
- ADD-PATH encoding (RFC 7911), including for VPN routes
- End-of-RIB markers are now sent for every negotiated address family (RFC 4724)
- Extended next-hop encoding per RFC 8950
- AS_PATH validation fixed against RFC 5065
- IPv6 announcements and withdrawals now correctly use MP_REACH_NLRI / MP_UNREACH_NLRI instead of IPv4-style NEXT_HOP
- EVPN routes (all 5 route types) and L3VPN (MPLS VPN) route announcement support
- Route Leak Prevention via the OTC attribute (RFC 9234)
- Revised UPDATE error handling for malformed attributes (RFC 7606): partial-attribute discard instead of session teardown, plus IBGP-context and 4-octet AS validation
- Labeled-unicast (SAFI 4) now supports split announcements, and route announcements support
/Nsplit syntax generally - Fixed a bug where withdrawals weren't actually being sent and route stats were wrong
- Fixed iBGP attribute handling for API-announced routes
π Session and process handling
- BGP connection collision detection per RFC 4271 Β§6.8
- Backpressure and respawn limits for connected processes, so a misbehaving process can't take down the session
π§° API
A real command surface for controlling BGP sessions and routes is taking shape:
- Session-level commands: status, enable, disable
- RIB flush/clear commands
- Route commit transactions: named, concurrent commits with announce/withdraw, rollback, and end-of-RIB signaling
- Watchdog-controlled routes: named pools of routes that announce or withdraw together, state persisting across reconnects
- A teardown command with an ordered operation queue
announce attributes/nlri/updatecommands with batch NLRI support- Inbound UPDATEs are now forwarded to connected processes