CN107896194B - 一种路由查找方法、装置和存储介质 - Google Patents

一种路由查找方法、装置和存储介质 Download PDF

Info

Publication number
CN107896194B
CN107896194B CN201810002645.7A CN201810002645A CN107896194B CN 107896194 B CN107896194 B CN 107896194B CN 201810002645 A CN201810002645 A CN 201810002645A CN 107896194 B CN107896194 B CN 107896194B
Authority
CN
China
Prior art keywords
route
tri
content addressable
routes
addressable memory
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.)
Active
Application number
CN201810002645.7A
Other languages
English (en)
Other versions
CN107896194A (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.)
Suzhou Centec Communications Co Ltd
Original Assignee
Centec Networks Suzhou 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 Centec Networks Suzhou Co Ltd filed Critical Centec Networks Suzhou Co Ltd
Priority to CN201810002645.7A priority Critical patent/CN107896194B/zh
Publication of CN107896194A publication Critical patent/CN107896194A/zh
Application granted granted Critical
Publication of CN107896194B publication Critical patent/CN107896194B/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
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]

Landscapes

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

Abstract

本发明公开了一种路由查找方法,包括:获取第一三态内容寻址存储器中的第一路由;根据第一路由,通过第一三态内容寻址存储器,按照第一匹配规则执行第一匹配操作,获得与第一匹配操作对应的第一结果;将第二路由存储在第二三态内容寻址存储器中,第二路由与第一三态内容寻址存储器前缀在路由表中的最长子网掩码相匹配;在第一匹配操作执行过程中,并行通过第二三态内容寻址存储器,按照第二匹配规则执行第二匹配操作,获得与第二匹配操作对应的第二结果;基于预设路由选择规则,在与第一匹配操作对应的第一结果和与第二匹配操作对应的第二结果中,选择符合预设路由选择规则的路由。本发明还公开了一种路由查找装置和存储介质。

Description

一种路由查找方法、装置和存储介质
技术领域
本发明涉及信息处理技术,尤其是一种路由查找方法、装置和存储介质。
背景技术
现有技术中,网络交换芯片中主流的路由最长前缀匹配算法(LPM longestPrefix Matching)的实现是通过三态内容寻址存储器(TCAM ternary contentaddressable memory)中保存路由前缀,TCAM匹配到后保存至静态随机存储器(SRAMStatic Random Access Memory)中,在SRAM中保存的是此路由前缀下更长的路由,该技术存在的缺点包括:TCAM前缀匹配到后,取出TCAM指向的SRAM中的路由进行匹配,如果没有匹配到,此时报文就相当于没有查到路由;但是按照路由LPM的原理,这个报文可能匹配到路由表中掩码长度更短的路由,而不是查不到路由,因此路由的查找过程会发生错误。
发明章节
有鉴于此,本发明实施例期望提供一种路由查找方法及装置、存储介质,用以解决现有技术存在的路由查找发生错误的问题。
为达到上述目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种路由查找方法,包括:
获取第一三态内容寻址存储器中的第一路由;
根据所述第一路由,通过所述第一三态内容寻址存储器,按照第一匹配规则执行第一匹配操作,获得与所述第一匹配操作对应的第一结果;
将第二路由存储在第二三态内容寻址存储器中,所述第二路由与所述第一三态内容寻址存储器前缀在路由表中的最长子网掩码相匹配;
在所述第一匹配操作执行过程中,并行通过所述第二三态内容寻址存储器,按照第二匹配规则执行第二匹配操作,获得与所述第二匹配操作对应的第二结果;
基于预设路由选择规则,在与所述第一匹配操作对应的所述第一结果和所述与所述第二匹配操作对应的第二结果中,选择符合所述预设路由选择规则的路由。
上述方案中,所述根据所述第一路由,通过所述第一三态内容寻址存储器,按照第一匹配规则执行第一匹配操作,获得与所述第一匹配操作对应的第一结果,包括:
通过所述第一三态内容寻址存储器,在所述第一路由中执行最长前缀匹配操作,获得与所述最长前缀匹配操作对应的第一结果。
上述方案中,所述将与所述第一三态内容寻址存储器前缀在路由表中的最长子网掩码相匹配的第二路由存储在第二三态内容寻址存储器中,包括:
在所述第一三态内容寻址存储器的静态随机存取存储器中、以及与所述第一三态内容寻址存储器对应的静态随机存取存储器中,进行匹配操作;
将所获得的子网掩码最长的所述第二路由,存储到所述第二三态内容寻址存储器中。
上述方案中,所述基于预设路由选择规则,在所述与所述第一匹配操作对应的所述第一结果和所述与所述第二匹配操作对应的第二结果中选择符合所述预设路由选择规则的路由,包括至少以下之一:
当所述第一匹配操作对应的第一结果不为空时,与所述第一匹配操作对应的第一结果所包括的路由,为符合所述预设路由选择规则的路由;
当所述第一匹配操作对应的第一结果为空时,与所述第二匹配操作对应的第二结果所包括的路由,为符合所述预设路由选择规则的路由。
上述方案中,所述方法还包括:
获取的所述第一三态内容寻址存储器中的第一路由数量发生改变时,根据所改变的路由寻找符合预设添加规则的第三路由,将所述第三路由添加至所述第二三态内容寻址存储器中。
上述方案中,
所述获取的所述第一三态内容寻址存储器中的第一路由数量发生改变时,根据所改变的路由寻找符合预设添加规则的第三路由,将所述第三路由添加至所述第二三态内容寻址存储器中,包括:
所述获取的所述第一三态内容寻址存储器中的第一路由数量增加时,在与所增加的路由归属于同一三态内容寻址存储器前缀的路由中,寻找掩码最长的路由;
将所寻找到的所述掩码最长的路由添加至所述第二三态内容寻址存储器中。
上述方案中,所述方法还包括:
在所述第一三态内容寻址存储器中寻找增加路由的前缀;
基于所寻找的增加路由的前缀,在静态随机存取存储器中寻找最长掩码;
获取所寻找的增加路由的前缀指向的所述静态随机存取存储器中的路由数量;
基于所获取的路由数量,按照预设的路由增加处理规则,执行与所获取的路由数量对应的第一操作。
上述方案中,
所述获取的所述第一三态内容寻址存储器中的第一路由数量发生改变时,根据所改变的路由寻找符合预设添加规则的第三路由,将所述第三路由添加至所述第二三态内容寻址存储器中,包括:
所述获取的所述第一三态内容寻址存储器中的第一路由数量减少时,在与所减少的路由归属于同一三态内容寻址存储器前缀的路由中,寻找掩码最长的路由;
将所寻找到的所述掩码最长的路由添加至所述第二三态内容寻址存储器中。
上述方案中,所述方法还包括:
在所述第一三态内容寻址存储器中寻找减少路由的前缀;
在所述第二三态内容寻址存储器和静态随机存取存储器中分别删除所述减少路由;
获取所述减少路由的前缀指向所述静态随机存取存储器中的路由数量;
基于所获取的路由数量,按照预设的路由减少处理规则,执行与所获取的路由数量对应的第二操作。
本发明实施例中还提供了一种路由查找装置,包括:
路由获取模块,用于获取第一三态内容寻址存储器中的第一路由;
匹配模块,用于通过所述第一三态内容寻址存储器,按照第一匹配规则执行第一匹配操作,获得与所述第一匹配操作对应的第一结果;
存储模块,用于将第二路由存储在第二三态内容寻址存储器中,所述第二路由与所述第一三态内容寻址存储器前缀在路由表中的最长子网掩码相匹配;
所述匹配模块,用于通过所述第二三态内容寻址存储器,按照第二匹配规则执行第二匹配操作,获得与所述第二匹配操作对应的第二结果;
选择模块,用于在与所述第一匹配操作对应的所述第一结果和所述与所述第二匹配操作对应的第二结果中,选择符合所述预设路由选择规则的路由。
上述方案中,
所述匹配模块,用于通过所述第一三态内容寻址存储器,在所述第一路由中执行最长前缀匹配操作,获得与所述最长前缀匹配操作对应的第一结果。
上述方案中,
所述匹配模块,用于在所述第一三态内容寻址存储器的静态随机存取存储器中、以及和与所述第二三态内容寻址存储器对应的静态随机存取存储器中,进行匹配操作;
所述存储模块,用于将所获得的子网掩码最长的所述第二路由,存储到所述第二三态内容寻址存储器中。
上述方案中,
所述选择模块,用于当所述第一匹配操作对应的第一结果不为空时,选择与所述第一匹配操作对应的第一结果所包括的路由,为符合所述预设路由选择规则的路由;
所述选择模块,用于当所述第一匹配操作对应的第一结果为空时,选择与所述第二匹配操作对应的第二结果所包括的路由,为符合所述预设路由选择规则的路由。
上述方案中,
所述存储模块,用于根据所改变的路由寻找符合预设添加规则的第三路由,将所述第三路由添加至所述第二三态内容寻址存储器中。
上述方案中,
所述匹配模块,用于在与所增加的路由归属于同一三态内容寻址存储器前缀的路由中,寻找掩码最长的路由;
所述存储模块,用于将所寻找到的所述掩码最长的路由添加至所述第二三态内容寻址存储器中。
上述方案中,
所述匹配模块,用于在所述第一三态内容寻址存储器中寻找增加路由的前缀;
所述匹配模块,用于基于所寻找的增加路由的前缀,在静态随机存取存储器中寻找最长掩码;
所述匹配模块,用于获取所寻找的增加路由的前缀指向的所述静态随机存取存储器中的路由数量;
所述匹配模块,用于基于所获取的路由数量,按照预设的路由增加处理规则,执行与所获取的路由数量对应的第一操作。
上述方案中,
所述匹配模块,用于在与所减少的路由归属于同一三态内容寻址存储器前缀的路由中,寻找掩码最长的路由;
所述存储模块,用于将所寻找到的所述掩码最长的路由添加至所述第二三态内容寻址存储器中。
上述方案中,
所述匹配模块,用于在所述第一三态内容寻址存储器中寻找减少路由的前缀;
所述匹配模块,用于在所述第二三态内容寻址存储器和静态随机存取存储器中分别删除所述减少路由;
所述匹配模块,用于获取所所述减少路由的前缀指向所述静态随机存取存储器中的路由数量;
所述匹配模块,用于基于所获取的路由数量,按照预设的路由减少处理规则,执行与所获取的路由数量对应的第二操作。
本发明实施例还提供了一种路由查找装置,包括:
处理器和用于存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器用于运行所述计算机程序时,执行以下操作:
获取第一三态内容寻址存储器中的第一路由;
根据所述第一路由,通过所述第一三态内容寻址存储器,按照第一匹配规则执行第一匹配操作,获得与所述第一匹配操作对应的第一结果;
将第二路由存储在第二三态内容寻址存储器中,所述第二路由与所述第一三态内容寻址存储器前缀在路由表中的最长子网掩码相匹配;
在所述第一匹配操作执行过程中,并行通过所述第二三态内容寻址存储器,按照第二匹配规则执行第二匹配操作,获得与所述第二匹配操作对应的第二结果;
基于预设路由选择规则,在与所述第一匹配操作对应的所述第一结果和所述与所述第二匹配操作对应的第二结果中,选择符合所述预设路由选择规则的路由。
所述根据所述第一路由,通过所述第一三态内容寻址存储器,按照第一匹配规则执行第一匹配操作,获得与所述第一匹配操作对应的第一结果,包括:
通过所述第一三态内容寻址存储器,在所述第一路由中执行最长前缀匹配操作,获得与所述最长前缀匹配操作对应的第一结果。
所述将与所述第一三态内容寻址存储器前缀在路由表中的最长子网掩码相匹配的第二路由存储在第二三态内容寻址存储器中,包括:
在所述第一三态内容寻址存储器的静态随机存取存储器中、以及与所述第一三态内容寻址存储器对应的静态随机存取存储器中,进行匹配操作;
将所获得的子网掩码最长的所述第二路由,存储到所述第二三态内容寻址存储器中。
所述基于预设路由选择规则,在所述与所述第一匹配操作对应的所述第一结果和所述与所述第二匹配操作对应的第二结果中选择符合所述预设路由选择规则的路由,包括至少以下之一:
当所述第一匹配操作对应的第一结果不为空时,与所述第一匹配操作对应的第一结果所包括的路由,为符合所述预设路由选择规则的路由;
当所述第一匹配操作对应的第一结果为空时,与所述第二匹配操作对应的第二结果所包括的路由,为符合所述预设路由选择规则的路由。
所述方法还包括:
获取的所述第一三态内容寻址存储器中的第一路由数量发生改变时,根据所改变的路由寻找符合预设添加规则的第三路由,将所述第三路由添加至所述第二三态内容寻址存储器中。
所述获取的所述第一三态内容寻址存储器中的第一路由数量发生改变时,根据所改变的路由寻找符合预设添加规则的第三路由,将所述第三路由添加至所述第二三态内容寻址存储器中,包括:
所述获取的所述第一三态内容寻址存储器中的第一路由数量增加时,在与所增加的路由归属于同一三态内容寻址存储器前缀的路由中,寻找掩码最长的路由;
将所寻找到的所述掩码最长的路由添加至所述第二三态内容寻址存储器中。
所述方法还包括:
在所述第一三态内容寻址存储器中寻找增加路由的前缀;
基于所寻找的增加路由的前缀,在静态随机存取存储器中寻找最长掩码;
获取所寻找的增加路由的前缀指向的所述静态随机存取存储器中的路由数量;
基于所获取的路由数量,按照预设的路由增加处理规则,执行与所获取的路由数量对应的第一操作。
所述获取的所述第一三态内容寻址存储器中的第一路由数量发生改变时,根据所改变的路由寻找符合预设添加规则的第三路由,将所述第三路由添加至所述第二三态内容寻址存储器中,包括:
所述获取的所述第一三态内容寻址存储器中的第一路由数量减少时,在与所减少的路由归属于同一三态内容寻址存储器前缀的路由中,寻找掩码最长的路由;
将所寻找到的所述掩码最长的路由添加至所述第二三态内容寻址存储器中。
所述方法还包括:
在所述第一三态内容寻址存储器中寻找减少路由的前缀;
在所述第二三态内容寻址存储器和静态随机存取存储器中分别删除所述减少路由;
获取所述减少路由的前缀指向所述静态随机存取存储器中的路由数量;
基于所获取的路由数量,按照预设的路由减少处理规则,执行与所获取的路由数量对应的第二操作。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行:
获取第一三态内容寻址存储器中的第一路由;
根据所述第一路由,通过所述第一三态内容寻址存储器,按照第一匹配规则执行第一匹配操作,获得与所述第一匹配操作对应的第一结果;
将第二路由存储在第二三态内容寻址存储器中,所述第二路由与所述第一三态内容寻址存储器前缀在路由表中的最长子网掩码相匹配;
在所述第一匹配操作执行过程中,并行通过所述第二三态内容寻址存储器,按照第二匹配规则执行第二匹配操作,获得与所述第二匹配操作对应的第二结果;
基于预设路由选择规则,在与所述第一匹配操作对应的所述第一结果和所述与所述第二匹配操作对应的第二结果中,选择符合所述预设路由选择规则的路由。
所述根据所述第一路由,通过所述第一三态内容寻址存储器,按照第一匹配规则执行第一匹配操作,获得与所述第一匹配操作对应的第一结果,包括:
通过所述第一三态内容寻址存储器,在所述第一路由中执行最长前缀匹配操作,获得与所述最长前缀匹配操作对应的第一结果。
所述将与所述第一三态内容寻址存储器前缀在路由表中的最长子网掩码相匹配的第二路由存储在第二三态内容寻址存储器中,包括:
在所述第一三态内容寻址存储器的静态随机存取存储器中、以及与所述第一三态内容寻址存储器对应的静态随机存取存储器中,进行匹配操作;
将所获得的子网掩码最长的所述第二路由,存储到所述第二三态内容寻址存储器中。
所述基于预设路由选择规则,在所述与所述第一匹配操作对应的所述第一结果和所述与所述第二匹配操作对应的第二结果中选择符合所述预设路由选择规则的路由,包括至少以下之一:
当所述第一匹配操作对应的第一结果不为空时,与所述第一匹配操作对应的第一结果所包括的路由,为符合所述预设路由选择规则的路由;
当所述第一匹配操作对应的第一结果为空时,与所述第二匹配操作对应的第二结果所包括的路由,为符合所述预设路由选择规则的路由。
所述方法还包括:
获取的所述第一三态内容寻址存储器中的第一路由数量发生改变时,根据所改变的路由寻找符合预设添加规则的第三路由,将所述第三路由添加至所述第二三态内容寻址存储器中。
所述获取的所述第一三态内容寻址存储器中的第一路由数量发生改变时,根据所改变的路由寻找符合预设添加规则的第三路由,将所述第三路由添加至所述第二三态内容寻址存储器中,包括:
所述获取的所述第一三态内容寻址存储器中的第一路由数量增加时,在与所增加的路由归属于同一三态内容寻址存储器前缀的路由中,寻找掩码最长的路由;
将所寻找到的所述掩码最长的路由添加至所述第二三态内容寻址存储器中。
所述方法还包括:
在所述第一三态内容寻址存储器中寻找增加路由的前缀;
基于所寻找的增加路由的前缀,在静态随机存取存储器中寻找最长掩码;
获取所寻找的增加路由的前缀指向的所述静态随机存取存储器中的路由数量;
基于所获取的路由数量,按照预设的路由增加处理规则,执行与所获取的路由数量对应的第一操作。
所述获取的所述第一三态内容寻址存储器中的第一路由数量发生改变时,根据所改变的路由寻找符合预设添加规则的第三路由,将所述第三路由添加至所述第二三态内容寻址存储器中,包括:
所述获取的所述第一三态内容寻址存储器中的第一路由数量减少时,在与所减少的路由归属于同一三态内容寻址存储器前缀的路由中,寻找掩码最长的路由;
将所寻找到的所述掩码最长的路由添加至所述第二三态内容寻址存储器中。
所述方法还包括:
在所述第一三态内容寻址存储器中寻找减少路由的前缀;
在所述第二三态内容寻址存储器和静态随机存取存储器中分别删除所述减少路由;
获取所述减少路由的前缀指向所述静态随机存取存储器中的路由数量;
基于所获取的路由数量,按照预设的路由减少处理规则,执行与所获取的路由数量对应的第二操作。
本发明实施例中,首先,获取第一三态内容寻址存储器中的第一路由;根据所述第一路由,通过所述第一三态内容寻址存储器,按照第一匹配规则执行第一匹配操作,获得与所述第一匹配操作对应的第一结果。之后,将第二路由存储在第二三态内容寻址存储器中,所述第二路由与所述第一三态内容寻址存储器前缀在路由表中的最长子网掩码相匹配;在所述第一匹配操作执行过程中,并行通过所述第二三态内容寻址存储器,按照第二匹配规则执行第二匹配操作,获得与所述第二匹配操作对应的第二结果;最后,基于预设路由选择规则,在与所述第一匹配操作对应的所述第一结果和所述与所述第二匹配操作对应的第二结果中,选择符合所述预设路由选择规则的路由。
通过这种方式,不仅在路由增加和删除过程中,不需要要刷新路由表,提高了对路由表的速度,降低了对路由执行操作复杂度;而且在硬件设备运行中保证了路由查找的正确,符合LPM原则。同时,这种方式不需要限定使用环境和硬件设备,实现简单且适用范围广。
附图说明
图1为本发明实施例提供的路由匹配的一个可选的流程示意图;
图2为本发明实施例提供的路由查找方法一个可选的流程示意图;
图3为本发明实施例提供的路由查找装置一个可选的装置示意图;
图4为根据本发明实施例提供的路由查找方法进行路由匹配一个可选的过程示意图;
图5为根据本发明实施例提供的路由查找方法进行路由匹配一个可选的过程示意图;
图6为根据本发明实施例提供的路由查找方法进行路由匹配一个可选的过程示意图;
图7为本发明实施例路由查找装置一个可选的组成示意图。
具体实施方式
为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明。
对本发明进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
TCAM:三态内容寻址存储器(TCAM ternary content addressable memory),用于快速查找ACL、路由等表项。
LPM:最长前缀匹配算法(LPM longest Prefix Matching)。
SRAM:静态随机存储器(SRAM Static Random Access Memory),具有静止存取功能的内存,不需要刷新电路即能保存其内部存储的数据。
图1为本发明实施例提供的路由匹配的一个可选的流程示意图,如图1所示,采用现有技术为10.10.3.100报文进行LPM查找时,假设依次添加路由分别为:10.10.1.0/24、10.10.2.0/24、10.10.0.0/16,当每条TCAM后续的SRAM中可以放2条路,并且TCAM前缀不放路由转发信息,如果TCAM前缀本身也是路由,可以放到SRAM中时,由此,针对依次添加的路由,TCAM和SRAM的变化如表1所示;
route TCAM SRAM
Add 0.0.0.0/0 0.0.0.0/0
Add 10.10.1.0/24 0.0.0.0/0 10.10.00000001.0/24
Add 10.10.2.0/24 0.0.0.0/0 10.10.00000001.0/24
10.10.00000010.0/24
Add 10.10.0.0/16 10.10.0.0/22 10.10.1.0/24
10.10.2.0/24
0.0.0.0/0 10.10.0.0/16
表1
TCAM和SRAM中的路由前缀变化情况如表2所示;例如,当为10.10.3.100报文进行LPM查找时,前缀会匹配到10.10.0.0/22,然后在其所指向的SRAM中,只有10.10.1.0/24和10.10.2.0/24,不能匹配到10.10.3.100;按照LPM原理,其匹配结果应该是匹配到10.10.0.0/16这条路由,由于10.10.0.0/22会在0.0.0.0/0前匹配到,因此10.10.0.0/16没法匹配到,造成路由匹配的错误。
Route TCAM SRAM
Add10.10.0.0/16 10.10.0.0/22 10.10.1.0/24(R)
10.10.2.0/24(R)
0.0.0.0/0 10.10.0.0/16(R)
表2
为解决这种匹配错误的问题,需要辅助软件修正现有的查找匹配方法,具体包括:首先,使用10.10.0.0/22在软件路由表中做一次查找,查到的结果是10.10.0.0/16;之后将10.10.0.0/16转发信息拷贝到10.10.0.0/22中;由此为10.10.3.100报文进行LPM查找的过程包括了:首先,TCAM会命中到10.10.0.0/22,之后SRAM中两条路由10.10.1.0/24和10.10.2.0/24和10.10.3.100都不匹配;进一步选择10.10.0.0/22的转发信息:由于10.10.0.0/22的转发信息是从10.10.0.0/16拷贝而来,因此转发行为上和匹配到10.10.0.0/16一样,由此,保证能够匹配到正确的路由。
但是,采用这种辅助软件修正的方式面临许多问题,首先,当增加路由时,这条路由的转发行为有可能需要复制到其它TCAM的转发行为中;
其次,删除路由时,有可能需要更新其他TCAM的转发行为,因为当前路由的转发信息被复制到其他TCAM的转发行为中,当这条路由删除后,需要更新这些TCAM的转发行为。随着路由数目增多,辅助软件的修正过程会变得更加复杂,效率会下降,影响用户的使用。
图2为本发明实施例提供的路由查找方法一个可选的流程示意图,如图2所示,本发明实施例提供的路由查找方法一个可选的流程包括以下步骤:
步骤201:获取第一三态内容寻址存储器中的第一路由;
例如,所述根据所述第一路由,通过所述第一三态内容寻址存储器,按照第一匹配规则执行第一匹配操作,获得与所述第一匹配操作对应的第一结果,包括:
通过所述第一三态内容寻址存储器,在所述第一路由中执行最长前缀匹配操作,获得与所述最长前缀匹配操作对应的第一结果。
步骤202:根据所述第一路由,通过所述第一三态内容寻址存储器,按照第一匹配规则执行第一匹配操作,获得与所述第一匹配操作对应的第一结果;
步骤203:将第二路由存储在第二三态内容寻址存储器中;
其中,所述第二路由与所述第一三态内容寻址存储器前缀在路由表中的最长子网掩码相匹配;
例如,所述将与所述第一三态内容寻址存储器前缀在路由表中的最长子网掩码相匹配的第二路由存储在第二三态内容寻址存储器中,包括:
在所述第一三态内容寻址存储器的静态随机存取存储器中、以及与所述第一三态内容寻址存储器对应的静态随机存取存储器中,进行匹配操作;
将所获得的子网掩码最长的所述第二路由,存储到所述第二三态内容寻址存储器中。
步骤204:在所述第一匹配操作执行过程中,并行通过所述第二三态内容寻址存储器,按照第二匹配规则执行第二匹配操作,获得与所述第二匹配操作对应的第二结果;
例如,所述第一匹配操作和所述第二匹配操作可以并发执行,在本发明的一个实施例中,每条第一TCAM的前缀及其后续SRAM中的路由中,掩码最长的路由放入第二TCAM中。
步骤205:基于预设路由选择规则,在与所述第一匹配操作对应的所述第一结果和所述与所述第二匹配操作对应的第二结果中,选择符合所述预设路由选择规则的路由;
进一步的,需要判断所述第一匹配操作对应的第一结果是否为空,并根据所述第一结果,执行后续操作;
例如,所述基于预设路由选择规则,在所述与所述第一匹配操作对应的所述第一结果和所述与所述第二匹配操作对应的第二结果中选择符合所述预设路由选择规则的路由,包括至少以下之一:
当所述第一匹配操作对应的第一结果不为空时,与所述第一匹配操作对应的第一结果所包括的路由,为符合所述预设路由选择规则的路由;
当所述第一匹配操作对应的第一结果为空时,与所述第二匹配操作对应的第二结果所包括的路由,为符合所述预设路由选择规则的路由。
实际应用中,获取的所述第一三态内容寻址存储器中的第一路由数量发生改变时,根据所改变的路由寻找符合预设添加规则的第三路由,将所述第三路由添加至所述第二三态内容寻址存储器中;
进一步的,当所述获取的所述第一三态内容寻址存储器中的第一路由数量增加时,在与所增加的路由归属于同一三态内容寻址存储器前缀的路由中,寻找掩码最长的路由;
将所寻找到的所述掩码最长的路由添加至所述第二三态内容寻址存储器中。
进一步的,在所述第一三态内容寻址存储器中寻找增加路由的前缀;
基于所寻找的增加路由的前缀,在静态随机存取存储器中寻找最长掩码;
获取所寻找的增加路由的前缀指向的所述静态随机存取存储器中的路由数量;
基于所获取的路由数量,按照预设的路由增加处理规则,执行与所获取的路由数量对应的第一操作。
当所述获取的所述第一三态内容寻址存储器中的第一路由数量减少时,在与所减少的路由归属于同一三态内容寻址存储器前缀的路由中,寻找掩码最长的路由;
将所寻找到的所述掩码最长的路由添加至所述第二三态内容寻址存储器中。
进一步的,在所述第一三态内容寻址存储器中寻找减少路由的前缀;
在所述第二三态内容寻址存储器和静态随机存取存储器中分别删除所述减少路由;
获取所述减少路由的前缀指向所述静态随机存取存储器中的路由数量;
基于所获取的路由数量,按照预设的路由减少处理规则,执行与所获取的路由数量对应的第二操作。
通过本发明实施例提供的路由查找方法,对于每一条第一三态内容寻址存储器TCAM0的前缀,在第二三态内容寻址存储器TCAM1中保存一条路由,这条路由就是第一三态内容寻址存储器TCAM0前缀在路由表中的路由;当第一三态内容寻址存储器TCAM0中匹配到一条三态内容寻址存储器TCAM前缀,但其后续的SRAM中没有对应的精确匹配路由,这时,需要匹配到掩码更短的路由;第二三态内容寻址存储器TCAM1中放的就是本三态内容寻址存储器TCAM前缀在路由表中的匹配路由;
通过这种方式,第一三态内容寻址存储器TCAM0查找不到时,在第二三态内容寻址存储器TCAM1中可以查到掩码更短的路由,从而保证LPM匹配的正确。因此,通过这种方式,不仅在路由增加和删除过程中,不需要要刷新路由表,提高了对路由表的速度,降低了对路由执行操作复杂度;而且在硬件设备运行中保证了路由查找的正确,符合LPM原则。
在实际应用中,对于相同的路由前缀,掩码长度不同,在硬件中的排列有如下特点:
1)同一个三态内容寻址存储器TCAM前缀后续的SRAM中有多条路由,其特点是路由掩码长度一定是大于或等于三态内容寻址存储器TCAM前缀的掩码长这是由于:三态内容寻址存储器TCAM前缀是这些路由的共同前缀,如果路由掩码长度比三态内容寻址存储器TCAM前缀掩码短,那么这个三态内容寻址存储器TCAM前缀就不是这条路由的共同前缀了;
2)同一个三态内容寻址存储器TCAM前缀后续的SRAM中有多条路由,其特点是路由掩码长度一定是小于相邻的前序三态内容寻址存储器TCAM前缀的掩码长度,这是由于:如果路由长度大于或等于相邻的前序三态内容寻址存储器TCAM前缀的掩码长度,那么这条路由应该挂在相邻的前序三态内容寻址存储器TCAM前缀后面,而不是当前的三态内容寻址存储器TCAM前缀后面,因为相邻的前序三态内容寻址存储器TCAM前缀才是和本路由有着最长的共同前缀;
3)掩码长度长的三态内容寻址存储器TCAM前缀放在掩码长度短的三态内容寻址存储器TCAM前缀前序,因为三态内容寻址存储器TCAM前缀掩码长,代表其是更优的匹配结果,符合LPM匹配的原理。
图3为本发明实施例提供的路由查找装置一个可选的装置示意图,如图3所示,本发明实施例提供的路由查找装置一个可选的装置包括:
路由获取模块301,用于获取第一三态内容寻址存储器中的第一路由;
匹配模块302,用于通过所述第一三态内容寻址存储器,按照第一匹配规则执行第一匹配操作,获得与所述第一匹配操作对应的第一结果;
例如,所述匹配模块302,用于通过所述第一三态内容寻址存储器,在所述第一路由中执行最长前缀匹配操作,获得与所述最长前缀匹配操作对应的第一结果。
存储模块303,用于将第二路由存储在第二三态内容寻址存储器中,所述第二路由与所述第一三态内容寻址存储器前缀在路由表中的最长子网掩码相匹配;
例如,在本发明的一个实施例中,所述匹配模块302,用于在所述第一三态内容寻址存储器的静态随机存取存储器中、以及和与所述第二三态内容寻址存储器对应的静态随机存取存储器中,进行匹配操作;
所述存储模块303,用于将所获得的子网掩码最长的所述第二路由,存储到所述第二三态内容寻址存储器中;
所述匹配模块302,用于通过所述第二三态内容寻址存储器,按照第二匹配规则执行第二匹配操作,获得与所述第二匹配操作对应的第二结果;
选择模块304,用于在与所述第一匹配操作对应的所述第一结果和所述与所述第二匹配操作对应的第二结果中,选择符合所述预设路由选择规则的路由。
例如,所述选择模块304,用于当所述第一匹配操作对应的第一结果不为空时,选择与所述第一匹配操作对应的第一结果所包括的路由,为符合所述预设路由选择规则的路由;
所述选择模块304,用于当所述第一匹配操作对应的第一结果为空时,选择与所述第二匹配操作对应的第二结果所包括的路由,为符合所述预设路由选择规则的路由。
在本发明的一个实施例中,所述第一三态内容寻址存储器中的第一路由数量发生改变时,所述存储模块303,用于获取的所述第一三态内容寻址存储器中的第一路由数量发生改变时,根据所改变的路由寻找符合预设添加规则的第三路由,将所述第三路由添加至所述第二三态内容寻址存储器中。
进一步的,所述匹配模块302,用于所述获取的所述第一三态内容寻址存储器中的第一路由数量增加时,在与所增加的路由归属于同一三态内容寻址存储器前缀的路由中,寻找掩码最长的路由;
所述存储模块303,用于将所寻找到的所述掩码最长的路由添加至所述第二三态内容寻址存储器中。
所述匹配模块302,用于在所述第一三态内容寻址存储器中寻找增加路由的前缀;
所述匹配模块302,用于基于所寻找的增加路由的前缀,在静态随机存取存储器中寻找最长掩码;
所述匹配模块302,用于获取所寻找的增加路由的前缀指向的所述静态随机存取存储器中的路由数量;
所述匹配模块302,用于基于所获取的路由数量,按照预设的路由增加处理规则,执行与所获取的路由数量对应的第一操作。
在本发明的一个实施例中,所述匹配模块302,用于在与所减少的路由归属于同一三态内容寻址存储器前缀的路由中,寻找掩码最长的路由;
所述存储模块303,用于将所寻找到的所述掩码最长的路由添加至所述第二三态内容寻址存储器中。
进一步的,所述匹配模块303,用于在所述第一三态内容寻址存储器中寻找减少路由的前缀;
所述匹配模块303,用于在所述第二三态内容寻址存储器和静态随机存取存储器中分别删除所述减少路由;
所述匹配模块303,用于获取所所述减少路由的前缀指向所述静态随机存取存储器中的路由数量;
所述匹配模块303,用于基于所获取的路由数量,按照预设的路由减少处理规则,执行与所获取的路由数量对应的第二操作。
图4为根据本发明实施例提供的路由查找方法进行路由匹配一个可选的过程示意图,如图4所示,根据本发明实施例提供的路由查找方法进行路由匹配一个可选的过程包括2次查找匹配过程;其查找匹配原则包括:第一三态内容寻址存储器TCAM0用来做LPM查找,第二三态内容寻址存储器TCAM1中放第一三态内容寻址存储器TCAM0中的前缀在路由表中查找出的路由;这2次查找匹配操作并行执行,如果第一三态内容寻址存储器TCAM0找到路由,就是第一三态内容寻址存储器TCAM0的路由结果,如果第二三态内容寻址存储器TCAM1找到路由,就使用第二三态内容寻址存储器TCAM1的路由结果,否则使用默认路由。
具体过程包括:通过第一三态内容寻址存储器TCAM0中的路由10.10.0.0/22在于其对应的SRAM中查找匹配的结果是10.10.0.0/16,那么就把该查找匹配结果10.10.0.0/16放到第三三态内容寻址存储器TCAM2中;
当通过10.10.1.100来做路由查找时,第一三态内容寻址存储器TCAM0和第二三态内容寻址存储器TCAM1中都能够查到路由,因此,使用10.10.1.0/24的查找匹配结果;
当通过10.10.3.100来做路由查找时,第一三态内容寻址存储器TCAM0没有路由结果,第二三态内容寻址存储器TCAM1中查到路由10.10.0.0/16,因此使用第二三态内容寻址存储器TCAM1的查找匹配结果;
当通过10.9.1.100来做路由查找时,第一三态内容寻址存储器TCAM0和第二三态内容寻址存储器TCAM1中都查不到结果,那么使用默认路由的结果。
图5为根据本发明实施例提供的路由查找方法进行路由匹配一个可选的过程示意图,如图5所示,本发明实施例提供的路由查找方法进行路由匹配一个可选的过程包括以下步骤:
步骤501:寻找路由A在第一三态内容寻址存储器TCAM0中的前缀B,以及前缀B指向SRAM中最长掩码A1
例如,在本实施例中,第一三态内容寻址存储器TCAM0中前缀最大数目和第二三态内容寻址存储器TCAM1中前缀最大数目一样;每条SRAM中可以放2条路由;
路由A为所添加的路由;
步骤502:判断第一三态内容寻址存储器TCAM0路由前缀B指向的SRAM中路由数目小于2是否成成立,如果是,执行步骤503,否则,执行步骤504;
步骤503:将路由A写入到前缀B指向的SRAM中;
例如,所述将路由A写入到前缀B指向的SRAM中包括至少以下之一:
路由A掩码长度大于路由A1掩码长度时,路由A写入第二三态内容寻址存储器TCAM1中,从第二三态内容寻址存储器TCAM1中删除路由A1
路由A掩码长度小于路由A1掩码长度时,无需操作;
步骤504:将路由A放到第一三态内容寻址存储器TCAM0路由前缀B表中;
步骤505:将路由前缀B表拆出1条新的三态内容寻址存储器TCAM前缀B1
进一步的,由于B1指向的SRAM中有1条或2条路由,因此执行至少以下之一:
把B1和B及其后续路由写入到TCAM0和SRAM中;
找到B1和B后续路由中最长的路由,写入到第二三态内容寻址存储器TCAM1中。
图6为根据本发明实施例提供的路由查找方法进行路由匹配一个可选的过程示意图,如图6所示,根据本发明实施例提供的路由查找方法进行路由匹配一个可选的过程包括以下步骤:
步骤601:找到路由A在第一三态内容寻址存储器TCAM0中的前缀B;
例如,在本实施例中,第一三态内容寻址存储器TCAM0中前缀最大数目和第二三态内容寻址存储器TCAM1中前缀最大数目一样;每条SRAM中可以放2条路由;
其中路由A为所删除的路由,
步骤602:从SRAM和第二三态内容寻址存储器TCAM1中删除路由A;
步骤603:判断路由前缀B指向SRAM中路由数量等于1是否成立,如果是,执行步骤604,否则,执行步骤605;
步骤604:从TCAM0中删除前缀B;
步骤605:获取前缀B指向SRAM中最长掩码;
例如,第二三态内容寻址存储器TCAM1中路由前缀不会被第一三态内容寻址存储器TCAM0中前缀共享,所以,新的前缀B2可以直接被删除;之前引用A的第一三态内容寻址存储器TCAM0,现在引用新的路由A2
步骤606:通过路由A1查找TCAM1路由前缀表,判断是否有查找结果,如果有,执行步骤607,否则,执行步骤608;
步骤607:无需处理;
步骤608:将新的路由A2保存在第二三态内容寻址存储器TCAM1中。
图7为本发明实施例路由查找装置一个可选的组成示意图,如图7所示,路由查找装置700可以是带有包括带有路由功能的移动电话、计算机、数字广播终端、信息收发设备、游戏控制台、平板设备、医疗设备、健身设备、个人数字助理等。图7所示的路由查找装置700包括:至少一个处理器701、存储器702、至少一个网络接口704和用户接口703。路由查找装置700中的各个组件通过总线系统705耦合在一起。可理解,总线系统705用于实现这些组件之间的连接通信。总线系统705除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图7中将各种总线都标为总线系统705。
其中,用户接口703可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
可以理解,存储器702可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器702旨在包括这些和任意其它适合类型的存储器。
本发明实施例中的存储器702包括但不限于:三态内容寻址存储器、静态随机存储器能够存储路由数据以支持路由查找装置700的操作。这些数据的示例包括:用于在路由查找装置700上操作的任何计算机程序,如操作系统7021和应用程序7022;各类型路由数据信息等。其中,操作系统7021包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序7022可以包含各种应用程序,例如带有路由查找功能的客户端、或应用程序等,用于实现包括查找路由、处理增加和/或删除的路由在内的各种应用业务。实现本发明实施例路由查找方法的程序可以包含在应用程序7022中。
上述本发明实施例揭示的方法可以应用于处理器701中,或者由处理器701实现。处理器701可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器701中的硬件的集成逻辑电路或者软件形式的操作完成。上述的处理器701可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器701可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器702,处理器701读取存储器702中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,路由查找装置700可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable LogicDevice)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或其他电子元件实现,用于执行所述路由查找方法。
在示例性实施例中,本发明实施例还提供了一种计算机可读存储介质,例如包括计算机程序的存储器702,上述计算机程序可由路由查找装置700的处理器701执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、FlashMemory、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备,如移动电话、计算机、平板设备、个人数字助理等。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器运行时,执行:
获取第一三态内容寻址存储器中的第一路由;
根据所述第一路由,通过所述第一三态内容寻址存储器,按照第一匹配规则执行第一匹配操作,获得与所述第一匹配操作对应的第一结果;
将第二路由存储在第二三态内容寻址存储器中,所述第二路由与所述第一三态内容寻址存储器前缀在路由表中的最长子网掩码相匹配;
在所述第一匹配操作执行过程中,并行通过所述第二三态内容寻址存储器,按照第二匹配规则执行第二匹配操作,获得与所述第二匹配操作对应的第二结果;
基于预设路由选择规则,在与所述第一匹配操作对应的所述第一结果和所述与所述第二匹配操作对应的第二结果中,选择符合所述预设路由选择规则的路由。
本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序操作实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序操作到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的操作产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序操作也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的操作产生包括操作装置的制造品,该操作装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序操作也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的操作提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (18)

1.一种路由查找方法,其特征在于,所述方法包括:
获取第一三态内容寻址存储器中的第一路由;
通过所述第一三态内容寻址存储器,在所述第一路由中执行最长前缀匹配操作,获得与所述最长前缀匹配操作对应的第一结果;
将第二路由存储在第二三态内容寻址存储器中,所述第二路由与所述第一三态内容寻址存储器前缀在路由表中的最长子网掩码相匹配;
在所述最长前缀匹配操作执行过程中,并行通过所述第二三态内容寻址存储器,按照第二匹配规则执行第二匹配操作,获得与所述第二匹配操作对应的第二结果;
基于预设路由选择规则,在与所述最长前缀匹配操作对应的所述第一结果和所述与所述第二匹配操作对应的第二结果中,选择符合所述预设路由选择规则的路由。
2.根据权利要求1所述的方法,其特征在于,所述将第二路由存储在第二三态内容寻址存储器中,包括:
在所述第一三态内容寻址存储器的静态随机存取存储器中、以及与所述第一三态内容寻址存储器对应的静态随机存取存储器中,进行匹配操作;
将所获得的子网掩码最长的所述第二路由,存储到所述第二三态内容寻址存储器中。
3.根据权利要求1所述的方法,其特征在于,所述基于预设路由选择规则,在所述与所述最长前缀匹配操作对应的所述第一结果和所述与所述第二匹配操作对应的第二结果中选择符合所述预设路由选择规则的路由,包括至少以下之一:
当所述最长前缀匹配操作对应的第一结果不为空时,与所述最长前缀匹配操作对应的第一结果所包括的路由,为符合所述预设路由选择规则的路由;
当所述最长前缀匹配操作对应的第一结果为空时,与所述第二匹配操作对应的第二结果所包括的路由,为符合所述预设路由选择规则的路由。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取的所述第一三态内容寻址存储器中的第一路由数量发生改变时,根据所改变的路由寻找符合预设添加规则的第三路由,将所述第三路由添加至所述第二三态内容寻址存储器中。
5.根据权利要求4所述的方法,其特征在于,
所述获取的所述第一三态内容寻址存储器中的第一路由数量发生改变时,根据所改变的路由寻找符合预设添加规则的第三路由,将所述第三路由添加至所述第二三态内容寻址存储器中,包括:
所述获取的所述第一三态内容寻址存储器中的第一路由数量增加时,在与所增加的路由归属于同一三态内容寻址存储器前缀的路由中,寻找掩码最长的路由;
将所寻找到的所述掩码最长的路由添加至所述第二三态内容寻址存储器中。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述第一三态内容寻址存储器中寻找增加路由的前缀;
基于所寻找的增加路由的前缀,在静态随机存取存储器中寻找最长掩码;
获取所寻找的增加路由的前缀指向的所述静态随机存取存储器中的路由数量;
基于所获取的路由数量,按照预设的路由增加处理规则,执行与所获取的路由数量对应的第一操作。
7.根据权利要求4所述的方法,其特征在于,
所述获取的所述第一三态内容寻址存储器中的第一路由数量发生改变时,根据所改变的路由寻找符合预设添加规则的第三路由,将所述第三路由添加至所述第二三态内容寻址存储器中,包括:
所述获取的所述第一三态内容寻址存储器中的第一路由数量减少时,在与所减少的路由归属于同一三态内容寻址存储器前缀的路由中,寻找掩码最长的路由;
将所寻找到的所述掩码最长的路由添加至所述第二三态内容寻址存储器中。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在所述第一三态内容寻址存储器中寻找减少路由的前缀;
在所述第二三态内容寻址存储器和静态随机存取存储器中分别删除所述减少路由;
获取所述减少路由的前缀指向所述静态随机存取存储器中的路由数量;
基于所获取的路由数量,按照预设的路由减少处理规则,执行与所获取的路由数量对应的第二操作。
9.一种路由查找装置,其特征在于,所述装置包括:
路由获取模块,用于获取第一三态内容寻址存储器中的第一路由;
匹配模块,用于通过所述第一三态内容寻址存储器,在所述第一路由中执行最长前缀匹配操作,获得与所述最长前缀匹配操作对应的第一结果;
存储模块,用于将第二路由存储在第二三态内容寻址存储器中,所述第二路由与所述第一三态内容寻址存储器前缀在路由表中的最长子网掩码相匹配;
所述匹配模块,用于在所述最长前缀匹配操作执行过程中,并行通过所述第二三态内容寻址存储器,按照第二匹配规则执行第二匹配操作,获得与所述第二匹配操作对应的第二结果;
选择模块,用于基于预设路由选择规则,在与所述最长前缀匹配操作对应的所述第一结果和所述与所述第二匹配操作对应的第二结果中,选择符合所述预设路由选择规则的路由。
10.根据权利要求9所述的装置,其特征在于,
所述匹配模块,用于在所述第一三态内容寻址存储器的静态随机存取存储器中、以及和与所述第二三态内容寻址存储器对应的静态随机存取存储器中,进行匹配操作;
所述存储模块,用于将所获得的子网掩码最长的所述第二路由,存储到所述第二三态内容寻址存储器中。
11.根据权利要求9所述的装置,其特征在于,
所述选择模块,用于当所述最长前缀匹配操作对应的第一结果不为空时,选择与所述最长前缀匹配操作对应的第一结果所包括的路由,为符合所述预设路由选择规则的路由;
所述选择模块,用于当所述最长前缀匹配操作对应的第一结果为空时,选择与所述第二匹配操作对应的第二结果所包括的路由,为符合所述预设路由选择规则的路由。
12.根据权利要求9所述的装置,其特征在于,
所述存储模块,用于根据所改变的路由寻找符合预设添加规则的第三路由,将所述第三路由添加至所述第二三态内容寻址存储器中。
13.根据权利要求12所述的装置,其特征在于,
所述匹配模块,用于在与所增加的路由归属于同一三态内容寻址存储器前缀的路由中,寻找掩码最长的路由;
所述存储模块,用于将所寻找到的所述掩码最长的路由添加至所述第二三态内容寻址存储器中。
14.根据权利要求13所述的装置,其特征在于,
所述匹配模块,用于在所述第一三态内容寻址存储器中寻找增加路由的前缀;
所述匹配模块,用于基于所寻找的增加路由的前缀,在静态随机存取存储器中寻找最长掩码;
所述匹配模块,用于获取所寻找的增加路由的前缀指向的所述静态随机存取存储器中的路由数量;
所述匹配模块,用于基于所获取的路由数量,按照预设的路由增加处理规则,执行与所获取的路由数量对应的第一操作。
15.根据权利要求12所述的装置,其特征在于,
所述匹配模块,用于在与所减少的路由归属于同一三态内容寻址存储器前缀的路由中,寻找掩码最长的路由;
所述存储模块,用于将所寻找到的所述掩码最长的路由添加至所述第二三态内容寻址存储器中。
16.根据权利要求15所述的装置,其特征在于,
所述匹配模块,用于在所述第一三态内容寻址存储器中寻找减少路由的前缀;
所述匹配模块,用于在所述第二三态内容寻址存储器和静态随机存取存储器中分别删除所述减少路由;
所述匹配模块,用于获取所所述减少路由的前缀指向所述静态随机存取存储器中的路由数量;
所述匹配模块,用于基于所获取的路由数量,按照预设的路由减少处理规则,执行与所获取的路由数量对应的第二操作。
17.一种路由查找装置,其特征在于,所述装置包括:
处理器和用于存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器用于运行所述计算机程序时,执行以下操作:
获取第一三态内容寻址存储器中的第一路由;
通过所述第一三态内容寻址存储器,在所述第一路由中执行最长前缀匹配操作,获得与所述最长前缀匹配操作对应的第一结果;
将第二路由存储在第二三态内容寻址存储器中,所述第二路由与所述第一三态内容寻址存储器前缀在路由表中的最长子网掩码相匹配;
在所述最长前缀匹配操作执行过程中,并行通过所述第二三态内容寻址存储器,按照第二匹配规则执行第二匹配操作,获得与所述第二匹配操作对应的第二结果;
基于预设路由选择规则,在与所述最长前缀匹配操作对应的所述第一结果和所述与所述第二匹配操作对应的第二结果中,选择符合所述预设路由选择规则的路由。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行:
获取第一三态内容寻址存储器中的第一路由;
通过所述第一三态内容寻址存储器,在所述第一路由中执行最长前缀匹配操作,获得与所述最长前缀匹配操作对应的第一结果;
将第二路由存储在第二三态内容寻址存储器中,所述第二路由与所述第一三态内容寻址存储器前缀在路由表中的最长子网掩码相匹配;
在所述最长前缀匹配操作执行过程中,并行通过所述第二三态内容寻址存储器,按照第二匹配规则执行第二匹配操作,获得与所述第二匹配操作对应的第二结果;
基于预设路由选择规则,在与所述最长前缀匹配操作对应的所述第一结果和所述与所述第二匹配操作对应的第二结果中,选择符合所述预设路由选择规则的路由。
CN201810002645.7A 2018-01-02 2018-01-02 一种路由查找方法、装置和存储介质 Active CN107896194B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810002645.7A CN107896194B (zh) 2018-01-02 2018-01-02 一种路由查找方法、装置和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810002645.7A CN107896194B (zh) 2018-01-02 2018-01-02 一种路由查找方法、装置和存储介质

