一种同步mac地址表项的方法及转发芯片的制作方法

文档序号:7555445阅读:308来源:国知局
专利名称:一种同步mac地址表项的方法及转发芯片的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种同步MAC地址表项的方法及转发芯片。
背景技术
目前,主流网络设备的架构一般为交换网框式架构,如图1所示,其中,该网络设备包含多个槽位,如图示的槽位I 3,每个槽位上设置有至少一个CPU (图中未示出),每个槽位上可安装至少I个转发芯片,图1中每个槽位安装了 2个转发芯片,图示的该网络设备包括转发芯片I 6共6个转发芯片,转发芯片之间通过设备内部的交换网络互连,用于在转发设备之间交互数据报文。每个转发芯片上可以携带32K IM的MAC(Media AccessControl,媒体访问控制)地址表项,由于网络设备中的MAC地址表项容量非常大,对于MAC地址表项的学习和同步速度提出了更高的要求,如果MAC地址表项学习和同步速度太慢,则MAC地址广播的时间会比较长,甚至出现长时间转发错误的现象。在现有技术中,MAC地址表项的同步学习分为两种方式,第一种方式为在转发芯片内学习、转发芯片间CPU (Center Process Unit,中央处理单元)干预同步,第二种方式为在转发芯片内和芯片间都由CPU干预学习。其中,对于第一种方式,在单个转发芯片内学习后,会产生一个NA (New Address,新地址消息)消息并发送给本转发芯片所在槽位的CPU,由该CPU通过控制通道将该地址消息传输到同一网络设备上的所有其他物理槽位的CPU,其他物理槽位上的CPU解析该地址消息,然后判断本槽位上哪些芯片存在所述地址消息对应的VLAN (Virtual Local AreaNetwork,虚拟局域网)成员端口,再将该地址消息中的MAC地址表项写入含有对应VLAN成员端口的转发芯片的FDB (Forwarding Data Base,转发数据库)表。对于第二种方式,当转发芯片发现有新MAC地址表项产生时,产生一个NA消息并上送给本转发芯片所在槽位的CPU,该CPU先将该地址消息中的MAC地址表项写入本槽位上所有含有所述地址消息对应的VLAN成员端口的转发芯片的FDB表,再通过控制通道将该地址消息传输到同一网络设备上的所有其它物理槽位的CPU,其它物理槽位上的CPU解析该地址消息,然后判断本槽位上哪些芯片存在所述地址消息对应的VLAN成员端口,再将该地址消息中的MAC地址表项写入含有VLAN成员端口的转发芯片的FDB表。所有转发芯片的MAC地址表项都是通过CPU维护更新的。在以上两种学习方式中,MAC地址老化机制采取的是仅扫描本芯片学习到的MAC地址表项,对于其他芯片同步过来的MAC地址表项不参与本芯片的老化扫描。对于同步学习到的其他芯片的MAC地址表项,等待其所在芯片老化后,由其所在芯片对应的CPU,通过CPU间的控制通道发送消息通知同步删除。在实现本发明的过程中,发明人发现现有技术中至少存在以下问题:对于第一种方式而言,I)由于同步需要软件干预,所以同步速度比较慢,导致广播时间长;2)在端口切换过程中由于同步时间长,导致丢包时间长;3)同步时占用控制通道带宽,容易引起控制通道问题;4)软件设计比较复杂,在框式设备上应用会出现很多MAC地址学习的时序问题;5)因MAC表容量大,同步耗时长,长时间占用CPU,容易引起软件问题;其中,问题3)和问题4)通常还会导致同步学习到不该有的MAC地址表项导致长时间转发错误,或者应该有的MAC地址表项却没同步学习到导致长时间广播。对于第二种方式而言,不仅同步速度比较慢,广播时间长,且本芯片学习速度慢。

发明内容
本发明实施例的目的在于提供同步MAC地址表项的方法及转发芯片,以解决现有技术中CPU的干预所导致的资源浪费问题。为了达到上述目的,本发明实施例提供了一种同步媒介访问控制MAC地址表项的方法,应用于包括多个转发芯片的网络设备,所述多个转发芯片之间通过所述网络设备内部的交换网络连接,包括:所述网络设备的一个转发芯片,从所述交换网络接收其他转发芯片发送的下行数据报文;所述转发芯片判断所述下行数据报文是否为携带所述其他转发芯片学习到的MAC地址表项的MAC地址同步数据报文;在所述下行数据报文为所述MAC地址同步数据报文时,所述转发芯片解析所述下行数据报文,获得其中携带的MAC地址表项;所述转发芯片根据解析得到的MAC地址表项,进行转发芯片间的MAC地址同步处理。优选地,所述解析得到的MAC地址表项中携带了源MAC地址、源端口信息、源虚拟局域网VLAN信息,所述MAC地址同步处理包括:根据所述源MAC地址和源VLAN信息,查找自身MAC地址表:当自身MAC地址表中不存在匹配的MAC地址表项时,学习所述解析得到的MAC地址表项,并将该MAC地址表项的老化/刷新标记位置位;当自身MAC地址表中存在匹配的MAC地址表项,但该MAC地址表项的端口信息不同于所述源端口信息时,将该MAC地址表项的端口信息更新为所述源端口信息,并将该MAC地址表项的老化/刷新标记位置位;当自身MAC地址表中存在匹配的MAC地址表项,且该MAC地址表项的端口信息与所述源端口信息相同时,将该MAC地址表项的老化/刷新标记位置位。优选地,所述方法还包括:所述转发芯片对自身MAC地址表中的所有MAC地址表项进行周期性地老化扫描,其中,对于扫描到的老化/刷新标记位已置位的MAC地址表项,将其老化/刷新标记位复位;对于扫描到的老化/刷新标记位已复位的MAC地址表项,则删除该MAC地址表项。优选地,所述转发芯片根据解析得到的MAC地址表项,进行转发芯片间的MAC地址同步处理之后,还包括:所述转发芯片丢弃所述MAC地址同步数据报文。优选地,所述转发芯片判断所述下行数据报文是否为携带所述其他转发芯片学习到的MAC地址表项的MAC地址同步数据报文,包括:所述转发芯片进一步根据所述下行数据报文的报头中是否携带有预设标记,判断所述下行数据报文是否为所述MAC地址同步数据报文;或,所述转发芯片进一步接收其他转发芯片发送的描述符信息,并根据所述下行数据报文是否与所述描述符信息相匹配,判断所述下行数据报文是否为所述MAC地址同步数据报文,其中,所述描述符用于描述所述其他转发芯片发送的MAC地址同步数据报文的特征信息。优选地,还包括:所述转发芯片接收所述网络设备外部的设备发送的上行数据报文,根据所述上行数据报文的源MAC地址及VLAN信息,查找本地MAC地址表进行MAC地址学习,其中:当MAC地址表中存在匹配的MAC地址表项时,若该MAC地址表项的端口与所述上行数据报文的接收端口相同且该MAC地址表项的老化/刷新标记位已置位,则不动作;当MAC地址表中存在匹配的MAC地址表项时,若该MAC地址表项的端口与所述上行数据报文的接收端口相同且该MAC地址表项的老化/刷新标记位已复位,则重新将该MAC地址表项的老化/刷新标记位置位;当MAC地址表中存在匹配的MAC地址表项,但该MAC地址表项的端口与所述上行数据报文的接收端口不同,则更新该MAC地址表项的端口,并将该MAC地址表项的老化/刷新标记位置位;当MAC地址表中不存在匹配的MAC地址表项,则根据所述上行数据报文创建新的MAC地址表项并将该MAC地址表项的老化/刷新标记位置位;其中,在将该MAC地址表项的老化/刷新标记位置位后,通过所述交换网络将携带该MAC地址表项的MAC地址同步数据报文,在对应VLAN内广播至其他转发芯片。本发明实施例提供了一种网络设备中的转发芯片,所述转发芯片之间通过所述网络设备内部的交换网络连接,包括:接收模块,用于从所述交换网络接收其他转发芯片发送的下行数据报文;判断模块,用于判断所述下行数据报文是否为携带所述其他转发芯片学习到的MAC地址表项的MAC地址同步数据报文;获取模块,用于在所述下行数据报文为所述MAC地址同步数据报文时,解析所述下行数据报文,获得其中携带的MAC地址表项;同步处理模块,用于根据解析得到的MAC地址表项,进行转发芯片间的MAC地址同步处理。所述解析得到的MAC地址表项中携带了源MAC地址、源端口信息、源虚拟局域网VLAN信息,同步处理模块,具体用于根据所述源MAC地址和源VLAN信息,查找自身所属转发芯片的MAC地址表:所述处理模块还包括:第一同步处理子模块,用于当自身所属转发芯片的MAC地址表中不存在匹配的MAC地址表项时,学习所述解析得到的MAC地址表项,将该MAC地址表项的老化/刷新标记位置位,并丢弃所述MAC地址同步数据报文;第二同步处理子模块,用于当自身所属转发芯片的MAC地址表中存在匹配的MAC地址表项,但该MAC地址表项的端口信息不同于所述源端口信息时,将该MAC地址表项的端口信息更新为所述源端口信息,将该MAC地址表项的老化/刷新标记位置位,并丢弃所述MAC地址同步数据报文;第三同步处理子模块,用于当自身所属转发芯片的MAC地址表中存在匹配的MAC地址表项,且该MAC地址表项的端口信息与所述源端口信息相同时,将该MAC地址表项的老化/刷新标记位置位,并丢弃所述MAC地址同步数据报文。还包括:扫描模块,用于对自身所属转发芯片的MAC地址表中的所有MAC地址表项进行周期性地老化扫描,其中,对于扫描到的老化/刷新标记位已置位的MAC地址表项,将其老化/刷新标记位复位;对于扫描到的老化/刷新标记位已复位的MAC地址表项,则删除该MAC地址表项。所述判断模块,具体用于根据所述下行数据报文的报头中是否携带有预设标记,判断所述下行数据报文是否为所述MAC地址同步数据报文;或,具体用于接收其他转发芯片发送的描述符信息,并根据所述下行数据报文是否与所述描述符信息相匹配,判断所述下行数据报文是否为所述MAC地址同步数据报文,其中,所述描述符用于描述所述其他转发芯片发送的MAC地址同步数据报文的特征信息。还包括:处理模块,还用于接收所述网络设备外部的设备发送的上行数据报文,根据所述上行数据报文的源MAC地址及VLAN信息,查找自身所属转发芯片的MAC地址表进行MAC地址学习,其中:第一处理子模块,用于当MAC地址表中存在匹配的MAC地址表项时,若该MAC地址表项的端口与所述上行数据报文的接收端口相同且该MAC地址表项的老化/刷新标记位已置位,则不动作;第二处理子模块,用于当MAC地址表中存在匹配的MAC地址表项时,若该MAC地址表项的端口与所述上行数据报文的接收端口相同且该MAC地址表项的老化/刷新标记位已复位,则重新将该MAC地址表项的老化/刷新标记位置位;第三处理子模块,用于当MAC地址表中存在匹配的MAC地址表项,但该MAC地址表项的端口与所述上行数据报文的接收端口不同,则更新该MAC地址表项的端口,并将该MAC地址表项的老化/刷新标记位置位;第四处理子模块,用于当MAC地址表中不存在匹配的MAC地址表项,则根据所述上行数据报文创建新的MAC地址表项并将该MAC地址表项的老化/刷新标记位置位;其中,在将该MAC地址表项的老化/刷新标记位置位后,所述处理模块通过所述交换网络将携带该MAC地址表项的MAC地址同步数据报文,在对应VLAN内广播至其他转发芯片。与现有技术相比,本发明实施例所提出的技术方案具有以下优点:通过本发明方案的提出,实现了 MAC地址表项的更新处理,通过转发芯片自身的操作,避免了 CPU的干预,有效地节省了 CPU资源,同时提高了 MAC地址更新速度。


图1是现有技术中的框式网络设备交换架构图;图2是本发明实施例提供的更新MAC地址表项的流程示意图3是本发明实施例一提供的更新MAC地址表项的流程示意图;图4是本发明实施例提供的更新MAC地址表项的的装置图。
具体实施例方式下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。现有技术的转发芯片能够直接实现快速的二层转发处理,同时进行源MAC地址学习。上述过程不需要CPU参与。相比于CPU间的控制通道,转发芯片之间的交换网络具有强大的数据交换能力,能够实现芯片之间的数据高速转发。因此,本发明实施例通过将现有技术中由CPU主导的转发芯片间的MAC地址同步过程,转移到转发芯片的底层处理,从而利用转发芯片在数据转发处理能力以及交换网络在数据交换能力上的优势,提高芯片间MAC地址同步的效率,减轻CPU的处理压力,节约CPU资源。参见图2,为本发明实施例提供的同步MAC地址的流程示意图,应用于包括多个转发芯片的网络设备,多个转发芯片之间通过网络设备内部的交换网络连接,该流程可包括:步骤201,转发芯片接收数据报文。该步骤中,当该数据报文为其他转发芯片通过交换网络发送的下行数据报文时,转到步骤202,当该数据报文为网络设备外部的设备发送的上行数据报文时,转到步骤206。步骤202,转发芯片判断该下行数据报文是否为携带其他转发芯片学习到的MAC地址表项的MAC地址同步数据报文。该步骤中,具体地,转发芯片可以根据下行数据报文的报头中是否携带有预设标记,判断该下行数据报文是否为MAC地址同步数据报文;或者,转发芯片接收其他转发芯片发送的描述符信息,并根据下行数据报文是否与该描述符信息相匹配,判断该下行数据报文是否为MAC地址同步数据报文,其中,该描述符是用于描述其他转发芯片发送的MAC地址同步数据报文的特征信息。具体的,描述符可以是基于数据报文的长度、发送队列标识以及报头中的预定字段等所生成的信息,该信息可以唯一确定对应的数据报文。步骤203,当该下行数据报文为携带其他转发芯片学习到的MAC地址表项的MAC地址同步数据报文时,转发芯片对该下行数据报文进行解析,得到其中携带的MAC地址表项。该步骤中,该MAC地址表项中携带有源MAC地址、源端口信息、源VLAN信息;如表I所示,为MAC地址表项中所携带的参数。表IMAC地址表项中所携带的参数
权利要求
1.一种同步媒介访问控制MAC地址的方法,应用于包括多个转发芯片的网络设备,所述多个转发芯片之间通过所述网络设备内部的交换网络连接,其特征在于,包括: 所述网络设备的一个转发芯片,从所述交换网络接收其他转发芯片发送的下行数据报文; 所述转发芯片判断所述下行数据报文是否为携带所述其他转发芯片学习到的MAC地址表项的MAC地址同步数据报文; 在所述下行数据报文为所述MAC地址同步数据报文时,所述转发芯片解析所述下行数据报文,获得其中携带的MAC地址表项; 所述转发芯片根据解析得到的MAC地址表项,进行转发芯片间的MAC地址同步处理。
2.如权利要求1所述的方法,其特征在于, 所述解析得到的MAC地址表项中携带了源MAC地址、源端口信息、源虚拟局域网VLAN信息,所述MAC地址同步处理包括: 根据所述源MAC地址和源VLAN信息,查找自身MAC地址表: 当自身MAC地址表中不存在匹配的MAC地址表项时,学习所述解析得到的MAC地址表项,并将该MAC地址表项的老化/刷新标记位置位; 当自身MAC地址表中存在匹配的MAC地址表项,但该MAC地址表项的端口信息不同于所述源端口信息时,将该MAC地址表项的端口信息更新为所述源端口信息,并将该MAC地址表项的老化/刷新标记位置位; 当自身MAC地址表中存在匹配的MAC地址表项,且该MAC地址表项的端口信息与所述源端口信息相同时,将该MAC地址表项的老化/刷新标记位置位。
3.如权利要求2所述的方法,其特征在于,所述方法还包括: 所述转发芯片对自身MAC地址表中的所有MAC地址表项进行周期性地老化扫描,其中,对于扫描到的老化/刷新标记位已置位的MAC地址表项,将其老化/刷新标记位复位;对于扫描到的老化/刷新标记位已复位的MAC地址表项,则删除该MAC地址表项。
4.如权利要求1所述的方法,其特征在于,所述转发芯片根据解析得到的MAC地址表项,进行转发芯片间的MAC地址同步处理之后,还包括: 所述转发芯片丢弃所述MAC地址同步数据报文。
5.如权利要求1所述的方法,其特征在于, 所述转发芯片判断所述下行数据报文是否为携带所述其他转发芯片学习到的MAC地址表项的MAC地址同步数据报文,包括: 所述转发芯片进一步根据所述下行数据报文的报头中是否携带有预设标记,判断所述下行数据报文是否为所述MAC地址同步数据报文;或, 所述转发芯片进一步接收其他转发芯片发送的描述符信息,并根据所述下行数据报文是否与所述描述符信息相匹配,判断所述下行数据报文是否为所述MAC地址同步数据报文,其中,所述描述符用于描述所述其他转发芯片发送的MAC地址同步数据报文的特征信肩、O
6.如权利要求1至5任一项所述的方法,其特征在于,还包括: 所述转发芯片接收所述网络设备外部的设备发送的上行数据报文,根据所述上行数据报文的源MAC地址及VLAN信息,查找自身MAC地址表进行MAC地址学习,其中:当MAC地址表中存在匹配的MAC地址表项时,若该MAC地址表项的端口与所述上行数据报文的接收端口相同且该MAC地址表项的老化/刷新标记位已置位,则不动作; 当MAC地址表中存在匹配的MAC地址表项时,若该MAC地址表项的端口与所述上行数据报文的接收端口相同且该MAC地址表项的老化/刷新标记位已复位,则重新将该MAC地址表项的老化/刷新标记位置位; 当MAC地址表中存在匹配的MAC地址表项,但该MAC地址表项的端口与所述上行数据报文的接收端口不同,则更新该MAC地址表项的端口,并将该MAC地址表项的老化/刷新标记位置位; 当MAC地址表中不存在匹配的MAC地址表项,则根据所述上行数据报文创建新的MAC地址表项并将该MAC地址表项的老化/刷新标记位置位; 其中,在将该MAC地址表项的老化/刷新标记位置位后,通过所述交换网络将携带该MAC地址表项的MAC地址同步数据报文,在对应VLAN内广播至其他转发芯片。
7.—种网络设备中的转发芯片,所述网络设备包括多个所述转发芯片,所述转发芯片之间通过所述网络设备内部的交换网络连接,其特征在于,所述转发芯片包括: 接收模块,用于从所述交换网络接收其他转发芯片发送的下行数据报文; 判断模块,用于判断所述下行数据报文是否为携带所述其他转发芯片学习到的MAC地址表项的MAC地址同步数据报文; 获取模块,用于在所述下行数据报文为所述MAC地址同步数据报文时,解析所述下行数据报文,获得其中携带的 MAC地址表项; 同步处理模块,用于根据解析得到的MAC地址表项,进行转发芯片间的MAC地址同步处理。
8.如权利要求7所述的转发芯片,其特征在于,所述解析得到的MAC地址表项中携带了源MAC地址、源端口信息、源虚拟局域网VLAN信息, 所述同步处理模块,具体用于根据所述源MAC地址和源VLAN信息,查找自身所属转发芯片的MAC地址表:所述同步处理模块还包括: 第一同步处理子模块,用于当自身所属转发芯片的MAC地址表中不存在匹配的MAC地址表项时,学习所述解析得到的MAC地址表项,将该MAC地址表项的老化/刷新标记位置位,并丢弃所述MAC地址同步数据报文; 第二同步处理子模块,用于当自身所属转发芯片的MAC地址表中存在匹配的MAC地址表项,但该MAC地址表项的端口信息不同于所述源端口信息时,将该MAC地址表项的端口信息更新为所述源端口信息,将该MAC地址表项的老化/刷新标记位置位,并丢弃所述MAC地址同步数据报文; 第三同步处理子模块,用于当自身所属转发芯片的MAC地址表中存在匹配的MAC地址表项,且该MAC地址表项的端口信息与所述源端口信息相同时,将该MAC地址表项的老化/刷新标记位置位,并丢弃所述MAC地址同步数据报文。
9.如权利要求8所述的转发芯片,其特征在于,还包括: 扫描模块,用于对自身所属转发芯片的MAC地址表中的所有MAC地址表项进行周期性地老化扫描,其中,对于扫描到的老化/刷新标记位已置位的MAC地址表项,将其老化/刷新标记位复位;对于扫描到的老化/刷新标记位已复位的MAC地址表项,则删除该MAC地址表项。
10.如权利要求7所述的转发芯片,其特征在于, 所述判断模块,具体用于根据所述下行数据报文的报头中是否携带有预设标记,判断所述下行数据报文是否为所述MAC地址同步数据报文;或, 具体用于接收其他转发芯片发送的描述符信息,并根据所述下行数据报文是否与所述描述符信息相匹配,判断所述下行数据报文是否为所述MAC地址同步数据报文,其中,所述描述符用于描述所述其他转发芯片发送的MAC地址同步数据报文的特征信息。
11.如权利要求7-10任一项所述的转发芯片,其特征在于,还包括: 处理模块,用于接收所述网络设备外部的设备发送的上行数据报文,根据所述上行数据报文的源MAC地址及VLAN信息,查找自身所属转发芯片的MAC地址表进行MAC地址学习,其中,所述处理模块包括: 第一处理子模块,用于当MAC地址表中存在匹配的MAC地址表项时,若该MAC地址表项的端口与所述上行数据报文的接收端口相同且该MAC地址表项的老化/刷新标记位已置位,则不动作; 第二处理子模块,用于当MAC地址表中存在匹配的MAC地址表项时,若该MAC地址表项的端口与所述上行数据报文的接收端口相同且该MAC地址表项的老化/刷新标记位已复位,则重新将该MAC地址表项的老化/刷新标记位置位; 第三处理子模块,用于当MAC地址表中 存在匹配的MAC地址表项,但该MAC地址表项的端口与所述上行数据报文的接收端口不同,则更新该MAC地址表项的端口,并将该MAC地址表项的老化/刷新标记位置位; 第四处理子模块,用于当MAC地址表中不存在匹配的MAC地址表项,则根据所述上行数据报文创建新的MAC地址表项并将该MAC地址表项的老化/刷新标记位置位; 其中,在将该MAC地址表项的老化/刷新标记位置位后,所述处理模块通过所述交换网络将携带该MAC地址表项的MAC地址同步数据报文,在对应VLAN内广播至其他转发芯片。
全文摘要
本发明公开了一种同步MAC地址表项的方法及转发芯片,应用于包括多个转发芯片的网络设备,多个转发芯片之间通过所述网络设备内部的交换网络连接,包括网络设备的一个转发芯片,从所述交换网络接收其他转发芯片发送的下行数据报文;所述转发芯片判断所述下行数据报文是否为携带所述其他转发芯片学习到的MAC地址表项的MAC地址同步数据报文;在所述下行数据报文为所述MAC地址同步数据报文时,所述转发芯片解析所述下行数据报文,获得其中携带的MAC地址表项;所述转发芯片根据解析得到的MAC地址表项,进行转发芯片间的MAC地址同步处理,实现了MAC地址表项的更新处理,避免了CPU的干预,有效地节省了CPU资源,同时提高了MAC地址更新速度。
文档编号H04L12/741GK103209130SQ20131014193
公开日2013年7月17日 申请日期2013年4月22日 优先权日2013年4月22日
发明者何福林 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1