CN112118186B - 一种交换芯片路由表项存储方法、转发方法及配置方法 - Google Patents
一种交换芯片路由表项存储方法、转发方法及配置方法 Download PDFInfo
- Publication number
- CN112118186B CN112118186B CN202010883444.XA CN202010883444A CN112118186B CN 112118186 B CN112118186 B CN 112118186B CN 202010883444 A CN202010883444 A CN 202010883444A CN 112118186 B CN112118186 B CN 112118186B
- Authority
- CN
- China
- Prior art keywords
- hash
- tcam
- items
- hash table
- address
- 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/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
-
- 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/7453—Address table lookup; Address filtering using hashing
Abstract
本发明公开了一种交换芯片路由表项存储方法、转发方法及配置方法,涉及交换芯片路由表项处理技术领域。本发明采用TCAM表和HASH表配合作为路由表项的存储方案,使得用户可以根据交换芯片具体应用场景对路由表项的存储进行灵活配置,同时基于该存储方案对报文进行低延迟高速转发,并且在路由发布时分别配置交换芯片TCAM表和HASH表,同时对路由表项进行动态优化调整,从而实现较低成本的有效拓展路由表的容量,提高路由表项转发效率。
Description
技术领域
本发明涉及交换芯片路由表项处理技术领域,具体涉及一种基于三态内容寻址存储器(Ternary Content Addressable Memory,TCAM)和随机存取存储器(Random AccessMemory,RAM)的交换芯片路由表项存储方法、转发方法及配置方法。
背景技术
交换芯片中路由表一般选取TCAM存储器存储路由表项,交换芯片转发IP报文时,解析报文中的目的IP地址来和TCAM表项进行模糊匹配,选取匹配前缀长度最长的表项来对报文进行转发。TCAM的特点是表内所有条目都可以并行访问,查询速度快,无论表内有多少条数目,性能都不会减弱,比较适合交换芯片高速转发报文的需求;缺点是TCAM成本比较高,存储空间的单位价格高于普通的RAM,单位所占芯片面积也大于RAM,而且耗能也远远高于RAM。
目前由于数据中心、云计算和边缘计算的迅速发展,通信网络越来越复杂,作为网络设备——交换机的核心器件,交换芯片对路由表项的容量需求越来越大。虽然TCAM表性能很好,但是成本高、功耗大以及芯片有限面积的影响,约束了更大容量的TCAM在芯片中的应用。
发明内容
针对现有技术中的上述不足,本发明提供了一种交换芯片路由表项存储方法、转发方法及配置方法。
为了达到上述发明目的,本发明采用的技术方案为:
一种交换芯片路由表项存储方法,包括:
利用三态内容寻址存储器作为TCAM表存储路由表项;所述TCAM表存放有第一数量的IP表项;
利用随机存取存储器作为HASH表扩展存储路由表项;在第二数量的所述HASH表中每个HASH桶根据报文目的IP地址计算的HASH值设定第三数量的IP表项。
本发明的有益效果是:本发明采用TCAM和RAM相结合的方式,利用低成本低功耗的RAM作为HASH表来扩展存储路由表项,能以较小代价提高交换芯片的路由器容量,并且可以根据交换芯片具体应用场景对路由表项的存储进行灵活配置。
优选地,所述HASH桶根据报文目的IP地址计算的HASH值设定第三数量的IP表项具体为:
根据目的IP地址和该HASH表的前缀掩码进行求与运算,得到IP地址前缀并作为键值计算HASH值,以该HASH值为每个HASH桶的索引分别得到第三数量的IP表项。
上述优选方案的有益效果是:本发明的HASH路由表可以快速查询所指定的IP表项,提高检索效率,减少报文在芯片中的转发时延。
本发明还提出了一种交换芯片路由表项转发方法,包括:
解析接收报文获得目的IP地址;
对采用上述存储方法存储的第二数量的HASH表依次判断HASH表查询使能是否等于1;若是,则将目的IP地址和该HASH表的前缀掩码进行求与运算,得到IP地址前缀并作为键值计算HASH值,将HASH值作为该HASH桶的索引;否则该HASH表查询结果为不匹配;
取出HASH桶的索引中第三数量个IP表项的路由键值,与IP地址前缀进行一一匹配,选取匹配一致的HASH匹配表项;
将目的IP地址在TCAM表中进行匹配,选取匹配前缀长度最长的TCAM匹配表项;
将选取的第二数量的所有HASH匹配表项与TCAM匹配表项进行比较,选取匹配前缀长度最长的表项作为报文转发表项;
按照选取的报文转发表项进行报文转发。
本发明的有益效果是:本发明以TCAM和HASH表相结合的方式作为路由表进行报文转发,既增大了表项容量,又保持了报文较低的转发时延,从而提高芯片转发性能。
本发明还提出了一种交换芯片路由表项配置方法,包括:
对采用上述存储方法存储的HASH表和TCAM表中已存在的需要配置的路由表项进行数据修改;
在各个所述HASH表中检索与需要配置路由表项的前缀长度相同的HASH表插入配置表项;
按照所述HASH表和TCAM表的优先顺序插入配置表项。
本发明的有益效果是:本发明的配置方法能够按照需求灵活地对路由表项进行增加、修改和删除操作,提高配置效率。
优选地,对所述已存在的需要配置的路由表项进行数据修改具体包括以下分步骤:
A1、对各个HASH表依次判断HASH表查询使能是否等于1;若是,则进行步骤A2;否则进行步骤A3;
A2、判断HASH表中是否存在需要配置的路由表项;若是,则在该HASH表中修改表项数据,配置成功后结束操作;否则进行步骤A3;
A3、判断是否遍历完所有HASH表;若是,则进行步骤A4;否则返回步骤A1;
A4、判断TCAM表中是否存在需要配置的路由表项;若是,则在该HASH表中修改表项数据,配置成功后结束操作;否则进入下一配置流程。
上述优选方案的有益效果是:本发明能够按照需求灵活地对路由表项进行修改操作,提高配置效率。
优选地,所述在各个所述HASH表中检索与需要配置路由表项的前缀长度相同的HASH表插入配置表项具体包括以下分步骤:
B1、对各个HASH表依次判断HASH表查询使能是否等于1;若是,则进行步骤B2;否则进行步骤B3;
B2、判断HASH表的前缀长度是否和需要配置路由表项的前缀长度相同;若是,则在该HASH表中插入配置表项,进行步骤B3;否则进行步骤B4;
B3、判断是否配置成功;若是,则结束操作;否则进行步骤B4;
B4、判断是否遍历完所有HASH表;若是,则进入下一配置流程;否则返回步骤B1。
上述优选方案的有益效果是:本发明能够按照需求对已存在的路由表项进行修改操作,提高配置效率。
优选地,所述按照所述HASH表和TCAM表的优先顺序插入配置表项具体包括以下分步骤:
C1、在TCAM表中插入配置表项;
C2、判断是否配置成功;若是,则结束操作;否则进行步骤C3;
C3、对各个HASH表依次判断HASH表查询使能是否等于1;若是,则进行步骤C4;否则进行步骤C5;
C4、判断HASH表是否为空;若是,则在该HASH表设置前缀长度并插入配置表项,配置成功后结束操作;否则进行步骤C5;
C5、判断是否遍历完所有HASH表;若是,则配置失败并结束操作;否则返回步骤C1。
上述优选方案的有益效果是:本发明能够按照需求对具有相同路由前缀的HASH表进行增加操作,提高配置效率。
优选地,所述修改表项数据的过程中,将TCAM表中前缀长度已分配IP表项数量最多的表项与HASH表中已分配IP表项数量最少的表项进行动态交换。
上述优选方案的有益效果是:本发明能够尽量在HASH表中存放更多的表项,使路由表容量达到最大化。
优选地,所述动态交换具体包括以下分步骤:
D1、将HASH表中已分配IP表项数量按升序方式排序;
D2、将TCAM表中相同前缀长度已分配IP表项数量按降序方式排序;
D3、分别依次从HASH表中选取已分配IP表项数量的表项和从TCAM表中选取前缀长度已分配IP表项数量的表项,判断TCAM表中前缀长度已分配IP表项数量的表项数量是否大于或等于HASH表中已分配IP表项数量的表项数量与设定优化变量的和,且TCAM表的空闲容量是否大于或等于HASH表中已分配IP表项数量的表项数量;若是,则进行步骤D4;否则不作调整;
D4、判断HASH表中总容量是否大于TCAM表中前缀长度已分配IP表项数量的表项数量;若是,则进行步骤D5;否则从TCAM表中依次选择下一个前缀长度已分配IP表项数量的表项并返回步骤D3;
D5、判断HASH表中已分配IP表项数量的表项数量是否为0;若是,则进行步骤D6;否则将该表项逐一复制到TCAM表,然后清空该表项;
D6、将TCAM表中前缀长度已分配IP表项数量的表项逐一复制到HASH表,然后清空TCAM表中已复制的表项。
上述优选方案的有益效果是:本发明能够动态地在HASH表中存放更多的表项,使路由表容量达到最大化,并且在表项搬移过程中保证转发的数据流不中断。
附图说明
图1为本发明的交换芯片路由表项存储方法流程示意图;
图2为本发明的交换芯片路由表项存储结构示意图;
图3为本发明的交换芯片路由表项转发方法流程示意图;
图4为本发明的交换芯片路由表项配置方法流程示意图;
图5为本发明的配置方法中步骤S101的流程示意图;
图6为本发明的配置方法中步骤S102的流程示意图;
图7为本发明的配置方法中步骤S103的流程示意图;
图8为本发明的配置方法动态优化流程示意图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
实施例1
如图1所示,本发明实施例提供了一种交换芯片路由表项存储方法,包括:
利用三态内容寻址存储器作为TCAM表存储路由表项;所述TCAM表存放有第一数量的IP表项;
利用随机存取存储器作为HASH表扩展存储路由表项;在第二数量的所述HASH表中每个HASH桶根据报文目的IP地址计算的HASH值设定第三数量的IP表项。
本发明采用TCAM和RAM相结合的方式,利用低成本低功耗的RAM作为HASH表来扩展存储路由表项,存储的路由表项由传统的TCAM表和新增的HASH表组成,每个HASH表存放的IP地址具有相同前缀长度,即掩码。
如图2所示,路由表项由n个HASH表和1个TCAM表组成:每个HASH表独立配置IP地址前缀长度,m个HASH桶组成1个HASH表,每个HASH桶包含若干条IP表项,指示IP地址和转发规则;TCAM表包含y条IP表项,指示IP地址和转发规则。HASH表根据收到报文的目的IP地址分别和每个HASH表前缀掩码进行求与运算,得到的IP地址前缀作为键值计算出HASH值,以该HASH值为每个HASH桶的索引分别获得第三数量的x个IP表项,即每个HASH桶中可以存放x个IP表项。
HASH表同时支持IPV4和IPv6路由表项,可以混合存放在HASH表中,每个HASH表分别有IPv4和IPv6的前缀长度变量,二者存储和检索相互独立。
实施例2
本发明基于上述存储方法存储的HASH表和TCAM表,还提供了一种交换芯片路由表项转发方法,如图3所示,包括:
解析接收报文获得目的IP地址;
依次对第二数量的n个HASH表分别判断HASH表查询使能数组变量hash_rqst_en[n]是否等于1;若是,则将目的IP地址和该HASH表的前缀掩码进行求与运算,得到IP地址前缀并作为键值计算HASH值,将HASH值作为该HASH桶的索引;否则该第i(i=0,1,…,n-1)个HASH表查询结果为不匹配;
取出HASH桶的索引中第三数量的x个IP表项的路由键值,与IP地址前缀进行一一匹配,选取匹配一致的一个HASH匹配表项;
将目的IP地址在TCAM表中进行匹配,选取匹配前缀长度最长的TCAM匹配表项;
将选取的所有HASH匹配表项与TCAM匹配表项进行比较,选取匹配前缀长度最长的表项作为报文转发表项;
判断是否匹配成功;若是,则按照选取的报文转发表项进行报文转发;否则说明没有任何匹配表项,将转发任务交给上层协议模块处理。
在路由表项转发过程中,HASH表通过设置HASH表查询使能数组变量hash_rqst_en[n]控制HASH表的第二数量,增加配置的灵活性;例如为了降低报文转发延迟,可以只使能某些HASH表,加快检索速度;为了提高路由表容量,可以使能全部HASH表都参与到路由表项的存储和路由检索。
实施例3
本发明基于上述存储方法存储的HASH表和TCAM表,还提供了一种交换芯片路由表项配置方法,如图4所示,包括以下步骤S101至S103:
S101、对HASH表和TCAM表中已存在的需要配置的路由表项进行数据修改;
本发明按照HASH表和TCAM表的顺序依次查询需要配置的路由表项是否已经存在,若存在则进行数据修改,否则进入步骤S102。
如图5所示,该步骤具体包括以下分步骤:
A1、对各个HASH表依次判断HASH表查询使能数组变量hash_rqst_en[n]是否等于1;若是,则进行步骤A2;否则进行步骤A3;
本发明首先初始化HASH表序列,令HASH表序号i为0,i=0,1,2,…n-1;再对HASH表i判断HASH表查询使能数组变量hash_rqst_en[i]是否等于1;若是,则进行步骤A2;否则进行步骤A3;
A2、判断HASH表i中是否存在需要配置的路由表项;若是,则在该HASH表i中修改表项数据,配置成功后结束操作;否则进行步骤A3;
A3、将i递增1,判断i是否大于或等于n,即是否遍历完所有HASH表;若是,则进行步骤A4;否则返回步骤A1;
A4、判断TCAM表中是否存在需要配置的路由表项;若是,则在该HASH表中修改表项数据,配置成功后结束操作;否则说明路由表项中没有该前缀表项,进入下一配置步骤S102。
S102、在各个所述HASH表中检索与需要配置路由表项的前缀长度相同的HASH表插入配置表项;
本发明在所有HASH表中检索需要配置路由表项的前缀长度是否和某个HASH表的前缀长度相同,若满足条件则在该HASH表插入配置表项,否则进入步骤S103。
如图6所示,该步骤具体包括以下分步骤:
B1、对各个HASH表依次判断HASH表查询使能数组变量hash_rqst_en[n]是否等于1;若是,则进行步骤B2;否则进行步骤B3;
本发明首先初始化HASH表序列,令HASH表序号i为0,i=0,1,2,…n-1;再对HASH表i判断HASH表查询使能数组变量hash_rqst_en[i]是否等于1;若是,则进行步骤B2;否则进行步骤B4;
B2、判断HASH表i的前缀长度是否和需要配置路由表项的前缀长度相同;若是,则在该HASH表i中插入配置表项,进行步骤B3;否则进行步骤B4;
B3、判断是否配置成功;若是,则结束操作;否则进行步骤B4;
B4、将i递增1,判断i是否大于或等于n,即判断是否遍历完所有HASH表;若是,则进入下一配置步骤S103;否则返回步骤B1。
S103、按照所述HASH表和TCAM表的优先顺序插入配置表项。
如图7所示,该步骤具体包括以下分步骤:
C1、在TCAM表中插入配置表项;
C2、判断是否配置成功;若是,则结束操作;否则说明TCAM表已配满,进行步骤C3;
C3、对各个HASH表依次判断HASH表查询使能数组变量hash_rqst_en[n]是否等于1;若是,则进行步骤C4;否则进行步骤C5;
本发明首先初始化HASH表序列,令HASH表序号i为0,i=0,1,2,…n-1;再对HASH表i判断HASH表查询使能数组变量hash_rqst_en[i]是否等于1;若是,则进行步骤C4;否则进行步骤C5;
C4、判断HASH表i是否为空;若是,则在该HASH表i设置前缀长度并插入配置表项,配置成功后结束操作;否则进行步骤C5;
C5、将i递增1,判断i是否大于或等于n,即判断是否遍历完所有HASH表;若是,则配置失败,说明HASH表也已配满,并结束操作;否则返回步骤C1。
在修改表项数据的过程中,由于HASH表只能存储相同IP前缀长度的路由,而TCAM表可以存储任意前缀的路由;要达到路由表项存储最大容量,HASH表项尽量存储更多的IP表项,因此本发明将TCAM表中前缀长度已分配IP表项数量最多的表项与HASH表中已分配IP表项数量最少的表项进行动态交换,从而实现交换芯片SDK动态调整HASH表和TCAM表流程,优化路由表项配置,达到芯片路由转发的低延迟和表项容量的最大化。
为了灵活调整这个交换的频度,本发明设置控制优化变量ROUTING_ADJUST_THRESHOLD来调节动态交换过程。
如图8所示,动态交换具体包括以下分步骤:
D1、将HASH表中已分配IP表项数量按升序方式排序;
本发明按照HASH表中已分配IP表项数量的升序方式赋值给表数组table_x[n];
D2、将TCAM表中相同前缀长度已分配IP表项数量按降序方式排序;
本发明按照TCAM表中相同前缀长度已分配IP表项数量的降序方式赋值给IP表项数组entry_y[k];
D3、分别依次从HASH表中选取已分配IP表项数量的表项和从TCAM表中选取前缀长度已分配IP表项数量的表项,判断TCAM表中前缀长度已分配IP表项数量的表项数量是否大于或等于HASH表中已分配IP表项数量的表项数量与设定优化变量的和,且TCAM表的空闲容量是否大于或等于HASH表中已分配IP表项数量的表项数量;若是,则进行步骤D4;否则不作调整;
本发明首先初始化HASH表序列,令HASH表序号i为0,从HASH表中选取已分配IP表项数量的表项table_x[i];
再初始化TCAM表序列,令TCAM表序号j为0,j=0,1,2,…k-1;从TCAM表中选取前缀长度已分配IP表项数量的表项entry_y[j];
然后判断TCAM表中前缀长度已分配IP表项数量的表项entry_y[j]数量是否大于或等于HASH表中已分配IP表项数量的表项table_x[i]数量与设定优化变量ROUTING_ADJUST_THRESHOLD的和,且TCAM表的空闲容量是否大于或等于HASH表中已分配IP表项数量的表项table_x[i]数量;若是,则进行步骤D4;否则不作调整;
D4、判断HASH表中总容量是否大于TCAM表中前缀长度已分配IP表项数量的表项数量;若是,则进行步骤D5;否则从TCAM表中依次选择下一个前缀长度已分配IP表项数量的表项并返回步骤D3;
本发明判断HASH表中总容量是否大于TCAM表中前缀长度已分配IP表项数量的表项entry_y[j]数量;若是,则进行步骤D5;否则从TCAM表中依次选择下一个前缀长度已分配IP表项数量的表项并返回步骤D3,即令j递增1,判断j是否小于k,若是则重新从TCAM表中选取前缀长度已分配IP表项数量的表项entry_y[j]并返回步骤D3,否则令i递增1,判断i是否小于n,若是则重新从HASH表中选取已分配IP表项数量的表项table_x[i]并返回步骤D3,否则不作调整;
D5、判断HASH表中已分配IP表项数量的表项数量是否为0;若是,则进行步骤D6;否则将该表项逐一复制到TCAM表,然后清空该表项;
本发明判断HASH表中已分配IP表项数量的表项table_x[i]数量是否为0;若是,则进行步骤D6;否则将该已分配IP表项数量的表项table_x[i]逐一复制到TCAM表,然后清空该已分配IP表项数量的表项table_x[i];
D6、将TCAM表中前缀长度已分配IP表项数量的表项逐一复制到HASH表,然后清空TCAM表中已复制的表项。
本发明将TCAM表中前缀长度已分配IP表项数量的表项entry_y[j]逐一复制到HASH表中已分配IP表项数量的表项table_x[i],当遇到HASH冲突时将冲突表项保留在TCAM表中,继续其它表项复制;然后清空TCAM表中已复制的表项。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
Claims (7)
1.一种交换芯片路由表项存储方法,其特征在于,包括:
利用三态内容寻址存储器作为TCAM表存储器存储路由表项;所述TCAM表存放有第一数量的IP表项;
利用随机存取存储器作为HASH表存储器扩展存储路由表项;在第二数量的所述HASH表中每个HASH桶根据报文目的IP地址计算的HASH值设定第三数量的IP表项;
采用TCAM和RAM相结合的方式,利用低成本低功耗的RAM作为HASH表存储器来扩展存储路由表项,存储的路由表项由传统的TCAM表和新增的HASH表组成,每个HASH表存放的IP地址具有相同前缀长度,即掩码;路由表项由n个HASH表和1个TCAM表组成:每个HASH表独立配置IP地址前缀长度,m个HASH桶组成1个HASH表,每个HASH桶包含若干条IP表项,指示IP地址和转发规则;TCAM表包含y条IP表项,指示IP地址和转发规则;HASH表根据收到报文的目的IP地址分别和每个HASH表前缀掩码进行求与运算,得到的IP地址前缀作为键值计算出HASH值,以该HASH值为每个HASH桶的索引分别获得第三数量的x个IP表项,即每个HASH桶中可以存放x个IP表项。
2.一种交换芯片路由表项转发方法,其特征在于,包括:
解析接收报文获得目的IP地址;
对采用权利要求1所述存储方法存储的第二数量的HASH表依次判断HASH表查询使能是否等于1;若是,则将目的IP地址和该HASH表的前缀掩码进行求与运算,得到IP地址前缀并作为键值计算HASH值,将HASH值作为该HASH桶的索引;否则该HASH表查询结果为不匹配;
取出HASH桶的索引中第三数量个IP地址的路由键值,与IP地址前缀进行一一匹配,选取匹配一致的HASH匹配表项;
将目的IP地址在TCAM表中进行匹配,选取匹配前缀长度最长的TCAM匹配表项;
将选取的第二数量的所有HASH匹配表项与TCAM匹配表项进行比较,选取匹配前缀长度最长的表项作为报文转发表项;
按照选取的报文转发表项进行报文转发。
3.一种交换芯片路由表项配置方法,其特征在于,包括:
对采用权利要求1所述存储方法存储的HASH表和TCAM表中已存在的需要配置的路由表项进行数据修改,具体包括以下分步骤:
A1、对各个HASH表依次判断HASH表查询使能是否等于1;若是,则进行步骤A2;否则进行步骤A3;
A2、判断HASH表中是否存在需要配置的路由表项;若是,则在该HASH表中修改表项数据,配置成功后结束操作;否则进行步骤A3;
A3、判断是否遍历完所有HASH表;若是,则进行步骤A4;否则返回步骤A1;
A4、判断HASH表中是否存在需要配置的路由表项;若是,则在该HASH表中修改表项数据,配置成功后结束操作;否则进入下一配置流程;
在各个所述HASH表中检索与需要配置路由表项的前缀长度相同的HASH表插入配置表项;
按照所述HASH表和TCAM表的优先顺序插入配置表项。
4.根据权利要求3所述的交换芯片路由表项配置方法,其特征在于,所述在各个所述HASH表中检索与需要配置路由表项的前缀长度相同的HASH表插入配置表项具体包括以下分步骤:
B1、对各个HASH表依次判断HASH表查询使能是否等于1;若是,则进行步骤B2;否则进行步骤B3;
B2、判断HASH表的前缀长度是否和需要配置路由表项的前缀长度相同;若是,则在该HASH表中插入配置表项,进行步骤B3;否则进行步骤B4;
B3、判断是否配置成功;若是,则结束操作;否则进行步骤B4;
B4、判断是否遍历完所有HASH表;若是,则进入下一配置流程;否则返回步骤B1。
5.根据权利要求4所述的交换芯片路由表项配置方法,其特征在于,所述按照所述HASH表和TCAM表的优先顺序插入配置表项具体包括以下分步骤:
C1、在TCAM表中插入配置表项;
C2、判断是否配置成功;若是,则结束操作;否则进行步骤C3;
C3、对各个HASH表依次判断HASH表查询使能是否等于1;若是,则进行步骤C4;否则进行步骤C5;
C4、判断HASH表是否为空;若是,则在该HASH表设置前缀长度并插入配置表项,配置成功后结束操作;否则进行步骤C5;
C5、判断是否遍历完所有HASH表;若是,则配置失败并结束操作;否则返回步骤C1。
6.根据权利要求3至5任一所述的交换芯片路由表项配置方法,其特征在于,所述修改表项数据的过程中,将TCAM表中前缀长度已分配IP地址数量最多的表项与HASH表中已分配IP表项数量最少的表项进行动态交换。
7.根据权利要求6所述的交换芯片路由表项配置方法,其特征在于,所述动态交换具体包括以下分步骤:
D1、将HASH表中已分配IP地址数量按升序方式排序;
D2、将TCAM表中相同前缀长度已分配IP地址数量按降序方式排序;
D3、分别依次从HASH表中选取已分配IP地址数量的表项和从TCAM表中选取前缀长度已分配IP地址数量的表项,判断TCAM表中前缀长度已分配IP地址数量的表项数量是否大于或等于HASH表中已分配IP地址数量的表项数量与设定优化变量的和,且TCAM表的空闲容量是否大于或等于HASH表中已分配IP地址数量的表项数量;若是,则进行步骤D4;否则不作调整;
D4、判断HASH表中总容量是否大于TCAM表中前缀长度已分配IP地址数量的表项数量;若是,则进行步骤D5;否则从TCAM表中依次选择下一个前缀长度已分配IP地址数量的表项并返回步骤D3;
D5、判断HASH表中已分配IP地址数量的表项数量是否为0;若是,则进行步骤D6;否则将该表项逐一复制到TCAM表,然后清空该表项;
D6、将TCAM表中前缀长度已分配IP地址数量的表项逐一复制到HASH表,然后清空TCAM表中已复制的表项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010883444.XA CN112118186B (zh) | 2020-08-28 | 2020-08-28 | 一种交换芯片路由表项存储方法、转发方法及配置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010883444.XA CN112118186B (zh) | 2020-08-28 | 2020-08-28 | 一种交换芯片路由表项存储方法、转发方法及配置方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112118186A CN112118186A (zh) | 2020-12-22 |
CN112118186B true CN112118186B (zh) | 2022-11-01 |
Family
ID=73804407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010883444.XA Active CN112118186B (zh) | 2020-08-28 | 2020-08-28 | 一种交换芯片路由表项存储方法、转发方法及配置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112118186B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113098798B (zh) * | 2021-04-01 | 2022-06-21 | 烽火通信科技股份有限公司 | 配置共享表项资源池的方法、包交换方法、芯片以及电路 |
CN113489649B (zh) * | 2021-06-29 | 2022-07-22 | 新华三信息安全技术有限公司 | 一种表项存储方法及装置 |
CN113938428B (zh) * | 2021-09-06 | 2023-06-16 | 锐捷网络股份有限公司 | 跨芯片的数据流转发方法及装置 |
CN114615216B (zh) * | 2022-03-11 | 2023-07-21 | 深圳市风云实业有限公司 | 一种基于交换芯片的路由表动态调整方法 |
CN115225591B (zh) * | 2022-07-15 | 2023-12-26 | 井芯微电子技术(天津)有限公司 | 一种处理交换芯片控制报文的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102377664A (zh) * | 2010-08-27 | 2012-03-14 | 武汉烽火网络有限责任公司 | 一种基于tcam的区域匹配装置和方法 |
CN105721303A (zh) * | 2016-03-31 | 2016-06-29 | 华为技术有限公司 | 一种路由控制方法、网络设备及控制器 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100396015C (zh) * | 2006-03-29 | 2008-06-18 | 华为技术有限公司 | 一种tcam路由表管理方法和系统 |
CN100450100C (zh) * | 2006-08-29 | 2009-01-07 | 华为技术有限公司 | 一种路由方法和路由设备 |
CN100574281C (zh) * | 2007-06-22 | 2009-12-23 | 中兴通讯股份有限公司 | 一种交换机路由表的管理方法 |
CN103117931B (zh) * | 2013-02-21 | 2015-07-01 | 烽火通信科技股份有限公司 | 基于哈希表和tcam表的mac地址硬件学习方法及系统 |
US10917345B2 (en) * | 2015-07-17 | 2021-02-09 | Hewlett Packard Enterprise Development Lp | Generating a hash table in accordance with a prefix length |
US10171419B2 (en) * | 2016-06-19 | 2019-01-01 | Mellanox Technologies TLC Ltd. | IP route caching with two search stages on prefix length |
CN108337172B (zh) * | 2018-01-30 | 2020-09-29 | 长沙理工大学 | 大规模OpenFlow流表加速查找方法 |
US10515015B2 (en) * | 2018-03-20 | 2019-12-24 | Mellanox Technologies Tlv Ltd. | Hash table-based mask length computation for longest prefix match caching |
CN108874987B (zh) * | 2018-06-11 | 2020-09-29 | 深圳市风云实业有限公司 | 表项管理方法、装置及交换芯片 |
CN109327396A (zh) * | 2018-12-03 | 2019-02-12 | 中国人民解放军陆军工程大学 | 路由查表电路中的哈希表缓变更新方法 |
-
2020
- 2020-08-28 CN CN202010883444.XA patent/CN112118186B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102377664A (zh) * | 2010-08-27 | 2012-03-14 | 武汉烽火网络有限责任公司 | 一种基于tcam的区域匹配装置和方法 |
CN105721303A (zh) * | 2016-03-31 | 2016-06-29 | 华为技术有限公司 | 一种路由控制方法、网络设备及控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN112118186A (zh) | 2020-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112118186B (zh) | 一种交换芯片路由表项存储方法、转发方法及配置方法 | |
JP3790217B2 (ja) | 高速インターネットプロトコルルートルックアップ遂行及びルーティング/フォワーディングテーブル管理のための装置及び方法 | |
Gupta et al. | Routing lookups in hardware at memory access speeds | |
EP1486040B1 (en) | Vlan table management system for memory efficient lookups and inserts in hardware-based packet switches | |
Bando et al. | Flashtrie: Hash-based prefix-compressed trie for IP route lookup beyond 100Gbps | |
US20040100950A1 (en) | Method and apparatus for performing network routing with use of power efficient TCAM-based forwarding engine architectures | |
KR100512949B1 (ko) | 필드레벨 트리를 이용한 패킷분류장치 및 방법 | |
CN101620623A (zh) | 内容可寻址存储器表项管理方法和装置 | |
CN1216473C (zh) | 支持多个下一跳的三态内容可寻址存储器查找方法及系统 | |
CN114884877B (zh) | 一种哈希表和HOT相结合的IPv6路由查找方法 | |
EP1533956A2 (en) | Dynamic forwarding of data packets using binary search | |
Veeramani et al. | Efficient IP lookup using hybrid trie-based partitioning of TCAM-based open flow switches | |
RU2233473C2 (ru) | Устройство и способ выполнения высокоскоростного поиска маршрутов протокола интернет и управления таблицами маршрутизации/пересылки | |
US6615311B2 (en) | Method and system for updating a content addressable memory (CAM) that prioritizes CAM entries according to prefix length | |
CN102739550B (zh) | 基于随机副本分配的多存储器流水路由体系结构 | |
CN112769704B (zh) | 一种基于hash表的高速可扩展IP路由查找硬件装置 | |
CN102739551B (zh) | 多存储器流水路由体系结构 | |
KR100493099B1 (ko) | 고속 인터넷프로토콜 라우터의 라우팅/포워딩 룩업 및라우팅 테이블 관리 | |
US20020078226A1 (en) | Datagram transmission device | |
US20050122972A1 (en) | Prefix matching structure and method for fast packet switching | |
Hsieh et al. | Multilevel length-based classified index table for IP lookups and updates | |
Ray et al. | SRAM based longest prefix matching approach for multigigabit IP processing | |
CN113328947B (zh) | 基于应用可控前缀扩展布隆过滤器的可变长路由查找方法及装置 | |
US11250003B2 (en) | Search circuit | |
CN101631085A (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 |