CN112995807B - 一种olt组环网中端口转发状态设置的方法及装置 - Google Patents
一种olt组环网中端口转发状态设置的方法及装置 Download PDFInfo
- Publication number
- CN112995807B CN112995807B CN202110303687.6A CN202110303687A CN112995807B CN 112995807 B CN112995807 B CN 112995807B CN 202110303687 A CN202110303687 A CN 202110303687A CN 112995807 B CN112995807 B CN 112995807B
- Authority
- CN
- China
- Prior art keywords
- spanning tree
- port
- state
- protocol
- tree state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/0001—Selecting arrangements for multiplex systems using optical switching
- H04Q11/0062—Network aspects
- H04Q11/0067—Provisions for optical access or distribution networks, e.g. Gigabit Ethernet Passive Optical Network (GE-PON), ATM-based Passive Optical Network (A-PON), PON-Ring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/0001—Selecting arrangements for multiplex systems using optical switching
- H04Q11/0062—Network aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/0001—Selecting arrangements for multiplex systems using optical switching
- H04Q11/0062—Network aspects
- H04Q2011/0073—Provisions for forwarding or routing, e.g. lookup tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/0001—Selecting arrangements for multiplex systems using optical switching
- H04Q11/0062—Network aspects
- H04Q2011/0079—Operation or maintenance aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/0001—Selecting arrangements for multiplex systems using optical switching
- H04Q11/0062—Network aspects
- H04Q2011/0086—Network resource allocation, dimensioning or optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种OLT组环网中端口转发状态设置的方法及装置,涉及数据通信技术领域。该方法包括:为每个物理端口创建生成树状态成员,该生成树状态成员包括物理端口对象,该物理端口对象包括若干个端口实例对象,每个端口实例对象包括各协议的协议生成树状态及硬件生成树状态;当进行端口转发状态设置时,确定需要进行处理的端口实例对象,在该端口实例对象下找到各协议对应的协议生成树状态并进行设置;判断设置的生成树状态是否与硬件生成树状态一致,若不一致,通过硬件生成树状态仲裁操作,仲裁出正确的硬件状态。本发明不但可以解决环协议与LACP协议因为冲突引起的广播风暴问题,而且数据转发可靠性高、协议间耦合性低、可维护性佳。
Description
技术领域
本发明涉及数据通信技术领域,具体来讲是一种OLT(Optical Line Terminal,光线路终端)组环网中端口转发状态设置的方法及装置。
背景技术
在二层交换网络中,物理网络成环将导致广播报文的循环转发,最终形成网络风暴导致网络不可用。生成树类协议(如STP-Spanning Tree Protocol,生成树协议/RSTP-Rapid Spanning Tree Protocol,快速生成树协议/MSTP-Multiple Spanning TreeProtocol,多生成树协议),环网协议(如ERPS-Ethernet Ring Protection Switching,以太网多环保护技术),各种私有环协议的出现就是为了解决这类二层网络的广播风暴。这类环协议都是通过设置端口的生成树状态来阻止广播风暴,并能在正常业务出现故障后进行保护倒换来提高网络的可靠性。
链路聚合协议(Link Aggregation Control Protocol,LACP)是通过将多个单个物理端口组合成一个聚合口来提高端口带宽。而协议在协商成功以前聚合组的成员端口业务数据都处于阻塞状态,而通过生成树状态来达到这种阻塞状态效果最好,且在不同交换芯片上通用性最好。
在实际应用时,LACP协议与环协议是可能同时存在的,这样必然会存在冲突。冲突的主要表现是:环协议认为聚合端口应该处于block状态,该聚合端口的block状态最终是将聚合组的所有成员端口设置为block状态;而LACP协议协商完成以后,会认为聚合组成员端口应该为forward状态,会破坏掉环协议设置的block状态,此时会引起广播风暴。
目前,常用的解决冲突的办法主要有以下两种:
(1)LACP协议设置阻塞状态时不采用生成树状态,通过ACL(Access ControlLists,访问控制列表)或者交换芯片提供一些功能关闭掉数据接收,并不影响LACP协议报文的收发。但该方法存在的缺陷是,这种方法只关闭的业务数据的接收,并未关闭数据发送。假设正好有一条ARP(Address Resolution Protocol,地址解析协议)请求报文从该端口发送给对端,而对端因为这个报文是ARP协议报文直接上了CPU进行处理,而此端口的LACP状态一直不能up,这样就会导致数据转发出错,可靠性差。
(2)LACP协议也使用生成树状态来完成端口阻塞,LACP模块设置端口的生成树状态后将通告给环协议,环协议在设置生成树状态时需要判断LACP的生成树状态;环协议设置生成树状态也需要通告给LACP模块,LACP模块设置生成树状态需要判断环协议的生成树状态。但该方法存在的缺陷是,这种通告机制会使本没有交集的2个协议互相耦合,维护起来较复杂,容易出错。
因此,如何设计一种更加理想的方案来解决环协议与LACP协议因为冲突引起的广播风暴问题,是本领域技术人员亟待解决的难题。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种OLT组环网中端口转发状态设置的方法及装置,不但可以解决环协议与LACP协议因为冲突引起的广播风暴问题,而且数据转发可靠性高、协议间耦合性低、可维护性佳。
为达到以上目的,本发明提供一种OLT组环网中端口转发状态设置的方法,该方法包括:
步骤A、为每个物理端口创建相应的生成树状态成员,所述生成树状态成员包括物理端口对象,所述物理端口对象包括基于最大实例数分配的若干个端口实例对象;每个端口实例对象包括为各个协议分配的协议生成树状态以及实际的硬件生成树状态。
步骤B、当进行端口转发状态设置时,确定需要进行处理的端口实例对象,在该端口实例对象下找到各协议对应的协议生成树状态并进行设置;判断所设置的生成树状态是否与硬件生成树状态一致,若不一致,则通过硬件生成树状态仲裁操作,仲裁出正确的硬件状态。
在上述技术方案的基础上,步骤A中,为每个物理端口创建相应的生成树状态成员,具体包括以下操作:
确定设备支持的最大物理端口数、设备支持的最大实例数,并为每个需要设置生成树状态的协议分配一个唯一的协议号;根据设备支持的最大物理端口数创建对应数量的物理端口对象;根据设备支持的最大实例数为每个物理端口对象创建对应数量的端口实例对象;根据协议号为每个端口实例对象创建对应数量的协议生成树状态,并为每个端口实例对象创建唯一的一个硬件生成树状态。
在上述技术方案的基础上,步骤B中,通过硬件生成树状态仲裁操作,仲裁出正确的硬件状态,具体包括以下操作:
若所设置的协议生成树状态为block,则直接设置硬件生成树状态为block;
若所设置的协议生成树状态为forward,则遍历该端口实例对象下所有的协议生成树状态,只有所有协议生成树状态都为forward时才设置硬件生成树状态为forward。
在上述技术方案的基础上,步骤B中,确定需要进行处理的端口实例对象时,根据生成树状态的设置方式进行确定,所述生成树状态的设置方式包括:基于物理端口设置和基于物理端口加实例设置。
在上述技术方案的基础上,当生成树状态的设置方式为基于物理端口设置时,将对应的物理端口对象下的所有端口实例对象,确定为需要进行处理的端口实例对象;
当生成树状态的设置方式为基于物理端口加实例设置时,将对应的物理端口对象下对应的端口实例对象,确定为需要进行处理的端口实例对象。
在上述技术方案的基础上,在步骤B之前,还包括以下操作:创建全局实例对象,所述全局实例对象用于记录全局的生成树实例对象的实例号及其包含的VLAN信息;
所述步骤B中,判断所设置的协议生成树状态是否与硬件生成树状态一致之前,将先判断对应的全局实例对象是否已创建,若未创建,则结束操作;若已创建,则继续执行。
在上述技术方案的基础上,所述全局实例对象创建时,将更新端口实例对象的硬件生成树状态:遍历所有物理端口对象,找到物理端口对象下对应的端口实例对象,根据该端口实例对象下的所有协议生成树状态仲裁出硬件生成树状态,并进行设置。
在上述技术方案的基础上,所述全局实例对象删除时,将更新端口实例对象的硬件生成树状态:遍历所有物理端口对象,找到物理端口对象下对应的端口实例对象,然后将该端口实例对象的硬件生成树状态设置为forward。
本发明还提供一种OLT组环网中端口转发状态设置的装置,包括:生成树状态成员创建模块、生成树状态设置及仲裁模块;
所述生成树状态成员创建模块,用于:为每个物理端口创建相应的生成树状态成员,所述生成树状态成员包括物理端口对象,所述物理端口对象包括基于最大实例数分配的若干个端口实例对象;每个端口实例对象包括为各个协议分配的协议生成树状态以及实际的硬件生成树状态;
所述生成树状态设置及仲裁模块,用于:当进行端口转发状态设置时,确定需要进行处理的端口实例对象,在该端口实例对象下找到各协议对应的协议生成树状态并进行设置;判断所设置的协议生成树状态是否与硬件生成树状态一致,若不一致,则通过硬件生成树状态仲裁操作,仲裁出正确的硬件状态。
在上述技术方案的基础上,该装置还包括全局实例对象管理模块、生成树状态更新模块;所述全局实例对象管理模块,用于:创建和删除全局实例对象;所述生成树状态更新模块,用于:当所述全局实例对象管理模块创建或删除全局实例对象时,更新端口实例对象的硬件生成树状态。
本发明的有益效果在于:
(1)本发明中,当所设置的协议生成树状态与实际硬件生成树状态不一致时,会通过硬件生成树状态仲裁操作仲裁出正确的硬件状态,从而解决了环协议与LACP协议因为冲突引起的广播风暴问题。
与现有技术相比,本发明通过设置生成树状态来实现LACP协议规定的阻塞业务数据转发的方法,与协议标准的匹配度最高,在不同交换芯片之间的通用性最好,可以灵活的在不同的交换芯片平台中使用,且不会导致数据转发出错,可靠性高。并且,本发明采用独立的仲裁方案,无需协议间相互通告,可以很好的维护协议的独立性,使环协议、LACP协议之间不再耦合,从而提高了代码质量、降低了维护难度。
(2)本发明中,为每个物理端口设计了独特的生成树状态成员结构,且该生成树状态成员结构采用了合理高效的端口+实例+协议状态+硬件状态的多层次组织架构,对外简化了接口,提高了各协议的独立性;对内提高了效率,优化了处理时间,从而能够为后续的生成树状态仲裁处理提供良好的数据支撑。
附图说明
图1为本发明实施例中OLT组环网中端口转发状态设置的方法的流程图;
图2为本发明实施例中物理端口的生成树状态成员的结构示意图;
图3为本发明实施例中创建的全局实例对象的示意图;
图4为一种示例中步骤B的具体流程图。
具体实施方式
可以理解的是,在交换领域,不同的交换芯片用于实现LACP协议规定的阻塞数据收发的方法很多,而只有生成树状态是每个交换芯片都支持的方法,也是最通用、最理想的方法。而LACP协议使用生成树状态势必会和环协议之间产生冲突,且该冲突还会引发广播风暴,所以需要采用一些方法来解决冲突问题。而现有的解决冲突的方法,要么会导致数据转发出错,可靠性差;要么会使本没有交集的两类协议(LACP协议、环协议)互相耦合,维护起来较复杂,容易出错。因此,本发明旨在提供一种OLT组环网中端口转发状态设置的方法及装置,不但可以解决环协议与LACP协议因为冲突引起的广播风暴问题,而且数据转发可靠性高、协议间耦合性低、可维护性佳。
其主要的设计思路为:为每个物理端口创建相应的生成树状态成员,所述生成树状态成员包括物理端口对象,所述物理端口对象包括基于最大实例数分配的若干个端口实例对象;每个端口实例对象包括为各个协议分配的协议生成树状态以及实际的硬件生成树状态;
当进行端口转发状态设置时,确定需要进行处理的端口实例对象,在该端口实例对象下找到各协议对应的协议生成树状态并进行设置;判断所设置的协议生成树状态是否与硬件生成树状态一致,若不一致,则通过硬件生成树状态仲裁操作,仲裁出正确的硬件状态。
本方案中,当所设置的协议生成树状态与实际硬件生成树状态不一致时,会通过硬件生成树状态仲裁操作仲裁出正确的硬件状态,从而避免了LACP协议与环协议同时使用时,因两类协议设置生成树状态不一致而产生冲突,进而导致广播风暴的产生。与现有技术中不采用生成树状态设置的方式相比,本发明通过设置生成树状态来实现LACP协议规定的阻塞业务数据转发的方法,与协议标准的匹配度最高,在不同交换芯片之间的通用性最好,可以灵活的在不同的交换芯片平台进行使用;并且不会导致数据转发出错,可靠性高。与现有技术中采用通告机制的方式相比,本发明采用独立的仲裁方案,无需协议间相互通告,可以很好的维护协议的独立性,使环协议、LACP协议之间不再耦合,从而提高代码质量、降低了维护难度。
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合说明书附图以及具体的实施例对本发明的技术方案进行详细的说明。
但需说明的是:接下来要介绍的示例仅是一些具体的例子,而不作为限制本发明的实施例必须为如下具体的步骤、数值、条件、数据、顺序等。本领域技术人员可以通过阅读本说明书来运用本发明的构思来构造本说明书中未提到的更多实施例。
实施例一
参见图1所示,本实施例提供了一种OLT组环网中端口转发状态设置的方法,具体包括以下步骤:
步骤A、为每个物理端口创建相应的生成树状态成员,所述生成树状态成员包括物理端口对象,所述物理端口对象包括基于最大实例数分配的若干个端口实例对象;每个端口实例对象包括为各个协议分配的协议生成树状态以及实际的硬件生成树状态。
可以理解的是,为了能够为后续的生成树状态仲裁处理提供数据支撑,本实施例中,为每个物理端口设计了独特的生成树状态成员结构。如图2所示,每个物理端口的生成树状态成员包括:物理端口对象(如图2中物理端口对象1)、端口实例对象(如图2中端口实例对象0、端口实例对象1、端口实例对象2)、为各个协议分配的协议生成树状态以及实际的硬件生成树状态。
其中,物理端口对象(如物理端口对象1):描述了基于物理端口(如物理端口1)创建的物理端口对象,该物理端口对象用于记录物理端口的基本索引信息,其包括基于最大实例数分配的若干个端口实例对象(如图2中端口实例对象0、端口实例对象1、端口实例对象2)。
端口实例对象:是基于实例号为物理端口对象创建的端口实例对象,该端口实例对象用于描述该端口在对应实例的生成树状态;其包括为各个协议分配的协议生成树状态以及实际的硬件生成树状态。
为各个协议分配的协议生成树状态:用于描述各协议设置该端口在该实例的生成树状态。其包括但不限于:STP协议生成树状态、RSTP协议生成树状态、MSTP协议生成树状态、ERPS协议生成树状态、LACP协议生成树状态等。举例来说,如图2中所示,MSTP协议生成树状态:描述了MSTP协议设置该端口在该实例的生成树状态。ERPS协议生成树状态:描述了ERPS协议设置该端口在该实例的生成树状态。LACP协议生成树状态:描述了LACP协议设置该端口在该实例的生成树状态。
硬件生成树状态:用于描述实际上硬件应该设置的生成树状态,也就是记录在该物理端口下该实例仲裁处理后实际的硬件生成树状态。
进一步地,作为一种可选的实施方式,本实施例的步骤A中,为每个物理端口创建相应的生成树状态成员,具体包括以下操作:
(1)确定设备支持的最大物理端口数、设备支持的最大实例数,并为每个需要设置生成树状态的协议分配一个唯一的协议号;
(2)根据设备支持的最大物理端口数创建对应数量的物理端口对象;
(3)根据设备支持的最大实例数为每个物理端口对象创建对应数量的端口实例对象;
(4)根据协议号为每个端口实例对象创建对应数量的协议生成树状态,并为每个端口实例对象创建唯一的一个硬件生成树状态。
从上述步骤A可以看出,由于本实施例为每个物理端口设计了独特的生成树状态成员结构,且该生成树状态成员结构采用了合理高效的端口+实例+协议状态+硬件状态的多层次组织架构,对外简化了接口,提高了各协议的独立性;对内提高了效率,优化了处理时间,从而能够为后续的生成树状态仲裁处理提供良好的数据支撑。
步骤B、当进行端口转发状态设置时,确定需要进行处理的端口实例对象,在该端口实例对象下找到各协议对应的协议生成树状态并进行设置;判断所设置的协议生成树状态是否与硬件生成树状态一致,若不一致,则通过硬件生成树状态仲裁操作,仲裁出正确的硬件状态。
可以理解的是,当需要进行端口转发状态设置时,会先基于步骤A所创建的各物理端口的生成树状态成员,从中确定出需要进行处理的端口实例对象;然后,在确定出的端口实例对象下,根据各协议的协议号找到各协议对应的协议生成树状态并进行设置。与此同时,每个协议在设置各自的协议生成树状态时,还需要判断所设置的协议生成树状态是否与实际硬件生成树状态一致,若一致,则结束操作;若不一致,则会通过硬件生成树状态仲裁操作,仲裁出正确的硬件状态。
由于本实施例中,当所设置的协议生成树状态与实际硬件生成树状态不一致时,会通过硬件生成树状态仲裁操作仲裁出正确的硬件状态,从而避免了LACP协议与环协议同时使用时,因为两类协议设置生成树状态不一致,而导致广播风暴产生;还可以防止多个环协议在同一端口和实例同时运行因为冲突而导致广播风暴的发生。
具体来说,作为一种优选的实施方式,步骤B中,通过硬件生成树状态仲裁操作,仲裁出正确的硬件状态,具体包括以下操作:
若所设置的协议生成树状态为block,则直接设置硬件生成树状态为block;若所设置的协议生成树状态为forward,则遍历该端口实例对象下所有的协议生成树状态,只有所有协议生成树状态都为forward时才设置硬件生成树状态为forward,否则设置硬件生成树状态为block。可以理解的是,按照上述仲裁策略,只有当所有协议都认为该实例处于forward状态时,才设置硬件生成树状态为forward状态,只要有一个协议处于block状态,那么硬件生成树状态都会处于block状态,从而有效防止LACP协议协商完成以后,会认为聚合组成员端口应该为forward状态,而破坏掉环协议设置的block状态,避免了广播风暴的发生。
进一步地,作为一种优选的实施方式,本实施例的步骤B中,确定需要进行处理的端口实例对象时,根据生成树状态的设置方式进行确定,所述生成树状态的设置方式包括:基于物理端口设置和基于物理端口加实例设置。实际应用时,可提供两种类型的设置接口给上层协议模块。一种为基于端口设置生成树状态的接口,例如LACP协议、STP协议等都是基于端口设置生成树状态;该接口参数可包括:协议号、端口号、协议生成树状态。另一种为基于端口加实例设置生成树状态的接口,例如MSTP协议、ERPS协议等都是基于端口加实例设置生成树状态;该接口参数包括:协议号、端口号、实例号、协议生成树状态。
具体来说,当生成树状态的设置方式为基于物理端口设置时,将对应的物理端口对象下的所有端口实例对象,确定为需要进行处理的端口实例对象。举例来说,如图2所示,当生成树状态的设置方式为基于物理端口设置时,若设置的端口号为1,则会将物理端口对象1下的所有端口实例对象,即端口实例对象0、端口实例对象1、端口实例对象2,全都确定为需要进行处理的端口实例对象。
当生成树状态的设置方式为基于物理端口加实例设置时,将对应的物理端口对象下对应的端口实例对象,确定为需要进行处理的端口实例对象。举例来说,如图2所示,当生成树状态的设置方式为基于物理端口加实例设置时,若设置的端口号1、实例号为1,则会将物理端口对象1下对应的端口实例对象1,确定为需要进行处理的端口实例对象。
进一步地,作为一种优选的实施方式,本实施例在步骤B之前,还包括以下操作:创建全局实例对象,所述全局实例对象用于记录全局的生成树实例对象的实例号及其包含的VLAN信息。在此基础上,本实施例的步骤B中,判断所设置的协议生成树状态是否与硬件生成树状态一致之前,将先判断对应的全局实例对象是否已创建,若未创建,则结束操作;若已创建,则继续执行,判断所设置的协议生成树状态是否与硬件生成树状态一致。
可以理解的是,由于交换芯片默认只有全局实例对象0,并且全局实例对象0包含所有VLAN,也就是VLAN 1-4094都属于全局实例对象0管理,且该默认全局实例对象0不能被删除。因此,实际操作中,创建新的全局实例对象(如全局实例对象1)时,刚创建的新的全局实例对象(如全局实例对象1)不包含任何VLAN,还需要添加VLAN到新的全局实例对象(如全局实例对象1)中。添加VLAN到新的全局实例对象(如全局实例对象1)中,需要在默认的全局实例对象0中去查找是否包含该VLAN,如果包含了该VLAN,则将该VLAN从默认的全局实例对象0中删除,然后再添加到新的全局实例对象(如全局实例对象1)中;如果默认的全局实例对象0中不包含该VLAN,那么新的全局实例对象(如全局实例对象1)添加该VLAN将失败。同理,删除所创建的新的全局实例对象(如全局实例对象1)时,首先需要将该全局实例对象(全局实例对象1)的所有VLAN都移除,并将这些VLAN都重新添加到默认的全局实例对象0中,然后再删除创建的新的全局实例对象(如全局实例对象1)。
举例来说,如图3所示,按照上述创建方式,本实施例创建了新的全局实例对象1、全局实例对象2,并且全局实例对象1添加了VLAN 100-199,全局实例对象2添加了VLAN200-299。而默认的全局实例对象0中没有VLAN 100-299。
更进一步地,为了有效保证硬件生成树状态的实时性,作为一种优选的实施方式,所述全局实例对象创建(新增)时,将更新端口实例对象的硬件生成树状态,具体包括:遍历所有物理端口对象,找到物理端口对象下对应的端口实例对象,根据该端口实例对象下的所有协议生成树状态仲裁出硬件生成树状态(仲裁策略参照上文所述),并进行设置。举例来说,创建全局实例对象1后,将遍历所有物理端口对象,并查找物理端口对象下实例号为1的端口实例对象1;通过端口实例对象1下的所有协议生成树状态进行仲裁,只有当所有协议都处于forward状态时,才设置硬件生成树状态为forward状态,只要有一个协议处于block状态,那么硬件生成树状态则设置为block状态。
同理,所述全局实例对象删除时,也将更新端口实例对象的硬件生成树状态,具体包括:遍历所有物理端口对象,找到物理端口对象下对应的端口实例对象,将该端口实例对象的硬件生成树状态设置为forward。举例来说,删除全局实例对象1后,将遍历所有物理端口对象,并查找物理端口对象下实例号为1的端口实例对象1;将端口实例对象1下的硬件生成树状态直接设置为forward,对协议生成树状态不做改变。
为了更清楚的理解本实施例的仲裁操作流程,下面结合附图对本实施例的步骤B进行详细的举例说明。参见图4所示,步骤B具体包括以下步骤:
B1、为上层协议模块提供基于端口设置生成树状态的接口和基于端口加实例设置生成树状态的接口;
B2、当进行端口转发状态设置时,是利用基于端口设置生成树状态的接口进行基于端口设置时,则将对应的物理端口对象下的所有端口实例对象,确定为需要进行处理的端口实例对象,即需要分别对该物理端口对象下的每一个端口实例对象进行处理,转入步骤B4;
B3、当进行端口转发状态设置时,是利用基于端口加实例设置生成树状态的接口进行基于端口加实例设置时,则直接将对应的物理端口对象下对应的端口实例对象,确定为需要进行处理的端口实例对象,转入步骤B4;
B4、确定需要进行处理的端口实例对象后,根据协议号找到对应协议的协议生成树状态,并将新的生成树状态设置到该协议生成树状态中,转入步骤B5;
B5、根据端口实例对象的实例号,查找对应的全局实例对象是否创建,若未创建,则结束操作;若已创建,则继续处理,转入步骤B6;
B6、判读所设置的协议生成树状态与硬件生成树状态是否一致,若一致,则结束操作;若不一致,则继续处理,转入步骤B7;
B7、若所设置的协议生成树状态为block,则直接设置硬件生成树状态为block;若所设置的协议生成树状态为forward,则遍历该端口实例对象下所有的协议生成树状态,只有所有协议生成树状态都为forward时才设置硬件生成树状态为forward。
实施例二
基于同一发明构思,本发明实施例还提供了一种OLT组环网中端口转发状态设置的装置,该装置包括生成树状态成员创建模块、生成树状态设置及仲裁模块。
其中,生成树状态成员创建模块,用于:为每个物理端口创建相应的生成树状态成员,所述生成树状态成员包括物理端口对象,所述物理端口对象包括基于最大实例数分配的若干个端口实例对象;每个端口实例对象包括为各个协议分配的协议生成树状态以及实际的硬件生成树状态;
生成树状态设置及仲裁模块,用于:当进行端口转发状态设置时,确定需要进行处理的端口实例对象,在该端口实例对象下找到各协议对应的协议生成树状态并进行设置;判断所设置的协议生成树状态是否与硬件生成树状态一致,若不一致,则通过硬件生成树状态仲裁操作,仲裁出正确的硬件状态。
进一步地,作为一种优选的实施方式,该装置还包括全局实例对象管理模块、生成树状态更新模块。其中,全局实例对象管理模块,用于:创建(新增)和删除全局实例对象。生成树状态更新模块,用于:当所述全局实例对象管理模块创建(新增)或删除全局实例对象时,更新端口实例对象的硬件生成树状态。
具体来说,当所述全局实例对象管理模块创建(新增)全局实例对象时,所述生成树状态更新模块更新端口实例对象的硬件生成树状态的具体流程包括:遍历所有物理端口对象,找到物理端口对象下对应的端口实例对象,根据该端口实例对象下的所有协议生成树状态仲裁出硬件生成树状态(仲裁策略参照上文所述),并进行设置。当所述全局实例对象管理模块删除全局实例对象时,所述生成树状态更新模块更新端口实例对象的硬件生成树状态的具体流程包括:遍历所有物理端口对象,找到物理端口对象下对应的端口实例对象,将该端口实例对象的硬件生成树状态设置为forward。
可以理解的是,采用本实施例的装置,不但可以解决环协议与LACP协议因为冲突引起的广播风暴问题,而且与现有技术相比,本发明可以灵活的在不同的交换芯片平台中使用,且不会导致数据转发出错,可靠性高;且无需协议间相互通告,可以很好的维护协议的独立性,使环协议、LACP协议之间不再耦合,从而提高了代码质量、降低了维护难度。
需要说明的是,前述方法实施例中的各种变化方式和具体实例同样适用于本实施例的装置,通过前述方法的详细描述,本领域技术人员可以清楚的知道本实施例中装置的实施方法,所以为了说明书的简洁,在此不再详述。
注意:上述的具体实施例仅是例子而非限制,且本领域技术人员可以根据本发明的构思从上述分开描述的各个实施例中合并和组合一些步骤和装置来实现本发明的效果,这种合并和组合而成的实施例也被包括在本发明中,在此不一一描述这种合并和组合。
本发明实施例中提及的优点、优势、效果等仅是示例,而非限制,不能认为这些优点、优势、效果等是本发明的各个实施例必须具备的。另外,本发明实施例公开的上述具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本发明实施例必须采用上述具体的细节来实现。
本发明实施例中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子,并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。本发明实施例所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。本发明实施例所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
本发明实施例中的步骤流程图以及以上方法描述仅作为例示性的例子,并且不意图要求或暗示必须按照给出的顺序进行各个实施例的步骤。如本领域技术人员将认识到的,可以按任意顺序进行以上实施例中的步骤的顺序。诸如“其后”、“然后”、“接下来”等等的词语不意图限制步骤的顺序;这些词语仅用于引导读者通读这些方法的描述。此外,例如使用冠词“一个”、“一”或者“该”对于单数的要素的任何引用不被解释为将该要素限制为单数。
另外,本发明各个实施例中的步骤和装置并非仅限定于某个实施例中实行,事实上,可以根据本发明的概念来结合本文中的各个实施例中相关的部分步骤和部分装置,以构思新的实施例,而这些新的实施例也包括在本发明的范围内。
本发明实施例中的各个操作可以通过能够进行相应的功能的任何适当的手段而进行。该手段可以包括各种硬件和/或软件组件和/或模块,包括但不限于硬件的电路或处理器。
本发明实施例的方法包括用于实现上述的方法的一个或多个动作。方法和/或动作可以彼此互换而不脱离权利要求的范围。换句话说,除非指定了动作的具体顺序,否则可以修改具体动作的顺序和/或使用而不脱离权利要求的范围。
本发明实施例中的功能可以按硬件、软件、固件或其任意组合而实现。如果以软件实现,功能可以作为一个或多个指令存储在切实的计算机可读介质上。存储介质可以是可以由计算机访问的任何可用的切实介质。通过例子而不是限制,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光碟存储、磁碟存储或其他磁存储器件或者可以用于携带或存储指令或数据结构形式的期望的程序代码并且可以由计算机访问的任何其他切实介质。如在此使用的,碟(disk)和盘(disc)包括紧凑盘(CD)、激光盘、光盘、DVD(Digital Versatile Disc,数字多功能光盘)、软碟和蓝光盘,其中碟通过磁再现数据,而盘利用激光光学地再现数据。
因此,计算机程序产品可以进行在此给出的操作。例如,这样的计算机程序产品可以是具有有形存储(和/或编码)在其上的指令的计算机可读的有形介质,该指令可由一个或多个处理器执行以进行在此所述的操作。计算机程序产品可以包括包装的材料。
其他例子和实现方式在本发明实施例和所附权利要求的范围和精神内。例如,由于软件的本质,以上所述的功能可以使用由处理器、硬件、固件、硬连线或这些的任意的组合执行的软件实现。实现功能的特征也可以物理地位于各个位置,包括被分发以便功能的部分在不同的物理位置处实现。
本领域技术人员可以不脱离由所附权利要求定义的教导的技术而进行对在此所述的技术的各种改变、替换和更改。此外,本公开的权利要求的范围不限于以上所述的处理、机器、制造、事件的组成、手段、方法和动作的具体方面。可以利用与在此所述的相应方面进行基本相同的功能或者实现基本相同的结果的当前存在的或者稍后要开发的处理、机器、制造、事件的组成、手段、方法或动作。因而,所附权利要求包括在其范围内的这样的处理、机器、制造、事件的组成、手段、方法或动作。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本发明。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本发明的范围。因此,本发明不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本发明的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。且本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (9)
1.一种OLT组环网中端口转发状态设置的方法,其特征在于,该方法包括以下步骤:
步骤A、为每个物理端口创建相应的生成树状态成员,所述生成树状态成员包括物理端口对象,所述物理端口对象包括基于最大实例数分配的若干个端口实例对象;每个端口实例对象包括为各个协议分配的协议生成树状态以及实际的硬件生成树状态;
步骤B、当进行端口转发状态设置时,确定需要进行处理的端口实例对象,在该端口实例对象下找到各协议对应的协议生成树状态并进行设置;判断所设置的生成树状态是否与硬件生成树状态一致,若不一致,则通过硬件生成树状态仲裁操作,仲裁出正确的硬件状态;
其中,步骤B中,通过硬件生成树状态仲裁操作,仲裁出正确的硬件状态,具体包括以下操作:
若所设置的协议生成树状态为block,则直接设置硬件生成树状态为block;
若所设置的协议生成树状态为forward,则遍历该端口实例对象下所有的协议生成树状态,只有所有协议生成树状态都为forward时才设置硬件生成树状态为forward。
2.如权利要求1所述的OLT组环网中端口转发状态设置的方法,其特征在于,步骤A中,为每个物理端口创建相应的生成树状态成员,具体包括以下操作:
确定设备支持的最大物理端口数、设备支持的最大实例数,并为每个需要设置生成树状态的协议分配一个唯一的协议号;
根据设备支持的最大物理端口数创建对应数量的物理端口对象;
根据设备支持的最大实例数为每个物理端口对象创建对应数量的端口实例对象;
根据协议号为每个端口实例对象创建对应数量的协议生成树状态,并为每个端口实例对象创建唯一的一个硬件生成树状态。
3.如权利要求1所述的OLT组环网中端口转发状态设置的方法,其特征在于:步骤B中,确定需要进行处理的端口实例对象时,根据生成树状态的设置方式进行确定,所述生成树状态的设置方式包括:基于物理端口设置和基于物理端口加实例设置。
4.如权利要求3所述的OLT组环网中端口转发状态设置的方法,其特征在于:
当生成树状态的设置方式为基于物理端口设置时,将对应的物理端口对象下的所有端口实例对象,确定为需要进行处理的端口实例对象;
当生成树状态的设置方式为基于物理端口加实例设置时,将对应的物理端口对象下对应的端口实例对象,确定为需要进行处理的端口实例对象。
5.如权利要求1所述的OLT组环网中端口转发状态设置的方法,其特征在于,在步骤B之前,还包括以下操作:创建全局实例对象,所述全局实例对象用于记录全局的生成树实例对象的实例号及其包含的VLAN信息;
所述步骤B中,判断所设置的协议生成树状态是否与硬件生成树状态一致之前,将先判断对应的全局实例对象是否已创建,若未创建,则结束操作;若已创建,则继续执行。
6.如权利要求5所述的OLT组环网中端口转发状态设置的方法,其特征在于,所述全局实例对象创建时,将更新端口实例对象的硬件生成树状态:遍历所有物理端口对象,找到物理端口对象下对应的端口实例对象,根据该端口实例对象下的所有协议生成树状态仲裁出硬件生成树状态,并进行设置。
7.如权利要求5所述的OLT组环网中端口转发状态设置的方法,其特征在于,所述全局实例对象删除时,将更新端口实例对象的硬件生成树状态:遍历所有物理端口对象,找到物理端口对象下对应的端口实例对象,然后将该端口实例对象的硬件生成树状态设置为forward。
8.一种OLT组环网中端口转发状态设置的装置,其特征在于:该装置包括生成树状态成员创建模块、生成树状态设置及仲裁模块;
所述生成树状态成员创建模块,用于:为每个物理端口创建相应的生成树状态成员,所述生成树状态成员包括物理端口对象,所述物理端口对象包括基于最大实例数分配的若干个端口实例对象;每个端口实例对象包括为各个协议分配的协议生成树状态以及实际的硬件生成树状态;
所述生成树状态设置及仲裁模块,用于:当进行端口转发状态设置时,确定需要进行处理的端口实例对象,在该端口实例对象下找到各协议对应的协议生成树状态并进行设置;判断所设置的协议生成树状态是否与硬件生成树状态一致,若不一致,则通过硬件生成树状态仲裁操作,仲裁出正确的硬件状态;
其中,所述生成树状态设置及仲裁模块通过硬件生成树状态仲裁操作,仲裁出正确的硬件状态,具体包括以下操作:
若所设置的协议生成树状态为block,则直接设置硬件生成树状态为block;
若所设置的协议生成树状态为forward,则遍历该端口实例对象下所有的协议生成树状态,只有所有协议生成树状态都为forward时才设置硬件生成树状态为forward。
9.如权利要求8所述的OLT组环网中端口转发状态设置的装置,其特征在于,该装置还包括全局实例对象管理模块、生成树状态更新模块;
所述全局实例对象管理模块,用于:创建和删除全局实例对象;
所述生成树状态更新模块,用于:当所述全局实例对象管理模块创建或删除全局实例对象时,更新端口实例对象的硬件生成树状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110303687.6A CN112995807B (zh) | 2021-03-22 | 2021-03-22 | 一种olt组环网中端口转发状态设置的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110303687.6A CN112995807B (zh) | 2021-03-22 | 2021-03-22 | 一种olt组环网中端口转发状态设置的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112995807A CN112995807A (zh) | 2021-06-18 |
CN112995807B true CN112995807B (zh) | 2022-06-24 |
Family
ID=76334341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110303687.6A Active CN112995807B (zh) | 2021-03-22 | 2021-03-22 | 一种olt组环网中端口转发状态设置的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112995807B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110601947A (zh) * | 2019-09-09 | 2019-12-20 | 国网山东省电力公司金乡县供电公司 | 一种基于环网和链路聚合的通信方法及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7627654B2 (en) * | 2003-06-09 | 2009-12-01 | Foundry Networks, Inc. | System and method for multiple spanning tree protocol domains in a virtual local area network |
CN101296150B (zh) * | 2007-04-29 | 2011-05-11 | 中兴通讯股份有限公司 | Zesr与stp混合组网实现业务互通的方法及其装置 |
CN101217424B (zh) * | 2008-01-21 | 2010-12-29 | 中兴通讯股份有限公司 | 聚合链路故障的检测方法和装置 |
CN101252459B (zh) * | 2008-03-24 | 2010-12-08 | 中兴通讯股份有限公司 | 一种设置链路端口的协议状态的方法及其监控方法 |
CN104219115B (zh) * | 2014-09-18 | 2017-08-25 | 北京博维亚讯技术有限公司 | 一种使以太网环协议与生成树协议能够异构混合组网的方法和系统 |
US9843495B2 (en) * | 2015-08-26 | 2017-12-12 | Fujitsu Limited | Seamless migration from rapid spanning tree protocol to ethernet ring protection switching protocol |
-
2021
- 2021-03-22 CN CN202110303687.6A patent/CN112995807B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110601947A (zh) * | 2019-09-09 | 2019-12-20 | 国网山东省电力公司金乡县供电公司 | 一种基于环网和链路聚合的通信方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112995807A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6628661B1 (en) | Spanning tree recovery in computer networks | |
US7969989B2 (en) | High performance ethernet networking utilizing existing fibre channel arbitrated loop HBA technology | |
KR102014433B1 (ko) | 미들웨어 머신 환경에서 기능이 저하된 팻-트리들을 디스커버링 및 라우팅하는 것을 지원하는 시스템 및 방법 | |
US10686890B2 (en) | Keep-alive scheduler in a network device | |
US11652735B2 (en) | Multicast data packet processing method, and apparatus | |
US8379645B2 (en) | Link data transmission method, node and system | |
TW201435646A (zh) | 用於PCIe(快速週邊組件互連)架構上主機間訊息收發安全及隔離的方法與裝置 | |
WO2009074105A1 (en) | Link state detection method and system thereof | |
US11336660B2 (en) | Methods and apparatuses for identifying replay transaction based on blockchain integrated station | |
CN109600326B (zh) | 数据或报文转发的方法、节点和系统 | |
CN111343089B (zh) | 解决mac地址hash冲突导致洪泛问题的方法及系统 | |
US10409620B2 (en) | Spanning tree protocol warm reboot system | |
CN114500467A (zh) | 一种地址冲突检测方法、地址冲突检测装置及电子设备 | |
CN113472646A (zh) | 一种数据传输方法、节点、网络管理器及系统 | |
CN102437967B (zh) | 报文转发方法和装置 | |
CN102307137A (zh) | 管理报文发送和接收方法、装置、堆叠交换机和堆叠系统 | |
CN112995807B (zh) | 一种olt组环网中端口转发状态设置的方法及装置 | |
CN113489640A (zh) | 报文转发方法、装置及网关系统 | |
US9317678B2 (en) | System and method for managing logins in a network interface | |
CN107547374B (zh) | 一种聚合路由处理方法和装置 | |
US11012301B2 (en) | Notification and transfer of link aggregation group control in anticipation of a primary node reboot | |
CN101510837A (zh) | 以太网桥设备、迁移聚合口地址的方法及装置 | |
US10700890B1 (en) | Spanning tree protocol port-based link selection system | |
CN103004157B (zh) | 网络设备加入集群系统的接口注册方法和设备 | |
US20200119974A1 (en) | Spanning tree protocol traffic handling system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |