交换结构系统上部署的标准协议验证机制的方法和装置的制作方法

文档序号:7905531阅读:103来源:国知局
专利名称:交换结构系统上部署的标准协议验证机制的方法和装置的制作方法
技术领域
此处描述的一些实施例一般涉及交换结构系统,且尤其涉及用于交换结构系统上的标准协议操作、管理和操纵/维护验证机制的方法和装置。
背景技术
一些已知交换结构系统包括等价多路径(Equal Cost Multi I^ath,ECMP)机制,该机制提供例如从网络或以太网包交换结构交换元件向外的ECMP路径作为单个多机柜链路聚合组(LAG)的成员,该单个多机柜链路聚合组起源于该交换元件且其各个成员在不同下游交换元件终止。在这种已知交换结构系统中,流量(例如数据包)可以基于交换结构系统的硬件中的LAG负载分布机制跨越这些ECMP路径而分布。ECMP机制典型地包括对一组包报头字段以及可选地在硬件数据路径中编程或计算的其他值进行运算的散列函数。在使用这种ECMP机制的网络或交换结构中,任意给定流可以被负载均衡到一组ECMP路径。例如,不同类型的数据包(例如多播、单播)可以路由通过网络或交换结构中的不同路径。与这种网络或交换结构接口的典型操作、管理以及操纵/维护(OAM)机制(例如验证过程)可能不能解决这种路由/转发技术。例如,假设所有流类型采用如STP (生成树协议)拓扑所确定的各跳之间的相同路径,一些已知OAM机制可以针对网络或交换结构中的每个L2跳确定由各跳之间的OAM协议数据单元(PDU)的常规流所确定的业务层连接性。 然而,这种已知OAM机制可能给出假正或假负,导致网络或交换结构中业务层连接性作为整体的不正确的解释和判断。在一些已知交换结构系统中,不同数据包类型可以具有通过交换结构的不同转发路径。例如,ECMP功能性可以应用于一种流量类型,诸如单播流量,而ECMP功能性可不应用于其他流量类型,这些其他流量类型可以采用通过交换结构系统的线性转发路径。例如, 多播流量可以在由虚拟局域网(VLAN)泛洪路径确定的路径上被转发;这种路径可能不是 ECMP路径。因此,对于以下能力存在需要使得已知OAM机制与相关交换结构系统的OAM机制接口,以验证在耦合到交换结构系统的外部源设备和耦合到交换结构系统的外部目的设备之间通过交换结构系统的可能ECMP路径以及其他类型的转发路径。

发明内容
在一个实施例中,一种装置包括配置成根据交换结构验证协议接收第一验证包的目的边缘设备。该目的边缘设备配置成基于第一验证包验证从源边缘设备通过分布式交换结构到目的边缘设备的多个数据路径。该目的边缘设备配置成响应于接收第一验证包向外围处理设备发送第二验证包。该目的边缘设备还配置成根据不同于第一验证协议的验证协议发送第二验证包。


图1是根据一个实施例的交换结构系统的系统框图。图2是根据另一实施例的交换结构的示意性说明。图3是根据另一实施例的交换结构系统的一部分的示意性说明。图4是图3的交换结构系统的一部分的示意性说明,说明了验证包的流。图5是图3的交换结构系统的一部分的示意性说明。图6是说明根据一个实施例验证耦合到交换结构系统的外围处理设备之间的数据路径的方法的流程图。图7是与交换结构系统相关的连接表的示例。
具体实施例方式在一些实施例中,交换结构系统内的操作、管理以及操纵/维护(OAM)机制(此处也被称为“验证机制”或“验证过程”)可以与已知OAM接口。这允许数据包可以从耦合到交换结构系统的第一外围处理设备发射到耦合到交换结构系统的第二外围处理设备的所有可能路径的验证。此处描述的方法和系统例如可以在基于以太网链路聚合组(LAG)等价多路径(ECMP)的网络或者分组交换结构内使用。在这种网络或交换结构中,LAG可以用作以太网交换结构或网络中的ECMP机制,其中来自单个交换元件的向外LAG成员终止在多个下游交换元件。在这种网络或交换结构中,数据包可以基于交换结构系统的硬件中的LAG 负载分布机制跨越这些ECMP路径而分布。在一些实施例中,交换结构系统OAM机制可以与电气和电子工程师协会 (IEEE) 802. lag协议OAM机制接口。在一些实施例中,交换结构系统OAM机制可以与虚拟私有局域网(LAN)服务(VPLS)协议OAM机制接口。在一些实施例中,交换结构系统OAM机制可以与ITU (国际电信联盟)Y. 1731协议或MPLS-TP (多协议标签交换传输模式)OAM协议接口。如此处所描述,交换结构系统可以包括交换结构,该交换结构具有多级(例如第一级模块、第二级模块等)且可以部署OAM机制以验证数据包在耦合到交换结构的源边缘设备和耦合到交换结构的目的边缘设备之间通过交换结构系统的所有可能路径。这种验证过程在上文通过引用结合于此的2010年12月四日提交的名为“Methods And Apparatus For Validation of ECMP Paths In A Switch Fabric System,,白勺禾Ij串请 No. 12/981,025( “‘025 申请”)中描述。如此处所描述,在一些实施例中,可以在交换结构系统的源边缘设备接收从源外围处理设备发送的第一验证包。该第一验证包可以根据源外围处理设备的第一验证协议 (例如标准以太网协议)定义。该源边缘设备可以包括配置成根据与交换结构系统相关的第二验证协议(此处也称为“交换结构验证协议”)定义第二验证包的模块。第二验证包例如可以包括封装与第一验证包相关的报头信息的报头部分。第二验证包可以通过可以发送数据包的交换结构系统的每个可能的路径被发送到目的边缘设备(如上面通过引用结合于此的‘025申请所述)以验证可能路径中的每一个。目的边缘设备然后可以定义第三验证包,该第三验证包可以被耦合到目的边缘设备的目的外围处理设备接收。例如,目的边缘设备可以根据与目的外围处理设备兼容的标准验证协议定义第三验证包。该标准验证协议可以和与源外围处理设备兼容的标准验证协议相同。目的边缘设备可以向目的外围处理设备发送第三验证包以及状态指示器以指示是否(1)通过交换结构系统的所有数据路径是可操作的,或者(2)没有通过交换结构的数据路径是可操作的。因而,与第三验证包相关的状态指示器具有两个可能的状态(status state)。在一些实施例中,与第三验证包相关的状态指示器可以基于与第二验证包相关的状态指示器。例如,目的边缘设备可以定义与第二验证包相关的状态指示器以指示(1)通过交换结构系统的每个数据路径是可操作的,(2)通过交换结构系统的一个或多个数据路径不可操作(且其余路径是可操作的),或者(3)通过交换结构系统的每一条数据路径都不可操作。如果一个或多个数据路径不可操作,则目的边缘设备可以定义状态指示器以基于目的外围处理设备提供的预定标准发送到目的外围处理设备,这将在下面更详细描述。因而,与第二验证包相关的状态指示器具有三种可能的状态。在一些实施例中,一种装置包括配置成根据交换结构验证协议接收第一验证包的目的边缘设备。该目的边缘设备被配置成基于第一验证包验证从源边缘设备通过分布式交换结构到目的边缘设备的多个数据路径。该目的边缘设备配置成响应于接收第一验证包, 向外围处理设备发送第二验证包。该目的边缘设备还配置成根据不同于交换结构验证协议的验证协议发送第二验证包。在一些实施例中,非瞬时性处理器可读介质存储代表促使处理器根据交换结构验证协议接收第一验证包的指令的代码。从源边缘设备通过分布式交换结构到目的边缘设备的多个数据路径被验证。基于第一验证包,可以根据不同于交换结构验证协议的验证协议定义第二验证包。该第二验证包可以被发送到与第二验证包的验证协议兼容而不与交换结构验证协议兼容的外围处理设备。在一些实施例中,一种装置包括配置成根据交换结构验证协议从分布式交换结构接收至少一个第一验证包的结构验证模块。该结构验证模块被配置成解析该至少一个第一验证包以确定从源边缘设备通过分布式交换结构到目的边缘设备的多个数据路径的状态。 验证网关模块被配置成从交换结构模块接收多个数据路径的状态的指示器。验证网关模块被配置成根据不同于交换结构验证协议的验证协议基于指示器定义第二验证包,该第二验证包要被发送到与第二验证包的验证协议兼容而不与交换结构验证协议兼容的外围处理设备。此处示出和描述的实施例参考多个通信层(例如,数据链路层(第2层)、网络层 (第3层)、物理层(第1层)、应用层(第7层)等)。这些通讯层可以通过开放系统互连 (OSI)模型定义。因此,物理层可以是比数据链路层低级的层。另外,数据链路层可以是比网络层和应用层低级的层。而且,不同协议可以与OSI模型内的不同层相关和/或在OSI 模型内的不同层处实现。例如,以太网协议、光纤通道协议和/或基于信元的协议(例如, 在通信网络的数据面部分中使用的)可以与数据链路层相关和/或在数据链路层处实现, 且边界网关协议(BGP)可以与诸如应用层的较高层相关和/或在该层处实现。尽管BGP可以在应用层处实现,它可以用于发送转发状态信息(例如,端口标识符、网络片段标识符、 外围处理设备和标识符等),该转发状态信息用于填充与网络层和/或数据链路层相关的路由表。如此处所使用,术语“物理跳”可以包括两个模块和/或设备之间的物理链路。例如,操作地耦合第一模块和第二模块的数据路径可以被称为物理跳。类似地声明,物理跳可以物理地链接第一模块和第二模块。如此处所使用,术语“单物理跳”可以包括系统中两个模块之间的直接物理连接。 类似地声明,单物理跳可以包括链路,两个模块经由该链路耦合而无中间模块。因此,例如, 如果第一模块经由单物理跳耦合到第二模块,第一模块可以直接向第二模块发送数据包而不通过居间模块发送数据包。如此处所使用,术语“单逻辑跳”意味着在与第一协议相关的网络拓扑内是单跳的物理跳和/或物理跳组。类似地声明,根据与第一协议相关的拓扑,在经由物理跳和/或物理跳组操作地耦合到第二模块和/或设备的第一模块和/或设备之间没有居间节点。经由单逻辑跳连接到第二模块和/或设备的第一模块和/或设备可以使用与第一协议和第二模块和/或设备相关的目的地址向第二模块和/或设备发送数据包,而不管第一设备和第二设备之间的物理跳的数目如何。在一些实施例中,例如,第二协议可以使用第一协议的目的地址以通过单逻辑跳将数据包和/或信元从第一模块和/或设备路由到第二模块和/或设备。类似地声明,当第一模块和/或设备经由第一协议的单逻辑跳向第二模块和/或设备发送数据时,第一模块和/或设备对待该单逻辑跳,就好像它直接向第二模块和/或设备发送数据。在一些实施例中,交换结构可以用作单逻辑跳(例如,单个大型汇聚L2/L3交换机)的一部分。部分交换结构例如可以物理地跨越例如通过多个物理跳互连的很多机柜和 /或模块而分布。在一些实施例中,例如,交换结构的处理级可以包括在第一机柜中且该交换结构的另一处理级可以包括在第二机柜中。两个处理级可以逻辑地用作单个汇聚交换机 (例如,根据第一协议在相同的逻辑跳内)的一部分,但是包括相应处理级的对之间的分离的单物理跳。类似地声明,物理跳可以在交换结构内操作地耦合每一级,代表与用于将数据路由到交换结构外部的协议相关的单逻辑跳。另外,与用于将数据路由到单逻辑跳外部的协议相关的包分类和转发不需要在单逻辑跳内的每一级发生。在一些实施例中,例如,与第一协议(例如以太网)相关的包分类和转发可以在模块和/或设备经由单逻辑跳向另一模块和/或设备发送数据包之前发生。如此处所使用,交换结构内的模块例如可以是定义一级交换结构内的一个或多个交换机的操作耦合的电组件的任意集合和/或组。在一些实施例中,模块例如可以包括存储器、处理器、电迹线、光学连接器、软件(在硬件中运行)等。如此处所使用,“相关”例如可以意味着包括在、物理位于、一部分和/或操作为或用作一部分。例如,与交换结构的第一级相关的模块可以被认为包括在交换结构的第一级中、物理位于交换结构的第一级内或者是交换结构的第一级的一部分。与交换结构的第一级相关的模块还可以被认为是操作为或用作交换结构的第一级的一部分。另外,“相关”例如可以意味着引用、识别、表征、描述和/或从其发送。例如,与虚拟通道相关的标识符可以是识别、引用和/或涉及虚拟通道的标识符。
如在本说明书中所使用,除非上下文明确声明,单数形式“一个”和“该”包括复数所指事务。因而,例如,术语“一个交换结构”旨在表示单个交换结构或交换结构的组合。术语“第一级”、“第二级”等表示交换结构内的部分、模块或节点。在一些实例中, 这些术语表示给定交换结构内的特定级。例如,3级Clos网络包括从入口到出口的三个连续级;这种交换结构具有可以被称为“第一级”(相对于入口到出口方向的第一级)至第三级(相对于入口到出口方向的第三和最后一级)的三级。例如,图2表示给定交换结构内的特定级。然而,在其他实例中,术语“第一级”、“第二级”等表示交换结构内的任意级且对应于给定级讨论的顺序。例如,“第一级”可以表示讨论的第一级且可以对应于交换结构内的任意级(例如,3级Clos网络内的第三级),且“第二级”可以表示交换结构内的其余级 (例如,3级Clos网络内的第二级)。因而,应当理解,特定上下文将指示术语“第一级”、“第二级”等可以表示交换结构内的特定序数级或者可以表示交换结构内的任意特定级。图1是说明根据一个实施例的交换结构系统100的示意图。该交换结构系统100 包括交换结构102和多个边缘设备182、184、186。交换结构系统100将多个外围处理设备 114、124、134相互操作地耦合。如此处更详细描述,外围处理设备114、124、134例如可以是计算机节点、服务节点、路由器和存储节点。在一些实施例中,例如,外围处理设备114、124、 134包括服务器、存储设备、网关、工作站等。外围处理设备114、124、134可以使用例如光学连接(例如光缆或光连接器)、电学连接(例如电缆或电连接器)等任意合适的连接操作耦合到交换结构系统100的边缘设备 182、184、186。这样,外围处理设备114、124、134配置成经由边缘设备182、184、186在交换结构系统100内发送数据(例如,数据包、数据信元等)。在一些实施例中,外围处理设备 114、124、134分别与边缘设备182、184、186之间的连接是直接链路。这种链路可以被认为是单物理跳链路。在其他实施例中,外围处理设备可以经由中间模块操作耦合到边缘设备。 这种连接可以被认为是多物理跳链路。每个边缘设备182、184、186可以是配置成操作耦合外围处理设备114、1对、1;34到交换结构102的任意设备。在一些实施例中,例如,边缘设备182、184、186可以是接入交换机、输入/输出模块、柜顶式设备等。结构地,边缘设备182、184、186可以用作源边缘设备和目的边缘设备。因此,边缘设备182、184、186可以向/从交换结构102发送/接收数据 (例如,数据包和/或数据信元的数据流)且向/从连接的外围处理设备114、124、134发送 /接收数据。在一些实施例中,边缘设备182、184、186可以是硬件模块和软件模块(在硬件中运行)的组合。在一些实施例中,例如,每个边缘设备182、184、186可以包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)等。边缘设备182、184、186可以配置成准备好将要进入交换结构102的数据包(例如,以太网包)。例如,边缘设备182、184、186可以在向交换结构102发送数据包之前配置成转发、分类和/或修改数据包的包封装(例如,修改、添加和/或去除报头部分、页脚部分和/或包括在数据包内的任意其他标识符)。涉及包分类的附加细节在2008年9月30日提交的名为“Methods and Apparatus Related to Packet Classification Associated with a Multi-Stage Switch” 的美国专利申请序列号 No. 12/242,168 和 2008 年 9 月 30 日提交的名为"Methods and Apparatus for Packet Classification Based on Policy
8Vectors,”的美国专利申请序列号No. 12/242, 172中描述,此处通过引用这两篇专利申请的全部内容以作参考。边缘设备182、184、186中的每一个配置成经由交换结构102与其他边缘设备182、 184、186通信。具体而言,交换结构102配置成以相对低的等待时间在边缘设备182、184、 186之间提供任何点对任何点的连接性。例如,交换结构102可以配置成在边缘设备182、 184、186之间传输(例如运送)数据。在一些实施例中,交换结构102可以具有至少成百或成千的端口(例如,入口端口和/或出口端口),边缘设备182、184、186可以通过这些端口发射和/或接收数据。边缘设备182、184、186可以包括一个或多个网络接口设备(例如,40吉比特(( ) 以太网接口、100GB以太网接口等),边缘设备182、184、186可以通过这些网络接口设备向交换结构102发送信号和/或从交换结构102接收信号。可以经由电学链路、光学链路和 /或操作耦合到边缘设备182、184、186的无线链路向交换结构102发送和/或从交换结构 102接收这些信号。在一些实施例中,边缘设备182、184、186可以配置成基于一个或多个协议(例如,以太网协议、多协议标签交换(MPLQ协议、光纤通道协议、以太网上光纤通道协议、无限带宽(Infiniband)相关协议、基于信元的协议等)向交换结构102发送信号和 /或从交换结构102接收信号。交换结构102可以是操作耦合边缘设备182、184、186到其他边缘设备182、184、 186的任意合适的交换结构。在一些实施例中,例如,交换结构102可以是具有多级交换模块(例如,集成以太网交换机)的Clos网络(例如,无阻塞Clos网络、严格意义无阻塞Clos 网络、Benes网络)。在一些实施例中,例如,交换结构102可以类似于图2中示出的三级交换结构200且此处做更进一步的描述。在其他实施例中,图1中示出的交换结构102可以包括任意级数。在这些实施例中,例如,交换结构102可以包括5级、7级或9级。交换结构102例如可以是数据中心的核心部分的一部分,所述数据中心的核心部分类似于在2009
30 H11 ^^"Methods and Apparatus Related to Any-to-Any Connectivity Within a Data Center”的共同未决的美国专利申请No. 12/495,337中描述的数据中心的核心部分,此处通过引用并入该申请的全部内容以作参考。在一些实施例中,交换结构102可以是(例如可以用作)单个汇聚交换机(例如, 单个大型汇聚L2/L3交换机)。换句话说,交换结构102可以配置成操作为单个逻辑实体 (例如,单个逻辑网络元件)。类似地声明,交换结构102可以是第一边缘设备182、184、186 和第二边缘设备182、184、186之间的单逻辑跳的一部分(例如,与边缘设备182、184、186 和交换结构102之间的数据路径一起)。交换结构102可以配置成连接外围处理设备114、 124、134(例如促进其间的通信)。在一些实施例中,交换结构102可以配置成经由配置成以至少10(ib/S的速率发射数据的接口设备(未示出)通信。在一些实施例中,交换结构102 可以配置成经由配置成例如以2Gb/s、4Gb/s、8Gb/s、10Gb/s、40Gb/s、100Gb/s和/或更快的链路速度发射数据的接口设备(例如,光纤通道接口设备)通信。尽管交换结构102可以是逻辑地集中式的,交换结构102的实施方式也可以是高度分布式的,例如为了可靠性。例如,部分交换结构102可以物理地跨越例如很多机柜分布。在一些实施例中,例如,交换结构102的一个处理级可以包括在第一机柜中且交换结构 102的另一处理级可以包括在第二机柜中。两个处理级都可以逻辑地用作单个汇聚交换机的一部分(例如相同的逻辑跳内),但是具有各自的处理级的对之间的分离的单物理跳。此处描述涉及交换结构102的架构的更多细节。使用中,数据包(例如以太网包)可以经由交换结构系统100的其余部分在外围处理设备114、1M、134之间被发送。例如,数据包可以经由路径196从第一外围处理设备 124’发送到第二外围处理设备134’。第一外围处理设备124’可以经由链路192向边缘设备184发送数据包。边缘设备184然后可以准备好将要进入交换结构102的数据包。一旦准备好,边缘设备184经由链路192向交换结构102发送数据包。交换结构102内的交换模块可以路由数据包通过交换结构102。数据包可以经由链路194通过端口 198发送到边缘设备186。边缘设备186然后可以使用第一协议经由链路195向第二外围处理设备134’ 发送数据包。图2是根据一个实施例的交换结构200的示意性说明。交换结构200可以包括位于单逻辑跳内的多个物理跳。交换结构200是3级无阻塞Clos网络且包括第一级M0、第二级242和第三级M4。第一级240包括模块212。第一级MO的每个模块212是电子组件和电路的集合。在一些实施例中,例如,每个模块是专用集成电路(ASIC)。在其他实施例中,多个模块包含在单个ASIC或单个芯片封装中。在另一些其他实施例中,每个模块是分立电子组件的集合。在一些实施例中,第一级MO的每个模块212是交换机(例如,包交换机、帧交换机、集成以太网交换机和/或信元交换机)。这些交换机被配置成在数据流经交换结构200 时重定向数据(例如,数据包、数据信元等)。在一些实施例中,例如,每个交换机包括操作耦合到存储缓冲器(在图2中未示出)上的写接口的多个输入端口。类似地,一组输出端口操作耦合到存储缓冲器上的读接口。在一些实施例中,存储缓冲器可以是使用片上静态随机存取存储器(SRAM)实现的共享存储缓冲器以提供用于所有输入端口的足够带宽以在每个时间周期(例如,一个或多个时钟循环)写入一个输入信元(例如,数据包的一部分) 或数据包,且提供用于所有输出端口的足够带宽以在每个时间周期读取一个输出信元或数据包。每个交换机类似于可以在每个时间周期后重新配置的纵横式交换机那样操作。第一级240的每个模块212包括配置成在数据进入交换结构200时接收数据(例如,信号、数据包的信元、数据包等)的一组输入端口沈0。在该实施例中,第一级MO的每个模块212包括相同数目的输入端口沈0。类似于第一级M0,交换结构200的第二级242包括模块214。第二级242的模块 214结构上类似于第一级MO的模块212。第二级M2的每个模块214通过数据路径220 操作耦合到第一级MO的每个模块212。第一级MO的给定模块212和第二级M2的给定模块214之间的每个数据路径220被配置成促进从第一级240的模块212到第二级242的模块214的数据传输。第一级MO的模块212和第二级M2的模块214之间的数据路径220可以以配置成促进从第一级MO的模块212到第二级M2的模块214的数据传输的任意方式构建。在一些实施例中,例如,数据路径220是模块之间的光学连接器。在其他实施例中, 数据路径处于中间面中。这种中间面可以类似于2008年12月四日提交的名为“System Architecture for a Scalable and Distributed Multi-Stage Switch Fabric,,的美国申请No. 12/345, 500中描述的中间面,此处通过引用并入该申请的全部内容以作参考。这种中间面可以用于连接第二级的每个模块与第一级的每个模块。在另一些其他实施例中,两个或更多模块包含在单个芯片封装中且数据路径是电迹线。在一些实施例中,交换结构200是无阻塞Clos网络。因而,交换结构200的第二级242的模块214的数目基于第一级240的每个模块212的输入端口 260的数目变化。在可重新布置的无阻塞Clos网络(例如Benes网络)中,第二级M2的模块214的数目大于或等于第一级MO的每个模块212的输入端口 260的数目。因而,如果η是第一级MO的每个模块212的输入端口 260的数目且m是第二级242的模块214的数目,则m彡η。在一些实施例中,例如,第一级的每个模块具有5个输入端口。因而,第二级具有至少5个模块。 第一级的所有5个模块通过数据路径操作耦合到第二级的所有5个模块。换句话说,第一级的每个模块可以向第二级的任意模块发送数据。交换结构200的第三级244包括模块216。第三级Μ4的模块216结构上类似于第一级240的模块212。第三级244的模块216的数目典型地等同于第一级240的模块212 的数目。第三级Μ4的每个模块216包括配置成允许数据退出交换结构200的输出端口 262.第三级Μ4的每个模块216包括相同数目的输出端口沈2。而且,第三级Μ4的每个模块216的输出端口 262的数目典型地等同于第一级MO的每个模块212的输入端口 260 的数目。第三级244的每个模块216通过数据路径2 连接到第二级242的每个模块214。 第二级242的模块214与第三级244的模块216之间的数据路径2M配置成促进从第二级 242的模块214到第三级M4的模块216的数据传输。第二级242的模块214和第三级244的模块216之间的数据路径2M可以以配置成促进从第二级M2的模块214到第三级244的模块216的数据传输的任意方式构建。在一些实施例中,例如,数据路径2M是模块之间的光学连接器。在其他实施例中,数据路径处于中间面中。这种中间面可以用于连接第二级的每个模块与第三级的每个模块。在另一些其他实施例中,两个或更多模块包含在单个芯片封装中且数据路径是电迹线。在一些实施例中,第一级MO的模块212和第二级M2的模块214之间的数据路径220以及第二级242的模块214和第三级244的模块216之间的数据路径可以包括多个虚拟通道。图3示出根据另一实施例的交换结构系统300的一部分的示意性说明。交换结构系统300的所示部分包括交换结构302以及均操作耦合到交换结构302的第一边缘设备 310和第二边缘设备318。交换结构系统300可以操作耦合外围处理设备322到外围处理设备324。图3说明交换结构系统300的一个配置的示例,示出耦合到交换结构302的仅两个边缘设备310、318。然而,应当理解,交换结构302可以连接到不同数目的边缘设备。还应当理解,尽管图3中仅示出两个外围处理设备,交换结构系统300可以将更多的外围处理设备相互操作耦合。交换结构302结构和功能上可以类似于交换结构200(参考图2示出和描述)。 交换结构302包括一个第一级模块312、三个第二级模块314、314’和314”以及一个第三级模块316。第一级模块312经由分离的数据路径操作耦合到每个第二级模块314、314’、 314”。类似地,每个第二级模块314、314’和314”经由分离的数据路径操作耦合到第三级模块316。第一级模块312结构和功能上可以类似于例如上文参考图2描述的第一级模块212。另外,第二级模块314、314’和314”和第三级模块316结构和功能上可以类似于第一级模块312。尽管示出交换结构302具有耦合到三个第二级模块314、314’和314”的单个第一级模块312,每个第二模块耦合到单个第三模块316,应当理解,交换结构302可以包括多于一个的第一级模块、少于或多于三个的第二级模块和/或多于一个的第三级模块。在一些实施例中,例如类似于交换结构200,交换结构302可以完全互连,其中第一级的每个模块耦合第二级的每个模块且第二级的每个模块耦合到第三级的每个模块。在一些实施例中, 交换结构302可以不完全互连。例如,交换结构302可以包括例如仅连接到三个第二级模块314、314,和314”中的一个或两个的第二第三级模块(未示出)。如图3所示,在该实施例中,数据包可经由包括第一级模块312、第二级模块314 和第三级模块316的第一数据路径323从第一边缘设备310发射到第二边缘设备318。数据包还可以经由包括第一级模块312、第二级模块314’和第三级模块316的第二数据路径 325或者包括第一级模块312、第二级模块314”和第三级模块316的第三数据路径327从第一边缘设备310发射到第二边缘设备318。因而,对于该特定示例,图3说明数据包可以在第一边缘设备310和第二边缘设备318之间发送的通过交换结构系统300的三种可能的路径。在备选实施例中,可以存在来自特定级的特定模块的更多或更少的可能路径。数据路径323、325和327包括第一级模块312和第二级模块314、314,和314”之间以及第二级模块314、314’和314”模块和第三级模块316之间的数据路径连接,其中的每一个连接以配置成促进数据传输的任意方式构建。在一些实施例中,例如,数据路径包括模块之间的光学连接器、光纤和/或电学连接器。在一些实施例中,数据路径处于中间面或背板中。如此处更详细描述,外围处理设备322、3M例如可以是计算节点、服务节点、路由器和存储节点。在一些实施例中,例如,外围处理设备包括服务器、存储设备、网关、工作站等。外围处理设备322、3M可以使用例如光学连接(例如,光缆和光学连接器)、电学连接 (例如电缆和电学连接器)等任意合适的连接分别操作耦合到边缘设备310和318。这样, 外围处理设备322、3M配置成向和从边缘设备310和318发送和接收数据(例如,数据包、 数据信元等)。在使用中,例如,外围处理设备322可以配置成向外围处理设备3 发送数据包。 经由边缘设备(例如310、318)操作耦合到交换结构302的任意外围处理设备可以配置成向经由边缘设备耦合到交换结构302的任意其他外围处理设备发送数据包。仅用于说明性目的,外围处理设备322示意性示为源外围处理设备且外围处理设备3 示意性示为目的外围处理设备。结构上说,外围处理设备322和3M均可以用作源外围处理设备和目的外围处理设备。因此,外围处理设备322和3 均可以向和从交换结构系统300的边缘设备发送和接收数据。边缘设备310和318可以是配置成操作耦合外围处理设备(例如外围处理设备 322,324)到交换结构302的任意设备。在一些实施例中,例如,边缘设备310和318可以是接入交换机、输入/输出模块、柜顶设备等。仅用于说明性目的,边缘设备310示意性示为源边缘设备且边缘设备318示意性示为目的边缘设备。结构上说,边缘设备310和318均可以用作源边缘设备和目的边缘设备。因此,边缘设备310和318均可以向和从交换结构302发送数据和接收数据。在该示例实施例中,边缘设备310可以耦合到交换结构的第一级的任意数目的模块,且边缘设备318可以耦合到交换结构的任意数目的第三级模块。另外,尽管图3中示为操作耦合到单个交换结构302,边缘设备310、318可以操作耦合到任意数目的类似于交换结构302的交换结构。在一些实施例中,例如,边缘设备310可以耦合到与交换结构302的第一级相关的第一级模块312和与第二交换结构(在图3中未示出)的第一级相关的模块 (在图3中未示出)。在这种实施例中,边缘设备310可以要么向第一级模块312要么向与第二交换结构的第一级相关的模块发送数据。在一些实施例中,边缘设备310、318可以配置成准备将要进入交换结构302的数据包。例如边缘设备310可以配置成在向交换结构302发送数据包之前转发、分类和/或修改数据包的包封装。在一些实施例中,例如,边缘设备310可以向数据包附加源标识符(例如,源MAC地址、IP地址等)、目的标识符(例如,目的MAC地址、IP地址等)和/或任意其他信息。这种信息可以用于路由数据包通过交换结构302。在一些实施例中,数据包(例如从外围处理设备322发送到边缘设备310)可以包括有效载荷部分和报头部分。有效载荷部分可以包括需要发送到目的外围处理设备(例如外围处理设备324)的数据。报头部分(也被称为“报头”)可以包括识别信息。在一些实施例中,例如,报头可以包括与源和目的外围处理设备(例如分别为322和324)相关的IP 5-元组的至少一部分。在这种实施例中,例如,报头可以包括目的外围处理设备MAC地址、 目的外围处理设备因特网协议(IP)地址、源外围处理设备MAC地址、源外围处理设备IP地址和/或传输协议标识符。在图3的示例实施例中,目的外围处理设备MAC地址和目的外围处理设备IP地址可以与外围处理设备3 相关,且源外围处理设备MAC地址与源外围处理设备IP地址可以与外围处理设备322相关。在一些实施例中,边缘设备310还可以附加源边缘设备标识符(例如与310相关的MAC和/或IP地址)和目的边缘设备标识符(例如,与318相关的MAC和/或IP地址)。 这种信息可以与查找表结合使用以路由数据包通过交换结构302,如2009年11月18日提交的名夕卜“Methods and Apparatus Related to a Distributed Switch Fabric,,的美国专利申请No. 12/607,162中示出和描述,此处通过引用并入该申请的全部内容以作参考。使用与查找表结合的这种源和目的专用信息以路由数据包通过交换结构302可以确保要被发送到特定目的地(例如外围处理设备324)的源于特定源(例如外围处理设备322)的每个数据包将经由相同的路径(例如,通过与交换结构302的每一级相关的相同模块)发送通过交换结构320。类似地声明,通过交换结构302从第一边缘设备310发送到第二边缘设备318的数据包的顺序得以维持。使用包含在数据包的报头内的信息,边缘设备310可以确定例如在具有多个第一级模块的交换结构中哪个第一级模块发送数据包。在一些实施例中,例如,边缘设备310可以使用散列函数,该散列函数使用诸如目的外围处理设备MAC地址、目的外围处理设备IP 地址、源外围处理设备MAC地址、源外围处理设备IP地址、目的边缘设备标识符、源边缘设备标识符和/或传输协议标识符的报头值作为输入,以确定哪个模块(例如哪个第一级模块)要发送数据包。在第一级模块312接收数据包之后,第一级模块312可以做出哪个第二级模块
13314,314'和314”发送数据包的判断。在一些实施例中,例如,第一级模块312可以使用散列函数,如上针对边缘设备310所描述,该散列函数使用诸如目的标识符和/或源标识符的报头值作为输入。基于(这些)输入,散列函数可以确定哪个第二级模块314、314’和314” 转发数据包。第二级模块314、314’和314”可以类似地使用散列函数来向第三级模块316 转发数据包。使用目的边缘设备标识符,第三级模块316可以将数据包转发到目的边缘设备318。使用目的外围处理设备标识符,边缘设备318然后可以将数据包转发到目的外围处理设备3M。在交换结构系统300的操作中,可能希望验证交换结构系统300以确保从源边缘设备(例如310)发送的数据包通过数据包可以发送且到达目的边缘设备的可能的路径中的任何一个(例如,路径323、325、327)到达所需的目的边缘设备(例如318)。由于在这种ECMP交换结构系统(例如300)内数据包可以被发送以到达特定目的边缘设备的多个可能的路径,如果验证包仅通过ECMP路径中的一部分(例如路径323、325、327之一)发送, 通过交换结构系统到达目的边缘设备的其他可能路径内的任意可能故障将不被识别。为了解决该问题,如上文通过引用结合于此的‘025申请所述,交换结构系统300包括OAM机制 (例如,验证机制或验证过程)。验证过程包括通过验证包可以从源边缘设备发送到目的边缘设备的交换结构系统300的可能路径中的每一个发送不同的验证包。这些验证包中的每一个例如在其报头内可以具有与交换结构系统300内的不同路径相关的不同值。该验证过程可以识别交换结构系统300内的验证包的这些可能路径内的任意故障。如‘025申请所描述,交换结构系统300的验证过程可以包括通过所有可能的路径 (323、325、327)从源边缘设备310发送交换结构验证包以到达目的边缘设备318,交换结构验证包可以通过这些可能的路径在交换结构系统300内被发送。交换结构验证包可以根据与交换结构系统300相关的协议定义。源边缘设备310、第一级模块312、第二级模块314、 314’和314”和第三级模块316可以结构和功能上配置为与‘025申请中描述的交换模块相同或类似。具体而言,源边缘设备310、目的边缘设备318以及交换结构系统300的每个模块 (例如,第一级模块312、第二级模块314、314,和314”和第三级模块316)可以包括复制引擎(未示出)、处理管道(未示出)和散列引擎(未示出)。第一级模块312可以从源边缘设备310接收验证包。验证包可以用于测试或验证交换结构系统300以识别通过验证包可以从源边缘设备310发送到目的边缘设备318的交换结构系统300的任意可能路径内的任意故障。当在第一级模块312接收验证包时,复制引擎可以使用验证包的报头部分内的信息来确定多少输出端口可用,通过这些输出端口,验证包可以被发送以到达边缘设备318。 复制引擎可以基于可能的输出端口的数目定义一组验证包。具体而言,复制引擎可以针对验证包可以被发送以到达边缘设备318的每个可能输出端口定义验证包的复制或复本。复制引擎可以向封装被包括在每个验证包内的其他报头(例如从原始验证包复制的报头)的验证包中的每一个附加报头。附加的报头可以包括与本模块的特定输出端口相关的报头值。在一些实施例中,报头值可以具有与输出端口的直接关联。例如,报头值可以从包括散列函数输入值和耦合到第一级模块312的输出端口的标识符之间的一个或多个关联的反向散列查找表直接定义。在一些实施例中,报头值可以具有与输出端口的间接关联。例如,报头值可以与唯一散列索引值关联,该唯一散列索引值可以是LAG成员的表的索引。在这种实施例中,报头值可以与LAG成员输出端口间接相关。在向验证包附加报头之后,验证包可以被发送到第一级模块312的处理管道以用于可以执行的验证包的任意进一步处理。验证包然后可被转发到散列引擎。散列引擎可以使用分配的报头值作为散列函数的输入以判断验证包中的每一个通过哪个输出端口(例如从多个输出端口中)发送以到达目的边缘设备318。因为报头值基于反向散列查找表分配,散列函数的输出被预定为与反向散列查找表中的报头值相关的输出端口的标识符。散列引擎然后可将每个验证包转发到不同输出端口以发送到第二级模块314、 314’和314”的不同一个。每个第二级模块314、314’和314”可以在接收验证包时执行相同的功能。例如,每个第二级模块314、314’和314”可以定义与该模块的每个可能输出端口相关的一组验证包以向第三级模块316(以及最终目的边缘设备318)发送验证包。第三级模块316还可以对在第三级模块316接收的验证包执行相同的功能。例如,第三级模块 316可以定义与第三级模块316的每个可能输出端口相关的一组验证包以将该验证包发送到目的边缘设备318。因而,交换结构系统300可以验证从源边缘设备310到目的边缘设备 318的验证包的所有可能路径。还可能希望验证从源外围处理设备322到目的外围处理设备324的数据路径。因为外围处理设备322、3M可以根据不同于交换结构系统的验证协议的标准验证协议操作, 从外围处理设备发送到交换结构系统的边缘设备的典型标准协议验证包可能不被边缘设备识别为验证包。在这种情形中,标准验证包可以作为标准数据包被路由通过交换结构系统300,且因此,可能不被发送通过交换结构系统300的所有可能路径。为了解决这种不兼容性,交换结构系统300包括可以与标准协议接口的验证过程以及与外围处理设备相关的标准协议验证包,使得从源外围处理设备322通过交换结构系统300到目的外围处理设备 324的所有可能路径都可以被验证。具体而言,标准验证包SVPl可以从源外围处理设备322发送到源边缘设备310,如图4所示。标准验证包SVPl可以根据与源外围处理设备322相关的的标准验证协议(诸如IEEE 802. lag协议、VPLS协议、ITU (国际电信联盟)Y. 1731协议或MPLS-TP (多协议标签交换传输配置文件)OAM协议)定义。如此处所描述,标准验证包SVPl可以是数据包。标准验证包SVPl例如可以是以太网数据包且包括具有源ID、目的ID等的报头(还称为“报头部分”)。标准验证包SVPl例如可以是单播或多播包。因此,在源边缘设备310从源外围设备322接收的SVPl包可以被该源边缘设备310识别为已知单播、未知单播、已知多播或未知多播包中的任一个。标准验证包SVPl可以用于测试和验证从源外围处理设备322到目的外围处理设备324的数据路径。在接收标准验证包SVPl之后,源边缘设备310可以以针对‘025申请中的验证过程所描述且针对第一级模块312描述的类似方式定义交换结构验证包FVP。例如,源边缘设备310可以定义交换结构验证包FVP,该交换结构验证包FVP包括被附加到标准验证包 SVPl且封装标准验证包SVPl的报头的符合交换结构协议的新报头。交换结构验证包FVP 可以如‘025申请中的验证过程所述(且如上文所述)通过交换结构系统300发送以验证交换结构验证包FVP可以通过交换结构系统300从源边缘设备310发送到目的边缘设备318 的所有可能路径。当交换结构验证包FVP通过交换结构系统300发送时,一个或多个交换结构验证包FVP将最终在目的边缘设备318被接收。图5说明目的边缘设备318。如图5所示,目的边缘设备318包括处理器350和存储器360。处理器350包括结构验证模块352和验证网关354。目的边缘设备318还可以包含与此处描述的其他边缘设备和/或‘025申请中描述的目的边缘设备相同或类似的其他特征和功能。处理器350可以是各种处理器中的任意一个。这种处理器例如可以实现为诸如嵌入式微处理器、作为计算机系统的一部分的微处理器、专用集成电路(ASIC)和可编程逻辑设备(PLD)的硬件模块。一些这种处理器可以具有多个指令执行单元或核。这种处理器还可以实现为以诸如Java 、C++、C、汇编、硬件描述语言或任意其他合适的编程语言的编程语言写的一个或多个软件模块(在硬件上执行)。根据一些实施例的处理器可以包括为专用目的或多个目的而专门设计和构建的介质和计算机代码(也可称为代码)。在一些实施例中,例如,处理器350可以包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)等。处理器350可以操作耦合到存储器360。存储器360可以是只读存储器(“ROM”); 例如磁盘驱动的随机存取存储器(“RAM”)或者诸如静态RAM (“SRAM”)或动态RAM (“DRAM”) 的固态RAM;和/或FLASH存储器或固态数据盘(“SSD”)。在一些实施例中,存储器360可以是存储器的组合。例如,存储器可以包括耦合到磁盘驱动和SSD的DRAM缓存。如上所述,可以在目的边缘设备318从交换结构302接收一个或多个交换结构验证包FVP。例如,在图3中示出的交换结构系统300的上述配置中,在一些实施例中,目的边缘设备318可以从第三级模块316接收三个交换结构验证包FVP。例如,第三级模块316 可以从第二级模块314、314’、314”中的每一个接收交换结构验证包,且进而可以将这三个交换结构验证包发送到目的边缘设备318。如‘025申请中更详细地描述,在交换结构系统验证过程中,取决于诸如数据包可以通过交换结构系统300从边缘设备310发送到目的边缘设备318的可能路径数目以及特定交换结构302的级数的因素,可以定义更多或更少的交换结构验证包。用于说明性目的,图4说明由交换结构302定义且转发到目的边缘设备 318 (例如,从第三级模块316)的三个交换结构验证包FVP1、FVP2、FVP3。基于接收的交换结构验证包FVP1、FVP2、FVP3,目的边缘设备318的结构验证模块 (此处也称为“FV模块”)352可以判断交换结构系统300中的故障。在一些情况中,交换结构系统内的故障例如可以是被多个服务(例如,VLAN、MPLS标签等)共享的公共状态。例如,当端口上的调度器队列是丢弃流量时可能发生故障。这种类型的故障可以被多个服务所共享。在一些情况中,故障可以专用于特定服务。例如,服务表可能被误用,导致针对特定服务的丢弃。在一些实施例中,FV模块352可以识别故障的存在而不识别故障的具体位置。例如,目的边缘设备318可以接收N个交换结构验证包且FV模块352可以将该数目与目的边缘设备318期望接收的交换结构验证包的数目M进行比较。例如,目的边缘设备318可以对应于验证包可以从源边缘设备发送以在目的边缘设备318接收所通过的路径的数目而存储M个期望的验证包。FV模块352可以将应当接收的验证包的期望数目M与实际接收的验证包数目N进行比较。如果N小于M,则FV模块352可以判断期望验证包M中的一个或多个没有到达目的边缘设备318,但是不能识别哪个路径发送丢失的验证包,或者该该路径中的哪个(些)模块可能出现故障。如果N等于M,则识别无故障。在一些实施例中,目的边缘设备318可以识别如果发生故障,故障处于交换结构系统300中的何处。例如,目的边缘设备318(例如FV模块352)可以被编码(编程、实现) 以获知交换结构验证包FVP可以在交换结构系统300内发送以到达目的边缘设备318的所有可能路径和模块。基于在目的边缘设备318接收的交换结构验证包(例如FVP1、FVP2、 FVP3)的报头信息,FV模块352可以识别所接收的交换结构验证包FVP1、FVP2、FVP3被发送经过的所有数据路径和模块。因而,目的边缘设备318可以判断哪个(些)交换结构验证包及其相应路径未被发送到目的边缘设备318。在一些实施例中,为了确定应在目的边缘设备318接收的期望交换结构验证包的数目M,目的边缘设备318可以接收交换结构验证包将通过交换结构系统300被发送的指示。例如,在一些实施例中,目的边缘设备318可以基于在预设周期基础上激活的验证过程获知应接收的期望的交换结构验证包的数目M。例如,如果目的边缘设备318没有基于预设调度接收M个期望验证包中的一些或全部,则目的边缘设备318可以获知在从源边缘设备310到目的边缘设备318的可能路径中的一些或全部中存在故障。在一些实施例中,目的边缘设备318可以被编码(编程、实现)以基于启动以执行一次验证测试的验证过程获知应接收的期望交换结构验证包的数目M。例如,在一些实施例中,交换结构系统300可以包括控制板,且源边缘设备310可以向目的边缘设备318发送信号以指示交换结构验证包将被发送。因而,在这种实施例中,如果目的边缘设备318没有接收到该验证包,则目的边缘设备318将获知在从源边缘设备310到目的边缘设备的可能路径中的一个或多个中存在故障。如上所述,基于在目的边缘设备318接收了多少交换结构验证包的判断,FV模块 352可以判断是否存在三个状态之一。具体而言,FV模块352可以确定(1)从源边缘设备 310通过交换结构系统300到目的边缘设备318的每个数据路径可操作,(2)从源边缘设备 310通过交换结构系统300到目的边缘设备318的一个或多个数据路径不可操作(且其余路径可操作),或(3)从源边缘设备310通过交换结构系统300到目的边缘设备318的所有数据路径不可操作。如上所述,如果FV模块352判断没有接收到期望数目的M个交换结构验证包,则FV模块352可以确定通过交换结构系统300的数据路径中的一个或多个是不可操作。在这种情形下,如图4所示,FV模块352可以将接收的交换结构验证包(例如FVP1、 FVP2、FVP3)汇聚成单个交换结构验证包FVP4,且定义附加到单个交换结构验证包FVP4以指示数据路径中的一个或多个不可操作的第一状态指示器。FV模块352然后可以向验证网关3M发送该单个交换结构验证包FVP4和第一状态指示器。如果FV模块352判断已经接收了所有期望的交换结构验证包,则FV模块352可以将交换结构验证包FVP1、FVP2、FVP3汇聚成单个交换结构验证包FVP4且定义指示所有数据路径可操作的第一状态指示器。FV模块352然后可以向验证网关3M发送该单个交换结构验证包FVP4和第一状态指示器。如果FV模块352判断没有接收到任何期望的交换结构验证包,则FV模块352可以向验证网关2M发送指示没有数据路径可操作的第一状态指示
ο在一些实施例中,第一状态指示器还可以包括接收的交换结构验证包的数目N和期望的交换结构验证包的数目M之间的比较的指示。在一些实施例中,这种指示可以作为百分数提供。例如,该指示可以包括与接收的期望的交换结构验证包M的百分数相关的百分数P,其中P = N/M。在一些实施例中,该指示可以作为未接收到的交换结构验证包的数目而提供。在一些实施例中,该指示可以作为诸如N>M或N = M的比较结果而提供。在一些实施例中,指示可以作为N = 0提供以指示没有接收到交换结构验证包。在从FV模块352接收汇聚的交换结构验证包FPV4之后,验证网关3M可以在交换结构系统300的验证过程中去除附加到交换结构验证包FVP4的交换结构报头,留下来自标准验证包SVPl的原始报头。因而,验证包FVP4可以根据源外围处理设备322的标准验证协议重新定义为标准验证包SVP2,使得标准验证包SVP2可以与目的外围处理设备3 的协议相兼容。在备选实施例中,交换结构验证包FVP4可以封装在另一包内,例如验证包 FVP5(未示出)内。该验证包FVP5可以在验证网关邪4处被接收。在这种实施例中,验证包FVP5可以用于验证源边缘设备310和目的边缘设备318之间的线性转发路径,例如,用于不是多路径的多播流量。这样,验证包FVP5可以是多播包。如果验证包FVP5在边缘设备318处被接收,则它可以基于封装的验证包FVP4的内容被适当地处理。例如,标准验证包SVP2的内容可以被丢弃,或者可以转发到目的外围处理设备324。如果在边缘设备318 未接收到验证包FVP5,则没有SVP2可以被转发到目的外围处理设备324,这指示丢弃或交换结构中的故障。验证网关3M还可以定义与标准验证包SVP2 —起发送到目的外围处理设备3M 的第二状态指示器。第二状态指示器可以基于FV模块352定义的第一状态指示器。具体而言,验证网关邪4可以定义第二状态指示器,该状态指示器指示(1)从源边缘设备310通过交换结构系统300到目的边缘设备318的所有数据路径可操作,或者(2)从源边缘设备 310通过交换结构系统300到目的边缘设备318的所有数据路径不可操作。在该示例中,因为标准协议外围处理设备仅可以解释指示所有路径可操作或所有路径不可操作的状态指示器,验证网关3M不定义指示数据路径中的一个或多个(但不是全部)不可操作的状态指示器。因而,验证网关354基于从FV模块352接收的三个可能的第一状态指示器定义两个可能的第二状态指示器之一。如果验证网关3M从FV模块352接收指示所有数据路径可操作的第一状态指示器,则验证网关邪4可以定义第二状态指示器以指示所有数据路径可操作。如果验证网关 354从FV模块352接收指示所有数据路径不可操作的第一状态指示器,则验证网关3M可以定义第二状态指示器以指示所有数据路径不可操作。如果验证网关3M从FV模块352 接收指示数据路径中的一个或多个(但不是全部)不可操作的第一状态指示器,则验证网关3M可以基于在下面更详细描述的目的外围处理设备3M提供的预定规则或标准定义第二状态指示器。在一些实施例中,预定标准可以规定如果从FV模块352接收的第一状态指示器指示一个或多个数据路径(并不是全部)不可操作,则第二状态指示器可以定义为指示所有数据路径可操作。在一些实施例中,预定标准可以规定如果从FV模块352接收的第一状态指示器指示一个或多个数据路径(并不是全部)不可操作,则第二状态指示器可以定义为指示没有数据路径可操作。在一些实施例中,预定标准可以规定如果在目的边缘设备318接收的期望交换结构验证包M的百分数P超过预设阈值百分数,则第二状态指示器可以指示所有数据路径不可操作。阈值百分数可以是例如至100%之间的任意百分数。例如,在一些实施例中, 阈值百分数可以是50%。在一些实施例中,预定标准可以规定如果在目的边缘设备318接收的期望交换结构验证包M的百分数P低于预设阈值百分数,则第二状态指示器可以指示所有数据路径可操作。阈值百分数可以是例如至100%之间的任意百分数。例如,在一些实施例中,阈值百分数可以是50%。在一些实施例中,预定标准可以规定如果通过交换结构系统300的预定数目的可能数据路径可操作,则第二状态指示器可以指示所有数据路径可操作。例如,如果第一状态指示器包括接收了包括数目N > 0个交换结构验证包的指示,则第二状态指示器可以指示所有路径可操作。在一些实施例中,预定标准可以规定如果通过交换结构系统300的预定数目的可能数据路径不可操作(例如,一个、两个、三个等),则第二状态指示器可以指示所有数据路径不可操作。例如,如果第一状态指示器包括接收了任意数目N<M个交换结构验证包的指示,则第二状态指示器可以指示所有路径不可操作。这些仅是目的外围处理设备可以提供的示例预定标准。应当理解备选地可以使用其他标准和规则。在判断第二状态指示器之后,验证网关3 可以向目的外围处理设备3 发送标准验证包SVP2以及第二状态指示器。基于标准验证包SVP2和第二状态指示器,目的外围处理设备3 可以确定从源外围处理设备322通过交换结构系统300到目的外围处理设备 324的数据路径是否可操作。尽管上面示出和描述的交换结构302是3级交换结构,在交换结构系统的其他实施例中,交换结构可以包括任意级数。在一些实施例中,例如,交换结构可以是类似于 2008 年 12 月 29 日提交的名为“System Architecture for a Scalable and Distributed Multi-stage Switch Fabric”的共同未决的美国专利申请No. 12/345,500以及2008 年 12 月 29 日提交的名为“Methods and Apparatus Related to a Modular Switch Architecture"的共同未决的美国专利申请No. 12/345,502中示出和描述的交换结构的5 级结构,此处通过引用并入每一个申请的全部内容以作参考。因而,此处描述的验证过程可以用在具有任意数目的模块和任意级数的交换结构系统中。例如,在其他实施例中,例如,在5级交换结构中,可以存在多于一个的第三级模块,且因此,从第三级模块到第四级模块的多个不同路径以及从第四级模块到第五级模块的多个不同路径的可能性可存在。在这种实施例中,第三级模块可以以如上文针对第一级模块和第二级模块描述的相同方式定义与可能输出端口中的每一个相关的验证包。另外, 此处描述的验证包可以用于第一级的模块和交换结构的另一级的模块之间的单个链路,如针对交换结构系统300所述,或者可以用于验证第一级的模块和交换结构的另一级的模块之间的LAG。验证过程还可以用于验证边缘设备和外围处理设备之间的LAG。图6是说明根据一个实施例验证耦合到交换结构系统的外围处理设备之间的数据路径的方法的流程图。在570,可以在交换结构系统的源边缘设备接收第一验证包(例如,此处描述的标准验证包SVP1)。交换结构系统例如可以是如此处描述的交换结构系统。 第一验证包可以根据第一验证协议定义。例如,在一些实施例中,第一验证协议可以是VPLS 操作、管理和操纵OAM协议。在一些实施例中,第一验证协议可以是IEEE 802. lag协议或 ITU (国际电信联盟)Y. 1731协议或MPLS-TP (多协议标签交换传输配置文件)OAM协议。
19
在572,源边缘设备可以基于第一验证包定义第二验证包(例如,此处描述的交换结构验证包FVP)。第二验证包可以根据与不同于第一验证包的第一验证协议的交换结构系统相关的第二验证协议(也称为“交换结构验证协议”)定义。在574,可以基于第二验证包验证从源边缘设备通过交换结构系统到交换系统结构的目的边缘的多个数据路径。验证的数据路径可以例如是多播数据路径或单播数据路径。在576,第三验证包(例如,标准验证包SVP》可以基于第二验证包且根据第一验证协议由目的边缘设备定义。在578,可以基于具有至少三个可能状态的第二验证包的参数定义具有两个可能状态的参数。例如,如此处所描述,可以针对第二验证包定义第一状态指示器,且可以基于第一状态指示器针对第三验证包定义第二状态指示器。在580,第三验证包可以被发送到耦合到目的边缘设备的目的外围处理设备。目的外围处理设备可以与第一验证协议兼容,但是不与第二验证协议兼容。 在一些实施例中,耦合到交换结构(例如位于计算节点)的OAM管理模块(OMM)可以是跟踪OAM包从每一级到下游级的传输的集中式实体。接收或超时可以被指示给该0ΜΜ。 OMM例如可以由负责设立交换结构中的转发路径的网络管理员访问。OMM可以准备跨越交换结构转发状态的连接表(也称为链路状态表或链路状态图),其示例在图7中示出。连接表可以获取交换结构系统内的多路径的转发状态。连接表还可以获取对应于诸如多播或广播的不同类型的业务流的路径的转发状态。连接表可以跨越源边缘设备(在图7中示为 T0R-1)和目的边缘设备(在图7中示为T0R-3)分解对应于不同类型业务流(例如,多径、 单播、Mcast、Beast)的转发状态信息以获得包括不同流类型的“ANDING”的单个转发状态连接表。用户向交换结构应用的标准验证协议配置与OMM共享。当在也具有有效SVP配置的入口边缘设备接收到标准验证协议(SVP)PDU时,该SVP PDU可以被转发到0ΜΜ。在一些实施例中,OMM可以基于共享SVP配置启动连接表的产生。在这种情况中,连接表还周期性地刷新。OMM可以产生接收的SVP DPU和连接表之间的映射。在备选实施例中,OMM可以基于接收的SVP PDU触发连接表的产生。因为OMM知道跨交换结构的SVP配置,OMM因而知道SVP PDU将从其进入交换结构的目标边缘设备。OMM将接收的SVP PDU从相关入口边缘设备转发到具有一定转发路径可达性的出口边缘设备的子集(来自于该集合)。OMM可以通过在交换结构内跨越相关的多个转发路径(例如上文结合图2讨论的交换结构的模块之间)发送交换结构OAM PDU(或SVPPDU),来执行交换结构内链路状态的验证。OMM跟踪从交换结构内的模块发送到交换结构内的相邻模块的每个PDU的接收,且当没有被接收时,跟踪PDU的超时。基于这些接收的PDU和超时,OMM可以建立和刷新连接表 (或者链路状态表或者链路状态图),分开地反映交换结构内跨越每一跳的状态。一旦识别了链路状态,如下面讨论,OMM可以将链路状态分解为两个状态指示器的组。备选地,OMM可以使用链路状态来准备交换结构的详细内部图。链路状态可以被发送到目标边缘设备,该目标边缘设备可以使用该链路状态来产生适当的验证包且将它们发送到适当的外围处理设备。如图7所示,源边缘设备(T0R-1)例如可以是诸如图1所示的边缘设备184的边缘设备,且目的边缘设备(T0R-3)可以是诸如图1中的边缘设备186的边缘设备。图7的交换结构例如可以类似于图2示出的交换结构200。图7中的交换结构包括具有第一级模块Fl-Ia至Fl-Sa的第一级、具有第二级模块F2-1至F2_8b的第二级以及具有第三级模块 F3-la至F3-8b的第三级。如连接表所示,源边缘设备连接到第一级模块Fl_la。第一级模块Fl-Ia连接到第二级模块F2-1至F2-8且第二级模块中的每一个(F2-1至F2_8b)连接到第三级模块F3-la。第三级模块F3-la连接到目的边缘设备(T0R-3)。该连接表的产生例如可以基于源边缘设备上的用户行为(例如命令)、或例如源边缘设备上标准OAM协议数据单元的接收而被触发。备选地,连接机制可以是跟踪跨越交换结构的转发状态的周期性操作。在备选实施例中,中心连接表可以基于跨越各跳的个体交换结构验证包(FVP)的发射和接收维持用于整个交换结构的聚合转发状态。交换结构验证包(FVP)的状态指示器可以承载从连接表获取的概述或详细信息,在交换结构内提供用于在源边缘设备和目的边缘设备之间的转发路径的劣化的路径信息。尽管上面已经描述了各种实施例,应当理解它们仅以示例方式而非限制方式提出。当在上述方法指示某些事件以某一顺序发生时,某些事件的顺序可以修改。另外,当可能时,某些事件可以在并行过程中并发地执行并且可以如上所述顺序地执行。尽管上面已经描述了各种实施例,应当理解它们仅以示例方式而非限制方式提出,且可以做出形式和细节的各种变化。此处描述的设备和/或方法的任意部分可以以任意组合结合,除了相互排斥的组合。此处描述的实施例可以包括描述的不同实施例的功能、 组件和/或特征的各种组合和/或子组合。另外,此处描述的实施例可以包括没有参考特定实施例专门说明和描述的各种其他特征和功能。例如,在一些实施例中,数据包(例如验证包)还可以在数据包的报头中包括虚拟局域网(VLAN)标识符。在此处描述的验证机制的一些实施例中,这种VLAN标识符可以贡献于判断验证包可以路由的交换结构系统的路径。例如,在一些实施例中,在交换模块的散列引擎处使用的散列函数可以被编码(编程,实现),使得验证包不通过交换模块的一个或多个可能的输出端口(例如,与不同VLAN相关的那些端口)发送。尽管此处描述的验证过程指的是与标准协议验证过程接口的交换结构系统验证过程,在一些实施例中,该验证过程可以配置成与其他类型的验证过程接口。例如,验证过程可以包括与其他已知标准协议、非标准协议和/或此处没有专门讨论的私有协议接口的交换结构验证过程。在一些实施例中,验证包可以包括报头信息以确保验证包被发送到交换模块的所有出口队列。例如,此处描述的交换模块可以具有与交换模块的输出端口相关的一个或多个出口队列。出口队列可以确保数据包被发送到用于该数据包的合适的输出端口。例如, 交换模块可以具有用于发送高优先级数据包的第一输出端口以及用于发送低优先级数据包的第二输出端口。在此处描述的验证机制的一些实施例中,出口队列标识符可以贡献于判断可以发送验证包的交换结构系统的路径。例如,除了判断可以发送验证包的输出端口, 验证包的报头值可以指示可以发送数据包到哪些出口队列。在一些实施例中,验证包可以包括定义交换结构内的某一服务质量(QoQ处理的报头信息。例如,如果用户经历具有特定服务等级(COQ流量的丢失包,用户可以使用特定 COS值启动或配置0AM。COS值可以包括在验证包报头中且此处描述的OAM验证机制然后可以启动。在这种情况中,对应于该COS值的转发路径也可以被验证。在一些实施例中,交换模块可包括多个查找表。例如,可以针对不同类型的数据包 (例如,已知单播、未知单播、已知多播、未知多播)定义不同的散列查找表。不同类型的数据包可以具有在源边缘设备和目的边缘设备之间通过交换结构系统的不同路径。因而,例如,第一散列查找表可以用于单播验证包,且第二散列查找表可以用于多播验证包。每个查找表可以定义不同报头值以基于验证包的类型在验证包的报头中进行附加、插入或转变。另外,取决于验证包的类型,验证包可以路由到交换模块的不同输出端口。例如, 在图3的交换结构系统中,多播验证包可以被指定为仅通过路径323路由且单播验证包可以仅通过路径325路由。取决于验证包的类型,验证包还可以路由到交换模块的处理管道的不同部分。例如,单播验证包的报头值可以将验证包路由到不同于多播验证包的处理管道的部分。在一些实施例中,第一类型的验证包(例如单播)和第二类型的验证包(例如多播)可以被路由到处理管道的不同部分,且被发送到交换模块的相同输出端口。在一些实施例中,数据包(例如验证包)可以包括诸如逻辑链路控制(LLC)报头和/或子网接入协议(SNAP)报头的其他不同类型的报头。SNAP报头可以是与特定组织相关的专用类型值或者可以是通用的。这种LLC和/或SNAP报头还可以在此处描述的验证过程中使用以指示可以对交换结构验证包完成的不同处理和/或交换结构验证包通过交换结构系统的不同路由。在一些实施例中,验证包可以包括生存时间(TTL)报头字段,其可以用于防止验证包被循环获取且占用交换结构系统中的资源(例如带宽)。例如,在一些情形中,交换结构系统中的故障可以导致数据包通过交换结构系统的一部分连续地循环。验证包可以包括 TTL报头,该TTL报头具有大于源边缘设备和目的边缘设备之间的交换结构系统中的物理跳M的数目的初始TTL值N。例如,在图3中示出的交换结构系统300中,交换结构系统300 包括4个物理跳(从源边缘设备到第一级模块的第一跳,从第一级模块到第二级模块的第二跳、从第二级模块到第三级模块的第三跳以及从第三级模块到目的边缘设备的第四跳)。 在这种实施例中,TTL值N将初始地大于4。当在交换结构系统的模块之间发送验证包时,TTL值在每个物理跳递减。因而,如果验证包通过交换结构系统发送且到达目的边缘设备,则TTL值应大于零。如果验证包陷于循环,例如,循环回某模块,每次验证包被发送回相同的模块,TTL值将递减,直到TTL值等于零。交换结构系统中的每个模块可以检查TTL字段以判断用于该验证包的TTL值。当 TTL值等于零时,该模块将放弃和/或丢弃该验证包。因而,该验证包将不到达目的边缘设备。在这种情形中,目的边缘设备可以如前所述判断没有接收到正确数目的验证包且发生了交换结构系统中的故障。在一些实施例中,验证包可以包括类型-链路-值(TLV)报头字段。TLV字段可以维持验证包通过交换结构系统的路径的日志。在交换结构系统的每个模块,TLV报头可以向验证包添加模块的标识符。在一些实施例中,TLV报头可以附加与发送验证包的模块的输出端口相关的标识符。例如,TLV报头中的LAG可以附加发送验证包的特定输出端口的标识符。TLV信息例如可以在目的边缘设备使用以判断验证包经过交换结构系统的特定路径。在一些实施例中,如此处描述的状态指示器可以包括在TLV报头中且包可以被发送到指定目的外围处理设备。可以为用户提供一种机制来识别TLV报头内的状态的结构。
上面示出和描述的实施例涉及了包括计算节点、存储节点、服务节点和路由器的多个外围处理设备。在一些实施例中,计算节点中的一个或多个可以是例如可以包括处理器、存储器和/或一个或多个网络接口设备(例如,网络接口卡(NIC))的通用计算引擎。在一些实施例中,计算节点内的处理器可以是一个或多个缓存连贯域的一部分。在一些实施例中,计算节点可以是主机设备、服务器等。在一些实施例中,计算节点中的一个或多个可以具有虚拟化资源,使得任意计算节点(或其一部分)可以代替操作耦合到交换结构系统的任意其他计算节点(或其一部分)。在一些实施例中,存储节点中的一个或多个可以是包括例如处理器、存储器、本地附接磁盘存储和/或一个或多个网络接口设备的设备。在一些实施例中,存储节点可以具有专用模块(例如,硬件模块和/或软件模块)以例如使得计算节点中的一个或多个经由交换结构从和/或向存储节点中的一个或多个读取数据和/或写入数据。在一些实施例中, 存储节点中的一个或多个可以具有虚拟化资源,使得任意存储节点(或其一部分)可以代替操作耦合到交换结构系统的任意其他存储节点(或其一部分)。在一些实施例中,服务节点中的一个或多个可以是例如可以包括处理器(网络处理器)、存储器和/或一个或多个网络接口设备(例如10( 以太网设备)的开放系统互连 (OSI)第4层至第7层设备。在一些实施例中,服务节点可以包括硬件和/或软件(在硬件上运行)以在相对重的网络负荷上执行计算。在一些实施例中,服务节点可以以相对高效的方式(例如,比例如在计算节点执行更加高效)在每个包的基础上执行计算。计算例如可以包括状态防火墙计算、侵入检测和预防(IDP)计算,可扩展标记语言(XML)加速计算、 传输控制协议(TCP)终止计算和/或应用层负载均衡计算。在一些实施例中,服务节点中的一个或多个可以具有虚拟化资源,使得任意服务节点(或其一部分)可以代替操作耦合到交换结构系统的任意其他服务节点(或其一部分)。在一些实施例中,路由器中的一个或多个可以是可操作为连接交换结构系统的至少一部分(例如数据中心)到另一网络(例如全球因特网)的联网设备。在一些实施例中, 例如,路由器可以支持与交换结构系统相关的组件(例如,外围处理设备、交换结构的一部分)之间的通信。所述通信例如可以基于第3层路由协议定义。在一些实施例中,路由器中的一个或多个可以具有一个或多个网络接口设备(例如10( 以太网设备),通过这些网络接口设备,路由器可以向和/或从例如交换结构和/或其他外围处理设备发送和/或接收信号。此处描述的一些实施例涉及具有非瞬时性计算机可读介质(也被称为非瞬时处理器可读介质)的计算机存储产品,该非瞬时性计算机可读介质上具有用于执行各种计算机实现的操作的指令或计算机代码。计算机可读介质(或处理器可读介质)在它本质不包括瞬时传播信号(例如,在诸如空间或线缆的传输介质上传播承载信息的电磁波)的意义方面是非瞬时性的。介质和计算机代码(也称为代码)可以是针对专门目的或多个目的设计和构建的介质和计算机代码。非瞬时计算机可读介质的示例包括但不限于诸如硬盘、软盘和磁带的磁性存储介质;诸如压缩盘/数字视频光盘(CD/DVD)、只读压缩盘存储器 (CD-ROM)和全息设备的光学存储介质;诸如光学盘的磁光存储介质;载波信号处理模块; 以及专门配置成存储和执行程序代码的硬件设备,诸如专用集成电路(ASIC)、可编程逻辑设备(PLD)、只读存储器(ROM)和随机存取存储器(RAM)设备。
计算机代码的示例包括但不限于微代码或微指令、诸如通过编译器产生的机器指令、用于产生网络服务的代码以及包含使用解释器的计算机执行的较高级指令的文件。例如,实施例可以使用Java、C++或其他编程语言(例如,面向对象的编程语言)和开发工具实现。计算机代码的附加示例包括但不限于控制信号、加密代码和压缩代码。
权利要求
1.一种装置,包含目的边缘设备,配置成根据交换结构验证协议接收第一验证包,该目的边缘设备配置成基于第一验证包验证从源边缘设备通过分布式交换结构到目的边缘设备的多个数据路径,该目的边缘设备配置成响应于接收第一验证包向外围处理设备发送第二验证包,该目的边缘设备配置成根据不同于所述交换结构验证协议的验证协议发送第二验证包。
2.根据权利要求1所述的装置,其中第二验证包的验证协议是虚拟私有局域网(LAN) 服务(VPLS)操作、管理和维护(OAM)协议。
3.根据权利要求1所述的装置,其中第二验证包的验证协议是电气和电子工程师协会(IEEE)802. lag协议、国际电信联盟(ITU)Y. 1. 731协议以及多协议标签交换传输 (MPLS-TP) OAM协议其中之一。
4.根据权利要求1所述的装置,其中外围处理设备直接耦合到目的边缘设备。
5.根据权利要求1所述的装置,其中交换结构验证协议支持比第二验证包的验证协议更多数目的状态。
6.根据权利要求1所述的装置,其中第一验证包能够响应于源边缘设备接收第三验证包,根据第二验证包的验证协议被发送到分布式交换结构。
7.根据权利要求1所述的装置,其中所述多个数据路径中的第一数据路径是多播数据路径,所述多个数据路径中的第二数据路径是单播数据路径。
8.根据权利要求1所述的装置,其中外围处理设备与第二验证包的验证协议兼容但不与交换结构验证协议兼容。
9.一种方法,包括根据交换结构验证协议接收第一验证包;基于第一验证包验证从源边缘设备通过分布式交换结构到目的边缘设备的多个数据路径;基于第一验证包,根据不同于交换结构验证协议的验证协议,定义第二验证包;以及将第二验证包发送到与第二验证包的验证协议兼容但不与交换结构验证协议兼容的外围处理设备。
10.根据权利要求9所述的方法,其中定义第二验证包包括基于具有至少三个状态的第一验证包的参数,定义具有两个状态的第二验证包的参数。
11.根据权利要求9所述的方法,其中所述多个数据路径中的第一数据路径是多播数据路径,所述多个数据路径中的第二数据路径是单播数据路径。
12.根据权利要求9所述的方法,其中第二验证包的验证协议是虚拟私有局域网(LAN) 服务(VPLS)操作、管理和维护(OAM)协议。
13.根据权利要求9所述的方法,其中第二验证包的验证协议是电气和电子工程师协会(IEEE)802. lag协议、国际电信联盟(ITU)Y. 1. 731协议以及多协议标签交换传输 (MPLS-TP) OAM协议其中之一。
14.一种装置,包含结构验证模块,配置成根据交换结构验证协议从分布式交换结构接收至少一个第一验证包,该结构验证模块配置成解析该至少一个第一验证包,以确定从源边缘设备通过所述分布式交换结构到目的边缘设备的多个数据路径的状态;以及验证网关模块,配置成从所述结构验证模块接收所述多个数据路径的状态的指示器, 该验证网关模块配置成基于该指示器根据不同于交换结构验证协议的验证协议定义第二验证包,该第二验证包将要被发送到与第二验证包的验证协议兼容但不与交换结构验证协议兼容的外围处理设备。
15.根据权利要求14所述的装置,其中结构验证模块和验证网关模块位于目的边缘设备。
16.根据权利要求14所述的装置,其中所述多个数据路径中的第一数据路径是多播数据路径,所述多个数据路径中的第二数据路径是单播数据路径。
17.根据权利要求14所述的装置,其中所述交换结构验证协议支持比第二验证包的验证协议更多数目的状态。
18.根据权利要求14所述的装置,其中第二验证包的验证协议是虚拟私有局域网 (LAN)服务(VPLS)操作、管理和维护(OAM)协议。
19.根据权利要求14所述的装置,其中第二验证包的验证协议是电气和电子工程师协会(IEEE)802. lag协议、国际电信联盟(ITU) Y. 1. 731协议以及多协议标签交换传输 (MPLS-TP) OAM协议其中之一。
20.根据权利要求14所述的装置,其中外围处理设备直接耦合到目的边缘设备。
21.一种装置,包括用于根据交换结构验证协议接收第一验证包的装置;用于基于第一验证包验证从源边缘设备通过分布式交换结构到目的边缘设备的多个数据路径的装置;用于基于第一验证包,根据不同于交换结构验证协议的验证协议定义第二验证包的装置;以及用于将第二验证包发送到与第二验证包的验证协议兼容但不与交换结构验证协议兼容的外围处理设备的装置。
22.—种方法,包括在结构验证模块处根据交换结构验证协议从分布式交换结构接收至少一个第一验证包;在所述结构验证模块处解析该至少一个第一验证包以确定从源边缘设备通过所述分布式交换结构到目的边缘设备的多个数据路径的状态;在验证网关模块处,从所述结构验证模块接收所述多个数据路径的状态的指示器;以及在所述验证网关模块处,基于该指示器,根据不同于交换结构验证协议的验证协议定义第二验证包,该第二验证包将要被发送到与第二验证包的验证协议兼容但不与交换结构验证协议兼容的外围处理设备。
全文摘要
一种装置包括配置成根据交换结构验证协议接收第一验证包的目的边缘设备。该目的边缘设备配置成基于第一验证包验证从源边缘设备通过分布式交换结构到目的边缘设备的多个数据路径。该目的边缘设备配置成响应于接收第一验证包向外围处理设备发送第二验证包。该目的边缘设备还配置成根据不同于第一验证协议的验证协议发送第二验证包。
文档编号H04L12/56GK102546383SQ20111026636
公开日2012年7月4日 申请日期2011年9月9日 优先权日2010年12月29日
发明者A·K·梅赫拉, S·拉加玛尼, S·萨克赛娜 申请人:丛林网络公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1