陳一驕,盧澤新,孫志剛,李韜,呂高鋒
(國防科學技術大學 計算機學院,湖南 長沙 410073)
信息網絡技術及應用的迅猛發展對網絡路由交換設備(路由器等)提出了巨大挑戰,層出不窮的網絡業務需求以及網絡帶寬和鏈路速率的飛速增長要求新型網絡路由交換設備必須能夠提供高度的可編程性和適應性,以支持大量多樣化用戶業務的快速部署和高效實現。然而,傳統路由交換設備體系結構具有剛性和封閉性特點,對于新型業務的部署通常僅能依賴于設備整體升級和更新換代,即使是可行的升級和擴展也只能由原提供商實施,無法充分實現開放和競爭,網絡運營商的投資無法得到有效保護。
此外,隨著互聯網規模的膨脹及業務模式的演變,對網絡路由交換設備的功能需求也在不斷演化,網絡路由交換設備不應局限于僅提供基本的分組交換能力,而應考慮在數據傳輸路徑上提供較為豐富的功能支撐。如何在網絡設備上通過擴展計算、存儲等資源,并通過提供開放的標準編程接口(API)有效支持網絡設備新的功能原語實現已成為目前的研究熱點。
實際上,網絡路由交換設備的功能具有時空特性,即路由器的功能隨著時間和空間的變化而變化。如圖1所示,當路由器在T1時刻部署在A點(如邊緣接入網絡)和B點(如匯聚網絡)時需要的功能不同。同樣在B點,當時間變化到T2時,路由器的功能集合也可能變化。例如T1時刻路由器需要對網絡中爆發的蠕蟲病毒進行監測和過濾,而在 T2時刻蠕蟲病毒平息后,并不需要此項功能。同樣,在T3時刻路由器又部署到A點時,其需要的功能又有可能發生變化。

圖1 路由交換設備功能時空特性
基于以上需求和觀察,新型可重構路由交換(即可重構路由器)平臺[1]應運而生,在平臺化支撐的構件化處理技術基礎上,通過在平臺、組件和構件3個層次提供開放可重構能力,可有效支持以組合、升級以及替換等方式實現系統功能和性能的演進和擴展??芍貥嬄酚善骺筛鶕粩嘧兓墓δ苄枨髣討B加載不同處理構件,不但可以滿足各種新出現的互聯網處理需求,如視頻感知的處理,而且可以降低設備功耗,延長使用周期和減少電子垃圾,更加綠色節能[2]。
可重構路由器的設計基于控制與數據平面分離思想,由路由轉發平面負責完成數據報文的高速查表、緩沖、交換以及調度等功能,而管理控制平面則主要負責路由計算、設備的管理和配置等功能。
可重構路由器設計與實現中很多開放的問題有待研究[3]。本文聚焦可重構路由器的數據轉發平面,著重研究承載各種報文處理任務的轉發引擎如何有效支持包括常規轉發處理、新的安全、流量管理等業務的重構實現,力圖在保證報文處理性能的前提下,通過優化提升可重構路由器數據轉發平面的適應性,支撐報文處理業務及網絡協議的快速升級、部署及驗證。
本文著重研究支撐可重構路由器數據平面處理的可重構報文轉發引擎,主要貢獻包括:在提出構件化報文轉發引擎重構模型基礎上,通過采用Pass-Through模式實現可重構FPGA與網絡處理器的有機結合,為程序/電路構件的映射實現提供了優化的構件運行環境??芍貥媹笪霓D發引擎可以靈活實現網絡報文處理性能優化,實現多樣化程序/電路構件的快速映射與部署,支持多種類型網絡接口接入,并可為交換網絡的擴展與升級提供有效支撐。
隨著網絡技術的不斷發展,高性能路由器的處理能力和流量也不斷提升。然而,商用路由器系統針對性能提升的特定優化卻在一定程度上限制了對新型協議以及服務的有效支撐。另一方面,商用路由器系統的封閉性也束縛了第三方軟件廠商及增值服務商新業務應用的開發動力。
D.C.LEE等[4]在文獻中提出可重構路由器的概念,指出承載報文處理業務的路由器能夠在保證處理性能的前提下,具有適應不斷變化的網絡通信標準和協議的能力。力圖能夠提高網絡報文處理性能,能夠更好地適應流量的動態變化。
然而,可重構技術的研究主要集中在可重構計算上,針對網絡和路由器的可重構技術研究很少[1]。
在實現方式上,可重構路由器系統通常采用通用 CPU、FPGA以及網絡處理器(NP, network processor)等具有可重構能力的技術構建。
基于通用CPU實現的路由器又稱軟件路由器,具有高度可編程性和靈活性,可以提供靈活的業務可重構能力。例如,Click[5]是美國麻省理工大學提出的一種由細粒度構件組成的軟件路由器,其設計目標是使路由器軟件更加靈活并且易于配置和管理。美國華盛頓大學和瑞士蘇黎世聯邦理工學院提出了一種Routers Plugins[6],用于在報文分類器匹配特定流時執行,分類器可以安裝在任何的“門”間,然而這些“門”在IP報文處理路徑上是固定的,無法有效更新和控制路徑。PacketShader[7]利用 GPU加速軟件路由器報文處理過程,通過應用程序(庫程序)控制硬件報文轉發過程,可以達到每秒數百萬報文的處理速度。然而,這種報文批處理方式也會引入較高的報文處理延遲。
FPGA技術具有可編程、可擦除、重復使用等特點,可以在不改變外圍電路的情況下,通過用戶編程實現不同功能。文獻[8]中提出了一個基于流的可重構路由器原型結構,并基于FPGA實現了可重構硬件處理部件。華盛頓大學可重構研究小組則提出了基于 FPX(field-programmable port extender)[9]實現的路由器動態可重構解決方案,其目的是充分利用可重構硬件的高性能和靈活性,開發新的網絡應用。斯坦福大學的研究人員則利用網絡教學開發平臺NetFPGA[10]實現了一個參考可重構路由器,作為課程教學與科研實驗的參考設計。SwitchBlade[11]基于FPGA預置豐富的報文處理功能集合及虛擬數據平面處理,以增強新型網絡技術的快速開發和部署能力。然而,完全基于 FPGA的設計則受限于FPGA容量和處理能力,更適用于原型系統驗證以及網絡實驗系統構建等方面。
網絡處理器是目前構建商用路由器系統采用最廣泛的器件,其試圖將精簡指令集處理器的低成本、靈活性以及ASIC專用網絡處理芯片的高性能有效結合,滿足網絡設備在硬件加速和軟件可編程兩方面的設計需求。早期,主流網絡處理器體系結構通常采用應用特定指令集處理器 ASIP[12]方式實現,針對網絡任務優化設計的指令集有利于網絡業務處理能力的有效提升。然而,ASIP方式通常要求開發人員使用低層的微碼進行編程和優化,要求程序員對網絡處理器硬件體系結構有較為深入的了解,對開發人員要求較高。
基于高性能通用多核的網絡處理器[13,14]作為通用微處理器技術在網絡處理領域的延伸,因其通用指令集體系結構帶來強大的可編程性和易于使用的設計開發環境近期得到更為廣泛地關注。該體系結構大幅降低了網絡處理器應用程序設計門檻,卻在一定程度上阻礙了系統性能調優。為有效提升網絡報文處理性能,基于高性能通用多核的網絡處理器通常集成多個硬件加速器,用于加速網絡特定業務處理。然而,這種固化的硬件加速器不具備重構能力,難以針對可重構路由器報文處理功能需求演化提供有效支撐。
基于上述相關研究,可重構路由器的設計,尤其是數據轉發平面,面臨著性能與靈活性(可重構能力)的兩難選擇。一方面,可重構能力的提升往往會以降低報文處理性能為代價;另一方面,為獲得高性能報文轉發能力則通常必須對路由器系統進行特定優化設計,而調優過程則意味著路由器功能的固化及靈活性的降低。
針對可重構路由器在性能和靈活性方面的兩難問題,本文在分析路由器報文轉發處理工作特點的基礎上,提出一種新型異構報文轉發引擎構件重構模型。通過將不同業務功能類型優化映射到報文轉發引擎的不同處理構件,可以在保證報文處理性能的前提下,有效支撐可重構路由器系統服務及業務的承載重構能力。
通用路由器報文轉發平面處理功能主要由程序功能和電路功能構成。程序功能(又稱軟件功能)指依賴于處理器指令集實現的邏輯功能,以軟件代碼形式呈現,適合于控制流較為復雜的非線性任務處理,通常難以達到較高的處理性能。
電路功能指依賴于硬件部件(ASIC加速芯片、硬件加速器、FGPA邏輯等)實現的邏輯功能(如CRC校驗、加解密處理等),這些邏輯功能對處理性能要求較高,較適于線性任務的并行處理,從而可以高效利用硬件在并發處理資源方面的優勢實現報文處理性能加速。
可重構路由器路由轉發平面功能實現同樣依賴于多種程序功能與電路功能的協同,但在針對業務時空性的可重構能力支撐方面提出了更高要求。
針對上述需求,本文提出了一種報文轉發引擎重構模型,該模型通過程序/電路構件到構件運行環境的按需映射可有效支撐網絡業務應用的演化部署。
如圖2所示,網絡業務應用通常由一組較小的“功能應用”即任務構成,例如報文分類、IP轉發等,這些處理任務可以采用任務圖形式表示,圖中節點表示報文處理任務,邊表示任務間的數據控制通道。
任務圖中各任務可由不同構件實現,構件可以有多種實現實例,例如輸出調度構件,可以有公平隊列、優先級調度和先進先出等多種調度構件實例。構件庫用于存儲多種按標準接口開發的電路及程序構件實例,需要注意的是,同一構件可以有一個或多個電路或程序構件實例。為打破傳統路由平臺封閉性束縛,可重構路由器為程序/電路構件制定了相應的標準化接口,不同構件實例只需滿足標準化接口要求,即可納入構件庫管理,從而有效支持第三方用戶程序/電路構件的動態加載、安裝、升級及卸載功能。

圖2 報文轉發引擎構件重構模型
業務構件選擇用于根據系統功能性能需求及約束,確定任務圖中各節點對應的電路/程序構件實例。構件運行環境為構件實例在可重構路由轉發引擎中的運行提供標準接口和運行所需資源。為支持程序及電路功能的動態加載和替換升級,可重構路由器報文轉發引擎相應提供2種構件運行環境,即程序構件運行環境及電路構件運行環境。可重構路由器報文處理能力生成基于構件實例到構件運行環境的有效映射,構件映射方案必須滿足以下約束:
CR1(資源約束):用于構件到構件運行環境的映射的邏輯/存儲資源不得超過該構件運行環境剩余可用資源;
CR2(功能約束):構件到構件運行環境的映射必須匹配構件運行環境功能規范要求,例如流量控制構件不可映射到網絡處理器加/解密處理引擎;
CR3(相關性約束):對于任意2個構件,若它們有直接或間接的數據控制通道連接,則僅可映射到同一運行環境或具有同向數據控制通道的不同運行環境中。
滿足上述約束的映射方案稱為可行映射,不可行映射的性能及資源消耗信息則可以用于反饋調整業務構件實例的選擇,以實現構件系統的性能迭代調優。
報文轉發引擎重構模型中,程序/電路構件運行環境是承載網絡處理構件化任務實現的核心,除應為報文轉發等業務處理提供資源和性能優化支撐外,還應提供足夠的靈活性以支持多樣化構件的動態加載、升級和部署,滿足可重構路由器功能及性能的時空性要求。
針對上述需求,構件運行環境采用面向網絡處理特定業務優化設計的網絡處理器和具有快速電路可重構能力的FPGA相結合的方式構建。其中,基于馮·諾依曼模型的NP線程具有強大的控制流處理能力,較適合非線性構件(帶有反饋回路的)實現,而其并發處理能力受限于線程數目,內部固化的硬件加速器則僅限定于特定業務構件的加速處理。FPGA處理引擎(協處理器)具有較強的業務并行處理及可重構能力,適合線性構件實現,而其對構件功能的支撐則受限于內部邏輯及存儲資源。
為有效滿足多樣化程序及電路構件環境在功能、性能以及可重構等方面的需求,將NP與FPGA有機結合為構件功能提供優化的運行環境。圖3給出了基于NP和FPGA器件實現可重構路由器報文轉發引擎構件運行環境的2種設計選擇。其中,程序構件運行環境主要包括NP中多核線程池;而電路構件運行環境則主要由NP中固化的硬件加速部件(HA, hardware accelerator)和可重構FPGA器件等構成。
傳統Look-Aside模式[15,16]將FPGA作為從設備旁路掛載在NP上,輸入報文進入NP后被分配到空閑線程處理,對應線程采用 Run-to-Complete方式負責報文的大部分處理任務。在處理過程中,對于需要加速的特定任務,相應線程調用內部集成的硬件加速器(HA)或者外部協處理器完成。
基于FPGA實現的外部協處理器可以根據變化的任務功能進行重構,有效支持多樣化業務的演化和部署。然而,Look-Aside模式下(圖3(a)),實現協處理的可重構FPGA與網絡處理器間的控制交互及數據傳遞開銷嚴重阻礙了報文處理性能的提升。雖然網絡處理器論壇(NPF)專門針對該模式制定了高速LA-1接口標準[17],實際性能測試結果反映Look-Aside模式訪問延遲等關鍵性能指標依然難以滿足高速報文處理需求。本文基于典型的 Netlogic XLR網絡處理器[18],采用6核多線程實現基于LA-1接口進行32bit TCAM查表報文轉發處理,報文轉發率最高僅為 12.42Mbit/s,與不采用 TCAM 查表的報文轉發性能相比,降低約26%。

圖3 構件運行環境設計模式
針對傳統Look-Aside模式存在的問題,本文提出了一種基于Pass-Through模式的可重構構件運行環境。如圖 3(b)所示,Pass-Through模式將 FPGA處理引擎引入報文處理數據通路,可有效避免程序構件與可重構電路構件間的控制及數據交互開銷,有效提升網絡業務應用處理性能。與Look-Aside不同,Pass-Through模式通過提供重構管理接口,可支持多樣化構件到構件運行環境的動態映射,實現系統功能及性能按需重構。此外,Pass-Through模式還具有以下優勢。
1) 網絡業務構件優化映射:通過在數據通路引入FPGA可重構邏輯處理能力,擴展了業務構件優化映射空間,可有效支撐程序/電路構件到相應構件運行環境的優化映射,支持具有時空性的業務構件動態重構。
2) 支持交換網絡拓撲動態配置:位于輸出端FPGA處理引擎的集成可以有效支持交換網絡拓撲動態可配置。利用 FPGA處理引擎的邏輯可重構能力,可以配置線卡交換單元中交換開關的交換方式,將交換網絡配置成冗余或負載均衡等工作模式。此外,還可以有效實現交換網絡吞吐率的動態可調整。
3) 解耦NP網絡及交換接口:Pass-Through模式下,FPGA處理引擎實現了NP與網絡接口及交換單元接口的解耦,使系統可靈活支持豐富的網絡接口以及交換接口類型,FPGA提供的可重構能力則進一步為構件運行環境支持新型網絡及交換接口邏輯提供了可行性。
可重構路由器報文轉發引擎基于Pass-Through模型設計實現,主要由輸入/輸出控制FPGA(Altera公司Stratix II GX EP2SGX60EF1152C4器件)、2片高性能多核網絡處理器 XLR732及其配套外圍器件、QDR接口TCAM以及管理配置EPLD等部件組成,為程序/電路構件提供靈活的可重構運行環境?;谏鲜鲶w系結構實現的單引擎的路由轉發能力可達20Gbit/s,相應實現框圖如圖4所示。
多核 XLR網絡處理器是報文轉發引擎的核心,基于同時多線程的高性能處理器核為報文轉發功能提供了強大的程序構件運行環境。NP中集成或外置的多樣化硬件加速部件(如加解密、壓縮以及查表等),則可以有效實現功能相對穩定的特定電路構件的有效映射和加速。QDR接口TCAM是NP查表加速部件,用于增強報文轉發引擎查表性能。ICF連接NP與網絡接口卡,ECF則實現XLR與核心交換單元的連接。I/O總線控制EPLD主要實現NP的I/O總線和局部總線功能,支持NP的BootFlash管理、復位、啟動以及對其他器件的管理。
報文轉發引擎數據通路用于實現報文路由查表、轉發決策和QoS控制等功能。以輸入側為例,數據通路對于報文的基本處理流程如下。
網絡接口輸入報文經過ICF的預處理后,將根據預設規則分派到特定NP上進行處理,該NP調度線程池中空閑線程負責輸入報文的處理工作;在需要時,處理線程調用相應硬件加速器HA對報文處理任務進行加速;報文處理完成后,NP將報文發送到ECF進行報文輸出相關處理工作,通過交換單元接口發送到交換矩陣轉發。
為支持上述報文處理流程,ICF預置基本的網絡接口邏輯和報文分派邏輯,ECF則預置輸出流量處理邏輯以及交換接口邏輯。除基本預置處理邏輯外,ICF和ECF剩余可用的邏輯及存儲資源用于實現可重構電路構件運行環境,為電路構件加載、升級或重構提供相應資源。
可重構路由器報文轉發引擎的控制通路主要由吉比特以太網實現,如圖4所示,XLR 0和XLR 1分別通過RGMII接口與ICF連接,ICF通過背板基于吉比特SerDes接口連接主/備份控制CPU,實現主/備控制CPU與NP間控制信息交互。
根據構件類型的不同,重構管理控制也分為程序重構管理控制和電路重構管理控制。其中,程序重構主要基于NP軟件代碼的更新與加載,實現較簡單,而基于FPGA的電路重構的控制實現則相對復雜。
可重構報文轉發引擎電路重構的實現結構如圖5所示,由重構代理、配置引擎、配置文件存儲器和待配置功能部件(即ICF/ECF FPGA)4部分組成。
在本路由轉發引擎中,重構代理由網絡處理器XLR的一個線程實現,主要完成配置命令解析、配置文件的讀/寫、更新以及啟動配置;配置引擎基于EPLD器件實現,該器件通過局部總線與XLR連接,主要完成 FPGA的配置控制以及配置文件存儲器(flash)的讀寫控制;配置文件存儲器為非易失性flash,用于存儲FPGA的重構配置文件。
在電路重構中,用戶首先根據應用需求從構件庫選擇對應的電路構件,針對FPGA類型生成并配置比特流文件。重構代理根據用戶命令調度選擇對應構件的配置比特流文件,通過FPGA配置引擎加載該配置文件,從而實現FPGA的靜態重構。
需要注意的是,在系統加電運行過程中,通過配置控制邏輯主動加載FPGA的配置文件,需要中斷系統運行,僅可實現FPGA靜態重構。在需要系統在線動態重構的情況下,可選擇采用Xilinx 或Altera等公司支持部分可重構功能的高端 FPGA實現 ICF和ECF,從而在不中斷系統運行的前提下實現電路構件的運行時更新,提供更高靈活性和重構性能。
在部分動態可重構中,重構管理控制方式與靜態重構類似。前期,用戶需要首先按照模塊化設計方法,將整個設計分解為固定部分和重構部分。然后分別對固定模塊和可重構模塊進行整體設計綜合,根據應用需求生成一個缺省全局配置比特流文件,同時生成所有可重構模塊的部分配置比特流文件。在初始配置過程中,重構代理選擇加載FPGA缺省全局配置文件,在動態部分可重構過程中,可重構代理根據用戶命令選擇加載對應的部分可重構模塊配置文件。重構控制機制具體實現可參見文獻[19]。

圖4 報文轉發引擎實現

圖5 電路重構控制機制實現

圖6 業務流量識別與控制組件
業務流量識別與控制組件是863 “開放式構件化通用路由器研制” 課題中用于支撐電信網、廣電網以及互聯網三網融合傳輸業務及其演進的關鍵部件。業務流量識別與控制組件用于通過深度報文檢測(DPI)技術識別廣電TS over UDP、電信RTP over UDP等多種業務,并將不同的業務映射到不同優先級上,實現面向業務的流量管理和服務質量保證。課題基于可重構路由器報文轉發引擎構建了支持多種業務識別構件的運行驗證環境,在此基礎上完成相應的時序仿真、功能驗證和性能評估。
如圖6所示,業務流量識別與控制組件主要包括預處理構件、業務識別構件、識別結果控制構件、轉發業務構件和流量控制構件等。
1) 預處理構件:主要負責從網絡接口接收輸入報文流、進行報文緩沖、鏈路層識別及歸一化處理等工作。具體包括:識別以太網或 POS封裝的MPLS、IPv4及IPv6報文;剝離鏈路層頭部,IP報文送識別構件,非IP報文對應的報文處理控制信號直接送識別結果控制模塊。
2) 業務識別構件:進行廣電TS over UDP、電信RTP over UDP、IPv4、IPv6等業務協議識別。各構件同時接收報文數據,并行進行協議業務識別工作,匹配結果同時送識別結果控制模塊。
3) 識別結果控制構件:負責接收預處理模塊輸出的報文控制信息及各識別構件的匹配結果信息,將識別結果與報文統一送NP轉發處理線程。
4) 轉發業務構件:負責根據輸入報文和識別結果構建查表關鍵字,進行路由查表,并將查表轉發結果與報文一起發送到流量控制構件。
5) 流量控制構件:采用基于令牌桶的流量管理機制,根據預設的流量優先級控制策略和報文識別結果,確定報文的控制處理規則。
業務流量識別與控制組件的預處理、業務識別以及識別結果控制構件映射到ICF構件運行環境,轉發業務構件分別映射到 NP程序構件運行環境中多個線程,流量控制構件映射到ECF構件運行環境。
本文采用基于Spirent AX/4000測試儀,對業務流量識別與控制組件的性能進行了測試。測試儀TX端發送測試流量 10Gbit/s至報文轉發引擎,報文轉發引擎實現業務流量識別,并按設定流量進行速率控制,轉發到測試儀的輸入RX端口。表1給出了對廣電業務進行流量識別控制的性能測試結果。

表1 業務流量識別與控制組件性能
由表可知,該功能組件可以有效映射到報文轉發引擎程序/電路構件環境,實現不同業務流量高效識別,以及基于設定流量速率的精確流量控制,誤差可控制在3%以內。
表2給出了ICF中實現主要業務識別構件的資源占用情況。
基于上述典型應用,本文對可重構路由器報文轉發引擎在多種條件下的轉發性能進行測試。測試條件包括如下。
1) 單板轉發性能測試:主要測試報文轉發引擎單板全10GE端口全雙工報文轉發性能;

表2 業務識別構件資源占用情況
2) 跨板性能測試:主要測試報文轉發引擎板間全雙工報文轉發性能;
3) 大路由表性能測試:主要測試報文轉發引擎在100K FIB表項下全雙工報文轉發性能;
4) 路由振蕩條件性能測試:主要測試報文轉發引擎在100K FIB表項、10K路由振蕩下全雙工報文轉發性能。
圖7給出了上述多種測試條件下(測試時間為 30s)報文轉發引擎轉發延遲性能測試結果。由圖可知,報文轉發延遲基本保持在微秒級別,與報文長度不存在線性關系。在路由震蕩條件下,報文轉發延遲相對較大,原因在于:一方面路由表頻繁更新會造成轉發線程對路由表的訪問沖突增多、延遲增大;另一方面,路由表震蕩導致的計算開銷也會對網絡處理器線程處理性能帶來負面影響。

圖7 報文轉發引擎性能測試結果
此外,在上述測試條件下測試結果表明,可重構路由器報文轉發引擎對于不同報文長度都可獲得 100%的轉發吞吐率,即保證報文線速轉發,由此可見,可重構路由器報文轉發引擎能夠在提供構件化可重構能力的基礎上,有效實現報文線速轉發和低延遲處理,實現性能與靈活性的良好折中。
為支持面向三網融合的多種新型網絡體制和業務體系的實驗和驗證,并為各種先進網絡架構及網絡新技術研究提供有力支撐平臺,“新一代高可信網絡”項目組于 2011年在上海構建了一個可重構柔性實驗床。本文研制的可重構路由器系統與其他合作單位的研制設備一起,在該實驗床上進行了IPv4、IPv6、廣電網絡、電信網絡等多種網絡場景下,分組業務承載能力、服務承載重構能力、網絡重構能力以及網絡傳輸性能等方面的測試。測試結果表明,該可重構路由器系統,按照平臺化支撐下的構件化實現思想,基于數據/控制平面分離的原則,具有開放性、構件化和可重構等特點,其基于Pass-Through模式設計實現的軟硬件協同的異構可重構路由轉發引擎可以在保證高性能報文處理的前提下,獲得高度靈活性,能有效支持新型協議轉發模塊的快速開發及部署,有效支撐可重構柔性實驗床的各種實驗。
隨著多樣化網絡業務和應用的迅猛發展,路由器處理功能的時空變化特性更趨顯著,傳統基于網絡處理器實現的路由轉發引擎難以有效滿足程序/電路功能靈活部署和重構。為此,本文提出了可有效支持網絡業務重構的路由轉發引擎構件重構模型,在此基礎上,設計了基于Pass-Through模式的程序/電路構件運行環境,通過將可重構FPGA器件引入到報文數據通路處理,有效降低程序/電路構件間控制及數據開銷,為構件映射提供更廣闊的設計選擇空間。系統實現和測試結果表明,可重構報文轉發引擎可以在滿足報文高速處理的前提下,為網絡業務提供優化映射環境,滿足多樣化業務對性能和靈活性的要求。下一步工作主要研究可重構路由器報文轉發引擎對網絡虛擬化以及OpenFlow技術的支持。
[1] 李玉峰, 邱菡, 蘭巨龍. 可重構路由器研究的現狀與展望[J]. 中國工程科學, 2008, 10(7): 82-89.LI Y F, QIU H, LAN J L. Status quo and outlook of reconfigurable research[J]. Engneering Science, 2008, 10(7):82-89.
[2] HU C C, WU C, X W, et al. On the design of green reconfigurable router toward energy efficient internet[J]. IEEE Communications Magazine, 2011, 49(6):83-87.
[3] 龔正虎, 傅彬,盧澤新. 軟件集群路由器體系結構研究[J]. 國防科學技術大學學報, 2006, 28(3):40-43.GONG Z H, FU B, LU Z X. Research on the architecture of software based cluster routers[J]. Journal of National University of Dependence Technology, 2006, 28(3): 40-43.
[4] LEE D C, MIDKIFF S F. Reconfigurable routers: a new paradigm for switching device architecture[EB/OL]. http://www.ccm.ece.vt.edu/papers/, 1998.
[5] KOHLER E, MORRIS R, CHEN B, et al. The click modular router[A].Proceedings of the ACM Symposium on Operating Systems Principles(SOSP)[C]. 1999.217-231.
[6] DAN D, ZUBIN D, GURU P, et al. Router plugins: a software architecture for next generation routers[A]. Proc of ACM SIGCOMM[C].1998. 229-240.
[7] HAN S, JANG K, PARK K, et al. Packet shader: a GPU-accelerated software router[A]. ACM SIGCOMM[C]. New Delhi, India, 2010.195-206.
[8] LEE D, HARPER S, ATHANAS P, et al. A stream-based reconfigurable router prototype[A]. IEEE International Conference on Communications[C]. Vancouver, BC, 1999. 581-585.
[9] LOCKWOOD J, NAUFEL N, TURNER J, et al. Reprogrammable network packet processing on the field programmable port extender(FPX)[A]. ACM International Symposium on Field Programmable Gate Arrays (FPGA)[C]. Monterey, CA, USA, 2001. 87-93.
[10] NAOUS J, GIBB G, BOLOUKI S, et al. NetFPGA: reusable router architecture for experimental research[A]. Proceedings of the ACM Workshop on Programmable Routers for Extensible Services of Tomorrow (PRESTO ’08)[C]. New York, NY, USA, 2008. 1-7.
[11] ANWER B, TARIQ M, MOTIWALA M, et al. Switch blade: a platform for rapid deployment of network protocols on programmable hardware[A]. Proceedings of the ACM SIGCOMM 2010[C]. New Delhi, India, 2010. 183-194.
[12] KURT K, SHARAD M, RICHARD A. From ASIC to ASIP: the next design discontinuity[A]. International Conference on Computer Design[C]. 2002. 84-90.
[13] LIU D, HUA B, HU X, et al. High-performance packet classification algorithm for many-core and multithreaded network processor[A].Proc of the 6th IEEE International Conference on CASES[C]. 2006.
[14] FRANKE H, XENIDIS J, BASSO C, et al. Introduction to the wire-speed processor and architecture[J]. IBM Journal of Research and Development, 2010, 54(1): 27-37.
[15] SEDA O, MEMIK G, WILLIAM H, et al. Design and analysis of a layer seven network processor accelerator using reconfigurable logic[A]. IEEE Symposium on Field-programmable Custom Computing Machines[C]. Napa Valley, CA, 2002.
[16] ALBRECHT C, FOAG J, KOCH R, et al. DynaCORE – a dynamically reconfigurable coprocessor architecture for network processors[A]. Proc of the Euromicro Conference on Parallel, Distributed and Network-centric Processing[C]. 2006.
[17] BHUGRA H, CHAPMAN D. Look-Aside (LA-1) Interface Implementation Agreement[S]. 2004.
[18] NetLogic Corp. XLR 732 datsheet [EB/OL]. http://www.netlogicmicro.com/ Products/MultiCore/XLR.asp.
[19] 陳一驕, 盧澤新, 孫志剛. 基于 FPGA 的可重構硬件實現技術研究[J].信息工程大學學報, 2009, 10(1):94-97.CHEN Y J, LU Z X, SUN Z G. Implementation research of reconfigurable hardware based-on FPGA[J]. Journal of Information Engineering University, 2009, 10(1): 94-97.