專利名稱:無線接入點的控制和配置報文快速轉發系統的制作方法
技術領域:
本申請涉及無線通信技術,更具體地,涉及一種在現場可編程門陣列(FPGA)上實現無線接入點的控制和配置(CAPWAP)報文快速轉發的系統。
背景技術:
無線控制器(AC)是一種網絡設備,是無線網絡的核心,負責管理無線網絡中的瘦無線接入點(AP)。如今的無線網絡覆蓋,多采用一個AC加多個AP的方式,有利于無線網絡的集中管理。AC通過無線接入點控制與配置協議(CAPWAP)來控制AP,在集中轉發模式下,站(STA)的所有報文都由AP封裝成CAPWAP報文再由AC解封后進行轉發,目前CAPWAP功能的實現主要是在三層網絡傳輸模式下,所有的CAPWAP報文都被封裝成用戶數據包協議(UDP)格式在互聯網協議(IP)網絡中傳輸,而CAPWAP隧道也是由AC的接口 IP地址和web工具平臺(WTP)的IP地址來維護的。AC中最關鍵的技術就是CAPWAP業務數據的處理,因為隧道數量多(多達幾百萬個同時存在的隧道),業務流量大(高達20 30Gbps的業務流量),對AC的性能要求很高。目前的AC多采用高性能多核CPU處理器作為數據轉發平臺,并且使用諸如雙倍速率同步動態隨機存取存儲器(DDR)2或DDR3的動態隨機存取存儲器(DRAM)來存儲報文和轉發表。然而,上述方案會存在以下缺點I、對于短包處理不理想;2、CPU轉發在應用中的線速交換能力不足,特別是短報文,性能下降更加嚴重;3、高性能多核CPU功耗很大,對系統散熱能力要求高;4、DDR2/3的DRAM吞吐能力有限,必須使用多個DRAM接口并行才能提高效率;5、CPU對一個報文的處理需要多次訪問內存,進一步惡化性能。
發明內容
本發明的目的在于提供一種無線接入點的控制和配置(CAPWAP)報文快速轉發系統,包括以太網交換芯片;廣域網(WAN)端口 ;現場可編程門陣列(FPGA)單元,用于從以太網交換芯片或WAN端口接收報文,并從哈希表中查找與報文的五元組相應的表項,如果未查找到相應的表項,則將報文發送到處理器單元,隨后從處理器單元接收封裝的報文并發送到以太網交換芯片單元或WAN端口,并在哈希表中建立與封裝的報文的五元組相應的新的表項,如果查找到相應的表項,則根據查找到的表項對報文進行封裝,并將封裝的報文發送到以太網交換芯片單元或WAN端口 ;處理器單元,用于對FPGA單元發送的報文進行封裝,并將封裝的報文發送到FPGA單元。報文的五元組可包括報文的源IP地址、目的IP地址、源端口號、目的端口號和IP協議。哈希表的每一個表項可包括報文的五元組以及源MAC地址、目的MAC地址。對于來自無線接入點(AP)的CAPWAP報文,未查找到與報文的五元組相應的表項可包括不能獲得五元組、五元組查找失敗、報文需要重組或者報文是非CAPWAP報文;對于來自互聯網的IP報文,未查找到與報文的五元組相應的表項可包括不能獲得五元組、五元組查找失敗或者報文需要分片。FPGA單元可包括報文接收模塊,從處理器單元、以太網交換芯片或WAN端口接收報文,對報文進行數據同步并轉換為并行數據報文,并存儲轉換的并行數據報文;報文解析模塊,讀取來自以太網交換芯片或WAN端口的并行數據報文,對并行數據報文進行解析以提取五元組;哈希查找模塊,使用提取的五元組通過哈希算法計算哈希ID,根據哈希ID獲得哈希表,并在哈希表中查找與提取的五元組相應的表項;報文轉發模塊,當哈希查找模塊查找到與提取的五元組相應的表項時,報文轉發模塊根 據哈希表中與并行數據報文的五元組相應的表項對并行數據報文進行封裝,并將封裝的并行數據報文發送到報文發送模塊,當哈希查找模塊未查找到與提取的五元組相應的表項時,報文轉發模塊直接將并行數據報文發送到報文發送模塊;報文發送模塊,將封裝的并行數據報文轉換為串行數據并發送到以太網交換芯片或WAN端口,將并行數據報文發送到處理器單元;學習和轉發模塊,讀取來自處理器單元的封裝的并行數據報文,將其發送到報文發送模塊,并創建關于封裝的并行數據報文的哈希表項。當發生哈希沖突時,學習和轉發模塊還可對關于封裝的并行數據報文的哈希表項進行更新。哈希表的每個表項中還可包括創建時間項,當發生哈希沖突時,如果當前表項的創建時間項的值大于預定的更新時間,則學習和轉發模塊可將當前封裝的并行數據報文的五元組寫入當前表項。哈希表的每個表項中還可包括老化時間項,當發生哈希沖突時,如果某個表項的創建時間項的值與當前時間的差值大于老化時間項的值,則學習和轉發模塊可將所述某個表項刪除。將在接下來的描述中部分闡述本發明另外的方面和/或優點,還有一部分通過描述將是清楚的,或者可以經過本發明的實施而得知。
通過下面結合附圖進行的詳細描述,本發明的上述和其它目的和特點將會變得更加清楚,其中圖I是示出根據本發明示例性實施例的CAPWAP報文快速轉發系統的框圖;圖2是示出根據本發明示例性實施例的CAPWAP報文快速轉發系統的FPGA單元的框具體實施例方式現在,詳細描述本發明的示例性實施例,其示例在附圖中表示,其中,相同的標號始終表示相同的部件。圖I是示出根據本發明示例性實施例的CAPWAP報文快速轉發系統的框圖。如圖I所示,根據本發明示例性實施例的CAPWAP報文快速轉發系統可包括處理器單元110、FPGA單元120、以太網交換芯片130和廣域網(WAN)端口 140。
FPGA單元120從以太網交換芯片130或WAN端口 140接收報文,并在哈希(Hash)表中查找與報文的五元組相應的表項,這里,五元組包括報文的源IP地址、目的IP地址、源端口號、目的端口號和IP協議。如果FPGA單元120未查找到與報文的五元組相應的表項,則FPGA單元120將報文發送到處理器單元110,由處理器單元110對報文進行封裝,隨后FPGA單元120從處理器單元110接收封裝的報文并根據其封裝將其發送到以太網交換芯片130或WAN端口 140,并在哈希表中建立與封裝的報文的五元組相應的新的表項,這樣,如果再次接收到具有相同五元組的報文,則FPGA單元120可直接對報文進行處理,而不需要處理器單元110干預。如果FPGA單元120查找到與報文的五元組相應的表項,則FPGA單元120可根據哈希表中與報文的五元組相應的表項直接對報文進行封裝,并將封裝的報文發送到以太網交換芯片130或WAN端口 140。這里,哈 希表的每一個表項可包括報文的五元組以及諸如源MAC地址、目的MAC地址等的封裝信息,但不限于此。此外,僅作為示例,各個單元之間可通過以太網連接單元接口(XAUI)來發送或接收報文。由FPGA單元120從以太網交換芯片130或WAN端口 140接收的報文可分為來自AP 的 CAPWAP (CAPWAP from AP)報文或來自互聯網(Internet)的 IP (IP from Internet)報文兩種類型。對于CAPWAP from AP類型的報文,未查找到與報文的五元組相應的表項可包括不能獲得五元組、五元組查找失敗、報文需要重組或者報文是非CAPWAP報文。對于IPfrom Internet類型的報文,未查找到與報文的五元組相應的表項可包括不能獲得五元組、五元組查找失敗或者報文需要分片。WAN端口 140連接外網,用于將報文發送到FPGA單元120或從FPGA單元120接收報文。以太網交換芯片130用于將報文發送到FPGA單元120或從FPGA單元120接收報文。這里,以太網交換芯片130的以太交換操作屬于本領域中現有技術,為了避免模糊本發明的主題,因此不在此進行詳細描述。下面將參照圖2來進一步描述圖I中示出的CAPWAP報文快速轉發系統的FPGA單元 120。圖2是示出根據本發明示例性實施例的CAPWAP報文快速轉發系統的FPGA單元120的框圖。參照圖2,根據本發明示例性實施例的FPGA單元可包括報文接收模塊210、報文解析模塊220、哈希查找模塊230、報文轉發模塊240、報文發送模塊250以及學習和轉發模塊260。報文接收模塊210從處理器單元110、以太網交換芯片130或WAN端口 140接收報文,對報文進行數據同步并轉換為并行數據報文,并存儲轉換的并行數據報文。這里,僅作為示例,報文接收模塊210可將報文轉換為128比特的并行數據報文。報文解析模塊220讀取來自以太網交換芯片130或WAN端口 140并通過數據同步、轉換而得到的并行數據報文,對并行數據報文進行解析以提取五元組。這里,報文解析模塊220可將包長大于1900字節或者小于60字節的報文丟棄,并可將提取的五元組緩存到先入先出緩存器(FIFO)中。此外,對于CAPWAP from AP類型的報文,可從內層IP頭提取五元組,對于IP from Internet類型的報文,可從IP頭提取五元組。哈希查找模塊230使用提取的五元組通過哈希算法計算哈希ID,根據哈希ID獲得哈希表,并在哈希表中查找與并行數據報文的提取的五元組相應的表項。這里,哈希ID是將查找的哈希表的存儲地址。此外,僅作為示例,哈希表的每一個表項可包括五元組、802. 3 幀頭、VLAN OUT、VLAN IN、IP 報文頭、UDP 報文頭、CAPffAP 報文頭、802. 11 幀頭。如果哈希查找模塊230查找到與并行數據報文的提取的五元組相應的表項(即,哈希匹配),則報文轉發模塊240根據哈希表中與并行數據報文的五元組相應的表項對并行數據報文進行封裝,并將封裝的并行數據報文發送到報文發送模塊250 ;否則,報文轉發模塊240直接將并行數據報文發送到報文發送模塊250。這里,報文轉發模塊240可支持四種模式的轉發,即,Internet 到 Internet (Internet to Internet)、AP 到 Internet (AP toInternet)、AP 到 AP (AP to AP)、Internet 到 AP (I nternet to AP)。對于 to Internet 的報文,報文轉發模塊240的封裝操作可包括去掉外層封裝、添加802. 3幀頭、將IP報文頭中的TTL減I和重新計算校驗和。對于to AP的報文,報文轉發模塊240的封裝操作可包括依次添加或者更新LLC/SNAP頭、802. 11幀頭、CAPWAP頭、UDP頭、IP報文頭、802. 3幀頭,將IP報文頭的TTL減I,重新計算校驗和,將外層IP報文頭的碎片(Fragment) ID遞增,將CAPffAP頭的FragmentID遞增,將802. 11巾貞頭的序列(sequence) ID遞增。此外,報文轉發模塊240同時支持快轉輸出時的Q0S_EN的配置,Q0S_EN為I時,輸出的802. 11幀頭為帶QOS信息的28字節,Q0S_EN為0時,輸出的802. 11幀頭為不帶QOS信息的24字節。應該理解,上述的報文的具體轉發以及封裝操作僅是示例,本領域技術人員完全可以根據實際需要對上述具體轉發操作做出改變。報文發送模塊250將封裝的并行數據報文轉換為串行數據報文,并根據其封裝將其發送到以太網交換芯片130或WAN端口 140。此外,報文發送模塊250還可將并行數據報文直接發送到處理器單元110。學習和轉發模塊260讀取來自處理器單元110并通過數據同步、轉換而得到的封裝的并行數據報文,將其發送到報文發送模塊250,并創建關于封裝的并行數據報文的哈希表項。更具體地,FPGA單元120可將封裝的并行數據報文的五元組、源MAC地址、目的MAC地址作為新的表項創建在哈希表中,但這僅是示例,本領域技術人員可根據實際需要來改變將創建的哈希表項的內容。此外,對于兩個不同的五元組,如果計算出的哈希ID相同,則這種情況就是哈希沖突,因此,為避免一種報文長時間占據哈希表空間,還可由學習和轉發模塊260對哈希表進行更新,更具體地,可進行以下兩種處理1)在哈希表的每個表項中包括一個創建時間項(setup_time),當發生哈希沖突時,當發生哈希沖突時,如果當前表項的setup_time的值大于預定的更新時間(update_time),則將當前表項進行更新,寫入當前封裝的并行數據報文的7五元組;2)設置老化輪詢機制,即,定時對哈希表進行老化(刪除),具體來說,在哈希表的每個表項中包括一個老化時間項(aging_time)。當發生哈希沖突時,如果某個表項的setup_time的值與當前時間的差值大于aging_time的值,則將所述某個表項刪除。此外,作為可選模塊,FPGA單元120還可包括存儲模塊,用于存儲哈希表以及由報文接收模塊210轉換的并行數據報文,或者FPGA單元120的各個模塊可訪問或讀取存儲在外部存儲器中的哈希表和并行數據報文。應該了解,圖2中示出的FPGA單元包括的各個模塊僅是示例,本領域技術人員完全可根據實際需要對各個模塊進行功能拆分或組合,諸如,可使用一個模塊來實現報文接收模塊210和報文解析模塊220的功能等,在此不再贅述。根據本發明的示例性實施例,在FPGA單元中采用了流水線設計,報文的數據流向是一條沒有反饋的單向流,前一個步驟的輸出是后一個步驟的輸入,故可提高系統的工作頻率,這是面積換取速度的一種具體體現。此外,FPGA單元還可以實現多條流水線并行處理,大大提高CAPWAP報文轉發性能,支持30G數據流量的線速交換能力,并且長度為256字節以下的報文也可以達到線速轉發。由于使用了 FPGA,故在調試上比較方便,并且還具有較好的兼容性及擴展性能。雖然已經參照特定示例性實施例示出和描述了本發明,但是本領域的技術人員將理解,在不脫離范圍由權利要求及其等同物限定的本發明的精神和 范圍的情況下可作出形式和細節上的各種改變。
權利要求
1.一種無線接入點的控制和配置(CAPWAP)報文快速轉發系統,包括 以太網交換芯片; 廣域網(WAN)端口 ; 現場可編程門陣列(FPGA)單元,用于從以太網交換芯片或WAN端口接收報文,并從哈希表中查找與報文的五元組相應的表項,如果未查找到相應的表項,則將報文發送到處理器單元,隨后從處理器單元接收封裝的報文并發送到以太網交換芯片單元或WAN端口,并在哈希表中建立與封裝的報文的五元組相應的新的表項,如果查找到相應的表項,則根據查找到的表項對報文進行封裝,并將封裝的報文發送到以太網交換芯片單元或WAN端口 ;處理器單元,用于對FPGA單元發送的報文進行封裝,并將封裝的報文發送到FPGA單J Li o
2.如權利要求I所述的CAPWAP報文快速轉發系統,其中,報文的五元組包括報文的源IP地址、目的IP地址、源端口號、目的端口號和IP協議。
3.如權利要求I所述的CAPWAP報文快速轉發系統,其中,哈希表的每一個表項包括報文的五元組以及源MAC地址、目的MAC地址。
4.如權利要求I所述的CAPWAP報文快速轉發系統,其中, 對于來自無線接入點(AP)的CAPWAP報文,未查找到與報文的五元組相應的表項包括不能獲得五元組、五元組查找失敗、報文需要重組或者報文是非CAPWAP報文; 對于來自互聯網的IP報文,未查找到與報文的五兀組相應的表項包括不能獲得五兀組、五元組查找失敗或者報文需要分片。
5.如權利要求I 4之一所述的CAPWAP報文快速轉發系統,其中,FPGA單元包括 報文接收模塊,從處理器單元、以太網交換芯片或WAN端口接收報文,對報文進行數據同步并轉換為并行數據報文,并存儲轉換的并行數據報文; 報文解析模塊,讀取來自以太網交換芯片或WAN端口的并行數據報文,對并行數據報文進行解析以提取五元組; 哈希查找模塊,使用提取的五元組通過哈希算法計算哈希ID,根據哈希ID獲得哈希表,并在哈希表中查找與提取的五兀組相應的表項; 報文轉發模塊,當哈希查找模塊查找到與提取的五元組相應的表項時,報文轉發模塊根據哈希表中與并行數據報文的五元組相應的表項對并行數據報文進行封裝,并將封裝的并行數據報文發送到報文發送模塊,當哈希查找模塊未查找到與提取的五元組相應的表項時,報文轉發模塊直接將并行數據報文發送到報文發送模塊; 報文發送模塊,將封裝的并行數據報文轉換為串行數據并發送到以太網交換芯片或WAN端口,將并行數據報文發送到處理器單元; 學習和轉發模塊,讀取來自處理器單元的封裝的并行數據報文,將其發送到報文發送模塊,并創建關于封裝的并行數據報文的哈希表項。
6.如權利要求5所述的CAPWAP報文快速轉發系統,其中,當發生哈希沖突時,學習和轉發模塊還對關于封裝的并行數據報文的哈希表項進行更新。
7.如權利要求6所述的CAPWAP報文快速轉發系統,其中,哈希表的每個表項中還包括創建時間項,當發生哈希沖突時,如果當前表項的創建時間項的值大于預定的更新時間,貝1J學習和轉發模塊將當前封裝的并行數據報文的五元組寫入當前表項。
8.如權利要求7所述的CAPWAP報文快速轉發系統,其中,哈希表的每個表項中還包括老化時間項,當發生哈希沖突時,如果某個表項的創建時間項的值與當前時間的差值大于老化時間項的值,則學習和轉發模塊將所述某個表項刪除。
全文摘要
提供了一種無線接入點的控制和配置(CAPWAP)報文快速轉發系統,包括以太網交換芯片;廣域網(WAN)端口;現場可編程門陣列(FPGA)單元,用于從以太網交換芯片或WAN端口接收報文,并從哈希表中查找與報文的五元組相應的表項,如果未查找到相應的表項,則將報文發送到處理器單元,隨后從處理器單元接收封裝的報文并發送到以太網交換芯片單元或WAN端口,并在哈希表中建立與封裝的報文的五元組相應的新的表項,如果查找到相應的表項,則根據查找到的表項對報文進行封裝,并將封裝的報文發送到以太網交換芯片單元或WAN端口;處理器單元,用于對FPGA單元發送的報文進行封裝,并將封裝的報文發送到FPGA單元。
文檔編號H04W28/06GK102769869SQ201210282888
公開日2012年11月7日 申請日期2012年8月9日 優先權日2012年8月9日
發明者李西昆, 范成龍, 馬奔利 申請人:北京傲天動聯技術有限公司