实现下一跳的配置数据分离的方法

文档序号:7811183阅读:375来源:国知局
实现下一跳的配置数据分离的方法
【专利摘要】本发明涉及通信【技术领域】,具体说是实现下一跳的配置数据分离的方法,包括以下步骤:为每个下一跳配置块维护一个绑定计数,该绑定计数用于对指向该下一跳配置块的所有关联配置块的总数进行统计计数;为下一跳配置块增加一种新的状态“伪存在”状态,任意时刻下,各下一跳配置块的状态属性为如下三种之一,形成三态机制:“不存在”状态;“存在”状态;“伪存在”状态;基于三态机制实现物理转发表项的维护管理,实现下一跳配置数据的解耦。本发明所述的实现下一跳的配置数据分离的方法,解除对具有紧耦合关系的配置块之间下发顺序要求的约束,提高控制平面的配置数据下发效率,从而改善整个设备的工作效率。
【专利说明】实现下一跳的配置数据分离的方法

【技术领域】
[0001] 本发明涉及通信【技术领域】,具体说是实现下一跳的配置数据分离的方法。

【背景技术】
[0002] 现代高性能路由器架构都将控制平面和数据平面从物理上区分开来,控制平面和 数据平面分别有独立的处理器和内存。控制平面的功能是运行路由协议、维护路由数据库 并生成FIB(Forward Information Base,转发信息库)表,并负责将FIB表下发到数据平 面。数据平面根据收到的FIB表中的配置数据完成对网络处理器的物理转发表项的维护更 新操作,实现对数据报文的独立转发。
[0003] 在数据平面中,为了解决路由多路径负载分担及VPN下一跳快速收敛等问题,在 网络处理器的路由查找转发流程设计上,将路由前缀与下一跳信息分离,在路由前缀表的 表项中仅提供下一跳表的索引指针。网络处理器在对数据报文进行路由转发时,先根据数 据报文携带的目的IP及所属的VRF ID (VPN路由转发表ID)信息查找路由前缀表,然后再根 据路由前缀表中的下一跳表的索引指针(下一跳索引)找到下一跳表的表项的存放位置, 这样通过逐级查找完成报文的封装与转发工作。
[0004] 为适应数据平面的下一跳分离特征(指路由前缀与下一跳信息分离),控制平面 在下发FIB表时,也相应将FIB表中的配置数据从逻辑上分割成若干个有独立意义的配置 块,如路由配置块、VRF(VPN路由转发表)标签配置块、LSP (标记交换路径)配置块、及L2 封装配置块等。FIB表中的配置数据的多级分离使得系统架构更为清晰,从实际操作上为路 由多路径负载分担及VPN下一跳快速收敛等需求提供了有利条件。
[0005] 但是,由于物理转发表项的维护工作由数据平面独立完成,控制平面不可见,因此 在下发各配置块时,控制平面不得不受到配置块下发顺序的约束。例如,欲将一条VPN路由 生效,控制平面必须按照顺序,先下发关联的LSP配置块,再下发VRF标签配置块,最后下发 路由配置块,如此才能保证数据平面在进行多级表项的更新与关联时,下级查找表的索引 已经准备好。由此可见,各配置块之间存在着紧耦合关系,而这种紧耦合关系严重制约了控 制平面的配置数据下发效率,最终影响到整个设备(高性能路由器)的工作效率。


【发明内容】

