国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的PCI/PCI-E可擴(kuò)展網(wǎng)絡(luò)分組處理系統(tǒng)設(shè)計(jì)

2020-07-09 05:52孫士勇
無線電通信技術(shù) 2020年4期
關(guān)鍵詞:狀態(tài)機(jī)以太網(wǎng)報(bào)文

孫士勇

(中國電子科技集團(tuán)公司第五十四研究所,河北 石家莊 050081)

0 引言

路由交換芯片與控制處理器之間的分組處理通道是影響路由交換系統(tǒng)[1]整體性能的關(guān)鍵因素之一。基于RC82540,WG82574等PCI/PCIE網(wǎng)絡(luò)控制器芯片實(shí)現(xiàn)分組處理通道是當(dāng)前中低端路由交換系統(tǒng)常用的解決方案,但由于可擴(kuò)展網(wǎng)絡(luò)端口數(shù)量少,且缺乏對分組解析查找處理、專用協(xié)議處理以及自定義功能擴(kuò)展的支持能力,無法滿足中高端或特定領(lǐng)域路由交換系統(tǒng)在端口擴(kuò)展、分組處理以及自定義功能擴(kuò)展等方面的應(yīng)用需求。而PCI/PCIE[2]通信處理器在芯片綜合效能、分組處理性能與實(shí)時(shí)性等方面達(dá)不到要求,PCI/PCIE網(wǎng)絡(luò)處理器芯片的尺寸偏大、功耗和成本過高,也都不是中高端或特定領(lǐng)域路由交換系統(tǒng)的分組處理通道的理想選擇。FPGA具有豐富的可編程邏輯資源、存儲資源以及IO互連資源,基于可編程硬件資源的分組處理方式天然具有性能高、實(shí)時(shí)強(qiáng)、靈活可擴(kuò)展等優(yōu)勢。為此,需要基于FPGA實(shí)現(xiàn)PCI/PCIE可擴(kuò)展分組處理系統(tǒng)[3-4],在路由交換芯片與控制處理器之間、路由交換系統(tǒng)與其他控制系統(tǒng)之間提供通用分組分組解析查找處理、強(qiáng)實(shí)時(shí)專用協(xié)議處理以及用戶自定義功能擴(kuò)展等能力的分組處理通道。

1 系統(tǒng)架構(gòu)設(shè)計(jì)

1.1 設(shè)計(jì)分析

在組成方面,可擴(kuò)展網(wǎng)絡(luò)分組處理系統(tǒng)應(yīng)包含PCI/PCIE接口、100/1 000 Mbps網(wǎng)絡(luò)接口、強(qiáng)實(shí)時(shí)專用協(xié)議處理、用戶可自定義擴(kuò)展以及通用網(wǎng)絡(luò)分組處理等功能模塊。其中,對于強(qiáng)實(shí)時(shí)專用協(xié)議處理、用戶可自定義擴(kuò)展和通用網(wǎng)絡(luò)分組處理三個(gè)功能模塊,其處理內(nèi)核本質(zhì)上都包括分組解析、分組查表、轉(zhuǎn)發(fā)決策、分組封裝及輸出調(diào)度等處理過程[5],不同之處是分組查表處理環(huán)節(jié)所用的查表關(guān)鍵字、查找表及查找結(jié)果。為了避免重復(fù)處理導(dǎo)致FPGA邏輯資源的浪費(fèi)和系統(tǒng)復(fù)雜性的提升,設(shè)計(jì)上考慮將這三個(gè)功能模塊合并形成統(tǒng)一的分組查找處理模塊。系統(tǒng)性能方面,對于整個(gè)處理系統(tǒng)不低于4 Gbps的綜合處理性能需求,由于1 000 M以太網(wǎng)接口時(shí)鐘為125 MHz,綜合考慮FPGA時(shí)序裕度、可編程IO互連資源、跨時(shí)鐘域問題以及系統(tǒng)設(shè)計(jì)復(fù)雜度等因素,可以選用來自全局時(shí)鐘引腳的125 MHz時(shí)鐘作為系統(tǒng)邏輯參考時(shí)鐘。在125 MHz系統(tǒng)參考時(shí)鐘條件下,如果系統(tǒng)總線寬度為64 bit,則系統(tǒng)分組處理性能理論可達(dá)8 Gbps。除去系統(tǒng)內(nèi)部處理會產(chǎn)生不高于25%的調(diào)度開銷和字節(jié)開銷,系統(tǒng)實(shí)際的分組處理性能會不低于6 Gbps,完全可以滿足4 Gbps的系統(tǒng)分組處理性能要求[6]。對于更高的分組處理性能需求,可以考慮擴(kuò)展系統(tǒng)總線寬度和提高系統(tǒng)參考時(shí)鐘頻率。

1.2 設(shè)計(jì)原理與系統(tǒng)組成

可擴(kuò)展分組處理系統(tǒng)基于一體化、可擴(kuò)展的架構(gòu)理念進(jìn)行設(shè)計(jì),將PCI/PCIE接口抽象并適配為網(wǎng)絡(luò)接口,會同系統(tǒng)所有的100/1 000 M網(wǎng)絡(luò)接口進(jìn)行統(tǒng)一編號、統(tǒng)一調(diào)度,通過復(fù)用模塊調(diào)度后形成統(tǒng)一的內(nèi)部封裝分組進(jìn)行解析、查表、轉(zhuǎn)發(fā)等處理,降低了系統(tǒng)復(fù)雜度和設(shè)計(jì)難度。與此同時(shí),采用可擴(kuò)展的復(fù)用和解復(fù)用模塊實(shí)現(xiàn)多端口的統(tǒng)一調(diào)度,既解決了接口的差異化問題,又實(shí)現(xiàn)了可多端口擴(kuò)展的靈活性。同時(shí),分組處理過程采用多級流水線處理[7],每級流水之間采用基于統(tǒng)一封裝的分組緩存進(jìn)行隔離,便于添加與刪除處理流水,實(shí)現(xiàn)功能的靈活擴(kuò)展。可擴(kuò)展分組處理系統(tǒng)組成如圖1所示。

圖1 可擴(kuò)展分組處理系統(tǒng)架構(gòu)與組成 Fig.1 Architecture and composition of scalable packet processing system

圖1主要包含網(wǎng)絡(luò)接口模塊、接口復(fù)用模塊、分組轉(zhuǎn)發(fā)查找處理模塊、接口解復(fù)用模塊和CPU維護(hù)配置接口模塊。其中,分組轉(zhuǎn)發(fā)查找處理模塊是系統(tǒng)的組成核心,主要完成分組解析、轉(zhuǎn)發(fā)查表、轉(zhuǎn)發(fā)決策、分組封裝以及流量限速等分組轉(zhuǎn)發(fā)查找核心處理過程,包括分組信元管理子模塊、分組緩存管理子模塊、分組解析與查找處理子模塊、通用分組處理子模塊、功能擴(kuò)展處理模塊、專用協(xié)議處理模塊、流量限速子模塊以及轉(zhuǎn)發(fā)查找表子模塊等。另外,CPU維護(hù)配置接口模塊主要用于完成系統(tǒng)內(nèi)部的寄存器、查找表等組成資源的配置和維護(hù)功能。

1.3 網(wǎng)絡(luò)分組基本收發(fā)過程

在可擴(kuò)展分組處理系統(tǒng)中,網(wǎng)絡(luò)分組的基本收發(fā)過程包括網(wǎng)絡(luò)接口幀接收、輸入調(diào)度與分組緩存、關(guān)鍵字提取、轉(zhuǎn)發(fā)查表、轉(zhuǎn)發(fā)決策與分組重封裝、流量限速、報(bào)文輸出調(diào)度、網(wǎng)絡(luò)接口幀發(fā)送等環(huán)節(jié)。具體過程及其對應(yīng)的功能模塊如圖2所示。

圖2 網(wǎng)絡(luò)分組報(bào)文的基本收發(fā)過程Fig.2 Basic receiving and sending process of network packet

在可擴(kuò)展分組處理系統(tǒng)對分組的轉(zhuǎn)發(fā)處理過程中,分組丟棄和流控機(jī)制需要特別關(guān)注:

① 分組丟棄。由于可擴(kuò)展分組處理系統(tǒng)內(nèi)部按流水線進(jìn)行分組處理,為了避免在報(bào)文處理上產(chǎn)生紊亂,在系統(tǒng)中設(shè)置了兩個(gè)分組報(bào)文丟棄點(diǎn):一個(gè)是在進(jìn)入分組重封裝時(shí)從緩存中讀出原分組后同意丟棄;另一個(gè)是在分組經(jīng)過流量限速模塊處理時(shí)的流量違約丟棄。

② 流控機(jī)制。由于本設(shè)計(jì)實(shí)現(xiàn)的是基于流水的分組處理過程,為了保證分組服務(wù)質(zhì)量和避免丟包,每個(gè)流水級之間都設(shè)有流控信號。當(dāng)后級處理不及時(shí),會通過流控信號反壓前級,最后流控反壓會傳遞至分組緩存和網(wǎng)絡(luò)接口緩存,直至反壓制端口產(chǎn)生PAUSE幀。

2 FPGA設(shè)計(jì)實(shí)現(xiàn)

2.1 網(wǎng)絡(luò)接口模塊

網(wǎng)絡(luò)接口模塊主要包括:接收模塊和發(fā)送模塊。

2.1.1 接收模塊

網(wǎng)絡(luò)接口接收模塊基本組成結(jié)構(gòu)如圖3所示。主要包含千兆以太網(wǎng)MAC(接收)、PCI/PCIE IP核(接收)以及接口接收緩存。其中,千兆以太網(wǎng)MAC(接收)由MAC幀接收控制狀態(tài)機(jī)、接收幀統(tǒng)計(jì)、幀CRC校驗(yàn)及廣播門限監(jiān)測等組成;PCI/PCIE IP核(接收)由PCI/PCIE接收控制狀態(tài)機(jī)、串并變換、接收幀統(tǒng)計(jì)及幀長檢測等組成;接口接收緩存由緩存控制狀態(tài)機(jī)和FIFO存儲單元組成。

圖3 接口接收模塊基本組成結(jié)構(gòu)Fig.3 Basic structure of the receiving module of the interface

網(wǎng)絡(luò)接口接收模塊的基本接收過程為:① 千兆以太網(wǎng)MAC接收來自GMII接口的8 bit并行數(shù)據(jù)流,由MAC幀接收控制狀態(tài)機(jī)控制完成幀接收和處理過程,主要包括幀同步、幀接收、接收幀CRC校驗(yàn)、接收幀數(shù)統(tǒng)計(jì)及幀長檢測等處理環(huán)節(jié)。根據(jù)CRC校驗(yàn)結(jié)果、幀長檢測結(jié)果對接收幀進(jìn)行丟棄或發(fā)送到接口接收緩存及錯(cuò)誤狀態(tài)統(tǒng)計(jì)等處理。② 接口緩存基于接收幀狀態(tài)指示,在緩存控制狀態(tài)機(jī)控制下進(jìn)行幀數(shù)據(jù)接收處理,同步進(jìn)行緩存狀態(tài)檢測并指示給千兆以太網(wǎng)MAC接收邏輯和接口復(fù)用模塊,以便它們進(jìn)行相應(yīng)的處理決策。PCI/PCIE接口的接收過程類似,區(qū)別在于PCI/PCIE接口接收需要進(jìn)行DMA處理,但不需要進(jìn)行CRC校驗(yàn)。

2.1.2 發(fā)送模塊

網(wǎng)絡(luò)接口發(fā)送模塊基本組成結(jié)構(gòu)如圖4所示,主要包含千兆以太網(wǎng)MAC(發(fā)送)、PCI/PCIE IP核(發(fā)送)以及接口發(fā)送緩存。其中,千兆以太網(wǎng)MAC(發(fā)送)由MAC幀發(fā)送控制狀態(tài)機(jī)、發(fā)送幀統(tǒng)計(jì)、幀CRC生成、流量控制等組成;PCI/PCIE IP核(發(fā)送)由PCI/PCIE發(fā)送控制狀態(tài)機(jī)、并串變換及發(fā)送幀統(tǒng)計(jì)等組成;接口發(fā)送緩存由緩存控制狀態(tài)機(jī)和FIFO存儲單元組成。

圖4 接口發(fā)送模塊的基本組成結(jié)構(gòu)Fig.4 Basic structure of the sending module of the interface

網(wǎng)絡(luò)接口發(fā)送模塊的基本發(fā)送過程為:① 接口緩存模塊在緩存控制狀態(tài)機(jī)控制下接收來自接口解復(fù)用模塊的幀數(shù)據(jù),同步生成緩存狀態(tài)指示分別提供給千兆以太網(wǎng)MAC發(fā)送邏輯和接口解復(fù)用模塊,支撐它們進(jìn)行相應(yīng)處理。② 千兆以太網(wǎng)MAC在MAC幀發(fā)送控制狀態(tài)機(jī)控制下完成幀發(fā)送處理,主要包括同步頭產(chǎn)生、幀發(fā)送、發(fā)送幀CRC生成、發(fā)送幀數(shù)統(tǒng)計(jì)及發(fā)送幀長檢測等處理環(huán)節(jié)。PCI/PCIE接口的接收過程類似,區(qū)別在于PCI/PCIE接口發(fā)送需要進(jìn)行DMA處理,但不需要進(jìn)行CRC生成處理。

此外,網(wǎng)絡(luò)接口模塊中的以太網(wǎng)MAC還需要完成半雙工信道的CSMA/CD算法、全雙工流量控制以及通過MIIM接口對以太網(wǎng)物理層芯片的管理控制等功能。

網(wǎng)絡(luò)接口模塊FPGA邏輯實(shí)現(xiàn)的關(guān)鍵點(diǎn)包括以太網(wǎng)幀接收/發(fā)送控制狀態(tài)機(jī)、幀接收/發(fā)送與幀緩存邏輯間的異步時(shí)鐘域處理以及接收/發(fā)送幀F(xiàn)IFO緩存讀寫控制三個(gè)方面。在實(shí)現(xiàn)時(shí),為了節(jié)省FPGA邏輯資源,幀統(tǒng)計(jì)只選取了RMON統(tǒng)計(jì)中的典型統(tǒng)計(jì)內(nèi)容。

2.2 接口復(fù)用/解復(fù)用模塊

接口復(fù)用模塊主要完成接收側(cè)所有接口的接收復(fù)用功能,核心組成是接口復(fù)用控制狀態(tài)機(jī),實(shí)現(xiàn)接收接口的輪詢調(diào)度、接收分組的信元拆分、分組處理信息生成,以及拆分信元與分組信息到下級緩存的發(fā)送控制等功能。接口解復(fù)用模塊主要完成向所有發(fā)送側(cè)接口的發(fā)送復(fù)用功能,核心組成是接口解復(fù)用控制狀態(tài)機(jī),實(shí)現(xiàn)發(fā)送接口的輪詢調(diào)度、發(fā)送分組重組與封裝,以及到分組處理模塊到接口發(fā)送幀緩存的發(fā)送控制、分組內(nèi)存的統(tǒng)一回收等功能。接口復(fù)用/解復(fù)用模塊的控制狀態(tài)機(jī)結(jié)構(gòu)如圖5所示。為了確保系統(tǒng)整體處理性能,同時(shí)節(jié)省FPGA邏輯資源,該部分FPGA邏輯采用125 MHz時(shí)鐘、64 bit數(shù)據(jù)總線,分組解析信息采用530 bit單周期傳遞。

圖5 接口復(fù)用/解復(fù)用模塊的控制狀態(tài)機(jī)結(jié)構(gòu)Fig.5 Control state machine structure of interface multiplexing/demultiplexing module

2.3 分組轉(zhuǎn)發(fā)查找處理模塊

分組轉(zhuǎn)發(fā)查找處理模塊是整個(gè)系統(tǒng)的組成核心,也是設(shè)計(jì)和實(shí)現(xiàn)難點(diǎn),其基本組成包含分組信元管理子模塊、分組緩存管理子模塊、分組解析與查找處理子模塊、通用分組處理子模塊、功能擴(kuò)展處理子模塊、專用協(xié)議處理子模塊、流量限速子模塊以及轉(zhuǎn)發(fā)查找子模塊等,如圖6所示。其中,功能擴(kuò)展處理子模塊用于提供高性能的網(wǎng)絡(luò)測量、網(wǎng)絡(luò)入侵檢測、網(wǎng)絡(luò)狀態(tài)感知等功能擴(kuò)展。專用協(xié)議處理子模塊主要用于提供微秒級系統(tǒng)運(yùn)行狀態(tài)即時(shí)通告,網(wǎng)絡(luò)級、設(shè)備級、單元級的毫秒級快速保護(hù)切換等專用協(xié)議功能。

2.3.1 分組解析與查找處理子模塊

分組解析與查找處理子模塊主要實(shí)現(xiàn)查表關(guān)鍵字解析與查表申請、結(jié)果控制等功能,包含分組解析與查找處理控制狀態(tài)機(jī)、通用分組FIFO、功能擴(kuò)展FIFO和專用協(xié)議FIFO。其基本處理過程為:分組解析與查找處理控制狀態(tài)機(jī)依據(jù)CPU配置信息從解析輸入數(shù)據(jù)中提取相應(yīng)的關(guān)鍵字,主要是MAC地址和IP地址。然后向轉(zhuǎn)發(fā)查找子模塊進(jìn)行轉(zhuǎn)發(fā)查表申請,系統(tǒng)采用雙Hash[8]查找表。如果查找匹配,則將獲取的QoS[9]、目的端口號和數(shù)據(jù)包控制信息存儲到通用分組FIFO、功能擴(kuò)展FIFO、專用協(xié)議FIFO中對應(yīng)的一個(gè)。如果查找不匹配,則依據(jù)預(yù)先配置的非匹配動作信息對數(shù)據(jù)包進(jìn)行相應(yīng)處理。對需要丟棄的報(bào)文設(shè)置丟棄標(biāo)志,輸出到解復(fù)用模塊進(jìn)行統(tǒng)一處理。

2.3.2 分組緩存管理子模塊

分組緩存管理[10]子模塊主要實(shí)現(xiàn)256 kbyte的分組數(shù)據(jù)緩存功能,包含存儲管理控制狀態(tài)機(jī)、分組信息緩存及管理信息緩存等。其基本處理過程為:在輸入側(cè),存儲管理控制狀態(tài)機(jī)接收接口復(fù)用模塊的分組數(shù)據(jù)寫申請,如果緩存允許,則控制分組數(shù)據(jù)寫入緩存。在輸出側(cè),存儲管理控制狀態(tài)機(jī)接收分組輸出子模塊的數(shù)據(jù)分組讀申請,讀出緩存數(shù)據(jù)并存入標(biāo)準(zhǔn)的256x64 bit FIFO。當(dāng)數(shù)據(jù)包長度大于一個(gè)信元長度時(shí),需要讀取分組信元管理子模塊中的信元鏈表獲取下一個(gè)信元位置,并在數(shù)據(jù)分組輸出完成后進(jìn)行信元標(biāo)識回收。

圖6 分組轉(zhuǎn)發(fā)查找處理模塊的基本組成結(jié)構(gòu)Fig.6 Basic structure of processing module for packet forwarding and searching

2.3.3 分組信元管理子模塊

分組信元管理子模塊主要實(shí)現(xiàn)空閑分組信元鏈表的管理以及信元鏈表申請與回收等功能。其基本處理過程為:① 初始化過程完成所有信元緩存到信元鏈表的鏈接。② 接收來自接口復(fù)用模塊的空閑信元申請,根據(jù)申請的信元數(shù)目,準(zhǔn)備一個(gè)空閑信元鏈表并返回頭指針。如果沒有足夠信元,則返回申請失敗。③ 信元鏈表另一端用于實(shí)現(xiàn)對分組緩存管理子模塊的訪問,當(dāng)讀或?qū)懛纸M數(shù)據(jù)包長度大于一個(gè)信元時(shí),用于獲取頭指針之外的指針值。④ 當(dāng)空閑信元數(shù)量達(dá)到CPU配置門限時(shí),輸出流控信號給網(wǎng)絡(luò)接口發(fā)送模塊作為流量控制[11]依據(jù)。

2.3.4 通用分組處理子模塊

通用分組處理子模塊主要實(shí)現(xiàn)通用發(fā)送分組的讀取控制與緩存標(biāo)識的回收操作。其基本處理過程為:根據(jù)分組解析與查找處理子模塊的分組數(shù)據(jù)的緩存標(biāo)識、丟棄標(biāo)志及分組長度等分組數(shù)據(jù)包信息,從分組緩存讀出原始報(bào)文。如果前級分組數(shù)據(jù)丟棄標(biāo)志有效,則需要進(jìn)行緩存標(biāo)識回收操作。

2.3.5 流量限速子模塊

流量限速[12]子模塊主要實(shí)現(xiàn)系統(tǒng)級、端口級、端口隊(duì)列級流量限速。其基本處理過程為:① 通過軟件配置系統(tǒng)級限速參數(shù),對整體流量進(jìn)行控制。對判斷為紅色的系統(tǒng)報(bào)文直接丟棄,對于黃色報(bào)文,若后級模塊半滿時(shí)丟棄,否則通過。② 通過軟件配置端口限速表,對各端口輸出流量進(jìn)行控制。對判斷為紅色的端口報(bào)文直接丟棄,對于黃色報(bào)文,若后級模塊半滿時(shí)丟棄,否則通過。③ 通過軟件配置QoS限速表,對各端口的各QoS級輸出流量進(jìn)行控制。該子模塊不進(jìn)行包丟棄,而是打上相應(yīng)顏色標(biāo)簽,由接口解復(fù)用模塊根據(jù)各隊(duì)列緩存狀態(tài)決定是否丟棄。

3 軟件設(shè)計(jì)實(shí)現(xiàn)

3.1 設(shè)計(jì)實(shí)現(xiàn)框架

與FPGA邏輯系統(tǒng)對應(yīng)的軟件系統(tǒng)是基于底層硬件的多層級軟件系統(tǒng),基本架構(gòu)組成如圖7所示,主要分為驅(qū)動層、捕獲層、協(xié)議層和應(yīng)用層。

驅(qū)動層軟件[13]是組成核心,也是設(shè)計(jì)重點(diǎn),主要包括設(shè)備注冊和寄存器映射、數(shù)據(jù)包接收以及數(shù)據(jù)包發(fā)送等幾個(gè)部分。設(shè)計(jì)時(shí),整個(gè)FPGA邏輯系統(tǒng)可以被看作一個(gè)基于PCI/PCIE總線接口的網(wǎng)絡(luò)接口單元,具有一個(gè)PCI/PCIE設(shè)備和多個(gè)以太網(wǎng)接口。從操作系統(tǒng)角度可以看成一個(gè)邏輯統(tǒng)一的以太網(wǎng)接口,每個(gè)物理接口均可映射為該邏輯接口下的虛擬接口。每個(gè)虛擬接口都具有獨(dú)立IP地址,但需要共享一個(gè)MAC地址。由于分組處理模塊要求不同物理以太網(wǎng)接口必須具有不同MAC地址,在接收方向上,數(shù)據(jù)包需要由驅(qū)動程序更換為同一個(gè)MAC地址后再發(fā)送給上層模塊。發(fā)送方向上,驅(qū)動程序根據(jù)數(shù)據(jù)包中包含的路徑信息將數(shù)據(jù)包中的源MAC地址替換為相應(yīng)的物理接口MAC地址。另外,在以太網(wǎng)報(bào)文類型字段對數(shù)據(jù)包類型進(jìn)行自定義定制,如0x9A9B,接收時(shí)標(biāo)準(zhǔn)類型送到IP協(xié)議棧處理,自定義定制報(bào)文由鉤子函數(shù)抓取后分發(fā)到定制協(xié)議/應(yīng)用處理軟件進(jìn)行相應(yīng)處理,發(fā)送時(shí)由驅(qū)動軟件模塊發(fā)送到指定網(wǎng)絡(luò)接口。

圖7 FPGA邏輯系統(tǒng)的軟件基本設(shè)計(jì)與實(shí)現(xiàn)框架Fig.7 Basic software design and implementation framework of FPGA logic system

3.2 報(bào)文收發(fā)原理

系統(tǒng)上電時(shí),固件初始化PCI設(shè)備的配置寄存器(組),然后操作系統(tǒng)內(nèi)核枚舉PCI設(shè)備。通過讀寫PCI設(shè)備配置寄存器,自動分配存貯器地址空間和PCI設(shè)備地址空間,在Linux內(nèi)核中的pci_driver結(jié)構(gòu)進(jìn)行描述,這樣驅(qū)動程序就能安全訪問FPGA邏輯系統(tǒng)的相關(guān)硬件資源。

接收方向,驅(qū)動程序?qū)Χ丝诮邮丈蟻淼臄?shù)據(jù)包更換MAC地址,然后寫入驅(qū)動程序準(zhǔn)備好的內(nèi)核緩沖區(qū)sk_buff。標(biāo)準(zhǔn)IP協(xié)議報(bào)文發(fā)送到IP網(wǎng)絡(luò)協(xié)議棧,其他報(bào)文(自定義類型的報(bào)文)由鉤子函數(shù)發(fā)送到定制協(xié)議棧進(jìn)行處理。發(fā)送方向,驅(qū)動程序獲得來自系統(tǒng)上層的數(shù)據(jù)報(bào)文,根據(jù)路徑信息確定數(shù)據(jù)包的輸出端口,在完成QoS標(biāo)記和MAC地址更換后處理輸出。

FPGA邏輯系統(tǒng)的相關(guān)規(guī)則由CPU通過控制通道下發(fā)到FPGA中,控制通道由字符設(shè)備驅(qū)動程序?qū)崿F(xiàn),數(shù)據(jù)讀寫通過ioctl()實(shí)現(xiàn),對應(yīng)用層提供封裝完整的APIs函數(shù)。另外,從應(yīng)用軟件上看,由于系統(tǒng)被當(dāng)作一個(gè)統(tǒng)一的PCI/PCIE設(shè)備,因而只有一個(gè)描述符隊(duì)列和一個(gè)PCI/PCIE中斷。

4 仿真驗(yàn)證

4.1 仿真方法與過程

本設(shè)計(jì)通過激勵產(chǎn)生模塊產(chǎn)生信號,然后通過網(wǎng)絡(luò)接口輸入FPGA邏輯系統(tǒng)模塊,同時(shí)寫入仿真驗(yàn)證系統(tǒng)緩存。通過將在仿真過程中由網(wǎng)絡(luò)接口輸出數(shù)據(jù)的有效信號作為讀控制信號,讀出仿真驗(yàn)證系統(tǒng)緩存數(shù)據(jù),并與網(wǎng)絡(luò)接口輸出數(shù)據(jù)內(nèi)容進(jìn)行比較和統(tǒng)計(jì)。

仿真系統(tǒng)基本數(shù)據(jù)流過程為:① 數(shù)據(jù)包從網(wǎng)絡(luò)接口接收模塊接收;② 接口復(fù)用模塊公平輪詢調(diào)度后存入分組信元管理子模塊、分組緩存管理子模塊;③ 分組解析與查找處理子模塊、轉(zhuǎn)發(fā)查找子模塊完成二層和三層交換轉(zhuǎn)發(fā)查找;④ 通用分組處理子模塊根據(jù)交換轉(zhuǎn)發(fā)查找結(jié)果從分組緩存管理子模塊取出數(shù)據(jù);⑤ 接口解復(fù)用模塊從通用分組處理子模塊讀出數(shù)據(jù)并存入相應(yīng)以太網(wǎng)接口、PCI/PCIE的相應(yīng)緩存中;⑥ 由以太網(wǎng)接口、PCI/PCIE接口輸出的數(shù)據(jù)報(bào)文又重新發(fā)回仿真指定的以太網(wǎng)接口進(jìn)行仿真比較和分析處理。

4.2 仿真驗(yàn)證結(jié)果

設(shè)計(jì)中,仿真源端采用4路GMII接口并行輸入數(shù)據(jù),每一路數(shù)據(jù)包長度從64~1 518 Byte遞增,發(fā)包間隔采用最大以太網(wǎng)接口速率。在決定網(wǎng)絡(luò)分組處理系統(tǒng)性能的轉(zhuǎn)發(fā)查表階段查看仿真時(shí)序波形,如圖8所示,可以看出該階段的時(shí)序波形仍存在余量,表明系統(tǒng)分組處理性能超過4 Gbps,符合設(shè)計(jì)預(yù)期。

圖8 分組轉(zhuǎn)發(fā)查表仿真波形Fig.8 Simulation waveform of packet forwarding lookup

5 結(jié)束語

本文基于FPGA,采用一體化、可擴(kuò)展架構(gòu)理念設(shè)計(jì)實(shí)現(xiàn)的可擴(kuò)展網(wǎng)絡(luò)分組處理系統(tǒng),具有分組處理性能高、實(shí)時(shí)性強(qiáng)、系統(tǒng)功能和性能可靈活擴(kuò)展等特點(diǎn),是中高端或特定領(lǐng)域路由交換系統(tǒng)中路由交換芯片與控制處理器間的分組處理通道的理想解決方案。其一方面有效擴(kuò)展該通道的分組處理功能,提高分組處理性能;另一方面可通過自定義功能擴(kuò)展彌補(bǔ)路由交換芯片面對特定應(yīng)用需求時(shí)的功能缺失。本設(shè)計(jì)所形成的可擴(kuò)展網(wǎng)絡(luò)分組處理系統(tǒng)及其嵌入式仿真驗(yàn)證系統(tǒng),可為未來基于FPGA的各種通用和專用網(wǎng)絡(luò)交換轉(zhuǎn)發(fā)系統(tǒng)研發(fā)提供有益的支撐和指導(dǎo)。

猜你喜歡
狀態(tài)機(jī)以太網(wǎng)報(bào)文
基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
FPGA狀態(tài)機(jī)綜合可靠性探究 ①
低軌星座短報(bào)文通信中的擴(kuò)頻信號二維快捕優(yōu)化與實(shí)現(xiàn)
基于有限狀態(tài)機(jī)的交會對接飛行任務(wù)規(guī)劃方法
淺析反駁類報(bào)文要點(diǎn)
基于Spring StateMachine的有限狀態(tài)機(jī)應(yīng)用研究
三大因素驅(qū)動創(chuàng)新提速以太網(wǎng)快步邁入“靈活”時(shí)代
三大因素驅(qū)動創(chuàng)新提速 以太網(wǎng)快步邁入“靈活”時(shí)代
談實(shí)時(shí)以太網(wǎng)EtherCAT技術(shù)在變電站自動化中的應(yīng)用
1588v2中的PTP報(bào)文格式及應(yīng)用