4个交换机ASIC接口,驱动SDN发展

时间:2024-04-08 09:34:45

四个接口 - 交换机抽象接口,快速数据平面项目,Broadcom的软件开发套件逻辑表和P4编程语言 - 与数据平面芯片组和交换机ASIC配合使用。但它们也有可能通过推进开放接口和可编程能力来推动SDN和机器学习的增长。然而,要完全掌握我们还是首先看一下计算系统和硬盘接口的历史。

4个交换机ASIC接口,驱动SDN发展

回顾过去,计算历史上的一个重要时刻是20世纪80年代国际标准架构(ISA)的标准化和采用。当IBM在20世纪80年代后期试图用微通道架构替换ISA时,而其他系统制造商却反对并坚持ISA标准。1996年,英特尔开发了外围组件互连(PCI)总线,计算行业随后广泛采用该总线。随后PCI总线在被PCI Express取代,PCI Express最初于2004年发布。

硬盘接口具有类似的历史。硬盘驱动器接口始于控制器卡,用于支持修改后的频率调制,运行长度限制和小型计算机系统接口格式。这些格式之后是集成驱动电子(IDE)运动和并行高级技术附件,最后是串行ATA。

那么,从中学到了什么?在业界采用标准化方式访问这些系统之后,新的开发项目飙升,硬件市场扩大。例如,ISA导致克隆系统构建者最终成为计算系统构建的主导力量,而IDE最终导致存储技术的快速发展。

同样,这种重复模式提醒我们通常用于控制当今数据平面芯片组的四个接口的重要性:交换机抽象接口(SAI),快速数据平面项目(FD.io),Broadcom的软件开发套件逻辑表(SDKLT) )和P4编程语言。

四个交换机ASIC接口如何推动SDN增长

这四个接口可以推动软件定义的革命。例如,用于控制数据包流的标准化接口集可以加速驱动软件定义网络所需的控制器和代理的开发。

这些标准化接口还可以推动构建网络的革命,这些网络与机器学习和闭合公式分析相互作用,可根据其操作环境进行自我调整。

这些类型的开放接口具有许多优点,即使最终用户没有直接看到它们但也会体会到。虽然您可能看不到接口,但可以看到计算机中的PCI Express总线,可以在各种硬件和可在该硬件上运行的可用软件中查看标准的结果。

作为客户,您应该了解这些接口和标准,并询问您的供应商您购买的产品是否支持它们。那么,让我们仔细看看这些接口。

1.切换抽象接口

SAI是这些接口中最早的接口,初始版本可以追溯到2014年。基本上,SAI是许多不同交换机ASIC驱动程序的统一容器或包装器,如下面的开放计算项目图所示。

4个交换机ASIC接口,驱动SDN发展

交换机抽象接口将相同的操作集合公开给许多交换机和路由器的数据平面ASIC的主机适配器。这种包装器的优点是允许单个软件适配器控制不同品牌和版本的交换机ASIC。

缺点是封装器接口往往只支持每个交换机ASIC支持的功能 - 可用功能的最小公分母。此外,将调用Switch抽象接口转换为交换机ASIC软件开发工具包,然后转换为交换机ASIC驱动程序,会对性能产生负面影响。

2.快速数据项目

快速数据项目(FD.io)的重点是在虚拟或基于软件的网络设备中创建基于软件的交换之间的管道。

例如,虚拟包检测服务或虚拟网络功能可以使用FD.io接口从接口中提取包,处理它们然后将它们推回到硬件接口上。发起数据包的设备(如数据库服务器)也可以利用FD.io与网络接口的直接连接。

3.Broadcom的SDKLT

Broadcom的软件开发工具包逻辑表与SAI类似,但也有不同。它的设计类似于为转发ASICs提供了许多交换机或路由器使用的接口,特别是那些大型数据中心中的交换机或路由器。

SDKLT与SAI的不同之处在于它仅支持Broadcom,而且其接口的构建方式也是如此。SDKLT不是用于访问芯片组函数的标准调用集,而是基于表的。这意味着表包含所有ASIC的特性,交换机端口参数和转发表。操纵这些表可以编写ASIC的转发特性。此过程类似于直接在通用处理器(或视频处理芯片上的视频内存池)上编程寄存器。

4.P4编程语言

最后,P4针对的是与前面接口相同的芯片组,但它是一种编程语言,而不是接口。它的一组调用可以控制ASIC对每个数据包采取的任何操作,一组数据结构可以管理ASIC处理数据包的表。

例如,要切换数据包,可能会使用以下代码:

V1Switch(

Parser(),

VerifyChecksum(),

Ingress(),

ComputeChecksum(),

Egress(),

)main;

此代码告诉ASIC要调用列出的每个功能,使ASIC解析数据包,验证校验和,执行任何入口处理(这可能包括确定出站接口,确定下一跳信息并重写任何标头) ,计算新的校验和并执行任何出口处理(排队和其他服务质量处理)。这提供了一种与交换机ASIC交互的完全不同的方式。

为什么这些接口很重要

最后最终用户可能不会创建可以直接使用这些接口的软件,但它们仍然很重要。就像原始桌面系统中的ISA总线,以及更现代系统中的PCI和PCI Express总线一样,这些接口标准可以使开发产品的供应商数量迅速扩大。它们还可以使相关设备的特征和功能快速发展。

例如,如果产品支持这些接口之一,则可能更容易为您的网络或个人垂直构建自定义平台,例如医疗保健或数据分析。随着转发平面的接口变得更加标准化,开发人员将能够花更多的时间来开发功能,而不是将他们的软件调整到他们需要运行它的硬件上。


原文发布时间为:2018-10-22

本文来自云栖社区合作伙伴“SDNLAB”,了解相关信息可以关注“SDNLAB”。