經(jīng)過第一代的交換機(jī)項(xiàng)目后,博主也算對(duì)交換機(jī)有了更深的認(rèn)識(shí),但是第一代的Feature過于單一,架構(gòu)簡(jiǎn)單,和市場(chǎng)化的交換機(jī)功能完全脫節(jié)。而在學(xué)習(xí)Switch Core的過程中,也沒有找到什么完善的中文學(xué)習(xí)資料,所以博主準(zhǔn)備進(jìn)一步完善以太網(wǎng)交換機(jī)的項(xiàng)目,希望憑微薄之力,為想學(xué)習(xí)的同學(xué)們多整理一些資料。
第二代交換機(jī)有更豐富的feature,更貼近真正使用的功能,除rtl代碼,詳細(xì)設(shè)計(jì)文檔外,還會(huì)包括驗(yàn)證環(huán)境、驗(yàn)證代碼,最后項(xiàng)目完成后,會(huì)全部開源供大家學(xué)習(xí),順利的話,希望還能上FPGA進(jìn)行原型驗(yàn)證。
為了便于稱呼,我們將對(duì)第二代交換機(jī)項(xiàng)目取名為Atom,也意為之后一切項(xiàng)目的開始。
Atom Feature
考慮到對(duì)CPU暫時(shí)不熟悉,所以Atom沒有設(shè)置控制端口,也沒有獨(dú)立的CPU承擔(dān)固件功能。Atom定位于百兆Switch Core,將支持以下feature:
數(shù)據(jù)交換能力達(dá)到400Mbps,即4 Port x 100Mbps
支持2K MAC地址的存儲(chǔ)與查詢(包括MAC地址、Multicast table、VLAN table)
支持SM3或SHA-1的HASH算法
支持2MB的數(shù)據(jù)緩存區(qū)
支持基于端口的VLAN、基于tag的VLAN、基于流量類型的VLAN
支持全雙工10/100 Mbps的MII接口
發(fā)送端、接收端MAC支持可配置的SM2/AES數(shù)據(jù)流加解密
支持802.3x Flow Control
支持QoS,基于Port優(yōu)先級(jí)或基于幀優(yōu)先級(jí)進(jìn)行仲裁輸出
支持多播、組播包的發(fā)送
支持基于QCN的擁塞管理
支持DPI深度包檢測(cè),進(jìn)行流量類型區(qū)分,防火墻功能
支持Flush功能:全局Flush或者優(yōu)先級(jí)Flush
支持風(fēng)暴控制
支持基于L2層的流量篩選
支持Packet重標(biāo)記
支持流量統(tǒng)計(jì)
支持流量重定向
Atom架構(gòu)
Atom仍將支持4Port,接口也保留雙工的10M/100MHz的MII,通過4個(gè)MAC接收/發(fā)送數(shù)據(jù),支持SPI接口訪問寄存器模塊,對(duì)第一代交換機(jī)的MAC table進(jìn)行擴(kuò)展,還支持了Multicast table、VLAN table等。
Atom共分為9個(gè)模塊:
MAC:分為RMAC和TMAC,包括L2 pause frame功能以及Switch Core v1的基本功能,支持SM2/AES加解密(可選)暫不實(shí)現(xiàn)完整的 MACsec IP;
PF(Packet Filter):負(fù)責(zé)入口處的L2、L3 Packet過濾,帶有DPI(深度包檢測(cè)功能);
PM(Packet Modifier):負(fù)責(zé)出口處Packet header內(nèi)容的修改;
DB(Data Buffer):Atom的Packet緩存區(qū),內(nèi)部按優(yōu)先級(jí)分為多條鏈表,所有Packet都緩存于此;
ENG(Switch Engine):負(fù)責(zé)管理Packet的自學(xué)習(xí)、老化、查詢等操作,并根據(jù)查詢結(jié)果進(jìn)一步返回給ENG;
TKM(Token Manager):采用令牌桶算法,管理令牌數(shù)量;
QCN(Quantized Congestion Notification):實(shí)現(xiàn)QCN算法,進(jìn)行擁塞控制;
TBM(Table Manager):實(shí)現(xiàn)SM-3/SHA-1的Hash算法,處理Hash沖突,負(fù)責(zé)管理多個(gè)Table;
CSR(Control and Status Register):通過SPI讀寫Atom所有控制、統(tǒng)計(jì)寄存器,并將寄存器連接到各模塊;
由于本人和團(tuán)隊(duì)都是第一次獨(dú)立進(jìn)行規(guī)模化的項(xiàng)目設(shè)計(jì),難免缺乏經(jīng)驗(yàn),在架構(gòu)和設(shè)計(jì)方面若有不足之處,可以及時(shí)與我們溝通討論,我們一定認(rèn)真聽取建議?。。?/p>
編輯:黃飛
-
FPGA
+關(guān)注
關(guān)注
1629文章
21736瀏覽量
603420 -
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5425瀏覽量
171732 -
交換機(jī)
+關(guān)注
關(guān)注
21文章
2640瀏覽量
99646 -
Verilog
+關(guān)注
關(guān)注
28文章
1351瀏覽量
110101 -
Mac
+關(guān)注
關(guān)注
0文章
1106瀏覽量
51479
原文標(biāo)題:Verilog開源項(xiàng)目——百兆以太網(wǎng)交換機(jī)(一)架構(gòu)設(shè)計(jì)與Feature定義
文章出處:【微信號(hào):FPGA_Study,微信公眾號(hào):FPGA自習(xí)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論