CN114615216A - 一种基于交换芯片的路由表动态调整方法 - Google Patents

一种基于交换芯片的路由表动态调整方法 Download PDF

Info

Publication number
CN114615216A
CN114615216A CN202210239203.0A CN202210239203A CN114615216A CN 114615216 A CN114615216 A CN 114615216A CN 202210239203 A CN202210239203 A CN 202210239203A CN 114615216 A CN114615216 A CN 114615216A
Authority
CN
China
Prior art keywords
routing
key value
information
skip list
entering
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
Application number
CN202210239203.0A
Other languages
English (en)
Other versions
CN114615216B (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.)
Shenzhen Forward Industrial Co Ltd
Original Assignee
Shenzhen Forward Industrial 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 Shenzhen Forward Industrial Co Ltd filed Critical Shenzhen Forward Industrial Co Ltd
Priority to CN202210239203.0A priority Critical patent/CN114615216B/zh
Publication of CN114615216A publication Critical patent/CN114615216A/zh
Application granted granted Critical
Publication of CN114615216B publication Critical patent/CN114615216B/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
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/20Hop count for routing purposes, e.g. TTL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables

Landscapes

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

Abstract

本发明公开了一种基于交换芯片的路由表动态调整方法,包括以下步骤:S1:分离路由信息的路由键值表和下一跳表;S2:根据分离好的路由键值表和下一跳表,进行路由表动态调整。该路由表动态调整方法通过在线动态调整路由表容量,合理利用交换机硬件资源,使得交换机可以适应不同的网络环境,扩展了交换机的应用场景,满足不同行业的用户需求。

Description

一种基于交换芯片的路由表动态调整方法
技术领域
本发明属于路由表调整技术领域,具体涉及一种基于交换芯片的路由表动态调整方法。
背景技术
随着交换芯片领域的快速发展,交换机的转发能力得到了极大提升,交换机支持的功能也更加丰富,交换机已经成为大型企业网、骨干网以及数据中心网络等组网中的重要设备。不同的网络环境中,交换机上使用的主要功能可能不同。比如,IPv4网络中,交换机只需要转发和处理IPv4报文;IPv6网络中,交换机只需要转发和处理IPv6报文;有些网络中,交换机既需要转发和处理IPv4报文,又需要转发和处理IPv6报文。
交换机快速转发报文的关键在于交换芯片,交换芯片主要通过表和寄存器等进行管理,高性能紧凑型交换芯片对于硬件资源空间的要求非常苛刻,所以很多表存在共享和复用的情况,如果对某一个表或寄存器进行了调整很容易引起一系列连锁反应,导致其他相关联的表或者共享表资源的模块出现紊乱,最终导致芯片功能运行错误且无法在线恢复。比如,调整路由表资源时,会对下一跳表资源重新生成和分配,其他引用到下一跳表资源的模块都会出现问题,造成整个交换芯片的功能异常。所以一般对某个表项资源空间进行调整后,为了避免引起其他错误,最直接的方法就是对芯片进行重启复位,直接对整个芯片的表资源空间进行重配置。
现有的做法主要是通过用户配置新的路由资源分配模式,然后重启交换机,在交换机启动过程中完成新的路由表容量模式调整。现有的技术方案通过重启交换机的方式,可以实现路由表调整的功能。但是存在以下问题:1)某些应用场景,在路由表调整的过程中不允许重启交换机。现有的技术方案不支持这些应用场景。2)重启交换机的过程往往需要消耗较长的时间。在网络环境中,这里的时间除了交换机自身启动的时间,还包括交换机启动后,各种协议之间通信直到网络稳定的时间,整个过程会对网络通信造成不可估量的瘫痪。3)在实际应用中,每次调整都会对整个网络设备造成影响,使管理员的网络维护工作变得相当繁琐等。
发明内容
本发明为了解决上述问题,提出了一种基于交换芯片的路由表动态调整方法。
本发明的技术方案是:一种基于交换芯片的路由表动态调整方法包括以下步骤:
S1:分离路由信息的路由键值表和下一跳表;
S2:根据分离好的路由键值表和下一跳表,进行路由表动态调整。
进一步地,步骤S1包括以下子步骤:
S11:获取路由信息的下一跳表表项;
S12:释放获取的路由信息的下一跳表表项;
S13:添加路由键值表表项;
S14:更新添加的路由键值表表项;
S15:删除路由键值表表项;
S16:添加路由信息;
S17:删除路由信息,完成分离。
进一步地,步骤S11包括以下子步骤:
S111:将路由信息的下一跳信息作为键值,并利用键值查询方法查询下一跳表表项;
S112:判断是否在下一跳表中查询到下一跳表表项,若是则进入步骤S113,否则进入步骤S114;
S113:将下一跳表表项的引用计数变量值加1,完成下一跳表表项获取;
S114:在下一跳表的索引池中申请下一跳索引,根据下一跳信息和下一跳索引,确定下一跳表表项,并将下一跳表表项的引用计数变量值设置为1,根据下一跳表表项信息配置交换芯片上对应的NH表表项,完成下一跳表表项获取。
进一步地,步骤S12包括以下子步骤:
S121:利用下一跳表的索引查询方法查询下一跳表表项;
S122:判断是否在下一跳表中查询到下一跳表表项,若是则进入步骤S123,否则完成下一跳表表项释放;
S123:将下一跳表表项的引用计数变量值减1,若引用计数变量值减1后为0,则将下一跳表表项对应交换芯片的NH表表项删除,将下一跳表表项的索引释放,并删除下一跳表表项,否则结束下一跳表表项释放。
进一步地,步骤S13包括以下子步骤:
S131:根据路由键值信息,确定初始路由键值表表项,并遍历下一跳信息,并判断是否遍历完毕,若是则进入步骤S132,否则进入步骤S133;
S132:根据路由键值表表项,在交换芯片上确定对应的FBI表表项,完成路由键值表表项添加;
S133:将未被遍历的下一跳信息作为当前操作的下一跳信息,根据当前操作的下一跳信息获取下一跳表项,将获取的下一跳表项关联至初始路由键值表表项中,并返回步骤S131,继续遍历下一跳信息,直至完成路由键值表表项添加。
进一步地,步骤S14包括以下子步骤:
S141:遍历下一跳信息,并判断是否遍历完毕,若是则进入步骤S146,否则进入步骤S142;
S142:将未被遍历的下一跳信息作为当前操作的下一跳信息;
S143:遍历当前操作的路由键值表表项关联的所有下一跳表表项,判断是否遍历完毕,若是则进入步骤S145,否则进入步骤S144;
S144:获取未被遍历的下一跳表表项,并利用索引查询方法在下一跳表中确定对应的下一跳表表项,判断当前操作的下一跳信息与对应的下一跳表表项是否一致,若是则返回步骤S141,否则返回步骤S143;
S145:根据当前操作的下一跳信息获取下一跳表表项,并将获取到的下一跳表表项关联至路由键值表表项,并返回步骤S141;
S146:遍历路由键值表表项关联的所有下一跳表表项,判断是否遍历完毕,若是进入步骤S149,否则进入步骤S147;
S147:获取未被遍历的下一跳表表项,并利用索引查询方法在下一跳表中确定对应的下一跳表表项,判断所有下一跳信息中是否存在与对应的下一跳表表项一致的下一跳信息,若是则返回步骤S146,否则进入步骤S148;
S148:将对应的下一跳表表项从路由键值表表项中取消关联,并释放下一跳表表项,并返回步骤S146;
S149:根据路由键值表表项更新交换芯片的FBI表表项,完成更新路由键值表表项。
进一步地,步骤S15包括以下子步骤:
S151:遍历路由键值表表项关联的所有下一跳表表项,判断是否遍历完毕,若是则进入步骤S153,否则进入步骤S152;
S152:获取未被遍历的下一跳表表项,释放该下一跳表表项,并返回步骤S151;
S153:根据路由键值表表项删除交换芯片上对应的FIB表表项,并删除路由键值表表项。
进一步地,步骤S16包括以下子步骤:
S161:通过用户配置静态路由或通过路由协议学习路由,生成路由信息;
S162:从路由信息中解析得到键值信息和所有下一跳信息;
S163:根据键值信息查询路由键值表中是否存在对应的表项,若存在则进入步骤S165,否则进入步骤S164;
S164:根据键值信息添加路由键值表表项,完成路由信息添加;
S165:根据键值信息更新路由键值表表项,完成路由信息添加。
进一步地,步骤S17包括以下子步骤:
S171:通过用户配置静态路由或通过路由协议学习路由,生成路由信息;
S172:从路由信息中解析得到键值信息和所有下一跳信息;
S173:根据键值信息查询路由键值表中是否存在对应的表项,若存在则删除该路由键值表表项,否则结束路由信息删除。
进一步地,步骤S2包括以下子步骤:
S21:通过用户确定最新的路由资源分配模式;
S22:将最新的路由资源分配模式与交换芯片当前的路由资源分配模式进行比较,判断是否存在路由表扩容操作,若是则进入步骤S28,否则进入步骤S23;路由资源分配模式包括各种类型的路由容量组合;
S23:遍历路由键值表,判断是否遍历完毕,若是则进入步骤S25,否则进入步骤S24;
S24:获取未被遍历的路由键值表表项,根据路由键值表表项删除交换芯片上对应的FIB表表项,并返回步骤S23;
S25:根据最新的路由资源分配模式修改交换芯片上路由表的配置;
S26:遍历路由键值表,判断是否遍历完毕,若是则进入步骤S16,否则完成路由表动态调整;
S27:获取未被遍历的路由键值表表项,根据路由键值表表项在交换芯片上添加对应的FIB表项,并返回步骤S26;
S28:根据最新的路由资源分配模式修改交换芯片上路由表的配置,完成路由表动态调整。
本发明的有益效果是:
(1)该路由表动态调整方法通过在线动态调整路由表容量,合理利用交换机硬件资源,使得交换机可以适应不同的网络环境,扩展了交换机的应用场景,满足不同行业的用户需求;
(2)该路由表动态调整方法通过释放已有资源并根据新的路由模式申请新的资源的方式,实现了不用重启交换机,也能调整交换机路由表的功能;
(3)该路由表动态调整方法比静态调整的方法耗时更少,对网络通信影响大大降低,最快可以达到零时延;
(4)该路由表动态调整方法在调整过程中不用重启设备,不会造成网络通信中断,且配置相对简单,对整个网络系统中的设备影响较小,可以简化用户操作,便于管理员维护管理。
附图说明
图1为路由表动态调整方法的流程图;
图2为路由信息结构图;
图3为下一跳表索引池结构图;
图4为下一跳表结构图;
图5为下一跳表被引用示例图;
图6为路由键值表结构图。
具体实施方式
下面结合附图对本发明的实施例作进一步的说明。
在描述本发明的具体实施例之前,为使本发明的方案更加清楚完整,首先对本发明中出现的缩略语和关键术语定义进行说明:
(1)路由信息
本发明中使用的“路由信息”指用户配置的静态路由或者协议学习到的路由生成的信息。路由信息主要包括“键值信息”和“非键值信息”,“非键值信息”中都是下一跳相关的信息,所以“非键值信息”又称作“下一跳信息”。“下一跳信息”中可能包含多个下一跳(至少包含1个下一跳)。路由信息的结构如图2所示。
(2)下一跳表索引池
下一跳表索引池包含了下一跳表已经使用以及还没有使用的所有索引值。每一个索引都有1个标志变量,如果标志标量被设置则表示该索引已经被申请;如果标志变量没有被设置则表示该索引没有被申请。索引池的结构如图3所示。
(3)下一跳表
下一跳表是软件维护的表,与交换芯片上的NH表相互对应。下一跳表中存储路由信息中的下一跳信息。创建下一跳表项的时候,会从下一跳表索引池中申请1个索引,每个下一跳表表项有且只有1个索引,所以下一跳表表项可以考虑使用索引查询方法查询特定的表项;此外下一跳表表项还可以使用键值查询方法查询下一跳表表项。由于每条下一跳表表项存在被多个引用者关联的情况,所以每条下一跳表表项都有1个引用计数变量。下一跳表表项的引用者每增加1个,引用计数变量的值就加1;下一跳表表项的引用者每减少1个,引用计数变量的值就减1,当引用计数变量的值等于0的时候就释放该下一跳表表项的索引并删除该下一跳表表项。下一跳表的结构如图4所示。
下一跳表除了被单个功能的不同表项引用,还会被其他多个功能模块的表项引用,下一跳表项中的引用计数变量就是为了维护多个引用者,保证下一跳表中的表项正常。不同模块的表项以及同一模块的不同表项关联下一跳表的示例如图5所示。图5中,“+1”表示下一跳表表项增加了1个引用者,对应的下一跳表表项引用计数变量+1。下一跳表会被路由功能、VXLAN功能、MPLS功能等其他功能引用。软件中的下一跳表对应交换芯片上的NH表,本质上是交换芯片的NH表表项存在被这些功能的表项引用,由于存在这种复杂的关联关系,调整某个功能的表项时必须谨慎,一旦出错将导致其他功能异常,更不能将该表项空间清空。
(4)路由键值表。
路由键值表是软件维护的表,与交换芯片上的FIB表相对应。路由键值表中存储路由信息中的键值信息。每一条路由键值表表项会关联至少1条下一跳表表项,路由键值表表项中存储的是下一跳表表项的索引,可以使用下一跳表的索引查询方法查询到具体的下一跳表表项。路由键值表的结构如图6所示。
如图1所示,本发明提供了一种基于交换芯片的路由表动态调整方法,包括以下步骤:
S1:分离路由信息的路由键值表和下一跳表;
S2:根据分离好的路由键值表和下一跳表,进行路由表动态调整。
在本发明实施例中,步骤S1包括以下子步骤:
S11:获取路由信息的下一跳表表项;
S12:释放获取的路由信息的下一跳表表项;
S13:添加路由键值表表项;
S14:更新添加的路由键值表表项;
S15:删除路由键值表表项;
S16:添加路由信息;
S17:删除路由信息,完成分离。
在本发明实施例中,步骤S11包括以下子步骤:
S111:将路由信息的下一跳信息作为键值,并利用键值查询方法查询下一跳表表项;
S112:判断是否在下一跳表中查询到下一跳表表项,若是则进入步骤S113,否则进入步骤S114;
S113:将下一跳表表项的引用计数变量值加1,完成下一跳表表项获取;
S114:在下一跳表的索引池中申请下一跳索引,根据下一跳信息和下一跳索引,确定下一跳表表项,并将下一跳表表项的引用计数变量值设置为1,根据下一跳表表项信息配置交换芯片上对应的NH表表项,完成下一跳表表项获取。
查询中使用的键值“下一跳信息”由该流程的调用者传入。
在本发明实施例中,步骤S12包括以下子步骤:
S121:利用下一跳表的索引查询方法查询下一跳表表项;
S122:判断是否在下一跳表中查询到下一跳表表项,若是则进入步骤S123,否则完成下一跳表表项释放;
S123:将下一跳表表项的引用计数变量值减1,若引用计数变量值减1后为0,则将下一跳表表项对应交换芯片的NH表表项删除,将下一跳表表项的索引释放,并删除下一跳表表项,否则结束下一跳表表项释放。
查询中使用的“索引”由该流程的调用者传入。
在本发明实施例中,步骤S13包括以下子步骤:
S131:根据路由键值信息,确定初始路由键值表表项,并遍历下一跳信息,并判断是否遍历完毕,若是则进入步骤S132,否则进入步骤S133;
S132:根据路由键值表表项,在交换芯片上确定对应的FBI表表项,完成路由键值表表项添加;
S133:将未被遍历的下一跳信息作为当前操作的下一跳信息,根据当前操作的下一跳信息获取下一跳表项,将获取的下一跳表项关联至初始路由键值表表项中,并返回步骤S131,继续遍历下一跳信息,直至完成路由键值表表项添加。
键值信息由该流程的调用者传入。添加的初始路由键值表表项只有键值信息,没有关联任何下一跳表表项。下一跳信息由该流程的调用者传入。
在本发明实施例中,步骤S14包括以下子步骤:
S141:遍历下一跳信息,并判断是否遍历完毕,若是则进入步骤S146,否则进入步骤S142;
S142:将未被遍历的下一跳信息作为当前操作的下一跳信息;
S143:遍历当前操作的路由键值表表项关联的所有下一跳表表项,判断是否遍历完毕,若是则进入步骤S145,否则进入步骤S144;
S144:获取未被遍历的下一跳表表项,并利用索引查询方法在下一跳表中确定对应的下一跳表表项,判断当前操作的下一跳信息与对应的下一跳表表项是否一致,若是(则表示当前操作的下一跳信息已经被该路由键值表表项关联)则返回步骤S141,否则返回步骤S143;
S145:当前操作的下一跳信息还没有被该路由键值表表项关联。根据当前操作的下一跳信息获取下一跳表表项,并将获取到的下一跳表表项关联至路由键值表表项,并返回步骤S141;
S146:遍历路由键值表表项关联的所有下一跳表表项,判断是否遍历完毕,若是进入步骤S149,否则进入步骤S147;
S147:获取未被遍历的下一跳表表项,并利用索引查询方法在下一跳表中确定对应的下一跳表表项,判断所有下一跳信息中是否存在与对应的下一跳表表项一致的下一跳信息,若是则返回步骤S146,否则进入步骤S148;
S148:将对应的下一跳表表项从路由键值表表项中取消关联,并释放下一跳表表项,
并返回步骤S146;
S149:根据路由键值表表项更新交换芯片的FBI表表项,完成更新路由键值表表项。
下一跳信息由该流程的调用者传入。
在本发明实施例中,步骤S15包括以下子步骤:
S151:遍历路由键值表表项关联的所有下一跳表表项,判断是否遍历完毕,若是则进入步骤S153,否则进入步骤S152;
S152:获取未被遍历的下一跳表表项,释放该下一跳表表项,并返回步骤S151;
S153:根据路由键值表表项删除交换芯片上对应的FIB表表项,并删除路由键值表表项。
在本发明实施例中,步骤S16包括以下子步骤:
S161:通过用户配置静态路由或通过路由协议学习路由,生成路由信息;
S162:从路由信息中解析得到键值信息和所有下一跳信息;
S163:根据键值信息查询路由键值表中是否存在对应的表项,若存在则进入步骤S165,否则进入步骤S164;
S164:根据键值信息添加路由键值表表项,完成路由信息添加;
S165:根据键值信息更新路由键值表表项,完成路由信息添加。
在本发明实施例中,步骤S17包括以下子步骤:
S171:通过用户配置静态路由或通过路由协议学习路由,生成路由信息;
S172:从路由信息中解析得到键值信息和所有下一跳信息;
S173:根据键值信息查询路由键值表中是否存在对应的表项,若存在则删除该路由键值表表项,否则结束路由信息删除。
在本发明实施例中,步骤S2包括以下子步骤:
S21:通过用户确定最新的路由资源分配模式;
S22:将最新的路由资源分配模式与交换芯片当前的路由资源分配模式进行比较,判断是否存在路由表扩容操作,若是则进入步骤S28,否则进入步骤S23;路由资源分配模式包括各种类型的路由容量组合;例如,某设备支持2中路由资源分配模式:模式1,IPv4路由容量为5000,IPv6路由容量为1000;模式2,IPv4路由容量8000,IPv6路由容量1000。如果当期的路由资源分配模式是模式1,用户修改后的资源分配模式是模式2,则该过程中存在路由表扩容操作。反之,从模式2修改为模式1则不是扩容操作。
S23:遍历路由键值表,判断是否遍历完毕,若是则进入步骤S25,否则进入步骤S24;
S24:获取未被遍历的路由键值表表项,根据路由键值表表项删除交换芯片上对应的FIB表表项,并返回步骤S23;
S25:根据最新的路由资源分配模式修改交换芯片上路由表的配置;
S26:遍历路由键值表,判断是否遍历完毕,若是则进入步骤S16,否则完成路由表动态调整;
S27:获取未被遍历的路由键值表表项,根据路由键值表表项在交换芯片上添加对应的FIB表项,并返回步骤S26;
S28:根据最新的路由资源分配模式修改交换芯片上路由表的配置,完成路由表动态调整。
在软件层面已经将路由信息分离成“路由键值表”和“下一跳表”存储在不同的软件表中,路由表容量动态调整时,只需要重配置“路由键值表”对应的芯片上的表,可以实现最少的相关表的复位,然后完成整个路由表的动态调整。最后还可以根据软件层面保存的路由键值表重新在芯片上添加FIB表表项,实现路由表调整后网络通信快速恢复。当相关路由表容量扩容时,不会影响芯片已有表项的转发行为;当非扩容情况下,按照当前涉及,也有上层软件表项来保证路由正确选路,将网络通信的影响降到最低,可以保障网络恢复最快达到零时延。
本发明的工作原理及过程为:本发明提供了一种灵活的路由表动态调整的实现方法,在不重启交换机的情况下,可以实现交换机路由表的动态调整。此处的“动态调整”以是否重启交换机为依据,重启交换机的方案称为“静态调整”(或“调整”),不重启交换机的方案称为“动态调整”。
本发明在软件层面维护与交换芯片上相对应的表,方便软件管理。在交换芯片上,路由功能使用的路由表与芯片上的FIB表和NH表有关,FIB表表项中存储着该FIB表表项关联的NH表表项的索引。在软件层面,将路由信息拆分为路由键值表和下一跳表,路由键值表存储每一条路由信息的键值,下一跳表存储路由信息中除键值以外的数据。软件中的路由键值表对应交换芯片上的FIB表,软件中的下一跳表对应交换芯片上的NH表。路由键值表的表项与下一跳表的表项是“多对多”的关系,即每一条路由键值表的表项可以对应多条下一跳表的表项(也可以只对应一条下一跳表的表项);每一条下一跳表的表项可以对应多条路由键值表的表项(也可以只对应一条路由键值表的表项)。
本发明的有益效果为:
(1)该路由表动态调整方法通过在线动态调整路由表容量,合理利用交换机硬件资源,使得交换机可以适应不同的网络环境,扩展了交换机的应用场景,满足不同行业的用户需求;
(2)该路由表动态调整方法通过释放已有资源并根据新的路由模式申请新的资源的方式,实现了不用重启交换机,也能调整交换机路由表的功能;
(3)该路由表动态调整方法比静态调整的方法耗时更少,对网络通信影响大大降低,最快可以达到零时延;
(4)该路由表动态调整方法在调整过程中不用重启设备,不会造成网络通信中断,且配置相对简单,对整个网络系统中的设备影响较小,可以简化用户操作,便于管理员维护管理。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

