CN112822112A - 一种路由地址存储方法及装置 - Google Patents
一种路由地址存储方法及装置 Download PDFInfo
- Publication number
- CN112822112A CN112822112A CN202011640825.1A CN202011640825A CN112822112A CN 112822112 A CN112822112 A CN 112822112A CN 202011640825 A CN202011640825 A CN 202011640825A CN 112822112 A CN112822112 A CN 112822112A
- Authority
- CN
- China
- Prior art keywords
- entry
- sram
- routing
- tcam
- tree
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/48—Routing tree calculation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种路由地址存储方法及装置,其中,该方法包括:通过静态随机存储器SRAM存储多个路由地址,其中,该SRAM的一个SRAM条目中存储一个或多个路由树,每个该路由树包括多个路由地址;将该SRAM中该多个路由地址的公共前缀存储于三态内容寻址存储器TCAM的TCAM条目中,其中,多个TCAM条目对应一个该SRAM条目,可以解决相关技术SRAM条目资源全部被使用,但是每个SRAM Entry都没有被存满,这样便导致了资源的浪费的问题,通过多个TCAM条目对应一个该SRAM条目,即在一个SRAM条目中存储多个路由树,使得同一个SRAM条目中由于拆树留下的空间可以被用于存储其它路由树,减少了资源浪费。
Description
技术领域
本发明涉及信息处理领域,具体而言,涉及一种路由地址存储方法及装置。
背景技术
在当前网络环境中,网际协议(Internet Protocol,简称为IP)地址数量十分巨大,IPv4路由IP地址数量可以达到2^32条,现已投入使用的IPv6地址数量更是达到惊人的2^128条,这对于存储路由条目的设备的存储提出了巨大的要求。
现有技术从逻辑上讲,每个前缀索引一棵路由树。使用路由树管理每条真实路由。从硬件上讲,使用三态内容寻址存储器(Ternary Content Addressable Memory,简称为TCAM)保存前缀,静态随机存储器(Static Random-Access Memory,简称为SRAM)保存最长掩码匹配(Algorithm Longest Prefix Match,简称为ALPM)路由树。
如图2所示。每一个前缀对应TCAM中的一条Entry条目。每一棵路由树对应SRAM中的一条Entry。TCAM中的Entry使用SRAMIdx索引SRAM的Entry。换句话说,TCAM中保存了前缀,每一条SRAM Entry保存了路由树。
添加一条新的路由的时候,首先会查TCAM是否有匹配的前缀,如果有则将路由下到该前缀索引的SRAM Entry中,否则下到前缀掩码为0索引的SRAM Entry中。当前缀索引的SRAM Entry已经被下满,则将该SRAM Entry中路由树的一半拆分出来,放到未被使用的SRAM Entry中,同时将这些路由的公共前缀放到空闲的TCAM Entry中,并与该SRAM Entry建立索引。需要注意的是,一个SRAM Entry只能被一个TCAM Entry索引。
现有技术,理论上可以使所有的SRAM资源用尽。但实际上规格宣称只能达到理论值的67%,即三分之二。因为这ALPM路由树算法添加时,先找到对应的前缀,然后把路由加到前缀对应的路由树中。如果路由树的条目数大于一个SRAM Entry支持的最大路由条目数时,会触发拆树,把路由树中的一半拆到新的树中并将新树保存至未被使用的SRAM Entry中,把新树的前缀保存至TCAM。
在递增下发路由的条件下,由于路由的前缀只会与值为\0的前缀匹配,因此会一直往前缀为/0的路由树中添加路由,并触发拆树。这时会导致不会有路由下到拆出的新路由前缀索引的路由树中,只会是原有拆出的路由。按照该算法一直下发,SRAM条目资源全部会被使用,但是每个SRAM Entry都没有被下满,这样便导致了资源的浪费。
针对相关技术SRAM条目资源全部被使用,但是每个SRAM Entry都没有被存满,这样便导致了资源的浪费的问题,尚未提出解决方案。
发明内容
本发明实施例提供了一种路由地址存储方法及装置,以至少解决相关技术SRAM条目资源全部被使用,但是每个SRAM Entry都没有被存满,这样便导致了资源的浪费的问题。
根据本发明的一个实施例,提供了一种路由地址存储方法,包括:通过静态随机存储器SRAM存储多个路由地址,其中,所述SRAM的一个SRAM条目中存储一个或多个路由树,每个所述路由树包括多个路由地址;将所述多级SRAM中所述多个路由地址的公共前缀存储于三态内容寻址存储器TCAM的TCAM条目中,其中,多个TCAM条目对应一个所述SRAM条目。
在一示例性实施例中,还包括:确定所述TCAM条目中与所述目标路由地址匹配度最高的第一TCAM条目;确定所述第一TCAM条目对应的第一SRAM条目的路由树;根据所述第一SRAM条目的路由树对所述目标路由地址进行存储。
在一示例性实施例中,根据所述第一SRAM条目的路由树对所述目标路由地址进行存储包括:确定所述第一TCAM条目对应的第一SRAM条目的路由树的路由数量;将第一SRAM条目的路由树的路由数量与所述SRAM条目对应的最大路由数进行对比;根据对比结果对所述目标路由地址进行存储。
在一示例性实施例中,根据对比结果对所述目标路由地址进行存储包括:若所述SRAM存在空闲SRAM条目且所述对比结果为所述第一TCAM条目对应的第一SRAM条目的路由树的路由数量小于所述SRAM条目对应的最大路由数,将所述目标路由地址存储到所述第一SRAM条目的路由树中;若所述SRAM还存在空闲SRAM条目且所述对比结果为所述第一SRAM条目的路由树的路由数量不小于所述SRAM条目对应的最大路由数,对所述第一SRAM条目的路由树进行拆树操作;将拆出的第一路由树存储到新的第二SRAM条目中,并将所述第一路由树对应的前缀存储到新的第二TCAM条目中。
在一示例性实施例中,还包括:为所述第二TCAM条目建立所述第二SRAM条目的条目索引与区域索引。
在一示例性实施例中,还包括:若所述SRAM的所有SRAM条目均被使用且所述对比结果为所述第一TCAM条目对应的第一SRAM条目的路由树的路由数量小于所述SRAM条目对应的最大路由数,将所述目标路由地址存储到所述第一SRAM条目的路由树中;若所述SRAM的所有SRAM条目均被使用且所述对比结果为所述第一TCAM条目对应的第一SRAM条目的路由树的路由数量不小于所述SRAM条目对应的最大路由数,对所述第一SRAM条目的路由树进行拆树操作;将拆出的第一路由树存储到剩余空间最大的第三SRAM条目中,并将所述第一路由树对应的前缀存储到新的第三TCAM条目中。
在一示例性实施例中,还包括:为所述第三TCAM条目建立所述第三SRAM条目的条目索引与区域索引。
在一示例性实施例中,确定所述TCAM条目中与所述目标路由地址匹配度最高的第一TCAM条目包括:分别确定接收到的目标路由地址与所述TCAM条目中的前缀的相似度值;判断是否获取到所述相似度值最高的所述TCAM条目;若获取到所述相似度值最高的所述TCAM条目,则确定所述TCAM条目为所述第一TCAM条目;若未获取到所述相似度值的所述TCAM条目,则确定前缀掩码长度为0的所述TCAM条目为所述第一TCAM条目。
根据本发明的又一个实施例,还提供了一种路由地址存储装置,包括:第一处理模块,用于通过静态随机存储器SRAM存储多个路由地址,其中,所述SRAM的一个SRAM条目中存储一个或多个路由树,每个所述路由树包括多个路由地址;第二处理模块,用于将所述多级SRAM中所述多个路由地址的公共前缀存储于三态内容寻址存储器TCAM的TCAM条目中,其中,多个TCAM条目对应一个所述SRAM条目。
根据本发明的又一个实施例,还提供了一种计算机可读的存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,通过静态随机存储器SRAM存储多个路由地址,其中,所述SRAM的一个SRAM条目中存储一个或多个路由树,每个所述路由树包括多个路由地址;将所述SRAM中所述多个路由地址的公共前缀存储于三态内容寻址存储器TCAM的TCAM条目中,其中,多个TCAM条目对应一个所述SRAM条目,可以解决相关技术SRAM条目资源全部被使用,但是每个SRAM Entry都没有被存满,这样便导致了资源的浪费的问题,通过多个TCAM条目对应一个所述SRAM条目,即在一个SRAM条目中存储多个路由树,使得同一个SRAM条目中由于拆树留下的空间可以被用于存储其它路由树,减少了资源浪费。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的路由地址存储方法的移动终端的硬件结构框图;
图2是根据本发明实施例的路由地址存储方法的流程图;
图3是根据本发明一可选实施例的路由存储结构示意图(一);
图4是根据本发明一可选实施例的路由存储结构示意图(二);
图5是根据本发明一可选实施例的路由地址存储方法的流程示意图;
图6是根据本发明实施例的路由地址存储装置的框图;
图7是根据本发明一可选实施例的路由地址存储装置的结构示意图(一);
图8是根据本发明一可选实施例的路由地址存储装置的结构示意图(二);
图9是根据本发明一可选实施例的路由地址存储装置的结构示意图(三);
图10是根据本发明一可选实施例的路由地址存储装置的结构示意图(四)。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
实施例1
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的路由地址存储方法的移动终端的硬件结构框图,如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的路由地址存储方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述移动终端或网络架构的路由地址存储方法,图2是根据本发明实施例的路由地址存储方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,通过静态随机存储器SRAM存储多个路由地址,其中,所述SRAM的一个SRAM条目中存储一个或多个路由树,每个所述路由树包括多个路由地址;
步骤S204,将所述多级SRAM中所述多个路由地址的公共前缀存储于三态内容寻址存储器TCAM的TCAM条目中,其中,多个TCAM条目对应一个所述SRAM条目。
通过上述步骤S202至S204,通过静态随机存储器SRAM存储多个路由地址,其中,所述SRAM的一个SRAM条目中存储一个或多个路由树,每个所述路由树包括多个路由地址;将所述SRAM中所述多个路由地址的公共前缀存储于三态内容寻址存储器TCAM的TCAM条目中,其中,多个TCAM条目对应一个所述SRAM条目,可以解决相关技术SRAM条目资源全部被使用,但是每个SRAM Entry都没有被存满,这样便导致了资源的浪费的问题,通过多个TCAM条目对应一个所述SRAM条目,即在一个SRAM条目中存储多个路由树,使得同一个SRAM条目中由于拆树留下的空间可以被用于存储其它路由树,减少了资源浪费。
在一可选的实施例中,确定所述TCAM条目中与所述目标路由地址匹配度最高的第一TCAM条目;确定所述第一TCAM条目对应的第一SRAM条目的路由树;根据所述第一SRAM条目的路由树对所述目标路由地址进行存储。
在一可选的实施例中,根据所述第一SRAM条目的路由树对所述目标路由地址进行存储包括:确定所述第一TCAM条目对应的第一SRAM条目的路由树的路由数量;将第一SRAM条目的路由树的路由数量与所述SRAM条目对应的最大路由数进行对比;根据对比结果对所述目标路由地址进行存储。
在一可选的实施例中,根据对比结果对所述目标路由地址进行存储包括:若所述SRAM存在空闲SRAM条目且所述对比结果为所述第一TCAM条目对应的第一SRAM条目的路由树的路由数量小于所述SRAM条目对应的最大路由数,将所述目标路由地址存储到所述第一SRAM条目的路由树中;若所述SRAM还存在空闲SRAM条目且所述对比结果为所述第一SRAM条目的路由树的路由数量不小于所述SRAM条目对应的最大路由数,对所述第一SRAM条目的路由树进行拆树操作;将拆出的第一路由树存储到新的第二SRAM条目中,并将所述第一路由树对应的前缀存储到新的第二TCAM条目中。进一步的,还可以为所述第二TCAM条目建立所述第二SRAM条目的条目索引与区域索引。
在一可选的实施例中,若所述SRAM的所有SRAM条目均被使用且所述对比结果为所述第一TCAM条目对应的第一SRAM条目的路由树的路由数量小于所述SRAM条目对应的最大路由数,将所述目标路由地址存储到所述第一SRAM条目的路由树中;若所述SRAM的所有SRAM条目均被使用且所述对比结果为所述第一TCAM条目对应的第一SRAM条目的路由树的路由数量不小于所述SRAM条目对应的最大路由数,对所述第一SRAM条目的路由树进行拆树操作;将拆出的第一路由树存储到剩余空间最大的第三SRAM条目中,并将所述第一路由树对应的前缀存储到新的第三TCAM条目中。进一步的,还可以为所述第三TCAM条目建立所述第三SRAM条目的条目索引与区域索引。
在一可选的实施例中,确定所述TCAM条目中与所述目标路由地址匹配度最高的第一TCAM条目包括:分别确定接收到的目标路由地址与所述TCAM条目中的前缀的相似度值;判断是否获取到所述相似度值最高的所述TCAM条目;若获取到所述相似度值最高的所述TCAM条目,则确定所述TCAM条目为所述第一TCAM条目;若未获取到所述相似度值的所述TCAM条目,则确定前缀掩码长度为0的所述TCAM条目为所述第一TCAM条目。
图3是根据本发明一可选实施例的路由存储结构示意图(一),图3所示,当SRAM所有的Entry都被使用了之后,允许将新拆分出来的路由树保存到某一条还有空闲空间的SRAM Entry中(新老路由树共享同一条SRAM Entry)。按照路由分布原则,SRAM的深度为M,Entry路由条目为N,即总共有M个SRAM entry条目,每个Entry路由条目可以存放N个路由。这时可以下发的最大路由为M*N条。
其中,假如一个SRAM的深度M为16K,每个SRAM Entry中可保存路由条目数N为12。按照拆分原理,每次会拆出8条路由保存在新的SRAM Entry中。在递增下发模式下,当所有的16K SRAM Entry条目被使用后,会发现,除了值为/0的路由前缀索引的SRAM Entry外,其他所有SRAM Entry中的路由条目只使用了12分之8条,最多真实下发的路由条目为16K*8=128K,但实际的Memory资源为16k*12=192K,资源利用率为67%。
图4是根据本发明一可选实施例的路由存储结构示意图(二),图4所示,为了解决资源利率问题,提出了多个前缀共用同一个SRAM Entry条目的思路,其中,每个TCAM Entry除了携带索引SRAM Entry的SRAMIdx外,新增了groupSel,用于选择同一个SRAM Entry中不同的路由树。同样的,SRAM Entry中的每个路由结点(保存单条路由的单位)也存放groupSel,用于标记该路由结点属于哪棵路由树。图中路由树1和路由树2共享同一条SRAMEntry,使用groupSel区分二者。prefix1索引路由树1(左侧虚框内),prefix2索引路由树2(右侧虚框内)。
图5是根据本发明一可选实施例的路由地址存储方法的流程示意图,图5所示,
步骤S1,下发新的路由;
步骤S2,判断SRAM资源是否已满,在判断结果为否的情况下,执行步骤S3,否则结束;
步骤S3,判断TCAM中手段有最长匹配的前缀,在判断结果为否的情况下执行步骤S4,否则执行步骤S5;
步骤S4,将理由添加到值为\0的前缀索引的路由树中;
步骤S5,将路由添加到该前缀索引的路由树中;
步骤S6,判断路由树的节点数是否大于SRAM Entry对应的最大路由条目数,在判断结果为否的情况下执行步骤S7,否则执行步骤S8;
步骤S7,将路由添加到该前缀索引的SRAM Entry中;
步骤S8,拆树;
步骤S9,判断所有的SRAM Entry是否均被使用,在判断结果为否的情况下执行步骤S10,否则执行步骤S12;
步骤S10,将新的路由树的前缀保存在TCAM中;
步骤S11,将新的路由树保存在未被使用的SRAM Entry中;
步骤S12,将新的路由树的前缀保存在TCAN中;
步骤S13,将新的路由树保存在空闲空间最大的SRAM Entry中。
把路由和TCAM中的前缀进行比较,找到最长匹配的前缀;把路由添加到前缀对应的路由树中;如果路由树中的条目数小于SRAM Entry对应的最大路由数N,则把路由下发到该前缀对应的SRAM entry中。否则,则触发拆树操作。此时会拆出一个新的路由树和前缀,将新的前缀放到TCAM中,新的路由树放到未被使用的SRAM Entry中。如此一直添加路由,直到所有的SRAM entry M均被使用。此时优先从所有的SRAM entry中找到空闲空间最多的SRAM entry,拆出的路由树条目放在这个SRAM entry中。达到多个前缀共用同一个SRAMentry的目的。如此一直添加,直到所有的SRAM entry没有空闲的空间。此时说明SRAM资源全部用完。
通过本实施例,可以完全把SRAM资源用尽,使实际可配置路由规格达到资源允许的最大规格。
此外,同时为了最大的充分利用SRAM的Entry路由数量,考虑到拆树原理,N的设计为多个2的次幂相加,比如12=8+4或者24=16+8,这样多个前缀共用一个Sram条目时,能最大化的利用SRAM的Memoy。
实施例2
根据本发明的另一个实施例,还提供了一种路由地址存储装置,图6是根据本发明实施例的路由地址存储装置的框图,如图6所示,包括:
第一处理模块62,用于通过静态随机存储器SRAM存储多个路由地址,其中,所述SRAM的一个SRAM条目中存储一个或多个路由树,每个所述路由树包括多个路由地址;
第二处理模块64,用于将所述多级SRAM中所述多个路由地址的公共前缀存储于三态内容寻址存储器TCAM的TCAM条目中,其中,多个TCAM条目对应一个所述SRAM条目。
通过上述装置,通过静态随机存储器SRAM存储多个路由地址,其中,所述SRAM的一个SRAM条目中存储一个或多个路由树,每个所述路由树包括多个路由地址;将所述SRAM中所述多个路由地址的公共前缀存储于三态内容寻址存储器TCAM的TCAM条目中,其中,多个TCAM条目对应一个所述SRAM条目,可以解决相关技术SRAM条目资源全部被使用,但是每个SRAM Entry都没有被存满,这样便导致了资源的浪费的问题,通过多个TCAM条目对应一个所述SRAM条目,即在一个SRAM条目中存储多个路由树,使得SRAM条目中由于拆树留下的空间可以被用于存储路由树,减少了资源浪费。
图7是根据本发明一可选实施例的路由地址存储装置的结构示意图(一),如图7所示,上述装置还包括:
第一确定模块72,用于确定所述TCAM条目中与所述目标路由地址匹配度最高的第一TCAM条目;
第二确定模块74,用于确定所述第一TCAM条目对应的第一SRAM条目的路由树;
存储模块76,用于根据所述第一SRAM条目的路由树对所述目标路由地址进行存储。
图8是根据本发明一可选实施例的路由地址存储装置的结构示意图(二),如图8所示,上述第一存储模块76,还包括:
确定单元82,用于确定所述第一TCAM条目对应的第一SRAM条目的路由树的路由数量;
对比单元84,用于将第一SRAM条目的路由树的路由数量与所述SRAM条目对应的最大路由数进行对比;
存储单元86,用于根据对比结果对所述目标路由地址进行存储。
在一示例性实施例中,上述存储单元86还用于:若所述SRAM存在空闲SRAM条目且所述对比结果为所述第一TCAM条目对应的第一SRAM条目的路由树的路由数量小于所述SRAM条目对应的最大路由数,将所述目标路由地址存储到所述第一SRAM条目的路由树中;若所述SRAM还存在空闲SRAM条目且所述对比结果为所述第一SRAM条目的路由树的路由数量不小于所述SRAM条目对应的最大路由数,对所述第一SRAM条目的路由树进行拆树操作;将拆出的第一路由树存储到新的第二SRAM条目中,并将所述第一路由树对应的前缀存储到新的第二TCAM条目中。
在一示例性实施例中,还包括:第一建立模块,用于为所述第二TCAM条目建立所述第二SRAM条目的条目索引与区域索引。
图9是根据本发明一可选实施例的路由地址存储装置的结构示意图(三),如图9所示,上述装置还包括:
第三处理模块92,用于若所述SRAM的所有SRAM条目均被使用且所述对比结果为所述第一TCAM条目对应的第一SRAM条目的路由树的路由数量小于所述SRAM条目对应的最大路由数,将所述目标路由地址存储到所述第一SRAM条目的路由树中;
第四处理模块94,用于若所述SRAM的所有SRAM条目均被使用且所述对比结果为所述第一TCAM条目对应的第一SRAM条目的路由树的路由数量不小于所述SRAM条目对应的最大路由数,对所述第一SRAM条目的路由树进行拆树操作;将拆出的第一路由树存储到剩余空间最大的第三SRAM条目中,并将所述第一路由树对应的前缀存储到新的第三TCAM条目中。
在一示例性实施例中,所述装置还包括:第二创建模块,用于为所述第三TCAM条目建立所述第三SRAM条目的条目索引与区域索引。
图10是根据本发明一可选实施例的路由地址存储装置的结构示意图(四),如图10所示,第一确定模块72,还包括:
第一确定单元102,用于分别确定接收到的目标路由地址与所述TCAM条目中的前缀的相似度值;
第一判断单元104,用于判断是否获取到所述相似度值最高的所述TCAM条目;
第一确定单元106,用于若获取到所述相似度值最高的所述TCAM条目,则确定所述TCAM条目为所述第一TCAM条目;
第二确定单元108,用于若未获取到所述相似度值的所述TCAM条目,则确定前缀掩码长度为0的所述TCAM条目为所述第一TCAM条目。
实施例3
本发明的实施例还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,通过静态随机存储器SRAM存储多个路由地址,其中,所述SRAM的一个SRAM条目中存储一个或多个路由树,每个所述路由树包括多个路由地址;
S2,将所述多级SRAM中所述多个路由地址的公共前缀存储于三态内容寻址存储器TCAM的TCAM条目中,其中,多个TCAM条目对应一个所述SRAM条目。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
实施例4
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,通过静态随机存储器SRAM存储多个路由地址,其中,所述SRAM的一个SRAM条目中存储一个或多个路由树,每个所述路由树包括多个路由地址;
S2,将所述多级SRAM中所述多个路由地址的公共前缀存储于三态内容寻址存储器TCAM的TCAM条目中,其中,多个TCAM条目对应一个所述SRAM条目。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种路由地址存储方法,其特征在于,包括:
通过静态随机存储器SRAM存储多个路由地址,其中,所述SRAM的一个SRAM条目中存储一个或多个路由树,每个所述路由树包括多个路由地址;
将所述多级SRAM中所述多个路由地址的公共前缀存储于三态内容寻址存储器TCAM的TCAM条目中,其中,多个TCAM条目对应一个所述SRAM条目。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述TCAM条目中与所述目标路由地址匹配度最高的第一TCAM条目;
确定所述第一TCAM条目对应的第一SRAM条目的路由树;
根据所述第一SRAM条目的路由树对所述目标路由地址进行存储。
3.根据权利要求2所述的方法,其特征在于,根据所述第一SRAM条目的路由树对所述目标路由地址进行存储包括:
确定所述第一TCAM条目对应的第一SRAM条目的路由树的路由数量;
将第一SRAM条目的路由树的路由数量与所述SRAM条目对应的最大路由数进行对比;
根据对比结果对所述目标路由地址进行存储。
4.根据权利要求3所述的方法,其特征在于,根据对比结果对所述目标路由地址进行存储包括:
若所述SRAM存在空闲SRAM条目且所述对比结果为所述第一TCAM条目对应的第一SRAM条目的路由树的路由数量小于所述SRAM条目对应的最大路由数,将所述目标路由地址存储到所述第一SRAM条目的路由树中;
若所述SRAM还存在空闲SRAM条目且所述对比结果为所述第一SRAM条目的路由树的路由数量不小于所述SRAM条目对应的最大路由数,对所述第一SRAM条目的路由树进行拆树操作;将拆出的第一路由树存储到新的第二SRAM条目中,并将所述第一路由树对应的前缀存储到新的第二TCAM条目中。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
为所述第二TCAM条目建立所述第二SRAM条目的条目索引与区域索引。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述SRAM的所有SRAM条目均被使用且所述对比结果为所述第一TCAM条目对应的第一SRAM条目的路由树的路由数量小于所述SRAM条目对应的最大路由数,将所述目标路由地址存储到所述第一SRAM条目的路由树中;
若所述SRAM的所有SRAM条目均被使用且所述对比结果为所述第一TCAM条目对应的第一SRAM条目的路由树的路由数量不小于所述SRAM条目对应的最大路由数,对所述第一SRAM条目的路由树进行拆树操作;将拆出的第一路由树存储到剩余空间最大的第三SRAM条目中,并将所述第一路由树对应的前缀存储到新的第三TCAM条目中。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
为所述第三TCAM条目建立所述第三SRAM条目的条目索引与区域索引。
8.根据权利要求2至7中任一项所述的方法,其特征在于,确定所述TCAM条目中与所述目标路由地址匹配度最高的第一TCAM条目包括:
分别确定接收到的目标路由地址与所述TCAM条目中的前缀的相似度值;
判断是否获取到所述相似度值最高的所述TCAM条目;
若获取到所述相似度值最高的所述TCAM条目,则确定所述TCAM条目为所述第一TCAM条目;
若未获取到所述相似度值的所述TCAM条目,则确定前缀掩码长度为0的所述TCAM条目为所述第一TCAM条目。
9.一种路由地址存储装置,其特征在于,包括:
第一处理模块,用于通过静态随机存储器SRAM存储多个路由地址,其中,所述SRAM的一个SRAM条目中存储一个或多个路由树,每个所述路由树包括多个路由地址;
第二处理模块,用于将所述多级SRAM中所述多个路由地址的公共前缀存储于三态内容寻址存储器TCAM的TCAM条目中,其中,多个TCAM条目对应一个所述SRAM条目。
10.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至8任一项中所述的方法。
11.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至8任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011640825.1A CN112822112B (zh) | 2020-12-31 | 2020-12-31 | 一种路由地址存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011640825.1A CN112822112B (zh) | 2020-12-31 | 2020-12-31 | 一种路由地址存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112822112A true CN112822112A (zh) | 2021-05-18 |
CN112822112B CN112822112B (zh) | 2022-08-19 |
Family
ID=75856442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011640825.1A Active CN112822112B (zh) | 2020-12-31 | 2020-12-31 | 一种路由地址存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112822112B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115987888A (zh) * | 2022-12-20 | 2023-04-18 | 苏州盛科通信股份有限公司 | 路由地址存储方法、装置、网络设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107896194A (zh) * | 2018-01-02 | 2018-04-10 | 盛科网络(苏州)有限公司 | 一种路由查找方法、装置和存储介质 |
CN112039782A (zh) * | 2017-01-25 | 2020-12-04 | 华为技术有限公司 | 多分支跳转协处理方法及装置 |
-
2020
- 2020-12-31 CN CN202011640825.1A patent/CN112822112B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112039782A (zh) * | 2017-01-25 | 2020-12-04 | 华为技术有限公司 | 多分支跳转协处理方法及装置 |
CN107896194A (zh) * | 2018-01-02 | 2018-04-10 | 盛科网络(苏州)有限公司 | 一种路由查找方法、装置和存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115987888A (zh) * | 2022-12-20 | 2023-04-18 | 苏州盛科通信股份有限公司 | 路由地址存储方法、装置、网络设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112822112B (zh) | 2022-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10496680B2 (en) | High-performance bloom filter array | |
US9984144B2 (en) | Efficient lookup of TCAM-like rules in RAM | |
US6792423B1 (en) | Hybrid longest prefix match and fixed match searches | |
EP3661153B1 (en) | Building decision tree for packet classification | |
CN109639579B (zh) | 组播报文的处理方法及装置、存储介质、处理器 | |
EP2773079B1 (en) | Device and method for access control list conversion | |
JP2016502370A (ja) | フローテーブルをマッチングするための方法及び装置、並びにスイッチ | |
CN112425131B (zh) | 一种acl的规则分类方法、查找方法和装置 | |
CN107562743B (zh) | 数据存储方法和装置、数据查找请求的处理方法和装置 | |
CN109921995A (zh) | 一种配置地址表的方法、fpga和应用该fpga的网络设备 | |
US9135833B2 (en) | Process for selecting compressed key bits for collision resolution in hash lookup table | |
CN111131050A (zh) | 流表的匹配方法及装置 | |
CN111131049B (zh) | 路由表项的处理方法及装置 | |
CN103270727B (zh) | 存储体感知多位特里结构 | |
CN115297056B (zh) | 一种基于fpga实现的掩码匹配方法及系统 | |
CN112667640B (zh) | 一种路由地址存储方法及装置 | |
CN112235436A (zh) | 网络地址转换规则匹配方法及设备 | |
CN112822112B (zh) | 一种路由地址存储方法及装置 | |
CN111294285B (zh) | 一种网络数据的分发方法及负载均衡器 | |
CN104253754A (zh) | 一种acl快速匹配的方法和设备 | |
CN112187743B (zh) | 一种基于ip地址最长前缀的网络策略匹配方法及系统 | |
CN111294316B (zh) | 基于用户态协议栈虚拟路由器的网络隔离方法和装置 | |
CN111819552B (zh) | 访问控制列表的管理方法及装置 | |
CN107800630A (zh) | 报文处理方法及装置 | |
CN108574637B (zh) | 一种地址自学习的方法、装置及交换机 |
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 | ||
CB02 | Change of applicant information |
Address after: Xinghan Street Industrial Park of Suzhou city in Jiangsu province 215021 B No. 5 Building 4 floor 13/16 unit Applicant after: Suzhou Shengke Communication Co.,Ltd. Address before: Xinghan Street Industrial Park of Suzhou city in Jiangsu province 215021 B No. 5 Building 4 floor 13/16 unit Applicant before: CENTEC NETWORKS (SUZHOU) Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |