流表匹配方法和装置以及交换的制造方法

文档序号:7988534阅读:386来源:国知局
流表匹配方法和装置以及交换的制造方法
【专利摘要】本发明实施例提供一种流表匹配方法和装置以及交换机,将每条流表项中的精确匹配表项和通配表项分开存储,将精确匹配表项存储在内存中,将通配表项存储在TCAM中,应用索引值index来代表精确匹配表项,减少了通配表项对TCAM资源的使用,提高TCAM的利用率;并且应用适合的查找算法分别进行精确匹配表项和通配表项的匹配,提高了查找速度。
【专利说明】流表匹配方法和装置以及交换机
【技术领域】
[0001]本发明实施涉及通信技术,尤其涉及一种流表匹配方法和装置以及交换机。
【背景技术】
[0002]OpenFlow技术最早由斯坦福大学提出,旨在基于现有TCP/IP技术条件,以创新的网络互联理念解决当前网络面对新业务产生的种种瓶颈。它的核心思想是将原本完全由交换机/路由器控制的数据包转发过程,转化为由OpenFlow交换机(OpenFlow Switch)和控制服务器(Controller)分别完成的独立过程。OpenFlow交换机会在本地维护一个流表(Flow Table),如果要转发的数据包在流表中有对应项,则直接进行快速转发;若流表中没有此项,数据包就会被发送到控制服务器进行传输路径的确认,再根据下发结果进行转发。[0003]在OpenFlow发展初期,交换机中的流表是扁平化的,其中的流表项分成两种,完全精确匹配流表项和通配流表项。其中,通配流表项包含部分需要精确匹配的匹配域(Match Field)和部分可以通配匹配的匹配域。完全精确匹配流表项存放在外部随机存储器(Random Access Memory ;简称:RAM)中,可以有较大的存储容量,通过哈希(HASH)快速查找。而通配流表项由于存在不确定的匹配域(即可以通配匹配的匹配域),其是存储在三态内容寻址存储器(Ternary Content Addressable Memory ;简称:TCAM)中进行快速查找。限于目前技术水平,TCAM价格昂贵且功耗较大。由于TCAM的限制,所以在实现中一般控制服务器以下完全精确匹配流表项为主。由于完全精确匹配流表项完整的定义了一个数据流,因此流表容量庞大,阻碍了 OpenFlow的发展。
[0004]随着OpenFlow技术的发展,现有技术将流表扩展为多级流表,通过多个流表的组合,大量减少了流表项的条数,但是分配在多个流表中流表项,都只关心部分的特征数据,其他部分需要通配解决,由此增加了通配表项的条数,从而导致TCAM容量的大量占用。

【发明内容】

[0005]本发明实施例针对现有技术的缺陷,提供一种流表匹配方法和装置以及交换机,以提高TCAM的利用率。
[0006]本发明实施例的一方面提供一种流表匹配方法,所述流表包括精确匹配流表和通配流表,所述精确匹配流表存储在内存中,所述通配流表存储在三态内容寻址存储器中;所述精确匹配流表包括一个或多个精确匹配表项,每个精确匹配表项包括多个精确匹配域,每个精确匹配表项对应一个索引值;所述通配流表包括一个或多个通配表项,每个通配表项包括多个通配域以及一个用于存储所述索引值的索引域;通过所述索引值关联的精确匹配表项和通配表项组成一个完整的流表项;所述方法包括:
[0007]获取接收到的报文中的多个匹配域,所述多个匹配域包括多个精确匹配域和多个通配域;
[0008]将所述报文中的多个精确匹配域与所述精确匹配流表中各所述精确匹配表项的多个精确匹配域进行匹配,若匹配成功,则获取与所述精确匹配表项对应的索引值;[0009]根据所述索引值,将所述报文中的多个通配域与所述通配流表中各所述通配表项的多个通配域进行匹配,获得匹配结果。
[0010]本发明实施例提供的方法中,可以应用哈希HASH算法,进行所述报文中的多个精确匹配域与所述精确匹配流表中各所述精确匹配表项的多个精确匹配域的匹配。
[0011]本发明实施例提供的方法中,还包括:
[0012]接收控制服务器下发的目标流表,所述目标流表包括至少一个流表项,各流表项包括多个精确匹配域和多个通配域;
[0013]将各流表项中的多个精确匹配域与所述精确匹配流表中各所述精确匹配表项的多个精确匹配域进行匹配,若匹配成功,则获取与所述精确匹配表项对应的索引值;若匹配不成功,则在所述精确匹配流表中的一精确匹配表项中存储所述目标流表的多个精确匹配域,并为所述精确匹配表项分配一个索引值;
[0014]将所述目标流表的多个通配域存储在所述通配流表中的一个通配表项中,并将所述索引值存储在所述通配表项中的索引域内。
[0015]本发明实施例提供的方法中,还包括:
[0016]为所述通配流表中的各通配表项设置有效时间,当有效时间结束后,若所述通配表项存储的索引值不与其他通配表项存储的索引值相同,则同时删除所述通配表项和所述索引值对应的精确匹配表项;
[0017]若所述通配表项存储的索引值与其他通配表项存储的索引值相同,则仅删除所述通配表项。
[0018]本发明实施例的另一方面提供流表匹配装置,所述流表匹配装置中存储有流表,所述流表包括精确匹配流表和通配流表,所述精确匹配流表存储在内存中,所述通配流表存储在三态内容寻址存储器中;所述精确匹配流表包括一个或多个精确匹配表项,每个精确匹配表项包括多个精确匹配域,每个精确匹配表项对应一个索引值;所述通配流表包括一个或多个通配表项,每个通配表项包括多个通配域以及一个用于存储所述索引值的索引域;通过所述索引值关联的精确匹配表项和通配表项组成一个完整的流表项;所述流表匹配装置包括:
[0019]获取模块,用于获取接收到的报文中的多个匹配域,所述多个匹配域包括多个精确匹配域和多个通配域;
[0020]第一匹配模块,用于将所述报文中的多个精确匹配域与所述精确匹配流表中各所述精确匹配表项的多个精确匹配域进行匹配,若匹配成功,则获取与所述精确匹配表项对应的索引值;
[0021]第二匹配模块,用于根据所述索引值,将所述报文中的多个通配域与所述通配流表中各所述通配表项的多个通配域进行匹配,获得匹配结果。
[0022]本发明实施例提供的装置中,所述第一匹配模块还用于:应用哈希HASH算法,进行所述报文中的多个精确匹配域与所述精确匹配流表中各所述精确匹配表项的多个精确匹配域的匹配。
[0023]本发明实施例提供的装置中,还包括:
[0024]划分模块,用于接收控制服务器下发的目标流表,所述目标流表包括至少一个流表项,各流表项包括多个精确匹配域和多个通配域;将各流表项中的多个精确匹配域与所述精确匹配流表中各所述精确匹配表项的多个精确匹配域进行匹配,若匹配成功,则获取与所述精确匹配表项对应的索引值;若匹配不成功,则在所述精确匹配流表中的一精确匹配表项中存储所述目标流表的多个精确匹配域,并为所述精确匹配表项分配一个索引值;以及,将所述目标流表的多个通配域存储在所述通配流表中的一个通配表项中,并将所述索引值存储在所述通配表项中的索引域内。
[0025]本发明实施例提供的装置中,还包括:
[0026]老化处理模块,用于为所述通配流表中的各通配表项设置有效时间,当有效时间结束后,若所述通配表项存储的索引值不与其他通配表项存储的索引值相同,则同时删除所述通配表项和所述索引值对应的精确匹配表项;以及,若所述通配表项存储的索引值与其他通配表项存储的索引值相同,则仅删除所述通配表项。
[0027]本发明实施例的再一方面提供交换机,包括内存和三态内容寻址存储器;所述流表包括精确匹配流表和通配流表,所述精确匹配流表存储在所述内存中,所述通配流表存储在所述三态内容寻址存储器中;所述精确匹配流表包括一个或多个精确匹配表项,每个精确匹配表项包括多个精确匹配域,每个精确匹配表项对应一个索引值;所述通配流表包括一个或多个通配表项,每个通配表项包括多个通配域以及一个用于存储所述索引值的索引域;通过所述索引值关联的精确匹配表项和通配表项组成一个完整的流表项;[0028]所述系统还包括:处理器,用于获取接收到的报文中的多个匹配域,所述多个匹配域包括多个精确匹配域和多个通配域;并将所述报文中的多个精确匹配域与所述精确匹配流表中各所述精确匹配表项的多个精确匹配域进行匹配,若匹配成功,则获取与所述精确匹配表项对应的索引值;以及,根据所述索引值,将所述报文中的多个通配域与所述通配流表中各所述通配表项的多个通配域进行匹配,获得匹配结果。
[0029]本发明实施例提供的交换机中,所述处理器还用于:应用哈希HASH算法,进行所述报文中的多个精确匹配域与所述精确匹配流表中各所述精确匹配表项的多个精确匹配域的匹配。
[0030]本发明实施例提供的流表匹配方法和装置以及交换机,将流表项中的精确匹配表项和通配表项分开存储,将精确匹配表项存储在内存中,将通配表项存储在TCAM中,应用索引值index来代表精确匹配表项,减少了通配表项对TCAM资源的使用,提高TCAM的利用率;并且应用适合的查找算法分别进行精确匹配表项和通配表项的匹配,提高了查找速度。
【专利附图】

