用于在高可行性以太网背板上进行链路故障检测的装置的制作方法

文档序号:7562981阅读:90来源:国知局
专利名称:用于在高可行性以太网背板上进行链路故障检测的装置的制作方法
技术领域
本发明涉及网络装置领域,尤其涉及一种以太网网络装置,该装置具有用于检测链路故障并响应该故障而切换到一个运行良好的端口的背板结构。
背景技术
任何基于24/7(全天24小时/每周7日)运行的业务都不能承受超过只是两三分钟的或者也许不超过半小时的停机情况的发生。意外的停机可能严重地阻碍数据的运行并且就因此造成的收入损失及雇佣人力纠正此类情况的支出而言,代价及其昂贵。近来的两项1995年的研究表明,由于意外停机造成的平均业务损失在每小时8万美元与每小时35万美元之间,考虑到这些损失,很明显,建立起一个冗余信息技术结构的成本要比甚至一个短暂的停机所造成的损失要小。尤其在考虑到计算机运行成本要相对小于停机时间的成本时,就更为如此。而且,管理者们确切地知道为此添加额外设备、软件和培训操作员的花费有多少,但意外停机造成的损失却难以事先估计。
由于成本低、配置与安装简易,以太网网络已被大量应用于局域网(LAN)中。以太网网络技术经过多年改进之后,以太网网络的应用如今已经从局域网延伸到了WAN/MAN(广域网/城域网)。更近些时期以来,以太网网络技术还被结合到基于底座的背板系统中,这是因为它的成本低、来源广而且具有检测嵌入式错误的能力。
在基于底座的系统中,要求背板为链路卡与模块之间提供牢固可靠的连接。然而,以太网网络最初是在局域网的环境下被开发的,局域网应用中的“可用性”要求大大不同于在背板应用中的要求。例如,在传统的局域网环境下,当网络检测到一个链路或端口通信故障时,生成树协议(spanning tree protocol)在网络检测到一个链路或端口故障时通过重构动态拓扑结构来提供“故障切换(failover)”功能。但是,会聚(convergence)时间却相对要长。从发现一个故障到完成拓扑结构的改变并恢复到正常运行状态可能需要20到50秒的时间。即使使用传统的“改进”协议,快速生成树在检测到开关或链路的故障后恢复正常运行可能需要50毫秒。
根据电气电子工程师协会802.3标准,链路聚合已发展到通过将多个链路聚集形成一个链路组来增加带宽和可用性,媒体访问控制层(MAC)可将该多重链路当作一个单一逻辑链路。当此集合中的一个链路出现故障时,业务可通过送回工作链路被重新分配(或重新路由)。但是,链路聚合只在由相同的终端节点所共享的平行连接之间提供故障切换。
在背板应用中,以太网网络通常具有非常简单的结构,比如一个星形拓扑结构,意味着从每一个插卡槽处将一个第一总线连接到一个第一交换结构(switch fabric)并将一个第二总线连接到一个第二交换结构。如果第一总线不能工作,那么装置自动转换至使用第二总线。但是,生成树的恢复需使用20至50秒的会聚时间,这在背板环境下是不能接受的。此外,如前所述的链路聚合只在相同的终端节点所共享的平行连接之间提供故障切换。这就是说,故障链路的相同终端不能共享一个备份的链路。因此,链路聚合在以太网网络背板环境下不能得到应用。
因此,需要一个简单、快速并强有力的解决方案来实现以太网背板环境下链路错误检测和故障切换转换的高可用性。

