A detailed walkthrough of building a control plane for VPP's Maglev load balancer plugin. The author created vpp-maglev, a suite of four Go binaries: maglevd (daemon), maglevc (CLI), maglevd-frontend (web dashboard), and maglevt (test utility). Key design principles include single source of truth via gRPC, restart neutrality with a two-phase startup warmup, diff-based reconciliation, and structured observability. The health checking system borrows HAProxy's rise/fall counter model with added hysteresis and jitter. The CLI supports prefix matching and tab completion inspired by Bird and SR Linux. The web dashboard uses SolidJS embedded in a Go binary with real-time updates via Server-Sent Events. The system is deployed in production at IPng Networks across four VPP machines in multiple cities.

29m read timeFrom ipng.ch
Post cover image
Table of contents
IntroductionVPP Maglev: ControlplaneDesign PrinciplesHealth Checker: maglevdControlplane API: gRPC EndpointDataplane API: VPP Plugin ProgrammingControlplane CLI: maglevcTest Utility: maglevtFrontend: GUI maglevd-frontendResultsWhat’s Next

Sort: