CN104125147B - 实现下一跳的配置数据分离的方法 - Google Patents
实现下一跳的配置数据分离的方法 Download PDFInfo
- Publication number
- CN104125147B CN104125147B CN201410393712.4A CN201410393712A CN104125147B CN 104125147 B CN104125147 B CN 104125147B CN 201410393712 A CN201410393712 A CN 201410393712A CN 104125147 B CN104125147 B CN 104125147B
- Authority
- CN
- China
- Prior art keywords
- vrf
- configuration
- state
- block
- configuration block
- 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
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及通信技术领域,具体说是实现下一跳的配置数据分离的方法,包括以下步骤:为每个下一跳配置块维护一个绑定计数,该绑定计数用于对指向该下一跳配置块的所有关联配置块的总数进行统计计数;为下一跳配置块增加一种新的状态“伪存在”状态,任意时刻下,各下一跳配置块的状态属性为如下三种之一,形成三态机制:“不存在”状态;“存在”状态;“伪存在”状态;基于三态机制实现物理转发表项的维护管理,实现下一跳配置数据的解耦。本发明所述的实现下一跳的配置数据分离的方法,解除对具有紧耦合关系的配置块之间下发顺序要求的约束,提高控制平面的配置数据下发效率,从而改善整个设备的工作效率。
Description
技术领域
本发明涉及通信技术领域,具体说是实现下一跳的配置数据分离的方法。
背景技术
现代高性能路由器架构都将控制平面和数据平面从物理上区分开来,控制平面和数据平面分别有独立的处理器和内存。控制平面的功能是运行路由协议、维护路由数据库并生成FIB(Forward Information Base,转发信息库)表,并负责将FIB表下发到数据平面。数据平面根据收到的FIB表中的配置数据完成对网络处理器的物理转发表项的维护更新操作,实现对数据报文的独立转发。
在数据平面中,为了解决路由多路径负载分担及VPN下一跳快速收敛等问题,在网络处理器的路由查找转发流程设计上,将路由前缀与下一跳信息分离,在路由前缀表的表项中仅提供下一跳表的索引指针。网络处理器在对数据报文进行路由转发时,先根据数据报文携带的目的IP及所属的VRF ID(VPN路由转发表ID)信息查找路由前缀表,然后再根据路由前缀表中的下一跳表的索引指针(下一跳索引)找到下一跳表的表项的存放位置,这样通过逐级查找完成报文的封装与转发工作。
为适应数据平面的下一跳分离特征(指路由前缀与下一跳信息分离),控制平面在下发FIB表时,也相应将FIB表中的配置数据从逻辑上分割成若干个有独立意义的配置块,如路由配置块、VRF(VPN路由转发表)标签配置块、LSP(标记交换路径)配置块、及L2封装配置块等。FIB表中的配置数据的多级分离使得系统架构更为清晰,从实际操作上为路由多路径负载分担及VPN下一跳快速收敛等需求 提供了有利条件。
但是,由于物理转发表项的维护工作由数据平面独立完成,控制平面不可见,因此在下发各配置块时,控制平面不得不受到配置块下发顺序的约束。例如,欲将一条VPN路由生效,控制平面必须按照顺序,先下发关联的LSP配置块,再下发VRF标签配置块,最后下发路由配置块,如此才能保证数据平面在进行多级表项的更新与关联时,下级查找表的索引已经准备好。由此可见,各配置块之间存在着紧耦合关系,而这种紧耦合关系严重制约了控制平面的配置数据下发效率,最终影响到整个设备(高性能路由器)的工作效率。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供实现下一跳的配置数据分离的方法,解除对具有紧耦合关系的配置块之间下发顺序要求的约束,提高控制平面的配置数据下发效率,从而改善整个设备的工作效率。
为达到以上目的,本发明采取的技术方案是:
实现下一跳的配置数据分离的方法,其特征在于,包括以下步骤:
步骤1,为每个下一跳配置块维护一个绑定计数,该绑定计数用于对指向该下一跳配置块的所有关联配置块的总数进行统计计数,
步骤2,为下一跳配置块增加一种新的状态“伪存在”状态,任意时刻下,各下一跳配置块的状态属性为如下三种之一,形成三态机制:
(1)“不存在”状态:即初始状态,该下一跳配置块尚未从控制平面生成和下发,此时数据平面无该下一跳配置块的任何配置数据信息;
(2)“存在”状态:该下一跳配置块已从控制平面下发,并由数据平面生效,此时数据平面已存储该下一跳配置块的相关配置数 据,并已完成物理转发表项的申请和写表操作,实现数据报文的正常转发;
(3)“伪存在”状态:数据平面尚未收到从控制平面下发的该下一跳配置块的配置数据,该下一跳配置块由数据平面内部生成,并占用相应物理转发表项的资源,但此时物理转发表项被置为无效状态,不能进行报文转发;
步骤3,基于三态机制实现物理转发表项的维护管理,以有限状态机的方式定义配置块的三种状态之间的转移流程,基于该有限状态机实现下一跳配置数据的解耦。
在上述技术方案的基础上,步骤1中所述下一跳配置块为:VRF标签配置块、LSP配置块或L2封装配置块。
在上述技术方案的基础上,所述的下一跳配置块“伪存在”状态,是由数据平面自主产生和维护的一种内部状态,其触发条件是:在解除对控制平面配置块下发顺序约束的前提下,数据平面在收到关联的下一跳配置块之前,先收到了路由配置块数据,其产生的直接结果是为下一跳配置块预留了相应物理转发表项的资源。
在上述技术方案的基础上,所述基于三态机制实现物理转发表项的维护管理具体包括:
(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业务出口配置的命令。
在上述技术方案的基础上,为进一步提高数据平面的配置执行效率,数据平面启用一个优先级低于主任务的配置块同步任务,主任务和配置块同步任务之间通过消息队列进行通信,
所述主任务负责接收控制平面的配置数据,并将其最终下发到网络处理器使之生效;
所述配置块同步任务负责完成处于“伪存在”状态的下一跳配置块的延后释放,即数据平面收到下一跳配置块的的删除命令时,并未立即执行该配置块的删除动作,而是当满足下一跳配置块的绑定计数为0的条件时,才执行该配置块的删除操作。
在上述技术方案的基础上,当控制平面创建一条VRF路由,或创建一条MPLS域公网路由,或创建一条IP域公网路由时,
数据平面对与之对应的路由配置块和VRF标签配置块的创建与管理,或与之对应的路由配置块与LSP配置块的创建与管理,或与之对应的路由配置块与L2封装配置块的创建与管理,
采用基于三态机制实现物理转发表项的维护管理,以有限状态机的方式定义配置块的三种状态之间的转移流程,基于该有限状态机实现下一跳配置数据的解耦。
在上述技术方案的基础上,当控制平面创建一条VRF路由,数据平面执行增加控制平面下发的VRF路由配置时,如搜索不到路由配置块指向的VRF标签配置块信息,则根据路由配置数据中给定的目标VRF标签配置块的KEY值信息自主创建一个“伪存在”的VRF标签配置块;
数据平面再次执行另一条VRF路由配置的增加操作时,如可以搜索到所需的VRF标签配置块所带标签配置信息,不论其为“存在”状态,还是“伪存在”状态,将此VRF标签配置块绑定计数加1;
当数据平面收到一个VRF标签配置块的增加命令时,如可以从存储池中搜索到该配置信息与之对应的VRF标签配置块信息,并且此时该VRF标签配置块为“伪存在”状态,则将事先预留的物理转发表项进行修改更新,并使之有效,使能报文转发功能。
在上述技术方案的基础上,增加一个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,并结束此次流程。
在上述技术方案的基础上,删除VRF标签配置块的具体步骤为:
步骤201:数据平面根据收到的VRF标签配置块的删除命令所提供的KEY值搜索到存储池里的VRF标签配置块的存储信息,判断该VRF标签配置块的绑定计数是否大于0,如是,则说明此时至少有一条路由正关联到该VRF标签配置块上了,转到步骤203,否则转到步骤202;
步骤202:此时该VRF标签配置块上无任何关联路由,直接删除该VRF标签配置块,并释放所有资源,并结束此次流程;
步骤203:此时该VRF标签配置块上还有关联路由,因此执行配置块状态修改动作,将该VRF标签配置块修改为“伪存在”状态,并 结束此次流程。
在上述技术方案的基础上,当删除一个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进入下一次循环操作过程。
本发明所述的实现下一跳的配置数据分离的方法,解除对具有紧耦合关系的配置块之间下发顺序要求的约束,提高控制平面的配置数据下发效率,从而改善整个设备的工作效率。
附图说明
本发明有如下附图:
图1是本发明实施例所述的方法的有限状态机;
图2是增加一个VRF路由配置时,本发明实施例的处理流程图;
图3是删除一个VRF标签配置时,本发明实施例的处理流程图;
图4是删除一个VRF路由配置时,本发明实施例的处理流程图。
具体实施方式
以下结合附图和实施例对本发明作进一步详细说明。
本发明所述的实现下一跳的配置数据分离的方法,包括以下步骤:
步骤1,为每个下一跳配置块维护一个绑定计数,目的是对指向该下一跳配置块的所有关联配置块的总数进行统计计数,所述下一跳配置块为:VRF标签配置块、LSP配置块或L2封装配置块;
步骤2,为下一跳配置块增加一种新的状态“伪存在”状态,任意时刻下,各下一跳配置块的状态属性为如下三种之一,形成三态机制:
(1)“不存在”状态:即初始状态,该下一跳配置块尚未从控制平面生成和下发,此时数据平面无该下一跳配置块的任何配置数据信息;
(2)“存在”状态:该下一跳配置块已从控制平面下发,并由数据平面生效,此时数据平面已存储该下一跳配置块的相关配置数据,并已完成物理转发表项的申请和写表操作,实现数据报文的正常转发;
(3)“伪存在”状态:数据平面尚未收到从控制平面下发的该下一跳配置块的配置数据,该下一跳配置块由数据平面内部生成,并占用相应物理转发表项的资源,但此时物理转发表项被置为无效状态,不能进行报文转发;
所述的下一跳配置块“伪存在”状态,是由数据平面自主产生和维护的一种内部状态,其触发条件是:在解除对控制平面配置块下发顺序约束的前提下,数据平面在收到关联的下一跳配置块之前,先收到了路由配置块数据,其产生的直接结果是为下一跳配置块预留了相应物理转发表项的资源;
步骤3,基于三态机制实现物理转发表项的维护管理;所述“基于三态机制实现物理转发表项的维护管理”的工作原理如图1所示,以有限状态机的方式定义配置块的三种状态之间的转移流程,基于该有限状态机实现下一跳配置数据的解耦,下一跳的配置数据分离的过程由数据平面独立完成,对控制平面不可见。
为便于描述,下面以VRF标签配置块为例,对图1中的三态机制转换进行说明。显然此处VRF标签配置块可替换为LSP配置块或L2封装配置块等下一跳配置块。
所述基于三态机制实现物理转发表项的维护管理具体包括:
(1)当VRF标签配置块为“不存在”状态,且数据平面收到增加关联的VRF路由配置块的命令时,此VRF路由配置块的下一跳配置块(此处指配置顺序上的下一跳,即VRF标签配置块)被分配相应的物理转发表项资源,VRF标签配置块的绑定计数加1,即完成VRF标签配置块从“不存在”状态向“伪存在”状态的转换;此时物理转发表项的有效BIT位无效状态,不能转发报文;
同理,当LSP配置块或L2封装配置块为“不存在”状态,且数据平面收到增加关联的端口配置块的命令时,此端口配置块的下一跳配置块(即LSP配置块或L2封装配置块)被分配相应的物理转发表项资源,LSP配置块或L2封装配置块的绑定计数加1,即完成LSP配 置块或L2封装配置块从“不存在”状态向“伪存在”状态的转换;此时物理转发表项的有效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业务出口配置块的命令。
在上述技术方案的基础上,为进一步提高数据平面的配置执行效率,数据平面启用一个优先级低于主任务的配置块同步任务,主任务和配置块同步任务之间通过消息队列进行通信,
所述主任务负责接收控制平面的配置数据,并将其最终下发到网络处理器使之生效;
所述配置块同步任务负责完成处于“伪存在”状态的下一跳配置块的延后释放,即数据平面收到下一跳配置块的的删除命令时,并未立即执行该配置块的删除动作,而是当满足下一跳配置块的绑定计数为0的条件时,才执行该配置块的删除操作。
增加配置块同步任务可减轻主任务的负担,节省主任务的执行时间。
以下实施例是对路由配置块与VRF标签配置块之间的分离原理及具体实施过程进行的详细描述,以此说明本发明所述方法的关键创新点。显然,所描述的实施例仅为本发明的一部分实施例,与此对应的“路由配置块与L2封装配置块”、“路由配置块与LSP配置块”等实施例均成立。基于本发明的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
根据图1所示,本发明实施例实现下一跳配置数据分离的关键步骤如下:
当控制平面创建一条VRF路由(本专利中与此对应的可以推广到控制平面创建MPLS域公网路由和IP域公网路由)时,数据平面对与之对应的路由配置块和VRF标签配置块(对应于MPLS域公网路由和IP域公网路由,数据平面则为对应路由配置块与LSP配置块和路由配置块与L2封装配置块)的创建与管理如下:
(1)数据平面执行增加控制平面下发的VRF路由配置时,如搜索不到路由配置块指向的VRF标签配置块信息,则根据路由配置数据中给定的目标VRF标签配置块的KEY值信息自主创建一个“伪存在”的VRF标签配置块。所述“KEY值”即一组被控制平面和数据平面统一用来识别各个配置块的唯一标示符字段。
(2)数据平面再次执行另一条VRF路由配置的增加操作时,如可以搜索到所需的VRF标签配置块所带标签配置信息,不论其为“存在”状态,还是“伪存在”状态,将此VRF标签配置块绑定计数加1。
(3)当数据平面收到一个VRF标签配置块的增加命令时,如可以从存储池中搜索到该配置信息与之对应的VRF标签配置块信息,并且此时该VRF标签配置块为“伪存在”状态,则将事先预留的物理转发表项进行修改更新,并使之有效,使能报文转发功能。
增加一个VRF路由时,通过执行下述的路由配置块与VRF标签配置块之间的分离过程,实现了取消对控制平面的配置块下发顺序限制的目的。处理流程如图2所示,步骤如下:
步骤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,并结束此次流程。
删除VRF标签配置块时:
(1)数据平面在执行VRF标签配置块删除操作时,检查其绑定计数,如大于0,则将该VRF标签配置块置为“伪存在”状态,同时修改对应物理转发表项为无效,禁止其报文转发功能。
(2)当数据平面收到删除关联的路由配置块的命令时,将VRF标签配置块的绑定计数减1,当计数减为0时,发送配置块同步消息。
(3)当主任务本轮执行结束后,配置同步任务获得任务执行时间片,并接收配置块同步消息。
(4)当收到配置块同步消息时,再次确认该VRF标签配置块是否仍为“伪存在”状态,如果是,则执行物理删除操作。
删除一个VRF标签配置块的处理流程如图3所示,步骤如下:
步骤201:数据平面根据收到的VRF标签配置块的删除命令所提供的KEY值搜索到存储池里的VRF标签配置块的存储信息,判断该VRF标签配置块的绑定计数是否大于0,如是,则说明此时至少有一条路由正关联到该VRF标签配置块上了,转到步骤203,否则转到步骤202;
步骤202:此时该VRF标签配置块上无任何关联路由,直接删除该VRF标签配置块,并释放所有资源,并结束此次流程;
步骤203:此时该VRF标签配置块上还有关联路由,因此执行配置块状态修改动作,将该VRF标签配置块修改为“伪存在”状态,并结束此次流程。
在上述关于VRF标签配置块的删除流程中,当发现还有VRF路由配置块关联到该VRF标签配置块时,并未真正释放任何转发资源,而是执行VRF标签配置块的状态修改操作,将其修改为“伪存在”,禁止物理转发表项的报文转发功能。这样,当控制平面下一次需要重新建立该VRF标签配置块时,由于转发资源已存在,数据平面仅需对物理转发表项执行修改操作即可,无需再刷新关联路由,便已保证了路由配置块与下一跳的配置块等物理查找转发表项间的关联逻辑上的正确性,因此保证了VRF标签配置块操作的独立性,实现了在数据平面将VRF标签配置块从路由配置块中分离出来的目的。
删除一条VRF路由配置的具体过程如下:
删除一个VRF路由配置的处理流程如图4所示,引入了基于消息通信的多任务同步机制,进一步提高了数据平面的配置执行效率。其中主任务的执行步骤如下:
步骤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标签配置块释放(VRF标签配置块同步消息),则转到步骤403,否则结束此次流程;
步骤403:判断待删除的VRF标签配置块是否仍为“伪存在”状态,如是,则转到步骤404,否则结束此次流程;
步骤404:删除VRF标签配置块,并释放转发资源,最后转回步骤401进入下一次循环操作过程。
由于本发明实施例在基于优先级抢占调度的多任务环境下运行,所述配置块同步任务的优先级相对于主任务较低,当主任务执行时,配置块同步任务处于PEND或READY状态;而只有当主任务本次执行结束,或转入PEND或DELAY状态时,配置块同步任务才有机会执行,因此实现了“伪存在”状态配置的延后释放的功能,节省了主任务的执行时间,进一步提高了效率,同时不影响设备的转发性能。
由上述本发明实施例提供的技术方案可以看出,本发明实施例通过为下一跳配置数据块标记一种状态属性,并基于三态机制实现了关联配置块之间的解耦,解除了数据平面对控制平面提出的关联配置块数据下发顺序的限制,实现了下一跳配置数据的分离,提高了控制平面的配置数据下发效率,从而改善整个设备的工作效率。同时,通过引入基于消息通信的多任务同步机制进一步提 高了数据平面的配置执行效率。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (10)
1.实现下一跳的配置数据分离的方法,其特征在于,包括以下步骤:
步骤1,为每个下一跳配置块维护一个绑定计数,该绑定计数用于对指向该下一跳配置块的所有关联配置块的总数进行统计计数,
步骤2,为下一跳配置块增加一种新的状态“伪存在”状态,任意时刻下,各下一跳配置块的状态属性为如下三种之一,形成三态机制:
(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进入下一次循环操作过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410393712.4A CN104125147B (zh) | 2014-08-11 | 2014-08-11 | 实现下一跳的配置数据分离的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410393712.4A CN104125147B (zh) | 2014-08-11 | 2014-08-11 | 实现下一跳的配置数据分离的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104125147A CN104125147A (zh) | 2014-10-29 |
CN104125147B true CN104125147B (zh) | 2017-05-17 |
Family
ID=51770416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410393712.4A Active CN104125147B (zh) | 2014-08-11 | 2014-08-11 | 实现下一跳的配置数据分离的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104125147B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106941450B (zh) * | 2016-01-05 | 2020-11-27 | 中兴通讯股份有限公司 | 一种路由同步方法、设备及通信系统 |
CN109672617B (zh) * | 2017-10-16 | 2021-07-27 | 深圳市中兴微电子技术有限公司 | 一种mpls层次化保护倒换的方法、装置及存储介质 |
CN109951339B (zh) * | 2019-03-29 | 2022-02-01 | 烽火通信科技股份有限公司 | 一种配置块之间的配置反刷方法及系统 |
CN114615216B (zh) * | 2022-03-11 | 2023-07-21 | 深圳市风云实业有限公司 | 一种基于交换芯片的路由表动态调整方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1728702A (zh) * | 2004-07-29 | 2006-02-01 | 国家数字交换系统工程技术研究中心 | 一种将路由器的控制平面同数据平面的硬件相分离的方法 |
CN1783843A (zh) * | 2004-11-01 | 2006-06-07 | 朗迅科技公司 | 软路由器分离控制网络 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8811212B2 (en) * | 2012-02-22 | 2014-08-19 | Telefonaktiebolaget L M Ericsson (Publ) | Controller placement for fast failover in the split architecture |
EP2741452A1 (en) * | 2012-12-10 | 2014-06-11 | Robert Bosch Gmbh | Method for data transmission among ECUs and/or measuring devices |
-
2014
- 2014-08-11 CN CN201410393712.4A patent/CN104125147B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1728702A (zh) * | 2004-07-29 | 2006-02-01 | 国家数字交换系统工程技术研究中心 | 一种将路由器的控制平面同数据平面的硬件相分离的方法 |
CN1783843A (zh) * | 2004-11-01 | 2006-06-07 | 朗迅科技公司 | 软路由器分离控制网络 |
Also Published As
Publication number | Publication date |
---|---|
CN104125147A (zh) | 2014-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101160856B (zh) | 一种网络处理器 | |
CN103534989B (zh) | 在分布式结构协议(dfp)交换网络架构中的基于优先级的流控制 | |
CN104125147B (zh) | 实现下一跳的配置数据分离的方法 | |
CN101656659B (zh) | 一种混合业务流的缓存处理方法、存储转发方法及装置 | |
CN103119900B (zh) | 通信系统、控制设备、节点控制方法和节点控制程序 | |
CN100433715C (zh) | 给数据流提供不同的服务质量策略的方法 | |
CN103368851A (zh) | 基于资源复用的Openflow流表存储优化方法 | |
CN102487374B (zh) | 一种访问控制列表实现方法及装置 | |
CN103763135B (zh) | 一种pe设备流量调度方法及装置 | |
CN101151851A (zh) | 用于服务器环境中的联网卸载的主机以太网适配器 | |
CN102821038A (zh) | 交换网络架构中的数据业务处理方法和系统 | |
CN102387082B (zh) | 基于流分类的分组流量控制系统及控制方法 | |
CN103023792A (zh) | 在输送组播流量时传送进入接口(iif)的vlan/l2 vsn/桥接域 | |
CN101494610B (zh) | 处理报文的方法及交换机 | |
CN107276916B (zh) | 基于协议无感知转发技术的交换机流表管理方法 | |
CN104811384A (zh) | 一种多级流表优先级调整方法 | |
CN104079478A (zh) | 报文转发方法和装置 | |
CN105656786B (zh) | 一种基于快、慢表的路由器查表方法 | |
CN106453091A (zh) | 路由器转发平面的等价路由管理方法和装置 | |
CN101820385A (zh) | 一种ip数据流流量的监管方法 | |
CN102684971A (zh) | VLAN功能实现方法及Linux系统局域网网关 | |
CN102970239A (zh) | 流处理方法、流处理装置、路由器及流处理系统 | |
WO2016188032A1 (zh) | 利用流表转发数据的方法及系统 | |
EP3461083A1 (en) | Data processing method and device | |
CN101459630B (zh) | 一种igp路由方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |