CN1314249C - 三层转发信息下发硬件lpm表的方法 - Google Patents

三层转发信息下发硬件lpm表的方法 Download PDF

Info

Publication number
CN1314249C
CN1314249C CNB2004100391726A CN200410039172A CN1314249C CN 1314249 C CN1314249 C CN 1314249C CN B2004100391726 A CNB2004100391726 A CN B2004100391726A CN 200410039172 A CN200410039172 A CN 200410039172A CN 1314249 C CN1314249 C CN 1314249C
Authority
CN
China
Prior art keywords
array
prefix
lpm table
lpm
hardware
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.)
Expired - Fee Related
Application number
CNB2004100391726A
Other languages
English (en)
Other versions
CN1561050A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB2004100391726A priority Critical patent/CN1314249C/zh
Publication of CN1561050A publication Critical patent/CN1561050A/zh
Application granted granted Critical
Publication of CN1314249C publication Critical patent/CN1314249C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种三层转发信息下发硬件LPM表的方法,其中上层FIB下发给该硬件LPM表,设置用于存储FIB下发成功和下发失败的IP前缀值的数组S和F,FIB下发时,首先搜索数组F,查看是否存在与该IP前缀匹配的项;若存在,则将这个路由表项直接插入数组F;否则,将IP前缀值插入LPM表;若插入成功,则将其存储在数组S中;若插入失败,则将其插入数组F中,并将这个IP前缀在数组S中的所有IP短前缀表项全部移到数组F中,并删除LPM表中对应的IP前缀值;删除后,尝试将数组F中的其他前缀值插入LPM表,若插入成功,则将该IP相应的短前缀全部插入LPM表,并插入数组S中。本发明更有利于数据包的转发。

Description

三层转发信息下发硬件LPM表的方法
技术领域:
本发明涉及一种三层转发信息下发硬件LPM表的方法。
背景技术:
一般,三层交换机的接口板上的转发芯片中的LPM(Longest-Prefix-Match,最长前缀匹配)表空间非常有限。当将上层FIB(Forwarding Information Base,路由转发表)下发给这个硬件表时,经常出现表满而插入不成功的现象。另外,目前路由转发匹配算法为最长匹配,若一个长掩码前缀插入不成功,则要将所有的相应短掩码前缀在硬件表中删除,虽然这些短掩码的删除释放了空间,但对这个长掩码的插入没有带来任何好处,这时,只能尝试插入其他的网络前缀。这样,就要频繁访问硬件表,从而严重影响能够匹配硬件表路由表项的包的转发。而三层路由表的下发工作就是将上层FIB软件表中的表项设置到转发芯片中。由于路由匹配算法为最长前缀匹配,故对掩码长度不同的相同前缀,若短掩码的前缀下发成功,而相应的长掩码的前缀下发不成功,则一个数据包本来需要匹配到那个长掩码的前缀,此时只能匹配到短掩码前缀,这样,本应按长掩码的前缀转发的数据包,却按短掩码前缀的匹配关系发送了,很容易造成转发错误。
发明内容:
针对现有的三层转发信息下发硬件LPM表方法中所存在的问题和不足,本发明的目的是提供一种可避免数据转发错误的三层转发信息下发硬件LPM表的方法。
本发明是这样实现的:一种三层转发信息下发硬件LPM表的方法,其中上层FIB下发给该硬件LPM表,该方法包括:
设置与硬件LPM表相关的存储单元,并设置两个数组S和F,分别用于存储FIB下发成功和下发失败的IP前缀值;
FIB下发时,首先根据网络前缀值搜索数组F,查看是否存在与该IP前缀匹配的项;若存在,则将这个路由表项直接插入数组F后返回;
否则,将所述IP前缀值插入LPM表;若插入成功,则将其存储在所述数组S中;若插入失败,则将其插入数组F中,并将这个IP前缀在数组S中的所有IP短前缀表项全部移到数组F中,并删除LPM表中对应的IP前缀值;
删除LPM表中对应的IP前缀值后,循环尝试将数组F中的其他前缀值插入LPM表,若插入成功,则将该IP相应的短前缀全部插入LPM表,并插入数组S中,若失败,则保持不变。
进一步地,所述存储单元的容量大于或等于所述FIB存储IP前缀值的容量。
进一步地,所述存储单元中数组S和F以HASH表的方式存储IP前缀值。
进一步地,所述数组S和F的元素包括有IP前缀值和指向HASH表的指针两部分。
进一步地,所述HASH表由所有不同IP前缀构成,并按其IP前缀值升序排列。
进一步地,所述数组S和F的存储容量可动态调整。
本发明通过设置与FIB连接的存储单元,并在该存储单元中设置数组S和F两数组,分别用于存储FIB下发到LPM表的IP前缀值,若下发成功则存储至数组S中,若下发失败则存储到数组F中。并且,在FIB下发到LPM表前,先遍历数组F,查找有无与之匹配的IP前缀,若有直接放入数组F,若无则尝试插入LPM表,本发明采用预先判断的方式,而不是对FIB下发的所有IP前缀均直接尝试插入LPM表,大大减少了访问硬件表的无效次数,从而大大提高了能够匹配硬件表路由表项的数据包的转发效率,提高了带宽的利用率。并且,本发明的存储单元采用HASH表的方式对其元素进行存储,减少了访问查找时间,更有利于数据包的转发。
附图说明:
下面结合附图,对本发明作出详细描述。
图1为本发明的添加路由表项流程示意图;
图2为本发明的删除路由表项流程示意图。
具体实施方式:
本发明首先创建与硬件LPM表相关的存储单元,该存储单元的容量大于或等于FIB中存储IP前缀值的容量,在存储单元中设置两个数组S和F,分别用于存储FIB下发成功和下发失败的IP前缀值;
FIB下发时,首先根据网络前缀值搜索数组F,查看是否存在与该IP前缀匹配的项;若存在,则将这个路由表项直接插入数组F后返回;
否则,将所述IP前缀值插入LPM表;若插入成功,则将其存储在所述数组S中;若插入失败,则将其插入数组F中,并将这个IP前缀在数组S中的所有IP短前缀表项全部移到数组F中,并删除LPM表中对应的IP前缀值;
删除LPM表中对应的IP前缀值后,循环尝试将数组F中的其他前缀值插入LPM表,若插入成功,则将该IP相应的短前缀全部插入LPM表,并插入数组S中,若失败,则保持不变。
这里,数组S和F以HASH表的方式存储IP前缀值,即其中的元素包括有IP前缀值和指向HASH表的指针两部分,HASH表由所有不同IP前缀构成,并按其IP前缀值升序排列;数组S和F的存储容量可动态调整,即其容量之和与存储单元容量相等,其实际容量由其存储的IP前缀值决定。
如图1所示,当添加路由表项时,首先根据网络前缀值搜索数组F,查看是否存在与该IP前缀匹配的表项;若存在,则将这个路由表项直接插入数组F后返回;若没有,则尝试将该IP前缀值插入LPM表,若成功,则马上将该IP前缀值插入数组S中,并返回,若插入失败,则将数组S中与该IP前缀匹配的表项全部移入数组F中,并删除LPM表中相应的IP前缀值。尝试插入数组F中其他的IP前缀,并返回。
如图2所示,当删除LPM表中的表项和数组S中表项(删除LPM表和数组S的表项为同步)后,尝试将数组F中的其他前缀表项插入LPM表,具体插入过程为,将长IP前缀值表项插入,若插入成功,则将其他的所有短IP前缀插入,并将这些插入成功的所有IP前缀值插入数组S中;若插入失败,则保持不变,并返回。

Claims (6)

1.一种三层转发信息下发硬件LPM表的方法,其中上层FIB下发给该硬件LPM表,其特征在于,该方法包括:
设置与硬件LPM表相关的存储单元,并设置两个数组S和F,分别用于存储FIB下发成功和下发失败的IP前缀值;
FIB下发时,首先根据网络前缀值搜索数组F,查看是否存在与该IP前缀匹配的项;若存在,则将这个路由表项直接插入数组F后返回;
否则,将所述IP前缀值插入LPM表;若插入成功,则将其存储在所述数组S中;若插入失败,则将其插入数组F中,并将这个IP前缀在数组S中的所有IP短前缀表项全部移到数组F中,并删除LPM表中对应的IP前缀值;
删除LPM表中对应的IP前缀值后,循环尝试将数组F中的其他前缀值插入LPM表,若插入成功,则将该IP相应的短前缀全部插入LPM表,并插入数组S中,若失败,则保持不变。
2.如权利要求1所述的三层转发信息下发硬件LPM表的方法,其特征在于,所述存储单元的容量大于或等于所述FIB存储IP前缀值的容量。
3.如权利要求1所述的三层转发信息下发硬件LPM表的方法,其特征在于,所述存储单元中数组S和F以HASH表的方式存储IP前缀值。
4.如权利要求3所述的三层转发信息下发硬件LPM表的方法,其特征在于,所述数组S和F的元素包括有IP前缀值和指向HASH表的指针两部分。
5.如权利要求3所述的三层转发信息下发硬件LPM表的方法,其特征在于,所述HASH表由所有不同IP前缀构成,并按其IP前缀值升序排列。
6.如权利要求1所述的三层转发信息下发硬件LPM表的方法,其特征在于,所述数组S和F的存储容量可动态调整。
CNB2004100391726A 2004-02-20 2004-02-20 三层转发信息下发硬件lpm表的方法 Expired - Fee Related CN1314249C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2004100391726A CN1314249C (zh) 2004-02-20 2004-02-20 三层转发信息下发硬件lpm表的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2004100391726A CN1314249C (zh) 2004-02-20 2004-02-20 三层转发信息下发硬件lpm表的方法

Publications (2)

Publication Number Publication Date
CN1561050A CN1561050A (zh) 2005-01-05
CN1314249C true CN1314249C (zh) 2007-05-02

Family

ID=34441285

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100391726A Expired - Fee Related CN1314249C (zh) 2004-02-20 2004-02-20 三层转发信息下发硬件lpm表的方法

Country Status (1)

Country Link
CN (1) CN1314249C (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101404620B (zh) * 2008-11-17 2011-01-05 杭州华三通信技术有限公司 一种创建路由表项的方法和交换设备
US8331373B2 (en) * 2010-03-15 2012-12-11 Extreme Networks, Inc. Methods, systems, and computer readable media for automatically selecting between internet protocol switching modes on a per-module basis in a packet forwarding device
CN102316004B (zh) * 2010-06-29 2015-04-29 上海贝尔股份有限公司 在通信网络中用于确定节点间路由信息的方法及装置
CN109302345B (zh) * 2017-07-25 2022-01-25 迈普通信技术股份有限公司 Fib路由表下发时间测试系统、方法和装置
CN111865804B (zh) * 2020-06-15 2022-03-11 烽火通信科技股份有限公司 一种通过硬件发包机制提升路由下发效率的方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1398090A (zh) * 2001-07-18 2003-02-19 华为技术有限公司 一种无线虚拟私有网的隧道封装方法
CN1406073A (zh) * 2001-08-14 2003-03-26 深圳市中兴通讯股份有限公司上海第二研究所 一种基于用户ip地址路由的路由选择方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1398090A (zh) * 2001-07-18 2003-02-19 华为技术有限公司 一种无线虚拟私有网的隧道封装方法
CN1406073A (zh) * 2001-08-14 2003-03-26 深圳市中兴通讯股份有限公司上海第二研究所 一种基于用户ip地址路由的路由选择方法

Also Published As

Publication number Publication date
CN1561050A (zh) 2005-01-05

Similar Documents

Publication Publication Date Title
CN101350771B (zh) 三态内容可寻址存储器条目免排序存储方法及其系统
CN101141389B (zh) 增强多位Trie树查找方法和装置
US8295286B2 (en) Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware
US6985483B2 (en) Methods and systems for fast packet forwarding
CN102122285B (zh) 一种数据缓存系统中的数据查询系统和数据查询方法
US7031320B2 (en) Apparatus and method for performing high-speed IP route lookup and managing routing/forwarding tables
CN101692651B (zh) 一种哈希查找表的方法和装置
US7895213B2 (en) Method and system for providing cascaded trie-based network packet search engines
CN1655533A (zh) 基于最长前缀匹配算法的过滤器
EP1358739A2 (en) Method and apparatus for routing table management
WO1996000945A1 (en) Variable length data sequence matching method and apparatus
CN100536435C (zh) 一种基于二叉树的流分类查找方法
US20080133494A1 (en) Method and apparatus for searching forwarding table
EP1063827A2 (en) Method for address lookup
CN100426791C (zh) 一种路由转发表地址查找引擎装置
CN102045412B (zh) IPv6地址前缀压缩存储方法及设备
CN101620623A (zh) 内容可寻址存储器表项管理方法和装置
CN105978814A (zh) 网络设备及网络设备内查询数据的方法
CN1314249C (zh) 三层转发信息下发硬件lpm表的方法
CN101321162B (zh) 基于tcam序偶的tcp序列号检查硬件实现方法
CN106416151A (zh) 用于分组处理的基于多表哈希查找
CN1441579A (zh) 支持多nexthop的TCAM高速查找方法及其系统
CN102521356A (zh) 基于确定有限状态自动机的正则表达式匹配设备和方法
CN1859208A (zh) 一种tcam路由表管理方法和系统
CN102984071B (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
ASS Succession or assignment of patent right

Owner name: HUAWEI TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: GANGWAN NETWORK CO., LTD.

Effective date: 20061013

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20061013

Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Applicant after: Huawei Technologies Co., Ltd.

Address before: 100089, No. 21 West Third Ring Road, Beijing, Haidian District, Long Ling Building, 13 floor

Applicant before: Harbour Networks Holdings Limited

C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070502

Termination date: 20110220