首页> 中国专利> 一种在单生成树交换芯片上实现多生成树协议的方法

一种在单生成树交换芯片上实现多生成树协议的方法

摘要

本发明涉及通信领域中通过交换芯片的设置实现通信协议的方法。一种在单生成树交换芯片上实现多生成树协议的方法,适用于支持IEEE802.1q的虚拟局域网及IEEE802.1d生成树协议的交换芯片,其特征在于:通过建立交换芯片中端口和VLAN关系表之间的对应关系,将虚拟局域网绑定到生成树实例上,按照生成树实例设置端口状态,实现多生成树协议。采用本发明的技术方案,可在传统的支持单生成树的交换芯片上运行MSTP协议,利用芯片的VLAN和端口特性,完成MSTP各种功能,并大大降低现有网络设备的软件升级的成本。

著录项

  • 公开/公告号CN1525715A

    专利类型发明专利

  • 公开/公告日2004-09-01

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN03105366.1

  • 发明设计人 陈锋;汪勇;陈刚;苏兴山;

    申请日2003-02-26

  • 分类号H04L29/06;H04L12/28;H04L12/24;H04L12/26;H04Q3/00;

  • 代理机构11127 北京三友知识产权代理有限公司;

  • 代理人李强

  • 地址 518057 广东省深圳市南山区科技园科发路1号华为用服中心大厦

  • 入库时间 2023-12-17 15:30:37

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-02-15

    未缴年费专利权终止 IPC(主分类):H04L29/06 授权公告日:20090715 终止日期:20180226 申请日:20030226

    专利权的终止

  • 2009-07-15

    授权

    授权

  • 2005-06-08

    实质审查的生效

    实质审查的生效

  • 2004-09-01

    公开

    公开

说明书

技术领域

本发明涉及通信领域,尤其涉及通信领域中通过交换芯片的设置实现通信协议的方法。

技术背景。

IEEE802.1d和IEEE80.1w给出了在简单交换网络中避免数据环路和实现冗余链路备份的解决方案;为了适应多虚拟局域网(VLAN,Virtual Local AreaNetwork)的大型的复杂交换网络,IEEE802.1s Draft14草案进一步提出了多生成树协议,即MSTP(Multiple Spanning Tree Protocol)。IEEE802.1s将一个到多个交换设备划分为不同的域,在一个域内维护多个生成树实例(MSTI),来允许不同VLAN的数据报文按照各自的路径转发,在所有域之间则通过公共生成树(CST)串接起来,以保证全网的连通性。由此可见:IEEE802.1S的最大特征就是生成树实例的多样性。

因此,和传统的支持IEEE802.1D的交换芯片相比,实现IEEE802.1S的交换芯片要求具备更多的新特征,但这是在芯片硬件设计时决定的。目前网上运行着的大量交换设备构建在单生成树交换芯片基础之上,如何在这些芯片上实现多生成树协议的强大功能,是一个重大而现实的问题。

在参考文献IEEE802.1d中提出了交换设备中实现单一生成树的协议机制,但该方案无法实现多生成树,在多个VLAN存在的网络中会造成VLAN内链路不完整;并且没有提供如何在传统交换芯片上实现多生成树的技术方案。

在参考文献IEEE802.1w中提出了交换设备中实现单一生成树的协议机制,并且实现在某些条件下的快速迁移。但该方案无法实现多生成树,在多个VLAN存在的网络中会造成VLAN内链路不完整,没有提供如何在传统交换芯片上实现多生成树的技术方案。

在参考文献IEEE802.1s中提出了交换设备中实现多生成树的协议机制,并且实现在某些条件下的快速迁移。但该方案中没有提供如何在传统交换芯片上实现多生成树的技术方案。

IEEE802.1s提出了解决多VLAN的大型复杂交换网络的数据环路问题的新协议,即多生成树协议(MSTP),这一协议要求交换芯片具备诸多新特征,如在一个设备中同时运行多个独立生成树实例,将网络中的虚拟局域网(VLAN)绑定到指定生成树,按照实例设置端口状态等等。

但是目前网上运行着的大量交换设备不具备这些芯片特征,从而无法直接运行多生成树协议(MSTP)。

发明内容

本发明的目的就是提供一种在单生成树交换芯片上实现多生成树协议的方法,以解决目前大量交换设备无法直接运行多生成树协议的缺陷。为此,本发明采用如下方案:

