The networking industry is moving faster than ever before. The reason to expedite the pace lies in the network device disaggregation which leads to evolution of the white box switch concept. What enables the network disaggregation? What are the problems with traditional networking? Let us look at it in the discourse ahead.
Networking industry has seen the era of tightly coupled software and hardware components of the network devices. The companies develop their own network operating system and integrate it with the underlying network silicon’s software stack (SDK). It takes collaborative effort for the silicon vendor and OEM vendor to make complete network switch product. There is more effort involved to integrate the silicon vendor SDK and own Network Operating System (NOS). This can be called as aggregated network device where the switch software is tightly coupled and non-scalable. The product supply chain is own by company.
Disadvantages of aggregated approach:
- Vendor lock-in
The disaggregation means to decouple the network software and hardware. This is like buying a network silicon from any vendor and then loading a NOS of your choice. In this case one can have variety of options for the switching silicon and open source NOS. Switching silicon hardware can be from Cavium, Broadcom, Barefoot, Centec, Mellanox etc. and NOS can be Open Switch (OPX), SONiC, dNOS etc.
Advantages of disaggregation approach:
- Faster time to market
- No vendor lock-in
- Modularity and liberty in selecting NOS and switching silicon
To adapt the network disaggregation concept, big players like Microsoft, Facebook, Dell, Intel, Broadcom, Mellanox, Marvell, Cavium etc. have muscled up to tackle the problem of traditional network stack. They have formed the Open Compute Project (OCP) group and introduced the standard abstraction of network switch. The standard interface is called SAI – Switch Abstraction Interface.
When we say network stack it means NOS which includes the switching silicon’s software kit, platform specific drivers and management plane. In order to bring up the switch it needs to put all software pieces together to form a complete NOS.
The silicon vendor provided SDK needs to be integrated with the NOS. Now for the smooth and easy integration, vendors provide standard interfaces to access its silicon. The standard interface is well accepted and widely used by the various open sourced NOS. Since it is standard, developer should only need to know the standard APIs which is vendor neutral.
The standard interface in discussion here is the Switch Abstraction Interface (SAI). Below figure explains the traditional network stack vs. disaggregated network stack (using SAI).
Figure 1-Traditional Stack
Figure 2-Disaggregated Stack
In figure 2, the stack below SAI is constant and above SAI can be changed.
Figure 3-SONiC with SAI
By using SAI, developer can integrate the silicon vendor’s software with any open source NOS very smoothly and faster. This means one has options to select NOS which has SAI as south bound interface to vendor’s SDK. There are various open sourced NOS available in market which uses SAI. Let us look at one example of SONiC used with SAI.
Figure-3 states the various options available to develop network switch. Here SONiC is used as NOS on various platforms and SAI is used as standard interface between SONiC and silicon vendor software. Apart from SONiC, NOS can be open switch (OPX), dNOS, ONL etc.
Now that we understand why and how of the SAI, let us look into what SAI actually is?
Switch Abstraction Interface is the standardized C language based APIs to program the network hardware tables. User doesn’t need to know about the underlying silicon’s switching behavior. User has to just use the SAI APIs to configure particular network feature of the silicon. Below figure is the analogy similar to what Switch Abstraction Interface offer.
The SAI APIs available in the SAI headers are the function pointers which are registered with the silicon vendor specific APIs. This vendor specific APIs implementation is the SAI adapter for SDK. SAI adapter consist of the actual glue logic between standard network feature and vendor specific feature. User can provide the attribute-value pairs to configure particular feature.
SAI project is driven by the Open Compute Project (OCP) and rapidly adapted in the networking industry. The Major switch silicon vendors like Cavium, Barefoot, Broadcom, Mellanox, Marvell, Centec etc. are the contributors in SAI community.
In the fast evolving networking market, the main advantage for any network product launch is its faster time to bring the product to market and that too at competitive prices. Of course the quality and performance are unsaid factors to be considered. On contrary, the traditional networking approach has many disadvantage like scalability for SDN network, time to market and pricing. As a result it enters the market at delayed time and overpriced.
The network switch developed with the idea of network disaggregation is white box switch. White box switch enables ODM vendors to select the switching silicon and open source NOS of their own choice which makes it more scalable and price efficient. One can also change the running NOS on the network device with new one by leveraging SAI interface and on board ONIE support. The single point supply chain is the conventional way now. Switch developers can customize the open networking software and hardware as per their requirement.
Edgecore’s AS7XXX family, Mellanox Spectrum, Inventec’s DCS6072QS, Dell EMC’s S3048-ON etc. are successfully commercialized white box switches.
White box switch is conceptualized since 2011 and in the current open networking era of 2018, it has imposed potential disruption to traditional vendors. It is the ongoing trend in current networking market and will continue to be so in future of SDN networking due to its obvious advantages. SAI is the key to unlock the white box switch development.
About Author: Digesh Patel
Digesh is associated with VOLANSYS Technologies as an Engineer. He has hands-on experience in development of SAI, Software Development Kit (SDK) and drivers of high speed SDN compliant network ASICs. He has also worked upon feature testing and NOS integration.