首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

智能网卡系列二:支持SAI的P4开源交换机

本文章根据Barefoot Networks公司软件部主管文章整理,他领导着一支高级工程师团队,在构建网络系统,软件和芯片方面拥有资深的经验。

在常见的网络开发过程中,我们在开发交换机路由器的过程中,无论使用的是现成的商用交换芯片(如Broadcom strataXGS/strataDNX, 还是marvel的mv Switch系列等)还是需要设计自己的芯片,为固定功能的ASIC交换芯片编写软件都可能令人沮丧。

我们在开发过程中,经常受到ASIC芯片中内置的一组功能的限制。比如说流片固话的芯片,我们无法添加新功能、很少或无法控制交换机资源的分配方式、无法更改交换芯片固件转发逻辑等。

随着P4可编程交换机芯片的出现,这种情况将在未来几年内得到改善,使我们能够:

定义和自定义交换机处理数据包的方式

自动生成API以将芯片连接到交换机软件。

为了帮助推进这一愿景,Barefoot Networks公司的团队最近开源了一个编译器,可以将P4程序转换为可执行的soft Switch。如果你还没有看到编译器和工具链,你应该查看下面的GitHub存储库:p4compiler和p4factory。使用这些工具,您可以在 P4 中编写自己的交换机说明,然后将其转换为可执行的软交换机。

接下来我们需要的是用 P4 编写的生产质量交换机转发平面的集合,供我们所有人共享和构建。您可能知道实际的生产级别的交换机很复杂(且专有),即使有 NDA,也很难确切地找出它们的作用。

当今最先进的交换芯片如Broadcom公司的企业网XGS系列芯片提供了许多功能,例如单播和组播转发、网络虚拟化和其他隧道技术、策略实施和安全功能、流量优先级和监控功能以及多芯片结构转发。我们从经验中知道制作功能丰富的交换机转发平面是多么复杂和耗时。

基于这样的场景,如果在P4中开源一些现实的生产交换机设计,这将对更广泛的网络开发人员和研究人员社区有所帮助。我们可以按原样使用它们,也可以作为更高级和自定义的交换机、NIC、路由器、负载平衡器、安全设备等的起点。

所以今天我们就一起来介绍一下Barefoot Networks公司发布了两个开源项目:

1) 开放和可编程以太网/IP 交换机

switch.p4 是一个 P4 程序,表示交换机的转发平面,具有高级以太网和 IP 交换机的典型特征。可以使用 P4 编译器编译此规范以创建可执行开关。switch.p4 中的表可以使用编译器从 P4 程序自动生成的低级资源管理 API 进行编程。有关如何编译和运行 switch.p4 的更多详细信息,请查看 p4-factory - switch 中的 switch 目标。

2)  在 switch.p4 上的开放实现的交换机抽象接口 (SAI)

SAI是用于交换机的新标准化API,允许同一软件对许多不同的交换机芯片进行编程,而无需进行任何更改。 switch.p4 可以通过 SAI 使用开源 switchsai 和 switchapi 库进行控制。Barefoot Networks公司团队正在发布这两个库的源代码,这意味着从应用程序到数据平面的所有软件层都是开放的。有关 switchsai 和 switchapi 的更多详细信息,请访问以下 github 存储库:switchsai 和 switchapi。

如下图显示了不同 API 层之间的关系。底部是软件Switch,从switch.p4编译。低级别资源由自动生成的 API 管理。交换机和交换机 API 库允许应用程序使用 SAI 对软交换机中的表进行编程。

随着switch.p4的发布和对SAI的支持,我们希望在网络中创造一种更加开放的文化,从而产生更多的开源代码,可以跨交换机芯片移植。我们鼓励由供应商、运营商、研究人员和独立软件工程师组成的网络社区以我们的代码为基础,突破网络世界的界限。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230614A0AYFV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券