无线接入点的控制和配置报文快速转发系统的制作方法

文档序号:7857807阅读:191来源:国知局
专利名称:无线接入点的控制和配置报文快速转发系统的制作方法
技术领域
本申请涉及无线通信技术,更具体地,涉及一种在现场可编程门阵列(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日
发明者李西昆, 范成龙, 马奔利 申请人:北京傲天动联技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1