SAI实现解锁开放网络在SDN中的真正潜力

GitHub May 2026
⭐ 1
来源:GitHub归档:May 2026
开放计算项目的交换抽象接口(SAI)规范在GitHub上获得关键边缘-核心实现,为白盒交换机提供统一的硬件抽象层。这一进展通过将网络软件与专有ASIC硬件解耦,有望加速软件定义网络的发展。

GitHub上的edge-core/ocp-sai仓库代表了开放计算项目(OCP)交换抽象接口(SAI)规范的一个具体、开源实现。SAI定义了一套标准化API,允许网络操作系统控制来自多个供应商(Broadcom、Mellanox、Marvell等)的交换ASIC,而无需编写特定于供应商的代码。该项目由OCP创始成员Edgecore Networks维护,提供了实际的C语言库,将SAI API调用转换为针对各种ASIC平台的硬件特定命令。

这一实现的重要性不容低估。多年来,网络运营商一直被锁定在绑定特定硬件的专有交换机操作系统中。SAI通过创建硬件抽象层打破了这种锁定。该实现采用分层设计:SAI API层暴露标准化函数用于创建、修改和删除交换机对象;SAI适配器层将SAI对象映射到ASIC特定数据结构并调用供应商SDK;ASIC供应商SDK则是直接编程硬件的专有库。

关键工程挑战是在不同ASIC间保持一致行为。例如,Broadcom的流水线架构与Mellanox有显著差异。SAI适配器必须处理这些差异,同时呈现统一API。edge-core实现使用条件编译和运行时特性检测来处理ASIC特定问题。性能方面,抽象层增加的开销极小——通常延迟增加低于5%,因为大多数操作是控制平面(路由更新、ACL更改)而非数据平面(数据包转发)。数据平面仍保留在硬件中。

该实现是开放网络运动的基石。主要玩家包括Edgecore Networks(主要维护者,已出货超过100万个SAI兼容端口)、Microsoft Azure(最大生产用户,在SONiC中使用SAI)、Meta(在FBOSS中使用SAI)和Alibaba Cloud(采用定制版SONiC)。在竞争格局中,SAI已赢得固定功能ASIC的抽象层之战,而P4提供更多灵活性但硬件支持较窄,OpenFlow在生产交换中实际上已被弃用。

技术深度解析

交换抽象接口(SAI)本质上是一个C语言API规范,定义了用于编程交换ASIC的一组抽象对象和操作。edge-core/ocp-sai实现将这些抽象调用转换为特定于供应商的SDK调用。该架构遵循分层设计:

1. SAI API层:暴露标准化函数用于创建、修改和删除交换机对象(端口、VLAN、路由、ACL等)。每个对象类型都有对应的SAI对象ID(oid)。
2. SAI适配器层:实现的核心。该层将SAI对象映射到ASIC特定数据结构,并调用供应商的SDK。对于Broadcom ASIC,它调用Broadcom SDK;对于Mellanox,使用Mellanox SDK;以此类推。
3. ASIC供应商SDK:由ASIC供应商提供的专有、闭源库,直接编程硬件。

一个关键的工程挑战是在不同ASIC间保持一致行为。例如,Broadcom的流水线架构与Mellanox有显著差异。SAI适配器必须处理这些差异,同时呈现统一API。edge-core实现使用条件编译和运行时特性检测来处理ASIC特定问题。

性能考量:抽象层增加的开销极小——通常延迟增加低于5%——因为大多数操作是控制平面(路由更新、ACL更改)而非数据平面(数据包转发)。数据平面仍保留在硬件中。然而,对于MAC学习或路由更新等高频率操作,SAI实现必须高效。edge-core仓库包含优化措施,如批量更新和关键路径的直接内存访问。

GitHub仓库详情:edge-core/ocp-sai仓库组织为多个目录:
- `inc/`:SAI API头文件(规范)
- `src/`:适配器实现源代码
- `test/`:单元测试和集成测试
- `doc/`:文档和配置示例

该项目收到了Edgecore工程师和社区贡献者的稳定提交。最近的更新包括对Broadcom Jericho2和Mellanox Spectrum-4 ASIC的支持,反映了交换硬件的快速演进。

基准数据

| ASIC供应商 | SAI对象创建(操作/秒) | 路由更新延迟(微秒) | ACL规则插入(操作/秒) |
|---|---|---|---|
| Broadcom Tomahawk4 | 45,000 | 12 | 8,500 |
| Mellanox Spectrum-3 | 52,000 | 9 | 10,200 |
| Marvell Prestera | 38,000 | 15 | 7,100 |

数据要点:Mellanox Spectrum-3在SAI操作中表现略优,可能归因于其更灵活的流水线架构。然而,Broadcom占据市场主导地位,因此SAI实现必须优先考虑Broadcom兼容性。性能差异足够小,不会驱动架构决策。

关键玩家与案例研究

Edgecore Networks:此SAI实现的主要维护者。Edgecore是领先的白盒交换机制造商和OCP贡献者。其交换机——如AS7712-32X和AS7816-64X——广泛部署于超大规模数据中心。Edgecore的策略是使交换硬件商品化,并通过软件兼容性实现差异化。他们已出货超过100万个SAI兼容端口。

Microsoft Azure:SAI的最大生产用户。Microsoft的SONiC(云中开放网络软件)网络操作系统使用SAI作为其硬件抽象层。Azure在其全球数据中心的数千台白盒交换机上运行SONiC。Microsoft对SAI规范做出了重大贡献,特别是在遥测和缓冲功能方面。

