用于抑制同链路冲突的方法和装置
技术领域
本发明涉及FCoE(FibreChannelOverEthernet,以太网承载光纤通道)技术,特别涉及用于抑制同链路冲突的方法和装置。
背景技术
FCoE技术是一种基于以太网运行FC(FibreChannel,光纤通道)协议族的技术。在FCoE系统中,例如服务器、存储设备等ENode(以太网节点)通过虚链路接入至FCF(FCoEForwarders,FCoE交换机)、再通过FCF连接至FC网络。
参见图1,ENode具有以太网接口、且ENode的以太网接口承载有VN(VirtualN,虚拟N节点)口,FCF同样具有以太网接口、且FCF的以太网接口承载有VFC(VirtualFC,虚拟光纤通道)口;ENode与FCF通过各自的以太网接口在以太层形成物理链路,且基于该物理链路,ENode的VN接口与FCF的VFC接口之间在FC层即可形成虚链路。
为了使ENode的VN接口与FCF的VFC接口之间的虚链路有效,需要ENode的VN接口与FCF的VFC接口通过交互FIP(FCoEInitializationProtocol,FCoE初始化协议)报文来实现VN接口向VFC接口的FLOGIN(注册)。具体说:
当FCF在其VFC接口识别出对端ENode的VN接口具有符合要求的ENode地址模式后,FCF需要在该VFC接口广播FIPDiscoveryAdvertisements(FIP发现通告)报文;
当ENode在其VN接口接收到了对端FCF的VFC接口发出的FIPDiscoveryAdvertisements报文后,ENode对该FIPDiscoveryAdvertisements报文进行MAXsize(最大长度)检查、并获取对应的MAC(MediaAccessControl,媒体接入控制)地址,然后,待MAXsize检查通过后,ENode通过该VN接口向对端FCF的VFC接口发送承载有FLOGI(光线通道注册)报文的VirtualLinkInstantiationRequest(虚链路实例化请求)报文;
当FCF在其VFC接口接收到对端ENode的VN接口发出的VirtualLinkInstantiationRequest报文后,FCF根据VirtualLinkInstantiationRequest报文中承载的FLOGI报文激活VFC接口、以使对端ENode的VN接口向该VFC接口成功FLOGIN;
此后,上述的VN接口与VFC接口之间的虚链路即变为有效,并且,为了维护对端ENode的VN接口FLOGIN的状态,FCF的VFC接口需要周期性地广播FIPDiscoveryAdvertisements报文。
在实际应用中,VN接口向VFC接口FLOGIN的上述过程通常要求ENode的VN接口与FCF的VFC接口之间采用如图2所示的点对点组网方式,即,每个VN接口所在的以太网接口仅与一个VFC接口所在的以太网接口存在物理连接。但是,由于在实际操作时的组网不当,现有技术中难以避免如图3所示的Transit(传递)交换机组网方式,即,一个VN接口所在的以太网接口通过Transit交换机与至少两个VFC接口所在的以太网接口存在物理连接,此时,就会导致至少两个VFC接口针对同一个VN接口的虚链路产生同链路冲突。
在如图3所示的Transit交换机组网方式下,至少两个VFC接口均会广播FIPDiscoveryAdvertisements报文,相应地,ENode的VN接口就会交替地收到不同VFC接口广播的FIPDiscoveryAdvertisements报文、并交替地向不同的VFC接口FLOGIN。从而,由于至少两个VFC接口针对同一个VN接口的虚链路产生同链路冲突,因而使得同一个VN接口的虚链路在至少两个VFC接口之间的反复切换,从而导致虚链路的震荡。
此外,参见图4,在FCoE系统中,VFC之间也会存在用于彼此互连的虚链路,即,任意两台FCF之间通过各自的以太网接口在以太层形成物理链路,且基于该物理链路,这两台FCF的VFC接口之间在FC层也可形成虚链路。
为了使FCF的VFC接口之间的虚链路有效,同样需要彼此互连的FCF的VFC接口之间通过交互FIP报文来实现VFC接口之间的协商。具体说:
当任意一端的FCF在其VFC接口发现了对端VFC接口之后,该FCF需要在该VFC接口广播FIPDiscoveryAdvertisements报文;
当另一端的FCF在其VFC接口接收到了对端VFC接口发出的FIPDiscoveryAdvertisements报文后,会发起与对端VFC接口之间的ELP(ExchangeLinkParameters,链路参数交换)协商、ESC(ExchangeSwitchCapabilities,交换机能力交换)协商、EVFP(ExchangeVirtualFabricsParameters,虚拟光纤参数交换)协商;
当上述协商完成之后,两端FCF的VFC接口之间的虚链路即变为有效,并且,为了维护与对端VFC接口协商成功的状态,两端FCF的VFC接口均需要周期性地广播FIPDiscoveryAdvertisements报文。
同样地,若由于组网不当而导致至少两个VFC接口通过与Transit交换机具有类似特性的交换设备与同一个位于对端的VFC接口存在物理连接,则至少两个VFC接口也会产生同链路冲突,从而导致虚链路的震荡。
可见,对于FCF的每个VFC接口来说,无论其对端是ENode的VN接口还是其他FCF的VFC接口,均有可能产生同链路冲突。
发明内容
有鉴于此,本发明提供了一种用于抑制同链路冲突的方法和装置。
本发明提供的一种用于抑制同链路冲突的方法,该方法应用于FCF中、并包括:
a00、当有VFC接口变为Up状态后,在该VFC接口广播FIP发现通告报文;其中,在任意VFC接口广播的FIP发现通告报文中均携带有该VFC接口的唯一标识;
a10、当有VFC接口接收到FIP发现通告报文后,将FIP发现通告报文中的唯一标识与该VFC接口的唯一标识进行优先级的比对,若前者的优先级低于后者的优先级,则进入步骤a11,否则进入步骤a12;
a11、在该VFC接口处于Up状态、且尚未建立有效的虚链路时,为该VFC接口建立有效的虚链路、并开始在该VFC接口周期性地广播所述FIP发现通告报文;
a12、在该VFC接口处于Up状态时将该VFC接口置为仅能够接收报文的临界状态、并为该VFC接口创建对应的抑制定时器并计时,在该VFC接口处于所述临界状态时复位该VFC接口对应的抑制定时器;其中,待抑制定时器超时后,该抑制定时器对应的VFC接口将被置为Up状态、且该抑制定时器将被删除。
本发明提供的另一种用于抑制同链路冲突的方法,该方法应用于FCF中、并包括:
a00、当有VFC接口变为Up状态后,在该VFC接口广播FIP发现通告报文;其中,在任意VFC接口广播的FIP发现通告报文中均携带有该VFC接口的唯一标识、以及表示该VFC接口是否已建立有效的虚链路的链路有效性标识;
b10、当有VFC接口接收到FIP发现通告报文后,识别FIP发现通告报文中的链路有效性标识,若链路有效性标识为表示未建立有效的虚链路的无效值,则进入步骤a10,否则进入步骤a12;
a10、将FIP发现通告报文中的唯一标识与该VFC接口的唯一标识进行优先级的比对,若前者的优先级低于后者的优先级,则进入步骤a11,否则进入步骤a12;
a11、在该VFC接口处于Up状态、且尚未建立有效的虚链路时,为该VFC接口建立有效的虚链路、并开始在该VFC接口周期性地广播所述FIP发现通告报文;
a12、在该VFC接口处于Up状态时将该VFC接口置为仅能够接收报文的临界状态、并为该VFC接口创建对应的抑制定时器并计时,在该VFC接口处于所述临界状态时复位该VFC接口对应的抑制定时器;其中,待抑制定时器超时后,该抑制定时器对应的VFC接口将被置为Up状态、且该抑制定时器将被删除。
本发明提供的又一种用于抑制同链路冲突的方法,该方法应用于FCF中、并包括:
a00、当有VFC接口变为Up状态后,在该VFC接口广播FIP发现通告报文;其中,在任意VFC接口广播的FIP发现通告报文中均携带有该VFC接口的唯一标识、以及表示该VFC接口是否已建立有效的虚链路的链路有效性标识;
a10、当有VFC接口接收到FIP发现通告报文后,将FIP发现通告报文中的唯一标识与该VFC接口的唯一标识进行优先级的比对,若前者的优先级低于后者的优先级,则进入步骤c10,否则进入步骤a12;
c10、识别所述FIP发现通告报文中的链路有效性标识,若链路有效性标识为表示未建立有效的虚链路的无效值,则进入步骤a11,否则进入步骤a12;
a11、在该VFC接口处于Up状态、且尚未建立有效的虚链路时,为该VFC接口建立有效的虚链路、并开始在该VFC接口周期性地广播所述FIP发现通告报文;
a12、在该VFC接口处于Up状态时将该VFC接口置为仅能够接收报文的临界状态、并为该VFC接口创建对应的抑制定时器并计时,在该VFC接口处于所述临界状态时复位该VFC接口对应的抑制定时器;其中,待抑制定时器超时后,该抑制定时器对应的VFC接口将被置为Up状态、且该抑制定时器将被删除。
在上述的第一种方法中,所述FIP发现通告报文中具有唯一标识描述符;步骤a00和步骤a11在任意VFC接口广播的FIP发现通告报文中所携带的该VFC接口的唯一标识,携带于所述唯一标识描述符中。
在上述的第二、三种方法中,所述FIP发现通告报文中具有唯一标识描述符和链路状态描述符;步骤a00和步骤a11在任意VFC接口广播的FIP发现通告报文中所携带的该VFC接口的唯一标识,携带于所述唯一标识描述符中;步骤a00和步骤a11在任意VFC接口广播的FIP发现通告报文中所携带该VFC接口的链路有效性标识,携带于所述链路状态描述符中。
在上述的第一、二、三种方法中,所述步骤a11中,为该VFC接口建立有效的虚链路后,进一步为该VFC接口创建用于被虚链路对端复位的保活定时器、并记录该VFC接口接收到的所述FIP发现通告报文中的唯一标识;其中,待保活定时器超时后,该保活定时器对应的VFC接口将被置为临界状态或Down状态、且该保活定时器将被删除,以及,所记录的一个唯一标识对应的VFC接口将被置为Up状态。
其中,步骤a11以FKA值为周期广播的所述FIP发现通告报文,抑制定时器和保活定时器的时长均大于FKA值。
在上述三种方法中,唯一标识为WWN,且WWN越大、优先级越高。
本发明提供的一种用于抑制同链路冲突的装置,该装置应用于FCF中、并包括:
初始通告模块,当有VFC接口变为Up状态后,在该VFC接口广播FIP发现通告报文;其中,在任意VFC接口广播的FIP发现通告报文中均携带有该VFC接口的唯一标识;
接口选举模块,当有VFC接口接收到FIP发现通告报文后,将FIP发现通告报文中的唯一标识与该VFC接口的唯一标识进行优先级的比对,若前者的优先级低于后者的优先级,则触发维护通告模块,否则触发接口抑制模块;
维护通告模块,在该VFC接口处于Up状态、且尚未建立有效的虚链路时,为该VFC接口建立有效的虚链路、并开始在该VFC接口周期性地广播FIP发现通告报文;
接口抑制模块,在该VFC接口处于Up状态时将该VFC接口置为仅能够接收报文的临界状态、并为该VFC接口创建对应的抑制定时器并计时,在该VFC接口处于所述临界状态时复位该VFC接口对应的抑制定时器;其中,待抑制定时器超时后,该抑制定时器对应的VFC接口将被置为Up状态、且该抑制定时器将被删除。
本发明提供的另一种用于抑制同链路冲突的装置,该装置应用于FCF中、并包括:
初始通告模块,当有VFC接口变为Up状态后,在该VFC接口广播FIP发现通告报文;其中,在任意VFC接口广播的FIP发现通告报文中均携带有该VFC接口的唯一标识、以及表示该VFC接口是否已建立有效的虚链路的链路有效性标识;
状态识别模块,当本机有VFC接口接收到FIP发现通告报文后,识别FIP发现通告报文中的链路有效性标识,若链路有效性标识为表示未建立有效的虚链路的无效值,则触发接口选举模块,否则触发接口抑制模块;
接口选举模块,将接收到的所述FIP发现通告报文中的唯一标识与该VFC接口的唯一标识进行优先级的比对,若前者的优先级低于后者的优先级,则触发维护通告模块,否则触发接口抑制模块;
维护通告模块,在该VFC接口处于Up状态、且尚未建立有效的虚链路时,为该VFC接口建立有效的虚链路、并开始在该VFC接口周期性地广播FIP发现通告报文;
接口抑制模块,在该VFC接口处于Up状态时将该VFC接口置为仅能够接收报文的临界状态、并为该VFC接口创建对应的抑制定时器并计时,在该VFC接口处于所述临界状态时复位该VFC接口对应的抑制定时器;其中,待抑制定时器超时后,该抑制定时器对应的VFC接口将被置为Up状态、且该抑制定时器将被删除。
本发明提供的又一种用于抑制同链路冲突的装置,该装置应用于FCF中、并包括:
初始通告模块,当有VFC接口变为Up状态后,在该VFC接口广播FIP发现通告报文;其中,在任意VFC接口广播的FIP发现通告报文中均携带有该VFC接口的唯一标识、以及表示该VFC接口是否已建立有效的虚链路的链路有效性标识;
接口选举模块,当本机有VFC接口接收到FIP发现通告报文后,将FIP发现通告报文中的唯一标识与该VFC接口的唯一标识进行优先级的比对,若前者的优先级低于后者的优先级,则触发状态识别模块,否则触发接口抑制模块;
状态识别模块,识别所述FIP发现通告报文中的链路有效性标识,若链路有效性标识为表示未建立有效的虚链路的无效值,则触发维护通告模块,否则触发接口抑制模块;
维护通告模块,在该VFC接口处于Up状态、且尚未建立有效的虚链路时,为该VFC接口建立有效的虚链路、并开始在该VFC接口周期性地广播FIP发现通告报文;
接口抑制模块,在该VFC接口处于Up状态时将该VFC接口置为仅能够接收报文的临界状态、并为该VFC接口创建对应的抑制定时器并计时,在该VFC接口处于所述临界状态时复位该VFC接口对应的抑制定时器;其中,待抑制定时器超时后,该抑制定时器对应的VFC接口将被置为Up状态、且该抑制定时器将被删除。
在上述的第一种装置中,所述FIP发现通告报文中具有唯一标识描述符;初始通告模块和维护通告模块在任意VFC接口广播的FIP发现通告报文中所携带的该VFC接口的唯一标识,携带于所述唯一标识描述符中。
在上述的第二、三种装置中,所述FIP发现通告报文中具有唯一标识描述符和链路状态描述符;初始通告模块和维护通告模块在任意VFC接口广播的FIP发现通告报文中所携带的该VFC接口的唯一标识,携带于所述唯一标识描述符中;初始通告模块和维护通告模块在任意VFC接口广播的FIP发现通告报文中所携带该VFC接口的链路有效性标识,携带于所述链路状态描述符中。
在上述的第一、二、三种装置中,维护通告模块为该VFC接口建立有效的虚链路后,进一步为该VFC接口创建用于被虚链路对端复位的保活定时器、并记录该VFC接口接收到的所述FIP发现通告报文中的唯一标识;其中,待保活定时器超时后,该保活定时器对应的VFC接口将被置为临界状态或Down状态、且该保活定时器将被删除,以及,所记录的一个唯一标识对应的VFC接口将被置为Up状态。
其中,维护通告模块以FKA值为周期广播的所述FIP发现通告报文,抑制定时器和保活定时器的时长均大于FKA值。
在上述三种装置中,唯一标识为WWN,且WWN越大、优先级越高。
由此可见,基于本发明所提供的技术方案,FCF能够利用FIP发现通告报文将每个VFC接口的唯一标识向外通告。因此,当存在至少两个VFC接口与同一个对端互连的情况时,其中的每个VFC接口即可基于上述的通告而获知其他VFC接口的唯一标识、并通过唯一标识的优先级比对来实现针对同一个对端的虚链路掌控权的选举,从而,仅有选举出的一个VFC接口能够与对端建立有效的虚链路、而其他VFC接口则会被抑制,而且,选举出的VFC接口在与对端建立有效的虚链路之后,还能够通过向其他VFC接口的通告而持续对其他VFC接口的抑制,进而就能够在选举完成之后立即抑制同链路冲突。
而且,基于本发明所提供的技术方案,FCF还能够利用FIP发现通告报文,进一步将每个VFC接口的是否已建立有效虚链路的状态向外通告。因此,当存在至少两个VFC接口与同一个对端互连的情况时,其中的每个VFC接口还能够获知其他VFC接口是否已建立有效虚链路、并可以仅在其它VFC接口均未建立有效虚链路时再实现选举,从而,就能够在已经通过选举建立虚链路之后尽可能地减少无谓地重选举,进而就能够减少由于选举所导致的虚链路震荡。
附图说明
图1为现有技术中位于ENode与FCF之间的虚链路示意图;
图2为现有技术中的点对点组网方式示意图;
图3为现有技术中的Transit交换机组网方式示意图;
图4为现有技术中位于FCF之间的虚链路示意图;
图5为本发明实施例一中所使用的唯一标识描述符的示意图;
图6为基于本发明实施例一中抑制同链路冲突的原理性所实现的一实例示意图;
图7为本发明实施例一中用于抑制通链路冲突的方法流程示意图;
图8为本发明实施例一中用于抑制通链路冲突的装置结构示意图;
图9为本发明实施例二中所使用的链路有效性描述符的示意图;
图10为基于本发明实施例二中抑制同链路冲突的原理性所实现的一实例示意图;
图11为本发明实施例二中用于抑制通链路冲突的方法流程示意图;
图12为本发明实施例二中用于抑制通链路冲突的装置结构示意图;
图13为本发明实施例三中用于抑制通链路冲突的方法流程示意图;
图14为本发明实施例三中用于抑制通链路冲突的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
实施例一
如背景技术部分所述,VFC接口在与对端建立有效的虚链路之前,都会向对端广播FIPDiscoveryAdvertisements报文;而且,与对端建立有效的虚链路的VFC接口还会为了保活有效的虚链路而向对端广播FIPDiscoveryAdvertisements报文。
由此可知,当存在至少两个VFC接口由于与同一个对端互连而发生同链路冲突的情况时,其中的每个VFC接口所广播的FIPDiscoveryAdvertisements报文不但能够被对端接收到,同样还能够被与其发生同链路冲突的其他VFC接口接收到。
因此,本实施例在任意VFC接口广播的FIPDiscoveryAdvertisements报文中均携带该VFC接口的唯一标识,以使得发生同链路冲突的各VFC接口能够通过FIPDiscoveryAdvertisements报文来彼此通告各自的唯一标识。其中,本文所使用的唯一标识,可以是WWN(WorldWideName,全球唯一标识),也可以是接口名,或者可以确保区分不同VFC接口的其他标识。
实际应用中,为了在FIPDiscoveryAdvertisements报文中携带唯一标识,本实施例可以在FIPDiscoveryAdvertisements报文中增加一种唯一标识描述符。如图5所示,该唯一标识描述符包括:
表示该描述符为唯一标识描述符的Type(类型)字段,其可以为1字节;
表示该描述符长度的Length(长度)字段,其可以为1字节;
用于后续扩展的Reserved(保留)字段,其可以为2字节;
以及,用于携带唯一标识的唯一标识字段,其可以为4的整数倍字节、例如8字节。
此外,本实施例还在发生同链路冲突的每个VFC接口进行唯一标识的优先级比对,以使得发生同链路冲突的各VFC接口能够通过唯一标识的优先级比对来实现对同链路掌控权的选举。其中,本文所述的优先级并不是指VFC接口的优先级,而是指按照预定规则而为唯一标识设定的优先级。若采用WWN作为唯一标识,则可以设定WWN越大、唯一标识的优先级越高;若采用接口名(例如为VFC接口分配的数字编号)作为唯一标识,则可以设定接口名越小、唯一标识的优先级越高。
从而,当存在至少两个VFC接口由于与同一个对端互连而发生同链路冲突的情况时,仅有选举出的一个VFC接口能够与对端建立有效的虚链路、而其他VFC接口则会被抑制;而且,选举出的VFC接口在与对端建立有效的虚链路之后,还能够通过FIPDiscoveryAdvertisements报文向其他VFC接口周期性通告而持续对其他VFC接口的抑制。
进而,本实施例就能够在选举完成之后立即抑制同链路冲突。
图6为基于本发明实施例一中抑制同链路冲突的原理性所实现的一实例示意图。如图6所示,以VFC接口VFC1和VFC2与同一个VD接口互连、唯一标识为WWN为例。
当VFC1和VFC2在创建后变为Up(有效)状态之后,在VFC1广播带有其唯一标识WWN1的FIPDiscoveryAdvertisements报文、并在VFC2广播带有其唯一标识WWN2的FIPDiscoveryAdvertisements报文。
VFC1广播的FIPDiscoveryAdvertisements报文不但能被VN接口接收到,还能够被VFC2接收到;同理,VFC2广播的FIPDiscoveryAdvertisements报文不但能被VN接口接收到,还能够被VFC1接收到。
当VFC1接收到了VFC2广播的FIPDiscoveryAdvertisements报文后,将该FIPDiscoveryAdvertisements报文中的WWN2与其自身的唯一标识WWN1进行优先级的比对;同理,当VFC2接收到了VFC1广播的FIP发现通告报文后,将该FIPDiscoveryAdvertisements报文中的WWN1与其自身的唯一标识WWN2进行优先级的比对。
假设通过比对判断出WWN2大于WWN1,即,表示WWN2的优先级高于WWN1,则此时:
处于Up状态的VFC1即可被置为Attemp(临界)状态、并对应地创建一抑制定时器并计时,其中,Attemp状态介于Up状态和Down状态之间、且处于Attemp状态的VFC接口仅能够接收报文而不能发出报文;
而处于Up状态、且尚未建立有效的虚链路的VFC2则可被对端的VN接口FLOGIN、以建立有效的虚链路,而且,还可以在VFC2开始周期性地广播FIPDiscoveryAdvertisements报文、以保活有效的虚链路;其中,按照协议规定,通常以FKA(FIPKeepAlive,FIP保活)值为周期来广播FIPDiscoveryAdvertisements报文,并且,VFC2可以按照现有方式创建一保活定时器并计时、并利用对端VN接口针对FIPDiscoveryAdvertisements报文所回应的FKA报文来复位该保活定时器以重新计时,保活定时器的时长大于FKA值(例如2.5倍的FKA值)。
从而,即可确保仅有VFC2能够与对端的VN接口建立有效的虚链路,而VFC1则在Attemp状态下被抑制。
此后,每当VFC1接收到VFC2周期性广播的FIPDiscoveryAdvertisements报文后,均会由于判断出WWN2大于WWN1而复位VFC1的抑制定时器以重新计时。
从而,即可确保VFC1在VFC2所建立虚链路有效的期间内,持续保持在被抑制的Attemp状态。
待VFC2发生故障并导致VFC2无法周期性广播FIPDiscoveryAdvertisements报文、或待VFC2建立的虚链路发生故障而导致VFC2周期性广播的FIPDiscoveryAdvertisements报文无法被正常传输后,不但会使得VFC2建立的虚链路无法如期保活(导致保活定时器超时),还会使得VFC1的抑制定时器超时。那么,待VFC1的抑制定时器超时后,VFC1即可被恢复为Up状态、并按照上述过程再次执行选举,且VFC1的抑制定时器也会被删除,而VFC2可以被置为Attemp状态继续参与选举、或被置为Down(无效)状态并弃用。
需要说明的是,上述的VFC1和VFC2位于同一台FCF;以及,当VFC1和VFC2的对端为其他VFC接口时,除了建立和维护有效的虚链路的方式略有不同之外,对于VFC1和VFC2的其他处理方式不变。
其中,在有VFC接口已建立的虚链路无法如期保活之后,为其他VFC接口所创建的抑制定时器有可能不会立即超时、而是会等待一段时间才超时,这样,就会导致FCF与其对端在等待的期间内无法通信。
为了避免上述情况的出现,本实施例还可以将选举出的一个VFC接口接收到的FIPDiscoveryAdvertisements报文中的唯一标识,记录为备选VFC接口的唯一标识;当选举出的VFC接口所建立的虚链路无法如期保活(导致保活定时器超时)时,可以立即依据所记录的唯一标识(可以仅记录最先获知或优先级相对最高的一个、也可以记录多个并从中选取优先级相对最高的一个)查找到备选的VFC接口,若备选的VFC接口此时处于Attemp状态,则将备选的VFC接口置为Up状态,以使得被抑制的VFC接口能够尽快接替选举出的VFC接口建立有效的虚链路。
例如,在如图6所示的实例中,VFC2可以在比对出其唯一标识WWN2大于VFC1的唯一标识WWN1之后,将WWN1记录为备选VFC接口的唯一标识;VFC2还可以在其保活定时器超时后直接触发VFC1变为Up状态,从而使VFC1无需等待其抑制定时器超时后再被置为Up状态。
这样,不但能够消除在有效的虚链路无法保活后的等待时间,还有可能避免再次的选举,从而能够缩短FCF与其对端的通信中断时间。
基于上述原理,本实施例提供了一种用于抑制同链路冲突的方法、以及一种用于抑制同链路冲突的装置。
图7为本发明实施例一中用于抑制通链路冲突的方法流程示意图。如图7所示,该方法应用于FCF、并包括:
步骤700,当有VFC接口变为Up状态(该VFC接口被创建或该VFC接口从Attemp状态恢复为Up状态)后,在该VFC接口广播FIPDiscoveryAdvertisements报文;其中,在任意VFC接口广播的FIPDiscoveryAdvertisements报文中均携带有该VFC接口的唯一标识。
步骤710,当有VFC接口接收到了FIPDiscoveryAdvertisements报文后,将接收到的FIPDiscoveryAdvertisements报文中的唯一标识与该VFC接口的唯一标识进行优先级的比对;
若步骤710判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级低于该VFC接口的唯一标识,则触发步骤711;
若步骤710判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级高于该VFC接口的唯一标识,则触发步骤712;
实际应用中,有可能由于组网时形成环路而导致VFC接口接收到由其自身发送的FIPDiscoveryAdvertisements报文,此时,FIPDiscoveryAdvertisements报文中的唯一标识就与该VFC接口的唯一标识完全相同、优先级自然也相同,对于这种特殊情况,即步骤710判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级与该VFC接口的唯一标识相同,只需将该FIPDiscoveryAdvertisements报文丢弃即可。
步骤711,在该VFC接口处于Up状态、且尚未建立有效的虚链路时,为该VFC接口建立有效的虚链路、并开始在该VFC接口周期性地广播FIPDiscoveryAdvertisements报文,然后等待在步骤710再次执行时被触发、或步骤720由于有效的虚链路无法保活而被触发;其中,本步骤在任意VFC接口广播的FIPDiscoveryAdvertisements报文中同样携带有该VFC接口的唯一标识。
需要说明的是,若步骤710判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级低于该VFC接口的唯一标识,则有可能出现如下三种情况:
该VFC接口处于Up状态、且尚未建立有效的虚链路;
该VFC接口处于Up状态、且已经建立有效的虚链路;
该VFC接口处于Attemp状态。
其中,在该VFC接口处于Up状态、且尚未建立有效的虚链路时,即表示该VFC接口正在参与接口选举,此时即可执行步骤711;在VFC接口处于Up状态、且已建立有效的虚链路时,即表示该VFC接口已经过选举建立虚链路之后又有优先级相对低的VFC接口加入并产生冲突;在该VFC接口处于Attemp状态时,即表示该VFC接口已经过选举而被抑制之后又有尚未完成选举、或优先级相对低的VFC接口加入并产生冲突,对于后两种情况,只需保持该VFC接口的当前状态,并等待在步骤710再次执行时被触发、或步骤720由于有效的虚链路无法保活而被触发即可。
步骤712,在该VFC接口处于Up状态时将该VFC接口置为Attemp状态、并为该VFC接口创建对应的抑制定时器并计时,或在该VFC接口处于Attemp状态时复位该VFC接口对应的抑制定时器,然后等待在步骤710再次执行时被触发、或步骤720由于有效的虚链路无法保活而被触发。
需要说明的是,若步骤710判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级高于该VFC接口的唯一标识,则有可能出现如下三种情况:
该VFC接口处于Up状态、且尚未建立有效的虚链路;
该VFC接口处于Up状态、且已经建立有效的虚链路;
该VFC接口处于Attemp状态。
其中,在该VFC接口处于Up状态、且尚未建立有效的虚链路时,即表示该VFC接口正在参与接口选举;在VFC接口处于Up状态、且已建立有效的虚链路时,即表示该VFC接口已经过选举建立虚链路之后又发现优先级相对高的VFC接口,对于这两种情况,均需要通过步骤712来抑制;而在该VFC接口处于Attemp状态时,即表示该VFC接口已经过选举而被抑制之后被高优先级的VFC接口持续抑制、或又发现优先级相对高的VFC接口,此时,只需要通过步骤712来复位抑制定时器即可。
步骤720,当有抑制定时器超时后,将该抑制定时器对应的VFC接口置为Up状态、并删除该抑制定时器,然后即可针对该抑制定时器对应的VFC接口返回步骤700。
至此,本流程结束。
此外,为了在已建立的有效虚链路未能如期保活之后,尽可能地缩短FCF与其对端的通信中断时间,在如图7所示的方法中:
若步骤710判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级低于该VFC接口的唯一标识,则可以进一步触发步骤730;
步骤730,在步骤711为该VFC接口建立有效的虚链路后,为该VFC接口创建用于被虚链路对端复位的保活定时器、并记录该VFC接口接收到的FIPDiscoveryAdvertisements中的唯一标识,然后等待步骤740在有效的虚链路无法被保活(保活定时器超时)时被触发;或者,步骤730中的处理过程也可合并至步骤711执行;
步骤740,当保活定时器超时后,将该保活定时器对应的VFC接口置为临界状态或Down状态、并删除该保活定时器,以及,若所记录的一个唯一标识对应的VFC接口此时处于Attemp状态,则将所记录的一个唯一标识对应的VFC接口置为Up状态,然后即可针对该保活定时器对应的VFC接口返回步骤700。
图8为本发明实施例一中用于抑制通链路冲突的装置结构示意图。如图8所示,该装置应用于FCF、并包括:
初始通告模块,当有VFC接口变为Up状态(该VFC接口被创建或该VFC接口从Attemp状态恢复为Up状态)后,在该VFC接口广播FIPDiscoveryAdvertisements报文;其中,初始通告模块在任意VFC接口广播的FIPDiscoveryAdvertisements报文中均携带有该VFC接口的唯一标识。
接口选举模块,当有VFC接口接收到了FIPDiscoveryAdvertisements报文后,将接收到的FIPDiscoveryAdvertisements报文中的唯一标识与该VFC接口的唯一标识进行优先级的比对;
若接口选举判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级低于该VFC接口的唯一标识,则触发维护通告模块;
若接口选举模块判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级高于该VFC接口的唯一标识,则触发接口抑制模块;
实际应用中,有可能由于组网时形成环路而导致VFC接口接收到由其自身发送的FIPDiscoveryAdvertisements报文,此时,FIPDiscoveryAdvertisements报文中的唯一标识就与该VFC接口的唯一标识完全相同、优先级自然也相同,对于这种特殊情况,即接口选举模块判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级与该VFC接口的唯一标识相同,只需将该FIPDiscoveryAdvertisements报文丢弃即可。
维护通告模块,在该VFC接口处于Up状态、且尚未建立有效的虚链路时,为该VFC接口建立有效的虚链路、并开始在该VFC接口周期性地广播FIPDiscoveryAdvertisements报文,然后等待被接口选举模块触发、或抑制超时模块由于有效的虚链路无法保活而被触发;其中,维护通告模块在任意VFC接口广播的FIPDiscoveryAdvertisements报文中同样携带有该VFC接口的唯一标识。另外,在VFC接口处于Up状态、且已建立有效的虚链路时,以及,在该VFC接口处于Attemp状态时,则只需保持该VFC接口的当前状态,并等待被接口选举模块触发、或抑制超时模块由于有效的虚链路无法保活而被触发即可。
接口抑制模块,若接口选举模块判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级高于该VFC接口的唯一标识,则在该VFC接口处于Up状态时将该VFC接口置为Attemp状态、并为该VFC接口创建对应的抑制定时器并计时,或在该VFC接口处于Attemp状态时复位该VFC接口对应的抑制定时器,然后等待被接口选举模块触发、或抑制超时模块由于有效的虚链路无法保活而被触发。
抑制超时模块,当有抑制定时器超时后,将该抑制定时器对应的VFC接口置为Up状态、并删除该抑制定时器,然后即可针对该抑制定时器对应的VFC接口重新触发初始通告模块。
此外,为了在已建立的有效虚链路未能如期保活之后,尽可能地缩短FCF与其对端的通信中断时间,在如图8所示的装置中:
备选维护模块,若接口选举模块判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级低于该VFC接口的唯一标识,则在维护通告模块为该VFC接口建立有效的虚链路后,为该VFC接口创建用于被虚链路对端复位的保活定时器、并记录该VFC接口接收到的FIPDiscoveryAdvertisements报文中的唯一标识,然后等待备选切换模块在有效的虚链路无法被保活(保活定时器超时)时被触发;或者,备选维护模块的功能也可以集成在维护通告模块中;
备选切换模块,当保活定时器超时后,将该保活定时器对应的VFC接口置为临界状态或Down状态、并删除该保活定时器,以及,若所记录的一个唯一标识对应的VFC接口此时处于Attemp状态,则将所记录的一个唯一标识对应的VFC接口置为Up状态,然后即可针对该保活定时器对应的VFC接口再次触发初始通告模块。
实施例二
在实际应用中,每台FCF中有可能会不断地新创建VFC接口,并且,新创建的VFC接口势必会广播带有其唯一标识的FIPDiscoveryAdvertisements报文。
因此,当已经存在的至少两个VFC接口由于与同一个对端互连而发生同链路冲突的情况时,若新创建的VFC接口也同样地与该对端互连、并与已经存在至少两个VFC接口产生同链路冲突,则在新创建的VFC接口广播的FIPDiscoveryAdvertisements报文势必会导致各VFC接口的重新选举。尤其是,若新创建的VFC接口的唯一标识比已建立有效虚链路的VFC接口的唯一标识具有更高的优先级,则会导致虚链路震荡。
为了避免上述情况的出现,本实施例在实施例一的基础上,对通过唯一标识的优先级比对所实现的接口选举增加了一个限制条件。具体说:
本实施例在任意VFC接口广播的FIPDiscoveryAdvertisements报文中,均进一步携带表示该VFC接口是否已建立有效的虚链路的链路有效性标识。
实际应用中,为了在FIPDiscoveryAdvertisements报文中携带链路有效性标识,本实施例在FIPDiscoveryAdvertisements报文中增加了一种链路状态描述符。如图9所示,该链路状态描述符包括:
表示该描述符为链路状态描述符的Type字段,其可以为1字节;
表示该描述符长度的Length字段,其可以为1字节;
用于后续扩展的Reserved字段,其可以为2字节;
以及,用于携带链路有效性标识的链路有效性标识字段,其可以为4的整数倍字节、例如8字节。
或者,本实施例也可以将链路有效性标识携带在如图5所示的唯一标识描述符的Reserved字段中。
此外,在本实施例中,每个VFC接口在通过链路有效性标识获知没有与其冲突的其他VFC接口已建立有效的虚链路时,才会通过唯一标识的优先级比对来实现接口选举,而当每个VFC接口在通过链路有效性标识获知与其冲突的其他VFC接口已建立有效的虚链路时,则无需通过接口选举即使该VFC接口被抑制。
尤其是,新创建的VFC接口通常需要经过一些其它处理后才会首次发出FIPDiscoveryAdvertisements报文,因此,在新创建的VFC接口首次发出FIPDiscoveryAdvertisements报文之前,其极有可能接收到已通过选举而建立有效虚链路的VFC接口周期性广播的FIPDiscoveryAdvertisements报文,此时,即可使新创建的VFC接口在首次发出FIPDiscoveryAdvertisements报文之前就被抑制。
从而,当存在至少两个VFC接口与同一个对端互连而发生同链路冲突的情况时,其中的每个VFC接口还能够获知发生冲突的其他VFC接口是否已建立有效虚链路、并可以仅在发生冲突的其它VFC接口均未建立有效虚链路时触发选举,以在已经通过选举建立虚链路之后尽可能减少无谓地重选举。
进而就能够减少由于反复选举所导致的虚链路震荡。
图10为基于本发明实施例二中抑制同链路冲突的原理性所实现的一实例示意图。如图10所示,在基于如图6所示的实例而选举出VFC2建立有效的虚链路、并使VFC1被抑制之后又新创建了VFC3,并且VFC3和VFC1以及VFC2与同一个VN接口互连、VFC3的唯一标识WWN3大于VFC2的唯一标识WWN2。
当VFC3在创建后变为Up状态之后,由于其需要先识别出对端ENode的VN接口是否具有符合要求的ENode地址模式,因此,在VFC3发出FIPDiscoveryAdvertisements报文之前,即收到了VFC2周期性广播的FIPDiscoveryAdvertisements报文;
由于VFC2周期性广播的FIPDiscoveryAdvertisements报文中不但携带有VFC2的唯一标识WWN2,还携带有链路有效性标识、且该链路有效性标识为表示VFC2已建立有效的虚链路的有效值,因此,即便VFC3的唯一标识WWN3大于VFC2的唯一标识WWN2,但VFC3也会在不进行优先级比对的情况下而被置为Attemp状态、并对应地创建一抑制定时器;
与此同时,VFC1也会由于接收到VFC2周期性广播的FIPDiscoveryAdvertisements报文中携带的链路有效性标识为有效值而复位VFC1的抑制定时器。
此后,每当VFC1和VFC3接收到VFC2周期性广播的FIPDiscoveryAdvertisements报文后,均会由于携带的链路有效性标识为有效值而复位VFC1和VFC3的抑制定时器。
从而,不但能够确保VFC1在VFC2所建立虚链路有效的期间内持续保持在被抑制的Attemp状态,而且还能够避免唯一标识优先级更高的VFC3在创建后触发重选举。
与如图6所示的实例同理,待VFC2建立的虚链路无法如期保活(导致保活定时器超时)后,还会使得VFC1和VFC3的抑制定时器超时。那么,待VFC1和VFC3的抑制定时器超时后,VFC1和VFC3均可被恢复为Up状态、并按照上述过程再次执行选举,且VFC1和VFC3的抑制定时器也会被删除,而VFC2可以被置为Attemp状态继续参与选举、或被置为Down状态并弃用。
需要说明的是,上述的VFC1和VFC2以及VFC3位于同一台FCF;以及,当VFC1和VFC2以及VFC3的对端为其他VFC接口时,除了建立和维护有效的虚链路的方式略有不同之外,对于VFC1和VFC2以及VFC3的其他处理方式不变。
此外,与实施例一同理,本实施例也可以将选举出的一个VFC接口接收到的FIPDiscoveryAdvertisements报文中的唯一标识,记录为备选VFC接口的唯一标识;当选举出的VFC接口所建立的虚链路无法如期保活(导致保活定时器超时)时,可以立即依据所记录的唯一标识(可以仅记录最先获知或优先级相对最高的一个、也可以记录多个并从中选取优先级相对最高的一个)查找到备选的VFC接口,若备选的VFC接口此时处于Attemp状态,则将备选的VFC接口置为Up状态,以使得被抑制的VFC接口能够尽快接替选举出的VFC接口建立有效的虚链路。
基于上述原理,本实施例提供了一种用于抑制同链路冲突的方法、以及一种用于抑制同链路冲突的装置。
图11为本发明实施例二中用于抑制通链路冲突的方法流程示意图。如图11所示,该方法应用于FCF、并包括:
步骤1100,当有VFC接口变为Up状态(该VFC接口被创建或该VFC接口从Attemp状态恢复为Up状态)后,在该VFC接口广播FIPDiscoveryAdvertisements报文;其中,在任意VFC接口广播的FIPDiscoveryAdvertisements报文中均携带有该VFC接口的唯一标识、以及表示该VFC接口是否已建立有效虚链路的链路有效性标识。
步骤1110,当有VFC接口接收到了FIPDiscoveryAdvertisements报文后,识别FIPDiscoveryAdvertisements报文中的链路有效性标识;
若步骤1110识别出FIPDiscoveryAdvertisements中的链路有效性标识为无效值,则触发步骤1120;
若步骤1110识别出FIPDiscoveryAdvertisements中的链路有效性标识为有效值,则1122。
步骤1120,将接收到的所述FIP发现通告报文中的唯一标识与该VFC接口的唯一标识进行优先级的比对;
若步骤1120判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级低于该VFC接口的唯一标识,则触发步骤1121;
若步骤1120判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级高于该VFC接口的唯一标识,则触发步骤1122;
实际应用中,有可能由于组网时形成环路而导致VFC接口接收到由其自身发送的FIPDiscoveryAdvertisements报文,此时,FIPDiscoveryAdvertisements报文中的唯一标识就与该VFC接口的唯一标识完全相同、优先级自然也相同,对于这种特殊情况,即步骤1120判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级与该VFC接口的唯一标识相同,只需将该FIPDiscoveryAdvertisements报文丢弃即可。
步骤1121,在该VFC接口处于Up状态、且尚未建立有效的虚链路时,为该VFC接口建立有效的虚链路、并开始在该VFC接口周期性地广播FIPDiscoveryAdvertisements报文,然后等待在步骤1120再次执行时被触发、或步骤1130由于有效的虚链路无法保活而被触发;其中,本步骤在任意VFC接口广播的FIPDiscoveryAdvertisements报文中同样携带有该VFC接口的唯一标识和链路有效性标识。
另外,与如图7中的步骤711同理,在VFC接口处于Up状态、且已建立有效的虚链路时,以及,在该VFC接口处于Attemp状态时,则只需保持该VFC接口的当前状态,并等待在步骤1120再次执行时被触发、或步骤1130由于有效的虚链路无法保活而被触发即可。
步骤1122,在该VFC接口处于Up状态时将该VFC接口置为Attemp状态、并为该VFC接口创建对应的抑制定时器并计时,或在该VFC接口处于Attemp状态时复位该VFC接口对应的抑制定时器,然后等待在步骤1110或1120再次执行时被触发、或步骤1130由于有效的虚链路无法保活而被触发。
步骤1130,当有抑制定时器超时后,将该抑制定时器对应的VFC接口置为Up状态、并删除该抑制定时器,然后即可针对该抑制定时器对应的VFC接口返回步骤1100。
至此,本流程结束。
此外,为了在已建立的有效虚链路未能如期保活之后,尽可能地缩短FCF与其对端的通信中断时间,在如图11所示的方法中:
若步骤1120判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级低于该VFC接口的唯一标识,则可以进一步触发步骤1140;
步骤1140,在步骤1121为该VFC接口建立有效的虚链路后,为该VFC接口创建用于被虚链路对端复位的保活定时器、并记录该VFC接口接收到的FIPDiscoveryAdvertisements中的唯一标识,然后等待步骤1150在有效的虚链路无法被保活(保活定时器超时)时被触发;或者,步骤1140中的处理过程也可合并至步骤1121执行;
步骤1150,当保活定时器超时后,将该保活定时器对应的VFC接口置为临界状态或Down状态、并删除该保活定时器,以及,若所记录的一个唯一标识对应的VFC接口此时处于Attemp状态,则将所记录的一个唯一标识对应的VFC接口置为Up状态,然后即可针对该保活定时器对应的VFC接口返回步骤1100。
图12为本发明实施例一中用于抑制通链路冲突的装置结构示意图。如图12所示,该装置应用于FCF、并包括:
初始通告模块,当有VFC接口变为Up状态(该VFC接口被创建或该VFC接口从Attemp状态恢复为Up状态)后,在该VFC接口广播FIPDiscoveryAdvertisements报文;其中,初始通告模块在任意VFC接口广播的FIPDiscoveryAdvertisements报文中均携带有该VFC接口的唯一标识、以及表示该VFC接口是否已建立有效虚链路的链路有效性标识。
状态识别模块,当有VFC接口接收到了FIPDiscoveryAdvertisements报文后,识别FIPDiscoveryAdvertisements报文中的链路有效性标识;
若状态识别模块识别出FIPDiscoveryAdvertisements中的链路有效性标识为无效值,则触发接口选举模块;
若状态识别模块识别出FIPDiscoveryAdvertisements中的链路有效性标识为有效值,则触发接口抑制模块。
接口选举模块,若状态识别模块识别出FIPDiscoveryAdvertisements中的链路有效性标识为无效值,则将接收到的FIPDiscoveryAdvertisements报文中的唯一标识与该VFC接口的唯一标识进行优先级的比对;
若接口选举判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级低于该VFC接口的唯一标识,则触发维护通告模块;
若接口选举模块判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级高于该VFC接口的唯一标识,则触发接口抑制模块;
实际应用中,有可能由于组网时形成环路而导致VFC接口接收到由其自身发送的FIPDiscoveryAdvertisements报文,此时,FIPDiscoveryAdvertisements报文中的唯一标识就与该VFC接口的唯一标识完全相同、优先级自然也相同,对于这种特殊情况,即接口选举模块判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级与该VFC接口的唯一标识相同,只需将该FIPDiscoveryAdvertisements报文丢弃即可。
维护通告模块,若接口选举模块判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级低于该VFC接口的唯一标识,则在该VFC接口处于Up状态、且尚未建立有效的虚链路时,为该VFC接口建立有效的虚链路、并开始在该VFC接口周期性地广播FIPDiscoveryAdvertisements报文,然后等待被接口选举模块触发、或抑制超时模块由于有效的虚链路无法保活而被触发;其中,维护通告模块在任意VFC接口广播的FIPDiscoveryAdvertisements报文中同样携带有该VFC接口的唯一标识和链路有效性标识。
另外,在VFC接口处于Up状态、且已建立有效的虚链路时,以及,在该VFC接口处于Attemp状态时,则只需保持该VFC接口的当前状态,并等待被接口选举模块触发、或抑制超时模块由于有效的虚链路无法保活而被触发即可。
接口抑制模块,若状态识别模块识别出FIPDiscoveryAdvertisements中的链路有效性标识为无效值、或接口选举模块判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级高于该VFC接口的唯一标识,则在该VFC接口处于Up状态时将该VFC接口置为Attemp状态、并为该VFC接口创建对应的抑制定时器并计时,或在该VFC接口处于Attemp状态时复位该VFC接口对应的抑制定时器,然后等待被接口选举模块触发、或抑制超时模块由于有效的虚链路无法保活而被触发。
抑制超时模块,当有抑制定时器超时后,将该抑制定时器对应的VFC接口置为Up状态、并删除该抑制定时器,然后即可针对该抑制定时器对应的VFC接口重新触发初始通告模块。
此外,为了在已建立的有效虚链路未能如期保活之后,尽可能地缩短FCF与其对端的通信中断时间,在如图12所示的装置中可以进一步包括实施例一中如图8所示装置包括的备选维护模块和备选切换模块,或者在维护通告模块中集成备选维护模块的功能。实施例三
上述实施例二中将链路有效性标识作为对接口选举的限制条件,而本实施例中并不限制接口选举,而是将链路有效性标识作为接口选举中的一个补充条件。即,当VFC接口接收的FIPDiscoveryAdvertisements报文中携带的唯一标识的优先级低于该VFC接口的唯一标识时,才识别链路有效性标识。
也就是说,本实施例相比于实施例二,主要是改变了对链路有效性标识的识别时机,但仍能够产生与实施例二相近似的效果。
仍参见实施例二中如图10所示的实例,VFC3在创建后变为Up状态之后、首次发出FIPDiscoveryAdvertisements报文之前,即到了VFC2周期性广播的FIPDiscoveryAdvertisements报文;
当通过优先级比对而判断出FIPDiscoveryAdvertisements报文中携带的唯一标识WWN2小于VFC3的唯一标识WWN3之后,会触发对链路有效性标识的识别;
但FIPDiscoveryAdvertisements报文中携带的链路有效性标识为表示VFC2已建立有效的虚链路的有效值,因此,即便进行了优先级比对,VFC3也仍会被置为Attemp状态、并对应地创建一抑制定时器。
基于上述原理,本实施例提供了一种用于抑制同链路冲突的方法、以及一种用于抑制同链路冲突的装置。
图13为本发明实施例三中用于抑制通链路冲突的方法流程示意图。如图13所示,该方法应用于FCF、并包括:
步骤1300,当有VFC接口变为Up状态(该VFC接口被创建或该VFC接口从Attemp状态恢复为Up状态)后,在该VFC接口广播FIPDiscoveryAdvertisements报文;其中,在任意VFC接口广播的FIPDiscoveryAdvertisements报文中均携带有该VFC接口的唯一标识、以及表示该VFC接口是否已建立有效虚链路的链路有效性标识。
步骤1310,当有VFC接口接收到了FIPDiscoveryAdvertisements报文后,将接收到的所述FIP发现通告报文中的唯一标识与该VFC接口的唯一标识进行优先级的比对;
若步骤1310判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级低于该VFC接口的唯一标识,则触发步骤1320;
若步骤1310判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级高于该VFC接口的唯一标识,则触发步骤1312;
实际应用中,有可能由于组网时形成环路而导致VFC接口接收到由其自身发送的FIPDiscoveryAdvertisements报文,此时,FIPDiscoveryAdvertisements报文中的唯一标识就与该VFC接口的唯一标识完全相同、优先级自然也相同,对于这种特殊情况,即步骤1120判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级与该VFC接口的唯一标识相同,只需将该FIPDiscoveryAdvertisements报文丢弃即可。
步骤1320,识别FIPDiscoveryAdvertisements报文中的链路有效性标识;
若步骤1320识别出FIPDiscoveryAdvertisements中的链路有效性标识为无效值,则触发步骤1311;
若步骤1320识别出FIPDiscoveryAdvertisements中的链路有效性标识为有效值,则1312。
步骤1311,在该VFC接口处于Up状态、且尚未建立有效的虚链路时,为该VFC接口建立有效的虚链路、并开始在该VFC接口周期性地广播FIPDiscoveryAdvertisements报文,然后等待在步骤1320再次执行时被触发、或步骤1340由于有效的虚链路无法保活而被触发;其中,本步骤在任意VFC接口广播的FIPDiscoveryAdvertisements报文中同样携带有该VFC接口的唯一标识和链路有效性标识。
另外,与如图7中的步骤711同理,在VFC接口处于Up状态、且已建立有效的虚链路时,以及,在该VFC接口处于Attemp状态时,则只需保持该VFC接口的当前状态,并等待在步骤1320再次执行时被触发、或步骤1330由于有效的虚链路无法保活而被触发即可。
步骤1312,在该VFC接口处于Up状态时将该VFC接口置为Attemp状态、并为该VFC接口创建对应的抑制定时器并计时,或在该VFC接口处于Attemp状态时复位该VFC接口对应的抑制定时器,然后等待在步骤1310或1320再次执行时被触发、或步骤1330由于有效的虚链路无法保活而被触发。
步骤1330,当有抑制定时器超时后,将该抑制定时器对应的VFC接口置为Up状态、并删除该抑制定时器,然后即可针对该抑制定时器对应的VFC接口返回步骤1300。
至此,本流程结束。
此外,为了在已建立的有效虚链路未能如期保活之后,尽可能地缩短FCF与其对端的通信中断时间,在如图13所示的方法中:
若步骤1320识别出FIPDiscoveryAdvertisements中的链路有效性标识为无效值,则可以进一步触发步骤1340;
步骤1340,在步骤1311为该VFC接口建立有效的虚链路后,为该VFC接口创建用于被虚链路对端复位的保活定时器、并记录该VFC接口接收到的FIPDiscoveryAdvertisements中的唯一标识,然后等待步骤1350在有效的虚链路无法被保活(保活定时器超时)时被触发;或者,步骤1340中的处理过程也可合并至步骤1311执行;
步骤1350,当保活定时器超时后,将该保活定时器对应的VFC接口置为临界状态或Down状态、并删除该保活定时器,以及,若所记录的一个唯一标识对应的VFC接口此时处于Attemp状态,则将所记录的一个唯一标识对应的VFC接口置为Up状态,然后即可针对该保活定时器对应的VFC接口返回步骤1300。
图14为本发明实施例三中用于抑制通链路冲突的装置结构示意图。如图14所示,该装置应用于FCF、并包括:
初始通告模块,当有VFC接口变为Up状态(该VFC接口被创建或该VFC接口从Attemp状态恢复为Up状态)后,在该VFC接口广播FIPDiscoveryAdvertisements报文;其中,初始通告模块在任意VFC接口广播的FIPDiscoveryAdvertisements报文中均携带有该VFC接口的唯一标识、以及表示该VFC接口是否已建立有效虚链路的链路有效性标识。
接口选举模块,当有VFC接口接收到了FIPDiscoveryAdvertisements报文后,将接收到的FIPDiscoveryAdvertisements报文中的唯一标识与该VFC接口的唯一标识进行优先级的比对;
若接口选举判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级低于该VFC接口的唯一标识,则触发状态识别模块;
若接口选举模块判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级高于该VFC接口的唯一标识,则触发接口抑制模块;
实际应用中,有可能由于组网时形成环路而导致VFC接口接收到由其自身发送的FIPDiscoveryAdvertisements报文,此时,FIPDiscoveryAdvertisements报文中的唯一标识就与该VFC接口的唯一标识完全相同、优先级自然也相同,对于这种特殊情况,即接口选举模块判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级与该VFC接口的唯一标识相同,只需将该FIPDiscoveryAdvertisements报文丢弃即可。
状态识别模块,若接口选举判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级低于该VFC接口的唯一标识,则识别FIPDiscoveryAdvertisements报文中的链路有效性标识;
若状态识别模块识别出FIPDiscoveryAdvertisements中的链路有效性标识为无效值,则触发维护通告模块;
若状态识别模块识别出FIPDiscoveryAdvertisements中的链路有效性标识为有效值,则触发接口抑制模块。
维护通告模块,若状态识别模块识别出FIPDiscoveryAdvertisements中的链路有效性标识为无效值,则在该VFC接口处于Up状态、且尚未建立有效的虚链路时,为该VFC接口建立有效的虚链路、并开始在该VFC接口周期性地广播FIPDiscoveryAdvertisements报文,然后等待被接口选举模块触发、或抑制超时模块由于有效的虚链路无法保活而被触发;其中,维护通告模块在任意VFC接口广播的FIPDiscoveryAdvertisements报文中同样携带有该VFC接口的唯一标识和链路有效性标识。
另外,在VFC接口处于Up状态、且已建立有效的虚链路时,以及,在该VFC接口处于Attemp状态时,则只需保持该VFC接口的当前状态,并等待被接口选举模块触发、或抑制超时模块由于有效的虚链路无法保活而被触发即可。
接口抑制模块,若接口选举模块判断出FIPDiscoveryAdvertisements报文中的唯一标识的优先级高于该VFC接口的唯一标识、或状态识别模块识别出FIPDiscoveryAdvertisements中的链路有效性标识为无效值,则在该VFC接口处于Up状态时将该VFC接口置为Attemp状态、并为该VFC接口创建对应的抑制定时器并计时,或在该VFC接口处于Attemp状态时复位该VFC接口对应的抑制定时器,然后等待被接口选举模块触发、或抑制超时模块由于有效的虚链路无法保活而被触发。
抑制超时模块,当有抑制定时器超时后,将该抑制定时器对应的VFC接口置为Up状态、并删除该抑制定时器,然后即可针对该抑制定时器对应的VFC接口重新触发初始通告模块。
此外,为了在已建立的有效虚链路未能如期保活之后,尽可能地缩短FCF与其对端的通信中断时间,在如图14所示的装置中:
备选维护模块,若状态识别模块识别出FIPDiscoveryAdvertisements中的链路有效性标识为无效值,则在维护通告模块为该VFC接口建立有效的虚链路后,为该VFC接口创建用于被虚链路对端复位的保活定时器、并记录该VFC接口接收到的FIPDiscoveryAdvertisements报文中的唯一标识,然后等待备选切换模块在有效的虚链路无法被保活(保活定时器超时)时被触发;或者,备选维护模块的功能也可以集成在维护通告模块中;
备选切换模块,当保活定时器超时后,将该保活定时器对应的VFC接口置为临界状态或Down状态、并删除该保活定时器,以及,若所记录的一个唯一标识对应的VFC接口此时处于Attemp状态,则将所记录的一个唯一标识对应的VFC接口置为Up状态,然后即可针对该保活定时器对应的VFC接口再次触发初始通告模块。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。