As key components in the NGDCN evolve, there are a few overarching trends that we’ve observed over the last few years, and that are important to understand.
Trend 1: Disaggregation and White box
One of the movements originally tied to the rise of SDN was the disaggregation and white box movement. Disaggregation allows a previously proprietary integrated network device to be broken up into the key components of data plane, control plane and management plane. Generally speaking, it results in a hardware device which can be purchased separately from the network operating system that controls it, and that supports external programmable controls directing its packet switching functions.
Most common disaggregated network switches are sold as white boxes, utilizing merchant silicon often from a vendor like Broadcom (e.g. Trident II, Trident II+, Tomahawk and subsequent families). Many of these new white box switches provide a boot-up environment using Open Network Install Environment (ONIE), a boot loader project started by Cumulus Networks and now part of the Open Compute Project (OCP) initiative. The vision is to allow end-users to use ONIE to boot up one of multiple network operating systems, such as Open Network Linux (ONL), started by Big Switch Networks, or Apstra’s commercial Apstra OS that provides a Linux-based OS running on a white box switch, allowing tools and applications to run directly on a switch.
To facilitate interaction with the switch fabric and to program the switching functions, these OSes support network APIs including OF-DPA (OpenFlow Data Plane Abstraction, OpenNSL (Open Network Switch Layer) and SAI (Switch Abstraction Interface). These APIs are designed to allow 3rd party applications to modify the behavior of the underlying switching chipset and unsurprisingly the first 2 are focused on Broadcom while SAI from OCP (originated at Microsoft) is focused on multi-vendor interoperability and currently supports Broadcom, Cavium, Mellanox, Barefoot chipsets.
Beyond the operating system, there are now multiple options available for switch management and forwarding functions, including open-source L3 routing code such as Quagga and BIRD, as well as FaceBook’s FBOSS and Azure’s SONiC.