CN104702508A - 表项动态更新方法及系统 - Google Patents
表项动态更新方法及系统 Download PDFInfo
- Publication number
- CN104702508A CN104702508A CN201510130657.4A CN201510130657A CN104702508A CN 104702508 A CN104702508 A CN 104702508A CN 201510130657 A CN201510130657 A CN 201510130657A CN 104702508 A CN104702508 A CN 104702508A
- Authority
- CN
- China
- Prior art keywords
- list item
- look
- ram
- dynamically updating
- keywords
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000003247 decreasing effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种表项动态更新方法和一种表项动态更新系统,用于动态更新查找表,所述方法包括:检测查找表是否更新表项;当检测到所述查找表更新所述表项时,逐个对所述表项中的待更新表项的所有关键字进行相应地RAM配置。通过本发明的技术方案,在满足查找表的动态更新的同时可以节省硬件资源,减少RAM的使用量,并能够使写入不同RAM中的数据同时写入。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种表项动态更新方法和一种表项动态更新系统。
背景技术
在数据通信领域,查找表在网络设备中广泛存在,比如交换/路由设备根据转发表项来进行报文的转发。在IPSEC(Security Architecture for IPnetwork,IP层协议安全结构)设备中的查找表应用场景,在Outbound方向,即从被保护网络向未受保护的网络传输数据时,IPSEC设备会进行这样的处理:
提取输入报文的关心信息作为关键字(关键字可能包含源IP地址,目的IP地址等很多信息),为方便起见,这里我们只选取一个IP地址的16位作为关键字。
用关键字查询SPD(Security Policy Database,安全策略库)表,得到对应的SAD(Security Association Database,安全联盟库)表条目编号。一张简化后的SPD表如下:
序号 | 关键字 | 对应SAD表条目 |
0 | 172.10~172.12 | 0 |
1 | 172.20~192.25 | 1 |
… | … | … |
用查到的SAD表条目编号,从SAD表得到相应信息,一张简化后的SAD表如下(假设SAD表只有4条):
序号 | 关键字 |
0 | 信息0 |
1 | 信息1 |
2 | 信息2 |
3 | 信息3 |
根据查到的信息做相应处理。
硬件(FPGA或ASIC芯片)上至少有两种方法实现SPD查找表过程:
(1)直接用上面的格式配置RAM,关键字可以分为起始地址和结束地址字段进行存储(也可以用掩码等方式)。根据输入关键字,遍历查找该RAM(可使用顺序和二分等方法),直到找到命中条目(或没有匹配的)。(2)RAM_0检查高8位的关键字,RAM_1检查低8位的关键字。比如,输入172.21,172作为起始地址送入RAM_0,输出match_0=0011(从最左边的最高位向右,依次表示每个SAD表条目编号是否匹配),同样的RAM_1,输出match_1=0010。二者相与后得到0010,译码后为1,即SAD地址。RAM结构如图1所示。
第一种方法的问题在于,无法预知查找表的过程需要多少步才能完成,即不知道需要多少个时钟周期才能完成。有可能第一次就找到了命中目标,也有可能找了很多次才找到。试想每一个时钟周期都有输入的关键字进行查找,当新来关键字时,上一次的结果可能还没找到,也就降低了整个系统的处理速度。
第二种方法的问题在于,实际应用中,如果使用SPD表与SAD表都是要动态修改的。比如,对下面的查找表,将序号1的条目更新为2,将序号2的条目更新为1增加一个SPD条目2,如下表所示:
序号 | 关键字 | 对应SAD表条目 |
0 | 172.10~172.12 | 0 |
1 | 100.1 | 1->2 |
2 | 200.2 | 2->1 |
… | … | … |
此时,我们会发现需要修改两块RAM中的数据(实际中可能会有非常多的RAM)。修改通常由CPU下达指令进行操作。受到实际限制(比如CPU数据线位宽),会导致RAM配置不能同时更新(配置内容可能非常多)。比如,先更新RAM_0,再更新RAM_1。考虑到业务数据流是不能中断的,即是动态更新的,RAM的读写是穿插进行的。在更新完RAM_0后,RAM_1还没有更新,此时到来业务数据100.2,我们会发现它被错误的命中并返回SAD条目2。
为解决上述问题,现有的解决方法是:使用两套SPD表,当动态修改一套表时,业务数据查找另一套表。修改好后,再把业务数据切换过来。最终要实现:已有表项的查询结果不受影响;配置中的新增表项不可用;表中没有的输入项,不可返回命中。
因此,需要一种新的技术方案,既可以满足动态更新的要求,又可以节省硬件资源。
发明内容
本发明正是基于上述问题,提出了一种新的技术方案,在满足查找表的动态更新的同时可以节省硬件资源,减少RAM的使用量,并能够使写入不同RAM中的数据同时写入。
有鉴于此,本发明提出了一种表项动态更新方法,用于动态更新查找表,包括:检测查找表是否更新表项;当检测到所述查找表更新所述表项时,逐个对所述表项中的待更新表项的所有关键字进行相应地RAM配置。
在该技术方案中,当检测到查找表需要更新表项时,逐个为待更新表项(修改或增加表项)的所有关键字并行配置相应的RAM,也就是将原查找表的RAM配置给更新表项,相较于使用两套查找表,在满足查找表的动态更新的同时可以节省硬件资源,减少RAM的使用量,并能够使写入不同RAM中的数据同时写入。
在上述技术方案中,优选地,所述RAM配置包括:建立缓冲器,以存储所有所述关键字的对应信息。
在上述技术方案中,优选地,所述RAM配置还包括:当完成所有所述对应信息的存储后,将所有所述对应信息从所述缓冲器写入对应的所述RAM,以完成所述表项的动态更新。
在该技术方案中,通过建立缓冲器,将待更新表项的所有关键字的对应信息先进行缓存,当全部缓存结束后,一次性共同将缓存的信息从缓冲器写入到其对应的RAM中,如此,可以同时对多个RAM进行更新,使写入不同RAM中的数据同时写入,有效地避免了因不能同时更新导致的查找表有误的情况,保证了查找表结果准确性,在满足查找表的动态更新的同时可以节省硬件资源。
在上述技术方案中,优选地,所述对应信息包括:地址信息和数据信息。
在该技术方案中,表项的关键字的对应信息包括但不限于地址信息和数据信息。
在上述技术方案中,优选地,在完成所述表项的动态更新后,通过更新后的查找表获取目标信息。
在该技术方案中,通过完成表项动态更新后的查找表获取目标信息,可以有效地保证查找结果的准确性。
根据本发明的另一方面,还提出了一种表项动态更新系统,用于动态更新查找表,其特征在于,包括:检测单元,用于检测查找表是否更新表项;处理单元,当检测到所述查找表更新所述表项时,逐个对所述表项中的待更新表项的所有关键字进行相应地RAM配置。
在该技术方案中,当检测到查找表需要更新表项时,逐个为待更新表项(修改或增加表项)的所有关键字并行配置相应的RAM,也就是将原查找表的RAM配置给更新表项,相较于使用两套查找表,在满足查找表的动态更新的同时可以节省硬件资源,减少RAM的使用量,并能够使写入不同RAM中的数据同时写入。
在上述技术方案中,优选地,所述处理单元具体用于:建立缓冲器,以存储所有所述关键字的对应信息。
在上述技术方案中,优选地,所述处理单元具体还用于:当完成所有所述对应信息的存储后,将所有所述对应信息从所述缓冲器写入对应的所述RAM,以完成所述表项的动态更新。
在该技术方案中,通过建立缓冲器,将待更新表项的所有关键字的对应信息先进行缓存,当全部缓存结束后,一次性共同将缓存的信息从缓冲器写入到其对应的RAM中,如此,可以同时对多个RAM进行更新,使写入不同RAM中的数据同时写入,有效地避免了因不能同时更新导致的查找表有误的情况,保证了查找表结果准确性,在满足查找表的动态更新的同时可以节省硬件资源。
在上述技术方案中,优选地,所述对应信息包括:地址信息和数据信息。
在该技术方案中,表项的关键字的对应信息包括但不限于地址信息和数据信息。
在上述技术方案中,优选地,在完成所述表项的动态更新后,控制通过更新后的查找表获取目标信息。
在该技术方案中,通过完成表项动态更新后的查找表获取目标信息,可以有效地保证查找结果的准确性。
通过以上技术方案,在满足查找表的动态更新的同时可以节省硬件资源,减少RAM的使用量,并能够使写入不同RAM中的数据同时写入。
附图说明
图1示出了相关技术中的查找表的硬件实现方法的流程示意图;
图2示出了根据本发明的一个实施例的表项动态更新方法的流程示意图;
图3示出了根据本发明的一个实施例表项动态更新系统的框图;
图4示出了根据本发明的一个实施例的查找表更新的硬件实现方法的流程示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图2示出了根据本发明的一个实施例的表项动态更新方法的流程示意图。
如图2所示,根据本发明的一个实施例的表项动态更新方法,用于动态更新查找表,包括:步骤202,检测查找表是否更新表项;步骤204,当检测到所述查找表更新所述表项时,逐个对所述表项中的待更新表项的所有关键字进行相应地RAM配置。
在该技术方案中,当检测到查找表需要更新表项时,逐个为待更新表项(修改或增加表项)的所有关键字并行配置相应的RAM,也就是将原查找表的RAM配置给更新表项,相较于使用两套查找表,在满足查找表的动态更新的同时可以节省硬件资源,减少RAM的使用量,并能够使写入不同RAM中的数据同时写入。
在上述技术方案中,优选地,所述RAM配置包括:建立缓冲器,以存储所有所述关键字的对应信息。
在上述技术方案中,优选地,所述RAM配置还包括:当完成所有所述对应信息的存储后,将所有所述对应信息从所述缓冲器写入对应的所述RAM,以完成所述表项的动态更新。
在该技术方案中,通过建立缓冲器,将待更新表项的所有关键字的对应信息先进行缓存,当全部缓存结束后,一次性共同将缓存的信息从缓冲器写入到其对应的RAM中,如此,可以同时对多个RAM进行更新,使写入不同RAM中的数据同时写入,有效地避免了因不能同时更新导致的查找表有误的情况,保证了查找表结果准确性,在满足查找表的动态更新的同时可以节省硬件资源。
在上述技术方案中,优选地,所述对应信息包括:地址信息和数据信息。
在该技术方案中,表项的关键字的对应信息包括但不限于地址信息和数据信息。
在上述技术方案中,优选地,在完成所述表项的动态更新后,通过更新后的查找表获取目标信息。
在该技术方案中,通过完成表项动态更新后的查找表获取目标信息,可以有效地保证查找结果的准确性。
图3示出了根据本发明的一个实施例表项动态更新系统的框图。
如图3所示,根据本发明的一个实施例表项动态更新系统300,用于动态更新查找表,其特征在于,包括:检测单元302,用于检测查找表是否更新表项;处理单元304,当检测到所述查找表更新所述表项时,逐个对所述表项中的待更新表项的所有关键字进行相应地RAM配置。
在该技术方案中,当检测到查找表需要更新表项时,逐个为待更新表项(修改或增加表项)的所有关键字并行配置相应的RAM,也就是将原查找表的RAM配置给更新表项,相较于使用两套查找表,在满足查找表的动态更新的同时可以节省硬件资源,减少RAM的使用量,并能够使写入不同RAM中的数据同时写入。
在上述技术方案中,优选地,所述处理单元304具体用于:建立缓冲器,以存储所有所述关键字的对应信息。
在上述技术方案中,优选地,所述处理单元304具体还用于:当完成所有所述对应信息的存储后,将所有所述对应信息从所述缓冲器写入对应的所述RAM,以完成所述表项的动态更新。
在该技术方案中,通过建立缓冲器,将待更新表项的所有关键字的对应信息先进行缓存,当全部缓存结束后,一次性共同将缓存的信息从缓冲器写入到其对应的RAM中,如此,可以同时对多个RAM进行更新,有效地避免了因不能同时更新导致的查找表有误的情况,保证了查找表结果准确性,在满足查找表的动态更新的同时可以节省硬件资源。
在上述技术方案中,优选地,所述对应信息包括:地址信息和数据信息。
在该技术方案中,表项的关键字的对应信息包括但不限于地址信息和数据信息。
在上述技术方案中,优选地,在完成所述表项的动态更新后,控制通过更新后的查找表获取目标信息。
在该技术方案中,通过完成表项动态更新后的查找表获取目标信息,可以有效地保证查找结果的准确性。
图4示出了根据本发明的一个实施例的查找表更新的硬件实现方法的流程示意图。
如图4所示,根据本发明的一个实施例的查找表更新的硬件实现方法,遍历新增表项范围中的每一个元素(关键字),通过CPU逐条配置。建立一个缓冲器,每次把要写入所有RAM(每个RAM写一个地址)的地址和数据进行缓存,缓存好后同时写入所有RAM,以满足查找表的动态更新。
以上结合附图详细说明了本发明的技术方案,在满足查找表的动态更新的同时可以节省硬件资源,减少RAM的使用量,并能够使写入不同RAM中的数据同时写入。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种表项动态更新方法,用于动态更新查找表,其特征在于,包括:
检测查找表是否更新表项;
当检测到所述查找表更新所述表项时,逐个对所述表项中的待更新表项的所有关键字进行相应地RAM配置。
2.根据权利要求1所述的表项动态更新方法,其特征在于,所述RAM配置包括:
建立缓冲器,以存储所有所述关键字的对应信息。
3.根据权利要求2所述的表项动态更新方法,其特征在于,所述RAM配置还包括:当完成所有所述对应信息的存储后,将所有所述对应信息从所述缓冲器写入对应的所述RAM,以完成所述表项的动态更新。
4.根据权利要求2或3所述的表项动态更新方法,其特征在于,所述对应信息包括:地址信息和数据信息。
5.根据权利要求4所述的表项动态更新方法,其特征在于,在完成所述表项的动态更新后,通过更新后的查找表获取目标信息。
6.一种表项动态更新系统,用于动态更新查找表,其特征在于,包括:
检测单元,用于检测查找表是否更新表项;
处理单元,当检测到所述查找表更新所述表项时,逐个对所述表项中的待更新表项的所有关键字进行相应地RAM配置。
7.根据权利要求6所述的表项动态更新系统,其特征在于,所述处理单元具体用于:建立缓冲器,以存储所有所述关键字的对应信息。
8.根据权利要求7所述的表项动态更新系统,其特征在于,所述处理单元具体还用于:当完成所有所述对应信息的存储后,将所有所述对应信息从所述缓冲器写入对应的所述RAM,以完成所述表项的动态更新。
9.根据权利要求7或8所述的表项动态更新系统,其特征在于,所述对应信息包括:地址信息和数据信息。
10.根据权利要求9所述的表项动态更新系统,其特征在于,所述处理单元还用于:在完成所述表项的动态更新后,控制通过更新后的查找表获取目标信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510130657.4A CN104702508B (zh) | 2015-03-24 | 2015-03-24 | 表项动态更新方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510130657.4A CN104702508B (zh) | 2015-03-24 | 2015-03-24 | 表项动态更新方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104702508A true CN104702508A (zh) | 2015-06-10 |
CN104702508B CN104702508B (zh) | 2018-07-10 |
Family
ID=53349291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510130657.4A Expired - Fee Related CN104702508B (zh) | 2015-03-24 | 2015-03-24 | 表项动态更新方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104702508B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170003966A1 (en) * | 2015-06-30 | 2017-01-05 | Microsoft Technology Licensing, Llc | Processor with instruction for interpolating table lookup values |
CN108494549A (zh) * | 2018-02-27 | 2018-09-04 | 北京赛博兴安科技有限公司 | 基于fpga的密钥索引协商装置、系统及方法 |
CN109800245A (zh) * | 2019-01-25 | 2019-05-24 | 深圳市金泰克半导体有限公司 | Spd数据自动生成方法、装置、计算机设备及存储介质 |
CN109995645A (zh) * | 2019-03-07 | 2019-07-09 | 盛科网络(苏州)有限公司 | 一种灵活查找fdb表项的芯片实现方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1655556A (zh) * | 2005-03-18 | 2005-08-17 | 大连理工大学 | 一种基于动态聚合树模型的路由方法 |
CN101110846A (zh) * | 2007-08-29 | 2008-01-23 | 杭州华三通信技术有限公司 | 一种mac地址表项的管理方法和设备 |
CN101729410A (zh) * | 2009-11-10 | 2010-06-09 | 中兴通讯股份有限公司 | 一种媒体访问控制地址表的同步方法及装置 |
CN101866357A (zh) * | 2010-06-11 | 2010-10-20 | 福建星网锐捷网络有限公司 | 一种三态内容寻址存储器的表项更新方法及装置 |
-
2015
- 2015-03-24 CN CN201510130657.4A patent/CN104702508B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1655556A (zh) * | 2005-03-18 | 2005-08-17 | 大连理工大学 | 一种基于动态聚合树模型的路由方法 |
CN101110846A (zh) * | 2007-08-29 | 2008-01-23 | 杭州华三通信技术有限公司 | 一种mac地址表项的管理方法和设备 |
CN101729410A (zh) * | 2009-11-10 | 2010-06-09 | 中兴通讯股份有限公司 | 一种媒体访问控制地址表的同步方法及装置 |
CN101866357A (zh) * | 2010-06-11 | 2010-10-20 | 福建星网锐捷网络有限公司 | 一种三态内容寻址存储器的表项更新方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170003966A1 (en) * | 2015-06-30 | 2017-01-05 | Microsoft Technology Licensing, Llc | Processor with instruction for interpolating table lookup values |
CN108494549A (zh) * | 2018-02-27 | 2018-09-04 | 北京赛博兴安科技有限公司 | 基于fpga的密钥索引协商装置、系统及方法 |
CN109800245A (zh) * | 2019-01-25 | 2019-05-24 | 深圳市金泰克半导体有限公司 | Spd数据自动生成方法、装置、计算机设备及存储介质 |
CN109995645A (zh) * | 2019-03-07 | 2019-07-09 | 盛科网络(苏州)有限公司 | 一种灵活查找fdb表项的芯片实现方法 |
CN109995645B (zh) * | 2019-03-07 | 2021-03-16 | 盛科网络(苏州)有限公司 | 一种灵活查找fdb表项的芯片实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104702508B (zh) | 2018-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3057272B1 (en) | Technologies for concurrency of cuckoo hashing flow lookup | |
EP2314027B1 (en) | Switching table in an ethernet bridge | |
US9148387B2 (en) | Hardware hash table virtualization in multi-packet processor networking systems | |
CN103067433B (zh) | 一种分布式存储系统的数据迁移方法、设备和系统 | |
CN109981493B (zh) | 一种用于配置虚拟机网络的方法和装置 | |
CN109213699B (zh) | 一种元数据管理方法、系统、设备及计算机可读存储介质 | |
CN110119304B (zh) | 一种中断处理方法、装置及服务器 | |
US11132265B2 (en) | Multi-replica data restoration method and apparatus | |
US20090282167A1 (en) | Method and apparatus for bridging | |
CN107391033B (zh) | 数据迁移方法及装置、计算设备、计算机存储介质 | |
CN104702508A (zh) | 表项动态更新方法及系统 | |
US11683316B2 (en) | Method and device for communication between microservices | |
US10084613B2 (en) | Self adapting driver for controlling datapath hardware elements | |
US9270586B2 (en) | Method for abstracting datapath hardware elements | |
CN111143231B (zh) | 用于数据处理的方法、设备和计算机程序产品 | |
CN104408069A (zh) | 一种基于布隆过滤器思想的一致性目录设计方法 | |
CN111327509B (zh) | 一种信息更新方法及装置 | |
CN111553669B (zh) | 一种交易路由方法、装置及计算机可读存储介质 | |
JP6189266B2 (ja) | データ処理装置、データ処理方法及びデータ処理プログラム | |
CN107832121B (zh) | 一种应用于分布式串行长事务的并发控制方法 | |
US10678453B2 (en) | Method and device for checking false sharing in data block deletion using a mapping pointer and weight bits | |
WO2016065610A1 (zh) | 访问文件的方法、分布式存储系统和存储节点 | |
WO2022252322A1 (zh) | 基于特征标记的电网监控系统内存库关系库同步方法 | |
WO2018036486A1 (zh) | 页表缓存的访问方法、页表缓存、处理器芯片和存储单元 | |
CN104702507A (zh) | 表项动态更新方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180710 |
|
CF01 | Termination of patent right due to non-payment of annual fee |