发明内容
考虑到前述需要,本发明设想了一种主动检测链路故障的方法、计算机可读的指令、装置和系统。
在一个实施方案中,用于确定通讯链路故障的方法包括步骤设定一个定时器来预定一个时间间隔;只要接收到一个有效的数据包,就重置定时器至该预定时间间隔;及当定时器到期时,发送一个探测数据包并设定一个探测定时器。如果该探测定时器到期并且仍没有接收到一个对该探测数据包的有效响应,则将通讯链路的状态转换为故障模式。
在另一个实施方案中,用于确定通讯链路故障的方法包括步骤在接收到预定数量的连续的无效数据包后,发送一个探测数据包并设定一个探测定时器,如果该探测定时器到期并且仍没有接收到一个对该探测数据包的有效响应,则将通讯链路的状态转换为故障模式。
在另一个实施方案中,用于确定一个通讯链路故障的方法包括步骤一旦一个闲置定时器(idle timer)到期或者接收到预定数量的连续的无效数据包的情况发生,便发送一个探测数据包。如果该探测定时器到期并且仍没有接收到一个对该探测数据包的有效响应,则将通讯链路的状态转换为故障模式。
本发明还包括一种指令的计算机可读媒体,包括用于设定一个定时器来预定一个时间间隔的装置;用于只要接收到一个有效的数据包、就重置定时器至该预定时间间隔的装置;用于当定时器到期时发送一个探测数据包并设定一个探测定时器的装置;及用于当该探测定时器到期并且仍没有接收到一个对该探测数据包的有效响应时将通讯链路的状态转换为故障模式的装置。
在另一实施方案中,在此公开了指令的计算机可读媒体,包括用于在接收到预定数量的连续的无效数据包后发送一个探测数据包并设定一个探测定时器的装置;用于当该探测定时器到期并且仍没有接收到一个对该探测数据包的有效响应时将通讯链路的状态转换为故障模式的装置;计算机可读的指令还可包括当一个闲置定时器到期时用于发送探测数据包并启动探测定时器的装置。
本发明还设想了一种在高可行性以太网背板上进行链路故障检测的装置,包括用于设定一个定时器来预定一个时间间隔的装置;用于只要接收到一个有效的数据包、就重置定时器至该预定时间间隔的装置;用于当定时器到期时发送一个探测数据包并设定一个探测定时器的装置;及用于当该探测定时器到期并且仍没有接收到一个对该探测数据包的有效响应时将通讯链路的状态转换为故障模式的装置。
在另一实施例中,设想了一种在高可行性以太网背板上进行链路故障检测的装置,包括用于在接收到预定数量的错误之后发送一个探测数据包并设定一个探测定时器的装置;及用于当该探测定时器到期并且仍没有接收到一个对该探测数据包的有效响应时将通讯链路的状态转换为故障模式的装置。此外,本实施方案中还可使用用于设定一个定时器来预定一个时间间隔的装置,其中,如果定时器到期,则发送一个探测数据包并设定一个探测定时器。每次接收到一个有效数据包便重置该定时器。
本发明还设想了一个背板系统,包括多个节点板和多个交换结构板,其中多个节点板的每个节点具有与多个交换结构板中的每一个之间的单一链路。构成多个节点板和多个交换结构板的组中至少一个进一步包括用于设定一个定时器来预定一个时间间隔的装置;用于只要接收到一个有效的数据包、就重置定时器至该预定时间间隔的装置;用于当定时器到期时发送一个探测数据包并设定一个探测定时器的装置;及用于当该探测定时器到期并且仍没有接收到一个对该探测数据包的有效响应时将通讯链路的状态转换为故障模式的装置。该系统还可包括用于在接收到预定数量的连续的无效数据包后发送一个探测数据包并设定一个探测定时器的装置。
另一个背板系统的实施方案包括多个节点板和多个交换结构板,其中多个节点板的每个节点具有与多个交换结构板中的每一个之间的单一链路;用于在接收到预定数量的连续的无效数据包后发送一个探测数据包并设定一个探测定时器的装置;及用于当该探测定时器到期并且仍没有接收到一个对该探测数据包的有效响应时将通讯链路的状态转换为故障模式的装置。用于发送探测数据包的装置和用于转换通讯链路状态的装置可与节点板、或交换结构板或其组合相结合。
在另一前述背板系统的实施方案中,交换结构板还包括一个重定向表,并且当一个交换结构板检测到一个链路故障时,该交换结构板将该故障链路信息传达到其它交换结构板,促使其它交换结构板更新其重定向表。
在优选的实施方案中,通过使探测数据包具有相同的源和目的地址来区分探测数据包,并且该探测数据包的接收端被构建用来通过将该探测数据包送回其发送端来对该探测数据包做出响应。


为了更全面地了解本发明及其优点,结合附图进行以下的说明,附图中图1描述了一个双重结构信息包交换式背板的拓扑结构的总体框图;图2根据一个公开的实施方案描述了背板系统的一个更为详细的框图;图3根据一个公开的实施方案描述了一个节点板的故障切换作业的流程图;图4根据一个公开的实施方案描述了一个结构板的故障切换作业的流程图;图5描述了来自发送端的脉动信号的状态图;图6描述了来自接收端的脉动信号的状态图;图7描述了发送端的探测数据包的状态图。
具体实施例方式
本发明公开的背板结构通过自动检测链路故障并执行“故障切换”至一个备份链路从而提供了一种高可用性以太网网络背板。故障切换被定义为“关掉”一个出现故障的冗余部分并“打开”可用的备份部分的程序或机制。本发明的一个方面是使得快速、简单的故障切换变得容易实现。此外,使节点间控制信息交换最小化从而减轻CPU(中央处理器)的数据处理负担。
用于链路故障检测有几种可用的方案。一种方案包括在MAC(媒体访问控制)模块发送“脉动(heart beat)”消息;另一种方案使用一种帧错误率。可实施两种检测方案之一或实施该两种方案来检测链路故障。一旦检测到链路故障,则利用CPU来执行故障切换程序。除了前述的两种链路故障检测方案外,还可使用一种更广义的故障检测方案,该方案在接收端不要求专用的硬件实现。
当一个节点板的逻辑电路已经检测到一个故障端口时,对该节点板的通信业务进行故障切换(或重定向)至可用端口(假设所有节点具有至少两个端口并且每个端口都连接至一个交换结构节点)。在交换结构节点上,有一个转换链路来连接两个交换结构节点。当交换结构节点检测到一个故障端口时,指定发往该故障端口的通信业务将被转换到转换(或备份)端口。然后,其他的交换结构节点将故障切换业务转发到其目标装置。
现在参照图1,示出了一个双重结构信息包交换式背板(PSB)100的拓扑结构的总体框图。该背板100用来在基于背板的系统中将众多的插件和模块连接在一起。背板100通常的拓扑结构为星型的拓扑结构。由于可靠性和可用性对于背板系统来说是重要的设计要求,因此高可用性系统中通常使用双重链路。例如,Compact PCI信息包交换式背板规范(通常也记作PICMG2.16规范),在此声明其内容结合进本申请以供参考,定义了基于以太网技术的多达24个节点板的信息包交换式背板标准,并且采用了星型的拓扑结构。
在本具体实施方案中,PSB100由14个节点板102、一个第一交换结构板(SFB)104和一个第二SFB106构成。但是,本发明却可扩展到使用任意数量的节点板或结构板。与所有节点板102的运行相似,一个节点板108运行地连接到第一SFB104从而由此进行数据包传送的通信。为了提高可用性,将第二SFB106以可行的连接方式增加到节点板108用于数据包由此进行通信。每一节点板102具有两个链路端口,分别连接到第一SFB104及第二SFB106。该双重结构的PSB系统100被称为双重星型拓扑结构。该链路端口是一个全双工以太网网络连接(full duplex Ethernetconnection),其速度通常约为10/100/1000Mbps(兆比特每秒),并且只要帧为以太网帧,链路端口的速度可以是任意的。
下表1定义了图1中高可用性背板系统的主要部分表1.高可用性背板主要部分

现在参照图2,示出了根据所公开的实施方案的以太网络背板系统100的一个更为详尽的框图。一个第一节点板200包括两个(或冗余的)上行链路端口(例如,以太网);一个第一PHY上行链路端口204和一个第二PHY上行链路端口206,两个端口均分别提供与第一SFB 104和与第二SFB 106间的通信连接。这样该第一SFB 104和第二SFB 106就被平行地分别连接到第一节点板200上。该节点板200包括一个功能执行子系统210,一个业务分配控制器208和两个上行链路端口接口204及206。业务分配控制器208执行缓冲和调度,然后基于端口中继算法将业务从功能执行子系统210中分派至上行链路端口接口204和206之中的一个。
每一个节点板的PHY上行链路端口(204和206)都被归组为一个称为中继端口207的逻辑端口。当中继端口207接收到数据包时,背板系统100并不区分哪一物理的上行链路端口(204或206)应接收此数据包。然而当数据包从第一节点板200的中继端口207发送出来时,业务分配控制器208便决定该数据包将发送至哪一物理的上行链路端口(204和206),并将该数据包传送到那一上行链路端口。选择中继端口207中的输出上行链路端口(204或206)所使用的数据可以基于源和/或目标MAC地址,或者任何其他的数据包信息的组合。例如,它可以基于来自源和目标MAC地址的一个散列键。
CPU在业务分配控制器208中使用并维持一个中继表,以此来决定使用物理的上行链路端口(204或206)中的哪一个用于输出数据包业务。该中继表为输出数据包存储了当前的从中继端口到物理的上行链路端口的映射信息。通过访问该中继表的映射信息并决定应使用哪一中继端口和物理的上行链路端口用于数据包业务,背板系统100控制第一SFB104和第二SFB106之间的数据包业务分配。中继表中的这一关联信息根据正常模式运行和故障切换运行情况而动态地变化。
该背板系统100还包括了一个具有两个上行链路端口(例如以太网)的第二节点板202一个第一上行链路端口214和一个第二上行链路端口216,它们提供与第一SFB104和与第二SFB106之间的一个通信连接,这样该第一SFB104和第二SFB106也被平行地分别连接到第二节点板202上。该第二节点板202同样包含一个业务分配控制器218(例如,在本实施方案中为一个以太网络交换装置),它将选择第一和第二上行链路端口(214和216)中哪一个将向下链接到第二节点板202中的功能执行子系统220。该第一和第二上行链路端口(214和216)为冗余系统。
该第一和第二SFB(104和106)提供了节点板102和202之间的通信方式。在本具体实施方案中,第一SFB 104包括一个结构交换装置224和多个PHY端口装置226(例如以太网类型)。交换装置224则包括一个在故障切换时通过访问而提供用于重定向数据包的重定向信息的重定向位图(也被称作执行不到位图)229和一个用于存储一些中继端口中任何一个的状态信息的中继表231。交换装置224则通过AB PHY端口230与第二SFB106相连。在本具体实施方案中,该第二SFB106包括一个结构交换装置232和多个PHY端口装置234(例如以太网类型)。该结构交换装置232同样包括一个在故障切换时通过被访问而提供用于重定向数据包的重定向信息的重定向位图236和一个存储一些中继端口中任何一个的状态信息的中继表233。交换装置232则通过AB PHY端口238并经由AB PHY端口240与第一SFB104相连。
在本实施方案中,背板系统100通过一个第一链路209将第一节点板200上的第一PHY上行链路端口204连接到第一SFB104上的一个PHY端口242。通过一个第二链路211,第二PHY上行链路端口206连接到第二SFB106上的一个PHY端口244。第二节点板202上的第一PHY上行链路端口214通过一个第三链路213连接到第一SFB104上的一个PHY端口246,与此同时第二PHY上行链路端口216则通过一个第四链路215连接到第二SFB106上的一个PHY端口248。
在一个实施方案中,节点板200和202之间的节点板信号通过第一SFB104经由各自的第一上行链路端口(204和214)在第一节点板200的功能执行子系统210与第二节点板202的功能执行子系统之间进行通信。相似地,作为对第一链路209的检测出的故障的响应,进行故障切换,节点板信号通过第二SFB106经由各自的第二上行链路端口(206和216)在第一节点板200的功能执行子系统210与第二节点板202的功能执行子系统之间进行通信。一旦第一链路209的故障被排除后,通过第一上行链路端口(204和214)恢复到正常模式的运行状态。
链路故障检测可以在不同层下进行,例如,IEEE 802.3规范为以太网PHY制定了一个PHY-层的检测机制。在没有数据业务时,一个发送的PHY装置会定期(如每16±8毫秒)发出一个简单的脉动(HB)脉冲,称为正常链路脉动(NLP),如果接收的PHY装置在预定时间(如50-150毫秒)内既没有检测到数据包的到来也没有检测到NLP的到来,则接收的PHY装置就认为链路出现了故障。
在系统层,在节点板上的或者是附加在一个交换结构板上的本地CPU可用来通过定期向系统的另一个CPU发送脉动数据包的方法来检查链路的完整性。但是,这一方法却要占用CPU更多的处理功率和时间来处理信息以询问链路从而检测到已发生的链路故障。即使在链路繁忙的情况下,该方法还要求额外的带宽。由于决策的路径长,用此方法来恢复链路显得较慢。
在本发明中,链路故障检测是在MAC层中实施的。优选在背板系统100中在MAC层进行检测是由于以下原因。在背板环境下,不是所有执行的PHY装置都能够像以太网络PHY装置一样能够嵌入一个链路故障检测机制(例如,LVDS装置就不能应用这一检测技术)。因此,一个MAC模块需提供链路故障检测。而且,在PHY实施中的快速链路故障检测需要约50-150毫秒的处理时间,而MAC模块却能够快得多地检测链路故障,其检测速度依端口速度而定。对于一个千兆位的端口,检测时间不到1毫秒,而对于一个100Mbps(兆比特秒)的端口,检测时间为几个毫秒。此外,PHY层的链路故障检测不能检测到由MAC模块失灵造成的链路故障。然而,应注意到,当执行一个PHY方案时,所公开的MAC层的检测方案能够兼容该PHY层的链路故障检测方案。
在讨论故障切换操作时,在此具体实施方案中,假设背板控制逻辑控制数据包的传送路线为数据包从第一节点板200中通过其第一PHY上行链路端口204、经过第一链路209,进入结构端口242,通过结构装置228转换为结构端口246的输出,经过第三链路213,进入第二节点板202的第一上行链路端口214,并由交换装置218转换到第二节点板202的第一子系统220中。由此,当第一节点板200检测到第一链路209出现故障时,背板控制逻辑启动数据包业务的故障切换,从第一PHY上行链路端口204经过到第二上行链路端口SFB106到达第二PHY上行链路端口206。故障切换是通过改变中继表并迫使中继端口207的所有数据包业务(原先使用现有的出现故障的第一上行链路端口204)仅使用第二上行链路端口206来完成的。
首先,假设与第一节点板200(图2)的第一上行链路端口204互连的第一链路209已出现故障。当第一SFB104检测到该第一链路209的故障时,所有第一上行链路端口204输出的数据包业务就被重定向,从而发送到重定向链路240。然后,第二SFB106接收从重定向端口238发来的数据包(或数据帧),并且通过第二链路213将它们发送给第一SFB104。
在运行过程中,节点板使用端口中继来执行故障切换。如前所述,节点板上的各上行链路端口将归组为一个逻辑中继端口。当从功能子系统210发出的数据包到达后,业务分配控制器208将首先在本地MAC地址表中搜索该数据包的目标MAC地址。该MAC表显示出MAC地址的相关信息并且该目标端口可能是上行链路端口或逻辑中继端口之一。如果MAC与一个上行链路端口204或206相关,则该业务将总是被传送到那一特定端口而且故障切换将不适用于该特定业务。如果目标是上行链路中继,那么业务分配控制器208将执行中继分配算法将数据包派送至上行链路端口204或206其中的一个。
可基于对源MAC和/或目标MAC地址进行散列而产生的散列键来选择物理端口。
第一节点板的MAC表

第一节点板上中继端口1的中继端口表

第一节点板200的CPU通过在中继表中适当地为物理端口赋值“ON”来控制中继端口207中上行链路端口(204和206)之间的数据包业务的负载分配。
当节点板200的CPU被通知例如在中继端口207的链路209出现故障时,CPU就会为中继表中两个冗余节点板(200和202)改变所有第一链路端口(204和214,在中继表中也被标记为端口1a)和第二链路端口(206和216)的状态。这样,将迫使使用中继端口207的所有数据包业务使用第二上行链路端口(206和216,同样在中继表中标记为端口1b)。故障切换由此实现。
当结构节点104检测到它的任何一个端口的链路故障时,该节点板的CPU会收到通知并启动故障切换程序。该结构板将故障信息传达给其他结构板节点。例如,第一SFB 104的CPU将与该错误链路相连的节点板(如,现在为一个不可到达节点)告知第二SFB106。第一SFB104中有一个重定向位图,指示哪一个端口将不能通过其他节点到达。当链路故障通知被收到后,CPU会更新重定向位图229的信息并传回一个ACK。重定向位图229用作一个从重定位链路接收到的业务的转发区域,这样,两个上行链路都在工作的节点板不会收到两份相同的广播数据包。
如重定向节点位图所示,重定位链路所接收到的数据包只能被转发给与节点连接的端口。通过提供该重定向节点位图,可防止节点接收到重复的广播数据包。如果没有重定向位图,一个广播数据包将被转发给包括重定向端口在内的所有端口。第二SFB106也将会广播此数据包。结果,除了源节点板204上的一个上行链节点端口以外,所有节点都会收到分别由两个结构板各自发出的相同的数据包。通过使用重定向位图,第二SFB106就只将数据包转发给第一SFB104上的不可到达节点,而不向从第一SFB104接收数据包的其他节点发送。
由于来自有故障链路节点的业务会被重定向到可用的链路,发生故障链路的交换结构板将不再访问与故障端口相关的MAC地址。于是该节点板上的MAC词条将最终失去时效。结果,目标为A的数据包将被滥用。因此,接收到链路故障通知的交换结构板的CPU应将与故障链路端口有关的所有MAC词条设为“静止”,这些具有“静止”状态的表格词条将不会失去时效。
当第一SFB104从第二SFB106收到故障链路信息的确认(ACK)之后,第一SFB104的CPU通过对故障端口到重定向端口间进行重新映射开始对预定发送到故障端口的数据包故障切换至重定向端口。
在发送端,如果没有数据包被实时发送,一个MAC传送模块就会定时发出一个MAC脉动信息。脉动信息的持续时间是可被设置的。在目前的实施中,时间间隔的单位为一个“时间槽”,512字节的传送时间,也就是以10兆比特每秒的速度传输51.2微秒和以100兆比特每秒的速度传输5.12微秒。如果链路在繁忙地发送常规数据包业务,链路脉动信息数据包就不会被发送,从而使得在链路繁忙时的带宽最优化。这是较之以CPU类生成树方式进行链路故障检测而言的一个优点。
应注意到上行链路端口和交换结构板所用的PHY装置并不局限于以太网装置,其他传统的背板PHY装置如LVDS(低压差分信号)也是可用的。(LVDS是一种低功率、低噪音的高速传送差分技术。)参照图3,根据一个公开的实施方案描述了一个节点板的故障切换程序的流程图。当某一装置检测到一个链路故障,它将马上进入故障切换模式,并将故障链路上的业务重定向至一个可用的链路。流程从功能程序块300开始,此程序块中创建一个冗余PHY上行链路端口的中继端口。在功能程序块302中,对所有端口启动链路完整性检查。程序进入一个决策程序块304,在这里如果没有检测到链路故障,程序从路径“N”流出并回到程序块302执行下一链路完整性检查。反之,如果检测到一个链路故障,程序从决策程序块304路径“Y”流出,到达功能程序块308,对数据包业务进行故障切换到一个可用端口。然后程序进入决策程序块310以判断故障切换条件是否已解决。如果没有,则从路径“N”流出并回到功能程序块308,继续对数据包业务进行故障切换。如果已解决,则从决策程序块310的路径“Y”出来,进入功能程序块312,以重新开始正常模式。程序接下来回到功能程序块302开始下一完整性检查。
现在参看图4,根据一个公开的实施方案描述了一个结构板的故障切换程序的流程图。程序始于功能程序块400,此程序块中,背板系统100执行正常模式下的各项功能。链路完整性检测在功能程序块402中进行。在决策程序块404中,如果没有检测到链路故障,程序从路径“N”流出,回到程序块402执行下一检测功能。如果检测到一个链路故障,程序从决策程序块404路径“Y”流出,到达功能程序块406启动故障切换模式。在故障切换模式下,如功能程序块408中所示出的那样,将链路故障数据传送到其他的结构板。然后如功能程序块410中所示出的那样,用故障端口状态信息更新MAC表。然后程序进入决策程序块412,以判断其是否接收到了其他结构板的确认(ACK)信号。如果没有,程序从路径“N”流出,继续检查是否接收到ACK信号。如果已收到ACK信号,程序从决策程序块412路径“Y”流出,到达功能程序块414,以便根据重定向位图中包含的重定向信息将故障端口映射到一个重定向端口。数据包业务从而相应地被重新定向,直至故障切换得到解决。决策程序块416中,检查确定故障切换是否已解决。如果没有,程序将由路径“N”流出,进入功能程序块418继续在故障切换模式下运行。然后程序将循环回到决策程序块416的输入端,以执行下一个故障切换是否已恢复的检查。如果链路已恢复,程序从决策程序块416的路径“Y”流出,进入功能程序块420,在这里链路恢复数据将被转发给其他结构板。然后,如功能程序块422中所示出的那样,MAC表中的数据将相应被更新,以反映链路的恢复。之后,如功能程序块424中所示出的那样,更新重定向位图,将重定向信息转移到冗余端口。然后,如功能程序块426中所示出的那样,背板系统100恢复正常运行模式。程序接下来循环回到功能程序块400,开始执行正常的运行转换功能。
参照图5,描述了来自发送端的脉动信号的状态图。程序始于功能程序块500,MAC链路脉动信号(LHB)在此被激活,状态指示为“Ready(准备)”。如功能程序块502中所示出的那样,如果接收到一个LHB信号,其状态就被标示为“OK(正常)”。在决策程序块504中,将判断链路状态是否为“Pending(挂起)”状态。如果是,程序由路径“Y”流出,进入功能程序块506,以便仅转发CPU数据包业务。在决策程序块508中,检查链路故障,如果没有链路故障被确定,程序由路径“Y”流出,进入功能程序块500,以继续激活MAC LHB信号。反之,如果已检测到链路故障,程序会从决策程序块508的路径“N”流出而终止。
如果一个链路状态检查结果为非挂起状态,程序就会从决策程序块504路径“N”流出,进入决策程序块510,以判断数据包是否已准备传送。如果是,程序就从路径“Y”流出,进入功能程序块512,以转发该数据包,并将LHB定时器重置。然后,程序从功能程序块512循环回到决策程序块504再次判断系统是否为挂起状态以便更新链路状态。如果数据包还未准备好传送,程序从决策程序块510的路径“N”流出,进入决策程序块514,以判断是否LHB的定时器已过期。如果没有,程序从路径“N”流出回到功能程序块504,以检查链路状态。如果LHB的定时器已到期,程序从决策程序块514的路径“Y”流出,进入功能程序块516,以发送一个或多个LHB数据包。然后程序回到功能程序块504,再次检查链路状态。
以下是一个64字节链路脉动(HB)信息的格式(十六进制)。