Meta(Facebook):使用SAI配合其FBOSS网络操作系统。Meta已在其数据中心架构中部署基于SAI的交换机,包括Wedge系列。他们为负载均衡和拥塞控制贡献了SAI扩展。

Alibaba Cloud:为其数据中心网络采用SAI,使用定制版SONiC。Alibaba为其自研ASIC设计贡献了SAI支持。

竞争格局

| 解决方案 | 抽象层 | ASIC支持 | 开源 | 生产规模 |
|---|---|---|---|---|
| SAI(edge-core/ocp-sai) | 标准化API | Broadcom、Mellanox、Marvell等 | 是(OCP) | 超大规模(Azure、Meta) |
| OpenFlow | 基于流 | 有限(Open vSwitch、部分ASIC) | 是 | 下降中 |
| P4(含P4Runtime) | 协议无关 | Intel Tofino、Barefoot | 是 | 小众 |
| 供应商SDK(Broadcom SDK) | 专有 | 单一供应商 | 否 | 遗留 |

数据要点:SAI已赢得固定功能ASIC的抽象层之战。P4为可编程流水线提供更多灵活性,但缺乏SAI提供的广泛硬件支持。OpenFlow在生产交换中实际上已被弃用。

行业影响与市场动态

SAI实现是开放网络运动的基石,它正在重塑网络硬件和软件的格局。通过提供标准化的硬件抽象层,SAI使网络运营商能够从多个供应商处采购白盒交换机,同时运行相同的网络操作系统。这降低了供应商锁定风险,并促进了交换硬件市场的竞争。

从市场动态来看,SAI的采用正在加速。根据行业报告,基于SAI的交换机出货量在过去两年中增长了超过200%,预计到2026年将占数据中心交换机市场的40%以上。这一增长由超大规模云提供商推动,他们正在将SAI作为其网络基础设施的标准。

然而,挑战依然存在。SAI规范仍在演进中,新功能(如高级遥测和可编程流水线)需要持续开发。此外,SAI实现的质量因ASIC供应商而异,一些供应商提供的适配器比其他供应商更成熟。Edgecore的ocp-sai实现通过提供经过充分测试、社区驱动的代码库来解决这些问题。

展望未来,SAI可能会扩展到数据中心之外的应用,如企业网络和电信边缘。开放网络社区已经在探索SAI用于5G核心网络和边缘计算场景。随着网络软件继续向云原生架构演进,SAI作为硬件抽象层的作用将变得更加关键。

更多来自 GitHub

Pyrefly:Meta 的速度猛兽,挑战 Python 类型检查格局Meta 开源的 Pyrefly 标志着 Python 静态分析领域的一个转折点。Pyrefly 是一款从头构建、以速度为核心的类型检查器与语言服务器,直击长期困扰 mypy 等工具的性能瓶颈,尤其是在大型单体仓库中。其架构利用增量分析、自Modin:一行代码让Pandas性能飙升,并行计算不再是空谈Modin 这个开源库让数据科学家只需修改一条 import 语句,就能将 Pandas 工作流扩展到并行计算环境。它已悄然成为那些遭遇单线程 Pandas 内存与计算瓶颈的团队最实用的工具之一。拥有超过 10,000 个 GitHub 星Pandas 星标突破 4.8 万:为何这个 Python 库仍是数据分析的王者Pandas 不仅仅是一个库,它已成为 Python 数据科学领域的通用语言。GitHub 上近 49,000 颗星标、日均新增 27 颗星——其采用率毫无放缓迹象。基于 NumPy 构建的 Pandas,提供了 DataFrame 和 S查看来源专题页GitHub 已收录 1881 篇文章

时间归档

May 20261718 篇已发布文章

延伸阅读

Pyrefly:Meta 的速度猛兽,挑战 Python 类型检查格局Meta 开源了 Pyrefly,一款高性能 Python 类型检查器与语言服务器,其速度与内存效率远超 mypy 等现有工具。专为大规模代码库设计,它有望成为持续集成类型验证的新标准。Modin:一行代码让Pandas性能飙升,并行计算不再是空谈Modin 是一个可直接替代 Pandas 的开源库,通过 Ray 或 Dask 后端实现数据操作的并行化,在多核机器上宣称能带来近乎线性的加速。AINews 深入探究其技术取舍、真实性能表现,以及它是否真能成为生产级数据管线的“救世主”。Pandas 星标突破 4.8 万:为何这个 Python 库仍是数据分析的王者作为 Python 数据操作的核心库,Pandas 在 GitHub 上已累计超过 48,700 颗星标,并持续主导数据科学领域。本文深入剖析其技术根基、生态影响力,以及在超大规模数据时代所面临的挑战。Redot引擎:一场可能重塑开源游戏开发的Godot分叉革命Redot Engine,一个由社区驱动的Godot Engine分叉,在GitHub上迅速蹿红,数日内斩获超过5800颗星。它诞生于围绕Godot 4.0的治理紧张局势,承诺回归开源纯粹性并带来性能优化。但这场分叉能否在生存的终极考验中存

常见问题

GitHub 热点“SAI Implementation Unlocks Open Networking's True Potential for SDN”主要讲了什么?

The edge-core/ocp-sai repository on GitHub represents a concrete, open-source implementation of the Open Compute Project's Switch Abstraction Interface (SAI) specification. SAI def…

这个 GitHub 项目在“How does SAI compare to P4 for network programmability?”上为什么会引发关注?

The Switch Abstraction Interface (SAI) is fundamentally a C-language API specification that defines a set of abstract objects and operations for programming switching ASICs. The edge-core/ocp-sai implementation translate…

从“What are the hardware requirements for running SAI-based switches?”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 1,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。