searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

SONiC芯片转发逻辑实现方式

2023-06-19 12:27:21
88
0

一、前言

       SONiC日渐成为构建开放网络的钥匙,SAI则是实现钥匙的标准模具,SONiC通过将SAI作为南北向互联的中间件,屏蔽了不同ASIC之间的驱动差异,也正是由于SAI的存在,SONiC的网络功能应用才能够支持多个厂家的ASIC,通过时间轴简单回顾下支持ASIC的历史经纬。

       2016年,该软件可在多个ASIC上运行,包括Broadcom的Trident 2、Mellanox的Spectrum、Cavium的XPliant(现在是Marvell的一部分)和Centec Networks的GoldenGate。这些主要用于40 Gb/s的交换机。

       2017年,增加了Broadcom的Tomahawk、Tomahawk 2 ASIC、Marvell的Prestera、Barefoot的Tofino,主要用于100 Gb / s的交换机,大约有16种不同的平台可供使用。

      2018年,还添加了ARM计算支持,平台列表增加到31台不同的计算机,包括基于Nephos的Taurus芯片、Broadcom的Helix 4、Trident 2、Tomahawk 3芯片、Cisco的Lacrosse芯片(用于高端Nexus 9000交换机)。

      2019年,增加了对Broadcom Jericho和Jericho 2深度缓冲器(deep buffer)交换机ASIC的支持,以及对Innovium的Teralynx 7、Marvell的Falcon、Mellanox的Spectrum 2 ASIC的支持。

      本文章主要介绍数据中心主流芯片ASIC Broadcom XGS芯片基本知识。

二、芯片架构

交换芯片架构:

       交换芯片由XGE/HGE接口(MAC/PHY)模块、CPU接口模块、输入输出匹配/修改模块、MMU模块、L2转发模块、L3转发模块、安全模块、流分类模块等模块组成,其具体结构如图1所示。

图1、芯片架构

 

三、芯片转发

       报文由端口进入交换芯片之后,首先进行包头字段匹配,为流分类做准备;然后经过一个安全引擎进行包过滤;符合安全的包进行L2交换或者L3路由,并经过流分类处理器对匹配的包做相关动作(比如丢弃、限速、修改VLAN等);对于可以转发的包根据802.1P或DSCP放到不同队列的buffer中,调度器根据优先级或者WRR等算法进行队列调度,在端口发出该包之前执行流分类修改动作,最终从相应端口发送出去,其具体转发流程如图2所示。

图2、芯片pipline 流程

L2功能:
       主要包括ingress过滤、MAC学习和老化、根据MAC+VLAN转发、广播与洪泛、生成树控制等基本功能。

L3功能:

       如果查目的MAC地址表的时候发现L3bit置位了,就进入到L3转发流程。与L2交换相比,L3交换可以实现跨VLAN转发,而且它的转发依据不是根据目的MAC地址,而是根据目的IP。

ACL功能:

       ACL 通过一系列的匹配条件对报文进行分类,这些条件可以是报文的源 MAC 地址、目的 MAC 地址、VLAN ID,源 IP地址、目的 IP地址、UDP端口号等标准的报头格式,也可以是以报文二层头为基准任意偏移的域。分类之后的流,可以对其采取各种动作:丢弃,转发,重定向,修改报文,限速等。

MMU功能:

       MMU(内存管理单元)用于有效的管理芯片的cell buffering和packet pointer资源,支持cell buffer poll和packet pointer。支持线速转发组播和单播报文,支持转发端到端的拥塞控制报文,支持产生和处理端到端的拥塞控制报文,支持ECC,1位的纠错和2位错误的检测。

      MMU机制是独立于入口访问控制和出口访问控制,通过基于cell和packet pointer的使用情况来追踪芯片的buffer的使用情况。

四、结论

       上述大体介绍了Broadcom XGS芯片架构和转发流程,作为数据中心数通领域市场占有率较大的芯片系列,后面继续与SONiC相辅相成,共同进一步打造坚实的云底座。

 

0条评论
0 / 1000
l****n
3文章数
0粉丝数
l****n
3 文章 | 0 粉丝