基于Feature架构设计的百兆以太网交换机项目

描述

经过第一代的交换机项目后,博主也算对交换机有了更深的认识,但是第一代的Feature过于单一,架构简单,和市场化的交换机功能完全脱节。而在学习Switch Core的过程中,也没有找到什么完善的中文学习资料,所以博主准备进一步完善以太网交换机的项目,希望凭微薄之力,为想学习的同学们多整理一些资料。

第二代交换机有更丰富的feature,更贴近真正使用的功能,除rtl代码,详细设计文档外,还会包括验证环境、验证代码,最后项目完成后,会全部开源供大家学习,顺利的话,希望还能上FPGA进行原型验证。

为了便于称呼,我们将对第二代交换机项目取名为Atom,也意为之后一切项目的开始。

Atom Feature

考虑到对CPU暂时不熟悉,所以Atom没有设置控制端口,也没有独立的CPU承担固件功能。Atom定位于百兆Switch Core,将支持以下feature:

数据交换能力达到400Mbps,即4 Port x 100Mbps

支持2K MAC地址的存储与查询(包括MAC地址、Multicast table、VLAN table)

支持SM3或SHA-1的HASH算法

支持2MB的数据缓存区

支持基于端口的VLAN、基于tag的VLAN、基于流量类型的VLAN

支持全双工10/100 Mbps的MII接口

发送端、接收端MAC支持可配置的SM2/AES数据流加解密

支持802.3x Flow Control

支持QoS,基于Port优先级或基于帧优先级进行仲裁输出

支持多播、组播包的发送

支持基于QCN的拥塞管理

支持DPI深度包检测,进行流量类型区分,防火墙功能

支持Flush功能:全局Flush或者优先级Flush

支持风暴控制

支持基于L2层的流量筛选

支持Packet重标记

支持流量统计

支持流量重定向

Atom架构

Atom仍将支持4Port,接口也保留双工的10M/100MHz的MII,通过4个MAC接收/发送数据,支持SPI接口访问寄存器模块,对第一代交换机的MAC table进行扩展,还支持了Multicast table、VLAN table等。

Atom共分为9个模块:

MAC:分为RMAC和TMAC,包括L2 pause frame功能以及Switch Core v1的基本功能,支持SM2/AES加解密(可选)暂不实现完整的 MACsec IP;

PF(Packet Filter):负责入口处的L2、L3 Packet过滤,带有DPI(深度包检测功能);

PM(Packet Modifier):负责出口处Packet header内容的修改;

DB(Data Buffer):Atom的Packet缓存区,内部按优先级分为多条链表,所有Packet都缓存于此;

ENG(Switch Engine):负责管理Packet的自学习、老化、查询等操作,并根据查询结果进一步返回给ENG;

TKM(Token Manager):采用令牌桶算法,管理令牌数量;

QCN(Quantized Congestion Notification):实现QCN算法,进行拥塞控制;

TBM(Table Manager):实现SM-3/SHA-1的Hash算法,处理Hash冲突,负责管理多个Table;

CSR(Control and Status Register):通过SPI读写Atom所有控制、统计寄存器,并将寄存器连接到各模块;

FPGA

由于本人和团队都是第一次独立进行规模化的项目设计,难免缺乏经验,在架构和设计方面若有不足之处,可以及时与我们沟通讨论,我们一定认真听取建议!!!

编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分