Egress Pipe配置使用
出口路徑對每個數據包執行以下步驟:
1.解析數據包(提取DA、SA、VLAN、MACsec報頭、專有報頭和以太類型)
2.根據以太網類型匹配表匹配以太網類型(二層payload類型);
3.查找包(匹配上述任何/所有L2字段,在命中時返回上下文編號)
4.檢索上下文(包含要對數據包執行的操作,以及MACsec標記的內容)
5.重寫包(插入/替換MACsec標簽,刪除專有報頭)
6.加密數據包(使用合適的密鑰加密)
7.驗證數據包(使用適當的散列密鑰計算數據包的ICV,并在驗證/加密結束后插入)
這些步驟由具有分離的控制/數據路徑的流水邏輯實現,如圖45所示。這張圖顯示了三種類型的功能單元。引擎是管道中直接處理每個數據包的單元。引擎具有最小的配置,并且它們的配置信息由靜態值組成,例如Ethertypes。緩沖區用于吸收由各種引擎處理引入的延遲。表包含大多數控制信息和處理所需的所有動態信息。
Ethertype match table
以太類型匹配表在出接口和入接口之間共享,包含8種以太類型,可以與數據包解析器找到的內部以太類型進行匹配。可以通過配置寄存器(et_m0, et_m1, et_m2, et_m3)來編程8種以太類型。如果內部以太類型匹配以太類型匹配表中的一個已啟用的條目(由et_match_ctl的etm_egr_en位啟用),則數據包將:
1.被丟棄,或者
2.根據et_match_ctl的etm_eg_drop或etm_rmv_hdr位的設置,專有頭將從包的前面刪除。如果兩個位都為零,數據包將被繞過(be bypassed)。此表的優先級高于查找表——任何與已啟用條目匹配的數據包都不會在查找表中查找。與Ethertype匹配表匹配的數據包將被LinkCrypt統計為“miss”數據包。
Lookup table 查找表
查找表是出口管道中數據包的主要決策點。該表是一個32條目的優先級查找表,其功能類似于CAM。該表包含MAC DA、MAC SA、VLAN、ethertype和header match字段,以及每個字段的使能位。該表還包含一個默認匹配位,因此搜索到具有默認設置的條目將始終匹配該條目。
查找表的輸出是一組動作(刪除、認證、加密、刪除頭,請參閱出口查找表動作位Egress Look Up Table),以及一個上下文條目的索引,如果要對數據包進行身份驗證或加密,將使用該索引。丟棄數據包與認證/加密動作是互斥的。
數據包VLAN取自數據包中出現的第一個802.1q標簽(如果出現),如果啟用了parse_macsec,則取自MACsec標簽之后的第一個802.1q標簽。如果解析器沒有找到1q標記,將使用缺省VLAN寄存器(cfg_default_vlan)中的VLAN值執行查找。
如果數據包不匹配Ethertype match表或查找表,則根據egr_gen的def_drop和def_rmv_hdr位采取默認操作。
上電后,查找表自動清除。出口和入口查找表可以使用slice reset_ctl寄存器的tbl_init位重新初始化。
Context and Key tables
上下文表(Egress context Table)和密鑰表(Encrypt key Table和Egress Hash key Table)包含對報文進行封裝、加密和認證所需的信息。上下文表包含創建MACsec報頭所需的信息。這些信息被提供給重寫引擎(它實際執行插入)和加密引擎(它使用這些信息形成nonce)。
Egress Context Table
加密和散列密鑰表包含執行加密和身份驗證所需的密鑰。加密密鑰為AES計數器模式使用的128位AES密鑰。哈希密鑰是一個128位密鑰,通過對加密密鑰和數據值0執行AES操作而得到加密密鑰。
上下文號不僅指上下文表中的條目號,還指加密密鑰表和散列密鑰表中的條目。例如,引用上下文#2的查找條目將使用加密密鑰#2和散列密鑰#2。上下文表還包含將與下一個數據包一起傳輸的PN值(ectx0_2)。該PN值在每個數據包發送后自動增加。如果啟用了drop_max_pn,則傳輸數據包的編號將圍繞并保持在PN 0。一旦PN計數器達到0,它就不會增加。該pn0報文和所有后續到達該表項的報文將被丟棄。如果禁用drop_max_pn,則PN將繞圈,數據包將從PN=1開始傳輸(跳過PN=0)。允許PN計數器達到零值被認為是一個錯誤條件,并且將設置pn_full中斷。當任何一個PN計數器超過3/4滿閾值時,就會設置第二個中斷。
配置Egress Pipe
出口管道的操作主要由圖45中所示的四個表控制。管道從左到右訪問這些表(查找散列鍵),因此在配置期間,它們以相反的順序(從右到左)進行更改。順序為:
1. Disable lookup entry
2. Program hash key
3. Program encrypt key
4. Program context
5. Program lookup entry
6. Enable lookup entry
要禁用查找項(lookup entry),只需要寫入最高的單詞。對于所有其他表項entry,表項應該從最低地址寫到最高地址(word0àword3)。完成此操作后,步驟#5和#6可以結合使用,因為查找項中的啟用位位于寫入的最后一個單詞中。
-
以太網
+關注
關注
40文章
5383瀏覽量
171144 -
VLAN
+關注
關注
1文章
273瀏覽量
35581 -
數據包
+關注
關注
0文章
253瀏覽量
24366
原文標題:88E1548P MACSec使用(2)--Egress Pipe
文章出處:【微信號:數字芯片設計工程師,微信公眾號:數字芯片設計工程師】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論