Claims (10)

1.一种基于交换芯片的路由表动态调整方法,其特征在于,包括以下步骤:
S1:分离路由信息的路由键值表和下一跳表;
S2:根据分离好的路由键值表和下一跳表,进行路由表动态调整。
2.根据权利要求1所述的基于交换芯片的路由表动态调整方法,其特征在于,所述步骤S1包括以下子步骤:
S11:获取路由信息的下一跳表表项;
S12:释放获取的路由信息的下一跳表表项;
S13:添加路由键值表表项;
S14:更新添加的路由键值表表项;
S15:删除路由键值表表项;
S16:添加路由信息;
S17:删除路由信息,完成分离。
3.根据权利要求2所述的基于交换芯片的路由表动态调整方法,其特征在于,所述步骤S11包括以下子步骤:
S111:将路由信息的下一跳信息作为键值,并利用键值查询方法查询下一跳表表项;
S112:判断是否在下一跳表中查询到下一跳表表项,若是则进入步骤S113,否则进入步骤S114;
S113:将下一跳表表项的引用计数变量值加1,完成下一跳表表项获取;
S114:在下一跳表的索引池中申请下一跳索引,根据下一跳信息和下一跳索引,确定下一跳表表项,并将下一跳表表项的引用计数变量值设置为1,根据下一跳表表项信息配置交换芯片上对应的NH表表项,完成下一跳表表项获取。
4.根据权利要求3所述的基于交换芯片的路由表动态调整方法,其特征在于,所述步骤S12包括以下子步骤:
S121:利用下一跳表的索引查询方法查询下一跳表表项;
S122:判断是否在下一跳表中查询到下一跳表表项,若是则进入步骤S123,否则完成下一跳表表项释放;
S123:将下一跳表表项的引用计数变量值减1,若引用计数变量值减1后为0,则将下一跳表表项对应交换芯片的NH表表项删除,将下一跳表表项的索引释放,并删除下一跳表表项,否则结束下一跳表表项释放。
5.根据权利要求3所述的基于交换芯片的路由表动态调整方法,其特征在于,所述步骤S13包括以下子步骤:
S131:根据路由键值信息,确定初始路由键值表表项,并遍历下一跳信息,并判断是否遍历完毕,若是则进入步骤S132,否则进入步骤S133;
S132:根据路由键值表表项,在交换芯片上确定对应的FBI表表项,完成路由键值表表项添加;
S133:将未被遍历的下一跳信息作为当前操作的下一跳信息,根据当前操作的下一跳信息获取下一跳表项,将获取的下一跳表项关联至初始路由键值表表项中,并返回步骤S131,继续遍历下一跳信息,直至完成路由键值表表项添加。
6.根据权利要求3所述的基于交换芯片的路由表动态调整方法,其特征在于,所述步骤S14包括以下子步骤:
S141:遍历下一跳信息,并判断是否遍历完毕,若是则进入步骤S146,否则进入步骤S142;
S142:将未被遍历的下一跳信息作为当前操作的下一跳信息;
S143:遍历当前操作的路由键值表表项关联的所有下一跳表表项,判断是否遍历完毕,若是则进入步骤S145,否则进入步骤S144;
S144:获取未被遍历的下一跳表表项,并利用索引查询方法在下一跳表中确定对应的下一跳表表项,判断当前操作的下一跳信息与对应的下一跳表表项是否一致,若是则返回步骤S141,否则返回步骤S143;
S145:根据当前操作的下一跳信息获取下一跳表表项,并将获取到的下一跳表表项关联至路由键值表表项,并返回步骤S141;
S146:遍历路由键值表表项关联的所有下一跳表表项,判断是否遍历完毕,若是进入步骤S149,否则进入步骤S147;
S147:获取未被遍历的下一跳表表项,并利用索引查询方法在下一跳表中确定对应的下一跳表表项,判断所有下一跳信息中是否存在与对应的下一跳表表项一致的下一跳信息,若是则返回步骤S146,否则进入步骤S148;
S148:将对应的下一跳表表项从路由键值表表项中取消关联,并释放下一跳表表项,并返回步骤S146;
S149:根据路由键值表表项更新交换芯片的FBI表表项,完成更新路由键值表表项。
7.根据权利要求3所述的基于交换芯片的路由表动态调整方法,其特征在于,所述步骤S15包括以下子步骤:
S151:遍历路由键值表表项关联的所有下一跳表表项,判断是否遍历完毕,若是则进入步骤S153,否则进入步骤S152;
S152:获取未被遍历的下一跳表表项,释放该下一跳表表项,并返回步骤S151;
S153:根据路由键值表表项删除交换芯片上对应的FIB表表项,并删除路由键值表表项。
8.根据权利要求3所述的基于交换芯片的路由表动态调整方法,其特征在于,所述步骤S16包括以下子步骤:
S161:通过用户配置静态路由或通过路由协议学习路由,生成路由信息;
S162:从路由信息中解析得到键值信息和所有下一跳信息;
S163:根据键值信息查询路由键值表中是否存在对应的表项,若存在则进入步骤S165,否则进入步骤S164;
S164:根据键值信息添加路由键值表表项,完成路由信息添加;
S165:根据键值信息更新路由键值表表项,完成路由信息添加。
9.根据权利要求3所述的基于交换芯片的路由表动态调整方法,其特征在于,所述步骤S17包括以下子步骤:
S171:通过用户配置静态路由或通过路由协议学习路由,生成路由信息;
S172:从路由信息中解析得到键值信息和所有下一跳信息;
S173:根据键值信息查询路由键值表中是否存在对应的表项,若存在则删除该路由键值表表项,否则结束路由信息删除。
10.根据权利要求3所述的基于交换芯片的路由表动态调整方法,其特征在于,所述步骤S2包括以下子步骤:
S21:通过用户确定最新的路由资源分配模式;
S22:将最新的路由资源分配模式与交换芯片当前的路由资源分配模式进行比较,判断是否存在路由表扩容操作,若是则进入步骤S28,否则进入步骤S23;所述路由资源分配模式包括各种类型的路由容量组合;
S23:遍历路由键值表,判断是否遍历完毕,若是则进入步骤S25,否则进入步骤S24;
S24:获取未被遍历的路由键值表表项,根据路由键值表表项删除交换芯片上对应的FIB表表项,并返回步骤S23;
S25:根据最新的路由资源分配模式修改交换芯片上路由表的配置;
S26:遍历路由键值表,判断是否遍历完毕,若是则进入步骤S16,否则完成路由表动态调整;
S27:获取未被遍历的路由键值表表项,根据路由键值表表项在交换芯片上添加对应的FIB表项,并返回步骤S26;
S28:根据最新的路由资源分配模式修改交换芯片上路由表的配置,完成路由表动态调整。
CN202210239203.0A 2022-03-11 2022-03-11 一种基于交换芯片的路由表动态调整方法 Active CN114615216B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210239203.0A CN114615216B (zh) 2022-03-11 2022-03-11 一种基于交换芯片的路由表动态调整方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210239203.0A CN114615216B (zh) 2022-03-11 2022-03-11 一种基于交换芯片的路由表动态调整方法

Publications (2)

Publication Number Publication Date
CN114615216A true CN114615216A (zh) 2022-06-10
CN114615216B CN114615216B (zh) 2023-07-21

Family

ID=81862487

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210239203.0A Active CN114615216B (zh) 2022-03-11 2022-03-11 一种基于交换芯片的路由表动态调整方法

Country Status (1)

Country Link
CN (1) CN114615216B (zh)

Citations (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003003250A1 (en) * 2001-06-28 2003-01-09 Hywire Ltd. Range content-addressable memory
US20040090955A1 (en) * 2002-11-13 2004-05-13 International Business Machines Corporation System and method for routing IP datagrams
CN101043428A (zh) * 2006-05-30 2007-09-26 华为技术有限公司 一种路由转发的方法和系统
CN101110778A (zh) * 2007-07-23 2008-01-23 中兴通讯股份有限公司 一种利用默认路由压缩路由转发表的方法
CN101459577A (zh) * 2007-12-14 2009-06-17 上海博达数据通信有限公司 Bgp路由在分布式路由子系统中实现硬件查找的方法
CN102369688A (zh) * 2011-04-07 2012-03-07 华为技术有限公司 资源动态调整方法和调度设备
CN103873311A (zh) * 2012-12-11 2014-06-18 中国移动通信集团公司 一种用于路由器转发信息表容量的测试方法和系统
CN104125147A (zh) * 2014-08-11 2014-10-29 烽火通信科技股份有限公司 实现下一跳的配置数据分离的方法
WO2016078240A1 (zh) * 2014-11-19 2016-05-26 中兴通讯股份有限公司 一种检测路由成环的方法及装置
CN105721305A (zh) * 2016-01-19 2016-06-29 烽火通信科技股份有限公司 L3vpn路由迭代出口的方法
CN105827495A (zh) * 2016-01-05 2016-08-03 杭州华三通信技术有限公司 Vxlan网关的报文转发方法和设备
US20160241463A1 (en) * 2015-02-17 2016-08-18 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for fast reroute, control plane and forwarding plane synchronization
CN107181678A (zh) * 2017-07-26 2017-09-19 迈普通信技术股份有限公司 一种路由收敛的方法及装置
CN107968749A (zh) * 2017-11-21 2018-04-27 锐捷网络股份有限公司 实现QinQ路由终结的方法、交换芯片及交换机
CN108173982A (zh) * 2018-03-26 2018-06-15 深圳市风云实业有限公司 跨板报文的nat处理方法及装置
CN108306825A (zh) * 2018-01-31 2018-07-20 新华三技术有限公司 一种等价转发表项生成方法和vtep设备
CN108777668A (zh) * 2018-06-08 2018-11-09 烽火通信科技股份有限公司 一种三层交换机的路由资源控制方法及系统
CN108874987A (zh) * 2018-06-11 2018-11-23 深圳市风云实业有限公司 表项管理方法、装置及交换芯片
US20180351863A1 (en) * 2017-05-31 2018-12-06 Juniper Networks, Inc. Routing protocol signaling of multiple next hops and their relationship
CN109450800A (zh) * 2018-12-17 2019-03-08 西安空间无线电技术研究所 一种动态调整星簇自组网路由交互周期的方法及系统
US20190182145A1 (en) * 2016-08-19 2019-06-13 Huawei Technologies Co., Ltd. Information Management Method, Apparatus, and System
CN111698162A (zh) * 2016-08-19 2020-09-22 华为技术有限公司 一种信息同步的方法,装置及系统
CN112118186A (zh) * 2020-08-28 2020-12-22 深圳市风云实业有限公司 一种交换芯片路由表项存储方法、转发方法及配置方法
EP3890254A1 (en) * 2020-03-31 2021-10-06 Juniper Networks, Inc. Route consistency checker for network devices

Patent Citations (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003003250A1 (en) * 2001-06-28 2003-01-09 Hywire Ltd. Range content-addressable memory
US20040090955A1 (en) * 2002-11-13 2004-05-13 International Business Machines Corporation System and method for routing IP datagrams
CN101043428A (zh) * 2006-05-30 2007-09-26 华为技术有限公司 一种路由转发的方法和系统
CN101110778A (zh) * 2007-07-23 2008-01-23 中兴通讯股份有限公司 一种利用默认路由压缩路由转发表的方法
CN101459577A (zh) * 2007-12-14 2009-06-17 上海博达数据通信有限公司 Bgp路由在分布式路由子系统中实现硬件查找的方法
CN102369688A (zh) * 2011-04-07 2012-03-07 华为技术有限公司 资源动态调整方法和调度设备
CN103873311A (zh) * 2012-12-11 2014-06-18 中国移动通信集团公司 一种用于路由器转发信息表容量的测试方法和系统
CN104125147A (zh) * 2014-08-11 2014-10-29 烽火通信科技股份有限公司 实现下一跳的配置数据分离的方法
WO2016078240A1 (zh) * 2014-11-19 2016-05-26 中兴通讯股份有限公司 一种检测路由成环的方法及装置
US20160241463A1 (en) * 2015-02-17 2016-08-18 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for fast reroute, control plane and forwarding plane synchronization
CN105827495A (zh) * 2016-01-05 2016-08-03 杭州华三通信技术有限公司 Vxlan网关的报文转发方法和设备
CN105721305A (zh) * 2016-01-19 2016-06-29 烽火通信科技股份有限公司 L3vpn路由迭代出口的方法
CN111698162A (zh) * 2016-08-19 2020-09-22 华为技术有限公司 一种信息同步的方法,装置及系统
US20190182145A1 (en) * 2016-08-19 2019-06-13 Huawei Technologies Co., Ltd. Information Management Method, Apparatus, and System
US20180351863A1 (en) * 2017-05-31 2018-12-06 Juniper Networks, Inc. Routing protocol signaling of multiple next hops and their relationship
CN107181678A (zh) * 2017-07-26 2017-09-19 迈普通信技术股份有限公司 一种路由收敛的方法及装置
CN107968749A (zh) * 2017-11-21 2018-04-27 锐捷网络股份有限公司 实现QinQ路由终结的方法、交换芯片及交换机
CN108306825A (zh) * 2018-01-31 2018-07-20 新华三技术有限公司 一种等价转发表项生成方法和vtep设备
CN108173982A (zh) * 2018-03-26 2018-06-15 深圳市风云实业有限公司 跨板报文的nat处理方法及装置
CN108777668A (zh) * 2018-06-08 2018-11-09 烽火通信科技股份有限公司 一种三层交换机的路由资源控制方法及系统
CN108874987A (zh) * 2018-06-11 2018-11-23 深圳市风云实业有限公司 表项管理方法、装置及交换芯片
CN109450800A (zh) * 2018-12-17 2019-03-08 西安空间无线电技术研究所 一种动态调整星簇自组网路由交互周期的方法及系统
EP3890254A1 (en) * 2020-03-31 2021-10-06 Juniper Networks, Inc. Route consistency checker for network devices
CN112118186A (zh) * 2020-08-28 2020-12-22 深圳市风云实业有限公司 一种交换芯片路由表项存储方法、转发方法及配置方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DGR/NGP-0014: "GROUP REPORT Next Generation Protocols (NGP); Preferred Path Routing (PPR) for Next Generation Protocols Disclaimer The present document has been produced and approved by the Next Generation Protocols ", ETSI GR NGP 014, no. 1 *
XINGYEPING: ""路由管理的下一跳分离的设计方案"", Retrieved from the Internet <URL:《https://blog.csdn.net/xingyeping/article/details/85693499》> *
陆余良等: ""时空尺度下大规模域间路由事件检测方法"", 《小型微型计算机系统》 *

Also Published As

Publication number Publication date
CN114615216B (zh) 2023-07-21

Similar Documents

Publication Publication Date Title
US10659344B2 (en) Information transmission method, apparatus and system
JP2016149757A (ja) モジュール式転送テーブル拡張性のための技術
US10498643B2 (en) Method for constructing multipath forwarding rule, apparatus, and system
JP2005525716A (ja) 様々な発見技術の分割によるトポロジ発見
CN109412951B (zh) 一种发送路由信息的方法和装置
US20170187606A1 (en) Communication Among Network Controllers
CN108259218B (zh) 一种ip地址分配方法和装置
CN111901705B (zh) 一种olt设备的omci功能虚拟化系统
US9590890B2 (en) Transfer apparatus, server, and route changing method
CN110677347A (zh) 一种用于微服务的服务注册和服务发现的方法
CN114679349B (zh) 一种数据通信方法及装置
CN108683532B (zh) 一种主备同步方法及装置
CN113453262A (zh) 一种双向转发检测bfd方法及装置
WO2022150052A1 (en) Compression of route tables using key values
CN114615216B (zh) 一种基于交换芯片的路由表动态调整方法
US7334048B1 (en) Method and apparatus for fast route table update
CN116055446B (zh) 跨网络的报文转发方法、电子设备及机器可读存储介质
CN111130871B (zh) 保护切换方法、装置和网络设备
CN113395334B (zh) 服务功能链在线更新方法、系统及设备
CN113285995A (zh) 一种基于sdn的微服务请求自适应映射分配系统及方法
CN111555970A (zh) 一种基于双机冗余系统的网络切换方法、系统及存储介质
CN112637285A (zh) 边缘云通信方法、管理系统、计算机设备及存储介质
CN115244911B (zh) 控制器、网络系统以及流管理方法
JP2000259590A (ja) モジュール連携方法およびこれを利用した計算機システム
US20220224774A1 (en) Application programming interface for network service devices

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