經過第一代的交換機項目后,博主也算對交換機有了更深的認識,但是第一代的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的擁塞管理
支持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
+關注
關注
1626文章
21678瀏覽量
602043 -
以太網
+關注
關注
40文章
5385瀏覽量
171164 -
交換機
+關注
關注
21文章
2624瀏覽量
99288 -
Verilog
+關注
關注
28文章
1345瀏覽量
109996 -
Mac
+關注
關注
0文章
1099瀏覽量
51377
原文標題:Verilog開源項目——百兆以太網交換機(一)架構設計與Feature定義
文章出處:【微信號:FPGA_Study,微信公眾號:FPGA自習室】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論