专栏首页SDNLAB4个交换机ASIC接口,驱动SDN发展

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

四个接口 - 交换机抽象接口,快速数据平面项目,Broadcom的软件开发套件逻辑表和P4编程语言 - 与数据平面芯片组和交换机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驱动程序的统一容器或包装器,如下面的开放计算项目图所示。

交换机抽象接口将相同的操作集合公开给许多交换机和路由器的数据平面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总线一样,这些接口标准可以使开发产品的供应商数量迅速扩大。它们还可以使相关设备的特征和功能快速发展。

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

原文链接:

https://searchsdn.techtarget.com/tip/4-switch-ASIC-interfaces-to-drive-SDN-and-machine-learning-growth

本文分享自微信公众号 - SDNLAB(SDNLAB)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SDN开发笔记(二):SDN控制器的使用

    鉴于网上对于sdn开发相关的资料较少又乱的现状,从这篇文章开始,我将陆续分享我在sdn开发过程中的经验,我的sdn项目开发是基于opendaylight的rel...

    SDNLAB
  • 设备商:进退有道 用加减法启动深度转型

    编者按:既然无法扭转大趋势,那就改变自己。设备商的抉择无疑是明智的,切除将会被时代淘汰的鸡肋业务,加强新业务的投入,随着运营商的需求不断改变,进退有道,在SDN...

    SDNLAB
  • 当界限开始模糊,路由器与交换机该何去何从?

    过去几年,我们越来越多地看到交换机ASIC中添加了路由功能。数据显示,以太网交换机的出货量正在逐年增长,而路由器市场却停滞不前,路由器跟交换机之间的界限正在逐渐...

    SDNLAB
  • 需要接口管理的你了解一下?

    在日常的开发模式里,前端需要服务端提供的接口实现动态数据展示和交互时,服务端完成接口开发后会提供一个接口文档给到前端按照文档规范再进行开发。这样模式下往往会出现...

    闻人的技术博客
  • c#接口interface学习

    好久没学习C#了,上次已经学习到了接口这块,感觉有点不太好理解,因此重新学习,在vs上面运行了,本来不想写博客的,但是正好看到网上有人说,写博客可以加深印象,...

    用户4645519
  • 接口配置有效管理(获取配置文件内容3种常见方式)

    问:我们项目现在就是配置在yml中的,但是有很多外部接口,配置文件中看起来很乱,有时候修改还修改错了

    肖哥哥
  • 接口分类

    张树臣
  • 接口以及 LeetCode 每日一题

    接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部状态数据,也不关心类内方法的实现细节,只是规定这批类里面必须提供某些方法。所以接口体现的是规范和实现分...

    Carlos Ouyang
  • 如何写出完美的接口:接口规范定义、接口管理工具推荐

    无规矩不成方圆,为了开发人员间更好的配合,我特意整理了这么一篇文档供大家参考学习,如有意见、见解,请在评论区留言探讨。

    xcbeyond
  • php如何做接口

    一个类可以一次性实现多个接口。语法用implements实现,然后在把接口的功能实现;

    叫我可儿呀

扫码关注云+社区

领取腾讯云代金券