ALPINE SONiC Switchstack Simulation
Author: Sonika Jindal and Daniel Grau, Software Engineers, Google Collection: 2024 OCP Global Summit - Networking
Summary
Google presents ALPINE, a virtual SONiC switch with a software data plane designed to left-shift SONiC switch stack development by catching issues earlier in the development cycle and reducing dependence on expensive hardware test beds. ALPINE splits the SONiC software stack into two containers at the SAI layer: a switch stack container running the SONiC VM (application and orchestration layers identical to hardware), and a data plane container running Lucius, an open-source software data plane written in Go. Both containers are deployed as a single Kubernetes pod using KNE (Kubernetes Network Emulation), an open-source tool for creating emulated network topologies.
Lucius implements a packet processing engine with ports, match-action tables (exact match, longest prefix match), and forwarding actions, all programmed via SAI over gRPC. The SAI API is auto-generated from SAI metadata into protobuf definitions, making the lib_sai in the VM agnostic to the underlying data plane. For testing, ALPINE runs the same ~8K test packet vectors as hardware, enables 20% of end-to-end integration tests with the same test vectors validated on hardware, completes all tests in under 1 hour (vs. 5+ hours on hardware), and runs every 2 hours instead of nightly. Virtual test beds deploy in under 10 minutes on GCE VMs, and KNE has demonstrated topologies of 150-200 virtual switches -- far exceeding typical hardware test bed capacity.
Sign in to read the full article.
Sign In