Egress Pipe配置使用
出口路徑對每個數(shù)據(jù)包執(zhí)行以下步驟:
1.解析數(shù)據(jù)包(提取DA、SA、VLAN、MACsec報頭、專有報頭和以太類型)
2.根據(jù)以太網(wǎng)類型匹配表匹配以太網(wǎng)類型(二層payload類型);
3.查找包(匹配上述任何/所有L2字段,在命中時返回上下文編號)
4.檢索上下文(包含要對數(shù)據(jù)包執(zhí)行的操作,以及MACsec標記的內(nèi)容)
5.重寫包(插入/替換MACsec標簽,刪除專有報頭)
6.加密數(shù)據(jù)包(使用合適的密鑰加密)
7.驗證數(shù)據(jù)包(使用適當?shù)纳⒘忻荑€計算數(shù)據(jù)包的ICV,并在驗證/加密結(jié)束后插入)
這些步驟由具有分離的控制/數(shù)據(jù)路徑的流水邏輯實現(xiàn),如圖45所示。這張圖顯示了三種類型的功能單元。引擎是管道中直接處理每個數(shù)據(jù)包的單元。引擎具有最小的配置,并且它們的配置信息由靜態(tài)值組成,例如Ethertypes。緩沖區(qū)用于吸收由各種引擎處理引入的延遲。表包含大多數(shù)控制信息和處理所需的所有動態(tài)信息。
Ethertype match table
以太類型匹配表在出接口和入接口之間共享,包含8種以太類型,可以與數(shù)據(jù)包解析器找到的內(nèi)部以太類型進行匹配??梢酝ㄟ^配置寄存器(et_m0, et_m1, et_m2, et_m3)來編程8種以太類型。如果內(nèi)部以太類型匹配以太類型匹配表中的一個已啟用的條目(由et_match_ctl的etm_egr_en位啟用),則數(shù)據(jù)包將:
1.被丟棄,或者
2.根據(jù)et_match_ctl的etm_eg_drop或etm_rmv_hdr位的設置,專有頭將從包的前面刪除。如果兩個位都為零,數(shù)據(jù)包將被繞過(be bypassed)。此表的優(yōu)先級高于查找表——任何與已啟用條目匹配的數(shù)據(jù)包都不會在查找表中查找。與Ethertype匹配表匹配的數(shù)據(jù)包將被LinkCrypt統(tǒng)計為“miss”數(shù)據(jù)包。
Lookup table 查找表
查找表是出口管道中數(shù)據(jù)包的主要決策點。該表是一個32條目的優(yōu)先級查找表,其功能類似于CAM。該表包含MAC DA、MAC SA、VLAN、ethertype和header match字段,以及每個字段的使能位。該表還包含一個默認匹配位,因此搜索到具有默認設置的條目將始終匹配該條目。
查找表的輸出是一組動作(刪除、認證、加密、刪除頭,請參閱出口查找表動作位Egress Look Up Table),以及一個上下文條目的索引,如果要對數(shù)據(jù)包進行身份驗證或加密,將使用該索引。丟棄數(shù)據(jù)包與認證/加密動作是互斥的。
數(shù)據(jù)包VLAN取自數(shù)據(jù)包中出現(xiàn)的第一個802.1q標簽(如果出現(xiàn)),如果啟用了parse_macsec,則取自MACsec標簽之后的第一個802.1q標簽。如果解析器沒有找到1q標記,將使用缺省VLAN寄存器(cfg_default_vlan)中的VLAN值執(zhí)行查找。
如果數(shù)據(jù)包不匹配Ethertype match表或查找表,則根據(jù)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)包含對報文進行封裝、加密和認證所需的信息。上下文表包含創(chuàng)建MACsec報頭所需的信息。這些信息被提供給重寫引擎(它實際執(zhí)行插入)和加密引擎(它使用這些信息形成nonce)。
Egress Context Table
加密和散列密鑰表包含執(zhí)行加密和身份驗證所需的密鑰。加密密鑰為AES計數(shù)器模式使用的128位AES密鑰。哈希密鑰是一個128位密鑰,通過對加密密鑰和數(shù)據(jù)值0執(zhí)行AES操作而得到加密密鑰。
上下文號不僅指上下文表中的條目號,還指加密密鑰表和散列密鑰表中的條目。例如,引用上下文#2的查找條目將使用加密密鑰#2和散列密鑰#2。上下文表還包含將與下一個數(shù)據(jù)包一起傳輸?shù)腜N值(ectx0_2)。該PN值在每個數(shù)據(jù)包發(fā)送后自動增加。如果啟用了drop_max_pn,則傳輸數(shù)據(jù)包的編號將圍繞并保持在PN 0。一旦PN計數(shù)器達到0,它就不會增加。該pn0報文和所有后續(xù)到達該表項的報文將被丟棄。如果禁用drop_max_pn,則PN將繞圈,數(shù)據(jù)包將從PN=1開始傳輸(跳過PN=0)。允許PN計數(shù)器達到零值被認為是一個錯誤條件,并且將設置pn_full中斷。當任何一個PN計數(shù)器超過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可以結(jié)合使用,因為查找項中的啟用位位于寫入的最后一個單詞中。
-
以太網(wǎng)
+關注
關注
40文章
5486瀏覽量
173291 -
VLAN
+關注
關注
1文章
282瀏覽量
35908 -
數(shù)據(jù)包
+關注
關注
0文章
268瀏覽量
24630
原文標題:88E1548P MACSec使用(2)--Egress Pipe
文章出處:【微信號:數(shù)字芯片設計工程師,微信公眾號:數(shù)字芯片設計工程師】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
HC05模塊使用方法及配置步驟
介紹SPI的使用方法
i.MX8MP EQOS MAC_Ingress_Timestamp_Latency和MAC_Egress_Timestamp_Latency始終為0的原因?
示波器的使用方法(三):示波器的使用方法詳解
exynos 4412 電源管理芯片PMIC 的配置及使用方法

評論