一种在单生成树交换芯片上实现多生成树协议的方法,其中通过建立交换芯片中端口和VLAN关系表之间的对应关系,将虚拟局域网绑定到生成树实例上,按照生成树实例设置端口状态,实现多生成树协议。

所述的在单生成树交换芯片上实现多生成树协议的方法,进一步包括:

设置设备使能/禁止MSTP协议;

将虚拟局域网绑定到制定的生成树实例上;

设置端口在生成树实例上的学习状态;

设置端口在生成树实例上的阻塞状态;

设置端口在生成树实例上的转发状态;

读取端口的MSTP状态。

所述的设置设备使能/禁止MSTP协议的步骤,是直接设置芯片的单生成树协议为打开/关闭状态。

所述的将虚拟局域网绑定到制定的生成树实例上,是通过交换机记录上述绑定关系来完成的。

所述的设置端口在生成树实例上的阻塞状态,包括以下步骤:

a、查询绑定时记录的绑定关系;

b、将该端口上所有属于该实例的VLAN删除;

c、交换机记录该端口状态。

所述的读取端口的MSTP状态,包括读取交换机记录的该端口状态。

所述的设置端口在生成树实例上的转发状态,包括以下步骤:

a、查询绑定时记录的绑定关系;

b、将该端口上所有属于该实例的VLAN删除;

c、交换机记录设置的状态。

所述的读取端口的MSTP状态,包括读取交换机记录的设置状态。

所述的单生成树交换芯片上实现多生成树协议的方法,适用的硬件环境为支持IEEE802.1q虚拟局域网,及IEEE802.1d生成树协议的交换芯片。

由于采用本发明的技术方案,可以取得如下技术效果:

1)可在传统的支持单生成树的交换芯片上运行MSTP协议,利用芯片的VLAN和端口特性,完成MSTP各种功能。

2)在现有的交换机软件体系中,仅仅加入很薄的一个MSTP模拟层,就实现了几乎所有功能,这将大大降低现有网络设备的软件升级的成本。

3)无论对上层协议和用户,还是对下层芯片,该方案的技术处理都是透明。

附图说明

图1是多个VLAN的端口示意图;

图2是本发明实施例中,软件的一个分层设计示意图。

具体实施方式

下面说明本发明的具体实施方式。

已有单生成树交换芯片,其VLAN关系表显示了端口和VLAN的关系,如图1所示,是一个多个VLAN的端口示意图,其中端口3和端口4,可以同时属于VLAN1和VLAN2。如表1所示。

    VLAN1    VLAN2    端口1    1    0    端口2    1    0    端口3    1    1    端口4    1    1    端口5    0    1    端口6    0    1

               表1

我们将上述VLAN关系表与与单生成树芯片中的端口之间建立对应关系,实现MSTP所要求的按照实例设置端口状态。我们利用端口状态中的学习状态、阻塞状态、转发状态等完成多生成树协议的实现。

本发明的技术方案适用于支持IEEE802.1q的虚拟局域网及IEEE802.1d生成树协议的交换芯片,通过建立交换芯片中端口和VLAN关系表之间的对应关系,将虚拟局域网绑定到生成树实例上,按照生成树实例设置端口状态,实现多生成树协议。

主要包括以下部分:

1、设置设备使能/禁止MSTP协议;

该功能是直接设置交换芯片的单生成树协议为打开/关闭状态。

2、将虚拟局域网绑定到制定的生成树实例上;

该功能由交换机记录上述绑定关系即可完成该绑定。

3、设置端口在生成树实例上的学习状态;

该功能是对各种操作不做任何处理,直接返回成功,即为学习状态。

4、设置端口在生成树实例上的阻塞状态;

该阻塞状态的设定可以包括以下步骤:

a、查询2中绑定时记录的绑定关系;

b、将该端口上所有属于该实例的VLAN删除;

c、交换机记录该端口状态。

5、设置端口在生成树实例上的转发状态;

该转发状态的设置可以包括以下步骤:

a、查询2中绑定时记录的绑定关系;

b、将该端口上所有属于该实例的VLAN删除;

c、交换机记录设置的状态。

6、读取端口的MSTP状态。

读取端口的MSTP状态包括交换机读取记录的该端口状态和交换机读取该记录的设置的状态。

多生成树协议的实现,主要是完成上述的功能,通过上述6个功能的设置,即可完成在单生成树交换芯片上实现多生成树协议。

下面看一个具体的实施例:

如图2所示,是本发明在与MSTP相关的交换软硬件分层的系统设计,这里强调一下,该分层结构只是为了说明本发明具体实现方式而做的一个逻辑分层,实际使用中,可以有多种方式来完成上述功能,并不完全采用如前所述的软件分层机制,仍然利用芯片的VLAN和端口的关系来模拟MSTP,这样的方案本质上是和本专利一致的。

这里先对该分层结构做一个简单的介绍:

MSTP协议层(MPL)为软件层,实现IEEE802.1S给出的状态机流程,最终解释桥协议数据单元的内容,实现防止环路和冗余配备的软件逻辑。

VLAN管理控制层(VML)为软件层,为各类VLAN和端口操作提供统一的界面。这些操作包括:VLAN创建、删除,VLAN中添加或删除端口成员,为端口设置VLAN的TAG属性,为端口设置默认VLAN等。VML还负责传递MPL对底层的操作,VML不解释和关心MPL操作,直接透传到MSL,由MSL、SWDL、SWC共同完成实际MPL所要求的功能。

MSTP模拟层(MSL)为软件层,负责将MSTP协议对芯片的所有读写操作转换为与单生成树协议兼容的操作,从而对上层屏蔽底层芯片的差异。这些操作包括:使能/禁止设备的多生成树协议,设置端口在不同生成树实例上的阻塞、转发、学习状态,将虚拟局域网(VLAN)绑定到指定的多生成树实例上去等等。

交换驱动层(SWDL)为直接控制交换芯片的软件层,实现对交换芯片功能寄存器的读写,处理芯片收上的各类报文,并根据报文类型上交上层处理。

交换芯片(SWC)为硬件层,在当前的方案中,交换芯片不支持多个生成树的共存。

MPL对底层的操作能否实现是设备运行MSTP的必要条件。本方案的主要部分就是如何实现MPL所要求的操作,这些工作主要是在MSL中完成的,MSL提供底层芯片和上层协议之间的独立性和兼容性。

具体实现过程如下:

1、使能/禁止设备的MSTP协议。

MPL将操作经过VML透传到MSL。MSL将此操作转换为使能/禁止设备的单生成树STP协议。调用SWDL,设置交换芯片。

2、将虚拟局域网(VLAN)绑定到指定的生成树实例上

MPL将操作经过VML透传到MSL。MSL将软件记录VLAN和生成树实例之间的绑定关系,不对SWDL和SWC作任何操作。

3、设置端口在某生成树实例上为学习状态。

MPL将操作经过VML透传到MSL。MSL不做任何实际处理,直接返回成功。

4、设置端口在某生成树实例上为阻塞状态。

MPL把操作经过VML透传到MSL。MSL作如下操作:

查询MSL在2中记录的绑定关系,得到所有绑定VLAN的索引,依次处理这些VLAN,即:

查询VML中记录的用户配置信息,如果VLAN包含该端口并且实例上该端口原来的状态不是阻塞状态,则令SWDL-SWC设置芯片,将端口从该VLAN内删除,并更新端口上的VLAN计数器(表征端口所属于的VLAN个数)。如果端口上VLAN计数器减为0,则向端口加入管理VLAN(可以是任何一个合法VLAN),并调用SWDL-SWC将芯片在该端口的单生成树状态寄存器设置为阻塞。

MSL把端口在该实例的状态记录为阻塞。

由于对芯片来说,VLAN已经不再包含该端口(虽然上层软件认为包含),所以该端口将无法收发该VLAN的报文的报文,从而起到按实例阻塞端口的作用。

MSL的这些操作不改变VML中保留的用户的配置(端口-VLAN包含关系、端口的TAG属性,端口的默认VLAN等),从而使得MSL的所有这些操作对上层用户来说是透明的。

5、置端口在某生成树实例上为转发状态。

MPL把操作经过VML透传到MSL。MSL作如下操作:

查询MSL在2中记录的绑定关系,得到所有绑定VLAN的索引,依次处理这些VLAN,即:

查询VML中记录的用户配置,如果VLAN包含该端口并且实例上该端口原来不是转发状态,则令SWDL-SWC设置芯片,将VLAN恢复包含该端口,并更新端口上的VLAN计数器(表征端口所属于的VLAN个数)。查询VML中保留的用户配置,调用SWDL-SWC恢复芯片中该VLAN在端口上的TAG信息,如果该VLAN为该端口的默认VLAN,则令SWDL-SWC恢复芯片中的该设置。如果端口上VLAN计数器从0增加为1,则从端口上删除管理VLAN,并调用SWDL-SWC将芯片在该端口的单生成树状态寄存器设置为转发状态。

MSL将端口在该实例的状态记录为转发。

由于端口上的所有信息都被恢复,所以该端口将被允许收发该实例上的所有VLAN的报文,只要端口属于这些VLAN。

MSL的这些操作不改变VML中保留的用户的配置(端口-VLAN包含关系、端口的TAG属性,端口的默认VLAN等),从而使得MSL的所有这些操作对上层用户来说是透明的。

6、读取端口的MSTP状态

MPL将操作经过VML透传到MSL。MSL作如下操作:

将记录在MSL中的端口状态值直接返回上层,不再通过SWDL对芯片作任何读操作。

本发明由于VML实现普通用户对端口、VLAN的读写配置,而MSL为了完成多生成树模拟,已经对芯片中的端口、VLAN信息作了修改,会带来一些相应的影响,所以VML对底层的读写操作也需要经过MSL过滤。

具体实现过程如下。

7、用户通过VML向VLAN中添加某个端口

VML将操作传给MSL后,MSL作如下操作:

如果MSL中记录的端口MSTP状态为阻塞,直接返回成功。

如果MSL中记录的端口MSTP状态为转发,并且MSL中记录的该端口VLAN计数器为0,且要添加的VLAN恰好是管理VLAN,则:将MSL中保存的该端口VLAN计数器改为1。然后调用SWDL-SWC层设置芯片,将端口上的单生成状态树寄存器设置为转发。不再对芯片作VLAN添加端口的写操作,即可返回成功。

如果以上两者都不满足,则将VLAN添加端口的操作命令透传至SWDL-SWC,写芯片。在芯片添加成功后,更新MSL中记录的端口VLAN计数器,并检查是否从0变为1,如果满足则将调用SWDL-SWC设置芯片把端口从管理VLAN中删除,并调用SWDL-SWC设置芯片将该端口的单生成树状态寄存器设置为转发。

8、用户通过VML从VLAN中删除某个端口

VML将操作传给MSL后,MSL作如下操作:

如果MSL中记录的端口MSTP状态为阻塞,则无须设置芯片,即可返回成功。

否则,将VLAN删除端口的操作命令透传至SWDL-SWC,执行芯片操作。在芯片删除成功后,更新MSL中记录的端口VLAN计数器,如果计数器变成0,则调用SWDL-SWC设置芯片把端口加入管理VLAN,并调用SWDL-SWC设置芯片将该端口的单生成树状态寄存器设置为阻塞。

9、用户通过VML设置端口的默认VLAN

VML将操作传给MSL后,MSL作如下操作:

如果MSL中记录的端口MSTP状态为阻塞,直接返回成功。否则,透传至SWDL-SWC对芯片进行操作。

10、设置端口在某VLAN上是否TAG

VML将操作传给MSL后,MSL作如下操作:

如果MSL中记录的端口MSTP状态为阻塞,直接返回成功。否则,透传至SWDL-SWC对芯片进行操作。

管理VLAN的引入是基于如下的考虑:虽然用户看到端口仍然属于某些VLAN,但是MSL可能已经设置芯片令该端口不属于任何VLAN,在这种情况下交换设备可能发生不可靠的转发现象。为保证协议报文能够正确收发,我们将该端口加入一个管理VLAN,并且将芯片中的端口单生成树状态寄存器设置为转发或者阻塞。这些技术处理完全是由MSL完成的,SWDL-SWC无须作任何改动,MSL之上的软件也无须作任何改动。

由于采用本发明的技术方案,可以取得如下技术效果:

1)可在传统的支持单生成树的交换芯片上运行MSTP协议,利用芯片的VLAN和端口特性,完成MSTP各种功能。

2)在现有的交换机软件体系中,仅仅加入很薄的一个MSTP模拟层,就实现了几乎所有功能,这将大大降低现有网络设备的软件升级的成本。

3)无论对上层协议和用户,还是对下层芯片,该方案的技术处理都是透明。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号