Disaggregating hardware from software for cloud, multi-cloud, and distributed edge cloud solutions provides cloud and service providers with open programmability, choice, automation, and a broad network ecosystem. Juniper Networks commits to this disaggregation strategy by integrating Software for Open Networking in the Cloud (SONiC) with Juniper hardware, such as the Juniper Networks PTX10008 Packet Transport Router.
Benefits of the Juniper Networks’ PTX10008 Multi-PFE Platform
This section describes the following key benefits of PTX10008 multi-PFE platform running SONiC:
Centralized SONiC architecture with SONiC running only on the Routing Engine (RE).
Provides superior switching performance and scale, often handling 1.5 million FIB entries.
Supports high speed (100G and 400G) Ethernet interfaces.
Offers greater port density with minimal cabling complexity.
Supports advanced features like MPLS and field-replaceable units (FRUs).
Simplifies management and abstracts the complexity of the platform.
Scales well without having a route adjacency for every line card in the multi-PFE chassis.
Single BGP instance on the RE as opposed to one per packet forwarding engine (PFE) on the line card.
SONiC is an open source Network Operating System (NOS) based on Linux (Debian Linux) that runs on network devices. SONiC offers a full-suite of network functionality, like BGP. SONiC provides a standardized interface called the Switch Abstraction Interface (SAI) to program networking ASICs, which is hardware independent layer. While SONiC provides several infrastructure daemons and libraries, the SAI is by far its most important component. In Juniper Network’s PTX10008 router, SAI connects to a SONiC agent in the hardware abstraction layer (HAL).
Figure 1 illustrates the SONiC architecture on Juniper Networks’ PTX10008 router.
SONiC’s architecture uses Redis as its centralized database that is made available to all SONiC processes and stores configuration and state information. SAI runs a Redis service that is built on top of the Redis database.
The SONiC process, syncd, contains the SAI library. All SAI programming requests are initiated by syncd, usually in response to Redis from various SONiC processes. Syncd is the primary SONiC entry point into platform-specific services. The syncd process programs the networking ASIC through the SAI API.
Linux routing protocols add routes to the routing table using the NetLink API. FpmSyncd opens a NetLink socket and waits for kernel notification about route additions and deletions. FpmSyncd monitors the changes to the routing table and publishes those changes to Redis in real time. Redis then propagates the route changes to syncd, which uses SAI to update forwarding information (FIB) to all the FPCs.
The SONiC agent (in the Juniper HAL) is the platform-specific backend to the SAI API. The SONiC agent receives SAI programming requests from syncd in the SONiC container.
By bringing SONiC to multi-PFE chassis, Juniper Networks provides a simpler, better-performing network solution for the most demanding cloud and service provider environments—without sacrificing the flexibility of an open, disaggregated NOS.
Figure 2 shows how a route is added in SONiC.
Hardware Abstraction Layer (HAL)
The SONiC image supported on Juniper Networks’ platform includes the platform drivers and Juniper's Hardware Abstraction Layer (HAL). Juniper’s HAL includes the implementation of Switch Abstraction Interface (SAI) for the Juniper Triton ASIC and the line card Packet Forwarding Engine (PFE) software.
Multi-PFE Modular Chassis Architecture
Shifting from a single to a multi-PFE chassis does introduce some changes. Figure 1 shows the standard SONiC architecture. SONiC is typically deployed on a fixed-form platform with a single networking ASIC. The standard SONiC architecture on Juniper’s platform is supported on the QFX5200 and QFX5210 series switches providing the SONiC infrastructure and routing services.
There are two approaches to running SONiC on a multi-PFE architecture.
Running SONiC as a cluster, where SONiC instances run on the line cards. In this case, each line card is considered as a SONiC device running routing protocols.
Running SONiC on the Linux node (called the Routing Engine) and not on the line cards, like in traditional multi-PFE modular chassis, such as the Juniper’s PTX10008 router. In this case, the entire system becomes a cluster within a chassis. Each line card in the system is a Linux node. Removing a line card from the chassis only results in losing the ports but not the SONiC node in the network topology.
Juniper’s PTX10008 router, the newest 400G modular chassis, brings all the benefits of SONiC to data center networks by deploying SONiC on the PTX10008 router (multi-PFE architecture). Figure 3 illustrates Juniper Networks’ PTX10008 router’s multi-PFE modular chassis architecture running SONiC.
Juniper’s multi-PFE SONiC architecture provides simplicity, manageability, resiliency, performance, and scale required in data center spine network deployment.
When running SONiC on multi-PFE architecture, a cell-based design such as those in the Juniper Networks’ PTX10008 router, packets are forwarded across the fabric cards (spine nodes) very efficiently. Comparing this to the flow-based ethernet ECMP mechanism, unequal fabric link utilization is seen depending on the average flow size, and where those flows are hashed across the fabric. In some cases, where high throughput is required, packet drop can be significant enough to make related applications to stop working. You can prevent this by oversizing the system, but then it can also lead to a significant increase in cost. A cell-based design, like the PTX10008 router, allows operators to run the system at a higher utilization without worrying about dropping the traffic on a single overutilized fabric link.
PTX10008 router supports MPLS required to expand SONiC deployment across the infrastructure. With the current version of SONiC, which focuses primarily on switch and IP connectivity, Juniper has added complete software support for MPLS from configuration to SAI. Using containerized Routing Protocol Daemon (cRPD) in SONiC, all types of MPLS routes can be programmed, even with ECMP support.