• 3 min read

Switch Abstraction Interface (SAI) officially accepted by the Open Compute Project (OCP)

The Switch Abstraction Interface (SAI) specification has been officially accepted by the Open Compute Project (OCP) as a standardized C API to program ASICs.

As of July 2015, the Switch Abstraction Interface (SAI) specification has been officially accepted by the Open Compute Project (OCP) as a standardized C API to program ASICs. We at Microsoft, along with contributors Mellanox, Dell, Broadcom, Cavium, Barefoot, and Metaswitch, are excited with the momentum gained in the number of features as well as contributors and thank the OCP’s Incubation Committee in recognizing this important work.

OCP is a community that via open collaboration focuses on developing the most efficient computing infrastructure possible encompassing both hardware and software. In January 2014, Microsoft announced that it will be joining the OCP community with the Open Cloud Server (OCS) specification on the hardware side.

Meanwhile, SAI came into existence as network operators started seeking ways to adopt a more dynamic, programmable infrastructure. The lack of a common and well understood way to program network switch ASIC’s is a source of reduced agility, increased complexity, poor reliability, and greater cost. SAI helps by being a standardized C API to program ASICs.

Before SAI, the underlying complexity of the hardware, with its strict coupling of protocol stack software, denied us the freedom to choose the best combination of hardware and software for our networking needs. SAI allows software to program multiple switch chips without any changes, thus making the base router platform simple, consistent, and stable. A standardized API also allows network hardware vendors to develop innovative hardware architectures to achieve great speeds while keeping the programming interface consistent. Additionally, SAI also enables open and easier software development of features, stacks, and applications.

The first proposal detailing the architecture of SAI was released in December of 2014. In less than a year, SAI boasts of close to 20 proposals. These proposals constitute of both feature specification and code. They range from all standard features needed to run a layer-3 router to complicated features like QoS. The momentum is not just limited to the number of proposals, but the list of companies that have joined the contributors list also continues to increase.

The first demo was held at the Open Compute Project (OCP) summit in March, which featured basic L3 functionality. The second demo, featuring the Azure Cloud Switch (ACS) as well, was held at SIGCOMM in August, and demonstrated more complex features such as QoS. You can read more about ACS here.

SAI has garnered immense support from the industry. Here are some industry quotes:

SAI is a key milestone in driving toward open standards, enabling networking OS portability and hardware abstraction. The end goal is faster innovation and delivering industry-leading solutions to customers,” said Adnan Bhutta, corporate development and strategy director at Dell. “Dell is focused on working with technology leaders such as Microsoft in speeding the deployment of Open Networking in general and SAI as a key component.

We are proud to participate in Microsoft’s success of driving open networking including SAI from incubation to implementation,” said Eric Hayes, vice president and general manager, Switch Platform Group at Cavium. “I am amazed by the speed in which Microsoft has integrated their software onto a real world XPliant based switch through our SAI adapter.

Microsoft continues to be at the forefront of OCP Switch Abstraction Interface innovation and is a valued partner in Mellanox’s Open Ethernet switch development,” said Gilad Shainer, vice president of marketing, Mellanox Technologies. “Together, Microsoft and Mellanox are helping enable companies with the freedom to choose the best Ethernet switching hardware and software which meet their organization’s performance and cost goals.

There are many ways to get involved in SAI. As a user it is easy to get a SAI library from your switch vendors and start building your own stack or applications that suit your needs or add to SAI. Developers can download the entire SAI header files and the spec from GitHub, and join us at the OCP networking mailing group discussions and meetings to contribute specifications. Microsoft is the initiator of SAI, and is proud to be a leading contributor along with Broadcom, Mellanox, Dell, Cavium, Barefoot, and Metaswitch.

With SAI’s official acceptance, we are looking forward to building a robust community around it.