查找表的创建方法、查询方法、控制器、转发设备和系统与流程

文档序号:11965473阅读:400来源:国知局
查找表的创建方法、查询方法、控制器、转发设备和系统与流程
本发明涉及通信技术领域,尤其涉及一种查找表的创建方法、查询方法、控制器、转发设备和系统。

背景技术:
转发设备的数据转发性能显著的影响着网络数据的传输速度。当网络数据进入转发设备后,会按照该转发设备中的各个查找表中的转发动作的指示,一步一步地进行处理,直到数据跳转过若干个查找表后从所述转发设备输出。在SDN(软件定义网络,Software-DefinedNetworking)网络架构下,转发设备中的这些查找表是根据控制器下发指令创建的,以便在该转发设备上定制网络的转发行为。当网络数据在转发设备上的各个查找表中跳转,从而执行一系列的动作时,需要将网络数据中携带的关键字与各个查找表中的每个条目(entry)的关键字进行掩码匹配,相匹配的条目中的转发动作才被执行。然而,由于掩码匹配需要用到TCAM(三态内容寻址寄存器,Ternarycontentaddressablememory)电路,消耗大量的芯片资源,导致芯片门电路数量多、功耗大。

技术实现要素:
本发明实施例提供一种查找表的创建方法、查询方法、控制器、转发设备和系统,能够使门电路数量降低、功耗减小。为达到上述目的,本发明的实施例采用如下技术方案:第一方面,提供一种查找表的创建方法,包括:接收控制器发送的查找表创建消息,所述查找表创建消息包括查找表的标识和所述查找表的查找模式;根据所述查找表创建消息创建查找表并设置所述查找表的查找模式;接收所述控制器发送的条目添加消息,所述条目添加消息包括要添加的转发动作及所述转发动作的索引参数;根据所述条目添加消息在所述查找表中添加与所述条目添加消息对应的条目。在第一方面的第一种可能的实现方式中,所述查找模式包括线性查找模式、哈希hash查找模式、最长匹配查找模式和掩码查找模式之一。结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述查找表的查找模式为线性查找模式,所述索引参数包括关键字,所述根据所述条目添加消息在所述查找表中添加与所述条目添加消息对应的条目包括:以所述关键字为索引在所述查找表中得到一个空闲条目;将所述转发动作写入所述空闲条目。结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述查找表的查找模式为哈希hash查找模式,所述索引参数包括关键字,所述根据所述条目添加消息在所述查找表中添加与所述条目添加消息对应的条目包括:将所述关键字进行哈希hash运算得到桶索引,根据所述桶索引在所述查找表中得出哈希hash桶;将所述转发动作和所述关键字写入所述哈希hash桶中的一个空闲条目。结合第一方面的第一种可能的实现方式,在第四种可能的实现方式中,所述查找表的查找模式为最长匹配查找模式,所述索引参数包括关键字和掩码长度,所述根据所述条目添加消息在所述查找表中添加与所述条目添加消息对应的条目包括:将所述关键字及所述掩码长度进行第一运算得到最长匹配索引;根据所述最长匹配索引在所述查找表中找到一个空闲条目;将所述转发动作、所述关键字和所述掩码长度写入所述空闲条目。结合第一方面的第一种可能的实现方式,在第五种可能的实现方式中,所述查找表的查找模式为掩码查找模式,所述索引参数包括关键字和掩码,所述根据所述条目添加消息在所述查找表中添加所述转发动作包括:将所述关键字及所述掩码通过三态内容寻址寄存器得到一个空闲条目;将所述转发动作、所述关键字和所述掩码写入所述空闲条目。结合第一方面的第一至第五种可能的实现方式中的任一种,第二方面,提供一种创建的查找表的查询方法,包括:当报文跳转到所述查找表时,提取所述报文的关键字;以所述查找表对应的查找模式查找所述关键字对应的条目;执行查找到的条目中的转发动作。第三方面,提供一种转发设备,包括:接收单元,用于接收控制器发送的查找表创建消息,所述查找表创建消息包括查找表的标识和所述查找表的查找模式;所述接收单元,还用于接收所述控制器发送的条目添加消息,所述条目添加消息包括要添加的转发动作及所述转发动作的索引参数;创建单元,用于根据所述查找表创建消息创建查找表并设置所述查找表的查找模式;添加单元,用于根据所述条目添加消息在所述查找表中添加与所述条目添加消息对应的条目。第三方面的第一种可能的实现方式中,所述接收单元接收的查找表创建消息中的查找模式包括线性查找模式、哈希hash查找模式、最长匹配查找模式和掩码查找模式之一。结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述查找表的查找模式为线性查找模式,所述索引参数包括关键字,所述添加单元具体用于:以所述关键字为索引在所述查找表中得到一个空闲条目;将所述转发动作写入所述空闲条目。结合第三方面的第一种可能的实现方式,在第三种可能的实现方式中,所述查找表的查找模式为哈希hash查找模式,所述索引参数包括关键字,所述添加单元具体用于:将所述关键字进行哈希hash运算得到桶索引,根据所述桶索引在所述查找表中得出哈希hash桶;将所述转发动作和所述关键字写入所述哈希hash桶中的一个空闲条目。结合第三方面的第一种可能的实现方式,在第四种可能的实现方式中,所述查找表的查找模式为最长匹配查找模式,所述索引参数包括关键字和掩码长度,所述添加单元具体用于:将所述关键字及所述掩码长度进行第一运算得到最长匹配索引;根据所述最长匹配索引在所述查找表中找到一个空闲条目;将所述转发动作、所述关键字和所述掩码长度写入所述空闲条目。结合第三方面的第一种可能的实现方式,在第五种可能的实现方式中,所述查找表的查找模式为掩码查找模式,所述索引参数包括关键字和掩码,所述添加单元具体用于:将所述关键字及所述掩码通过三态内容寻址寄存器得到一个空闲条目;将所述转发动作、所述关键字和所述掩码写入所述空闲条目。结合第三方面及第三方面的第一至五种可能的实现方式中任一种,在第六种可能的实现方式中,所述转发设备,还包括:提取单元,用于当报文跳转到所述查找表时,提取所述报文中的关键字;查找单元,用于以所述查找表对应的查找模式查找所述关键字对应的条目;执行单元,用于执行查找到的条目中的转发动作。第四方面,提供一种控制器,包括:发送单元,用于发送查找表创建消息到转发设备以使所述转发设备创建查找表,所述查找表创建消息包括所述查找表的标识和所述查找表的查找模式;所述发送单元还用于发送条目添加消息到所述转发设备以使所述转发设备在所述查找表中添加条目,所述条目添加消息包括要添加的转发动作及所述转发动作的索引参数。第四方面的第一种可能的实现方式,所述发送单元发送的查找表创建消息中的查找模式包括线性查找模式、哈希hash查找模式、最长匹配查找模式和掩码查找模式之一。第五方面,提供一种转发设备,包括:存储器,用于存储软件程序和数据;无线通信模块,用于接收控制器发送的消息;处理器,用于执行存储器中的软件程序,具体执行:接收控制器发送的查找表创建消息,所述查找表创建消息包括查找表的标识和所述查找表的查找模式;接收所述控制器发送的条目添加消息,所述条目添加消息包括要添加的转发动作及所述转发动作的索引参数;根据所述查找表创建消息创建查找表并设置所述查找表的查找模式;根据所述条目添加消息在所述查找表中添加与所述条目添加消息对应的条目。第五方面的第一种可能的实现方式中,所述处理器接收的查找表创建消息中的查找模式包括线性查找模式、哈希hash查找模式、最长匹配查找模式和掩码查找模式之一。结合第五方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理器还用于:当报文跳转到所述查找表时,提取所述报文中的关键字;以所述查找表对应的查找模式查找所述关键字对应的条目;执行查找到的条目中的转发动作。第六方面,提供一种控制器,包括:存储器,用于存储软件程序和数据;无线通信模块,用于向转发设备发送消息;处理器,用于执行存储器中的软件程序,具体执行:发送查找表创建消息到转发设备以使所述转发设备创建查找表,所述查找表创建消息包括所述查找表的标识和所述查找表的查找模式;发送条目添加消息到所述转发设备以使所述转发设备在所述查找表中添加条目,所述条目添加消息包括要添加的转发动作及所述转发动作的索引参数。第七方面,提供一种转发系统,包括控制器和转发设备,所述转发设备与所述控制器相连,所述控制器,用于发送查找表的创建消息到所述转发设备,所述创建消息包括所述查找表的标识和所述查找表的查找模式;以及发送条目添加消息到所述转发设备,所述条目添加消息包括要添加的转发动作以及所述转发动作的索引参数;所述转发设备,用于接收所述查找表的创建消息,根据所述创建消息创建查找表,并利用所述查找模式设置所创建的查找表;以及根据所述条目添加消息中的转发动作以及索引参数在所述查找表中添加对应的条目。本发明实施例提供的查找表的创建方法、查询方法、控制器、转发设备和系统,在查找表创建消息中包括了查找表的标识和所述查找表的查找模式,为不同的查找表提供不同的查找模式,而不必使所有查找表都只能采用掩码匹配模式进行查找,因而大大减少了用于进行掩码匹配的TCAM电路的数量,使芯片门电路数量降低、功耗减小。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的查找表的创建方法的一种流程图;图2为本发明实施例提供的查找表的创建方法的另一种流程图;图3为本发明实施例提供的查找表的查询方法的一种流程图;图4为本发明实施例提供的控制器的一种结构示意图;图5为本发明实施例提供的转发设备的一种结构示意图;图6为本发明实施例提供的转发设备的另一种结构示意图。图7为本发明实施例提供的控制器的一种结构示意图;图8为本发明实施例提供的转发设备的一种结构示意图;图9为本发明实施例提供的转发系统的一种结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面结合附图对本发明实施例的方法进行详细描述。如图1所示,本发明的实施例提供一种查找表的创建方法,包括:S11,发送查找表创建消息到转发设备以使所述转发设备创建查找表,所述查找表创建消息包括所述查找表的标识和所述查找表的查找模式;S12,发送条目添加消息到所述转发设备以使所述转发设备在所述查找表中添加条目,所述条目添加消息包括要添加的转发动作及所述转发动作的索引参数。本发明实施例提供的查找表的创建方法,在查找表创建消息中包括了查找表的标识和所述查找表的查找模式,为不同的查找表提供不同的查找模式,而不必使所有查找表都只能采用掩码匹配模式进行查找,因而大大减少了用于进行掩码匹配的TCAM电路的数量,使芯片门电路数量降低、功耗减小。需要说明的是,在SDN网络框架下,控制器可以通过向转发设备发指令定制报文在该转发设备上的转发行为。这种指令具体可以表现为在步骤S11中发送的查找表创建消息以及在步骤S12中发送的条目添加消息。通过步骤S11和步骤S12,控制器即可在所述转发设备上创建查找表,并在所创建的查找表中插入具体的条目。在所插入的条目中,将转发动作写入查找表的具体条目中是核心,而为了能确定各个转发动作在所述查找表中的位置,可选的,还可以将所述转发动作对应的索引参数写入该转发动作所在的条目中。具体的,查找模式是报文到达转发设备的各个查找表后,用以分别找到该报文需要执行的转发动作的方法,每一个查找表都具有自己的查找模式。对于不同的查找表,可以建立不同的查找模式。而查找模式的种类以及每种查找模式的具体算法不限。可选的,在本发明的一个实施例中,对于某个查找表,其查找模式可以为线性查找模式、哈希(hash)查找模式、最长匹配查找模式和掩码查找模式中的任一种。这四种查找模式算法不同,计算复杂程度不同,所需要的芯片资源也有很大差异。对于结构较简单的查找表,报文跳转到该查找表时只需要通过较为简单的查找方法即可获知其需要执行的转发动作,因此可以将该查找表按照线性查找模式或hash查找模式建立;而对于结构较复杂的查找表,线性查找模式或hash查找模式已经不足满足该查找表的查找需要,因此需要使该查找表按照更为复杂的查找模式建立,如按照最长匹配查找模式或掩码查找模式建立。例如,在本发明的一个实施例中,如果步骤S11中发送查找表创建消息中,所述查找表的标识为B1,所述查找表B1所采用的查找模式为线性查找模式,则在步骤S12中所发送的条目添加消息中,要添加的转发动作的索引参数包括关键字(key)。如果步骤S11中发送查找表创建消息中,所述查找表的标识为B2,所述查找表B2所采用的查找模式为hash查找模式,则在步骤S12中发送的条目添加消息中,要添加的转发动作的索引参数也包括关键字。上述线性查找模式和hash查找模式对于查找表中的条目的查找都较为简单,因此仅需要关键字作为索引参数。而以下两种查找模式对于查找表中的条目的查找相对复杂,因此,除了关键字外,其索引参数还包括掩码长度或掩码。具体的,如果步骤S11中发送查找表创建消息中,所述查找表的标识为B3,所述查找表B3所采用的查找模式为最长匹配查找模式,则在步骤S12中发送的条目添加消息中,要添加的转发动作的索引参数包括关键字和掩码长度。具体的,如果步骤S11中发送查找表创建消息中,所述查找表的标识为B4,所述查找表B4所采用的查找模式为掩码查找模式,则在步骤S12中发送的条目添加消息中,要添加的转发动作的索引参数包括关键字和掩码。相应的,如图2所示,本发明的实施例还提供一种查找表的创建方法,包括如下步骤:S21,接收控制器发送的查找表创建消息,所述查找表创建消息包括查找表的标识和所述查找表的查找模式;S22,根据所述查找表创建消息创建查找表并设置所述查找表的查找模式;S23,接收所述控制器发送的条目添加消息,所述条目添加消息包括要添加的转发动作及所述转发动作的索引参数;S24,根据所述条目添加消息在所述查找表中添加与所述条目添加消息对应的条目。本发明实施例提供的查找表的创建方法,能够接收控制器发送的查找表创建消息,在该查找表创建消息中包括了查找表的标识和所述查找表的查找模式,为不同的查找表提供不同的查找模式和索引参数,而不必使所有查找表都只能采用掩码查找模式进行查找,因而大大减少了用于进行掩码匹配的TCAM电路的数量,使芯片门电路数量降低、功耗减小。可选的,所述查找模式可以为线性查找模式、hash查找模式、最长匹配查找模式和掩码查找模式中的任一种。下面根据各个查找模式的不同,分别描述在每一种查找模式下的查找表创建操作。在本发明的一个实施例中,如果在步骤S21中接收到的查找表创建消息中,所述查找表的查找模式为线性查找模式,则在步骤S22中,根据所述查找表创建消息创建查找表并设置所述查找表的查找模式为线性查找模式,在步骤S23中,接收的条目添加消息中包括要添加的转发动作以及该转发动作的索引参数,其中,所述索引参数包括关键字。那么,在步骤S24中,所述根据所述条目添加消息在所述查找表中添加与所述条目添加消息对应的条目具体可以包括:以所述关键字为索引在所述查找表中得到一个空闲条目;将所述转发动作写入所述空闲条目。本实施例中,索引参数中的关键字与查找表中的条目具有线性关系,因此可以直接以该关键字的值为索引而得到一个空闲条目,并将与该关键字对应的转发动作写入该空闲条目,简单而有效地完成了查找表的创建和条目添加。在本发明的另一个实施例中,如果在步骤S21中接收到的查找表创建消息中,所述查找表的查找模式为hash查找模式,则在步骤S22中,根据所述查找表创建消息创建查找表并设置所述查找表的查找模式为hash查找模式,在步骤S23中,接收的条目添加消息中包括要添加的转发动作以及该转发动作的索引参数,其中,所述索引参数包括关键字。那么,在步骤S24中,所述根据所述条目添加消息在所述查找表中添加与所述条目添加消息对应的条目可以包括:将所述关键字进行hash运算得到桶索引,根据所述桶索引在所述查找表中得出hash桶;将所述转发动作和所述关键字写入所述hash桶中的一个空闲条目。其中,hash运算为一种函数运算,将该关键字带入hash函数计算后,可以得到hash桶索引,并根据该hash桶索引得到与该桶索引对应的hash桶。其中,该hash桶中只包含若干个条目的索引;然后,可以在该hash桶这个条目数量相对较小的范围内找到一个空闲条目,并将条目添加消息中的转发动作写入该空闲条目。这样,先通过简单的hash运算缩小索引的查找范围,然后在较小的范围内寻找空闲索引,从而能够以较简单的方式实现对稍复杂的查找表的创建。在本发明的另一个实施例中,如果在步骤S21中接收到的查找表创建消息中,所述查找表的查找模式为最长匹配查找模式,则在步骤S22中,根据所述查找表创建消息创建查找表并设置所述查找表的查找模式为最长匹配查找模式,在步骤S23中,接收的条目添加消息中包括要添加的转发动作以及该转发动作的索引参数,其中,所述索引参数包括关键字和掩码长度。那么,在步骤S24中,所述根据所述条目添加消息在所述查找表中添加与所述条目添加消息对应的条目可以包括:将所述关键字及所述掩码长度进行第一运算得到最长匹配索引;根据所述最长匹配索引在所述查找表中找到一个空闲条目;将所述转发动作、所述关键字和所述掩码长度写入所述空闲条目。具体的,首先可以通过将所述关键字及所述掩码长度进行第一运算得到最长匹配索引,其中,所述第一运算可以为能够通过由所述关键字和所述掩码长度得到所述最长匹配索引的运算或处理,如利用所述关键字及所述掩码长度建立二叉树,该二叉树可以作为得到的一个最长匹配索引。可选的,本实施例中,是直接将掩码长度写入所述空闲条目中的,在本发明的其他实施例中,也可以将掩码写入所述空闲条目中,这样由该掩码即可确定掩码长度,因此同样可以进行最长匹配查找。在本发明的另一个实施例中,如果在步骤S21中接收到的查找表创建消息中,所述查找表的查找模式为掩码查找模式,则在步骤S22中,根据所述查找表创建消息创建查找表并设置所述查找表的查找模式为掩码查找模式,在步骤S23中,接收的条目添加消息中包括要添加的转发动作以及该转发动作的索引参数,其中,所述索引参数包括关键字和掩码。那么,在步骤S24中,所述根据所述条目添加消息在所述查找表中添加与所述条目添加消息对应的条目包括:将所述关键字及所述掩码通过TCAM得到一个空闲条目;将所述转发动作、所述关键字和所述掩码写入所述空闲条目。本实施例中,需要通过TCAM的方式来实现掩码的匹配,电路结构较为复杂,但本实施例中,所创建的查找表结构较复杂,前述三种查找方法已经不能满足本实施例中的查找表的创建和查找要求,因此掩码查找模式的使用确实是必需的,没有浪费转发设备中的资源。需要说明的是,在上述四种查找模式的查找表的创建中,条目添加消息中的转发动作及所述转发动作的索引参数都是必须的,但对于线性查找方式的查找表,由于查找算法简单,因而不需要将该索引参数写入查找表的具体条目中。而对于hash查找模式、最长匹配查找模式以及掩码查找模式的查找表,查找算法较为复杂,因此需要将其索引参数写入所述查找表中的对应条目中。通过上述的四种查找模式的实施例,本发明提供的查找表的创建方法能够根据要创建的查找表的复杂程度来为创建的每一个查找表确定一个合适的查找模式,这样,对于很多结构较为简单的查找表,可以采用线性查找模式、hash查找模式、或最长匹配查找模式等相对简单的查找模式,而只有那些结构复杂必须采用掩码查找模式创建和查找的查找表才采用掩码查找模式,因而充分利用了转发设备中的资源,大大减少了用于进行掩码匹配的TCAM电路的数量,使芯片门电路数量降低、功耗减小。相应的,本发明的实施例还提供一种查找表的查询方法,如图3所示,包括如下步骤:S31,当报文跳转到所述查找表时,提取所述报文中的关键字;S32,以所述查找表对应的查找模式查找所述关键字对应的条目;S33,执行查找到的条目中的转发动作。具体的,在步骤S32中,根据所述查找表所采用的查找模式的不同,查找所述关键字对应的条目的方法也不相同。具体来说,如果查找表FLOW_TABLE_1采用线性查找模式,则在转发设备转发报文时,当跳转到FLOW_TABLE_1表时,将关键字提取出来,并将该关键字作为索引直接查找FLOW_TABLE_1表,得到其需要执行的转发操作。如果查找表FLOW_TABLE_2采用hash查找模式,则在转发设备转发报文时,当跳转到FLOW_TABLE_2表时,将关键字提取出来,并将关键字进行hash运算后得出hash桶索引,在桶内搜索条目的关键字与本次查找的关键字相等的条目,将该条目的转发动作读取出来并执行。如果查找表FLOW_TABLE_3采用最长匹配查找模式,在转发设备转发报文时,当跳转到FLOW_TABLE_3表时,将关键字提取出来,并将关键字进行第一运算后得出最长匹配索引,利用该最长匹配索引在所述查找表中搜索关键字与本次查找的关键字相等的条目,将该条目的转发动作读取出来并执行。如果查找表FLOW_TABLE_4采用掩码查找模式,在转发设备转发报文时,当跳转到FLOW_TABLE_4表时,将关键字提取出来,将关键字在TCAM中进行查找,当命中一个条目后,将该条目的转发动作读取出来并执行。相应的,如图4所示,本发明还提供一种控制器10,包括:发送单元11,用于发送查找表创建消息到转发设备以使所述转发设备创建查找表,所述查找表创建消息包括所述查找表的标识和所述查找表的查找模式;所述发送单元11,还用于发送条目添加消息到所述转发设备以使所述转发设备在所述查找表中添加条目,所述条目添加消息包括要添加的转发动作及所述转发动作的索引参数。本发明实施例提供的控制器10,通过发送单元11向转发设备发送查找表创建消息,在查找表创建消息中包括了查找表的标识和所述查找表的查找模式,为不同的查找表提供不同的查找模式,而不必使所有查找表都只能采用掩码匹配模式进行查找,因而大大减少了用于进行掩码匹配的TCAM电路的数量,使芯片门电路数量降低、功耗减小。可选的,所述发送单元11发送的查找表创建消息中的查找模式包括线性查找模式、哈希hash查找模式、最长匹配查找模式和掩码查找模式之一。相应的,如图5所示,本发明的实施例还提供一种转发设备20,包括:接收单元21,用于接收控制器发送的查找表创建消息,所述查找表创建消息包括查找表的标识和所述查找表的查找模式;所述接收单元21,还用于接收所述控制器发送的条目添加消息,所述条目添加消息包括要添加的转发动作及所述转发动作的索引参数;创建单元22,用于根据所述查找表创建消息创建查找表并设置所述查找表的查找模式;添加单元23,用于根据所述条目添加消息在所述查找表中添加与所述条目添加消息对应的条目。本发明实施例提供的转发设备20,能够通过接收单元21接收查找表创建消息,在该查找表创建消息中包括了查找表的标识和所述查找表的查找模式,为不同的查找表提供不同的查找模式,并由创建单元22和添加单元23创建这些不同查找模式的查找表并向所述查找表中添加条目,不必使所有查找表都只能采用掩码匹配模式进行查找,因而大大减少了用于进行掩码匹配的TCAM电路的数量,使芯片门电路数量降低、功耗减小。可选的,所述接收单元21接收的查找表创建消息中的查找模式包括线性查找模式、哈希hash查找模式、最长匹配查找模式和掩码查找模式之一。可选的,如果所述查找表的查找模式为线性查找模式,所述索引参数包括关键字,所述添加单元23具体用于:以所述关键字为索引在所述查找表中得到一个空闲条目;将所述转发动作写入所述空闲条目。可选的,如果所述查找表的查找模式为哈希hash查找模式,所述索引参数包括关键字,所述添加单元23具体用于:将所述关键字进行哈希hash运算得到桶索引,根据所述桶索引在所述查找表中得出哈希hash桶;将所述转发动作和所述关键字写入所述哈希hash桶中的一个空闲条目。可选的,如果所述查找表的查找模式为最长匹配查找模式,所述索引参数包括关键字和掩码长度,所述添加单元23具体用于:将所述关键字及所述掩码长度进行第一运算得到最长匹配索引;根据所述最长匹配索引在所述查找表中找到一个空闲条目;将所述转发动作、所述关键字和所述掩码长度写入所述空闲条目。可选的,如果所述查找表的查找模式为掩码查找模式,所述索引参数包括关键字和掩码,所述添加单元23具体用于:将所述关键字及所述掩码通过三态内容寻址寄存器得到一个空闲条目;将所述转发动作、所述关键字和所述掩码写入所述空闲条目。进一步的,如图6所示,在本发明的另一个实施例中,所述转发设备20还可包括:提取单元24,用于当报文跳转到所述查找表时,提取所述报文中的关键字;查找单元25,用于以所述查找表对应的查找模式查找所述关键字对应的条目;执行单元26,用于执行查找到的条目中的转发动作。这样,当报文跳转到所述查找表时,能够根据不同查找表的查找模式进行转发动作的查找,而不必使所有查找表都只能采用掩码查找模式进行查找,因而大大减少了用于进行掩码匹配的TCAM电路的数量,使芯片门电路数量降低、功耗减小。相应的,如图7所示,本发明的实施例还提供一种控制器30,包括:存储器31、无线通信模块32、处理器33。其中,存储器31,用于存储软件程序和数据;无线通信模块32,用于向转发设备发送消息,特别的,将处理器33的消息发送给转发设备;通常,所述无线通信模块32包括但不限于蓝牙、WiFi等。处理器33,用于执行存储器中的软件程序,具体执行:发送查找表创建消息到转发设备以使所述转发设备创建查找表,所述查找表创建消息包括所述查找表的标识和所述查找表的查找模式;发送条目添加消息到所述转发设备以使所述转发设备在所述查找表中添加条目,所述条目添加消息包括要添加的转发动作及所述转发动作的索引参数。本发明实施例提供的控制器30,向转发设备发送查找表创建消息,在查找表创建消息中包括了查找表的标识和所述查找表的查找模式,为不同的查找表提供不同的查找模式,而不必使所有查找表都只能采用掩码匹配模式进行查找,因而大大减少了用于进行掩码匹配的TCAM电路的数量,使芯片门电路数量降低、功耗减小。可选的,所述处理器33发送的查找表创建消息中的查找模式包括线性查找模式、哈希hash查找模式、最长匹配查找模式和掩码查找模式之一。相应的,如图8所示,本发明的实施例还提供一种转发设备40,包括:存储器41、无线通信模块42、处理器43。其中,存储器41,用于存储软件程序和数据;无线通信模块42,用于接收控制器发送的消息,特别的,将控制器发送的消息给处理器43进行处理;通常,所述无线通信模块包括但不限于蓝牙、WiFi等。处理器43,用于执行存储器中的软件程序,具体执行:接收控制器发送的查找表创建消息,所述查找表创建消息包括查找表的标识和所述查找表的查找模式;接收所述控制器发送的条目添加消息,所述条目添加消息包括要添加的转发动作及所述转发动作的索引参数;根据所述查找表创建消息创建查找表并设置所述查找表的查找模式;根据所述条目添加消息在所述查找表中添加与所述条目添加消息对应的条目。本发明实施例提供的转发设备40,能够接收查找表创建消息,在该查找表创建消息中包括了查找表的标识和所述查找表的查找模式,为不同的查找表提供不同的查找模式,并创建这些不同查找模式的查找表并向所述查找表中添加条目,不必使所有查找表都只能采用掩码匹配模式进行查找,因而大大减少了用于进行掩码匹配的TCAM电路的数量,使芯片门电路数量降低、功耗减小。可选的,所述处理器43接收的查找表创建消息中的查找模式包括线性查找模式、哈希hash查找模式、最长匹配查找模式和掩码查找模式之一。具体的,所述查找表的查找模式为线性查找模式,所述索引参数包括关键字,所述处理器43具体用于:以所述关键字为索引在所述查找表中得到一个空闲条目;将所述转发动作写入所述空闲条目。具体的,所述查找表的查找模式为哈希hash查找模式,所述索引参数包括关键字,所述处理器43具体用于:将所述关键字进行哈希hash运算得到桶索引,根据所述桶索引在所述查找表中得出哈希hash桶;将所述转发动作和所述关键字写入所述哈希hash桶中的一个空闲条目。具体的,所述查找表的查找模式为最长匹配查找模式,所述索引参数包括关键字和掩码长度,所述处理器43具体用于:将所述关键字及所述掩码长度进行第一运算得到最长匹配索引;根据所述最长匹配索引在所述查找表中找到一个空闲条目;将所述转发动作、所述关键字和所述掩码长度写入所述空闲条目。具体的,所述查找表的查找模式为掩码查找模式,所述索引参数包括关键字和掩码,所述处理器43具体用于:将所述关键字及所述掩码通过三态内容寻址寄存器得到一个空闲条目;将所述转发动作、所述关键字和所述掩码写入所述空闲条目。进一步的,所述处理器43还用于:当报文跳转到所述查找表时,提取所述报文中的关键字;以所述查找表对应的查找模式查找所述关键字对应的条目;执行查找到的条目中的转发动作。相应的,如图9所示,本发明的实施例还提供一种转发系统60,包括控制器61和转发设备62,所述转发设备62与所述控制器61相连。所述控制器61,用于发送查找表的创建消息到所述转发设备62,所述创建消息包括所述查找表的标识和所述查找表的查找模式;以及发送条目添加消息到所述转发设备62,所述条目添加消息包括要添加的转发动作以及所述转发动作的索引参数;所述转发设备62,用于接收所述查找表的创建消息,根据所述创建消息创建查找表,并利用所述查找模式设置所创建的查找表;以及根据所述条目添加消息中的转发动作以及索引参数在所述查找表中添加对应的条目。本发明实施例提供的转发系统60,在查找表创建消息中包括了查找表的标识和所述查找表的查找模式,为不同的查找表提供不同的查找模式,而不必使所有查找表都只能采用掩码匹配模式进行查找,因而大大减少了用于进行掩码匹配的TCAM电路的数量,使芯片门电路数量降低、功耗减小。通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1