對于每個報文,入路徑會執行以下步驟:
1.解析數據包(提取DA、SA、VLAN、MACsec標簽、報頭和以太類型)
2.根據以太網類型匹配表匹配以太網類型
3.查找包(在SCI+AN上匹配MACsec包,或在其他L2字段中匹配非MACsec包,在命中時返回上下文編號)
4.解密數據包(使用合適的密鑰解密)
5.驗證數據包(使用適當的散列鍵來計算數據包上的ICV)
6.重寫包(刪除MACsec標簽,插入專有報頭)
7.檢查認證(將數據包ICV與計算的ICV進行比較,執行重放檢查)
與出口管道類似,這些步驟由具有分離控制/數據路徑的管道實現,如圖46所示。這張圖顯示了三種類型的功能單元。引擎是管道中直接處理每個數據包的單元。引擎具有最小的配置,并且它們的配置信息由靜態值組成,例如Ethertypes。緩沖區用于吸收由各種引擎處理引入的延遲。表包含大多數控制信息和處理所需的所有動態信息。
Ingress Look Up Table
入口查找表IngressLook Up Table是入口管道中數據包的決策點。該表類似于相應的出口查找表,并且具有相同的字段和啟用位。除了這些字段之外,入口查找表還作為SCI、TCI和AN的條目,并使用單個enable位對這些字段執行匹配。查找表還包含數據包TCI的8位掩碼,因此不需要檢查所有TCI。
由于MACsec數據包的主要查找方法是基于SCI,因此為每個MACsec數據包分配一個SCI以進行查找是很重要的。對于SC=1的數據包,這很簡單,因為64位SCI包含在MACsec標簽中。對于SC=0的數據包,解析器計算一個SCI值,并使用圖44所示的流程圖將該值發送到查找表。
查找表的輸出是一組動作(刪除、認證、重定向、插入頭,請參閱入口查找表動作位),以及一個上下文條目的索引,如果要對數據包進行身份驗證或解密,將使用該索引。“刪除”操作與“驗證”操作是互斥的;這兩個位不應該設置為同一項。
如果一個查找表項設置了8個使能位中的任何一個,則該查找表項被認為是“已啟用”的(參見入口查找表8位)。所有啟用位都位于查找表項的最高位,因此可以通過一次寫操作啟用或禁用表項。要禁用某個表項,將所有使能位設置為0。
查找表還在查找之前驗證MACsec報頭。參見章節3.2.7.3,MACsec報頭驗證了解更多信息。
沒有MACsec頭的報文可以根據VLAN查找。如果存在802.1q標記,則使用來自該標記的VLAN,否則根據缺省VLAN值(cfg_default_vlan)查找數據包。
如果數據包不匹配Ethertype match表或查找表,則根據igr_gen的default_drop、def_redir和def_ins_hdr位采取默認操作。
上電后自動清除入口查找表。出口和入口查找表可以使用Slice reset_ctl寄存器的tbl_init位重新初始化。
審核編輯:劉清
-
寄存器
+關注
關注
31文章
5253瀏覽量
119205 -
VLAN
+關注
關注
1文章
262瀏覽量
35444 -
VLAN技術
+關注
關注
0文章
45瀏覽量
6357 -
SCI
+關注
關注
1文章
55瀏覽量
20058 -
VLAN通信
+關注
關注
0文章
18瀏覽量
5619
原文標題:88E1548P MACSec使用(3)--Ingress Pipe
文章出處:【微信號:數字芯片設計工程師,微信公眾號:數字芯片設計工程師】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論