过滤数据库表项同步方法、装置及网络设备的制作方法

文档序号:7979960阅读:189来源:国知局
专利名称:过滤数据库表项同步方法、装置及网络设备的制作方法
技术领域
本发明涉及网络通信技术,尤其涉及一种过滤数据库表项同步方法、装置及网络设备。
背景技术
以太网中的网络设备(例如,交换机和路由器)一般由中央处理单元(Central Processing Unit ;简称为CPU)和以太网专用集成电路(Application Specific Integrated Circuit ;简称为ASIC)等部件组成。CPU主要功能是进行算术运算和逻辑运算,所以可以在其上运行网络设备的操作系统,管理控制网络设备并给用户提供管理控制接口。ASIC主要功能是给用户提供以太网端口,从以太网端口接收报文并按照以太网协议处理报文,处理完毕后再将报文从以太网端口传递出去。在ASIC处理报文前,用户可以通过操作系统的管理控制接口设置ASIC的报文处理行为。在网络设备中,为了节约硬件成本,CPU和ASIC之间都采用一些低速总线连接,提供一个控制通道,例如串行外围设备接口 (Serial Peripheral interface ;简称为SPI)总线。SPI总线是一种同步串行外设接口, 它可以使CPU和外部其他设备互联进行通信,SPI总线的通信原理很简单,以主从方式工作。SPI总线的时钟为2兆赫兹(MHz),也就是说通过SPI总线通信时的理论数据传输速率为2兆比特每秒(Mbps)。介质访问控制(Media Access Control ;简称为MAC)地址是用于识别局域网 (Local Area Network ;简称为LAN)中各个节点的标识。网卡的MAC地址通常是由网卡生产厂家烧入网卡,它是传输数据时用以标识发出数据的电脑和接收数据的主机的地址,它一般是全球唯一的。在以太网中,一个以太网报文带有发出这个报文的主机的MAC地址, 我们称为源MAC地址,也带有这个报文的目的主机的MAC地址,我们称之为目的MAC地址。 ASIC通过学习检查报文的源MAC地址,并将这个地址和接收到这个报文的端口关联起来形成一个表,我们称之为过滤数据库(Filter Data Base ;简称为FDB)。当ASIC接收到一个报文时,它会自动使用报文的源MAC地址查找FDB,如果发现FDB中没有这个MAC地址,则将其加入FDB,如果已经存在,则同步FDB中的这个地址。同时ASIC会使用报文的目的MAC地址来查找FDB,如果这个目的MAC地址能够在FDB中查找到,就将这个报文转发到这个MAC 地址关联的端口,否则将这个报文转发到所有端口(我们称之为报文的泛洪)。为了满足用户管理网络设备的需要,CPU需要将FDB的数据同步到操作系统上,以便用户通过管理控制接口可以查看FDB并进行进一步操作,例如删除某个MAC地址,添加某个MAC地址等等。在现有技术方案中,为了将ASIC上学习的MAC地址通告给CPU,CPU需要周期性的通过SPI总线读取ASIC上的FDB,并将读取的结果同步到操作系统,方便用户管理。但是 ASIC的FDB都较大,可以存放上万条FDB表项(一条FDB表项对应一个MAC地址),例如, 常用的设备规格FDB可以存放8192条或16384条FDB表项甚至更多。假如CPU仅仅读取 FDB每个表项的最关键字段MAC地址(标准规定为6个字节)和端口号(1个字节)总共7 个字节的数据,按照FDB最小8192条表项,总共需要传递的数据为8192 (总的MAC地址条数)*7(每个表项至少7个字节)*8(每个字节8位)=458752位数据。按照SPI总线的理论输速率为2Mbps来计算,每传输1位数据需要的最少时间为1Λ2*106)秒,故读取整个 FDB中的MAC地址需要的时间至少为458752/(2*106) = 0. 917504秒。在实际使用中,由于 FDB可以存放的MAC地址更多,每个FDB表项也不仅仅包括MAC地址和端口号,还会包括对应这个MAC地址的行为等数据,同时SPI总线也不可能达到理论的2Mbps,所以实际的传输时间会远远大于理论的0. 917504秒。如果CPU周期性的消耗约0. 9秒进行FDB读取,将会导致CPU上运行的操作系统的实时性急剧下降,对业务产生严重的影响。在实际应用中,可能会采取放大读取FDB的周期长度,每次仅读取部分FDB表项等方法降低对操作系统实时性的影响,但是这些方案又会导致ASIC的FDB和操作系统之间同步不及时,用户不能及时了解FDB的状态。

发明内容
本发明提供一种过滤数据库表项同步方法、装置及网络设备,用以使ASIC的FDB 和操作系统之间及时完成同步,并降低对操作系统的实时性的影响。本发明一方面提供一种过滤数据库FDB表项同步方法,包括网络设备的中央处理单元CPU生成同步请求报文,并通过与所述网络设备的专用集成电路ASIC之间的以太网端口将所述同步请求报文发送给所述ASIC,所述同步请求报文包括标识所述同步请求报文为请求FDB表项同步的类型标识;所述ASIC通过所述以太网端口接收所述同步请求报文,并根据所述同步请求报文读取所述ASIC的FDB,将所读取的FDB表项封装在同步应答报文中,并在所述同步应答报文中添加标识所述同步应答报文为应答FDB表项同步的类型标识,然后通过所述以太网端口发送给所述CPU;所述CPU通过所述以太网端口接收所述同步应答报文,并根据所述同步应答报文对操作系统的FDB进行同步。本发明另一方面提供一种过滤数据库FDB表项同步装置,包括中央处理单元CPU,用于生成同步请求报文,通过与所述FDB表项同步装置的专用集成电路ASIC之间的以太网端口将所述同步请求报文发送给所述ASIC,并通过所述以太网端口接收所述ASIC根据所述同步请求报文返回的同步应答报文,并根据所述同步应答报文对操作系统的FDB进行同步,所述同步请求报文包括标识所述同步请求报文为请求 FDB表项同步的类型标识;所述ASIC,用于通过所述以太网端口接收所述同步请求报文,并根据所述同步请求报文读取所述ASIC的FDB,将所读取的FDB表项封装在所述同步应答报文中,并在所述同步应答报文中添加标识所述同步应答报文为应答FDB表项同步的类型标识,然后通过所述以太网端口发送给所述CPU。本发明又一方面提供一种网络设备,包括本发明提供的任一过滤数据库表项同步装置。本发明一方面的过滤数据库表项同步方法,CPU通过与ASIC之间的以太网端口向 ASIC发送同步请求报文,ASIC根据同步请求报文生成同步应答报文,并通过与CPU之间的以太网端口将同步应答报文发送给CPU,CPU根据同步应答报文进行操作系统的FDB的同步,充分利用了以太网端口传输速度快的优势,使得ASIC的FDB和操作系统之间及时完成同步,并降低了对操作系统的实时性的影响。本发明另一方面的过滤数据库表项同步装置,其CPU与其ASIC通过两者之间的以太网端口进行FDB表项的同步请求和应答,充分利用了以太网端口传输速度快的优势,使得ASIC的FDB和操作系统之间及时完成同步,并降低了对操作系统的实时性的影响。本发明又一方面的网络设备,其过滤数据库表项同步装置通过其CPU与其ASIC通过两者之间的以太网端口进行FDB表项的同步请求和应答,充分利用了以太网端口传输速度快的优势,使得ASIC的FDB和操作系统之间及时完成同步,并降低了对操作系统的实时性的影响。


图IA为本发明一实施例提供的FDB表项同步方法的流程图;图IB为本发明一实施例提供的同步请求报文或同步应答报文的结构示意图;图IC为本发明一实施例提供的同步请求报文或同步应答报文中的数据字段的结构示意图;图2为本发明另一实施例提供的FDB表项同步方法的流程图;图3为本发明又一实施例提供的FDB表项同步方法的流程图;图4为本发明一实施例提供的FDB表项同步装置的结构示意图。
具体实施例方式图IA为本发明一实施例提供的FDB表项同步方法的流程图。如图IA所示,本实施例的方法包括步骤101、网络设备的CPU生成同步请求报文,并通过与网络设备的ASIC之间的以太网端口将同步请求报文发送给ASIC,所述同步请求报文包括标识同步请求报文为请求 FDB表项同步的类型标识。本实施例的网络设备主要是指以太网中的网络设备,例如可以是交换机或路由器等。本实施例的网络设备主要由CPU和ASIC构成。CPU和ASIC之间会通过一些低速总线连接,提供一个控制通道,例如SPI总线。同时,为了让CPU也能够接收到网络中的数据报文,CPU和ASIC之间还会通过以太网端口连接起来,提供一个数据通道,这个数据通道可以让CPU接收用户发送的以太网报文,让CPU和用户之间可以进行网络通信。在本实施例中,为了将ASIC学习到的MAC地址通告给CPU,以使操作系统的FDB与 ASIC的FDB保持同步,CPU与ASIC通过两者之间的以太网端口,即通过连接CPU和ASIC的数据通道,进行FDB表项同步的请求与应答。对CPU来说,当需要请求FDB表项同步时,生成同步请求报文,然后通过其与ASIC 之间的以太网端口将同步请求报文发送给ASIC。其中,CPU所生成的同步请求报文符合以太网报文格式。如图IB所示,本实施例的同步请求报文包括目的MAC地址字段、源MAC地址字段、报文类型字段、数据字段和循环冗余码校验(Cyclical Redundancy Check ;简称为CRC)字段。其中,目的MAC地址标识报文的接收者。对于请求FDB表项同步的同步请求报文来说,目的MAC地址是ASIC特有的MAC地址。源MAC标识报文的发送者。对于请求FDB表项同步的同步请求报文来说,源MAC 地址是CPU特有的MAC地址。报文类型字段(ETYPE)标识报文的类型。每种网络应用都会用一种特殊的ETYPE 值来标识该网络应用的报文,以和其他网络应用的报文区分开。由于CPU和ASIC之间还会传递其他业务报文,为了将本实施例中的处理FDB表项同步的各种报文和其他业务报文区分开,选择一个网络中没有使用的ETYPE值来标识处理FDB表项同步的报文。处理FDB表项同步的报文包括请求FDB表项同步的报文(即同步请求报文)和应答FDB表项同步的报文(即同步应答报文)。数据字段用于填充需要传输的真实数据。CRC字段用于使接收者校验报文在传输过程中是否出现错误。基于上述报文格式,本实施例通过使用目的MAC地址和报文类型字段来判断报文是一个处理FDB表项同步的报文还是一个普通的业务报文。进一步,本实施例对数据字段做进一步划分,如图IC所示。数据字段包括操作码 (Opcode)和多个MAC条目(MAC Entry)。其中。操作码用于标识处理FDB表项同步的报文是同步请求报文还是同步应答报文,例如,该字段取值可以为0/1,0表示该报文为同步请求报文,1表示该报文为同步应答报文。对于同步请求报文来说,MAC条目不做限定,对于同步应答报文,MAC条目用于携带FDB表项。基于上述同步请求报文的格式,本实施例使用报文类型字段和数据字段中的操作码来标识同步请求报文,即同时使用报文类型字段和数据字段中的操作码作为同步请求报文的类型标识。具体的,CPU生成同步请求报文的过程包括CPU将标识同步请求报文为请求FDB表项同步的类型标识封装在同步请求报文的报文类型字段和操作码字段中,并将 ASIC的MAC地址作为同步请求报文的目的MAC地址封装在同步请求报文的目的MAC地址字段中,将CPU的MAC地址作为同步请求报文的源MAC地址封装在同步请求报文的源MAC地址字段中,并在数据字段和CRC字段中添加相应内容。但是,对于同步请求报文的类型标识并不限于使用报文类型字段和数据字段中的操作码,在同步请求报文符合以太网报文格式的基础上,其他实现方式也可以,例如对报文类型字段进行扩展,使用扩展后的报文类型字段同时标识该报文是处理FDB表项同步的报文,且是处理FDB表项同步的报文中的同步请求报文。步骤102、ASIC通过以太网端口接收同步请求报文,并根据同步请求报文读取 ASIC的FDB,将所读取的FDB表项封装在同步应答报文中,并在同步应答报文中添加标识同步应答报文为应答FDB表项同步的类型标识,然后通过以太网端口发送给CPU。CPU通过以太网端口将同步请求报文发送给ASIC ;ASIC通过以太网端口接收同步请求报文。然后,ASIC根据同步请求报文中的类型标识确定该报文为CPU请求FDB表项同步的报文。例如,ASIC根据以太网报文格式对接收到的同步请求报文进行解析,获取同步请求报文的目的MAC地址和报文类型,确定同步请求报文为处理FDB表项同步的报文,进一步根据数据字段中的操作码,确定同步请求报文为处理FDB表项同步的报文中的请求报文。接着,ASIC去读取其FDB,从FDB中读取一条或多条FDB表项。其中,每条FDB表项可以包括MAC地址、端口号、该MAC地址对应的行为等数据。再接着,ASIC将所读取的FDB表
8项封装的同步应答报文中,并在同步应答报文中封装标识同步应答报文为应答FDB表项同步的类型标识(即将标识同步应答报文为应答FDB表项同步的类型标识封装在同步应答报文的报文类型字段和操作码字段中)后,通过与CPU之间的以太网端口发送给CPU。其中, ASIC通过与CPU之间的以太网端口将同步应答报文发送给CPU之前还会将CPU的MAC地址作为同步应答报文的目的MAC地址封装在同步应答报文的目的MAC地址字段中,将ASIC 的MAC地址作为同步应答报文的源MAC地址封装在同步应答报文的源MAC地址字段中,并在CRC字段中添加相应内容。其中,同步应答报文的格式如图IB所示,且其数据字段的格式也可以如图IC所示。ASIC将数据字段中的操作码设置为1,并将所获取的FDB表项封装在多个MAC条目中。 基于图IB和图IC所示报文格式,本实施例的同步应答报文的类型标识也可以使用报文类型字段和数据字段中的操作码来表示,但不限于此。步骤103、CPU通过以太网端口接收同步应答报文,并根据同步应答报文对操作系统的FDB进行同步。ASIC通过与CPU之间的以太网端口向CPU返回同步应答报文;CPU通过与ASIC之间的以太网端口接收同步应答报文。CPU接收到同步应答报文后,根据以太网报文格式对同步应答报文进行解析,根据同步应答报文中的类型标识,确定同步应答报文为ASIC应答FDB表项同步的报文。例如, CPU根据同步应答报文中的目的MAC地址和报文类型字段确定同步应答报文为处理FDB表项同步的报文,进一步根据数据字段中的操作码确定同步应答报文为处理FDB表项同步的报文中的应答报文。接着,CPU根据从同步应答报文中获取的FDB表项对操作系统的FDB进行同步。其中,操作系统的FDB可以视为软件FDB。CPU根据从同步应答报文中获取的FDB表项对操作系统的FDB进行同步包括如果操作系统的FDB中不存在从同步应答报文中解析出的FDB表项,CPU将从同步应答报文中解析出的FDB表项直接添加到操作系统的FDB中;或者说,对于存在同步应答报文中而不存在操作系统的FDB中的FDB表项,CPU直接添加到操作系统的FDB中。如果操作系统的FDB中存在从同步应答报文中解析出的FDB表项之外的其他FDB 表项,CPU将其他FDB表项删除;或者说,对于不存在同步应答报文中而存在操作系统的FDB 中的FDB表项,CPU直接从操作系统的FDB中删除。对于既存在操作系统的FDB中又存在同步应答报文中的FDB表项,CPU不执行任何操作。至此,CPU根据ASIC的FDB完成了对操作系统的FDB的同步操作。本实施例的FDB表项同步方法,CPU与ASIC通过两者之间的以太网端口进行FDB 表项同步的请求与应答,从而通过以太网完成了 ASIC的FDB与操作系统的FDB的同步,充分利用以太网端口传输速度快的优势,使得ASIC的FDB和操作系统之间及时完成同步,与现有技术使用SPI总线进行FDB同步相比,降低了对操作系统的实时性的影响,并规避了由于SPI总线速度太慢带来的其他问题等。另外,由于本实施例的方法对操作系统的实时性的影响不大,无需放大读取FDB的周期长度,使得用户能够及时了解FDB的状态。例如,以以太网端口的传输速率为IOOOMbps为例,且以ASIC的FDB包括8192条FDB表项为例,通过以太网端口同步一次FDB的时间为(8192 (总的FDB表项条数)*7 (每个表项至少7个字节)*8(每个字节8位))/(1000*106) = 0.000458752秒,远远小于通过SPI总线同步一次 FDB的时间0. 917504秒,几乎不影响操作系统的实时性。图2为本发明另一实施例提供的FDB表项同步方法的流程图。如图2所示,本实施例的方法包括步骤200、CPU判断同步周期是否到达;如果判断结果为是,执行步骤201 ;如果判断结果为否,执行步骤204。在本实施例中,周期性地对ASIC的FDB和操作系统的FDB进行同步。具体的,CPU判断同步周期是否到达,如果同步周期到达,则开始进行FDB表项的同步操作。其中,同步周期的长短可以依赖网络的需要由用户自行定制。步骤201、网络设备的CPU生成同步请求报文,并通过与网络设备的ASIC之间的以太网端口将同步请求报文发送给ASIC,所述同步请求报文包括标识同步请求报文为请求 FDB表项同步的类型标识。步骤202、ASIC通过以太网端口接收同步请求报文,并根据同步请求报文读取 ASIC的FDB,将所读取的FDB表项封装在同步应答报文中,并在同步应答报文中添加标识同步应答报文为应答FDB表项同步的类型标识,然后通过以太网端口发送给CPU。步骤203、CPU通过以太网端口接收同步应答报文,并根据同步应答报文对操作系统的FDB进行同步。上述步骤201-步骤203可参见步骤101和步骤103的描述,在此不再赘述。步骤204、等待预设时间,并返回执行步骤200。如果同步周期还未到达,则等待一段时间,然后继续判断同步周期是否到达。其中。在该等待时间内,CPU可以执行其他操作,并不限于空等,以提高CPU的利用率。本实施例的FDB表项同步方法,通过设置同步周期,实现了周期性地进行FDB同步,既能保证ASIC的FDB和操作系统之间的及时同步,保证用户能够及时了解FDB的状态, 又有利于提高CPU、ASIC等的利用率。图3为本发明又一实施例提供的FDB表项同步方法的流程图。如图3所示,本实施例的方法包括步骤300、CPU判断同步周期是否到达;如果判断结果为是,执行步骤301 ;如果判断结果为否,执行步骤311。该步骤300可参见步骤200的描述。步骤301、网络设备的CPU生成同步请求报文,所述同步请求报文包括标识同步请求报文为请求FDB表项同步的类型标识。步骤302、CPU通过与网络设备的ASIC之间的以太网端口将同步请求报文发送给 ASIC。步骤303、ASIC通过以太网端口接收同步请求报文,并根据同步请求报文读取 ASIC 的 FDB。上述步骤可参见步骤101和步骤102中的描述。步骤304、ASIC判断此次读取ASIC的FDB的操作是否读取到FDB中的最后一条 FDB表项;如果判断结果为否,执行步骤305 ;如果判断结果为是,执行步骤306。
在实际应用中,由于FDB较大,通过一次FDB表项同步的请求和应答操作无法将所有FDB表项同步到操作系统,可能需要分批次进行同步操作。基于此,本实施例的ASIC通过判断本次读取FDB的操作是否读取到最后一条FDB表项来判断此次是否可以完成对整个 FDB的同步。如果读取到最后一条FDB表项,说明本次FDB表项同步的请求和应答可以完成对整个FDB的同步;如果未读取到最后一条FDB表项,说明本次FDB表项同步的请求和应答无法完成对整个FDB的同步,还需要继续执行FDB表项同步的请求和应答操作。步骤305、ASIC记录当前读取到的FDB表项的位置,以便于下一次读取ASIC的FDB 时从所记录的位置开始读取,将所读取的FDB表项封装在同步应答报文中,并在同步应答报文中添加标识同步应答报文为应答FDB表项同步的类型标识,然后通过以太网端口发送给CPU,并执行步骤307。本步骤适用于本次FDB表项同步的请求和应答无法完成对整个FDB的同步的情况。为了保证后续执行FDB表项同步的请求和应答操作过程中,不重复发送FDB表项,本实施例的ASIC在判断出未读取到最后一条FDB表项时,记录当前读取的FDB表项的位置,这样在下一次读取FDB时就可以从记录的当前位置开始,避免了向CPU发送重复的FDB表项, 一方面有利于提高同步效率,另一方面有利于节约CPU和ASIC的处理负担。本步骤的其他操作可参见步骤102的描述。进一步,在本步骤中,ASIC还可以在同步应答报文中添加标识未读取到ASIC的 FDB中的最后一条FDB表项的标志位,用以告知CPU还需要继续发送同步请求报文,以获取其他FDB表项。步骤306、ASIC将所读取的FDB表项封装在同步应答报文中,并在同步应答报文中添加标识同步应答报文为应答FDB表项同步的类型标识和标识读取到ASIC的FDB中的最后一条FDB表项的标志位,然后通过以太网端口发送给CPU,并执行步骤307。本步骤适用于本次FDB表项同步的请求和应答可以完成对整个FDB的同步的情况。在该情况下,ASIC同时在同步应答报文中添加标识读取到ASIC的FDB中的最后一条 FDB表项的标志位,以告知CPU经本次FDB表项同步的请求和应答就会完成对整个FDB的同步,以使CPU准备执行后续处理操作。本步骤的其他描述可参见步骤102,在此不再赘述。步骤307、CPU通过以太网端口接收同步应答报文,对同步应答报文进行解析。具体的,CPU根据以太网报文格式对同步应答报文进行解析,解析出同步应答报文所携带的FDB表项。如果同步应答报文中携带有标识ASIC读取到FDB中的最后一条FDB 表项的标志位,和/或携带有标识ASIC未读取到FDB中的最后一条FDB表项的标志位时, CPU还会从同步应答报文中解析出标识ASIC读取到FDB中的最后一条FDB表项的标志位, 和/或标识ASIC未读取到FDB中的最后一条FDB表项的标志位。步骤308、CPU判断是否从同步应答报文中解析出标识读取到ASIC的FDB中的最后一条FDB表项的标志位;如果判断结果为否,执行步骤309 ;如果判断结果为是,执行步骤 310。在本步骤中,CPU通过判断是否从同步应答报文中解析出标识ASIC读取到FDB中的最后一条FDB表项的标志位,来判断本次FDB表项同步请求和应答操作是否可以完成对 FDB的同步,并用来判断CPU应该采取的处理方式。
步骤309、CPU根据从同步应答报文中解析出的FDB表项对操作系统的FDB进行同步,并重新生成同步请求报文,返回执行步骤302。如果CPU从同步应答报文中未解析到标识ASIC读取到FDB中的最后一条FDB表项的标志位,说明本次FDB表项同步请求和应答操作不能完成对FDB的同步,故CPU根据从同步应答报文中解析出的FDB表项对操作系统的FDB进行同步后,重新生成同步请求报文, 并通过继续执行步骤302以及后续步骤来完成对FDB的同步。在再一次FDB表项同步请求和应答过程中,在步骤303中,ASIC从上次记录的当前位置开始从FDB中读取FDB表项。步骤310、CPU根据从同步应答报文中解析出的FDB表项对操作系统的FDB进行同步,并设置下一次请求FDB表项同步的同步周期,返回执行步骤300。如果CPU从同步应答报文中解析到标识ASIC读取到FDB中的最后一条FDB表项的标志位,说明本次FDB表项同步请求和应答操作可以完成对FDB的同步,故CPU设置下一次请求FDB表项同步的同步周期,以备进行下一次FDB同步。步骤311、等待预设时间,并返回执行步骤300。在本实施例中,CPU与ASIC通过两者之间的以太网端口进行ASIC的FDB与操作系统的FDB之间的同步,充分利用以太网端口数据速率较快的优势,及时实现ASIC的FDB与操作系统的FDB之间的同步,降低了对操作系统的实时性的影响。同时,ASIC通过判断是否读取到最后一条FDB表项并在同步应答报文中添加标识是否读取到最后一条FDB表项,允许通过多次FDB表项同步请求和应答操作完成对FDB的同步,与实际应用场景相适应。再者,本实施例通过设置同步周期,实现了周期性地进行FDB同步,既能保证ASIC的FDB和操作系统之间的及时同步,保证用户能够及时了解FDB的状态,又有利于提高CPU、ASIC等的利用率。在此说明,本发明实施例通过以太网端口进行FDB同步的方案也可用于其他同步操作,例如寄存器同步,计数器同步等;另外,除了 CPU和ASIC之间进行FDB同步之外,还可以是其他网络设备之间进行FDB同步操作。图4为本发明一实施例提供的FDB表项同步装置的结构示意图。如图4所示,本实施例的装置包括CPU41和ASIC42。CPU41,用于生成同步请求报文,通过与FDB表项同步装置的AS IC42之间的以太网端口将同步请求报文发送给ASIC42,并通过以太网端口接收ASIC42根据同步请求报文返回的同步应答报文,并根据同步应答报文对操作系统的FDB进行同步。所述同步请求报文包括标识同步请求报文为请求FDB表项同步的类型标识。本实施例的同步请求报文符合以太网报文格式。ASIC42,与CPU41连接,用于通过以太网端口接收同步请求报文,并根据同步请求报文读取ASIC42的FDB,将所读取的FDB表项封装在同步应答报文中,并在同步应答报文中添加标识同步应答报文为应答FDB表项同步的类型标识,然后通过以太网端口发送给 CPU42。其中,CPU41和ASIC42之间除了可以通过以太网端口连接之外,还会通过SPI总线等低速总线连接。本实施例FDB表项同步装置的各功能模块可用于执行图1所示FDB表项同步方法的流程,其具体工作原理不再赘述,详见方法实施例的描述。本实施例的FDB表项同步装置可以是以太网中的各种网络设备,例如交换机或路
由器等ο本实施例的FDB表项同步装置,其CPU与其ASIC通过两者之间的以太网端口进行 FDB表项的同步请求和应答,充分利用了以太网端口传输速度快的优势,使得ASIC的FDB和操作系统之间及时完成同步,并降低了对操作系统的实时性的影响。其中,本实施例的同步请求报文和同步应答报文包括报文类型字段和数据字段, 所述数据字段包括操作码字段和MAC条目字段,其具体结构如图IB和图IC所示。基于同步请求报文的实现结构,FDB表项同步装置的CPU41具体用于将标识同步请求报文为请求FDB表项同步的类型标识封装在同步请求报文的报文类型字段和操作码字段中,并将ASIC42的MAC地址作为同步请求报文的目的MAC地址封装在同步请求报文的目的MAC地址字段中。基于同步应答报文的实现结构,ASIC42具体用于将标识同步应答报文为应答FDB 表项同步的类型标识封装在同步应答报文的报文类型字段和操作码字段中,并将CPU41的 MAC地址作为同步应答报文的目的MAC地址封装在同步应答报文的目的MAC地址字段中。进一步,FDB表项同步装置的CPU41还用于在生成同步请求报文之前,判断同步周期是否到达,并在同步周期到达时,执行生成同步请求报文,并通过与ASIC42之间的以太网端口将同步请求报文发送给ASIC42的操作。CPU41通过设置同步周期,实现了周期性地进行FDB同步,既能保证ASIC的FDB和操作系统之间的及时同步,保证用户能够及时了解 FDB的状态,又有利于提高CPU、ASIC等的利用率。进一步,FDB表项同步装置的ASIC42具体用于根据同步请求报文读取ASI42C的 FDB,如果读取到ASIC42的FDB中的最后一条FDB表项,记录当前读取到的FDB表项的位置, 以便于下一次读取ASIC42的FDB时从所记录的位置开始读取,将所读取的FDB表项封装在同步应答报文中,并在同步应答报文中添加标识同步应答报文为应答FDB表项同步的类型标识,然后通过以太网端口发送给CPU41 ;如果读取ASIC42的FDB读取到ASIC42的FDB中的最后一条FDB表项,将所读取的FDB表项封装在同步应答报文中,并在同步应答报文中添加标识同步应答报文为应答FDB表项同步的类型标识和标识读取到ASIC42的FDB中的最后一条FDB表项的标志位,然后通过以太网端口发送给CPU41。更进一步,ASIC42还用于在未读取到ASIC42的FDB中的最后一条FDB表项时,在同步应答报文中添加标识未读取到ASIC42的FDB中的最后一条FDB表项的标志位。相应地,CPU41具体用于通过以太网端口接收同步应答报文,对同步应答报文进行解析,如果未从同步应答报文中解析出标识读取到ASIC42的FDB中的最后一条FDB表项的标志位,根据从同步应答报文中解析出的FDB表项对操作系统的FDB进行同步后,重新生成同步请求报文,并将同步请求报文通过以太网端口发送给ASIC42,以继续执行FDB同步操作。另外,CPU41还用于在从同步应答报文中解析出标识读取到ASIC42的FDB中的最后一条FDB表项的标志位时,设置下一次请求FDB表项同步的同步周期。更进一步,CPU41具体用于在操作系统的FDB中不存在从同步应答报文中解析出的FDB表项时,将从同步应答报文中解析出的FDB表项直接添加到操作系统的FDB中,并在作系统的FDB中存在从同步应答报文中解析出的FDB表项之外的其他FDB表项时,将其他 FDB表项删除。上述CPU41和ASIC42可用于执行图3所示FDB表项同步方法的流程,其具体工作原理不再赘述,详见方法实施例的描述。综上所述,本实施例的FDB表项同步装置具有以下有益效果CPU与ASIC通过两者之间的以太网端口进行ASCI的FDB与操作系统的FDB之间的同步,充分利用以太网端口数据速率较快的优势,及时实现ASCI的FDB与操作系统的FDB之间的同步,降低了对操作系统的实时性的影响;ASIC通过判断是否读取到最后一条FDB表项并在同步应答报文中添加标识是否读取到最后一条FDB表项,允许通过多次FDB表项同步请求和应答操作完成对 FDB的同步,与实际应用场景相适应;通过设置同步周期,实现了周期性地进行FDB同步,既能保证ASIC的FDB和操作系统之间的及时同步,保证用户能够及时了解FDB的状态,又有利于提高CPU、ASIC等的利用率。本发明一实施例提供一种网络设备,包括本发明上述实施例提供的FDB表项同步装置。其中,FDB表项同步装置的结构可参见图4所示,其工作原理可参见图IA-图3任一所示方法实施例的描述。本实施例的网络设备主要是指以太网中的网络设备,例如可以是路由器、交换机寸。本实施例的网络设备,由于包括本发明提供的FDB表项同步装置,FDB表项同步装置通过其CPU与其ASIC通过两者之间的以太网端口进行FDB表项的同步请求和应答,充分利用了以太网端口传输速度快的优势,使得ASIC的FDB和操作系统之间及时完成同步,并降低了对操作系统的实时性的影响。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
权利要求
1.一种过滤数据库FDB表项同步方法,其特征在于,包括网络设备的中央处理单元CPU生成同步请求报文,并通过与所述网络设备的专用集成电路ASIC之间的以太网端口将所述同步请求报文发送给所述ASIC,所述同步请求报文包括标识所述同步请求报文为请求FDB表项同步的类型标识;所述ASIC通过所述以太网端口接收所述同步请求报文,并根据所述同步请求报文读取所述ASIC的FDB,将所读取的FDB表项封装在同步应答报文中,并在所述同步应答报文中添加标识所述同步应答报文为应答FDB表项同步的类型标识,然后通过所述以太网端口发送给所述CPU ;所述CPU通过所述以太网端口接收所述同步应答报文,并根据所述同步应答报文对操作系统的FDB进行同步。
2.根据权利要求1所述的FDB表项同步方法,其特征在于,所述网络设备的中央处理单元CPU生成同步请求报文,并通过与所述网络设备的专用集成电路ASIC之间的以太网端口将所述同步请求报文发送给所述ASIC之前包括所述CPU判断同步周期是否到达;当所述同步周期到达时,所述CPU执行生成同步请求报文,并通过与所述网络设备的专用集成电路ASIC之间的以太网端口将所述同步请求报文发送给所述ASIC的操作。
3.根据权利要求1所述的FDB表项同步方法,其特征在于,所述ASIC根据所述同步请求报文读取所述ASIC的FDB,将所读取的FDB表项封装在同步应答报文中,并在所述同步应答报文中添加标识所述同步应答报文为应答FDB表项同步的类型标识,然后通过所述以太网端口发送给所述CPU包括如果所述ASIC根据所述同步请求报文读取所述ASIC的FDB未读取到所述ASIC的FDB 中的最后一条FDB表项,记录当前读取到的FDB表项的位置,以便于下一次读取所述ASIC 的FDB时从所记录的位置开始读取,将所读取的FDB表项封装在同步应答报文中,并在所述同步应答报文中添加标识所述同步应答报文为应答FDB表项同步的类型标识,然后通过所述以太网端口发送给所述CPU;如果所述ASIC根据所述同步请求报文读取所述ASIC的FDB读取到所述ASIC的FDB中的最后一条FDB表项,将所读取的FDB表项封装在同步应答报文中,并在所述同步应答报文中添加标识所述同步应答报文为应答FDB表项同步的类型标识和标识读取到所述ASIC的 FDB中的最后一条FDB表项的标志位,然后通过所述以太网端口发送给所述CPU ;所述CPU通过所述以太网端口接收所述同步应答报文,并根据所述同步应答报文对操作系统的FDB进行同步包括所述CPU通过所述以太网端口接收所述同步应答报文,对所述同步应答报文进行解析,如果未从所述同步应答报文中解析出标识读取到所述ASIC的FDB中的最后一条FDB表项的标志位,所述CPU根据从所述同步应答报文中解析出的FDB表项对所述操作系统的FDB 进行同步后,重新生成所述同步请求报文,并将所述同步请求报文通过所述以太网端口发送给所述ASIC。
4.根据权利要求3所述的FDB表项同步方法,其特征在于,如果所述CPU从所述同步应答报文中解析出标识读取到所述ASIC的FDB中的最后一条FDB表项的标志位,所述CPU 设置下一次请求FDB表项同步的同步周期。
5.根据权利要求1或2或3或4所述的FDB表项同步方法,其特征在于,所述同步请求报文和所述同步应答报文包括报文类型字段、目的介质访问控制MAC地址字段和数据字段,所述数据字段包括操作码字段和MAC条目字段。
6.根据权利要求5所述的FDB表项同步方法,其特征在于,所述CPU生成同步请求报文包括所述CPU将标识所述同步请求报文为请求FDB表项同步的类型标识封装在所述同步请求报文的所述报文类型字段和所述操作码字段中,并将所述ASIC的MAC地址作为所述同步请求报文的目的MAC地址封装在所述同步请求报文的所述目的MAC地址字段中;所述ASIC在所述同步应答报文中添加标识所述同步应答报文为应答FDB表项同步的类型标识包括所述ASIC将标识所述同步应答报文为应答FDB表项同步的类型标识封装在所述同步应答报文的所述报文类型字段和所述操作码字段中,并将所述CPU的MAC地址作为所述同步应答报文的目的MAC地址封装在所述同步应答报文的所述目的MAC地址字段中。
7.—种过滤数据库FDB表项同步装置,其特征在于,包括中央处理单元CPU,用于生成同步请求报文,通过与所述FDB表项同步装置的专用集成电路ASIC之间的以太网端口将所述同步请求报文发送给所述ASIC,并通过所述以太网端口接收所述ASIC根据所述同步请求报文返回的同步应答报文,并根据所述同步应答报文对操作系统的FDB进行同步,所述同步请求报文包括标识所述同步请求报文为请求FDB表项同步的类型标识;所述ASIC,用于通过所述以太网端口接收所述同步请求报文,并根据所述同步请求报文读取所述ASIC的FDB,将所读取的FDB表项封装在所述同步应答报文中,并在所述同步应答报文中添加标识所述同步应答报文为应答FDB表项同步的类型标识,然后通过所述以太网端口发送给所述CPU。
8.根据权利要求7所述的FDB表项同步装置,其特征在于,所述CPU还用于在生成所述同步请求报文之前,判断同步周期是否到达,并在所述同步周期到达时,执行生成同步请求报文,并通过与所述FDB表项同步装置的ASIC之间的以太网端口将所述同步请求报文发送给所述ASIC的操作。
9.根据权利要求7所述的FDB表项同步装置,其特征在于,所述ASIC具体用于根据所述同步请求报文读取所述ASIC的FDB,如果读取到所述ASIC的FDB中的最后一条FDB表项,记录当前读取到的FDB表项的位置,以便于下一次读取所述ASIC的FDB时从所记录的位置开始读取,将所读取的FDB表项封装在同步应答报文中,并在所述同步应答报文中添加标识所述同步应答报文为应答FDB表项同步的类型标识,然后通过所述以太网端口发送给所述CPU ;如果读取所述ASIC的FDB读取到所述ASIC的FDB中的最后一条FDB表项,将所读取的FDB表项封装在同步应答报文中,并在所述同步应答报文中添加标识所述同步应答报文为应答FDB表项同步的类型标识和标识读取到所述ASIC的FDB中的最后一条FDB 表项的标志位,然后通过所述以太网端口发送给所述CPU ;所述CPU具体用于通过所述以太网端口接收所述同步应答报文,对所述同步应答报文进行解析,如果未从所述同步应答报文中解析出标识读取到所述ASIC的FDB中的最后一条 FDB表项的标志位,根据从所述同步应答报文中解析出的FDB表项对所述操作系统的FDB进行同步后,重新生成所述同步请求报文,并将所述同步请求报文通过所述以太网端口发送给所述ASIC。
10.根据权利要求9所述的FDB表项同步装置,其特征在于,所述CPU还用于在从所述同步应答报文中解析出标识读取到所述ASIC的FDB中的最后一条FDB表项的标志位时,设置下一次请求FDB表项同步的同步周期。
11.根据权利要求7或8或9或10所述的FDB表项同步装置,其特征在于,所述同步请求报文和所述同步应答报文包括报文类型字段、目的介质访问控制MAC地址字段和数据字段,所述数据字段包括操作码字段和MAC条目字段;所述CPU具体用于将标识所述同步请求报文为请求FDB表项同步的类型标识封装在所述同步请求报文的所述报文类型字段和所述操作码字段中,并将所述ASIC的MAC地址作为所述同步请求报文的目的MAC地址封装在所述同步请求报文的所述目的MAC地址字段中; 所述ASIC具体用于将标识所述同步应答报文为应答FDB表项同步的类型标识封装在所述同步应答报文的所述报文类型字段和所述操作码字段中,并将所述CPU的MAC地址作为所述同步应答报文的目的MAC地址封装在所述同步应答报文的所述目的MAC地址字段中。
12.—种网络设备,其特征在于,包括权利要求7-11任一项所述的过滤数据库表项同步装置。
全文摘要
本发明提供一种过滤数据库表项同步方法、装置及网络设备。其中,方法包括CPU生成同步请求报文,并通过与ASIC之间的以太网端口将同步请求报文发送给ASIC,所述同步请求报文包括标识同步请求报文为请求FDB表项同步的类型标识;ASIC通过以太网端口接收同步请求报文,并根据同步请求报文生成同步应答报文,然后通过以太网端口发送给CPU;CPU通过以太网端口接收同步应答报文,并根据同步应答报文对操作系统的FDB进行同步。本发明技术方案,使得ASIC的FDB和操作系统之间及时完成同步,并降低了对操作系统的实时性的影响。
文档编号H04L7/00GK102404215SQ20111037180
公开日2012年4月4日 申请日期2011年11月21日 优先权日2011年11月21日
发明者鲜明双 申请人:北京星网锐捷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1