CN110708251B - 一种三态内容寻址存储器tcam转发单播查表方法 - Google Patents
一种三态内容寻址存储器tcam转发单播查表方法 Download PDFInfo
- Publication number
- CN110708251B CN110708251B CN201910903249.6A CN201910903249A CN110708251B CN 110708251 B CN110708251 B CN 110708251B CN 201910903249 A CN201910903249 A CN 201910903249A CN 110708251 B CN110708251 B CN 110708251B
- Authority
- CN
- China
- Prior art keywords
- entry
- tcam
- table entry
- lookup
- ipv4
- 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
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/02—Topology update or discovery
- H04L45/021—Ensuring consistency of routing table updates, e.g. by using epoch numbers
-
- 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/741—Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种三态内容寻址存储器TCAM转发单播查表方法,涉及高速路由查找技术领域。本发明基于TCAM和SRAM设计实现了转发处理引擎,同时支持IPv4和IPv6报文的转发,引入流水线机制,采用高速硬件路由查表的方式实现高速查找、线速转发,缩短了路由查表时间,提高了转发引擎的转发处理效率。
Description
技术领域
本发明涉及高速路由查找技术领域,具体涉及一种三态内容寻址存储器TCAM转发单播查表方法。
背景技术
TCAM(ternary content addressable memory)是一种三态内容寻址存储器,主要用于快速查找ACL、路由等表项。TCAM中每个bit位有三种状态,除掉“0”和“1”外,还有一个“don’t care”状态,所以称为“三态”,它是通过掩码来实现的,正是TCAM的这个第三种状态特征使其既能进行精确匹配查找,又能进行模糊匹配查找。从而能够适应路由表中的最长匹配以及ACL中的MASK操作,从而成为高速路由器路由表和ACL表硬件实现的不二选择。TCAM具有查找速度快、操作简单的优点。
高性能路由器作为网络互联的主要设备,它的体系结构、转发速度和交换网络的容量是三大主要瓶颈。为了提高路由器的性能,需要进行线速查找转发处理技术的研究,即基于TCAM的转发表管理。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何实现一种高速查找、线速转发的路由查表方法。
(二)技术方案
为了解决上述技术问题,本发明提供了一种三态内容寻址存储器TCAM转发单播查表方法,包括以下步骤:
(1)逻辑仲裁
根据报头处理的查表请求和处理机接口单播输入FIFO的状态确定当前应执行的工作是搜索查表还是表项更新,当报头处理有查表请求时,进入步骤(3)的搜索查表流程,然后再进入步骤(4)的数据选择流程;当前查表结束且报头处理没有新的查表请求时,判断处理机接口单播输入FIFO是否己有一条表项,有则先进入步骤(2)的表项更新流程,然后再进入步骤(4)的数据选择流程;
(2)表项更新
完成单播表项更新的过程,使得TCAM表项与SRAM表项一致;
(3)搜索查表
完成单播搜索查表。
优选地,步骤(2)中,首先根据单播表项更新指令判断是读表项还是写或删除表项,然后根据报头格式判断是IPv4表项还是IPv6表项,若是IPv4表项,则按照第一种情况设计的表项结构进行表项更新,否则按照第二种情况设计的表项结构进行表项更新;若为读表项,还将读出的数据按照设计的格式写到单播输出FIFO中;
优选地,第一种情况为:对于IPv4表项,配置方法为一个IPv4地址配置一个TCAM表项,如表1所示:
表1 IPv4配置TCAM表项
71:32 | 31:0 |
40位填充 | 32位IPv4地址 |
优选地,将第一种情况替换为:在一条TCAM表项中存储两个IPv4单播转发表,表项结构设计如表2所示:
表2 IPv4地址表项结构
优选地,第二种情况为:对于IPv6单播表项,按照目的IP地址查表,对于IPv6组播表项,按照源IP地址查表,二者统称为IPv6查表地址,单播表项宽度72比特,表项结构如表3所示,64位前缀Index[63:0]的IPv6转发表构造为:
表3 IPv6地址表项结构
优选地,写到单播输出FIFO中的格式设计方法如下:SRAM中表项更新结果的表项构成为:IPv4/IPv6的表项更新结果均为由目的端口、目的接口、目的机架和目的MAC地址组成,其格式相同,如表4所示:
表4 SRAM查表结果表项结构
单播查表结果共60位,存储在数据总线宽度为36位的SRAM中。
优选地,步骤(3)中,对同一个IPv4查表关键字搜索2次,分别搜索TCAM的前36位和后36位,以搜索到一个TCAM表项中的两个IPv4目的地址。
优选地,步骤(3)中,首先将输入报文的32位IPv4目的地址作为72位查表关键字的前一半,送给TCAM进行搜索,得到一个搜索结果;然后再将该32位IPv4目的地址作为72位查表关键字的后一半送给TCAM进行搜索,得到另一搜索结果;比较这二个结果,取出其中的最长的结果作为SRAM的查表地址。
优选地,步骤(3)中,在TCAM进行搜索之前还要完成对TCAM的初始化配置。
优选地,执行步骤(3)的搜索查表流程或步骤(2)的表项更新流程之后,再进入步骤(4)的数据选择流程:由TCAM存储搜索查表流程输出的查表地址,SRAM存储表项更新输出的表项。
(三)有益效果
本发明基于TCAM和SRAM设计实现了转发处理引擎,同时支持IPv4和IPv6报文的转发,引入流水线机制,采用高速硬件路由查表的方式实现高速查找、线速转发,缩短了路由查表时间,提高了转发引擎的转发处理效率。
附图说明
图1为本发明的实现原理图;
图2为本发明的IPv4/IPv6查表流程图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
如图1所示,本发明提供了一种三态内容寻址存储器TCAM转发单播查表方法,包括以下步骤:
(1)逻辑仲裁
根据报头处理的查表请求和处理机接口单播输入FIFO的状态确定当前应执行的工作是搜索查表还是表项更新,当报头处理有查表请求时,进入步骤(3)的搜索查表流程,然后再进入步骤(4)的数据选择流程;当前查表结束且报头处理没有新的查表请求时,判断处理机接口单播输入FIFO是否己有一条表项,有则先进入步骤(2)的表项更新流程,然后再进入步骤(4)的数据选择流程;
(2)表项更新
完成单播表项更新的过程,使得TCAM表项与SRAM表项一致:首先根据单播表项更新指令判断是读表项还是写或删除表项,然后根据报头格式判断是IPv4表项还是IPv6表项,若是IPv4表项,则按照情况①设计的表项结构进行表项更新,否则按照情况②设计的表项结构进行表项更新;若为读表项,还将读出的数据按照步骤③设计的格式写到单播输出FIFO中;
①对于IPv4表项,由于其IP地址为32位,TCAM的最小位宽72位,这样最直接的配置方法为一个IPv4地址配置一个TCAM表项,如表1所示:
表1 IPv4配置TCAM表项
71:32 | 31:0 |
40位填充 | 32位IPv4地址 |
这样方法的优点在于使用简单,缺点是浪费了TCAM的存储空间,因为事实上一个72位的TCAM表项可容纳2个IPv4地址。深入研究TCAM的特点之后发现,可以在一条TCAM表项中存储两个IPv4单播转发表,表项结构设计如表2所示。
表2 IPv4地址表项结构
②对于IPv6单播表项,按照目的IP地址查表,对于IPv6组播表项,按照源IP地址查表,二者统称为IPv6查表地址,单播表项宽度72比特,表项结构如表3所示,64位前缀(Index[63:0])IPv6转发表构造为:
表3 IPv6地址表项结构
③SRAM中表项更新结果的表项构成
IPv4/IPv6的表项更新结果均为由目的端口、目的接口、目的机架和目的MAC地址组成,其格式相同,如表4所示:
表4 SRAM查表结果表项结构
单播查表结果共60位,存储在数据总线宽度为36位的SRAM中,因而读取结果的时间为2个时钟周期。
(3)搜索查表
完成单播搜索查表的过程如图2所示。为了能搜索到一个TCAM表项中的两个IPv4目的地址,对同一个IPv4查表关键字搜索2次,分别搜索TCAM的前36位和后36位,具体地,首先将输入报文的32位IPv4目的地址作为72位查表关键字的前一半,送给TCAM进行搜索,得到一个搜索结果;然后再将该32位IPv4目的地址作为72位查表关键字的后一半送给TCAM进行搜索,得到另一搜索结果;比较这二个结果,取出其中的最长的结果作为SRAM的查表地址。在TCAM进行搜索之前还要完成对TCAM的初始化配置。
采用该方法,IPv4单播查表的时间为4个周期,仍能满足单播线速查表要求。
(4)数据选择
由TCAM存储搜索查表流程输出的查表地址,SRAM存储表项更新输出的表项。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (3)
1.一种三态内容寻址存储器TCAM转发单播查表方法,其特征在于,包括以下步骤:
(1)逻辑仲裁
根据报头处理的查表请求和处理机接口单播输入FIFO的状态确定当前应执行的工作是搜索查表还是表项更新,当报头处理有查表请求时,进入步骤(3)的搜索查表流程,然后再进入步骤(4)的数据选择流程;当前查表结束且报头处理没有新的查表请求时,判断处理机接口单播输入FIFO是否己有一条表项,有则先进入步骤(2)的表项更新流程,然后再进入步骤(4)的数据选择流程;
(2)表项更新
完成单播表项更新的过程,使得TCAM表项与SRAM表项一致;
(3)搜索查表
完成单播搜索查表;
步骤(2)中,首先根据单播表项更新指令判断是读表项还是写或删除表项,然后根据报头格式判断是IPv4表项还是IPv6表项,若是IPv4表项,则按照第一种情况设计的表项结构进行表项更新,否则按照第二种情况设计的表项结构进行表项更新;若为读表项,还将读出的数据按照设计的格式写到单播输出FIFO中;
第一种情况中:对于IPv4表项,配置方法为一个IPv4地址配置一个TCAM表项,如表1所示:
表1 IPv4配置TCAM表项
第一种情况中,在一条TCAM表项中存储两个IPv4单播转发表,则表项结构设计如表2所示:
表2 IPv4地址表项结构
第二种情况为:对于IPv6单播表项,按照目的IP地址查表,对于IPv6组播表项,按照源IP地址查表,二者统称为IPv6查表地址,单播表项宽度72比特,表项结构如表3所示,64位前缀Index[63:0]的IPv6转发表构造为:
表3 IPv6地址表项结构
写到单播输出FIFO中的格式设计方法如下:SRAM中表项更新结果的表项构成为:IPv4/IPv6的表项更新结果均为由目的端口、目的接口、目的机架和目的MAC地址组成,其格式相同,如表4所示:
表4 SRAM查表结果表项结构
单播查表结果共60位,存储在数据总线宽度为36位的SRAM中;
步骤(3)中,对同一个IPv4查表关键字搜索2次,分别搜索TCAM的前36位和后36位,以搜索到一个TCAM表项中的两个IPv4目的地址;
步骤(3)中,首先将输入报文的32位IPv4目的地址作为72位查表关键字的前一半,送给TCAM进行搜索,得到一个搜索结果;然后再将该32位IPv4目的地址作为72位查表关键字的后一半送给TCAM进行搜索,得到另一搜索结果;比较这二个结果,取出其中的最长的结果作为SRAM的查表地址。
2.如权利要求1所述的方法,其特征在于,步骤(3)中,在TCAM进行搜索之前还要完成对TCAM的初始化配置。
3.如权利要求1所述的方法,其特征在于,执行步骤(3)的搜索查表流程或步骤(2)的表项更新流程之后,再进入步骤(4)的数据选择流程:由TCAM存储搜索查表流程输出的查表地址,SRAM存储表项更新输出的表项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910903249.6A CN110708251B (zh) | 2019-09-24 | 2019-09-24 | 一种三态内容寻址存储器tcam转发单播查表方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910903249.6A CN110708251B (zh) | 2019-09-24 | 2019-09-24 | 一种三态内容寻址存储器tcam转发单播查表方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110708251A CN110708251A (zh) | 2020-01-17 |
CN110708251B true CN110708251B (zh) | 2021-11-16 |
Family
ID=69196026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910903249.6A Active CN110708251B (zh) | 2019-09-24 | 2019-09-24 | 一种三态内容寻址存储器tcam转发单播查表方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110708251B (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100450100C (zh) * | 2006-08-29 | 2009-01-07 | 华为技术有限公司 | 一种路由方法和路由设备 |
CN102185756A (zh) * | 2011-03-15 | 2011-09-14 | 北京星网锐捷网络技术有限公司 | Tcam共享存储方法及装置 |
CN102291296B (zh) * | 2011-08-04 | 2016-12-21 | 中兴通讯股份有限公司 | 一种路由表的更新方法及系统 |
US11218410B2 (en) * | 2014-11-10 | 2022-01-04 | Marvell Asia Pte, Ltd. | Hybrid wildcard match table |
CN109831384B (zh) * | 2017-11-23 | 2021-08-03 | 华为技术有限公司 | 名字查找方法及路由器 |
-
2019
- 2019-09-24 CN CN201910903249.6A patent/CN110708251B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110708251A (zh) | 2020-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9871728B2 (en) | Exact match hash lookup databases in network switch devices | |
US11102120B2 (en) | Storing keys with variable sizes in a multi-bank database | |
US10511532B2 (en) | Algorithmic longest prefix matching in programmable switch | |
US6665297B1 (en) | Network routing table | |
CA2434876C (en) | Method and apparatus for ternary content addressable memory (tcam) table management | |
KR101511945B1 (ko) | 콘텐츠―중심적인 네트워크에서 패킷의 전달을 용이하게 하기 위한 방법 및 시스템 | |
US7957384B2 (en) | Multiple virtual local area network databases in a switch with a relational lookup engine | |
CN111937360B (zh) | 最长前缀匹配 | |
US20070171911A1 (en) | Routing system and method for managing rule entry thereof | |
US20080192754A1 (en) | Routing system and method for managing rule entries of ternary content addressable memory in the same | |
US7480255B2 (en) | Data structure identifying for multiple addresses the reverse path forwarding information for a common intermediate node and its use | |
US20050147113A1 (en) | Method and apparatus for a four-way hash table | |
JP2000232479A (ja) | キャッシュを有するルータの方路決定装置及びプログラムを記録した機械読み取り可能な記録媒体 | |
US10515015B2 (en) | Hash table-based mask length computation for longest prefix match caching | |
US20200226099A1 (en) | Method and apparatus for improving hash searching throughput in the event of hash collisions | |
JP2006246488A (ja) | ネットワーク・ルータ、アドレス処理方法及びコンピュータ・プログラム | |
CN110708251B (zh) | 一种三态内容寻址存储器tcam转发单播查表方法 | |
CN112818185A (zh) | 一种基于sram的最长前缀匹配硬件系统查找的方法 | |
CN109039911B (zh) | 一种基于hash查找方式共享ram的方法及系统 | |
Ghosh et al. | A hash based architecture of longest prefix matching for fast IP processing | |
JP3558151B2 (ja) | データ検索回路 | |
CN107204926B (zh) | 预处理cache的路由快速查找方法 | |
JP5144225B2 (ja) | 情報検索装置、及び情報検索装置へのエントリ情報の登録方法 | |
Ray et al. | SRAM based longest prefix matching approach for multigigabit IP processing | |
CN118827542A (zh) | 一种基于tcam的lpm路由查找装置及方法 |
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 |