PA

About the manual

數據包加速器(PA)是網絡協處理器(NETCP)外設的主要組件之一。該PA與安全加速器(SA)和千兆位以太網交換機子系統一起形成網絡處理解決方案。NETCP中PA的目的是執行數據包處理操作,例如數據包報頭分類,校驗和生成和多隊列路由。
 

介紹

1.1外圍設備的用途

數據包加速器(PA)是網絡協處理器(NETCP)外設的主要組件之一。該PA與安全加速器(SA)和千兆位以太網交換機子系統一起形成網絡處理解決方案。NETCP中PA的目的是執行數據包處理操作,例如數據包報頭分類,校驗和生成和多隊列路由。

1.2特點

NETCP具有以下硬件功能:

•提供高性能的數據包DMA控制器

    – 9個發送通道

    – 24個接收通道

•提供用於數據包查找和修改操作的數據包加速器

    –包含6個獨立的打包數據結構處理器(PDSP)

    –提供3個第一遍查找表(LUT1)加速器

         ›支持多達64個條目

         ›所有查找操作均以線速發生

         ›基於字段匹配評分的查找結果(基於RFC4301)

–提供1個第二遍查找表加速器

         ›支持多達8K條目

         ›所有查找操作以線速發生

         ›在進行添加或刪除操作時可能會發生查找

1.3功能框圖

圖1-1顯示了數據包加速器(PA)的功能框圖。PA提供以下硬件模塊:

•第2層分類引擎

•(2)第3層分類引擎

•第4層分類引擎

•(2)修改/多路由引擎

•數據包ID管理器

•PA統計模塊

Architecture

2.1時鐘控制

數據包加速器(PA)具有一個時鐘,它從網絡協處理器(NETCP)接收。該時鐘用於操作所有的PA邏輯,以及通用的NetCP邏輯,例如數據包DMA控制器和數據包流交換機。因此,在使用安全加速器(SA)或千兆位以太網(GbE)交換機時,還必須啓用PA時鐘域。爲了降低功耗,默認情況下禁用此時鐘。因此,在使用PA之前必須啓用此時鐘。有關此時鐘的更多信息,包括工作頻率,請參閱《 KeyStone設備用戶網絡協處理器(NETCP)用戶指南》和設備特定的數據手冊。有關PA的電源管理的更多信息,請參閱第2-6頁的第2.10節“電源管理”。

2.2 Packet Accelerator發送隊列接口

從主機將數據包發送到數據包加速器(PA)時,必須通過多核導航器隊列接口發送數據包。有6個硬件TX隊列,用於將數據包發送到PA進行處理,每個隊列直接映射到PA中的特定引擎。當描述符(帶有鏈接數據包)被推入TX隊列之一時,PA數據包DMA自動將數據包傳輸到PA中的特定引擎。表2-1中顯示了隊列和PA硬件處理引擎之間的映射。

有關數據包DMA和隊列的更多信息,請參閱《多核導航器用戶指南》。

2.3使用底層驅動程序對數據包加速器進行編程

爲了通過抽象許多硬件細節來簡化對數據包加速器(PA)進行編程的任務,已生成了與PA一起使用的低級驅動程序(LLD)軟件包。PA LLD隨附的固件映像必須在使用PA之前加載到PDSP。由於固件和PA LLD之間的相互依賴性,所有用戶都必須使用PA LLD。不使用PA LLD將導致不確定的行爲。PA LLD提供了一組API,可以將其分爲以下3類:

•系統API-爲PA提供基本的系統功能

•配置API-主要用於配置PA

•實用功能-格式命令供PA使用

表2-2中簡要描述了PA LLD API。偶爾會添加和更改PA LLD API,因此,請參閱PA LLD文檔以獲取有關PA LLD API的最完整和最新信息。

1-

2.4 L2分類引擎架構

本節討論L2分類引擎的體系結構。L2分類引擎主要用於對具有MAC或其他自定義L2標頭的數據包進行分類。L2分類引擎包括一個帶有隨附固件的PDSP,一個查找表(LUT1)和一個計時器,PDSP可以將它們用於各種計時任務。在PDSP上運行的固件映像由PA LLD提供(不支持用戶編寫的固件),並且在嘗試使用PA之前必須將其下載到PDSP指令RAM中。提供Pa_downloadImage API可幫助完成此任務。PDSP固件通過向LUT1模塊提交查找請求來對數據包進行分類,並且LUT1根據存儲在其查找表中的條目的內容返回查找結果。根據LUT1模塊的結果,PDSP會將數據包定向到下一個目的地,如果與任何LUT1條目都不匹配,則將其丟棄。L2分類引擎LUT1最多可以存儲64個條目。LUT1不包含寄存器接口,因此PDSP必須通過配置數據包添加和刪除條目。可以通過隊列640將配置和數據包發送到L2分類引擎。數據包也可以從其他位置(例如,千兆位以太網交換機)通過數據包流式交換機到達。

2.5 L3分類引擎架構

本節討論L3分類引擎的體系結構。該PA包含2個L3分類引擎。L3分類引擎0主要用於對具有IP或其他自定義L3標頭的數據包進行分類。L3分類引擎1主要用於對IPsec隧道中的內部IP標頭進行分類。L3分類引擎包括一個帶有隨附固件的PDSP,一個查找表(LUT1)和一個計時器,PDSP可以將它們用於各種計時任務。在PDSP上運行的固件映像由PA LLD提供(不支持用戶編寫的固件),並且在嘗試使用PA之前必須將其下載到PDSP指令RAM中。提供Pa_downloadImage API可幫助完成此任務。PDSP固件通過向LUT1模塊提交查找請求來對數據包進行分類,並且LUT1根據存儲在其查找表中的條目的內容返回查找結果。根據LUT1模塊的結果,PDSP會將數據包定向到下一個目的地,如果與任何LUT1條目都不匹配,則將其丟棄。L3分類引擎LUT1最多可以存儲64個條目。LUT1不包含寄存器接口,因此PDSP必須通過配置數據包添加和刪除條目。可以通過隊列641將配置和數據包發送到L3分類引擎0,並通過隊列642將數據包和數據分組發送到L3分類引擎1。數據分組還可以通過分組流交換機從其他位置(例如L2分類引擎)到達。

2.6 L4分類引擎架構

本節討論L4分類引擎的體系結構。L4分類引擎主要用於對具有UDP,TCP或其他自定義L4標頭(例如GTPU)的數據包進行分類。L4分類引擎包括一個帶有隨附固件的PDSP,一個查找表(LUT2)和一個計時器,PDSP可以將它們用於各種計時任務。在PDSP上運行的固件映像由PA LLD提供(不支持用戶編寫的固件),並且在嘗試使用PA之前必須將其下載到PDSP指令RAM中。提供Pa_downloadImage API可幫助完成此任務。PDSP固件通過向LUT2模塊提交查找請求來對數據包進行分類,並且LUT2根據存儲在其查找表中的條目的內容返回查找結果。根據LUT2模塊的結果,PDSP將把數據包定向到下一個目的地,例如,將數據包DMA傳遞給主機,或者如果它與任何LUT2條目都不匹配,則它可以丟棄該數據包。L4分類引擎LUT2最多可以存儲8192個條目。儘管LUT2不包含寄存器接口,但不支持通過寄存器接口添加條目。PDSP必須通過配置數據包添加和刪除所有條目。配置和數據包可以通過隊列643發送到L4分類引擎。數據包也可以通過數據包流交換機從其他位置(例如L3分類引擎)到達。

2.7修改/多路由引擎架構

本節討論修改/多路由引擎的體系結構。PA包含2個修改/多路由引擎,用於各種任務,例如生成CRC校驗和,多路由數據包,提供PA統計數據以及許多其他任務。這兩個修改/多路由引擎均包含一個帶有隨附固件的PDSP,以及一個可由PDSP用於各種定時任務的計時器。在PDSP上運行的固件映像由PA LLD提供(不支持用戶編寫的固件),並且在嘗試使用PA之前必須將其下載到PDSP指令RAM中。提供Pa_downloadImage API可幫助完成此任務。可以通過隊列644和隊列645將數據包發送到修改和多路由引擎。PALLD將確定是將數據包定向到修改/多路由引擎0還是修改/多路由引擎1,並將此信息傳遞回去。API。

2.8將條目添加到分類引擎

本節將討論將條目添加到分類引擎。之前,分類引擎可用於數據包分類,輸入必須加入到分類引擎的查找表。條目是可配置的,並通過將配置數據包發送到所需的配置引擎進行註冊。必須使用PA LLD生成所有配置數據包,其中包含幾個用於添加條目的API(有關更多信息,請參閱表2-1或PA LLD文檔)。PA還提供了在分類引擎之間鏈接條目的功能。這樣就可以指定L2 / L3 / L4地址的特定組合。例如,可以將L4分類引擎中的UDP地址鏈接到L3分類引擎中的IP地址,然後將其鏈接到L2分類引擎中的MAC地址。所述PA LLD提供了許多代碼示例,將條目添加到所述查找表,但高級概述在過程2-1提供。

過程2-1向分類引擎添加條目

1配置分類引擎用來對數據包進行分類的標頭字段

2配置分類引擎將在分類後用於路由數據包的路由信息

​​3(可選)配置鏈接到先前分類引擎中的條目

4使用PA LLD生成配置包(例如Pa_addIp)

5將配置包鏈接到描述符以準備將要發送到PA的包

6設置要通信的協議特定信息字到分類引擎,即這是一個配置包。

7可選地設置描述符軟件信息字。

8將打包的配置推送到所需分類引擎的傳輸隊列中(此信息由生成配置包的PA LLD提供)

9PA分類引擎將發送配置響應數據包,以指示是否條目已成功添加到分類引擎。用戶可以等待響應繼續,或者可以繼續其他任務,直到配置響應到達。

10檢查條目是否已成功添加到分類引擎,並通過使用Pa_forwardResult API允許PA LLD檢查響應數據包,將其註冊到PA LLD。

2.9 DMA事件支持

數據包加速器(PA)的所有DMA事件都通過網絡協處理器(NETCP)中的數據包流交換機和數據包DMA控制器處理。有關數據包流交換機的更多信息,請參見KeyStone設備用戶網絡協處理器(NETCP)。有關和數據包DMA控制器的詳細信息,請參閱《 KeyStone設備的網絡協處理器(NETCP)用戶指南》或《 KeyStone設備的多核導航器用戶指南》。

2.10電源管理

數據包加速器(PA)的電源通過網絡協處理器(NETCP)的電源域以及通過禁用操作PA邏輯的時鐘進行管理。PA與NETCP中的其他模塊共享電源域,因此不能獨立於NETCP斷電。PA的時鐘默認情況下處於禁用狀態,並且可以獨立於NETCP中的其他模塊進行控制。有關PA的電源管理的更多信息,請參閱《 KeyStone設備的網絡協處理器(NETCP)用戶指南》或設備特定的數據手冊。

數據流示例


3.1概述

以下各節介紹了數據包通過數據包加速器(PA)和網絡協處理器(NETCP)中的硬件的流程示例。由於PA是高度可配置的,因此數據流取決於PA的設置方式。本節涵蓋以下示例:

•接收分類示例

•發送校驗和生成示例

3.2接收分類示例

以下部分涵蓋了PA中非加密數據包的接收數據包路由的示例。該數據包源自千兆以太網(GbE)交換子系統,並將顯示一個將數據包通過PA路由到主機的示例。

此示例假定設置了L2,L3和L4分類引擎以匹配每個標頭的源地址和目標地址,並且到達的數據包具有MAC,IPv4和UDP標頭。
1. SGMII0從電線接收數據包。
2.數據包被路由到千兆以太網交換機的端口1中。
3.數據包從GbE交換機的端口0路由出去,並傳輸到PA L2分類引擎。PA L2分類引擎根據L2分類引擎查找表中的條目匹配MAC地址和以太類型。
4.數據包被路由到PA L3分類0引擎,其中L3分類引擎0根據L3分類引擎0查找表中的條目匹配IPv4地址。
5.數據包被路由到PA L4分類引擎,其中L4分類引擎根據L4分類引擎查找表中的條目匹配數據包中的UDP地址。
6. NETCP接收數據包DMA使用配置的接收流從空閒描述符隊列中彈出一個描述符,並用數據包數據填充鏈接的數據緩衝區。
7.數據傳輸完成後,NETCP接收數據包DMA將描述符推入目標隊列。


3.3發送校驗和生成示例

以下部分涵蓋了PA中非加密數據包的發送數據包路由的示例。這顯示了將發送數據包通過PA路由到千兆以太網(GbE)交換機子系統的一個示例。數據包來自主機,在通過網絡發送出去之前,將被髮送到修改/多路由引擎以進行UDP校驗和。

此示例假定數據包具有MAC,IPv4和UDP標頭,並顯示了用於生成UDP校驗和的修改/多路由引擎0。
1.主機處理器生成一個數據包,並將其推入傳輸隊列644,以進行修改/多路由引擎0。
2. NETCP傳輸數據包DMA從傳輸隊列中彈出描述符,並傳輸數據包數據以修改/多路由引擎0。
3.傳輸完成後,NETCP發送數據包DMA將發送描述符推入發送完成隊列。當PA修改/多路由引擎0收到數據包時,它將計算L4校驗和並將其插入數據包。
4.修改/多路由引擎將數據包傳輸到千兆以太網交換機的端口0。
5.千兆位以太網交換機將數據包從端口1傳輸到SGMII0。
6. SGMII0通過有線傳輸數據包。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章