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標(biāo)記的內(nèi)容)
5.重寫包(插入/替換MACsec標(biāo)簽,刪除專有報頭)
6.加密數(shù)據(jù)包(使用合適的密鑰加密)
7.驗證數(shù)據(jù)包(使用適當(dāng)?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è)置,專有頭將從包的前面刪除。如果兩個位都為零,數(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字段,以及每個字段的使能位。該表還包含一個默認匹配位,因此搜索到具有默認設(shè)置的條目將始終匹配該條目。
查找表的輸出是一組動作(刪除、認證、加密、刪除頭,請參閱出口查找表動作位Egress Look Up Table),以及一個上下文條目的索引,如果要對數(shù)據(jù)包進行身份驗證或加密,將使用該索引。丟棄數(shù)據(jù)包與認證/加密動作是互斥的。
數(shù)據(jù)包VLAN取自數(shù)據(jù)包中出現(xiàn)的第一個802.1q標(biāo)簽(如果出現(xiàn)),如果啟用了parse_macsec,則取自MACsec標(biāo)簽之后的第一個802.1q標(biāo)簽。如果解析器沒有找到1q標(biāo)記,將使用缺省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ù)器達到零值被認為是一個錯誤條件,并且將設(shè)置pn_full中斷。當(dāng)任何一個PN計數(shù)器超過3/4滿閾值時,就會設(shè)置第二個中斷。
配置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,表項應(yīng)該從最低地址寫到最高地址(word0àword3)。完成此操作后,步驟#5和#6可以結(jié)合使用,因為查找項中的啟用位位于寫入的最后一個單詞中。
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5419瀏覽量
171608 -
VLAN
+關(guān)注
關(guān)注
1文章
277瀏覽量
35638 -
數(shù)據(jù)包
+關(guān)注
關(guān)注
0文章
260瀏覽量
24385
原文標(biāo)題:88E1548P MACSec使用(2)--Egress Pipe
文章出處:【微信號:數(shù)字芯片設(shè)計工程師,微信公眾號:數(shù)字芯片設(shè)計工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論