[0006] 针对现有技术中存在的缺陷,本发明的目的在于提供实现下一跳的配置数据分离 的方法,解除对具有紧耦合关系的配置块之间下发顺序要求的约束,提高控制平面的配置 数据下发效率,从而改善整个设备的工作效率。
[0007] 为达到以上目的,本发明采取的技术方案是:
[0008] 实现下一跳的配置数据分离的方法,其特征在于,包括以下步骤:
[0009] 步骤1,为每个下一跳配置块维护一个绑定计数,该绑定计数用于对指向该下一跳 配置块的所有关联配置块的总数进行统计计数,
[0010] 步骤2,为下一跳配置块增加一种新的状态"伪存在"状态,任意时刻下,各下一跳 配置块的状态属性为如下三种之一,形成三态机制:
[0011] (1) "不存在"状态:即初始状态,该下一跳配置块尚未从控制平面生成和下发,此 时数据平面无该下一跳配置块的任何配置数据信息;
[0012] (2) "存在"状态:该下一跳配置块已从控制平面下发,并由数据平面生效,此时数 据平面已存储该下一跳配置块的相关配置数据,并已完成物理转发表项的申请和写表操 作,实现数据报文的正常转发;
[0013] (3) "伪存在"状态:数据平面尚未收到从控制平面下发的该下一跳配置块的配置 数据,该下一跳配置块由数据平面内部生成,并占用相应物理转发表项的资源,但此时物理 转发表项被置为无效状态,不能进行报文转发;
[0014] 步骤3,基于三态机制实现物理转发表项的维护管理,以有限状态机的方式定义配 置块的三种状态之间的转移流程,基于该有限状态机实现下一跳配置数据的解耦。
[0015] 在上述技术方案的基础上,步骤1中所述下一跳配置块为:VRF标签配置块、LSP配 置块或L2封装配置块。
[0016] 在上述技术方案的基础上,所述的下一跳配置块"伪存在"状态,是由数据平面自 主产生和维护的一种内部状态,其触发条件是:在解除对控制平面配置块下发顺序约束的 前提下,数据平面在收到关联的下一跳配置块之前,先收到了路由配置块数据,其产生的直 接结果是为下一跳配置块预留了相应物理转发表项的资源。
[0017] 在上述技术方案的基础上,所述基于三态机制实现物理转发表项的维护管理具体 包括:
[0018] (1)当VRF标签配置块为"不存在"状态,且数据平面收到增加关联的VRF路由配 置块的命令时,此VRF标签配置块被分配相应的物理转发表项资源,VRF标签配置块的绑定 计数加1,即完成VRF标签配置块从"不存在"状态向"伪存在"状态的转换;此时物理转发 表项的有效BIT位无效状态,不能转发报文;
[0019] (2)当VRF标签配置块为"不存在"状态,且数据平面收到增加该VRF标签配置块 的命令时,该VRF标签配置块被创建生成,VRF标签配置块的绑定计数被初始化为0,即完成 VRF标签配置块从"不存在"状态向"存在"状态的转换;
[0020] (3)当VRF标签配置块为"存在"状态,且数据平面收到删除该VRF标签配置块的 命令时,若此VRF标签配置块的绑定计数为0,则此VRF标签配置块被删除,完成VRF标签 配置块从"存在"状态向"不存在"状态的转换;
[0021] (4)当VRF标签配置块为"存在"状态,且数据平面收到删除该VRF标签配置块的 命令时,若此VRF标签配置块的绑定计数大于0,则此VRF标签配置块所占用的物理转发表 项的有效BIT位会被清零,使之不能完成报文转发功能,即完成VRF标签配置块从"存在"状 态向"伪存在"状态的转换;
[0022] (5)当VRF标签配置块为"存在"状态,且数据平面收到增加或删除关联的VRF路 由配置块的命令时,此VRF标签配置块的绑定计数被相应的加1或减1,但状态保持不变;
[0023] (6)当VRF标签配置块为"伪存在"状态,且数据平面收到增加该VRF标签配置块 的命令时,该VRF标签配置块的数据被写入提前为之预留的物理转发表项中,使之能够完 成报文转发功能,即完成VRF标签配置块从"伪存在"状态向"存在"状态的转换;
[0024] (7)当VRF标签配置块为"伪存在"状态,且数据平面收到删除关联的VRF路由配 置块的命令时,此VRF标签配置块的绑定计数首先被减1,然后判断计数值是否变为0,如果 是,则此VRF标签配置块被删除,完成从"伪存在"状态向"不存在"状态的转换;
[0025] (8)当VRF标签配置块为"伪存在"状态,且数据平面收到删除关联的VRF路由配 置块的命令时,此VRF标签配置块的绑定计数首先被减1,然后判断计数值是否变为0,如果 否,则仍为"伪存在"状态;
[0026] 上述⑴?⑶是以VRF标签配置块为例,当VRF标签配置块替换为LSP配置块 或L2封装配置块时,所述增加关联的VRF路由配置块的命令则对应于增加关联的LSP业务 出口配置的命令或增加关联的L2业务出口配置的命令。
[0027] 在上述技术方案的基础上,为进一步提高数据平面的配置执行效率,数据平面启 用一个优先级低于主任务的配置块同步任务,主任务和配置块同步任务之间通过消息队列 进行通信,
[0028] 所述主任务负责接收控制平面的配置数据,并将其最终下发到网络处理器使之生 效;
[0029] 所述配置块同步任务负责完成处于"伪存在"状态的下一跳配置块的延后释放,即 数据平面收到下一跳配置块的的删除命令时,并未立即执行该配置块的删除动作,而是当 满足下一跳配置块的绑定计数为〇的条件时,才执行该配置块的删除操作。
[0030] 在上述技术方案的基础上,当控制平面创建一条VRF路由,或创建一条MPLS域公 网路由,或创建一条IP域公网路由时,
[0031] 数据平面对与之对应的路由配置块和VRF标签配置块的创建与管理,或与之对应 的路由配置块与LSP配置块的创建与管理,或与之对应的路由配置块与L2封装配置块的创 建与管理,
[0032] 采用基于三态机制实现物理转发表项的维护管理,以有限状态机的方式定义配置 块的三种状态之间的转移流程,基于该有限状态机实现下一跳配置数据的解耦。
[0033] 在上述技术方案的基础上,当控制平面创建一条VRF路由,数据平面执行增加控 制平面下发的VRF路由配置时,如搜索不到路由配置块指向的VRF标签配置块信息,则根据 路由配置数据中给定的目标VRF标签配置块的KEY值信息自主创建一个"伪存在"的VRF标 签配置块;
[0034] 数据平面再次执行另一条VRF路由配置的增加操作时,如可以搜索到所需的VRF 标签配置块所带标签配置信息,不论其为"存在"状态,还是"伪存在"状态,将此VRF标签 配置块绑定计数加1 ;
[0035] 当数据平面收到一个VRF标签配置块的增加命令时,如可以从存储池中搜索到该 配置信息与之对应的VRF标签配置块信息,并且此时该VRF标签配置块为"伪存在"状态, 则将事先预留的物理转发表项进行修改更新,并使之有效,使能报文转发功能。
[0036] 在上述技术方案的基础上,增加一个VRF路由配置的具体步骤为:
[0037] 步骤101 :当数据平面收到一个VRF路由配置块的增加命令时,根据路由配置数据 中提供的VRF标签配置块的KEY值,在存储池中搜索该VRF标签配置块的信息,如搜不到, 则转到步骤102,否则,不论该VRF标签配置块是"伪存在"状态或是"存在"状态,都转到步 骤 105 ;
[0038] 步骤102 :由于VRF路由配置块指向的目标VRF标签配置块不存在于存储池中,数 据平面根据该路由配置数据中提供的目标VRF标签配置块的KEY值信息创建一个"伪存在" 的VRF标签配置块,以预留硬件转发资源;
[0039] 步骤103 :根据控制平面下发的VRF路由配置块的数据,结合创建"伪存在"VRF标 签配置块所获得的下一跳查找表项的索引值进行路由查找表的申请和写表操作,完成VRF 路由配置块的添加功能以实现整条VRF路由的创建;
[0040] 步骤104 :将VRF标签配置块的绑定计数置1,并结束此次流程;
[0041] 步骤105 :可以在存储池中搜索到VRF路由配置块指向的目标VRF标签配置块的 信息,则用于路由查找表项写表的数据已经齐备,直接根据路由配置数据完VRF路由的添 加;
[0042] 步骤106 :将目标VRF标签配置块的绑定计数加1,并结束此次流程。
[0043] 在上述技术方案的基础上,删除VRF标签配置块的具体步骤为:
[0044] 步骤201 :数据平面根据收到的VRF标签配置块的删除命令所提供的KEY值搜索 到存储池里的VRF标签配置块的存储信息,判断该VRF标签配置块的绑定计数是否大于0, 如是,则说明此时至少有一条路由正关联到该VRF标签配置块上了,转到步骤203,否则转 到步骤202 ;
[0045] 步骤202 :此时该VRF标签配置块上无任何关联路由,直接删除该VRF标签配置 块,并释放所有资源,并结束此次流程;
[0046] 步骤203 :此时该VRF标签配置块上还有关联路由,因此执行配置块状态修改动 作,将该VRF标签配置块修改为"伪存在"状态,并结束此次流程。
[0047] 在上述技术方案的基础上,当删除一个VRF路由配置时,引入了基于消息通信的 多任务同步机制,主任务和配置块同步任务间通过消息队列接收发消息,其中 :
[0048] 主任务的执行步骤如下:
[0049] 步骤301 :数据平面收到VRF路由配置块的删除命令后,执行VRF路由配置块的删 除操作;
[0050] 步骤302 :通过被删除的VRF路由配置块的下一跳索引值从存储池搜索得到VRF 标签配置块的存储信息,并将VRF标签配置的绑定计数减1 ;
[0051] 步骤303 :判断VRF标签配置块的绑定计数是否大于0,如是,则结束VRF路由配置 块的删除流程,否则转到步骤304 ;
[0052] 步骤304 :此时VRF标签配置块的绑定计数等于0,判断其状态是否为"伪存在",如 是则转到步骤305,否则结束VRF路由配置块的删除流程;
[0053] 步骤305 :此时VRF标签配置块为"伪存在"状态,且绑定计数为0,发送VRF标签 配置块释放消息,通知配置同步任务完成该VRF标签配置块的物理删除操作,最后结束此 次流程;
[0054] 配置块同步任务的执行步骤如下:
[0055] 步骤401 :从消息队列接收各类消息,如队列为空,则配置块同步任务进入PEND状 态,如收到消息,则转到步骤402 ;
[0056] 步骤402 :如收到的消息为VRF标签配置块释放,则转到步骤403,否则结束此次流 程;
[0057] 步骤403 :判断待删除的VRF标签配置块是否仍为"伪存在"状态,如是,则转到步 骤404,否则结束此次流程;
[0058] 步骤404 :删除VRF标签配置块,并释放转发资源,最后转回步骤401进入下一次 循环操作过程。
[0059] 本发明所述的实现下一跳的配置数据分离的方法,解除对具有紧耦合关系的配置 块之间下发顺序要求的约束,提高控制平面的配置数据下发效率,从而改善整个设备的工 作效率。

【专利附图】

【附图说明】
[0060] 本发明有如下附图:
[0061] 图1是本发明实施例所述的方法的有限状态机;
[0062] 图2是增加一个VRF路由配置时,本发明实施例的处理流程图;
[0063] 图3是删除一个VRF标签配置时,本发明实施例的处理流程图;
[0064] 图4是删除一个VRF路由配置时,本发明实施例的处理流程图。

【具体实施方式】
[0065] 以下结合附图和实施例对本发明作进一步详细说明。
[0066] 本发明所述的实现下一跳的配置数据分离的方法,包括以下步骤:
[0067] 步骤1,为每个下一跳配置块维护一个绑定计数,目的是对指向该下一跳配置块的 所有关联配置块的总数进行统计计数,所述下一跳配置块为:VRF标签配置块、LSP配置块 或L2封装配置块;
[0068] 步骤2,为下一跳配置块增加一种新的状态"伪存在"状态,任意时刻下,各下一跳 配置块的状态属性为如下三种之一,形成三态机制:
[0069] (1) "不存在"状态:即初始状态,该下一跳配置块尚未从控制平面生成和下发,此 时数据平面无该下一跳配置块的任何配置数据信息;
[0070] (2) "存在"状态:该下一跳配置块已从控制平面下发,并由数据平面生效,此时 数据平面已存储该下一跳配置块的相关配置数据,并已完成物理转发表项的申请和写表操 作,实现数据报文的正常转发;
[0071] (3) "伪存在"状态:数据平面尚未收到从控制平面下发的该下一跳配置块的配置 数据,该下一跳配置块由数据平面内部生成,并占用相应物理转发表项的资源,但此时物理 转发表项被置为无效状态,不能进行报文转发;
[0072] 所述的下一跳配置块"伪存在"状态,是由数据平面自主产生和维护的一种内部状 态,其触发条件是:在解除对控制平面配置块下发顺序约束的前提下,数据平面在收到关联 的下一跳配置块之前,先收到了路由配置块数据,其产生的直接结果是为下一跳配置块预 留了相应物理转发表项的资源;
[0073] 步骤3,基于三态机制实现物理转发表项的维护管理;所述"基于三态机制实现物 理转发表项的维护管理"的工作原理如图1所示,以有限状态机的方式定义配置块的三种状 态之间的转移流程,基于该有限状态机实现下一跳配置数据的解耦,下一跳的配置数据分 离的过程由数据平面独立完成,对控制平面不可见。
[0074] 为便于描述,下面以VRF标签配置块为例,对图1中的三态机制转换进行说明。显 然此处VRF标签配置块可替换为LSP配置块或L2封装配置块等下一跳配置块。
[0075] 所述基于三态机制实现物理转发表项的维护管理具体包括:
[0076] (1)当VRF标签配置块为"不存在"状态,且数据平面收到增加关联的VRF路由配 置块的命令时,此VRF路由配置块的下一跳配置块(此处指配置顺序上的下一跳,即VRF标 签配置块)被分配相应的物理转发表项资源,VRF标签配置块的绑定计数加1,即完成VRF 标签配置块从"不存在"状态向"伪存在"状态的转换;此时物理转发表项的有效BIT位无 效状态,不能转发报文;
[0077] 同理,当LSP配置块或L2封装配置块为"不存在"状态,且数据平面收到增加关联 的端口配置块的命令时,此端口配置块的下一跳配置块(即LSP配置块或L2封装配置块) 被分配相应的物理转发表项资源,LSP配置块或L2封装配置块的绑定计数加1,即完成LSP 配置块或L2封装配置块从"不存在"状态向"伪存在"状态的转换;此时物理转发表项的 有效BIT位无效状态,不能转发报文;
[0078] (2)当VRF标签配置块为"不存在"状态,且数据平面收到增加该VRF标签配置块 的命令时,该VRF标签配置块被创建生成,VRF标签配置块的绑定计数被初始化为0,即完成 VRF标签配置块从"不存在"状态向"存在"状态的转换;
[0079] (3)当VRF标签配置块为"存在"状态,且数据平面收到删除该VRF标签配置块的 命令时,若此VRF标签配置块的绑定计数为0,则此VRF标签配置块被删除,完成VRF标签配 置块从"存在"状态向"不存在"状态的转换;
[0080] (4)当VRF标签配置块为"存在"状态,且数据平面收到删除该VRF标签配置块的 命令时,若此VRF标签配置块的绑定计数大于0,则此VRF标签配置块所占用的物理转发表 项的有效BIT位会被清零,使之不能完成报文转发功能,即完成VRF标签配置块从"存在"状 态向"伪存在"状态的转换;
[0081] (5)当VRF标签配置块为"存在"状态,且数据平面收到增加或删除关联的VRF路 由配置块的命令时,此VRF标签配置块的绑定计数被相应的加1或减1,但状态保持不变;
[0082] (6)当VRF标签配置块为"伪存在"状态,且数据平面收到增加该VRF标签配置块 的命令时,该VRF标签配置块的数据被写入提前为之预留的物理转发表项中,使之能够完 成报文转发功能,即完成VRF标签配置块从"伪存在"状态向"存在"状态的转换;
[0083] (7)当VRF标签配置块为"伪存在"状态,且数据平面收到删除关联的VRF路由配 置块的命令时,此VRF标签配置块的绑定计数首先被减1,然后判断计数值是否变为0,如果 是,则此VRF标签配置块被删除,完成从"伪存在"状态向"不存在"状态的转换;
[0084] (8)当VRF标签配置块为"伪存在"状态,且数据平面收到删除关联的VRF路由配 置块的命令时,此VRF标签配置块的绑定计数首先被减1,然后判断计数值是否变为0,如果 否,则仍为"伪存在"状态;
[0085] 上述⑴?⑶是以VRF标签配置块为例,当VRF标签配置块替换为LSP配置块 或L2封装配置块时,所述增加关联的VRF路由配置块的命令则相应替换为:增加关联的端 口配置块的命令,例如:增加关联的LSP业务出口配置块的命令,或增加关联的L2业务出口 配置块的命令。
[0086] 在上述技术方案的基础上,为进一步提高数据平面的配置执行效率,数据平面启 用一个优先级低于主任务的配置块同步任务,主任务和配置块同步任务之间通过消息队列 进行通信,
[0087] 所述主任务负责接收控制平面的配置数据,并将其最终下发到网络处理器使之生 效;
[0088] 所述配置块同步任务负责完成处于"伪存在"状态的下一跳配置块的延后释放,即 数据平面收到下一跳配置块的的删除命令时,并未立即执行该配置块的删除动作,而是当 满足下一跳配置块的绑定计数为〇的条件时,才执行该配置块的删除操作。
[0089] 增加配置块同步任务可减轻主任务的负担,节省主任务的执行时间。
[0090] 以下实施例是对路由配置块与VRF标签配置块之间的分离原理及具体实施过程 进行的详细描述,以此说明本发明所述方法的关键创新点。显然,所描述的实施例仅为本发 明的一部分实施例,与此对应的"路由配置块与L2封装配置块"、"路由配置块与LSP配置 块"等实施例均成立。基于本发明的实施例,本领域技术人员在没有做出创造性劳动前提下 所获得的所有其他实施例,都属于本发明的保护范围。
[0091] 根据图1所示,本发明实施例实现下一跳配置数据分离的关键步骤如下:
[0092] 当控制平面创建一条VRF路由(本专利中与此对应的可以推广到控制平面创建 MPLS域公网路由和IP域公网路由)时,数据平面对与之对应的路由配置块和VRF标签配 置块(对应于MPLS域公网路由和IP域公网路由,数据平面则为对应路由配置块与LSP配 置块和路由配置块与L2封装配置块)的创建与管理如下:
[0093] (1)数据平面执行增加控制平面下发的VRF路由配置时,如搜索不到路由配置块 指向的VRF标签配置块信息,则根据路由配置数据中给定的目标VRF标签配置块的KEY值 信息自主创建一个"伪存在"的VRF标签配置块。所述"KEY值"即一组被控制平面和数据 平面统一用来识别各个配置块的唯一标示符字段。
[0094] (2)数据平面再次执行另一条VRF路由配置的增加操作时,如可以搜索到所需的 VRF标签配置块所带标签配置信息,不论其为"存在"状态,还是"伪存在"状态,将此VRF标 签配置块绑定计数加1。
[0095] (3)当数据平面收到一个VRF标签配置块的增加命令时,如可以从存储池中搜索 到该配置信息与之对应的VRF标签配置块信息,并且此时该VRF标签配置块为"伪存在"状 态,则将事先预留的物理转发表项进行修改更新,并使之有效,使能报文转发功能。
[0096] 增加一个VRF路由时,通过执行下述的路由配置块与VRF标签配置块之间的分离 过程,实现了取消对控制平面的配置块下发顺序限制的目的。处理流程如图2所示,步骤如 下:
[0097] 步骤101 :当数据平面收到一个VRF路由配置块的增加命令时,根据路由配置数据 中提供的VRF标签配置块的KEY值,在存储池中搜索该VRF标签配置块的信息,如搜不到, 则转到步骤102,否则,不论该VRF标签配置块是"伪存在"状态或是"存在"状态,都转到步 骤 105 ;
[0098] 步骤102 :由于VRF路由配置块指向的目标VRF标签配置块不存在于存储池中,数 据平面根据该路由配置数据中提供的目标VRF标签配置块的KEY值信息创建一个"伪存 在"的VRF标签配置块,以预留硬件转发资源;
[0099] 步骤103 :根据控制平面下发的VRF路由配置块的数据,结合创建"伪存在"VRF标 签配置块所获得的下一跳查找表项的索引值进行路由查找表(即对应于路由配置块信息) 的申请和写表操作,完成VRF路由配置块的添加功能以实现整条VRF路由的创建;
[0100] 步骤104 :将VRF标签配置块的绑定计数置1,并结束此次流程;
[0101] 步骤105 :可以在存储池中搜索到VRF路由配置块指向的目标VRF标签配置块的 信息,则用于路由查找表项写表的数据已经齐备,直接根据路由配置数据完VRF路由的添 加;
[0102] 步骤106 :将目标VRF标签配置块的绑定计数加1,并结束此次流程。
[0103] 删除VRF标签配置块时:
[0104] (1)数据平面在执行VRF标签配置块删除操作时,检查其绑定计数,如大于0,则将 该VRF标签配置块置为"伪存在"状态,同时修改对应物理转发表项为无效,禁止其报文转 发功能。
[0105] (2)当数据平面收到删除关联的路由配置块的命令时,将VRF标签配置块的绑定 计数减1,当计数减为〇时,发送配置块同步消息。
[0106] (3)当主任务本轮执行结束后,配置同步任务获得任务执行时间片,并接收配置块 同步消息。
[0107] (4)当收到配置块同步消息时,再次确认该VRF标签配置块是否仍为"伪存在"状 态,如果是,则执行物理删除操作。
[0108] 删除一个VRF标签配置块的处理流程如图3所示,步骤如下:
[0109] 步骤201 :数据平面根据收到的VRF标签配置块的删除命令所提供的KEY值搜索 到存储池里的VRF标签配置块的存储信息,判断该VRF标签配置块的绑定计数是否大于0, 如是,则说明此时至少有一条路由正关联到该VRF标签配置块上了,转到步骤203,否则转 到步骤202 ;
[0110] 步骤202 :此时该VRF标签配置块上无任何关联路由,直接删除该VRF标签配置 块,并释放所有资源,并结束此次流程;
[0111] 步骤203 :此时该VRF标签配置块上还有关联路由,因此执行配置块状态修改动 作,将该VRF标签配置块修改为"伪存在"状态,并结束此次流程。
[0112] 在上述关于VRF标签配置块的删除流程中,当发现还有VRF路由配置块关联到该 VRF标签配置块时,并未真正释放任何转发资源,而是执行VRF标签配置块的状态修改操 作,将其修改为"伪存在",禁止物理转发表项的报文转发功能。这样,当控制平面下一次需 要重新建立该VRF标签配置块时,由于转发资源已存在,数据平面仅需对物理转发表项执 行修改操作即可,无需再刷新关联路由,便已保证了路由配置块与下一跳的配置块等物理 查找转发表项间的关联逻辑上的正确性,因此保证了 VRF标签配置块操作的独立性,实现 了在数据平面将VRF标签配置块从路由配置块中分离出来的目的。
[0113] 删除一条VRF路由配置的具体过程如下:
[0114] 删除一个VRF路由配置的处理流程如图4所示,引入了基于消息通信的多任务同 步机制,进一步提高了数据平面的配置执行效率。其中主任务的执行步骤如下:
[0115] 步骤301 :数据平面收到VRF路由配置块的删除命令后,执行VRF路由配置块的删 除操作;
[0116] 步骤302 :通过被删除的VRF路由配置块的下一跳索引值从存储池搜索得到VRF 标签配置块的存储信息,并将VRF标签配置的绑定计数减1 ;
[0117] 步骤303 :判断VRF标签配置块的绑定计数是否大于0,如是,则结束VRF路由配置 块的删除流程,否则转到步骤304 ;
[0118] 步骤304 :此时VRF标签配置块的绑定计数等于0,判断其状态是否为"伪存在", 如是则转到步骤305,否则结束VRF路由配置块的删除流程;
[0119] 步骤305 :此时VRF标签配置块为"伪存在"状态,且绑定计数为0,发送VRF标签 配置块释放消息,通知配置同步任务完成该VRF标签配置块的物理删除操作,最后结束此 次流程;
[0120] 配置块同步任务的执行步骤如下:
[0121] 步骤401 :从消息队列接收各类消息,如队列为空,则配置块同步任务进入PEND状 态,如收到消息,则转到步骤402 ;
[0122] 步骤402 :如收到的消息为VRF标签配置块释放(VRF标签配置块同步消息),则转 到步骤403,否则结束此次流程;
[0123] 步骤403 :判断待删除的VRF标签配置块是否仍为"伪存在"状态,如是,则转到步 骤404,否则结束此次流程;
[0124] 步骤404 :删除VRF标签配置块,并释放转发资源,最后转回步骤401进入下一次 循环操作过程。
[0125] 由于本发明实施例在基于优先级抢占调度的多任务环境下运行,所述配置块同步 任务的优先级相对于主任务较低,当主任务执行时,配置块同步任务处于PEND或READY状 态;而只有当主任务本次执行结束,或转入PEND或DELAY状态时,配置块同步任务才有机会 执行,因此实现了"伪存在"状态配置的延后释放的功能,节省了主任务的执行时间,进一步 提高了效率,同时不影响设备的转发性能。
[0126] 由上述本发明实施例提供的技术方案可以看出,本发明实施例通过为下一跳配置 数据块标记一种状态属性,并基于三态机制实现了关联配置块之间的解耦,解除了数据平 面对控制平面提出的关联配置块数据下发顺序的限制,实现了下一跳配置数据的分离,提 高了控制平面的配置数据下发效率,从而改善整个设备的工作效率。同时,通过引入基于消 息通信的多任务同步机制进一步提高了数据平面的配置执行效率。
[0127] 以上所述,仅为本发明较佳的【具体实施方式】,但本发明的保护范围并不局限于此, 任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换, 都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围 为准。
[0128] 本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
【权利要求】
1. 实现下一跳的配置数据分离的方法,其特征在于,包括以下步骤: 步骤1,为每个下一跳配置块维护一个绑定计数,该绑定计数用于对指向该下一跳配置 块的所有关联配置块的总数进行统计计数, 步骤2,为下一跳配置块增加一种新的状态"伪存在"状态,任意时刻下,各下一跳配置 块的状态属性为如下三种之一,形成三态机制: ⑴"不存在"状态:即初始状态,该下一跳配置块尚未从控制平面生成和下发,此时数 据平面无该下一跳配置块的任何配置数据信息; ⑵"存在"状态:该下一跳配置块已从控制平面下发,并由数据平面生效,此时数据平 面已存储该下一跳配置块的相关配置数据,并已完成物理转发表项的申请和写表操作,实 现数据报文的正常转发; (3) "伪存在"状态:数据平面尚未收到从控制平面下发的该下一跳配置块的配置数据, 该下一跳配置块由数据平面内部生成,并占用相应物理转发表项的资源,但此时物理转发 表项被置为无效状态,不能进行报文转发; 步骤3,基于三态机制实现物理转发表项的维护管理,以有限状态机的方式定义配置块 的三种状态之间的转移流程,基于该有限状态机实现下一跳配置数据的解耦。
2. 如权利要求1所述的实现下一跳的配置数据分离的方法,其特征在于:步骤1中所 述下一跳配置块为:VRF标签配置块、LSP配置块或L2封装配置块。
3. 如权利要求1所述的实现下一跳的配置数据分离的方法,其特征在于:所述的下一 跳配置块"伪存在"状态,是由数据平面自主产生和维护的一种内部状态,其触发条件是: 在解除对控制平面配置块下发顺序约束的前提下,数据平面在收到关联的下一跳配置块之 前,先收到了路由配置块数据,其产生的直接结果是为下一跳配置块预留了相应物理转发 表项的资源。
4. 如权利要求2所述的实现下一跳的配置数据分离的方法,其特征在于,所述基于三 态机制实现物理转发表项的维护管理具体包括: (1) 当VRF标签配置块为"不存在"状态,且数据平面收到增加关联的VRF路由配置块 的命令时,此VRF标签配置块被分配相应的物理转发表项资源,VRF标签配置块的绑定计数 加1,即完成VRF标签配置块从"不存在"状态向"伪存在"状态的转换;此时物理转发表项 的有效BIT位无效状态,不能转发报文; (2) 当VRF标签配置块为"不存在"状态,且数据平面收到增加该VRF标签配置块的命 令时,该VRF标签配置块被创建生成,VRF标签配置块的绑定计数被初始化为0,即完成VRF 标签配置块从"不存在"状态向"存在"状态的转换; (3) 当VRF标签配置块为"存在"状态,且数据平面收到删除该VRF标签配置块的命令 时,若此VRF标签配置块的绑定计数为0,则此VRF标签配置块被删除,完成VRF标签配置块 从"存在"状态向"不存在"状态的转换; (4) 当VRF标签配置块为"存在"状态,且数据平面收到删除该VRF标签配置块的命令 时,若此VRF标签配置块的绑定计数大于0,则此VRF标签配置块所占用的物理转发表项的 有效BIT位会被清零,使之不能完成报文转发功能,即完成VRF标签配置块从"存在"状态 向"伪存在"状态的转换; (5) 当VRF标签配置块为"存在"状态,且数据平面收到增加或删除关联的VRF路由配 置块的命令时,此VRF标签配置块的绑定计数被相应的加1或减1,但状态保持不变; (6) 当VRF标签配置块为"伪存在"状态,且数据平面收到增加该VRF标签配置块的命 令时,该VRF标签配置块的数据被写入提前为之预留的物理转发表项中,使之能够完成报 文转发功能,即完成VRF标签配置块从"伪存在"状态向"存在"状态的转换; (7) 当VRF标签配置块为"伪存在"状态,且数据平面收到删除关联的VRF路由配置块 的命令时,此VRF标签配置块的绑定计数首先被减1,然后判断计数值是否变为0,如果是, 则此VRF标签配置块被删除,完成从"伪存在"状态向"不存在"状态的转换; (8) 当VRF标签配置块为"伪存在"状态,且数据平面收到删除关联的VRF路由配置块 的命令时,此VRF标签配置块的绑定计数首先被减1,然后判断计数值是否变为0,如果否, 则仍为"伪存在"状态; 上述(1)?(8)是以VRF标签配置块为例,当VRF标签配置块替换为LSP配置块或L2 封装配置块时,所述增加关联的VRF路由配置块的命令则对应于增加关联的LSP业务出口 配置的命令或增加关联的L2业务出口配置的命令。
5. 如权利要求1所述的实现下一跳的配置数据分离的方法,其特征在于:为进一步提 高数据平面的配置执行效率,数据平面启用一个优先级低于主任务的配置块同步任务,主 任务和配置块同步任务之间通过消息队列进行通信, 所述主任务负责接收控制平面的配置数据,并将其最终下发到网络处理器使之生效; 所述配置块同步任务负责完成处于"伪存在"状态的下一跳配置块的延后释放,即数据 平面收到下一跳配置块的的删除命令时,并未立即执行该配置块的删除动作,而是当满足 下一跳配置块的绑定计数为0的条件时,才执行该配置块的删除操作。
6. 如权利要求1所述的实现下一跳的配置数据分离的方法,其特征在于:当控制平面 创建一条VRF路由,或创建一条MPLS域公网路由,或创建一条IP域公网路由时, 数据平面对与之对应的路由配置块和VRF标签配置块的创建与管理,或与之对应的路 由配置块与LSP配置块的创建与管理,或与之对应的路由配置块与L2封装配置块的创建与 管理, 采用基于三态机制实现物理转发表项的维护管理,以有限状态机的方式定义配置块的 三种状态之间的转移流程,基于该有限状态机实现下一跳配置数据的解耦。
7. 如权利要求1所述的实现下一跳的配置数据分离的方法,其特征在于:当控制平面 创建一条VRF路由,数据平面执行增加控制平面下发的VRF路由配置时,如搜索不到路由配 置块指向的VRF标签配置块信息,则根据路由配置数据中给定的目标VRF标签配置块的KEY 值信息自主创建一个"伪存在"的VRF标签配置块; 数据平面再次执行另一条VRF路由配置的增加操作时,如可以搜索到所需的VRF标签 配置块所带标签配置信息,不论其为"存在"状态,还是"伪存在"状态,将此VRF标签配置 块绑定计数加1 ; 当数据平面收到一个VRF标签配置块的增加命令时,如可以从存储池中搜索到该配置 信息与之对应的VRF标签配置块信息,并且此时该VRF标签配置块为"伪存在"状态,则将 事先预留的物理转发表项进行修改更新,并使之有效,使能报文转发功能。
8. 如权利要求7所述的实现下一跳的配置数据分离的方法,其特征在于,增加一个VRF 路由配置的具体步骤为: 步骤101 :当数据平面收到一个VRF路由配置块的增加命令时,根据路由配置数据中提 供的VRF标签配置块的KEY值,在存储池中搜索该VRF标签配置块的信息,如搜不到,则转 到步骤102,否则,不论该VRF标签配置块是"伪存在"状态或是"存在"状态,都转到步骤 105 ; 步骤102 :由于VRF路由配置块指向的目标VRF标签配置块不存在于存储池中,数据平 面根据该路由配置数据中提供的目标VRF标签配置块的KEY值信息创建一个"伪存在"的 VRF标签配置块,以预留硬件转发资源; 步骤103 :根据控制平面下发的VRF路由配置块的数据,结合创建"伪存在"VRF标签配 置块所获得的下一跳查找表项的索引值进行路由查找表的申请和写表操作,完成VRF路由 配置块的添加功能以实现整条VRF路由的创建; 步骤104 :将VRF标签配置块的绑定计数置1,并结束此次流程; 步骤105 :可以在存储池中搜索到VRF路由配置块指向的目标VRF标签配置块的信息, 则用于路由查找表项写表的数据已经齐备,直接根据路由配置数据完VRF路由的添加; 步骤106 :将目标VRF标签配置块的绑定计数加1,并结束此次流程。
9. 如权利要求7所述的实现下一跳的配置数据分离的方法,其特征在于,删除VRF标签 配置块的具体步骤为: 步骤201 :数据平面根据收到的VRF标签配置块的删除命令所提供的KEY值搜索到存 储池里的VRF标签配置块的存储信息,判断该VRF标签配置块的绑定计数是否大于0,如是, 则说明此时至少有一条路由正关联到该VRF标签配置块上了,转到步骤203,否则转到步骤 202 ; 步骤202 :此时该VRF标签配置块上无任何关联路由,直接删除该VRF标签配置块,并 释放所有资源,并结束此次流程; 步骤203 :此时该VRF标签配置块上还有关联路由,因此执行配置块状态修改动作,将 该VRF标签配置块修改为"伪存在"状态,并结束此次流程。
10. 如权利要求7所述的实现下一跳的配置数据分离的方法,其特征在于:当删除一个 VRF路由配置时,引入了基于消息通信的多任务同步机制,主任务和配置块同步任务间通过 消息队列接收发消息,其中: 主任务的执行步骤如下: 步骤301 :数据平面收到VRF路由配置块的删除命令后,执行VRF路由配置块的删除操 作; 步骤302 :通过被删除的VRF路由配置块的下一跳索引值从存储池搜索得到VRF标签 配置块的存储信息,并将VRF标签配置的绑定计数减1 ; 步骤303 :判断VRF标签配置块的绑定计数是否大于0,如是,则结束VRF路由配置块的 删除流程,否则转到步骤304; 步骤304:此时VRF标签配置块的绑定计数等于0,判断其状态是否为"伪存在",如是则 转到步骤305,否则结束VRF路由配置块的删除流程; 步骤305 :此时VRF标签配置块为"伪存在"状态,且绑定计数为0,发送VRF标签配置块 释放消息,通知配置同步任务完成该VRF标签配置块的物理删除操作,最后结束此次流程; 配置块同步任务的执行步骤如下: 步骤401 :从消息队列接收各类消息,如队列为空,则配置块同步任务进入PEND状态, 如收到消息,则转到步骤402; 步骤402 :如收到的消息为VRF标签配置块释放,则转到步骤403,否则结束此次流程; 步骤403 :判断待删除的VRF标签配置块是否仍为"伪存在"状态,如是,则转到步骤 404,否则结束此次流程; 步骤404 :删除VRF标签配置块,并释放转发资源,最后转回步骤401进入下一次循环 操作过程。
【文档编号】H04L12/701GK104125147SQ201410393712
【公开日】2014年10月29日 申请日期:2014年8月11日 优先权日:2014年8月11日
【发明者】饶冀, 袁炳根, 吴清坚, 刘莹, 申智勇 申请人:烽火通信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1