What is SAI?
In the networking world, there exist a multitude of vendor proprietary Software Development Kits, that expose an API to the user of that type of ASIC that allows them to program the chipset according to their needs and application.
ASIC vendors are understandably concerned about disclosing the internal workings of their chipsets, and associated intellectual property. These SDK's are most often protected by strict Non Disclosure Agreements (NDAs), which prohibit distributing code written against these API's.
The chipset vendors realized that this is not a way forward in the world of open networking, and started to develop a (still proprietary) open API on top of their internal SDK API, which is openly published. Code written against this layer can be published and shared, which is substantial for developing an open community working together on networking solutions. Examples for this approach are OpenNSL and OF-DPA from Broadcom, or OpenEthernet by Mellanox.
While this approach also solves some of the problems, it still does not allow to develop software running across different hardware platforms, as they expose different APIs. In this situation, the OCP stepped forward and developed SAI, a set of APIs that now is implemented identically on different platforms, and allows that code written against SAI on platform A will work on platform B, as long as B also supports SAI.
Companies supporting SAI are for example: Barefoot Networks: Tofino, Broadcom Limited: Trident and Tomahawk, Cavium: XPliant, Centec Networks: Goldengate, Mellanox Technologies: Spectrum, Marvell Technology Group Ltd.: Prestera, Nephos Inc: Taurus, Microsoft, Dell, Big Switch Networks.
As already mentioned, SAI is a collection of APIs, covering different feature groups on a device:
As you can see there are mandatory parts, optional parts and even vendor specific APIs can be included. So when purchasing a hardware platform supporting SAI, it is very important that eventually needed optional or vendor specific parts are supported on the selected platform.
More details regarding these APIs can be found in the SAI spec file.
The development of SAI is still ongoing, currently the following participants are working on additional functionallity to be included in SAI:
- Broadcom, Marvell, Barefoot, and Microsoft are driving advanced monitoring and telemetry in SAI to enable deep visibility into the ASIC and powerful analytic capabilities.
- Mellanox, Cavium, Dell, and Centec are contributing additional protocol support and solutions for large scale network scenarios; for example, MPLS, Enhanced ACL model, Bridge Model, L2/L3 Multicast, segment routing, and 802.1BR.
- Dell and Metaswitch are bringing failure resiliency and performance to SAI by adding L3 fast reroute and BFD proposals.
- The pipeline model driven by Mellanox and Broadcom, and multi-NPU model by Dell enrich the infrastructure that SAI and the network stack built on top can be applied to.