交换节点堆叠中的交换节点的远程控制的制作方法

文档序号:7739771阅读:90来源:国知局

专利名称::交换节点堆叠中的交换节点的远程控制的制作方法
技术领域
:本发明涉及在通信网络中的交换网络节点的控制,尤其涉及控制堆叠中多个交换网络节点的方法,其中堆叠中仅有少数几个交换网络节点中具有附加其上的管理处理器。
背景技术
:在分组交换通信领域中,交换网络节点是用来指导分组业务到达适合的网络目的地的。交换网络节点可能在受管理的模式下运行,在此种模式中,该交换节点应用一管理处理器提供的服务,或者可能在自由模式下运行,在此种模式中该交换节点独立运行。两种运行模式都要求如管理处理器所提供的管理模式,例如对交换节点的学习功能,不过在自由模式下不承受相关的管理开销。在正常的运行中,传输到和来自管理处理器的主要资源包括不能通过硬件分类分析的数据分组或者需要特定软件支持的分组;包含统计计数器翻转的硬件触发中断;媒体接入控制(MAC)地址查询表的插入或删除;或者关于资源可用性的通知。成本涉及管理处理器本身的开发、实现、配置和管理。在其他文章中描述的各种相关的解决方法针对于与管理处理器的优化和管理开销的减少有关的问题。交换网络节点的一种配置的情况包括将一般协同定位的多个交换网络节点堆叠在一个设备托架(equipmentshelf)上。交换机堆叠是全体代表一个单独的逻辑交换网络节点的来提供更高的总吞吐量的一组交换网络节点的结构。例如,假设单一的网络交换机102包括24个快速以太网端口和4吉比特以太网端口。虽然网络交换机102可以支持6.4Gbps,如图1所示,将多个这样的网络交换机102级联可以增加总的系统吞吐量。如图la)所示的堆叠结构100通过将3个交换节点102配置成环形结构104可以传递13.2Gbps的总吞吐量。如图lb)所示的堆叠结构110通过将6个交换节点102配置成双环结构(104)可以传递22.4Gbps的总吞吐量。如图lc)所示的堆叠结构120将3个交换节点102配置成星形结构可以传递17.6Gbps的总吞吐量。虽然总吞吐量的增加使堆叠配置很理想,但是其面临着在这样的堆叠中如何配置和控制交换节点102的难题。图2所示是现有技术管理下的交换节点配置。如图2a)所示的配置200,每个交换节点102有一个单独的管理处理器204来对其进行控制。虽然这是一个简单的方法但同时也是昂贵的。如图2b)所示的配置210中,整个交换节点堆叠通过一个管理处理器206控制。依照这种方法,上述的管理处理器206能够控制和配置由堆叠中的交换节点102所定义的单域。管理处理器206通过单独的控制平面(controlplane)208发送信号或消息给堆叠中所有的交换节点102,通常像共享介质那样实现。如图2a)和图2b)所显示的,每一3个交换节点102保留了一个专用端口来保留管理处理器204/206的服务,并且共享的管理处理器配置210将承担配置、构造、管理和维护共享介质208所需的成本。因此,在交换节点堆叠中提供交换节点的控制和结构时需要解决上述问题。根据本发明的一个方面,提供了交换网络节点堆叠中参与的多个交换网络节点中的一个交换网络节点。该交换节点包括至少一个用于与堆叠中至少另一个交换节点交换帧的堆叠端口,用来指定交换节点的交换节点标识的交换节点标识寄存器,用来指定堆叠中的多个节点中连接有管理处理器的交换节点的交换节点标识符的管理节点标识寄存器,以及用来为堆叠中每个节点指定转发帧到上述交换节点所要通过的相应的堆叠端口的转发列表。根据本发明的另一方面,提供了一种用于远程管理堆叠中的多个交换网络节点的管理处理器。该管理处理器包括识别接收到的控制帧的装置;确认收到的控制帧的装置;用来跟踪交换节点状态的储存库;封装生成控制帧的命令的装置;以及将生成的控制帧转发的传输装置。根据本发明的另一个方面,提供了一种在交换网络节点堆叠中发现多个交换网络节点的方法,其中,堆叠中的每个交换网络节点都有指定了保留的标识值的交换节点标识符,并且至少配置一个堆叠端口在阻塞状态时转发所有的命令帧给命令引擎,在转发状态中根据转发列表中指定的交换信息转发命令帧。由交换节点执行的该方法的步骤包括通过一个在阻塞状态中设置的堆叠端口接收去往具有该保留的标识值的交换节点的命令帧;转发该命令帧到命令引擎;确认带有交换节点标识符的命令帧;将交换节点标识符设置为在接收到的命令帧中指定的新的值,该命令帧封装了指定改变交换节点标识符为不同于保留值的值的命令;依据转发列表中指定的交换信息,将后续的命令帧转发到具有经由堆叠端口接收的保留的标识值的交换节点,该端口被配置成转发状态。根据本发明的另一个方面,提供了一种在交换网络节点堆叠中发现多个交换网络节点的方法,其中,堆叠中的每个交换网络节点都具有指定了一个保留的标识值的交换节点标识符,并且至少配置一个堆叠端口以在阻塞状态时转发所有的命令帧给命令引擎,并根据在转发状态中转发列表中指定的交换信息转发命令帧。由管理处理器执行的该方法的循环步骤包括传送指定了具有保留标识值的目的地交换节点的命令帧;接收指定了来自新发现的交换节点的保留标识值的交换节点的确认;配置新发现的交换节点的交换节点标识符为一个与保留的标识值不同的唯一标识值;从新发现的配置的交换节点查询堆叠端口标识符;选择一个堆叠端口;并将被选择的堆叠端口设置为转发状态。根据本发明的另一个方面,提供了一种方法来向交换网络节点堆叠中的一个交换网络节点提供管理处理器服务。该方法包括封装关于所提供的服务的数据到一个帧中;将帧堆叠标签(FTAG)与该帧相关联;将交换节点的交换节点标识符写入FTAG的目的地交换节点字段;将带有FTAG的帧向该交换节点传输。根据本发明的另一个方面,提供了一种在交换网络节点堆叠中处理交换网络节点处的帧的方法。该方法包括如果接收的帧具有的分类动作值不同于为控制帧保留的分类动作值,那么就根据储存在与该交换节点相关的交换数据库中的交换信息有选择地转发接
发明内容收到的帧;如果接收的帧具有的分类动作值是为控制帧保留的,那么就根据储存在与该交换节点相关的转发列表的交换信息有选择地转发接收到的帧;以及有选择地将帧的分类动作值改变成为请求管理处理器服务的每个帧所用的控制帧保留的分类动作值。本发明的优点来源于网络节点的工程配置,其中根据处理、控制、配置带宽的要求,应用了少于堆叠中交换节点数量的适当数量的管理处理器来向堆叠中的相应交换节点提供服务。堆叠中交换节点的带内配置和控制减少了配置、构造、管理和维护的开销。本发明的特点和优越性将在下文参照附图对示例性实施方式的详细描述中变得更加明显。图1的a)、b)和c)是示出提供了增加的总吞吐量的示例性交换节点堆叠配置的示意图;图2的a)和b)是说明现有技术的管理交换节点堆叠配置的示意图;图3是示出依照本发明的示例性实施方式在交换节点堆叠中实现远程交换节点控制的元件的示意图;图4是流程图,示出了依照本发明的示例性实施方式的管理处理器在交换节点堆叠中实现远程控制和配置所执行的处理步骤;图5是流程图,示出了依照本发明的示例性实施方式的在交换节点堆叠中由管理处理器远程控制和配置的交换节点所执行的处理步骤;图6是依照本发明的示例性实施方式示出的中断确认过程的步骤的处理图7是依照本发明的示例性实施方式示出的堆叠初始化过程的处理图8的a)和b)是示出具有环状结构和发现的控制帧环的堆叠中交换网络节点初始化的示意图;图9是依照本发明的示例性实施方式示出控制帧环检测的示意图;以及图10是依照本发明的示例性实施方式示出的一个堆叠中多个控制和配置域的示意图,其中每个域都有相关的管理处理器。应该注意的是在附图中类似的特征具有类似的标记。具体实施例方式参照图3,依照本发明的示例性实施方式,堆叠300中的网络交换机302由一台连接304到其中一个交换网络节点302的管理处理器306配置和控制,而不为堆叠300中的每个交换网络节点302配置单独的管理处理器。本文提供的方法是涉及如堆叠300中的交换节点302的远程配置和控制的方法。堆叠结构中远程结构及控制配置的示例性元件包括相互连接交换节点302间的链路,参照连接堆叠端口308的堆叠链路307。依照本发明的示例性实施方式,通过堆叠端口308发送的每一帧400都包括具有如下示例性格式的帧堆叠标签(FTAG)406:5<table>tableseeoriginaldocumentpage6</column></row><table><table>tableseeoriginaldocumentpage7</column></row><table>FTAG406的大小与该实现的开销相互关联,所应用的FTAG406的大小留在设计时选择,其对于每一种配置都是在开销和所支持的功能之间的一种平衡。每一个FTAG406都包含关于经处理的帧的信息,例如,包括该帧是单播还是多播,发送优先级,VLAN联系(VLANassociation),始发"来源"——帧400第一次被接收到所通过的交换节点302以及外部端口,等等。如下面将要更具体地描述的,分类器动作字段确定每一个帧400应该被堆叠300中的每个交换节点302转发到哪里。依照本发明的示例性实施方式,虽然大多数通过堆叠端口308传输的帧都确实包含FTAG406,但是MAC流控制帧是一个例外。因此,为了区别包含FTAG406的帧和少数不包含的,FTAG签名是必需的。这样的FTAG签名示范性地识别跟在前同步码(preamble)后面的首几个比特/字节作为FTAG,而不是实际的帧数据404。FTAG406和FTAG签名可以与帧头402相联系,但这并不作为对本发明的限制。依照本发明的示例性实施方式,堆叠300中的每一个交换节点302都包含一个命令引擎310。命令引擎310的示例性功能包括解码从管理处理器306接收到的命令帧410,执行其中包含的命令,和生成一个确认和/或响应。如果管理处理器306是"远程的,"也就是说,不是直接附加在从属交换节点302上的,那么,命令引擎310用作管理处理器306的本地代理,配置交换网络节点302的逻辑并且响应已经实现的远程控制。另外,当需要服务和/或支持的时候,为了中断远程的管理处理器306,控制引擎310能够初始化对外的命令帧410。下表显示了示例性命令帧410的示例性格式<table>tableseeoriginaldocumentpage7</column></row><table><table>tableseeoriginaldocumentpage8</column></row><table>命令帧410的操作码用来辨识被编码在帧数据404中的命令或响应的类型。下面列出命令操作编码的样例,尽管在实际应用中用到的远程命令/请求的种类事实上是不限制的。<table>tableseeoriginaldocumentpage8</column></row><table>操作码定义001000命令引擎通知管理处理器发生统计计数器翻转001001命令引擎通知管理处理器队列占用001010命令引擎通知管理处理器连接失败/失败转移(fail-over)001011命令引擎通知管理处理器MAC地址已经加入到列表中001101命令引擎通知管理处理器MAC地址已经从列表中删除命令帧410的实际的帧数据404内容根据命令帧410的操作码改变。例如,操作码是"000011"(寄存器写请求)的命令帧410的内容包括将要写入的寄存器的地址,以及相关的值。相反地,操作码是"001000"(统计计数器翻转)的命令帧的内容包括生成该命令帧410的交换节点302中所有的硬件统计计数器的位图,只有在那些计数器发生翻转的比特位置为逻辑高电平"l"。依照本发明的示范性实施方式,堆叠300中的每个交换节点302包括一个转发列表350,下面描述的例子针对堆叠300中的交换节点302-2:目的地交换机302堆叠端口3081B2x(自己)3B4D5D6D在堆叠300中的每一个交换节点302,本地转发列表350存储了堆叠端口的ID,帧400/410必须通过该端口转发来到达堆叠300中的另一个交换节点302。依照本发明的示范性实施方式,除了转发列表350外,堆叠300中的每一个交换节点302还存储它自己的唯一ID,以及它的控制管理处理器306直接连接的交换节点302的ID。此信息通常被存储于本地寄存器352。依照本发明的示范性实施方式,上述的因素协同工作使带内控制帧能够在受远程控制的交换节点堆叠300中传送。9根据第一示例性情况,管理处理器306生成一个针对远程交换节点302的命令。参照图4,管理处理器306封装422该命令到一个命令帧410,包括FTAG406。设置424该FTAG406的"分类器动作"字段,例如设为"2",同时将"目的地交换节点"字段设置426成命令要发送到的交换节点302的交换节点ID。"目的地端口"字段被设置428成被保留来表示要发送到的目的地交换节点302的命令引擎310的值。根据本法明的示范性实施方式,如果堆叠300中没有包含多于29个物理端口的交换节点302,那么特定值"31"可以用在"目的地端口"字段来表示控制帧410要到达的命令引擎310。并且,命令帧410被发送430到要目的交换节点302。参照图5,当命令帧410穿过一个堆叠300时,在沿途的每一个交换节点302,堆叠端口308的接口上或其附近的交换节点硬件,媒体接入控制(MAC)模块,通过其FTAG签名识别432命令帧410。MAC模块通过一个交换节点302的分类器抽取434FTAG406以便使用。搜索及分类引擎观测436在FTAG406中指定的"分类器动作"字段被设置为"2",这表示FTAG406指定的控制帧的目的地将取代数据库搜索或分类的结果。如果交换节点302的搜索及分类引擎检测438到FTAG306中"目的地交换节点"等于作决定的交换节点302的交换节点ID,那么命令帧410必须传送至一个本地端口或者本地命令引擎310。如果"目的地端口"字段被设置440成命令引擎310的保留值,那么搜索及分类引擎就会转发442命令帧410给本地命令引擎310。—旦目的地命令引擎310接收到了命令帧410,则该命令引擎310就会通过读取和解释操作码来解码该命令并且执行444该命令。执行444一个命令一般涉及与交换节点302的其他硬件模块的相互作用,要被读取或者更新的相关寄存器或记录可以位于此节点。如果搜索及分类引擎检测到438FTAG406中的"目的地交换节点"不等于从属交换节点ID,那么该命令帧410—定是发送到堆叠300中的另一个交换节点302的。在这种情况下,搜索及分类引擎使用指定的目的地交换节点ID作为索引参考446转发列表350来确定对控制帧410正确的发出堆叠端口,并且通过确定的堆叠端口308转发448该控制帧410。根据第二种情况,命令引擎响应来自远程管理处理器306的命令。当命令引擎310完成了一条命令的执行后,该命令引擎310可以确认完成,并且在一般情况下,但不是必需地,以相关信息进行响应。在确认/响应中,命令引擎310封装450一个响应/确认到命令帧410中,其中包括FTAG406。该FTAG406的"分类器动作"字段被设置452为"2",并且"目的地交换节点"字段被设置454成控制管理处理器306直接附加的交换节点302。"目的地端口"字段被设置456成为管理处理器端口的ID。命令引擎310写入(450)响应帧410的内容,例如从一个或多个寄存器中读出的数据。根据本发明的示例性实施方式,在交换节点302处理控制帧410的相关开销通过以下方式响应/确认由管理处理器306发送的控制帧410而减少通过在响应控制帧410已经生成450时,用相应的响应控制帧410覆盖接收到的已经存储到交换节点302中的请求控制帧410,同时假设每一个响应控制帧410最大不超过接收到的请求控制帧410。然后,确认/响应控制帧410经由在转发列表350中指定的堆叠端口308发送458。如果该确认/响应控制帧410的目的地是本地交换节点302,那么可知该确认/响应控制帧410将通过回环堆叠端口发送458,然后过程从步骤432继续。如果响应控制帧的"目的地交换节点"说明指定了438本地交换节点ID,其中,本地交换节点302生成了确认/响应控制帧410,并且"目的地端口"是460管理处理器306所连接的端口303,那么命令引擎310就会发送462该控制帧410到该本地管理处理器端口303。如果响应帧的"目的地交换节点"说明不是指定438本地交换节点ID,那么控制管理处理器306就连接到堆叠300中的另一交换节点302。在这种情况下,命令引擎310参考446转发列表350来确定正确的发出堆叠端口308,来转发448响应控制帧410到控制管理处理器306直接连接的交换网络节点302。如上面关于第一种情况的描述,该响应控制帧410继续通过堆叠300,一个交换节点302接着一个交换节点302地被转发448,直到找到正确的目的地交换节点302。一旦到了正确的438目的地交换节点302,本地控制引擎310就会检测到460FTAG406中指定的"目的地端口"就是该管理处理器端口303,并且确认/响应控制帧410将被转发462到管理处理器306。根据第三种情况,命令引擎310发送一个中断到远程管理处理器306。当交换节点302的任何硬件模块请求一个管理处理器中断时,本地命令引擎310将中断信息编码466到一个具有FTAG406的命令帧410。FTAG406的"分类器动作"字段设置452为"2","目的地交换节点"字段设置454为控制管理处理器306直接连接的交换节点302的交换节点ID。"目的地端口"字段也被设置456成管理处理器端口303。命令帧410的转发如上所述关于第二种情况进行。根据第四种情况,搜索/分类引擎重新引导一个帧到管理处理器306。在某些情况下,搜索/分类引擎可以通过将FTAG406包括到472从属帧(subjectframe)400中来重新引导470—个帧400到管理处理器306。例如,如果第3层帧400的目的地IP地址在本地交换节点302的数据库里没有找到,那么交换节点302可以转发458该帧400到提供路由功能的管理处理器306。另外,其它一些特定类型的帧400,例如网桥协议数据单元(BPDU)或者生长树协议(STP)帧400,可以被本地交换节点302的搜索/分类引擎捕获并且以特定处理转发到管理处理器306。一旦FTAG406"附加"472到这样的帧400上,FTAG406的"分类器动作"字段就被设置452成"2","目的地交换节点"字段被设置454成控制管理处理器306直接连接的交换节点302。"目的地端口"字段也被设置456成管理处理器端口303。修改后的帧400的转发458如上面关于第二种情况的描述进行。根据第五种情况,管理处理器306发送帧400到远程交换节点302以通过端口转发。参照图4,在大多数情况下,非命令帧400从管理处理器306发送是在管理处理器306解析了478—个帧的IP地址之后,也就是,如上面关于第四种情况的描述,响应于转发458到管理处理器306的帧400。在这种情况下,管理处理器306在发送该帧400到远程交换节点302前修改480接收到476的帧400的FTAG406以及有效载荷。FTAG406的"分类器动作"字段设置482为"2",并且"目的地交换节点"以及"目的地端口"字段根据解析的IP地址被设置484/486成源交换节点的ID以及发出端口ID。帧400的转发如参考第一种情况的以上描述来进行。当帧最终到达目的地交换节点302时,本地的搜索/分类引擎识别432并重新引导490帧400发往指定发出端口。在此过程中,搜索/分类引擎学习492新的目的地IP地址/发出端口的关联。因此上面描述的五种情况说明了带内配置及控制帧的转发。帧通过外部端口在交换节点302被接收,并且被提供501FTAG。根据第六种情况,帧400通过执行在每一跳的第二层或第三层数据库搜索,在堆叠300的堆叠端口308之间进行转发458。这种帧400的FTAG406中的"分类器动作"字段被设置500成"0"。作为选择,第一跳的交换节点302在分类并存储流ID于FTAG406中后,可以分配504给该帧400—个流ID。通过设置506"分类器动作"为"1",搜索/分类引擎可以迫使508后续的跳跃利用前面分配的流ID来取代本地数据库搜索的结果。因此上面六种示例性情况详细说明了帧在堆叠300中的转发。根据本发明的示范性实施方式,提供了中断确认协议。当单独的管理处理器306通过带内消息控制堆叠300中的多个交换网络节点302时,带内通信信道的可靠性成为了一个关键性问题。参照对第1、2种情况的描述,命令引擎310确认接收到的每一个命令帧410,这样管理处理器306可以监测发出的命令是否实际到达了它们的目的地,并且是否被执行。如果管理处理器306没有接收到确认,那么必然会认为命令帧410丢失,因此会重传命令帧410。有可能的是命令确实被接收并执行,但是确认本身丢失或者延时。这种情况使得管理处理器306发送多次相同的命令,从而使得远程交换节点302意外地将这个没有确认的命令执行多次。基于本文描述的示例性实施方式的实现应该尽可能确保管理处理器306发送的命令如果被执行了两次是无害的。有利的是,大多数用于控制和配置堆叠300中的交换网络节点302所需的命令是无害的,这样的例子包括读/写寄存器,或者交换数据库更新。然而,回想上文的描述,一旦请求了管理处理器306中断,命令引擎310就会生成一个命令帧410。为了确保可靠的带内通道,命令引擎310通过监测确认(410)来确定是否每一个中断消息都实际地到达了管理处理器306。如上所述,命令引擎310可能因为来自管理处理器306的确认的丢失或者延时错误地发送同一个中断两次,从而引起管理处理器306误解命令引擎的意图。设想管理处理器306从交换节点302-3接收到了两个时间间隔很短的中断消息,每一个中断指示"端口7接收到的总字节"的统计计数器翻转。管理处理器306可能错误地认为该计数器实际上翻转了两次,而事实上可能只是因为同一个中断消息发送了两次。根据本发明的示范性实施方式,通过使用图6所示的中断确认协议600解决该不明确性。中断确认协议包括三个参与实体相关的交换节点302的中断用户模块602、本地交换节点302上的相关命令引擎310,以及管理处理器306。下面的术语将在文中被用来描述一个示例性的中断确认协议的实现—中断用户模块602是与中断事件初始化有关的从属交换节点的硬件模块。从上面的例子可知,当在MAC模块中的统计计数器翻转时,管理处理器306将被通知。这个12MAC模块代表中断用户模块602。——本地中断向量604:中断用户模块602可以经历几种触发管理处理器306中断的事件,该中断用户模块602必须保存指明哪个或哪些事件被用来触发管理处理器306的位图。这个被称作本地中断向量604的位图被存储在本地从属交换节点302内。——命令中断状态向量606:命令引擎310为受控交换节点302的每个中断用户模块602维护一个中断状态向量606。客户的中断请求是未决的,一直到管理控制器306已经确认它被收到。这个未决状态在CMD中断状态向量606中反映为逻辑高电平"l"。—线程当中断用户模块602触发了一个或者多个中断事件时,命令引擎310就会表述并且发送包含该中断用户模块620的中断状态的命令帧410,然后等待来自管理处理器306的确认。命令引擎310可以同时服务于多个用户602;也就是说,在任意给定的时间可以有多个这样的命令帧410,或者它们相应的确认进行传送。这种多个并行的操作被称为线程。对于每个线程,需要命令引擎310和管理处理器306维护小量的状态信息。—序号命令帧410以及确认(410)通过线程号以及对每个发送/确认的命令帧410加一的序号进行辨识。序号包含在如上所述的命令帧410头中。要为每个线程维护一个计数器。相应地,管理处理器306通过与CMD中断状态向量信息相关联的储存库309跟踪该信息。当中断事件650继而发生时,中断用户模块602设置652相应的本地中断向量604的相应特位。中断触发开始于中断用户模块602请求访问654命令引擎310。当访问命令引擎被准许656后,命令引擎310更新658与该中断用户模块602相关的CMD中断状态向量606。依照本发明的示范性实施方式的实现,新的CMD中断状态向量606是旧的向量606和客户的本地中断向量604的按位逻辑或。并且,中断用户模块602清除660其本地中断向量604。在任意比特位置包含逻辑高电平"l"的任何CMD中断状态向量606都请求发送命令帧410到管理处理器306来代表该中断用户模块602。依照本发明的一个示范性实施方式,活动线程的数目代表了在交换网络节点302的受控资源,因此当多个线程中的一个被释放的时候,命令引擎310选择一个符合条件的中断用户模块602来使用它。例如,为服务器选择中断用户模块602的仲裁算法可以遵守循环规则。当选择的线程被占用时,该线程的序号就会增加。命令引擎310生成662命令帧410,并且代表中断用户模块602发送664该命令帧410。该命令帧410包含该中断用户模块602所用的CMD中断状态向量606(位图)的当前值。通过线程号和线程的当前序号识别该命令帧410。在命令引擎310等待确认(410)时,该线程仍保持被占用状态。如果接收670到一个针对特定线程的确认,但是确认的序号与线程的序列计数器的值不匹配672,或者该线程已经被释放674,那么命令引擎310就会忽略该确认,从而减小多个确认的有害效果。如果接收到针对某个被占用线程的确认(410),并且确认的序号与线程的序列计数器676的值匹配,那么该确认是有效的。命令引擎310更新678与中断用户模块602相关联的CMD中断状态向量606。依照本发明的实例性实施方式的实现,新的CMD中断状态向量606是旧向量和确认(410)中包含的向量的反向(inverse)进行位逻辑与的结果。然后,线程被释放。如果在(可编程的)超时阶段680后仍没有接收到有效的确认410,那么命令引擎310重新开始执行如上所述的表示662以及发布664另一个命令帧410的步骤。对于每一个线程,管理处理器306—直跟踪控制帧410中接收664到的最后一个序号,以及与该序号相对应的第一个接收到的中断状态向量606。如果接收664到一个针对特定线程的命令帧410,并且帧的序号与最后接收到的序号不匹配680,那么该控制帧410被视为有效的。管理处理器306根据控制帧410中指定的中断状态向量606的值,或者更明确地说根据其中指定的逻辑高电平比特执行动作680。管理处理器306表达684并且发送670—个确认帧410。该确认帧410包含与相应的命令帧410相同的序号,并且有相同的中断状态向量606内容。管理处理器306记录接收到的序号以及命令帧的内容(有效载荷在这种情况下是中断状态向量606)。如果接收到一个针对某个线程的命令帧410,并且该帧的序号与最后接收到的序号匹配679,那么这个控制帧410是无效的,它是一个由于第一次触发中断的确认670没有到达从属交换节点302而重复发送的中断。管理处理器306不会关于该命令帧410中的向量内容执行任何动作。管理处理器306表达684并且发送670(另)一个确认帧410。该确认包含与命令帧相同的序号以及先前存储的内容而不是当前无效命令帧410的内容。管理处理器306不记录接收到的序号和内容。在上面的描述中,管理处理器306和堆叠300中的远程控制交换节点302之间的相互作用假设了堆叠300中的每一个302都知道自己的ID、管理处理器306连接的交换节点302的ID,以及到达堆叠300中的每一个交换节点302的正确的堆叠端口308——也就是说,堆叠300中的每一个交换节点302都被存储在转发列表350和寄存器352中的信息进行了预配置。这三类信息在初始化时提供给堆叠300中的每一个交换节点302。看起来的恶性循环是明显的堆叠300必须被初始化来配置该堆叠300。因为由管理处理器306实现的远程控制不能在缺少上述三类信息的情况下执行——也就是说,除非交换节点302被初始化——可以预期初始化本身不能通过远程控制执行。根据本发明的示例性实施方式,提供了对远程交换网络节点初始化的支持。依照本发明的示例性实施方式的一个实现,使用两个附加的基本元素—交换节点缺省ID——在初始化前,堆叠300中的每一个交换节点302都有等于保留ID"O"的交换节点ID。由于"O"是一个保留ID,所以在初始化后的正常工作阶段,堆叠300中没有交换节点302可能具有等于0的其交换节点ID。——端口阻塞——每个堆叠端口308可以被设置成"阻塞状态"或者"转发状态"任何之一。当堆叠端口308处于阻塞状态时,引入的命令帧410总是被直接发送给本地命令引擎310。当堆叠端口308处于转发状态时,引入的命令帧410根据FTAG406以及转发列表350中存储的信息被转发。在缺省状态,每一个堆叠端口308都处于阻塞状态。根据本发明的示例性实施方式的一个实现,堆叠探索及初始化过程700使用如图7所示的深度优先搜索(d印th-firstsearch)。下面是简单的说明管理处理器306初始化过程700开始于对与其最接近的交换节点302的初始化,14初始化是通过生成702—个具有FTAG406的命令帧410,并且"目的地交换节点"等于"O","目的地端口"等于命令引擎的保留端口值来进行的。命令帧410通过堆叠端口308发送704。最近的交换节点302的搜索引擎接收704命令帧410并且将其转发到命令引擎310。命令引擎310按照特定的操作码执行706命令帧410中的命令。命令引擎310也确认708命令410,通过原命令帧410到达(704)的路径发送708该确认410到本地堆叠端□308。管理处理器306接收710确认,然后具有通过发送一系列命令帧410配置710最接近的交换节点302所必需的信息。最接近的交换节点302的交换节点ID被重新分配712为'T。在进一步处理前,管理处理器306选择714—个传出堆叠端口308来搜索下一个。此处应用深度优先搜索算法。管理处理器306配置716/718交换节点ID1的转发列表350来引导去往交换节点ID0的帧到达被选择的发出端口308。管理处理器306再一次生成720并且发送722—个"目的地交换节点"等于"0"、"目的地端口"等于命令引擎值的保留值的命令帧410。已经初始化的交换节点IDl检测到724发往交换节点302-0的控制帧410,并且发送726该命令帧410到预先配置的被选择的堆叠端口308。堆叠300中的下一个通过堆叠端口308可到达的交换节点302是未初始化的,并且因此根据缺省指定自己为交换节点ID0。当接收到命令帧410时,转发该帧到本地命令引擎310。堆叠300中的第二个交换节点302的配置过程与上文描述的最接近管理处理器306的交换节点302的配置相似,最终将交换节点ID设置为"2"。堆叠300中的所有交换节点302的配置都按这种方式继续。管理处理器306发送一个命令帧410到"交换节点ID0",该帧只能由已经初始化的交换节点302转发,直到遇到第一个未初始化的302。然后,管理处理器306分配一个新的ID给新遇到的交换节点302并且按需要配置该节点。在这个过程中,管理处理器306配置在已经配置过的交换节点302中的转发列表,这样对下一个交换节点ID0的搜索通过一个之前未搜索的堆叠端口308进行。上文描述的方法基本上解决了堆叠初始化的问题。图8显示了一个遗留的问题。在图8a)中,管理处理器306已经初始化了交换机302-1、302-2、302_3。当管理处理器306试图发现第四个交换节点302时,它生成了一个带有FTAG的命令帧410,如所述的,其中"目的地交换节点"等于"O"。在发送这个命令帧410之前,管理处理器306配置302-1、302-2、302-3中的转发列表来沿着粗线所示的路径转发去往交换节点ID0的命令帧410。图8b)描述了如果交换节点302-3实际上被连接回到了交换节点302-1,形成上文所述的环形104交换节点堆叠100中的回路的情况下,将发生什么问题。在这种情况下,发往交换节点ID0的命令帧410将在堆叠300中一圈接一圈地中继来搜索并不存在的未配置的交换节点302。相似地,没有一个交换节点302可以打破这个循环,因为环形104中的每一个交换节点302都已经通过管理处理器302配置来转发这样的命令帧410并且从而如配置过的节点那样运行。环路检测是拓扑探测中一个很关键的方面。依照实例性的实施方式,一个简单的监测和解决环路的方法在图9中示出。在通过一个未搜索的堆叠端口308转发命令帧410之前,管理处理器306配置902所有的还没有作为阻塞端口成为探索路径的一部分的堆叠端口308,并且配置904探索路径中的堆叠端口308作为转发端口。因此,当命令帧410又循环回到交换节点302-1时,它就到达了一个阻塞端口(308),并且如上文所述,被立刻转发到本地命令引擎310。本地命令引擎310执行该命令,并且发回一个确认到管理处理器306。管理处理器306接收该确认,并且从FTAG406中的"源交换节点"字段观察到该确认(410)来自交换节点IDl,而不是交换节点IDO,这标志着在拓扑结构中发现了一个环。在上文中,已经关于由单一的管理处理器306管理的单一堆叠300的交换节点302对本发明进行了描述。为了实现特定的应用和/或例如提供载荷共享,一个堆叠的交换节点302可以被两个或多个管理处理器306控制,如图10所示。只要每个交换节点302得知自己的控制管理处理器306的位置,那么上文描述的方法和算法就可以不经修改地应用。每一个管理处理器306以及相应的受控交换节点302组成一个管理域。堆叠的探索和初始化大致上仍然相同,与其区别可以参照图10很好地进行解释。在图10中,管理处理器306-A以及管理处理器306-B都如上文所述初始化它们自己的域。当两个管理处理器都试图初始化同一个交换节点302-S时,发生了冲突。为了解决这个冲突,假设管理处理器306-A先初始化交换节点302-S。当管理处理器306-B试图通过发送命令帧410来重初始化网络节点302-S时,交换节点302-S的命令引擎310将发回相应的确认到管理处理器302-A,因为管理处理器306-A是根据当前配置的交换节点302-S的控制管理处理器306。当管理处理器302-A接收到一个针对从来没有发送过的命令帧410的确认时,管理处理器302-A就会识别这个冲突。在接收到这样的确认后,管理处理器306-A以及306-B就会直接通信,并且协商哪个交换节点将被各自控制。本文所示的实施方式仅仅是示范性的,本领域的技术人员将会理解上述实施方式的变形可以在不偏离本发明的精神的情况下产生。本发明的范围仅由附加的权利要求限定。权利要求一种用于远程管理堆叠中多个交换网络节点的管理处理器,包括a.识别接收到的控制帧的装置;b.确认所述接收到的控制帧的装置;c.跟踪交换节点状态的储存库;d.封装生成控制帧的命令的装置;以及e.用来转发生成的控制帧的传输装置。2.根据权利要求l所述的管理处理器,进一步包括a.接收封装在数据帧中的地址解析请求的装置;b.网络节点地址解析装置;以及c.发出封装在数据帧中的地址解析响应的装置。3.—种向交换网络节点堆叠中的交换网络节点提供管理处理器服务的方法,该方法包a.将关于所提供的服务的数据封装到一个帧中;b.将帧堆叠标签(FTAG)与该帧相关联;c.将所述交换节点的交换节点标识符写入FTAG的目的地交换节点字段;以及d.将载有FTAG的帧向所述交换节点发送。4.根据权利要求3所述的方法,其中所述帧是一个控制帧,该方法进一步包括a.将为控制帧保留的分类动作值写到FTAG的分类动作字段;b.将为所述交换节点处的控制引擎保留的目的地端口值写到FTAG的目的地端口字5.根据权利要求3所述的方法,其中,所述帧为路由数据帧,该方法进一步包括a.解析所述数据帧的目的地地址到所述堆叠的一个外部发出目的地端口;b.将为控制帧保留的分类动作值写到FTAG的分类动作字段;以及c.将解析的目的地端口的目的地端口标识符写到FTAG的目的地端口字段。全文摘要本发明提供了一种在堆叠中的交换网络节点通过带内消息进行远程管理的方法和装置。用于远程管理堆叠中多个交换网络节点的管理处理器包括识别接收到的控制帧的装置,确认所述接收到的控制帧的装置,跟踪交换节点状态的储存库,封装生成控制帧的命令的装置以及用来转发生成的控制帧的传输装置。本发明的优点得自交换节点的配置,其中使用小于堆叠中交换节点数目的适当数目的管理处理器来根据处理、控制、配置带宽要求向堆叠中相应的交换节点提供服务。堆叠中交换节点的带内配置和控制减少了配置、构造、管理以及维护的成本。文档编号H04L12/56GK101777998SQ201010002070公开日2010年7月14日申请日期2005年7月29日优先权日2004年7月29日发明者C·巴拉克,余旭亮,张荣峰,涂圣晖申请人:科胜讯系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1