Home » Technology » SONiC & VPP: Building High-Performance Software-Defined Networks

SONiC & VPP: Building High-Performance Software-Defined Networks

by Sophie Lin - Technology Editor

Disaggregated Networking: A Modern Era in Infrastructure

The networking industry is experiencing a significant architectural shift fueled by the increasing demands of cloud-scale data centers and the proliferation of software-defined infrastructure. Central to this transformation is the concept of disaggregation, which involves breaking apart components that were previously tightly integrated within proprietary systems. This shift began with the separation of network hardware from the network operating system (NOS), a move largely driven by hyperscale operators aiming to escape vendor lock-in and spur innovation.

This article delves into how disaggregated networking comes to life through the integration of the SONiC control plane and the VPP data plane. Together, they form a fully software-defined router capable of delivering ASIC-class performance on standard x86 hardware whereas maintaining the openness and flexibility inherent in Linux-based systems.

Disaggregation extends beyond hardware to the software stack, enabling the separation of the control plane from the data plane. This decoupling fosters modular design and allows for independent component selection, resulting in enhanced performance and cost management.

SONiC and VPP: The Pinnacle of Disaggregation

The integration of Software for Open Networking in the Cloud (SONiC) and Vector Packet Processing (VPP) represents the apex of this disaggregated model. Originally developed by Microsoft, SONiC is now a robust open-source project under the Linux Foundation. It has grow the standard for disaggregated NOS, providing a comprehensive suite of Layer 3 (L3) routing features that have been tested in the world’s largest data centers. SONiC’s design philosophy revolves around abstracting underlying switch hardware, enabling a unified software stack to operate across various ASICs from multiple vendors. This strategy liberates operators from the shackles of proprietary systems and encourages a competitive hardware ecosystem.

Complementing SONiC’s control plane capabilities is VPP, a high-performance data plane developed by Cisco and integrated into the Linux Foundation’s Fast Data Project. VPP excels in delivering exceptional packet processing throughput on commodity commercial-off-the-shelf (COTS) processors. By utilizing techniques such as vector processing and circumventing the traditional kernel network stack, VPP reaches performance benchmarks previously associated only with costly specialized hardware like ASICs and FPGAs.

Architectural Insights: The Control and Data Planes

The combination of SONiC and VPP creates a new class of network devices—fully software-defined routers that merge SONiC’s sophisticated control plane with the rapid packet forwarding capabilities of VPP. This architecture addresses a critical industry demand for a network platform that is programmable, open, and capable of achieving line-rate performance without dependence on specialized hardware.

The economic ramifications are significant. By transitioning from vertically integrated, vendor-locked routers to a software stack running on standard x86 servers, organizations can fundamentally shift their procurement and operational frameworks. This evolution transforms network infrastructure from a capital expenditure-heavy (CAPEX) model, characterized by substantial upfront investments in proprietary hardware, to a more flexible operational expenditure (OPEX) model.

utilizing COTS hardware markedly reduces the total cost of ownership (TCO) and dismantles vendor lock-in cycles, democratizing access to high-performance networking. This shift facilitates a more agile and economically viable infrastructure strategy.

Understanding the Components: SONiC and VPP

To fully appreciate the synergy between SONiC and VPP, it is essential to understand the unique architectural philosophies and capabilities of each component. While they form a cohesive system, their designs cater to different, yet complementary, purposes. SONiC is crafted for control, abstraction, and scalability, while VPP is engineered for high-speed packet processing.

SONiC: The Cloud-Scale Control Plane

SONiC is an open-source NOS built on Debian Linux. Its architecture reflects modern software design principles, moving away from the monolithic structures of traditional network operating systems. Instead, it adopts a modular, containerized, microservices-based approach that enhances agility and serviceability.

Key networking functions, such as the Border Gateway Protocol (BGP) routing stack, Link Layer Discovery Protocol (LLDP), and platform monitoring (PMON), operate within isolated Docker containers. This modularity enables individual components to be updated, restarted, or replaced without disrupting the entire system, a critical characteristic for maintaining high availability in expansive environments.

The core of this distributed architecture is an in-memory Redis database engine, which serves as the definitive source of truth for the switch’s state. SONiC’s containers communicate asynchronously by publishing and subscribing to various tables within the Redis database.

VPP: The User-Space Data Plane Accelerator

While SONiC manages the high-level state of the network, VPP focuses on optimizing packet transmission speeds. As a fundamental element of the FD.io project, VPP operates as a flexible framework that delivers router or switch functionalities entirely in software.

VPP’s performance stems from several architectural principles:

  • Vector Processing: VPP processes packets in batches (vectors), significantly enhancing CPU efficiency.
  • User-Space Operation & Kernel Bypass: By running as a user-space process, VPP avoids traditional kernel overheads associated with context switching and interrupts.
  • Packet Processing Graph: VPP organizes its functionalities as a packet processing graph, allowing for extensibility and modular feature additions.

The Switch Abstraction Interface (SAI) is pivotal in SONiC’s hardware independence, enabling seamless integration of VPP. SAI is a standardized C API that allows SONiC’s software to control the underlying forwarding elements without being tied to specific hardware implementations. This abstraction empowers SONiC’s control plane to function independently of the physical silicon it operates on.

Next Steps: Building a Software Router

The integration of SONiC and VPP transforms two distinct systems into a single, cohesive software router. This architecture relies on SONiC’s decoupled state management and an effective translation layer that connects the abstract control plane with the concrete data plane logic.

In the upcoming part of this series, we will shift focus from architecture to implementation, detailing the process of building and testing a complete SONiC-VPP software router in a containerized lab environment. We will configure BGP routing, validate control-to-data plane synchronization, and evaluate performance benchmarks that illustrate the genuine potential of this disaggregated design.

As the landscape of networking technology continues to evolve, the integration of SONiC and VPP stands as a testament to innovation in modular, software-centric infrastructure. We invite readers to share their thoughts and experiences with disaggregated networking in the comments.

You may also like

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Adblock Detected

Please support us by disabling your AdBlocker extension from your browsers for our website.