如上表所示,目标MAC地址域是一个6个字节的值,为01-80-C2-00-00-01。IEEE 802.3x标准全双工暂停(IEEE Std.802.3x FullDuplex PAUSE)操作下的流程控制信息的地址是共享的。端口MAC地址域被用作源MAC地址,为6个字节。以太类型(Ethertype)域为两个字节,为88-08,表示了MAC控制格式。该2字节操作码(Opcode)的值是一个可编程的值(例如值00-02),但是不能为“00-01”,因为“00-01”已经被定义为IEEE 802.3X标准的流程控制帧。传送和接收的末端都必须使用相同的操作码值。长度为44字节的填充(Pad)域添加44个字节的零“00”,以达到以太网数据帧的最小长度64字节。
下面是HB控制信息的格式。
01 2 3 4 5 6 7

参照图6,它描述了来自接收端的脉动信号的状态图。为启动MAC模块,接通电源,这时所有端口被重置且状态变为“链路准备就绪(LINKREADY)”。CPU此时激活脉动特征,同时MAC开始发送MAC LHB信号。MAC等待接收器从远程装置中发出显示相同能力的第一LHB信号,然后将状态变为“链路完好(LINK OK)”,然后,转发被转换的业务。在接收端,MAC链路检测模块监控到达的数据包,如果一个好的数据包在从接收到上一数据帧之后开始计时的预先定义的窗口时间(其时间窗被标识为LINK_FAIL))内到达,则该链路处于工作模式。LINK_FAIL时间窗的值是可设的,通常将其设成约为LHB信息传送周期的两倍。一个好的数据包表明,一个含有MAC脉动信息的好的数据帧或者控制帧已被传送。应注意到,MAC LHB信号在MAC模块被吸收,且不能被转发到CPU或其他的端口。一旦MAC在LINK_FAIL窗口内未检测到一个数据帧,它就会进入“链路挂起(LINK PENDING)”状态,并发给CPU一个脉动丢失(HARTBEAT LOST)信息。当该MAC收到N个连续的坏的数据帧时,它也会进入“链路挂起”状态。在“链路挂起”状态下,MAC模块停止传送被切换的业务。然而,CPU数据包和LHB数据包在该状态下仍被连续传送。CPU可通过尽量与远程装置通信而验证最终的链路状态。如果连接不能恢复,该端口进入链路故障状态。
程序从决策程序块600开始,判断LHB是否已被激活。如果没有,程序由路径“N”流出,到达一个结束终点。否则,程序由路径“Y”流出,进入功能程序块602,以接收该第一LHB数据包。然后链路状态被设为“OK”。程序流入功能程序块604,将定时器和错误计数器重置。在决策程序块606中,系统判断一个帧结束标志(end-of-frame)是否已被接收到。如果是,程序由路径“Y”流出,进入决策程序块608,以判断所接收到的帧是否是好的。如果是,程序由路径“Y”流出到功能程序块604,将定时器和计数器重置,以准备接收下一个数据包(或帧)。如果所接收到的帧不是好的,程序就由决策程序块608的路径“N”流出到达功能程序块610,以增加错误计数。然后程序进入决策程序块612,判断错误累计次数。如果错误数小于或等于预定值N,则程序由路径“N”流出,到达决策程序块606的输入端,判断下一个帧结束标志是否已被接收到。如果错误计数器的错误数大于或等于预定值“N”,程序由路径“Y”流出,进入功能程序块614,以将状态改为“Pending(挂起)”。接着,程序进入决策程序块616,判断CPU验证是否失败。如果是,程序由路径“Y”流出到达结束端点。如果CPU验证没有失败,程序由路径“N”流出到功能程序块604,将定时器和错误计数器重置。
如果没有收到帧结束标志,程序由决策程序块606路径“N”流出,进入决策程序块618,以判断LHB定时器是否过期。如果没有,程序由路径“N”流出回到决策程序块606的数据输入端。如果LHB定时器已过期,程序由路径“Y”流出,进入决策程序块620,以判断是否正在进行数据包接收。若没有,程序流入功能程序块614,将状态改变为“Pending(挂起)”,然后进入决策程序块616,以判断CPU验证是否失败。如果数据包接收正在进行中,程序由决策程序块620的路径“Y”流出,进入决策程序块622,以判断是否收到一个好的帧(或数据包)。如是,程序由路径“Y”流出到功能程序块604,将LHB定时器和错误计数器重置。如果没有收到一个好的数据包,程序流入功能程序块614,将状态改变为“Pending(挂起)”,接着进入决策程序块616,以判断CPU验证是否失败。
除了以上描述的基于MAC脉动消息的链路故障检测方案外,以下描述了另一种主动地检测连接故障的方案。该方案利用了一个普通的设置,其中当接收到一个具有相同源和目的MAC地址的数据包时,该数据包被弹回到它的接收板。一个节点板能够利用该特征来检测连接故障。
这一方案所使用的程序示例如下。节点板上的业务分配控制器必须监视所有访问端口的接收活动。每次接收到了一个好的数据包结束标志(agood end of packet)时,则重置并启动一个闲置定时器。如果控制器在闲置定时器到期之前没有接收到一个好的数据包,该控制器会将一个专用的格式化的探测数据包发送到探测链路完整性的交换结构板。利用前述的弹回特征(bouncing feature),交换结构板应将数据包发送回节点板。在探测数据包被发送后启动一个定时器。如果该探测数据包、或任何其他好的数据包,在定时器到期之前被接收到,便认为连接处于工作状态并且闲置定时器被重新启动。然而,如果定时器到期,那么链路将进入一个故障切换状态。等待被弹回的数据包的期间可以很短,这时由于接收端在当时是静止的(silent),意味着交换结构板上的输出队列是空的。等待时间应当仅由传输和切换时延组成。
专用的探测数据包的插入不仅限于业务分配控制器的任何具体层。探测数据包可置于MAC模块内,或置于MAC顶端的分配模块内。而且,探测数据包可利用各种各样的数据包格式,在此基础上,模块会将探测数据包弹回。一些可能的数据包格式包括但不限于1)利用PAUSE FRAME(如2002年10月31日提交的美国申请0/284,856中所描述的,本申请由此主张优先权并声明在此予以结合参考)2)如前面所描述的,使源MAC地址与目的MAC地址相等。
3)利用一般的控制MAC格式,其中目的MAC地址的范围从01-80-C2-00-00-00到01-80-C2-00-00-FF。应当注意到前述的PAUSEFRAME地址01-80-C2-00-00-01为这一格式的特例。多数控制MAC数据包被转发到CPU,因此,CPU能将此类数据包弹回,但在MAC模块处理的PAUSEFRAME数据包除外。
4)将具有一个预先定义的目的MAC地址的探测数据包发送出来。在接收端,设定系统中MAC地址表的预先定义的MAC地址以与CPU端口关联。因此,该CPU能将探测数据包弹回到源端口。可能的是,业务分配控制器208能通过设定MAC地址表使得该预先定义的目的MAC地址与同样的源端口相关联从而将探测数据包弹回。
闲置到期时间是影响执行的主要因素。为了快速检测实际的链路故障,发送探测数据包之前的闲置期间应尽可能短。然而,设定一个短的闲置期间,将会增加传输端发送的探测数据包数量,而与业务流量无关。因此,为了使传输内务(transmission overhead)最小化,该定时器应被设定一个尽可能长的期间。
该链路故障检测方案的实施也可被保留。在另一实施方案中,交换结构板可以发送探测数据包,并且节点板然后会处理数据包弹回。在另一实施方案中,该实施可以是对称的,其中两端均可以探测链路。然而,对称实施将增加传输内务,尤其当与前述的链路脉动方法比较时更是如此。
该方案的有利之处是在不使用该方案的一端不需要额外的硬件。只有一端需要被嵌入式模块来创建消息,而另一端不需要专用的硬件来检测该消息。反之,另一端只是将该消息通过常规的路径弹回到它的接收端口,而不需要任何专用的MAC模块的协助。例如,如果节点板使用了这一方案,则不需要对交换结构板作任何修改。
现在参照图7,探测数据包方案设想了方法700。应当注意到如图7所示,方法700利用了前面所讨论的一个闲置定时器和一个错误计数器,如本领域普通技术人员能容易地认识到的,使用本发明的方法时可以分别使用闲置定时器或错误计数器,或如图7所示的两者的结合。
程序从步骤702开始。在步骤704,确定探测数据包是否激活,即系统是否能正确地操作一个探测数据包。如果不是,那么如图所示,在步骤706程序中断。
如果在步骤704,确定了探测数据包被激活,那么如步骤708所示,重置闲置定时器和错误计数器。接下来在步骤710,确定是否接收到一个帧结束标志。如果接收到帧的一个结束标志,那么程序进行到步骤712,在此确定是否接收到一个好帧。如果在步骤712确定接收到一个好帧,那么闲置定时器和错误计数器被重置。
但是,如果在步骤712确定接收到一个坏帧,那么程序继续进行到步骤714,在此增加错误计数。然后在步骤716,将错误计数与一个阀值(N)比较。如果在步骤716,错误计数小于阀值,那么程序返回到步骤710。但是,如果在步骤716确定错误计数高于阀值,程序进行到步骤724,在此发送一个探测数据包并设定一个探测定时器。
如果在步骤710,一个帧的结束标志仍没有到达,那么程序从步骤718开始。如果在步骤718确定闲置定时器未到期,那么程序返回到步骤710。如果在步骤718确定闲置定时器到期,那么如图所示在步骤720确定接收程序是否在进行。如果接收到一个好帧,那么程序返回到步骤708并且闲置定时器和错误计数器被重置。如果在步骤720确定没有接收到任何数据,或在步骤722确定在闲置定时器到期后接收到一个坏的数据包,那么程序进入到步骤724,触发一个探测数据包并启动一个探测定时器。
在接收到一个坏帧并且闲置定时器已经到期后,从步骤722可以到达步骤724;当闲置定时器到期并且没有数据包处于被接收程序中,从步骤720可以到达步骤724;或者当错误计数已超过一个预定的阀值后从步骤716到达步骤724。在探测数据包已被发送后,并且探测定时器已被启动后,在步骤726确定在一个预定的时间内是否接收到一个对探测数据包的响应。如果在分配的时间内接收到一个响应,那么程序从步骤726进行到步骤708,在此重置闲置定时器和错误计数器。然而,如果在步骤726确定在被分配的时间内仍没有接收到一个对探测数据包的响应,程序进行到步骤728。如果在步骤728,CPU验证仍未失败,那么该程序返回到步骤708,在此重置闲置定时器和错误计数器,否则,如程序块706所示,程序结束。
尽管以上详细地描述了优选实施方案,但是应当理解,在不脱离所附权利要求书所限定的本发明精神和范围的情况下,可以对其作出各种不同的变化、替换和可供选择的方案。
权利要求
1.一种用于确定通信链路故障的方法,其步骤包括设定一个定时器来预定一个时间间隔;只要接收到一个有效的数据包,就重置定时器至该预定时间间隔;及当定时器到期时,发送一个探测数据包并设定一个探测定时器。
2.如权利要求1的方法,进一步包括当探测定时器到期并且仍没有接收到一个对该探测数据包的有效响应时,将通讯链路的状态转换为故障模式。
3.如权利要求1的方法,其步骤进一步包括在接收到预定数量的连续的无效数据包后,发送一个探测数据包并设定一个探测定时器。
4.如权利要求3的方法,进一步包括当探测定时器到期并且仍没有接收到一个对该探测数据包的有效响应时,将通讯链路的状态转换为故障模式。
5.如权利要求1的方法,其中,探测数据包的目的地址等于其源地址。
6.一种指令的计算机可读媒体,包括用于设定一个定时器来预定一个时间间隔的装置;用于只要接收到一个有效的数据包、就重置定时器至该预定时间间隔的装置;用于当定时器到期时发送一个探测数据包并设定一个探测定时器的装置。
7.如权利要求6的指令的计算机可读媒体,进一步包括用于当该探测定时器到期并且仍没有接收到一个对该探测数据包的有效响应时将通讯链路的状态转换为故障模式的装置。
8.如权利要求6的指令的计算机可读媒体,进一步包括用于在接收到预定数量的连续的无效数据包后发送一个探测数据包并设定一个探测定时器的装置。
9.如权利要求8的指令的计算机可读媒体,进一步包括用于当该探测定时器到期并且仍没有接收到一个对该探测数据包的有效响应时将通讯链路的状态转换为故障模式的装置。
10.一种在高可行性以太网背板上进行链路故障检测的装置,包括用于设定一个定时器来预定一个时间间隔的装置;用于只要接收到一个有效的数据包、就重置定时器至该预定时间间隔的装置;用于当定时器到期时发送一个探测数据包并设定一个探测定时器的装置。
11.如权利要求10的在高可行性以太网背板上进行链路故障检测的装置,进一步包括用于当该探测定时器到期并且仍没有接收到一个对该探测数据包的有效响应时将通讯链路的状态转换为故障模式的装置。
12.如权利要求10的在高可行性以太网背板上进行链路故障检测的装置,进一步包括用于在接收到预定数量的无效数据包之后发送一个探测数据包并设定一个探测定时器的装置。
13.如权利要求12的在高可行性以太网背板上进行链路故障检测的装置,进一步包括用于当该探测定时器到期并且仍没有接收到一个对该探测数据包的有效响应时将通讯链路的状态转换为故障模式的装置。
14.一个背板系统,包括多个节点板;多个交换结构板;其中多个节点板的每个节点具有与多个交换结构板中的每一个之间的单一链路;其中选自构成多个节点板和多个交换结构板的组中的至少一个进一步包括用于设定一个定时器来预定一个时间间隔的装置;用于只要接收到一个有效的数据包、就重置定时器至该预定时间间隔的装置;及用于当定时器到期时发送一个探测数据包并设定一个探测定时器的装置。
15.如权利要求14的背板系统,其中选自构成多个节点板和多个交换结构板的组中的至少一个进一步包括用于当该探测定时器到期并且仍没有接收到一个对该探测数据包的有效响应时将通讯链路的状态转换为故障模式的装置。
16.如权利要求14的背板系统,其中选自构成多个节点板和多个交换结构板的组中的至少一个进一步包括用于在接收到预定数量的连续的无效数据包后发送一个探测数据包并设定一个探测定时器的装置。
17.如权利要求16的背板系统,其中选自构成多个节点板和多个交换结构板的组中的至少一个进一步包括用于当该探测定时器到期并且仍没有接收到一个对该探测数据包的有效响应时将通讯链路的状态转换为故障模式的装置。
18.如权利要求14的背板系统,其中每一交换结构板还包括一个重定向表;并且其中,当一个交换结构板检测到一个链路故障时,该交换结构板将该故障链路信息传达到其它交换结构板,促使其它交换结构板更新其重定向表。
19.如权利要求14的背板系统,其中探测定时器被设定一个最小的包括传输和切换延迟时间期间的间隔。
20.如权利要求14的背板系统,其中探测数据包被插入到一个媒体访问控制层顶端的分配模块。
全文摘要
本发明公开了一种在高可行性的背板结构上主动地检测链路故障的方法。该背板系统包括与冗余交换结构板进行通信的冗余节点板。节点板上的上行链路端口在与交换结构板通信的一端被逻辑分组为多个中继端口。只要接收到特定数量的坏的数据包或一个闲置计时器到期,则发送一个探测数据包并设定一个探测定时器。如果在探测定时器到期之前接收到对该探测数据包的响应,那么认为链路是有效的,否则假定链路有故障。优选地,节点板或交换结构板被配置用来恰当地处理一个探测数据包,该数据包优选具有相同的源和目的地址。
文档编号H04L12/26GK1527547SQ200310121759
公开日2004年9月8日 申请日期2003年12月19日 优先权日2002年12月20日
发明者王凌霄, 张荣峰, 林长华, 易正修 申请人:加林克半导体V.N.有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1