[0025] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0026] 需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0027] 请参阅图1,本发明提供一种交换机MAC地址同步系统,其应用于一包括主控CPU 10以及多个交换芯片(此处例举了4个交换芯片,分别为交换芯片11、12、13、14,但不以此为限)的交换机系统中,如图1所示,本发明的交换机MAC地址同步系统100包括存储模块101、统计模块102以及处理模块103。在本实施例中,上述存储模块101、统计模块102以及处理模块103均是由主控CPU 10实现,其中,当其中一个交换芯片的MAC地址表发生变化时,该交换芯片硬件就会产生一变动消息,并予以发送至该主控CPU 10中,以下即对本发明的交换机MAC地址同步系统进行详细说明。
[0028] 如图1所示,该存储模块101是用以将该交换芯片所发送的变动消息暂存至一缓存空间1011中,此外,该存储模块101还预存一包含所有交换芯片的MAC地址的全局软件表。其中,该缓存空间1011为先入先出消息队列,但不以此为限。
[0029] 该统计模块102是用以每隔一预定时间统计该缓存空间1011中暂存的变动消息的数量。
[0030] 该处理模块103是用以判断该统计模块102所统计的数量是否不大于一预定数量值,若是,则采用同步方式处理暂存于该缓存空间1011中的所有变动消息,若否,则采用异步方式处理暂存于该缓存空间1011中的所有变动消息。
[0031] 具体而言,当需要采用同步方式处理暂存于该缓存空间1011中的所有变动消息时,该处理模块103即解析暂存于该缓存空间1011中的所有变动消息,而得到一对应该变动消息数量的变更条目,并清除该缓存空间1011中已执行解析处理的所有变动消息,然后,将所得到的所有变更条目同步到该全局软件表中,再根据所得到的所有变更条目,逐个搜寻各个交换芯片中的MAC地址表是否已存储有上述变更条目,若是,则不对存储有上述变更条目的交换芯片进行同步操作,若否,则将上述变更条目更新至未存储有上述变更条目的交换芯片的MAC地址表中。如此,在交换芯片的MAC地址变动较少时(即不大于上述预定数量值时),即可采用同步方式立即处理MAC地址的同步事件,同步实时性良好。
[0032] 而当需要采用异步方式处理暂存于该缓存空间1011中的所有变动消息时,该处理模块103即首先判断该主控CPU 10当前的负载是否超负荷,若是,则重复上述的判断步骤,若否,则解析暂存于该缓存空间1011中的所有变动消息,而得到一对应该变动消息数量的变更条目,并清除该缓存空间1011中已执行解析处理的所有变动消息,然后,将所得到的所有变更条目同步到该全局软件表中,再根据所得到的所有变更条目,逐个搜寻各个交换芯片中的MAC地址表是否已存储有上述变更条目,若是,则不对存储有上述变更条目的交换芯片进行同步操作,若否,则将上述变更条目更新至未存储有上述变更条目的交换芯片的MAC地址表中。如此,在交换芯片的MAC地址变动较多时(即大于上述预定数量值时),即可采用异步方式(在主控CPU 10当前的负载较轻时)处理MAC地址的同步事件,CPU的利用率高。
[0033] 请参阅图2,是显示应用上述交换机MAC地址同步系统,执行本发明的交换机MAC地址同步方法的操作流程示意图。以下即结合图1对本发明的交换机MAC地址同步方法针对单个预定时间周期统计得到的变动消息的数量而执行的操作步骤进行详细说明。
[0034] 如图1所示,首先,执行步骤S100,令该主控CPU将交换芯片所发送的变动消息暂存一缓存空间中。接着,进行步骤S110。
[0035] 在步骤S110中,令该主控CPU统计在一预定时间内暂存于该缓存空间中的变动消息的数量。接着,进行步骤S120。
[0036] 在步骤S120中,令该主控CPU判断所统计的数量是否不大于一预定数量值,若是,则进至步骤S131,若否,则进至步骤S132。
[0037] 在步骤S131中,令该主控CPU解析暂存于该缓存空间中的所有变动消息,而得到一对应该变动消息数量的变更条目,并清除该缓存空间中已执行解析处理的所有变动消息。接着,进行步骤S140。
[0038] 在步骤S132中,令该主控CPU判断当前的负载是否超负荷,若否,则进至步骤S131,若是,则重复本步骤的判断操作。
[0039] 在步骤S140中,令该主控CPU将所得到的所有变更条目同步到存储于该主控CPU中的全局软件表中。接着,进行步骤S150。
[0040] 在步骤S150中,令该主控CPU根据所得到的各变更条目,逐个搜寻各个交换芯片中的MAC地址表是否已存储有上述变更条目,若是,则进至步骤S161,若否,则进至步骤S162。
[0041] 在步骤S161中,不对存储有上述变更条目的交换芯片进行同步操作。
[0042] 在步骤S162中,将上述变更条目更新至未存储有上述变更条目的交换芯片的MAC地址表中。
[0043] 上述步骤S131→S140→S150→S161或S162是采用同步的方式处理暂存于该缓存空间中的所有变动消息,而上述步骤S132→S131→S140→S150→S161或S162是采用异步的方式处理暂存于该缓存空间中的所有变动消息。
[0044] 此处需予以说明的是,上述实施例仅列示说明应用本发明的交换机MAC地址同步方法针对一个预定时间内统计出来的暂存于缓存空间的变动消息的数量而执行的同步操作过程,在实际应用过程中,上述主控CPU是每间隔该预定时间即执行缓存空间的变动消息的数量统计工作,一旦得到统计的数量值,即执行后续的同步操作(同步或异步),在执行后续的同步操作时会将已统计过数量的乃至后续执行过解析处理的变动消息进行清除,以不影响针对下一个预定时间内统计出来的数量值而执行的同步操作。
[0045] 如何根据所得到的变更条目来判断是否需要更新交换芯片中的MAC地址表,以下配合图1,并以暂存在该缓存空间1011中变动消息的数量有5条(其中,3条是交换芯片11的硬件发送的变动消息,另外2条是交换芯片13的硬件发送的变动消息)为例进行说明,如此,则解析得到的变更条目的数量也有5条,显然,对应该交换芯片11的硬件发送的3条变动消息而解析得到的3条变更条目(为便于描述,此3条变更条目分别定义为变更条目L1、L2、L3)在交换芯片11中已然存在,而对应该交换芯片13的硬件发送的另外2条变动消息而解析得到的2条变更条目(为便于描述,此2条变更条目分别定义为变更条目L4、L5)在交换芯片13中也已然存在,因此,当该主控CPU 10根据所得到的变更条目,逐个搜寻各个交换芯片11~14中的MAC地址表是否已存储有上述变更条目时,则会发现在交换芯片11中的MAC地址表存储有变更条目(L1、L2与L3)、交换芯片12与14中的MAC地址表未存储有任何的变更条目(L1~L5)、以及交换芯片13中的MAC地址表存储有变更条目(L4、L5),此时,该主控CPU 10即不对该交换芯片11进行变更条目(L1、L2与L3)的同步操作,不对该交换芯片13进行变更条目(L4、L5)的同步操作,而将变更条目(L4、L5)更新至该交换芯片11的MAC地址表中,并将变更条目(L1~L5)分别更新至该交换芯片12与14的MAC地址表中,且将变更条目(L1、L2与L3)更新至该交换芯片13的MAC地址表中。至此,即完成了对各交换芯片的MAC地址表的同步操作。
[0046] 综上所述,本发明提供一种交换机MAC地址同步方法以及系统,其将同步和异步很好的进行了结合,以在交换芯片发送的需同步的变动消息较少的时候,采用同步的处理方式,而在交换芯片发送的需同步的变动消息较多的时候,采用异步的处理方式,这样同时具有同步和异步的优点,又能有效克服单独选用一种同步方式而带来的缺点。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0047] 上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。