【附图说明】
[0031]图1为本发明实施例提供的流表匹配方法流程图;
[0032]图2为本发明实施例中流表拆分存储示意图;
[0033]图3为本发明实施例提供的流表匹配装置结构示意图。
【具体实施方式】
[0034]OpenFlow交换机是整个OpenFlow网络的核心部件,主要管理数据层的转发。交换机接收到报文后,首先在本地的流表上查找转发目标端口,如果没有匹配,则把报文转发给Controller,由控制层决定转发端口。交换机由流表、安全通道和OpenFlow协议三部分组成。其中,安全通道是连接交换机到Controller的接口。Controller通过这个接口控制和管理交换机,同时控制器接收来自交换机的事件并向交换机发送数据包。交换机和Controller通过安全通道进行通信,而且所有的信息必须按照OpenFlow协议规定的格式来执行。OpenFlow协议用来描述Controller和交换机之间交互所用信息的标准,以及Controller和交换机的接口标准。协议的核心部分是用于OpenFlow协议信息结构的集合。
[0035]Openflow的流表分为匹配域(Match Fields)、计数器和指令集三个部分,MatchFields是报文匹配的输入关键字,计数器是管理所需,指令集是决定报文如何转发,最基本的转发行为包括转发给某个端口、封装改写报文后转发以及丢弃。其中Match Fields分为两类:一种是精确匹配域,交换机需要完整的匹配该域。另一种是通配域,交换机可以部分匹配,或完全忽略该匹配域。
[0036]现有技术中,当一条流表项中既有通配域又有精确匹配域的时候,无法通过HASH算法来快速查找。在特定性能需求的情况下,需要采用TCAM来进行存储和查找,但是由于通配表项的条数较多,将占用大量的TCAM容量,本发明各实施例针对OpenFlow流表项的特点提供一种解决方案,即将流表项中的精确匹配表项和通配表项分开存储,将精确匹配表项存储在内存中,将通配表项存储在TCAM中,并应用适合的查找算法分别进行表项匹配,以减少TCAM的占用,提高TCAM的利用率。
[0037]图1为本发明实施例提供的流表匹配方法流程图,如图1所示,该方法包括:
[0038]步骤100、交换机获取接收到的报文中的多个匹配域,所述多个匹配域包括多个精确匹配域和多个通配域;
[0039]OpenFlow交换机接收需要进行转发的报文,并从所述报文中获取需要与本地存储的流表进行匹配的多个匹配域,所述的匹配域包括多个精确匹配域和多个通配域。针对各精确匹配域,交换机需要 完整的匹配该域,即报文中各精确匹配域的域值要与流表中对应的精确匹配域的阈值完全相同。针对通配域,交换机可以部分匹配即报文中各通配域的域值与流表中对应的通配域的阈值部分相同即可,或者交换机完全忽略该通配域即不进行该通配域的匹配。
[0040]图2为本发明实施例中流表拆分存储示意图,如图2所示,本发明实施例提供的方法中,交换机将所维护的流表T拆分成两个表,包括精确匹配流表Tl和通配流表T2,内容非*的表示精确匹配域,*表示通配域。所述精确匹配流表Tl存储在内存RAM (例如如SDRAM或DRAM)中,所述通配流表T2存储在三态内容寻址存储器TCAM中。
[0041]所述精确匹配流表Tl包括一个或多个精确匹配表项(表中的一行表示一个表项),每个精确匹配表项包括多个精确匹配域,每个精确匹配表项对应一个索引值。相应地,所述通配流表T2包括一个或多个通配表项(表中的一行表示一个表项),每个通配表项包括多个通配域以及一个用于存储所述索引值的索引域。通过索引值关联的精确匹配表项和通配表项组成一个完整的流表项。例如图2中,精确匹配流表Tl包括3个精确匹配表项,每个精确匹配表项包括(MF1、MF4、MF6、MF7、MF8、MF9) 6个精确匹配域;通配流表T2包括3个通配表项,每个通配表项包括(MF2*、MF3*、MF5*) 3个通配域,每个通配表项还各包括一个索引域MFX。从图中可以看出,Tl 中索引值为“1’的精确匹配表项(A、B、C、D、E、F)与T2中索引域中存储的索引值为“I”的通配表项(*、*、*)组成一个完成的流表项;T1中索引值为“2”的精确匹配表项化、(:43、0、?)与12中索引域MFX中存储的索引值为“2”的通配表项(*、*、*)组成一个完成的流表项;T1中索引值为“2”的精确匹配表项(B、C、A、E、D、F)与T2中索引域MFX中存储的索引值为“ 2 ”的通配表项(*、3、2 )也组成一个完成的流表项。本发明实施例是将精确匹配表项的索引值作为通配表项的一个匹配域,以实现组合的唯一性。
[0042]步骤101、交换机将所述报文中的多个精确匹配域与所述精确匹配流表中各所述精确匹配表项的多个精确匹配域进行匹配,若匹配成功,则获取与所述精确匹配表项对应的索引值;
[0043]交换机基于精确匹配流表Tl和通配流表Τ2的两个流表,将现有技术中一次完成的查找动作,分解成两次来完成。
[0044]首先进行精确匹配域的匹配。交换机获取到报文中的多个精确匹配域后,将这些精确匹配域的阈值分别与精确匹配流表Tl中各精确匹配表项的多个精确匹配域的阈值进行匹配,由于需要精确匹配,因此本发明实施例可以应用例如哈希HASH等算法进行匹配,若匹配成功,则继续进行通配域的匹配。在进行通配域匹配之前,首先获取与匹配成功的精确匹配表项所对应的索引值,假设匹配成功的精确匹配表为(B、C、A、E、D、F),则其索引值为“2”。
[0045]步骤102、交换机根据所述索引值,将所述报文中的多个通配域与所述通配流表中各所述通配表项的多个通配域进行匹配,获得匹配结果。
[0046]交换机获取到与匹配成功的精确匹配表项(B、C、A、E、D、F)所对应的索引值“2”后,便可以继续进行通配域的匹配。具体地,交换机根据索引值“2”,将索引值(index)作为一个匹配域在通配流表T2中继续查找,结果获知在通配流表T2中查找中索引域MFX的值为“2”的通配表项包括两个通配表项(*、*、*)和(*、3、2)。然后,再将报文中的多个通配域与通配流表T2中各通配表项的多个通配域进行匹配,获得匹配结果。假设报文中的多个通配域分别为(6、4、5),则通过匹配可知,通配表项(*、*、*)匹配成功,交换机便根据与完成流表项(B、C、A、E、D、F、*、*、*)所对应的指令对所述报文进行操作。
[0047]若两个通配表项(*、*、*)和(*、3、2)均匹配成功,则按照流表项的优先级选择对应的指令进行操作。
[0048]本发明实施例提供的方法中,若精确匹配域的匹配不成功,则交换机可以按照现有技术将报文发送给服务控制器请求转发策略。服务控制器为报文制定转发策略下发给交换机,交换机根据转发策略对报文进行处理。
[0049]以下介绍服务控制器向交换机下发流表,交换机进行拆分存储的过程。首先,交换机接收到服务控制器下发的目标流表,该目标流表中包括至少一个流表项,各流表项既包括多个精确匹配域又包括多个通配域。然后,交换机截取其中的精确匹配域与现有的、存储在内存中的精确匹配流表中各精确匹配表项的多个精确匹配域进行匹配,若匹配成功,则获取与精确匹配表项对应的索引值;若匹配不成功,则在精确匹配流表中的一精确匹配表项中存储目标流表的多个精确匹配域,并为精确匹配表项分配一个索引值。应该注意的是该索引值并不是精确匹配流表的一部分。接着,交换机截取目标流表中的多个通配域,将其存储在TCAM内通配流表中的一个通配表项中,并将获取的索引值存储在对应的索引域内。
[0050] 本发明实施例提供的方法中,还可以包括以通配表项为单位的流表老化处理过程,具体包括:为通配流表中的各通配表项设置各自对应的有效时间,当有效时间结束后,若通配表项存储的索引值不与其他通配表项存储的索引值相同,则同时删除通配表项和索引值对应的精确匹配表项。假设T2中索引域中存储的索引值为“I”的通配表项(*、*、*)的有效时间3s到时,由于T2中没有其他索引域的值为“I”的通配表项,因此可以直接删除T2中通配表项(*、*、*)和Tl中的精确匹配表项(么、8、(:、03、?)。
[0051]若通配表项存储的索引值与其他通配表项存储的索引值相同,则仅删除通配表项。假设T2中索引域中存储的索引值为“2”的通配表项(*、*、*)的有效时间5s到时,由于T2中有另一个通配表项的索引域的值也为“1”,因此仅删除T2中的通配表项(*、*、*)SP可,保留Tl中的精确匹配表项化、(:33、0、?)。
[0052]本发明实施例提供的流表匹配方法,将流表项中的精确匹配表项和通配表项分开存储,将精确匹配表项存储在内存中,将通配表项存储在TCAM中,应用索引值index来代表精确匹配表项,减少了通配表项对TCAM资源的使用,提高TCAM的利用率;并且应用适合的查找算法分别进行精确匹配表项和通配表项的匹配,提高了查找速度。
[0053]图3为本发明实施例提供的流表匹配装置结构示意图,如图3所示,该流表匹配装置包括获取模块31、第一匹配模块32和第二匹配模块33,其中,获取模块31用于获取接收到的报文中的多个匹配域,所述多个匹配域包括多个精确匹配域和多个通配域;第一匹配模块32用于将所述报文中的多个精确匹配域与所述精确匹配流表中各所述精确匹配表项的多个精确匹配域进行匹配,若匹配成功,则获取与所述精确匹配表项对应的索引值;第二匹配模块33用于根据所述索引值,将所述报文中的多个通配域与所述通配流表中各所述通配表项的多个通配域进行匹配,获得匹配结果。其中,在流表匹配装置中存储有流表,该流表包括精确匹配流表和通配流表,所述精确匹配流表存储在内存中,所述通配流表存储在三态内容寻址存储器中;所述精确匹配流表包括一个或多个精确匹配表项,每个精确匹配表项包括多个精确匹配域,每个精确匹配表项对应一个索引值;所述通配流表包括一个或多个通配表项,每个通配表项包括多个通配域以及一个用于存储所述索引值的索引域;通过所述索引值关联的精确匹配表项和通配表项组成一个完整的流表项。
[0054]具体地,装置通过获取模块31截取接收到的报文中的多个精确匹配域和多个通配域,然后通过第一匹配模块32首先在内存中进行精确匹配域的完全匹配,具体可以采用哈希HASH算法来匹配。若匹配成功,则获取对应的索引值;若匹配不成功,则在内存的精确匹配流表存储所述报文中的多个精确匹配域,并为其分配一个索引值。再通过第二匹配模块33根据索引值在TCAM中进行多个通配域的匹配,最终获得匹配结果。
[0055]本发明实施例提供的流表匹配装置,将流表项中的精确匹配表项和通配表项分开存储,将精确匹配表项存储在内存中,将通配表项存储在TCAM中,应用索引值index来代表精确匹配表项,减少了通配表项对TCAM资源的使用,提高TCAM的利用率;并且应用适合的查找算法分别进行精确匹配表项和通配表项的匹配,提高了查找速度。
[0056]本发明实施例提供的流表匹配装置,还可以包括划分模块,用于接收控制服务器下发的目标流表,所述目标流表包括至少一个流表项,各流表项包括多个精确匹配域和多个通配域;将各流表项中的多个精确匹配域与所述精确匹配流表中各所述精确匹配表项的多个精确匹配域进行匹配,若匹配成功,则获取与所述精确匹配表项对应的索引值;若匹配不成功,则在所述精确匹配流表中的一精确匹配表项中存储所述目标流表的多个精确匹配域,并为所述精确匹配表项分配一个索引值;以及,将所述目标流表的多个通配域存储在所述通配流表中的一个通配表项中,并将所述索引值存储在所述通配表项中的索引域内。装置通过划分模块34将流表划分成两部分,但是这样的划分对控制服务器并不需要获知,控制服务器按照现有技术处理即可,不会受到影响。
[0057]本发明实施例提供的流表匹配装置,还可以包括老化处理模块,用于为所述通配流表中的各通配表项设置有效时间,当有效时间结束后,若所述通配表项存储的索引值不与其他通配表项存储的索引值相同,则同时删除所述通配表项和所述索引值对应的精确匹配表项;以及,若所述通配表项存储的索引值与其他通配表项存储的索引值相同,则仅删除所述通配表项。由此可见,老化处理模块是以通配表项为单位的进行老化处理的。
[0058]本发明实施例还提供一种交换机,包括内存、三态内容寻址存储器和处理器。交换机维护有流表,所述流表包括精确匹配流表和通配流表,所述精确匹配流表存储在所述内存中,所述通配流表存储在所述三态内容寻址存储器中;所述精确匹配流表包括一个或多个精确匹配表项,每个精确匹配表项包括多个精确匹配域,每个精确匹配表项对应一个索引值;所述通配流表包括一个或多个通配表项,每个通配表项包括多个通配域以及一个用于存储所述索引值的索引域;通过所述索引值关联的精确匹配表项和通配表项组成一个完整的流表项。
[0059]处理器具体用于获取接收到的报文中的多个匹配域,所述多个匹配域包括多个精确匹配域和多个通配域;并将所述报文中的多个精确匹配域与所述精确匹配流表中各所述精确匹配表项的多个精确匹配域进行匹配,若匹配成功,则获取与所述精确匹配表项对应的索引值;以及,根据所述索引值,将所述报文中的多个通配域与所述通配流表中各所述通配表项的多个通配域 进行匹配,获得匹配结果。处理器在内存中进行精确匹配域的匹配过程中,可以采用哈希HASH算法进行匹配。
[0060]本发明实施例提供的交换机,将流表项中的精确匹配表项和通配表项分开存储,将精确匹配表项存储在内存中,将通配表项存储在TCAM中,应用索引值index来代表精确匹配表项,减少了通配表项对TCAM资源的使用,提高TCAM的利用率;并且应用适合的查找算法分别进行精确匹配表项和通配表项的匹配,提高了查找速度。
[0061]在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0062]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0063]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0064]上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(Random Access Memory, RAM)、磁碟或者光盘等各种可以存储程序代码的介质。[0065]本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0066]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【权利要求】
1.一种流表匹配方法,其特征在于,所述流表包括精确匹配流表和通配流表,所述精确匹配流表存储在内存中,所述通配流表存储在三态内容寻址存储器中;所述精确匹配流表包括一个或多个精确匹配表项,每个精确匹配表项包括多个精确匹配域,每个精确匹配表项对应一个索引值;所述通配流表包括一个或多个通配表项,每个通配表项包括多个通配域以及一个用于存储所述索引值的索引域;通过所述索引值关联的精确匹配表项和通配表项组成一个完整的流表项;所述方法包括: 获取接收到的报文中的多个匹配域,所述多个匹配域包括多个精确匹配域和多个通配域; 将所述报文中的多个精确匹配域与所述精确匹配流表中各所述精确匹配表项的多个精确匹配域进行匹配,若匹配成功,则获取与所述精确匹配表项对应的索引值; 根据所述索引值,将所述报文中的多个通配域与所述通配流表中各所述通配表项的多个通配域进行匹配,获得匹配结果。
2.根据权利要求1所述的方法,其特征在于,所述将所述报文中的多个精确匹配域与所述精确匹配流表中各所述精确匹配表项的多个精确匹配域进行匹配包括: 应用哈希HASH算法,进行所述报文中的多个精确匹配域与所述精确匹配流表中各所述精确匹配表项的多个精确匹配域的匹配。
3.根据权利要 求1或2所述的方法,其特征在于,所述方法还包括: 接收控制服务器下发的目标流表,所述目标流表包括至少一个流表项,各流表项包括多个精确匹配域和多个通配域; 将各流表项中的多个精确匹配域与所述精确匹配流表中各所述精确匹配表项的多个精确匹配域进行匹配,若匹配成功,则获取与所述精确匹配表项对应的索引值;若匹配不成功,则在所述精确匹配流表中的一精确匹配表项中存储所述目标流表的多个精确匹配域,并为所述精确匹配表项分配一个索引值; 将所述目标流表的多个通配域存储在所述通配流表中的一个通配表项中,并将所述索引值存储在所述通配表项中的索引域内。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括: 为所述通配流表中的各通配表项设置有效时间,当有效时间结束后,若所述通配表项存储的索引值不与其他通配表项存储的索引值相同,则同时删除所述通配表项和所述索引值对应的精确匹配表项; 若所述通配表项存储的索引值与其他通配表项存储的索引值相同,则仅删除所述通配表项。
5.一种流表匹配装置,其特征在于,所述流表匹配装置中存储有流表,所述流表包括精确匹配流表和通配流表,所述精确匹配流表存储在内存中,所述通配流表存储在三态内容寻址存储器中;所述精确匹配流表包括一个或多个精确匹配表项,每个精确匹配表项包括多个精确匹配域,每个精确匹配表项对应一个索引值;所述通配流表包括一个或多个通配表项,每个通配表项包括多个通配域以及一个用于存储所述索引值的索引域;通过所述索引值关联的精确匹配表项和通配表项组成一个完整的流表项;所述流表匹配装置包括: 获取模块,用于获取接收到的报文中的多个匹配域,所述多个匹配域包括多个精确匹配域和多个通配域;第一匹配模块,用于将所述报文中的多个精确匹配域与所述精确匹配流表中各所述精确匹配表项的多个精确匹配域进行匹配,若匹配成功,则获取与所述精确匹配表项对应的索引值; 第二匹配模块,用于根据所述索引值,将所述报文中的多个通配域与所述通配流表中各所述通配表项的多个通配域进行匹配,获得匹配结果。
6.根据所述权利要求5所述的装置,其特征在于,所述第一匹配模块还用于: 应用哈希HASH算法,进行所述报文中的多个精确匹配域与所述精确匹配流表中各所述精确匹配表项的多个精确匹配域的匹配。
7.根据所述权利要求5或6所述的装置,其特征在于,还包括: 划分模块,用于接收控制服务器下发的目标流表,所述目标流表包括至少一个流表项,各流表项包括多个精确匹配域和多个通配域;将各流表项中的多个精确匹配域与所述精确匹配流表中各所述精确匹配表项的多个精确匹配域进行匹配,若匹配成功,则获取与所述精确匹配表项对应的索引值;若匹配不成功,则在所述精确匹配流表中的一精确匹配表项中存储所述目标流表的多个精确匹配域,并为所述精确匹配表项分配一个索引值;以及,将所述目标流表的多个通配域存储在所述通配流表中的一个通配表项中,并将所述索引值存储在所述通配表项中的索引域内。
8.根据所述权利要求5或6所述的装置,其特征在于,还包括: 老化处理模块,用于为所述通配流表中的各通配表项设置有效时间,当有效时间结束后,若所述通配表项存储的索引值不与其他通配表项存储的索引值相同,则同时删除所述通配表项和所述索引值对应的精确匹配表项;以及,若所述通配表项存储的索引值与其他通配表项存储的索引值相同,则仅删除所述通配表项。
9.一种交换机,其特征在于,包括内存和三态内容寻址存储器;所述流表包括精确匹配流表和通配流表,所述精确匹配流表存储在所述内存中,所述通配流表存储在所述三态内容寻址存储器中;所述精确匹配流表包括一个或多个精确匹配表项,每个精确匹配表项包括多个精确匹配域,每个精确匹配表项对应一个索引值;所述通配流表包括一个或多个通配表项,每个通配表项包括多个通配域以及一个用于存储所述索引值的索引域;通过所述索引值关联的精确匹配表项和通配表项组成一个完整的流表项; 所述系统还包括: 处理器,用于获取接收到的报文中的多个匹配域,所述多个匹配域包括多个精确匹配域和多个通配域;并将所述报文中的多个精确匹配域与所述精确匹配流表中各所述精确匹配表项的多个精确匹配域进行匹配,若匹配成功,则获取与所述精确匹配表项对应的索引值;以及,根据所述索引值,将所述报文中的多个通配域与所述通配流表中各所述通配表项的多个通配域进行匹配,获得匹配结果。
10.根据所述权利要求9所述的交换机,其特征在于,所述处理器还用于: 应用哈希HASH算法,进行所述报文中的多个精确匹配域与所述精确匹配流表中各所述精确匹配表项的多个精确匹配域的匹配。
【文档编号】H04L12/743GK103905311SQ201210586928
【公开日】2014年7月2日 申请日期:2012年12月28日 优先权日:2012年12月28日
【发明者】周在福 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1