堆叠系统中的mac地址信息同步方法及装置制造方法

文档序号:8004015阅读:324来源:国知局
堆叠系统中的mac地址信息同步方法及装置制造方法
【专利摘要】本申请公开了一种堆叠系统中的MAC地址信息同步方法及装置,应用于堆叠系统中的成员设备:当CPU接收到转发芯片发送的新MAC消息时,根据MAC消息中的源端口信息判断是否为本地用户业务端口,如果是本地用户业务端口,则根据MAC消息中的源MAC地址、VLAN?ID和源端口信息,生成对应的MAC地址表项并配置到FDB中,以及生成MAC地址同步报文,广播所述MAC地址同步报文给所述堆叠系统中的其他成员设备;如果是非本地用户业务端口,则根据MAC消息中的源MAC地址、VLAN?ID和源端口信息,生成对应的MAC地址表项并配置到FDB中。本申请在堆叠系统中实现了低CPU开销、高速的MAC地址信息同步方法。
【专利说明】堆叠系统中的MAC地址信息同步方法及装置
【技术领域】
[0001]本申请涉及通信网络【技术领域】,特别涉及一种堆叠系统中的MAC地址信息同步方法及装置。
【背景技术】
[0002]以太网交换机堆叠技术可以将多个交换机互联在一起,形成分布式交换架构,并作为一个逻辑交换实体运行。从管理和配置的角度来看,一个分布式交换架构看起来就像一台交换设备;从性能的角度来看,一个分布式交换架构中的每一个交换机都能针对本交换机的端口上的第二层、第三层数据流通信业务,制定本地转发策略。
[0003]通过堆叠,多个交换设备可以互相连接起来形成一个“联合设备”,可以将这个“联合设备”称为一个Stacking(堆叠系统),将组成Stacking的每一个交换设备称为一个Slot(堆叠成员)。多个Slot组成一个Stacking之后,无论在管理还是在使用上,就都成为了一个整体。也就是说,用户可以将这多个Slot看成单一设备进行管理和使用。这样既可以通过增加Slot来扩展端口数量和交换能力,同时也可以通过多个Slot之间的相互备份增加整个Stacking的可靠性。
[0004]图1所示,3个设备:Slotl、Slot2和Slot3组成一个环形堆叠系统。每一个Slot上最多具有两组堆叠口,分别记为Pl和P2。一个Slot的堆叠口 Pl与相邻的另一个Slot的堆叠口 P2相连,组成环形堆叠系统。该环形堆叠系统中的每一个Slot通过聚合与交换机SWl和SW2连接。
[0005]上行方向的单播流(目的MAC (Media Access Control,媒体访问控制)地址为Mac2,源MAC地址为Macl)经该环形堆叠系统的Slotl转发至SW2,从而,Slotl上学习到了源MAC地址:Macl。而回复的下行方向的单播流(目的MAC地址为Macl,源MAC地址是Mac2)经聚合组Hash (哈希)计算后,并没有从Slotl转发,而是从Slot2上进入该环形堆叠系统。由于Slot2上并没有学习到Mac I,Slot2查表发现该单播报文是目的MAC地址未知的单播报文,因此,将该单播报文在该环形堆叠系统内广播。这样,不仅增加了额外带宽的消耗,而且会使得目的设备(即MAC地址为Macl的设备)收到多份报文。
[0006]为了避免上述情况的发生,堆叠系统通常借助IPC (Inter-processCommunication,进程间通信)通信技术,在堆叠成员之间进行MAC地址的同步处理。同步方式主要有定期批量同步方式和事件触发方式两种。
[0007]定期批量同步方式是指:每一个堆叠成员定期(周期性)读取本设备学习到的所有MAC地址信息,通过IPC通信手段,将这些MAC地址信息打包发送给其它堆叠成员。其它堆叠成员收到同步过来的MAC地址信息之后,确定是否需要同步,S卩,本设备上是否已经存在该MAC地址信息,以及,合法性检查;当确定需要同步时,则将该MAC地址信息配置到硬件FDB (Forwarding Database,转发数据库)中。
[0008]事件触发方式是指:每一个堆叠成员在学习到MAC地址或有MAC地址老化时,进行MAC地址信息的同步,过程同定期批量同步方式。[0009]其中,被同步的MAC地址信息可以是聚合组下学习到的MAC地址信息,也可以是任意其他端口学习到的MAC地址信息。
[0010]上述现有的堆叠系统内MAC地址信息的同步方法,必须借助IPC通信技术,使用板间IPC消息传递被同步的MAC地址信息。这样,同步发起端中的CPlXCentral ProcessingUnit,中央处理器)需要组织MAC同步数据包(即板间IPC消息),被同步端中的CPU需要解析MAC同步数据包,确定是否需要同步,在确定需要同步后逐条配置到硬件FDB中。可见,整个同步过程严重消耗CPU的处理能力,占用CPU的开销较大。

【发明内容】

[0011]本申请提供了一种堆叠系统中的MAC地址信息同步方法及装置,以解决现有的堆叠系统内MAC地址信息的同步方法存在的占用CPU的开销较大的问题。
[0012]本申请的技术方案如下:
[0013]一方面,提供了一种堆叠系统中的MAC地址信息同步方法,堆叠系统中包括:多个成员设备,该方法应用于成员设备,该方法包括:
[0014]当CPU接收到转发芯片发送的新MAC消息时,根据MAC消息中源端口信息判断是否为本地用户业务端口;
[0015]如果是本地用户业务端口,则根据MAC消息中的源媒体访问控制MAC地址、虚拟局域网标识VLAN ID和源端口信息,生成对应的MAC地址表项并配置到转发数据库FDB中,以及生成MAC地址同步报文,广播所述MAC地址同步报文给所述堆叠系统中的其他成员设备;
[0016]如果是非本地用户业务端口,则根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项并配置到FDB中。
[0017]另一方面,还提供了一种堆叠系统中的MAC地址信息同步装置,堆叠系统中包括:多个成员设备,该装置应用于成员设备,该装置包括:
[0018]判断模块,用于当CPU接收到转发芯片发送的新MAC消息时,根据MAC消息中的源端口信息判断是否为本地用户业务端口;
[0019]处理模块,用于触发CPU根据所述判断模块的判断结果,在源端口信息是本地用户业务端口时,根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项并配置到转发数据库FDB中,以及生成MAC地址同步报文;在源端口信息是非本地用户业务端口时,根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项并配置到FDB中;
[0020]转发模块,用于触发转发芯片根据处理模块的指令广播所述MAC地址同步报文给所述堆叠系统中的其他成员设备。
[0021]通过本申请的技术方案,当CPU接收到转发芯片发送的新MAC消息时,根据MAC消息中源端口信息判断是否为本地用户业务端口 ;如果是本地用户业务端口,则根据MAC消息中的源媒体访问控制MAC地址、虚拟局域网标识VLAN ID和源端口信息,生成对应的MAC地址表项并配置到FDB中,以及生成MAC地址同步报文,广播所述MAC地址同步报文给所述堆叠系统中的其他成员设备;如果是非本地用户业务端口,则根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项并配置到FDB中。这样,同步发起端接收到新MAC消息判断是否需要发送MAC地址同步报文后,即可触发CPU进行学习,生成MAC地址表项或MAC地址同步报文,并且,被同步端接收到MAC地址同步报文后,转发芯片根据报文源MAC,判断是否触发CPU进行学习,生成MAC地址表项,而不需要像现有技术那样借助IPC通道。而且,现有技术中同步发起端CPU需要不断组织MAC同步数据包,即将MAC地址同步消息打包发送给被同步端,被同步端中的CPU需要对每一个MAC同步数据包进行解析。所以本发明在同步发起端的CPU节省了组织MAC同步数据包的开销,在被同步端由转发芯片判断是否触发CPU进行学习,生成MAC地址表项,节省了解析每一个MAC同步数据包的开销。从而,在同步发起端和被同步端都减少了 CPU的开销,实现了无IPC通信、低CPU开销的MAC地址信息同步。
【专利附图】

