Skip to main content

OCP Switch Abstraction Interface (SAI)

OCP Switch Abstraction Interface (SAI) is a standardized C-based Application Programming Interface (API) that defines a vendor-neutral programming interface to configure and operate Ethernet switch ASICs in a consistent way across different hardware platforms (network infrastructure).

  • Hardware Abstraction Layer (HAL) for Ethernet switch ASICs (network infrastructure)
  • Vendor-neutral API for switch configuration and forwarding behavior (network management)
  • Supports unified control of ports, VLANs, L2/L3 forwarding, Quality of Service (QoS), ACLs, and tunneling where implemented (network switching)
  • Enables separation of switch software (NOS) from underlying silicon and platform implementations (network operating systems)
  • Project under the Open Compute Project providing a common specification and reference headers for switch vendors and Network Optimization Suite (NOS) developers (open hardware ecosystem)

More About OCP Switch Abstraction Interface (SAI)

OCP Switch Abstraction Interface (SAI) is a specification and API developed under the Open Compute Project that defines a common, vendor-neutral interface to program Ethernet switch ASICs. The project targets the problem of tight coupling between network operating systems (NOS) and proprietary silicon SDKs, which makes it complex for operators and NOS vendors to support multiple hardware platforms in data center and cloud environments.

SAI is defined as a C language API (network programming interface) that standardizes how software configures and manages switch Application-Specific Integrated Circuit (ASIC) capabilities. The API models switching functions as objects, attributes, and operations for elements such as ports, VLANs, bridges, L2 and L3 forwarding entries, next hops, QoS queues, policers, counters, mirroring, ACLs, and tunneling constructs like Virtual Extensible LAN (VXLAN) where supported (network switching and routing). By providing this object-based abstraction, SAI allows NOS implementations to target a single, stable interface rather than individual vendor SDKs.

In enterprise and cloud environments, SAI is used as the HAL between a switch’s NOS and the underlying silicon (network infrastructure integration). Switch vendors or silicon providers deliver SAI-compliant implementations that map the standardized API to their hardware capabilities, while NOS developers integrate against the SAI headers and definitions. This architecture enables a NOS to run across multiple SAI-compliant platforms with reduced porting effort and more uniform behavior for core switching functions.

SAI is positioned within the OCP networking ecosystem and is often associated with white box or open networking switches (open networking infrastructure). The specification includes header files, enumerations, object type definitions, and APIs for creating, configuring, and deleting objects; reading and writing attributes; and retrieving statistics. It also defines how to handle notifications and events from the hardware, such as link state changes or FDB updates (network telemetry and control).

For enterprises, SAI’s technical role is to support a consistent abstraction layer for programmable switching hardware, which can simplify multi-vendor deployments and support NOS choice (network architecture). Within a technical directory, OCP Switch Abstraction Interface (SAI) is categorized as a hardware abstraction and standard API layer for network switches, under the broader domains of data center networking, network programmability, and open hardware ecosystems.