一种M‑in‑M模式的SPB网络中的组播流量迁移方法和装置转让专利

申请号 : CN201310196644.8

文献号 : CN104184667B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 屈维亮周万

申请人 : 新华三技术有限公司

摘要 :

本发明提供了一种M‑in‑M模式的SPB网络中组播流量迁移方法和装置,技术方案为:BEB设备在迁移启动阶段向外发送指示自身在新的B‑VLAN中作为I‑SID的组播源节点的LSP报文,以使其它BEB设备以该BEB设备为组播源计算I‑SID在新的B‑VLAN中的组播隧道信息,并等待一段时间后再下发该组播隧道信息,使得SPB网络中所有BCB设备均有足够时间计算出该I‑SID的在新的B‑VLAN中的组播转发表项。本发明可以减少或避免组播流量迁移过程中的断流现象。

权利要求 :

1.一种M-in-M模式的SPB网络中的组播流量迁移方法,其特征在于,包括:

BEB设备在需要将一个服务实例的承载B-VLAN从当前的第一B-VLAN迁移到第二B-VLAN时,向外发送第一LSP报文,所述第一LSP报文指示所述服务实例映射到第一B-VLAN和第二B-VLAN,并且发送者在第一B-VLAN及第二B-VLAN中均作为所述服务实例的组播源节点和组播接收节点;

所述BEB设备接收所述服务实例的其它BEB设备发送的所述第一LSP报文,根据接收到的第一LSP报文计算在第二B-VLAN中本BEB设备到该其它BEB设备的第一组播隧道信息;

所述BEB设备接收到所述服务实例的所有其它BEB设备发送的所述第一LSP报文后,将所述服务实例的组播隧道信息更新为所述第一组播隧道信息,以将以本BEB设备为组播源的所述服务实例的组播流量切换到第二B-VLAN。

2.根据权利要求1所述的方法,其特征在于,

所述BEB设备接收全所述服务实例的所有其它BEB设备发送的所述第一LSP报文后,进一步启动一迁移等待定时器,并在迁移等待定时器超时后,将所述服务实例的组播隧道信息更新为所述第一组播隧道信息,以将以本BEB设备为组播源的所述服务实例的组播流量切换到第二B-VLAN。

3.根据权利要求1所述的方法,其特征在于,

所述BEB设备将所述服务实例的流量切换到第二B-VLAN后,进一步包括:

所述BEB设备向外发送第二LSP报文,并接收所述服务实例的其它各BEB设备发送的所述第二LSP报文,所述第二LSP报文指示所述服务实例映射到第一B-VLAN和第二B-VLAN,并且发送者在第一B-VLAN中仅作为所述服务实例的组播接收节点且在第二B-VLAN中作为所述服务实例的组播源节点和组播接收节点;

所述BEB设备接收全所述服务实例的所有其它BEB设备发送的所述第二LSP报文后,向外发送第三LSP报文,所述第三LSP报文指示所述服务实例仅映射到第二B-VLAN,并且发送者仅在第二B-VLAN中作为所述服务实例的组播源节点和组播接收节点。

4.根据权利要求3所述的方法,其特征在于,

发送所述第一LSP报文的方法为:生成一LSP报文,该LSP报文携带的ISID-ADDR-sub-TLV字段中:所述服务实例映射的B-VLAN包括第一B-VLAN和第二B-VLAN,第一B-VLAN对应的T标记和R标记均置位,且第二B-VLAN对应的T标记和R标记均置位;将该LSP报文作为第一LSP报文向外发送;

发送所述第二LSP报文的方法为:生成一LSP报文,该LSP报文携带的ISID-ADDR-sub-TLV字段中:所述服务实例映射的B-VLAN包括第一B-VLAN和第二B-VLAN,第一B-VLAN对应的T标记置0、R标记置位,且第二B-VLAN对应的T标记和R标记均置位;将该LSP报文作为第二LSP报文向外发送;

发送所述第三LSP报文的方法为:生成一LSP报文,该LSP报文携带的ISID-ADDR-sub-TLV字段中:所述服务实例映射的B-VLAN仅包括第二B-VLAN,且第二B-VLAN对应的T标记和R标记均置位;将该LSP报文作为第三LSP报文向外发送。

5.根据权利要求2所述的方法,其特征在于,

迁移等待定时器的超时时长T=D×P×K,其中,D为以本BEB设备为根节点的最短路径树SPT中,从根节点到叶子结点的最大跳数;P为SPB网络中LSP报文的发送周期;K为预设调整系数。

6.一种BEB设备,该BEB设备所在SPB网络采用SPBM模式,其特征在于,该BEB设备包括:

报文发送单元、报文接收单元、迁移控制单元、

所述报文发送单元,用于本BEB设备需要将一个服务实例的承载B-VLAN从当前的第一B-VLAN迁移到第二B-VLAN时,向外发送第一LSP报文,所述第一LSP报文指示所述服务实例映射到第一B-VLAN和第二B-VLAN,并且发送者在第一B-VLAN及第二B-VLAN中均作为所述服务实例的组播源节点和组播接收节点;

所述报文接收单元,用于接收其它各BEB设备发送的所述第一LSP报文;

所述迁移控制单元,用于根据报文接收单元接收到的所述服务实例的其它各BEB设备发送的所述第一LSP报文,计算在第二B-VLAN中本BEB设备到该其它BEB设备的第一组播隧道信息;以及,在所述报文接收单元接收全所述服务实例的其它所有BEB设备发送的所述第一LSP报文后,将所述服务实例的组播隧道信息更新为所述第一组播隧道信息,以将以本BEB设备为组播源的所述服务实例的组播流量切换到第二B-VLAN。

7.根据权利要求6所述的BEB设备,其特征在于,

所述迁移控制单元在接收全所述服务实例的所有其它BEB设备发送的所述第一LSP报文后,进一步启动一迁移等待定时器,并在迁移等待定时器超时后,将所述服务实例的组播隧道信息更新为所述第一组播隧道信息,以将以本BEB设备为组播源的所述服务实例的组播流量切换到第二B-VLAN。

8.根据权利要求6所述的BEB设备,其特征在于,

所述报文发送单元,进一步用于在迁移控制单元将以本BEB设备为组播源的所述服务实例的组播流量切换到第二B-VLAN后,向外发送第二LSP报文,所述第二LSP报文指示所述服务实例映射到第一B-VLAN和第二B-VLAN,并且发送者在第一B-VLAN中仅作为所述服务实例的组播接收节点且在第二B-VLAN中作为所述服务实例的组播源节点和组播接收节点;进一步用于报文接收单元接收全所述服务实例的所有其它BEB设备发送的第二LSP报文后,向外发送第三LSP报文,所述第三LSP报文指示所述服务实例仅映射到第二B-VLAN,并且发送者仅在第二B-VLAN中作为所述服务实例的组播源节点和组播接收节点;

所述报文接收单元,进一步用于接收所述服务实例的其它各BEB设备发送的第二LSP报文。

9.根据权利要求8所述的BEB设备,其特征在于,

报文发送单元在向外发送所述第一LSP报文时,用于:生成一LSP报文,该LSP报文携带的ISID-ADDR-sub-TLV字段中:所述服务实例映射的B-VLAN包括第一B-VLAN和第二B-VLAN,第一B-VLAN对应的T标记和R标记均置位,且第二B-VLAN对应的T标记和R标记均置位;将该LSP报文作为第一LSP报文向外发送;

报文发送单元在向外发送所述第二LSP报文时,用于:生成一LSP报文,该LSP报文携带的ISID-ADDR-sub-TLV字段中:所述服务实例映射的B-VLAN包括第一B-VLAN和第二B-VLAN,第一B-VLAN对应的T标记置0、R标记置位,且第二B-VLAN对应的T标记和R标记均置位;将该LSP报文作为第二LSP报文向外发送;

报文发送单元在向外发送所述第三LSP报文时,用于:生成一LSP报文,该LSP报文携带的ISID-ADDR-sub-TLV字段中:所述服务实例映射的B-VLAN仅包括第二B-VLAN,且第二B-VLAN对应的T标记和R标记均置位;将该LSP报文作为第三LSP报文向外发送。

10.根据权利要求7所述的BEB设备,其特征在于,

迁移等待定时器的超时时长T=D×P×K,其中,D为以本BEB设备为根节点的最短路径树SPT中,从根节点到叶子结点的最大跳数;P为SPB网络中LSP报文的发送周期;K为预设调整系数。

说明书 :

一种M-in-M模式的SPB网络中的组播流量迁移方法和装置

技术领域

[0001] 本申请涉及通信技术领域,特别涉及一种M-in-M模式的最短路径桥(Shortest Path Bridging,SPB)网络中的组播流量迁移方法和装置。

背景技术

[0002] SPB是IEEE802.1aq定义的以太网标准之一,是多生成树协议(MSTP)的进一步延伸,旨在构建大型扁平的无阻塞二层网络,使用基于SPB-ISIS来共享网络中的链路状态,网络各个节点并行计算与其它各节点之间的最短路径,能够避免使用STP协议带来的不稳定性和部分链路利用效率低下的不足。
[0003] IEEE802.1aq定义了两种SPB模式:VLAN模式(SPBV)和M-in-M模式(SPBM)。SPBM继承了802.1ah的报文封装格式及多服务实例的思想,但重新定义了数据平面的转发方式和控制平面,由SPB-ISIS来学习链路状态信息,并进行全网同步,计算转发路径。
[0004] 参见图1,图1是现有技术SPBM组网示意图,用户网络通过骨干网边缘网桥(Backbone Edge Bridge,BEB)连接到骨干网络,在骨干网络中BEB之间通过骨干网核心网桥(Backbone Core Bridge,BCB)相连。其中,BEB负责将来自用户网络的报文进行M-in-M封装,并转发到骨干网络中;或者将来自骨干网络的M-in-M报文进行解封装,并转发到用户网络中。BCB负责按照骨干网MAC(B-MAC)和骨干网VLAN(B-VLAN)转发M-in-M报文。
[0005] 在SPBM网络中,每个服务实例代表了一类业务或用户,具有惟一的编号:骨干网服务实例编号(Backbone Service Instance Identifier,I-SID),并承载在一个B-VLAN中。SPBM中,设备在B-VLAN内不动态学习MAC,转发表项由控制平面学习并下发到数据平面。每个设备都会生成LSP报文,LSP报文包含了本设备的所有链路状态信息以及B-MAC/B-VLAN以及I-SID的对应关系。设备接收到网络中其它设备发送的LSP报文时,开始拓扑计算,并最终生成转发表项并下发到数据平面,数据平面根据这些转发表项进行报文的处理。
[0006] 将一个处于服务状态的服务实例从老的B-VLAN迁移到新的B-VLAN,称为ECT迁移,当SPBM网络中所有配置了该I-SID服务实例的设备,其承载的B-VLAN变为新的B-VLAN,且老的B-VLAN不再承载该I-SID之后,认为ECT迁移完成。
[0007] 例如在图2所示的SPBM简单组网中,设备A和C为BEB设备,设备B为BCB设备,设备A和设备C均配置了I-SID 1000(承载的B-VLAN为1)。将承载I-SID 1000的B-VLAN从1变为3时,称为ECT迁移;当设备A和设备C中承载I-SID 1000的B-VLAN都变为3且B-VLAN1不再承载I-SID 1000时,ECT迁移完成。
[0008] 目前,业界还不存在针对SPB网络中ECT迁移的完整技术方案。

发明内容

[0009] 有鉴于此,本发明的目的在于提供一种M-in-M模式的SPB网络中的组播流量迁移方法,该方法可以减少或避免组播流量迁移过程中的断流现象。
[0010] 为实现上述目的,本发明提供的技术方案为:
[0011] 一种M-in-M模式的SPB网络的组播流量迁移方法,包括:
[0012] BEB设备在需要将一个服务实例的承载B-VLAN从当前的第一B-VLAN迁移到第二B-VLAN时,向外发送第一LSP报文,所述第一LSP报文指示所述服务实例映射到第一B-VLAN和第二B-VLAN,并且发送者在第一B-VLAN及第二B-VLAN中均作为所述服务实例的组播源节点和组播接收节点;
[0013] 所述BEB设备接收所述服务实例的其它BEB设备发送的所述第一LSP报文,根据接收到的第一LSP报文计算在第二B-VLAN中本BEB设备到该其它BEB设备的第一组播隧道信息;
[0014] 所述BEB设备接收到所述服务实例的所有其它BEB设备发送的所述第一LSP报文后,将所述服务实例的组播隧道信息更新为所述第一组播隧道信息,以将以本BEB设备为组播源的所述服务实例的组播流量切换到第二B-VLAN。
[0015] 一种BEB设备,包括:报文发送单元、报文接收单元、迁移控制单元、[0016] 所述报文发送单元,用于本BEB设备需要将一个服务实例的承载B-VLAN从当前的第一B-VLAN迁移到第二B-VLAN时,向外发送第一LSP报文,所述第一LSP报文指示所述服务实例映射到第一B-VLAN和第二B-VLAN,并且发送者在第一B-VLAN及第二B-VLAN中均作为所述服务实例的组播源节点和组播接收节点;
[0017] 所述报文接收单元,用于接收其它各BEB设备发送的所述第一LSP报文;
[0018] 所述迁移控制单元,用于根据报文接收单元接收到的所述服务实例的其它各BEB设备发送的所述第一LSP报文,计算在第二B-VLAN中本BEB设备到该其它BEB设备的第一组播隧道信息;以及,在所述报文接收单元接收全所述服务实例的其它所有BEB设备发送的所述第一LSP报文后,将所述服务实例的组播隧道信息更新为所述第一组播隧道信息,以将以本BEB设备为组播源的所述服务实例的组播流量切换到第二B-VLAN。
[0019] 综上所述,本发明中,BEB设备需要将某一服务实例的组播流量迁移到新的B-VLAN时,向外发送第一LSP报文并接收到其它各BEB设备发送的第一LSP报文时,根据接收的第一LSP报文计算本BEB设备与该其它BEB设备之间的在新的B-VLAN中的组播隧道信息但不立刻下发到数据平面,而是在迁移等待阶段结束后下发该计算出的组播隧道信息,从而保证SPB网络中所有设备均有足够时间生成了该服务实例在新的B-VLAN中的组播转发表项后再切换该服务实例的组播流量到新的B-VLAN。

附图说明

[0020] 图1是现有技术SPBM组网示意图;
[0021] 图2是现有技术一个SPBM简单组网示意图;
[0022] 图3是现有技术LSP报文中ISID ADDR sub TLV字段的结构示意图;
[0023] 图4是本发明实施例基于图2的组播流量迁移过程示意图;
[0024] 图5是本发明实施例BEB设备的结构示意图;
[0025] 图6是本发明实施例BEB设备的硬件架构图。

具体实施方式

[0026] 为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
[0027] 本发明实施例中,将组播流量迁移过程分为多个阶段:迁移启动阶段、预迁移阶段、迁移等待阶段、迁移完成阶段、迁移结束阶段。下面以一个服务实例的组播流量从第一B-VLAN迁移到第二B-VLAN的过程为例,对该服务实例的各个迁移阶段进行说明:
[0028] 迁移启动阶段:
[0029] ECT迁移启动可以由一台管理设备触发,例如向所述服务实例的所有BEB设备发送迁移命令,迁移命令中携带该服务实例信息,以及需要迁移到的第二B-VLAN等信息,BEB设备根据该迁移命令获知需要将所述服务实例从第一B-VLAN迁移到第二B-VLAN,ECT迁移过程开始。
[0030] BEB设备获知需要将所述服务实例从第一B-VLAN迁移到第二B-VLAN后,需要将第二B-VLAN信息通告出去,在本发明实施例中,利用LSP报文进行第二B-VLAN的通告。具体实现中,BEB设备可以向外发送第一LSP报文,所述第一LSP报文是指示所述服务实例映射到第一B-VLAN和第二B-VLAN,并且发送者在第一B-VLAN及第二B-VLAN中作为服务实例的组播源节点和组播接收节点的LSP报文,以此来完成对第二B-VLAN的通告。BEB设备通过发送所述第一LSP报文,触发所述服务实例的组播转发树的节点以所述BEB设备为组播源,计算在第二B-VLAN中的组播转发表项并下发到数据平面。
[0031] 所述服务实例的组播转发树的节点,在接收到所述BEB设备发送的所述第一LSP报文后,将以所述BEB设备为组播源,计算在第二B-VLAN中的组播转发表项并下发到数据平面。由于之前已经计算并下发过以所述BEB设备为组播源计算得到的在第一B-VLAN中的组播转发表项,这样,在这些节点上会同时存在以所述BEB设备为组播源的新、旧组播转发表项。
[0032] 类似的,所述服务实例的其他BEB设备,也会向外发送指示自身在第一B-VLAN及第二B-VLAN中作为服务实例的组播源节点和组播接收节点的第一LSP报文,以触发所述服务实例的组播转发树的节点以所述其他BEB设备为组播源,计算在第二B-VLAN中的组播转发表项并下发到数据平面。类似的,由于之前已经计算并下发过以所述其他BEB设备为组播源在第一B-VLAN中的组播转发表项,这样,在这些节点上会同时存在以所述其他BEB设备为组播源的新、旧组播转发表项。
[0033] 预迁移阶段:
[0034] 所述BEB设备在向外发送第一LSP报文之后,迁移启动阶段结束,进入到预迁移阶段。
[0035] 所述服务实例的其他BEB设备,也会向外发送指示自身在第一B-VLAN及第二B-VLAN中作为服务实例的组播源节点和组播接收节点的第一LSP报文,因此,所述BEB设备在接收到所述其他设备发送的所述第一LSP报文后,则计算在第二B-VLAN中本BEB设备到所述其他BEB设备的组播隧道信息。这里,组播隧道信息通常可以包括用于对报文进行MAC-in-MAC封装所需的目的组播地址、源B-MAC、I-SID、和B-VLAN等信息。在具体实现中,所述组播隧道信息还可以进一步包括封装后报文的出接口等信息。
[0036] 由于之前所述服务实例是承载在第一B-VLAN中,因此,当前数据平面中的所述BEB设备到所述其他BEB设备的组播隧道信息,是之前在第一B-VLAN中计算得到的组播隧道信息。所述BEB设备计算得到在第二B-VLAN中本设备到所述其他BEB设备的组播隧道信息后,暂时不会用第二B-VLAN中的组播隧道信息去更新数据平面中服务实例的组播隧道信息。这主要是因为,网络中各设备的处理能力和繁忙程度不同,一些设备可能还没有计算出服务实例在第二B-VLAN中的组播转发表项并下发到数据平面,如果此时用该其它BEB设备与该BEB设备之间在第二B-VLAN中的组播隧道信息去更新数据平面中的原有组播隧道信息,将会使以本设备为组播源的组播流量切换到第二B-VLAN,从而导致组播流量断流。因而,在预迁移阶段,虽然计算出了在第二B-VLAN中所述BEB设备到各个其他BEB设备的新组播隧道信息,但是仍需继续保持在第一B-VLAN中传输服务实例的组播流量。
[0037] 类似的,所述服务实例的其他BEB设备,接收到所述BEB设备发送的所述第一LSP报文后,则计算本设备在第二B-VLAN中去往所述BEB设备的组播隧道信息。并且,所述其他BEB设备也会暂时不会用该组播隧道信息去更新数据平面中服务实例的组播隧道信息。
[0038] 迁移等待阶段:
[0039] BEB设备在迁移启动阶段向外发送第一LSP报文,而在迁移启动阶段以及预迁移阶段也会接收到所述服务实例的其它其他BEB设备发送的第一LSP报文,该第一LSP报文指示发送者(其他BEB设备)在第一B-VLAN及第二B-VLAN中也都是作为服务实例的组播源节点和组播接收节点。所述BEB设备根据其他BEB设备发送的所述第一LSP报文,计算本设备在第二B-VLAN中去往所述其他BEB设备的组播隧道信息。当BEB设备接收到所述服务实例的所有其他BEB设备发送的第一LSP报文时,该BEB设备的预迁移阶段结束,进入到迁移等待阶段。
[0040] 由于网络中各设备的处理能力和繁忙程度不同,一些处理能力较弱或较为繁忙的设备可能未能及时计算出服务实例在第二B-VLAN中的组播转发表项并下发到数据平面,因此,BEB设备在经历预迁移阶段之后,为了避免组播流量断流,可以在迁移等待阶段中等待一段时间,而不是马上将服务实例的流量切换到第二B-VLAN。
[0041] 具体实现中,BEB设备接收全所有其它BEB设备发送的第一LSP报文时,可以启动一个迁移等待定时器,迁移等待定时器超时时,BEB设备的迁移等待阶段结束,进入到迁移完成阶段。
[0042] 其中,迁移等待定时器的定时时长可以为0,此时将直接接入迁移完成阶段,定时时长也可以采用以下公式计算得到迁移等待定时器的超时时长:
[0043] T=D×P×K,其中,T为迁移等待定时器的超时时长;D为以本BEB设备为根节点的最短路径树SPT中,从根节点到叶子结点的最大跳数;P为SPB网络中LSP报文的发送周期;K为预设调整系数,K的值可以根据具体的网络质量以及设备处理能力进行适当调整,例如取值为3,当K的取值为0时,表示ECT迁移过程跳过迁移等待阶段,这样可能会出现短暂的组播流量断流,但也有可能不会出现组播流量断流。
[0044] 迁移完成阶段:
[0045] 在迁移完成阶段,BEB设备将用迁移启动阶段以及预迁移阶段新计算的本设备在第二B-VLAN中去往其它各BEB设备的组播隧道信息,去更新数据平面中的服务实例的组播隧道信息,这样,以所述BEB设备为组播源的服务实例的组播流量,将会根据新的组播隧道信息进行封装转发,从而将服务实例的组播流量切换到第二B-VLAN。
[0046] 所述服务实例的组播流量切换到第二B-VLAN之后,在第一B-VLAN中,该BEB设备不需要再作为服务实例的组播源,为此,该BEB设备可以向外发送第二LSP报文,以此来通知网络中的其它设备。其中,第二LSP报文是指示所述服务实例映射到第一B-VLAN和第二B-VLAN,并且发送者在第一B-VLAN中仅作为服务实例的组播接收节点且在第二B-VLAN中作为服务实例的组播源节点和组播接收节点的LSP报文。
[0047] 迁移结束阶段:
[0048] 在迁移完成阶段,BEB设备需向外发送第二LSP报文。反过来,BEB设备也会接收到其它各BEB设备在各自的迁移完成阶段发送的第二LSP报文。
[0049] 当BEB设备接收全服务实例的所有其它BEB设备发送的第二LSP报文时,BEB设备的迁移完成阶段结束,进入到迁移结束阶段。
[0050] 在迁移结束阶段,所述服务实例的所有BEB设备均已将服务实例的组播流量切换到第二B-VLAN,这时,所述BEB设备可以向外发送第三LSP报文,所述第三LSP报文指示所述服务实例仅映射到第二B-VLAN,并且发送者仅在第二B-VLAN中作为所述服务实例的组播源节点和组播接收节点。由于第三LSP报文不再携带所述服务实例与第一B-VLAN的映射关系,即表明所述服务实例与第一B-VLAN之间的映射关系已经删除,所述服务实例已经从第一B-VLAN迁移至第二B-VLAN。
[0051] 由于所述BEB设备向外发送的第三LSP报文将不再携带所述服务实例与第一B-VLAN之间的映射关系,从而使得所述服务实例的组播转发树的节点在接收到第三LSP报文后,可以删除所述服务实例在老的第一B-VLAN中的相应组播转发项,第一B-VLAN不再承载所述服务实例的组播流量。
[0052] 在实际应用中,LSP报文中携带有ISID ADDR sub TLV字段,用来携带服务实例(I-SID)与B-VLAN的映射关系,以及B-MAC与B-VLAN的映射关系,设备接收到网络中其它设备发送的LSP报文时,根据LSP报文中的ISID-ADDRsub-TLV进行组播相关计算。ISID ADDR sub TLV字段如图3所示,可以包含多个I-SID与B-VLAN的映射关系,每个映射关系都对应一个T标记和R标记,其中,T标记置位表示发送该sub-TLV的设备作为该I-SID的组播源节点;R标记置位发送该sub-TLV的设备作为I-SID的组播接收节点。一个设备既可以作为I-SID的组播源节点,也可以作为I-SID的组播接收节点。
[0053] 本发明实施例中,BEB设备通过设置LSP报文的ISID-ADDR sub-TLV字段中I-SID与B-VLAN的映射关系对应的T标记和R标记来指示自身是否作为该I-SID的组播源节点和组播接收节点。具体地,
[0054] 在预迁移阶段,BEB设备在向外发送第一LSP报文时,首先需要生成一个LSP报文,该LSP报文携带的ISID-ADDR-sub-TLV字段中:所述服务实例映射的B-VLAN包括第一B-VLAN和第二B-VLAN,第一B-VLAN对应的T标记和R标记均置位,且第二B-VLAN对应的T标记和R标记均置位;将该LSP报文作为第一LSP报文向外发送,以此表明本BEB设备在第一B-VLAN及第二B-VLAN中均作为服务实例的组播源节点和组播接收节点。
[0055] 在迁移完成阶段,BEB设备在向外发送第二LSP报文时,首先需要生成一LSP报文,该LSP报文携带的ISID-ADDR-sub-TLV字段中:所述服务实例映射的B-VLAN包括第一B-VLAN和第二B-VLAN,第一B-VLAN对应的T标记置0、R标记置位,且第二B-VLAN对应的T标记和R标记均置位;将该LSP报文作为第二LSP报文向外发送,以此表明本BEB设备在第一B-VLAN中仅作为服务实例的组播接收节点而不作为组播源节点,且在第二B-VLAN中作为服务实例的组播源节点和组播接收节点。
[0056] 在发送第三LSP报文时,首先需要生成一LSP报文,该LSP报文携带的ISID-ADDR-sub-TLV字段中:所述服务实例映射的B-VLAN仅包括第二B-VLAN,且第二B-VLAN对应的T标记和R标记均置位;将该LSP报文作为第三LSP报文向外发送。
[0057] 从上述ECT迁移的五个阶段可以看出,在预迁移阶段,BEB设备已经计算出服务实例在第二B-VLAN中的组播隧道信息,但是直到迁移完成阶段才用该组播隧道信息更新数据平面中服务实例的组播隧道信息,将流量切换到第二B-VLAN。中间还经历了迁移等待阶段,以保证网络中其它设备能够有足够时间计算出以本BEB设备为组播源的在第二B-VLAN中的组播转发表项并下发到数据平面,从而可以保证服务实例的组播流量不中断。
[0058] 下面以图2为例,以服务实例I-SID1000从B-VLAN1迁移到B-VLAN3的过程进行说明。
[0059] 参见图4,图4是本发明实施例基于图2的组播流量迁移过程示意图,包括以下步骤:
[0060] 首先,
[0061] 设备A和设备C接收将I-SID 1000从B-VLAN1到B-VLAN3的迁移命令,确定需要执行ECT迁移,执行迁移配置,进入迁移启动阶段。
[0062] 接着,
[0063] 设备A和设备C均向外发送第一LSP报文。设备A和设备C在发送的第一LSP报文的ISID-ADDR sub-TLV字段中,B-VLAN 1与I-SID 1000的映射关系对应的T标记和R标记均被置位,表明设备A和设备C在B-VLAN 1中同时作为I-SID 1000的组播源节点和组播接收节点;B-VLAN3与I-SID 1000的映射关系对应的T标记和R标记均被置位,表明设备A和设备C在B-VLAN 3中同时作为I-SID 1000的组播源节点和组播接收节点。
[0064] 设备B接收到设备A在迁移启动阶段发送的第一LSP报文后,会以设备A为组播源节点生成I-SID 1000在B-VLAN 3中的组播转发表项。同样,设备B接收到设备C在迁移启动阶段发送的第一LSP报文后,会以设备C为组播源生成I-SID 1000在B-VLAN 3中的组播转发表项。
[0065] 设备A向外发送第一LSP报文后,结束迁移启动阶段,进入到预迁移阶段;设备C向外发送第一LSP报文后,结束迁移启动阶段,进入到预迁移阶段。
[0066] 再接着,
[0067] 设备A接收到设备C在迁移启动阶段发送的第一LSP报文后,根据第一LSP报文计算出I-SID 1000在B-VLAN 3中的组播隧道信息并禁止用该组播隧道信息去更新数据平面中I-SID1000的组播隧道信息;设备C接收到设备A在迁移启动阶段发送的第一LSP报文后,根据第一LSP报文计算出I-SID 1000在B-VLAN3中的组播隧道信息并禁止用该组播隧道信息去更新数据平面中I-SID1000的组播隧道信息。
[0068] 由于图2所示组网中仅有设备A和设备C两个BEB设备,因此,设备A在接收到设备C在步骤502中发送的第一LSP报文后,结束预迁移阶段,进入到迁移等待阶段;设备C在接收到设备A在步骤502中发送的第一LSP报文后,结束预迁移阶段,进入到迁移等待阶段。
[0069] 再接着,
[0070] 设备A在迁移等待阶段启动迁移等待定时器,设备C在迁移等待阶段启动迁移等待定时器。
[0071] 设备A启动的迁移等待定时器超时后,结束迁移等待阶段,进入迁移完成阶段;设备C启动的迁移等待定时器超时后,结束迁移等待阶段,进入迁移完成阶段。
[0072] 再接着,
[0073] 设备A在迁移完成阶段,向外发送第二LSP报文,并用此前计算出的I-SID1000在B-VLAN3中的组播隧道信息去更新数据平面中I-SID1000的组播隧道信息,以使I-SID1000的组播流量切换到B-VLAN3;设备C在迁移完成阶段,向外发送第二LSP报文,并用此前计算出的I-SID1000在B-VLAN3中的组播隧道信息去更新数据平面中I-SID1000的组播隧道信息,以使I-SID1000的组播流量切换到B-VLAN3。
[0074] 设备A在迁移完成阶段向外发送的第二LSP报文的ISID-ADDR sub-TLV字段中,B-VLAN 1与I-SID 1000的映射关系对应的T标记置为0,R标记被置位,表明设备A在B-VLAN 1中仅作为I-SID 1000的组播接收节点,而不作为I-SID 1000的组播源节点;B-VLAN 3与I-SID 1000的映射关系对应的T标记和R标记均被置位,表明设备A在B-VLAN 3中作为I-SID 1000的组播接收节点和组播源节点。
[0075] 设备C在迁移完成阶段向外发送的第二LSP报文的ISID-ADDR sub-TLV字段中,B-VLAN 1与I-SID 1000的映射关系对应的T标记置为0,R标记被置位,表明设备C在B-VLAN 1中仅作为I-SID 1000的组播接收节点,而不作为I-SID 1000的组播源节点;B-VLAN 3与I-SID 1000的映射关系对应的T标记和R标记均被置位,表明设备C在B-VLAN3中作为I-SID 1000的组播接收节点和组播源节点。
[0076] 再接着,
[0077] 设备A接收到设备C在迁移完成阶段发送的第二LSP报文,结束迁移完成阶段,进入迁移结束阶段;设备C接收到设备A在迁移完成阶段发送的第二LSP报文,结束迁移完成阶段,进入迁移结束阶段。
[0078] 最后,
[0079] 设备A在迁移结束阶段,删除I-SID 1000与B-VLAN 1的映射关系,ECT迁移结束;设备C在迁移结束阶段,删除I-SID 1000与B-VLAN 1的映射关系,ECT迁移结束。
[0080] 设备A在ECT迁移结束后,向外发送的LSP报文中不再携带I-SID 1000与B-VLAN 1的映射关系;设备C在ECT迁移结束后,向外发送的LSP报文中也不再携带I-SID 1000与B-VLAN 1的映射关系。设备B接收到设备A和设备C发送的不再携带I-SID 1000与B-VLAN 1的映射关系的LSP报文后,会删除I-SID 1000在B-VLAN 1中的组播转发表项。
[0081] 以上对本发明实施例SPB网络中ECT迁移方法进行了详细说明,本发明还提供了一种BEB设备,该BEB设备所在SPB网络采用M-in-M模式,下面结合图5进行说明。
[0082] 图5是本发明实施例BEB设备的结构示意图,如图5所示,该BEB设备包括:报文发送单元501、报文接收单元502、迁移控制单元503;其中,
[0083] 报文发送单元501,用于本BEB设备需要将一个服务实例的承载B-VLAN从当前的第一B-VLAN迁移到第二B-VLAN时,向外发送第一LSP报文,所述第一LSP报文指示所述服务实例映射到第一B-VLAN和第二B-VLAN,并且发送者在第一B-VLAN及第二B-VLAN中均作为所述服务实例的组播源节点和组播接收节点;
[0084] 报文接收单元502,用于接收其它各BEB设备发送的第一LSP报文;
[0085] 迁移控制单元503,用于根据报文接收单元502接收到的所述服务实例的其它各BEB设备的第一LSP报文,计算在第二B-VLAN中本BEB设备到该其它BEB设备的第一组播隧道信息;用于报文接收单元502接收全所述服务实例的其它所有BEB设备发送的第一LSP报文后,将所述服务实例的组播隧道信息更新为所述第一组播隧道信息,以将以本BEB设备为组播源的所述服务实例的组播流量切换到第二B-VLAN。
[0086] 上述BEB设备中,
[0087] 所述迁移控制单元503在接收全所述服务实例的所有其它BEB设备发送的第一LSP报文后,进一步启动一迁移等待定时器,并在迁移等待定时器超时后,将所述服务实例的组播隧道信息更新为所述第一组播隧道信息,将以本BEB设备为组播源的所述服务实例的组播流量切换到第二B-VLAN。
[0088] 上述BEB设备中,
[0089] 所述报文发送单元501,进一步用于在迁移控制单元503将以本BEB设备为组播源的所述服务实例的组播流量切换到第二B-VLAN后,所述第二LSP报文指示所述服务实例映射到第一B-VLAN和第二B-VLAN,并且发送者在第一B-VLAN中仅作为所述服务实例的组播接收节点且在第二B-VLAN中作为所述服务实例的组播源节点和组播接收节点;进一步用于报文接收单元502接收全所述服务实例的所有其它BEB设备发送的第二LSP报文后,向外发送第三LSP报文,所述第三LSP报文指示所述服务实例仅映射到第二B-VLAN,并且发送者仅在第二B-VLAN中作为所述服务实例的组播源节点和组播接收节点;
[0090] 所述报文接收单元502,进一步用于接收所述服务实例的其它各BEB设备发送的第二LSP报文。
[0091] 上述BEB设备中,
[0092] 报文发送单元501在向外发送第一LSP报文时,用于:生成一LSP报文,该LSP报文携带的ISID-ADDR-sub-TLV字段中:所述服务实例映射的B-VLAN包括第一B-VLAN和第二B-VLAN,第一B-VLAN对应的T标记和R标记均置位,且第二B-VLAN对应的T标记和R标记均置位;将该LSP报文作为第一LSP报文向外发送;
[0093] 报文发送单元501在向外发送所述第二LSP报文时,用于:生成一LSP报文,该LSP报文携带的ISID-ADDR-sub-TLV字段中:所述服务实例映射的B-VLAN包括第一B-VLAN和第二B-VLAN,第一B-VLAN对应的T标记置0、R标记置位,且第二B-VLAN对应的T标记和R标记均置位;将该LSP报文作为第二LSP报文向外发送;
[0094] 报文发送单元501在向外发送所述第三LSP报文时,用于:生成一LSP报文,该LSP报文携带的ISID-ADDR-sub-TLV字段中::所述服务实例映射的B-VLAN仅包括第二B-VLAN,且第二B-VLAN对应的T标记和R标记均置位;将该LSP报文作为第三LSP报文向外发送。
[0095] 上述BEB设备中,
[0096] 迁移等待定时器的超时时长采用以下公式计算:
[0097] T=D×P×K,其中,T为迁移等待定时器的超时时长;D为以本BEB设备为根节点的最短路径树SPT中,从根节点到叶子结点的最大跳数;P为SPB网络中LSP报文的发送周期;K为预设调整系数。
[0098] 在实际应用中,本发明实施例中用于实现M-in-M模式的SPB网络中的组播流量迁移方法和装置时,需要基于应用该方法和装置的BEB设备所具有的硬件架构来最终实现。
[0099] 图6为应用本发明实施例所基于的硬件架构示意图。如图6所示,本发明实施例中用于实现M-in-M模式的SPB网络中的组播流量迁移方法和装置所应用的BEB设备600的硬件架构包括:存储器610,处理器620,通信接口630,以及耦合存储器610、处理器620和通信接口630的互连机构640;其中,
[0100] 存储器610,用于存储本机配置的某一服务实例在组播流量迁移过程中计算出的在新的B-VLAN中的组播隧道信息。
[0101] 处理器620,通常为CPU,其中设置有报文接收单元,报文发送单元和迁移控制单元,报文接收单元用于通过通信接口接收所述服务实例的其它各BEB设备发送的第一LSP报文和第二LSP报文,报文发送单元用于通过通信接口向外发送第一LSP报文和第二LSP报文;迁移控制单元用于根据报文接收单元接收到的第一LSP报文、第二LSP报文执行组播隧道信息计算、迁移等待定时器的启动和超时判断、组播流量切换等相关处理。
[0102] 通信接口630负责将来自所述服务实例的其它各BEB设备的第一LSP报文、第二LSP报文交由报文接收单元处理,并将报文发送单元需要发送的第一LSP报文、第二LSP报文向外发送。
[0103] 基于上述硬件架构中的功能划分,即可明确本发明实施例中用于实现M-in-M模式的SPB网络中的组播流量迁移方法的相应步骤、以及装置的相应模块如何分布在上述硬件架构中。
[0104] 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。