【附图说明】
[0022]图1是一种实际的堆叠系统的架构示意图。
[0023]图2是本申请的实施例一的堆叠系统中的MAC地址信息同步方法的流程图。
[0024]图3是本申请堆叠系统中的MAC地址信息同步装置的结构示意图。
【具体实施方式】
[0025]为了解决现有的堆叠系统内MAC地址信息的同步方法存在的占用CPU的开销较大的问题,本申请的以下实施例中提供了一种堆叠系统中的MAC地址信息同步方法,以及一种堆叠系统中的MAC地址信息同步装置。
[0026]在以下实施例中,堆叠系统中包括:多个成员设备(Slot)。成员设备可以是交换机等,本申请对此不做限定。
[0027]实施例一(事件触发方式)
[0028]本申请的实施例一的堆叠系统中的MAC地址信息同步方法由成员设备来执行。如图2所示,该同步方法包括以下步骤:
[0029]步骤21,当CPU接收到转发芯片发送的新MAC消息时,根据MAC消息的源端口信息判断是否为本地用户业务端口 ;如果是本地用户业务端口,则执行步骤22 ;如果是非本地用户业务端口,则执行步骤23 ;
[0030]步骤22、根据 MAC 消息中的源 MAC 地址、VLAN ID (Virtual Local Area NetworkID,虚拟局域网标识)和源端口信息,生成对应的MAC地址表项并配置到FDB中,以及生成MAC地址同步报文,广播所述MAC地址同步报文给所述堆叠系统中的其他成员设备;
[0031]步骤23、根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项并配置到FDB中。
[0032]具体地,在步骤21中,当报文为源MAC未知报文到达转发芯片,转发芯片根据报文的源MAC地址和VLAN ID,在MAC地址表项中查找,未找到则说明需要学习该新的MAC地址,就会产生一个新MAC消息,发送给CPU ;
[0033]当CPU接收到新MAC消息时,根据MAC消息中源端口信息判断是否为本地用户业务端口,如果是本地用户业务端口,说明本成员设备是堆叠系统中首次学习到此MAC地址信息的设备,应该向其他成员设备同步这个MAC地址信息。
[0034]具体地,在步骤22中,CPU根据MAC消息中的源媒体访问控制MAC地址、虚拟局域网标识VLAN ID和源端口信息,生成对应的MAC地址表项并配置到硬件FDB (转发数据库)中,其中对应的MAC地址表项包括MAC消息中的源MAC地址、VLANID和源端口信息;同时CPU还根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成MAC地址同步报文;
[0035]所述CPU将所述MAC地址同步报文发送给转发芯片,通知转发芯片通过堆叠端口转发所述MAC地址同步报文。其中,该成员设备的转发芯片通过堆叠端口,在所在VLAN内的堆叠系统中广播MAC地址同步报文,所广播的MAC地址同步报文的内容包括MAC消息中的源MAC地址、VLAN ID和源端口信息。也就是说,MAC地址同步报文中的源MAC地址是MAC消息中的源MAC地址;MAC地址同步报文中的目的MAC地址,是广播地址,即全OxFF。
[0036]如果是非本地用户业务端口,这时只需要下发MAC地址表项到FDB中即可。因此执行步骤23、所述CPU根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项并配置到硬件FDB中,其中对应的MAC地址表项包括MAC消息中的源MAC地址、VLAN ID和源端口信息。
[0037]需要说明的是,新MAC消息包括报文中携带的源MAC地址、VLAN ID和源端口信息及消息类型为新MAC。MAC消息根据类型的不同,分为两种,一种为“新MAC”,一种为“MAC移动”。根据源端口类型的不同,源端口信息相应分为两种,如果源端口为用户业务端口,则源端口信息包括:源芯片ID和源端口 ID。如果源端口为聚合端口,则源端口信息包括聚合组ID。从源端口信息可以区分端口是用户业务端口,或者聚合端口。用户业务端口是指成员设备上连接堆叠系统外部的设备的普通端口。交换机同时与多个成员设备的物理端口连接,形成多条物理链路,将多条物理链路聚合成一条逻辑链路,则聚合端口就是指成员设备上连接交换机的,且属于同一聚合组的逻辑端口。
[0038]上述步骤201?203描述了本成员设备依据事件触发方式确认是否发送MAC地址同步报文,也就是说,本成员设备的转发芯片根据接收到的报文源MAC判断是否产生新MAC消息,如果产生新MAC消息,这一事件就会触发CPU根据源端口信息判断是否发送MAC地址同步报文。其中,转发芯片接收到的报文可以包括MAC地址同步报文。
[0039]因此,转发芯片根据接收到的报文源MAC判断是否产生新MAC消息,如果报文为源MAC未知报文,产生新MAC消息发送给CPU,接下来执行步骤201?203 ;
[0040]如果报文为源MAC已知报文,则转发芯片刷新本地MAC地址表项为活跃状态;
[0041]如果报文为源MAC已知报文,但源端口发生变化,产生MAC移动消息发送给CPU,所述CPU根据所述MAC移动消息直接删除本地MAC地址表项。
[0042]如上所述,举例来讲,如果本成员设备的转发芯片通过堆叠端口接收到广播的MAC地址同步报文之后,转发芯片对报文进行判断,
[0043]如果报文为源MAC未知报文,则产生新MAC消息发送给所述CPU,所述CPU根据MAC消息中源端口信息判断是否为本地用户业务端口,由于MAC地址同步报文的源端口信息为非本地用户业务端口,所以只生成MAC地址表项即可。
[0044]由于所有堆叠端口都是所有VLAN的成员端口,因此,MAC地址同步报文可到达所有堆叠端口,并在堆叠端口的Ingress (入方向)触发源MAC地址的学习。
[0045]本实施例的技术方案中,当CPU接收到转发芯片发送的新MAC消息时,根据MAC消息的源端口信息判断是否为本地用户业务端口,如果是本地用户业务端口,则根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项和MAC地址同步报文,广播所述MAC地址同步报文给所述堆叠系统中的其他成员设备;如果是非本地用户业务端口,则根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项。这样,同步发起端接收到新MAC消息判断是否需要发送MAC地址同步报文后,即可触发CPU进行学习,生成MAC地址表项或MAC地址同步报文,并且,被同步端接收到MAC地址同步报文后,转发芯片根据报文源MAC,判断是否触发CPU进行学习,生成MAC地址表项,而不需要像现有技术那样借助IPC通道。而且,现有技术中同步发起端CPU需要不断组织MAC同步数据包,即将MAC地址同步消息打包发送给被同步端,被同步端中的CPU需要对每一个MAC同步数据包进行解析。所以本发明在同步发起端的CPU节省了组织MAC同步数据包的开销,在被同步端由转发芯片判断是否触发CPU进行学习,生成MAC地址表项,节省了解析每一个MAC同步数据包的开销。从而,在同步发起端和被同步端都减少了 CPU的开销,实现了无IPC通信、低CPU开销的MAC地址信息同步。
[0046]下面列举具体场景对上述步骤进行详细说明。
[0047]例如,Slot2从自身的用户业务端口 PORTl接收外部报文,外部报文携带的MAC地址信息:源MAC地址为MACl,以及VLAN ID,则标记外部报文来自P0RT1,作为源端口信息。实际上,芯片ID需要与端口 ID共同作为源端口信息。这里,只是为描述上的方便,才省略了源端口信息中的芯片ID,但不代表实际上可以省略,下同。
[0048]Slot2的转发芯片根据报文的“MAC1+VLAN ID”在已有MAC表中查找,未找到则产生新MAC消息,发送给CPU,该新MAC消息中携带“MAC1+VLAN ID+P0RT1”,CPU学习^ MAC I+VLAN ID+P0RT1 ”,并将其添加到自身MAC地址表项中。
[0049]同时,CPU在接收到新MAC消息时,还根据新MAC消息中的“P0RT1”,判断该源端口信息为本地用户业务端口,因此,还将“MAC1+VLAN ID+P0RT1”,生成MAC地址同步报文,广播所述MAC地址同步报 文给所述堆叠系统中的其他成员设备Slotl和Slot3。
[0050]如果Slot2的转发芯片找到“MAC1+VLAN ID+PORTx”,但源端口信息并非“P0RT1 ”,说明发生了 MAC迁移,需要将该本地MAC地址表项中的MAC地址“MAC1”重新学习到新的端口,转发芯片产生MAC移动消息,发送给CPU,通知CPU直接删除该本地MAC地址表项。
[0051]如果Slot2的转发芯片找到“MAC1+VLAN ID+P0RT1 ”,说明是已知MAC地址信息,这时该MAC地址表项可能处于两种状态:Active (活跃)或者In-active (非活跃),需要转发芯片将处于这两种状态的MAC地址表项都刷新为活跃状态。
[0052]接下来,Slotl/Slot3从堆叠端口接到Slot2发送的MAC地址同步报文,其中MAC地址同步报文携带“MAC1+VLAN ID+P0RT1”。
[0053]Slotl/Slot3的转发芯片收到同步报文后,根据同步报文的“MAC1+VLAN ID”在已有MAC表中查找,未找到则产生新MAC消息,发送给CPU,该新MAC消息中携带“MAC1+VLANID+P0RT1”,CPU学习“MAC1+VLAN ID+P0RT1 ”,并将其添加到自身MAC地址表项中。同时CPU在接收到新MAC消息时,还判断报文的源端口信息为“P0RT1”,虽然是用户业务端口,但并不是本地用户业务端口,而是Slot2的用户业务端口,因此不会构造MAC同步报文并向其它成员同步这个MAC地址。
[0054]如果找到“MAC1+VLAN ID+PORTx”但源端口信息并非“P0RT1 ”,说明需要将该本地MAC地址表项中的MAC地址“MAC1 ”重新学习到新的端口时,产生MAC移动消息,发送给CPU,通知CPU直接删除该MAC地址表项。[0055]如果找到“MAC1+VLAN ID+P0RT1 ”,说明是已知MAC地址信息,这时该MAC地址表项可能处于两种状态:Active (活跃)或者In-active (非活跃),需要转发芯片将处于这两种状态的MAC地址表项都刷新为活跃状态。
[0056]实施例二 (事件触发方式)
[0057]本申请的实施例二的堆叠系统中的MAC地址信息同步方法由成员设备来执行。该同步方法包括以下步骤:
[0058]步骤31、当CPU接收到转发芯片发送的新MAC消息时,根据MAC消息的源端口信息判断是否为聚合端口,如果是聚合端口,且预定时间内至少两次收到此MAC消息,则执行步骤32 ;如果是聚合端口,且预定时间内只一次收到此MAC消息,则执行步骤33 ;
[0059]步骤32、根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项并配置到FDB中,以及生成MAC地址同步报文,广播所述MAC地址同步报文给所述堆叠系统中的其他成员设备;
[0060]步骤33、根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项并配置到FDB中。
[0061]具体地,在上述步骤31?33中,
[0062]步骤31,当报文为源MAC未知报文到达转发芯片,转发芯片根据报文的源MAC地址和VLAN ID,在MAC地址表项中查找,未找到则说明需要学习该新的MAC地址,就会产生一个新MAC消息,发送给CPU ;
[0063]当CPU接收到新MAC消息时,根据MAC消息的源端口信息判断是否为聚合端口,如果是,且预定时间内至少两次收到此MAC消息,说明本成员设备是堆叠系统中首次学习到此MAC地址信息的设备,应该向其他成员设备同步这个MAC地址信息。这个预定时间一般为30?50晕秒。
[0064]步骤32中,CPU根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项并配置到硬件FDB (转发数据库)中,其中对应的MAC地址表项包括MAC消息中的源MAC地址、VLAN ID和源端口信息;同时CPU还根据MAC消息中的源MAC地址、VLANID和源端口信息,生成MAC地址同步报文;
[0065]所述CPU将所述MAC地址同步报文发送给转发芯片,通知转发芯片通过堆叠端口转发所述MAC地址同步报文。其中,该成员设备的转发芯片通过堆叠端口,在所在VLAN内的堆叠系统中广播MAC地址同步报文,所广播的MAC地址同步报文的内容包括MAC消息中的源MAC地址、VLAN ID和源端口信息。
[0066]如果是聚合端口,且预定时间内只一次收到此报文,这时只需要下发MAC地址表项到FDB中即可。因此执行步骤33、所述CPU根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项并配置到硬件FDB中,其中对应的MAC地址表项包括报文中的源MAC地址、VLAN ID和源端口信息。
[0067]实施例三(周期触发方式)
[0068]为避免事件触发方式发送MAC地址同步报文有所遗漏及MAC地址老化造成的MAC地址不一致,在事件触发方式的基础上,需要增加周期触发方式,采用周期触发方式发送MAC地址同步报文,即周期性发送MAC地址同步报文,同步报文的发送周期大于MAC地址的老化周期,例如大2?5秒。老化周期一般为120秒,在120秒内MAC地址表项可能会变为In-active,说明该MAC地址表项已经较长时间没有被刷新,在两个老化周期时,MAC地址表项一定会被删除。所以在大于一个老化周期时,可能会存在处于Active状态的MAC地址表项,且源端口信息为本地用户业务端口,或者聚合端口,则CPU根据该MAC地址表项生成MAC地址同步报文,广播所述MAC地址同步报文给所述堆叠系统中的其他成员设备。
[0069]也就是说,在实施例三中,CPU对周期性发送MAC地址同步报文进行控制。首先,CPU在时间大于一个老化周期时,对本地MAC地址表项进行判断,如果该MAC表项处于活跃状态,且源端口信息为本地用户业务端口,或者聚合端口,则符合发送MAC地址同步报文的条件,因此,CPU根据所述本地MAC地址表项生成MAC地址同步报文,广播所述MAC地址同步报文给所述堆叠系统中的其他成员设备。
[0070]在上述二个实施例中,实施例一和二,是在需要学习新的MAC地址时,判断是否需要发送MAC地址同步报文,属于事件触发方式,而实施例三是定期发送MAC地址同步报文,属于周期触发方式,同步周期大于老化周期,各成员设备统一获取需要同步的MAC地址信息。根据上述三个实施例的描述,无论同步发起端和被同步端都减少了 CPU的开销,不需要像现有技术那样在同步发起端每一个MAC同步数据包(即板间IPC消息)都单独的组织构造,在被同步端解析每一个MAC同步数据包。本发明从而解决了现有的堆叠系统内MAC地址信息的同步方法存在的占用CPU的开销较大的问题。
[0071]需要说明的是,堆叠系统中的成员设备发送的周期触发方式的同步报文和事件触发方式的同步报文,都是通过堆叠端口广播所述MAC地址同步报文,并禁止通过用户业务端口和聚合端口广播所述MAC地址同步报文。在报文结构上是完全相同的,包括源MAC地址、目的MAC地址、VLAN ID和源端口信息。唯一不同的是,事件触发方式的同步报文其源MAC地址、VLAN ID和源端口信息,来自发送端的转发芯片产生的MAC消息;而周期触发方式的同步报文其源MAC地址、VLAN ID和源端口信息,来自发送端的本地MAC表项。
[0072]针对上述实施例一至三中的方法,本申请提供了一种堆叠系统中的MAC地址信息同步装置,该装置位于成员设备中。
[0073]如图3所示,该装置中包括以下模块:判断模块301、处理模块302和转发模块303,其中:
[0074]判断模块301,用于当CPU接收到转发芯片发送的新MAC消息时,根据MAC消息的源端口信息判断是否为本地用户业务端口;
[0075]处理模块302,用于触发CPU根据所述判断模块的判断结果,在源端口信息是本地用户业务端口时,根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项并配置到转发数据库FDB中,以及生成MAC地址同步报文;在源端口信息是非本地用户业务端口时,根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项并配置到FDB中;
[0076]转发模块303,用于触发转发芯片根据处理模块的指令广播所述MAC地址同步报文给所述堆叠系统中的其他成员设备。
[0077]所述判断模块301,还用于当CPU接收到转发芯片发送的新MAC消息时,根据MAC消息的源端口信息判断是否为聚合端口;
[0078]所述处理模块302,还用于触发CPU根据所述判断模块的判断结果,在源端口信息是聚合端口,且预定时间内至少两次收到此MAC消息时,根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项并配置到FDB中,以及生成MAC地址同步报文;在源端口信息是聚合端口,且预定时间内只一次收到此MAC消息,则根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项并配置到FDB中。
[0079]所述判断模块301,还用于触发CPU判断在大于一个老化周期时,本地MAC地址表项是否处于活跃状态,且源端口信息为本地用户业务端口或者聚合端口 ;
[0080]所述处理模块302,还用于触发CPU根据所述判断模块的判断结果,在本地MAC地址表项处于活跃状态,且源端口信息为本地用户业务端口或者聚合端口时,根据所述本地MAC地址表项生成MAC地址同步报文。
[0081]所述转发模块303,还用于触发转发芯片通过堆叠端口广播所述MAC地址同步报文,并禁止通过用户业务端口和聚合端口广播所述MAC地址同步报文。
[0082]所述转发模块303,还用于触发转发芯片根据接收到的报文源MAC判断是否产生新MAC消息,所述接收到的报文包括MAC地址同步报文;
[0083]还用于在报文为源MAC未知报文时,产生新MAC消息;
[0084]在报文为源MAC已知报文时,则刷新本地MAC地址表项为活跃状态;
[0085]在报文为源MAC已知报文,但源端口发生变化时,产生MAC移动消息,所述处理模块还用于触发CPU根据所述MAC移动消息直接删除本地MAC地址表项。
[0086]综上,本申请以上实施例可以达到以下技术效果:
[0087](I)当CPU接收到转发芯片发送的新MAC消息时,根据MAC消息的源端口信息判断是否为本地用户业务端口,如果是本地用户业务端口,则根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项和MAC地址同步报文,广播所述MAC地址同步报文给所述堆叠系统中的其他成员设备;如果是非本地用户业务端口,则根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项。这样,同步发起端接收到新MAC消息判断是否需要发送MAC地址同步报文后,即可触发CPU进行学习,生成MAC地址表项或MAC地址同步报文,并且,被同步端接收到MAC地址同步报文后,转发芯片根据报文源MAC,判断是否触发CPU进行学习,生成MAC地址表项,而不需要像现有技术那样借助IPC通道。而且,现有技术中同步发起端CPU需要不断组织MAC同步数据包,即将MAC地址同步消息打包发送给被同步端,被同步端中的CPU需要对每一个MAC同步数据包进行解析。所以本发明在同步发起端的CPU节省了组织MAC同步数据包的开销,在被同步端由转发芯片判断是否触发CPU进行学习,生成MAC地址表项,节省了解析每一个MAC同步数据包的开销。从而,在同步发起端和被同步端都减少了 CPU的开销,实现了无IPC通信、低CPU开销的MAC地址信息同步。
[0088](2)由事件触发方式和周期触发方式构成的MAC地址信息同步方法,有效保证了大MAC的应用场景的有效性。
[0089]以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
【权利要求】
1.一种堆叠系统中的媒体访问控制MAC地址信息同步方法,所述堆叠系统中包括:多个成员设备,所述方法应用于所述成员设备,其特征在于,所述方法包括: 当中央处理器CPU接收到转发芯片发送的新MAC消息时,根据MAC消息中源端口信息判断是否为本地用户业务端口; 如果是本地用户业务端口,则根据MAC消息中的源媒体访问控制MAC地址、虚拟局域网标识VLAN ID和源端口信息,生成对应的MAC地址表项并配置到转发数据库FDB中,以及生成MAC地址同步报文,广播所述MAC地址同步报文给所述堆叠系统中的其他成员设备; 如果是非本地用户业务端口,则根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项并配置到FDB中。
2.如权利要求1所述的方法,其特征在于,还包括: 当CPU接收到转发芯片发送的新MAC消息时,根据MAC消息中源端口信息判断是否为聚合端口,如果是,且预定时间内至少两次收到此MAC消息,则根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项并配置到FDB中,以及生成MAC地址同步报文,广播所述MAC地址同步报文给所述堆叠系统中的其他成员设备; 如果是,且预定时间内只一次收到此MAC消息,则根据MAC消息中的源MAC地址、VLANID和源端口信息,生成对应的MAC地址表项并配置到FDB中。
3.如权利要求1所述的方法,其特征在于,还包括:CPU判断在大于一个老化周期时,如果本地MAC地址表项处于活跃状态,且源端口信息为本地用户业务端口或者聚合端口,则根据所述本地MAC地址表项生成MAC地址同步报文,广播所述MAC地址同步报文给所述堆叠系统中的其他成员设备。
4.如权利要求1、2或3所述的方法,其特征在于,通过堆叠端口广播所述MAC地址同步报文,并禁止通过用户业务端口和聚合端口广播所述MAC地址同步报文。
5.如权利要求1、2或3所述的方法,其特征在于,转发芯片根据接收到的报文源MAC判断是否产生新MAC消息,所述接收到的报文包括MAC地址同步报文; 如果报文为源MAC未知报文,产生新MAC消息发送给CPU ; 如果报文为源MAC已知报文,则转发芯片刷新本地MAC地址表项为活跃状态; 如果报文为源MAC已知报文,但源端口发生变化,产生MAC移动消息发送给CPU,所述CPU根据所述MAC移动消息直接删除本地MAC地址表项。
6.一种堆叠系统中的媒体访问控制MAC地址信息同步装置,所述堆叠系统中包括:多个成员设备,所述装置应用于所述成员设备,其特征在于,所述装置包括: 判断模块,用于当CPU接收到转发芯片发送的新MAC消息时,根据MAC消息中的源端口信息判断是否为本地用户业务端口; 处理模块,用于触发CPU根据所述判断模块的判断结果,在源端口信息是本地用户业务端口时,根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项并配置到转发数据库FDB中,以及生成MAC地址同步报文;在源端口信息是非本地用户业务端口时,根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项并配置到FDB中; 转发模块,用于触发转发芯片根据处理模块的指令广播所述MAC地址同步报文给所述堆叠系统中的其他成员设备。
7.如权利要求6所述的装置,其特征在于, 所述判断模块,还用于当CPU接收到转发芯片发送的新MAC消息时,根据MAC消息中的源端口信息判断是否为聚合端口; 所述处理模块,还用于触发CPU根据所述判断模块的判断结果,在源端口信息是聚合端口,且预定时间内至少两次收到此MAC消息时,根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项并配置到FDB中,以及生成MAC地址同步报文;在源端口信息是聚合端口,且预定时间内只一次收到此MAC消息,则根据MAC消息中的源MAC地址、VLAN ID和源端口信息,生成对应的MAC地址表项并配置到FDB中。
8.如权利要求6所述的装置,其特征在于, 所述判断模块,还用于触发CPU判断在大于一个老化周期时,本地MAC地址表项是否处于活跃状态,且源端口信息为本地用户业务端口或者聚合端口 ; 所述处理模块,还用于触发CPU根据所述判断模块的判断结果,在本地MAC地址表项处于活跃状态,且源端口信息为本地用户业务端口或者聚合端口时,根据所述本地MAC地址表项生成MAC地址同步报文。
9.如权利要求6、7或8所述的装置,其特征在于, 所述转发模块,还用于触发转发芯片通过堆叠端口广播所述MAC地址同步报文,并禁止通过用户业务端口和聚合端口广播所述MAC地址同步报文。
10.如权利要求6、7或8所述的装置,其特征在于, 所述转发模块,还用于触发转发芯片根据接收到的报文源MAC判断是否产生新MAC消息,所述接收到的报文包括MAC地址同步报文; 还用于在报文为源MAC未知报文时,产生新MAC消息; 在报文为源MAC已知报文时,则刷新本地MAC地址表项为活跃状态; 在报文为源MAC已知报文,但源端口发生变化时,产生MAC移动消息,所述处理模块还用于触发CPU根据所述MAC移动消息直接删除本地MAC地址表项。
【文档编号】H04L29/12GK103929461SQ201310348697
【公开日】2014年7月16日 申请日期:2013年8月12日 优先权日:2013年8月12日
【发明者】梁学伟 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1