Publications (2)

Publication Number Publication Date
CN107896194A CN107896194A (zh) 2018-04-10
CN107896194B true CN107896194B (zh) 2021-04-09

Family

ID=61808910

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810002645.7A Active CN107896194B (zh) 2018-01-02 2018-01-02 一种路由查找方法、装置和存储介质

Country Status (1)

Country Link
CN (1) CN107896194B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112822112B (zh) * 2020-12-31 2022-08-19 苏州盛科通信股份有限公司 一种路由地址存储方法及装置
CN112667640B (zh) * 2020-12-31 2023-09-12 苏州盛科通信股份有限公司 一种路由地址存储方法及装置
CN116156026B (zh) * 2023-04-20 2023-07-04 中国人民解放军国防科技大学 一种支持rmt的解析器、逆解析器、解析方法及交换机

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8798066B2 (en) * 2012-09-27 2014-08-05 Avaya Inc. Method for IPv6 longest prefix match
KR20140144303A (ko) * 2012-05-14 2014-12-18 알까뗄 루슨트 3진 내용 주소화 기억장치(tcam) 내의 클러스터로의 레코드의 동적 할당

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100456840C (zh) * 2003-11-25 2009-01-28 华为技术有限公司 将lpm算法拆分到两个cpu的方法
US8799507B2 (en) * 2012-03-13 2014-08-05 Juniper Networks, Inc. Longest prefix match searches with variable numbers of prefixes
US9098601B2 (en) * 2012-06-27 2015-08-04 Futurewei Technologies, Inc. Ternary content-addressable memory assisted packet classification
CN104239337B (zh) * 2013-06-19 2019-03-26 中兴通讯股份有限公司 基于tcam的查表处理方法及装置
CN105099918B (zh) * 2014-05-13 2019-01-29 华为技术有限公司 一种数据查找匹配的方法和装置
CN106656816B (zh) * 2016-09-18 2019-09-24 首都师范大学 分布式ipv6路由查找方法和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140144303A (ko) * 2012-05-14 2014-12-18 알까뗄 루슨트 3진 내용 주소화 기억장치(tcam) 내의 클러스터로의 레코드의 동적 할당
US8798066B2 (en) * 2012-09-27 2014-08-05 Avaya Inc. Method for IPv6 longest prefix match

Also Published As

Publication number Publication date
CN107896194A (zh) 2018-04-10

Similar Documents

Publication Publication Date Title
CN106970936B (zh) 数据处理方法及装置、数据查询方法及装置
CN107896194B (zh) 一种路由查找方法、装置和存储介质
EP2352258B1 (en) Storage method and apparatus
US7908283B2 (en) Finding superlatives in an unordered list
CN105550298B (zh) 一种关键词模糊匹配的方法及装置
CN106789859B (zh) 报文匹配方法及装置
US20170109224A1 (en) High voltage failure recovery for emulated electrically erasable (eee) memory system
CN109460406B (zh) 一种数据处理方法及装置
CN108322394B (zh) 路由表建立、查找、删除及状态变更方法和装置
US10153972B2 (en) Method and apparatus for coding a user defined constant into a key composition rule using variable length command
US20120059832A1 (en) Portable Hash-Based Key Location Mechanism
US10547536B2 (en) Identifying shortest paths
WO2019165763A1 (zh) 一种用于查询数据的方法
CN108664518B (zh) 一种实现查表处理的方法及装置
US7305519B1 (en) Error protection for associative memory entries and lookup operations performed thereon
CN114745327A (zh) 业务数据转发方法、装置、设备及存储介质
CN107547378B (zh) 一种vpn路由学习方法和装置
KR20150045073A (ko) 데이터 운용 방법 및 이를 지원하는 시스템
CN117390029A (zh) 一种表项插入方法、装置、电子设备及存储介质
CN109101191B (zh) 数据存储方法、装置和存储介质以及电子设备
KR20210028576A (ko) 네트워크 키 값 인덱싱 설계
CN113824814B (zh) 一种转发表的地址匹配方法、装置、网络设备及介质
CN114463068A (zh) 一种数据处理方法和装置
CN111444218B (zh) 组合规则的匹配方法和装置
CN108446144A (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
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Unit 13 / 16, 4th floor, building B, Xinghan 5, Suzhou Industrial Park, Suzhou, Jiangsu 215021

Patentee after: Suzhou Shengke Communication Co.,Ltd.

Address before: Unit 13 / 16, 4th floor, building B, Xinghan 5, Suzhou Industrial Park, Jiangsu Province, 215021

Patentee before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd.