CN112637070A - 一种表项查找的方法和设备 - Google Patents

一种表项查找的方法和设备 Download PDF

Info

Publication number
CN112637070A
CN112637070A CN202011519687.1A CN202011519687A CN112637070A CN 112637070 A CN112637070 A CN 112637070A CN 202011519687 A CN202011519687 A CN 202011519687A CN 112637070 A CN112637070 A CN 112637070A
Authority
CN
China
Prior art keywords
value
index
group
keyword
values
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011519687.1A
Other languages
English (en)
Other versions
CN112637070B (zh
Inventor
闫伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou DPtech Information Technology Co Ltd
Original Assignee
Hangzhou DPtech Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou DPtech Information Technology Co Ltd filed Critical Hangzhou DPtech Information Technology Co Ltd
Priority to CN202011519687.1A priority Critical patent/CN112637070B/zh
Publication of CN112637070A publication Critical patent/CN112637070A/zh
Application granted granted Critical
Publication of CN112637070B publication Critical patent/CN112637070B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开提供一种表项查找的方法和设备,其中的方法应用于在FPGA芯片中查找关键字对应的目标数值,包括:获取关键字;在FPGA芯片存储的第一表中查找第一索引对应的第一组号和第一组有效性标识,第一表用于存储各个关键字对应的数值所属大组的组号和大组的组有效性标识,第一索引由关键字中的第一部分得到;若第一标识为有效,则在FPGA芯片存储的第二表中查找第二索引对应的表项,每个表项用于存储数值,每一个组有效性标识为有效的大组包括多个表项,第二索引由关键字的第二部分和第一组号得到;根据表项中的数值确定目标数值。本公开提供的技术方案减少了查找次数,提高了查找速度,实现了面积和速度的平衡优化。

Description

一种表项查找的方法和设备
技术领域
本公开涉及查找算法技术领域,尤其涉及一种表项查找的方法和设备。
背景技术
面积和速度是FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)设计中的永恒话题,如何处理好面积和速度之间的平衡关系在FPGA设计中非常重要。一方面,要提高处理速度,需要消耗更多的资源,即需要更大的面积;另一方面,为了减小面积,需要降低处理速度。在基于FPGA设计查找算法时,尽可能地节省资源和提高处理速度就成为了首要任务。
实际应用中,在传递报文时,每条流中某种类型的报文数量达到阈值N后将进行处理,需要根据报文的传输层协议类型和目的端口配置对应的阈值N,N为1到65536以内的正整数。
相关技术中,对于不同的报文查找阈值包括两种方法:一种方法是直接查找法,在FPGA芯片中存储所有传输层协议类型不同和目的端口不同的报文对应的阈值N,根据索引进行一次查找直接得到目标数值,查找速度快,但不同的报文的索引和对应的数值一一映射,耗用存储资源太多;另一种方法是二分查找法,存储需要查找的多种类型的报文,耗用存储资源较少,但需进行多次查找,查找速度太慢。两种查找方法都未能做到速度与面积的平衡处理,存在缺陷。
发明内容
有鉴于此,本公开实施例提供一种表项查找的方法和设备,以解决在FPGA芯片中查找时直接查找法面积大,二分查找法速度慢的问题。
具体地,本公开实施例是通过如下技术方案实现的:
第一方面,提供一种表项查找的方法,所述方法应用于在现场可编程逻辑门阵列FPGA芯片中查找关键字对应的目标数值,包括:
获取所述关键字;
在FPGA芯片存储的第一表中查找第一索引对应的第一组号和第一组有效性标识,所述第一表用于存储各个关键字所属大组的组号和所述大组的组有效性标识,所述第一索引由所述关键字中的第一部分得到;
若所述第一组有效性标识为有效,则在FPGA芯片存储的第二表中查找第二索引对应的表项,其中,每个所述表项用于存储数值,每一个组有效性标识为有效的所述大组包括多个所述表项,所述第二索引由所述关键字的第二部分和所述第一组号得到;
根据所述表项中的数值确定所述目标数值。
第二方面,提供一种表项查找的设备,所述设备应用于查找关键字对应的目标数值,包括:
获取模块,用于获取所述关键字;
一级查找模块,用于在FPGA芯片存储的第一表中查找第一索引对应的第一组号和第一组有效性标识,所述第一表用于存储各个关键字所属大组的组号和所述大组的组有效性标识,所述第一索引由所述关键字中的第一部分得到;
二级查找模块,用于若所述第一组有效性标识为有效,则在FPGA芯片存储的第二表中查找第二索引对应的表项,其中,每个所述表项用于存储数值,每一个组有效性标识为有效的所述大组包括多个所述表项,所述第二索引由所述关键字的第二部分和所述第一组号得到;
确定模块,用于根据所述表项中的数值确定所述目标数值。
本公开实施例提供的技术方案通过将关键字分组,进而将数值与索引多对一建立映射关系,避免了数值与索引一一映射,减少了映射占用的存储资源;将关键字拆分为多个部分,根据关键字的每个部分依次索引,减少了查找次数,提高了查找速度,实现了面积和速度的平衡优化。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
为了更清楚地说明本公开一个或多个实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开一个或多个实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本公开实施例示出的一种分组方式的示意图;
图2是本公开实施例示出的一种第一表的存储结构示意图;
图3是本公开实施例示出的一种第二表的存储结构示意图;
图4是直接查找法的一种存储结构示意图;
图5是本公开实施例示出的一种表项查找的方法的流程图;
图6是本公开实施例示出的一种表项查找设备的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的设备和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了实现FPGA芯片中速度与面积的平衡,本公开提供的技术方案引入了通过第一表和第二表存储数值的方法,在进行查找之前,要预先建立第一表和第二表。方法如下:
首先,按照关键字从小到大的顺序,将各个关键字划分成多个大组,每个大组中关键字的第一部分相同。选取需要查找数值的关键字所属的大组,为选中的每个大组从0开始连续分配一个唯一的组号,以及有效的组有效性标识。其他未被选中的大组的组有效性标识设为无效,组号可以不设置,也可以设为0。以关键字的第一部分为索引地址,在FPGA芯片中的第一表对应的存储空间依次存储上述大组的组号和大组的组有效性标识。
进一步地,对被选中的大组进行再分组,将每大组的关键字按从小到大的顺序分成多个小组。以小组在分组前所属大组的组号和关键字的第二部分为索引地址,在FPGA芯片中的第二表对应的存储空间依次存储表项,每个表项即每个小组中关键字对应的数值和数值的有效性标识。
下面结合不同的报文查找对应的阈值的具体实施例,进一步说明在建立第一表和第二表时的分组与存储方式。
分组方式参见图1,关键字为二进制数据,图1中以十进制形式表示关键字。对于不同传输层协议类型和目的端口的报文,提取的关键字为17比特位,取值范围为十进制的0到131071,其中,协议类型占一个最高的比特位,后面16个比特位表示目的端口号。将这131072个关键字按从小到大的顺序,每64个关键字分为一组,共分为2048组。每组关键字的高11比特位均相同,关键字的高11比特位即关键字的第一部分:协议类型和目的端口号第一部分比特位。由于并非每种报文都有对应的阈值,也并非每种类型的报文都需要查找阈值,所以选取其中需要查找阈值的关键字所属的大组,在本实施例中,共选取256个大组,每组任意分配一个唯一的组号,组号group的取值范围为0到255,占8个比特位。
进一步地,对被选中的256组关键字进行再分组,将每组的64个关键字按从小到大的顺序分组,在本实施例中,每4个关键字分为一小组,共分为4096小组。每小组关键字的高15比特位均相同,将高15比特位中关键字的第一部分去掉,即为关键字的第二部分:目的端口号的第二部分比特位,即目的端口号的低第2到5比特位(dport[5:2])。
具体存储方式:首先,参见图2所示的第一表,以每组关键字的高11比特位为索引地址,在第一表中每个大组对应的存储空间内写入一个组号及组有效性标识。其中被选中的256个大组对应的存储空间写入各自分配的组号并设置组有效性标识group_vld为1,表示该大组有效;其余未选中的各个大组对应的存储空间写入组号为0并设置组有效性标识group_vld为0,表示该大组无效。第一表总共使用深度为2048宽度为9比特的存储空间,可以存储在容量18kb的BRAM(Block RAM,块随机存取存储器)中。
参见图3所示的第二表,以小组在分组前所属大组的组号和关键字的第二部分和为索引地址,在第二表中每个小组对应的存储空间内写入每个小组内关键字对应的N值:N0、N1、N2、N3,并同时写入4个对应的有效性标识vld,vld为1表示N值有效,vld为0表示N值无效。第二表总共使用深度为4k宽度为68比特的存储空间,可以存储在深度为4k宽度为72比特容量为288kb的URAM(Ultra RAM,块随机存取存储器)中。
直接查找法的方案中将数值与索引一一映射进行存储,即使只需查找部分传输层协议类型和目的端口报文的阈值,也要存储所有的阈值,如图4,耗用一个深度为131072宽度为16的存储空间,需消耗2160Kb的BRAM资源。而本公开的技术方案共需要一个18kb的BRAM和一个288kb的URAM,共耗用306kb的存储资源,大大减少了存储资源的占用。
下面对本公开提供的技术方案的查找过程进行描述。
如图5所示,图5是本公开实施例示出的一种表项查找的方法的流程图,该方法用于在FPGA芯片中查找关键字对应的目标数值,包括以下步骤:
步骤S11,获取所述关键字。
关键字为二进制数据,可以通过各种方法获取文字、字母、符号和数字等,然后转换成二进制形式的关键字,本公开对此不进行限制。
仍以不同的报文查找对应的阈值作为实施例进行说明如何获取关键字,在需要根据目标报文的传输层协议类型和目的端口配置对应的阈值N,以使后续可以对不同阈值的目标报文做不同的处理时,获取所述关键字可以是:
接收待处理的目标报文。目标报文携带有传输层协议和目的端口,传输层协议可以是TCP(Transmission Control Protocol,传输控制协议)或UDP(User DatagramProtocol,用户数据报协议),目的端口号的取值范围从0到65535。
从所述目标报文中提取所述关键字,所述关键字包括:所述目标报文的协议类型和目的端口号。用1比特的数据pro表示目标报文的协议类型,pro值为0表示协议类型为TCP,pro值为1表示协议类型为UDP。目标报文的目的端口号可以用16比特的数据dport表示,目的端口号的二进制形式至少包括:目的端口号第一部分比特位和目的端口号第二部分比特位。将1比特的pro和16比特的dport组合为17比特的关键字,其中1比特的Pro处于数据的最高位,关键字的取值范围为十进制的0到131071。
步骤S12,在FPGA芯片存储的第一表中查找第一索引对应的第一组号和第一组有效性标识,所述第一表用于存储各个关键字所属大组的组号和所述大组的组有效性标识,所述第一索引由所述关键字中的第一部分得到。
在本步骤中,在获取关键字之后,先由关键字中的第一部分得到第一索引,在FPGA芯片存储的第一表中查找第一索引对应的存储空间,存储空间存放着第一组号和第一组有效性标识。
若第一组有效性标识为无效,即确定不存在与关键字对应的目标数值,不再进行查找。
延用上述不同的报文查找对应的阈值N的例子对本步骤进行说明:
在获取关键字之后,先由关键字中的高11比特位[16:6]得到第一索引,即协议类型Pro和目的端口号的高10比特数据dport[15:6]。在第一表中查找第一索引对应的存储空间中的组号和组有效性标识,即第一组号和第一组有效性标识。
若第一组有效性标识group_vld为0,则确定第一表中没有关键字对应的目标阈值,不再进行查找。
步骤S13,若所述第一组有效性标识为有效,则在FPGA芯片存储的第二表中查找第二索引对应的表项,其中,每个所述表项用于存储数值,每一个组有效性标识为有效的所述大组包括多个所述表项,所述第二索引由所述关键字的第二部分和所述第一组号得到。
在本步骤中,若第一组有效性标识为有效,则由第一组号和关键字的第二部分得到第二索引,在FPGA芯片存储的第二表中查找第二索引对应的表项。
延用上述不同的报文查找对应的阈值N的例子对本步骤进行说明:
若第一组有效性标识group_vld为1,则表示第一组号有效,将8比特的第一组号group和关键字的第二部分也就是低第2到5比特[5:2]组合为12比特二进制数据,即第二索引。参见图3,根据第二索引查找第二表,获取对应存储空间内的4组N值及对应的vld标识:vld0,N0;vld1,N1;vld2,N2;vld3,N3。
步骤S14,根据所述表项中的数值确定所述目标数值。
表项中的数值可以是多个,也可以是一个。
在一实施例中,当每个所述表项存储着M个数值和每个所述数值对应的数值有效性标识的情况下,所述M为自然数,所述根据所述表项中的数值确定所述目标数值包括:
在所述表项中确定第三索引的索引数值对应的数值和数值有效性标识,所述第三索引由所述关键字中的第三部分得到,且所述第三索引的索引数值为M个索引数值中的其中一个,M个所述索引数值与所述表项中的M个数值一一对应;
若所述数值有效性标识为有效,则确定所述数值为目标数值。
若所述数值有效性标识为无效,则确定不存在与所述关键字对应的目标数值。
延用上述不同的报文查找对应的阈值N的例子进行说明:
图3的每个表项存储4个数值和每个所述数值对应的数值有效性标识,则根据关键字的第三部分也就是低两比特位[1:0]得到第三索引,第三索引的索引数值可能为4个数值其中一个:00,01,10,11,即0,1,2,3。此时目的端口号还包括:第三部分比特位(dport[1:0])。如果索引数值为0,则确定N0为要查找的阈值;如果索引数值为1,则确定N1为要查找的阈值;如果索引数值为2,则确定N2为要查找的阈值;如果索引数值为3,则确定N3为要查找的阈值。最终根据数值有效性标识vld确定阈值N是否有效,vld为0表示N值无效,不存在与关键字对应的目标数值,即该报文未配置N值;vld为1表示N值有效,确定N为目标数值,N值即为查找结果。
在一实施例中,当每个所述表项中存储着一个数值和所述数值对应的数值有效性标识的情况下,所述根据所述表项中数值确定所述目标数值包括:
若所述数值有效性标识为有效,则确定所述数值为目标数值。
本实施例中,S12与S13是两级流水操作,对于多个查找关键字对应的目标数值的操作,两级流水并行处理,即一个查找操作在执行S12时,另一个查找操作在执行S13,因此,从时间上来看,一个查找关键字对应的目标数值的操作只耗用了一次查找的时间。另外,即使不使用两级流水并行处理,本公开的技术方案也只需要两次查找,相对于二分法查找操作的多次查找,大大提升了查找速度。
本公开实施例提供的技术方案通过将关键字分组,进而将数值与索引多对一建立映射关系,避免了数值与索引一一映射,减少了映射占用的存储资源;将关键字拆分为多个部分,根据关键字的每个部分依次索引,减少了查找次数,提高了查找速度,实现了面积和速度的平衡优化。
如图6所示,图6是本公开实施例示出的一种表项查找设备的框图,所述设备包括:
获取模块21,用于获取所述关键字;
一级查找模块22,用于在FPGA芯片存储的第一表中查找第一索引对应的第一组号和第一组有效性标识,所述第一表用于存储各个关键字所属大组的组号和所述大组的组有效性标识,所述第一索引由所述关键字的第一部分得到;
二级查找模块23,用于若所述第一组有效性标识为有效,则在FPGA芯片存储的第二表中查找第二索引对应的表项,其中,每个所述表项用于存储数值,每一个组有效性标识为有效的所述大组包括多个所述表项,所述第二索引由所述关键字的第二部分和所述第一组号得到;
确定模块24,用于根据所述表项中的数值确定所述目标数值。
本公开实施例提供的设备可以将关键字分组,进而将多个数值与索引建立映射关系,避免了数值与索引一一映射,减少了映射占用的存储资源;将关键字拆分为多个部分,根据关键字的每个部分依次索引,减少了查找次数,提高了查找速度,实现了面积和速度的平衡优化。
在一个例子中,所述获取模块,在用于获取所述关键字时,包括:接收待处理的目标报文;从所述目标报文中提取所述关键字,所述关键字包括:所述目标报文的协议类型和目的端口号,其中,所述目的端口号的二进制形式至少包括:目的端口号第一部分比特位和目的端口号第二部分比特位;所述关键字的第一部分包括:所述协议类型和所述目的端口号第一部分比特位;所述关键字的第二部分包括:所述目的端口号第二部分比特位。
在一个例子中,当每个所述表项存储着M个数值和每个所述数值对应的数值有效性标识的情况下,所述M为自然数,所述确定模块,在用于根据所述表项中的数值确定所述目标数值时,包括:在所述表项中确定第三索引的索引数值对应的数值和数值有效性标识,所述第三索引由所述关键字的第三部分得到,且所述第三索引的索引数值为M个索引数值中的其中一个,M个所述索引数值与所述表项中的M个数值一一对应;若所述数值有效性标识为有效,则确定所述数值为目标数值。若所述数值有效性标识为无效,则确定不存在与所述关键字对应的目标数值。
在一个例子中,当每个所述表项中存储着一个数值和所述数值对应的数值有效性标识的情况下,所述确定模块,在用于根据所述表项中数值确定所述目标数值时,包括:若所述数值有效性标识为有效,则确定所述数值为目标数值。
在上述设备实施例的基础上,所述设备可以是FPGA芯片。
上述各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

Claims (10)

1.一种表项查找的方法,其特征在于,所述方法应用于在现场可编程逻辑门阵列FPGA芯片中查找关键字对应的目标数值,所述方法包括:
获取所述关键字;
在FPGA芯片存储的第一表中查找第一索引对应的第一组号和第一组有效性标识,所述第一表用于存储各个关键字所属大组的组号和所述大组的组有效性标识,所述第一索引由所述关键字的第一部分得到;
若所述第一组有效性标识为有效,则在FPGA芯片存储的第二表中查找第二索引对应的表项,其中,每个所述表项用于存储数值,每一个组有效性标识为有效的所述大组包括多个所述表项,所述第二索引由所述关键字的第二部分和所述第一组号得到;
根据所述表项中的数值确定所述目标数值。
2.根据权利要求1所述的方法,其特征在于,所述获取所述关键字包括:
接收待处理的目标报文;
从所述目标报文中提取所述关键字,所述关键字包括:所述目标报文的协议类型和目的端口号,其中,所述目的端口号至少包括:第一部分比特位和第二部分比特位;
所述关键字的第一部分包括:所述协议类型和所述目的端口号的第一部分比特位;
所述关键字的第二部分包括:所述目的端口号的第二部分比特位。
3.根据权利要求1所述的方法,其特征在于,当每个所述表项存储着M个数值和每个所述数值对应的数值有效性标识的情况下,所述M为自然数,所述根据所述表项中的数值确定所述目标数值包括:
在所述表项中确定第三索引的索引数值对应的数值和数值有效性标识,所述第三索引由所述关键字的第三部分得到,且所述第三索引的索引数值为M个索引数值中的其中一个,M个所述索引数值与所述表项中的M个数值一一对应;
若所述数值有效性标识为有效,则确定所述数值为目标数值。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述数值有效性标识为无效,则确定不存在与所述关键字对应的目标数值。
5.根据权利要求1所述的方法,其特征在于,当每个所述表项中存储着一个数值和所述数值对应的数值有效性标识的情况下,所述根据所述表项中数值确定所述目标数值包括:
若所述数值有效性标识为有效,则确定所述数值为目标数值。
6.一种表项查找设备,其特征在于,所述设备应用于查找关键字对应的目标数值,包括:
获取模块,用于获取所述关键字;
一级查找模块,用于在FPGA芯片存储的第一表中查找第一索引对应的第一组号和第一组有效性标识,所述第一表用于存储各个关键字所属大组的组号和所述大组的组有效性标识,所述第一索引由所述关键字的第一部分得到;
二级查找模块,用于若所述第一组有效性标识为有效,则在FPGA芯片存储的第二表中查找第二索引对应的表项,其中,每个所述表项用于存储数值,每一个组有效性标识为有效的所述大组包括多个所述表项,所述第二索引由所述关键字的第二部分和所述第一组号得到;
确定模块,用于根据所述表项中的数值确定所述目标数值。
7.根据权利要求6所述的设备,其特征在于,所述获取模块,在用于获取所述关键字时,包括:
接收待处理的目标报文;
从所述目标报文中提取所述关键字,所述关键字包括:所述目标报文的协议类型和目的端口号,其中,所述目的端口号的二进制形式至少包括:目的端口号第一部分比特位和目的端口号第二部分比特位;
所述关键字的第一部分包括:所述协议类型和所述目的端口号第一部分比特位;
所述关键字的第二部分包括:所述目的端口号第二部分比特位。
8.根据权利要求6所述的设备,其特征在于,当每个所述表项存储着M个数值和每个所述数值对应的数值有效性标识的情况下,所述M为自然数,所述确定模块,在用于根据所述表项中的数值确定所述目标数值时,包括:
在所述表项中确定第三索引的索引数值对应的数值和数值有效性标识,所述第三索引由所述关键字的第三部分得到,且所述第三索引的索引数值为M个索引数值中的其中一个,M个所述索引数值与所述表项中的M个数值一一对应;
若所述数值有效性标识为有效,则确定所述数值为目标数值。
9.根据权利要求8所述的设备,其特征在于,所述确定模块,还用于:
若所述数值有效性标识为无效,则确定不存在与所述关键字对应的目标数值。
10.根据权利要求6所述的设备,其特征在于,当每个所述表项中存储着一个数值和所述数值对应的数值有效性标识的情况下,所述确定模块,在用于根据所述表项中数值确定所述目标数值时,包括:
若所述数值有效性标识为有效,则确定所述数值为目标数值。
CN202011519687.1A 2020-12-21 2020-12-21 一种表项查找的方法和设备 Active CN112637070B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011519687.1A CN112637070B (zh) 2020-12-21 2020-12-21 一种表项查找的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011519687.1A CN112637070B (zh) 2020-12-21 2020-12-21 一种表项查找的方法和设备

Publications (2)

Publication Number Publication Date
CN112637070A true CN112637070A (zh) 2021-04-09
CN112637070B CN112637070B (zh) 2022-07-01

Family

ID=75320518

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011519687.1A Active CN112637070B (zh) 2020-12-21 2020-12-21 一种表项查找的方法和设备

Country Status (1)

Country Link
CN (1) CN112637070B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101170563A (zh) * 2007-11-30 2008-04-30 杭州华三通信技术有限公司 一种匹配报文规则的方法和装置
CN101267331A (zh) * 2008-04-23 2008-09-17 华为技术有限公司 一种组播转发表查找方法和装置
CN101478447A (zh) * 2009-01-08 2009-07-08 中国人民解放军信息工程大学 一种深度报文检测方法和装置
CN101594319A (zh) * 2009-06-26 2009-12-02 华为技术有限公司 表项查找方法和装置
CN102123090A (zh) * 2011-02-23 2011-07-13 中国人民解放军国防科学技术大学 基于两级表存储和查询传输层信息的ip分片处理方法
CN103986656A (zh) * 2013-02-07 2014-08-13 华为技术有限公司 查找方法和查找装置
US20140241357A1 (en) * 2013-02-25 2014-08-28 Brocade Communications Systems, Inc. Techniques for customizing forwarding decisions via a hardware lookup result
CN109921995A (zh) * 2017-12-13 2019-06-21 华为技术有限公司 一种配置地址表的方法、fpga和应用该fpga的网络设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101170563A (zh) * 2007-11-30 2008-04-30 杭州华三通信技术有限公司 一种匹配报文规则的方法和装置
CN101267331A (zh) * 2008-04-23 2008-09-17 华为技术有限公司 一种组播转发表查找方法和装置
CN101478447A (zh) * 2009-01-08 2009-07-08 中国人民解放军信息工程大学 一种深度报文检测方法和装置
CN101594319A (zh) * 2009-06-26 2009-12-02 华为技术有限公司 表项查找方法和装置
CN102123090A (zh) * 2011-02-23 2011-07-13 中国人民解放军国防科学技术大学 基于两级表存储和查询传输层信息的ip分片处理方法
CN103986656A (zh) * 2013-02-07 2014-08-13 华为技术有限公司 查找方法和查找装置
US20140241357A1 (en) * 2013-02-25 2014-08-28 Brocade Communications Systems, Inc. Techniques for customizing forwarding decisions via a hardware lookup result
CN109921995A (zh) * 2017-12-13 2019-06-21 华为技术有限公司 一种配置地址表的方法、fpga和应用该fpga的网络设备

Also Published As

Publication number Publication date
CN112637070B (zh) 2022-07-01

Similar Documents

Publication Publication Date Title
US11102120B2 (en) Storing keys with variable sizes in a multi-bank database
JP4452183B2 (ja) プログラマブル状態マシンのデータ構造を作成して入力単語連鎖を構文解析する方法、プログラマブル状態マシンのデータ構造を使用して入力単語連鎖に対応する結果として得られた値を検索する方法、ワイヤスピードのディープ・パケット処理を行う方法、ディープ・パケット処理のための装置、チップ埋め込み装置、およびプログラミング・コード命令を含むコンピュータ・プログラム(ディープ・パケット処理のための方法および装置)
US9627063B2 (en) Ternary content addressable memory utilizing common masks and hash lookups
CN102377664B (zh) 一种基于tcam的区域匹配装置和方法
CN101594319B (zh) 表项查找方法和装置
US20050018683A1 (en) IP address storage technique for longest prefix match
KR20010077983A (ko) 데이터 패킷 분류 방법 및 수단
CN111988231B (zh) 一种掩码五元组规则匹配的方法及装置
CN111984835B (zh) 一种IPv4掩码五元组规则存储压缩方法及装置
CN113806403B (zh) 一种在智能网卡/dpu内降低查找匹配逻辑资源的方法
US7403526B1 (en) Partitioning and filtering a search space of particular use for determining a longest prefix match thereon
Lim et al. Reducing false positives of a Bloom filter using cross-checking Bloom filters
US20100325213A1 (en) Multi-tier, multi-state lookup
CN110505322B (zh) 一种ip地址段查找方法及装置
CN112637070B (zh) 一种表项查找的方法和设备
CN109039911B (zh) 一种基于hash查找方式共享ram的方法及***
CN112818185A (zh) 一种基于sram的最长前缀匹配硬件***查找的方法
CN110460528A (zh) 命名数据网转发平面的fib存储结构及其使用方法
Erdem et al. Value-coded trie structure for high-performance IPv6 lookup
Hsiao et al. A high-throughput and high-capacity IPv6 routing lookup system
EP3255571B1 (en) System and method for efficient interval search using locality-preserving hashing
CN112380324B (zh) 一种用于确定域名及其父域名的方法、***和介质
CN103399920A (zh) 键值搜索方法、键值搜索装置及芯片
CN110830375B (zh) 基于tcam存储路由mac信息的方法及装置
Lim et al. On the deletable bloom filter

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant