一种限制动态地址表地址数目的方法

文档序号:7897679阅读:196来源:国知局
专利名称:一种限制动态地址表地址数目的方法
技术领域
本发明涉及数据通信设备中数据链路层与网络层内地址表管理技术,尤其关于一种限制动态地址表地址数目的方法。
背景技术
地址表是在数据链路层与网络层数据通信设备,如以太网、IP路由、流分类等转发引擎内部所必须的功能模块,用于存放和管理数据转发的地址和策略信息。一般情况下,动态地址表可以进行地址学习、地址查找以及地址表项的添加、删除等。通常动态地址表至少包括A、B两部分,其中,B部分为要学习的内容,A部分表示连接号,并且同一A与一个以上个不同的B部分内容相对应。
例如,ETA逻辑上的单播地址表是用于存放以太网帧的媒体接入控制(MAC)地址与ATM_PVC的对应关系的动态地址表,ETA逻辑单播地址表占用两个静态存储(SRAM)单元,共64字节。如表1所示,ETA逻辑单播地址表包括有效(Valid)标志、新学习(New)标志、查找过(Used)标志、PVC连接号(PVC_INDEX)和MAC地址和一个保留字段。其中,Valid用于指示该表项是否有效,该比特位为0表示是该表项是空表项,为1表示该表项被占用,New表明在当前老化周期内该地址被更新过,Used表明在当前老化周期内该地址被使用过。这些标志位都是高有效的。

表1在通常情况下,对于动态地址表,其资源是有限的。当进行地址学习时,如果动态地址表有空表项,无论要学习的MAC地址属于哪条永久虚电路(PVC),都可以将其学习到动态地址表中;而如果动态地址表没有空表项,要学习的地址是无法学习到动态地址表中。因此,当地址表中存储过多不活跃表项,而要进行学习的地址又无法将其学习到动态地址表时,系统要实现正常的管理,在人为的删除不活跃表项后,才能进行地址学习。这种人工的、手动的方式将大大影响动态地址表的管理。

发明内容
有鉴于此,本发明提供了一种限制动态地址表地址数目的方法,使其可以自动的实现限制动态地址表数,并且降低系统成本,减小动态地址表项管理的复杂性,提高系统的工作效率。
一种限制动态地址表地址数的方法,应用于至少包括A和B表项的动态地址表,其中,B部分为要学习的地址内容,A部分为连接号,且同一A包含一个以上个数目的B,该方法包括以下步骤a.建立每个A所包含B的最大限制数目与当前动态地址表中A所包含B的个数的对应关系;b.判断要学习的B及其归属的A与动态地址表中已存在的B及其归属的A是否不一致,如果不一致,根据要学习的B所归属的A来查找步骤a中所述对应关系;c.判断所述对应关系中,当前动态地址表中该A所包含B的个数是否小于相应的最大限制数目,如果不小于,则丢弃该要学习的B,否则,将该要学习的B学习到动态地址表,并且,将所述对应关系中的当前该A学习的地址数目加1。
所述步骤c进一步包括当动态地址表中没有空表项时,如果当前动态地址表中该A所包含B的个数小于相应的最大限制数目,则用要学习的B及其所归属的A刷新动态地址表,并将所述对应关系中,被刷新的动态地址表的表项所对应的A所包含B的个数减1。
所述动态地址表为散列存储(HASH)动态地址表。
该方法进一步包括在动态地址表的每一个地址表项中进一步增加用来表示该表项是动态表项还是静态表项的比特位;在刷新表项之前,根据该比特位,判断要刷新的表项是否为静态表项,如果是,不刷新,若不是,刷新该表项。
所述刷新原有表项是将要学习B内容覆盖动态地址表中没有进行地址查找过的表项或非新表项获得。
本发明通过设置含有地址数目限制和当前系统已有的地址数目的对应关系,在地址学习过程中实现对动态地址表中地址数目的限制。该方法减小了资源的占用,降低了系统成本,同时也使地址表的管理变得更简单、高效。


图1为实现本发明方法的流程示意图;图2本发明引入限制地址数后进行地址学习的流程图;具体实施方式
本发明的核心内容是通过设置地址的限制数目和当前系统已有的地址数目的对应关系,在地址学习过程中实现对动态地址表中地址数目的限制。动态地址表至少包括A、B两部分,其中,B部分为要学习的内容,A部分为该要学习的内容所属类别的连接号,并且同一A与一个以上个不同的B部分内容相对应。
参见图1所示,实现本发明的方法包括以下三个步骤。
步骤101、建立每个A所包含B的最大限制数目与当前动态地址表中A所包含B的个数的对应关系;步骤102、判断要学习的B及其归属的A与动态地址表中已存在的B及其归属的A是否不一致,如果不一致,根据要学习的B所归属的A来查找步骤a中所述对应关系;
步骤103、判断所述对应关系中,当前动态地址表中该A所包含B的个数是否小于相应的最大限制数目,如果不小于,则丢弃该要学习的B,否则,将该要学习的B学习到动态地址表,并且,将所述对应关系中的当前该A学习的地址数目加1。
下面已应用于逻辑上的单播地址表(ETA,Ethernet to ATM Bridge)为例具体说明本发明的技术方案。
本发明首先要建立以PVC_INDEX表项为索引的下行连接表,该下行连接表存储了PVC所限制的MAC地址数目的上限值,以及逻辑动态记下的当前此PVC学习到的MAC地址数目,并且MAC地址数目的上限值与学习到的MAC地址数目有对应关系,且该下行连接表存放在FPGA外部的SRAM中。表2为下行连接表的结构示意图。如表2所示,左边部分PVC_MAC_Threshold为CPU初始化的此PVC限制的MAC地址数上限值,右边部分PVC_MAC_Counter为逻辑动态记下的当前此PVC学习到的MAC地址数。

表2因此,在引入下行连接表从而进行地址数目限制时,地址学习的过程将会有如下变化。参见图2所示,本发明进行地址学习的过程如下步骤201、根据地址学习请求Key计算HASH索引。
步骤202、从该索引地址开始读出连续的4个HASH表项。
步骤203、根据读出的HASH表项中MAC地址和Valid标志位,判断这4个HASH表项中MAC地址与要学习的KEY中含有的MAC地址是否一致,如果是,执行步骤204,否则,执行步骤210。也就是说,要学习的MAC地址可分成两种情况,一种是要学习的MAC地址与动态地址表中MAC地址相同的情况,步骤204~步骤209为该种情况的处理方式,另一种是动态地址表中没有与要学习的地址相同的情况,步骤210~步骤214为该种情况的处理方式。
步骤204、比较要学习的PVC-INDEX和该表项中的PVC-INDEX是否相同,如果是,执行步骤205,否则,执行步骤206。步骤205、读取PVC-INDEX中对应下行连接表中MAC地址限制值,判断MAC地址限制数是否大于等于门限值,如果是,则执行步骤209,否则,执行步骤208。
步骤206、读取新PVC-INDEX对应下行连接表中MAC地址限制值,判断MAC地址限制数是否大于等于门限值,如果是,则将旧PVC-INDEX对应下行连接表中的地址数减1,否则,执行步骤207。
步骤207、将新PVC-INDEX的MAC地址加1,将旧PVC-INDEX的MAC地址减1。
步骤208、置New标志位为1,刷新该表项,然后跳出。
步骤209、则将PVC-INDEX对应下行连接表MAC地址数减1,删除该单播表中对应的HASH表项,然后跳出。
步骤210、根据Valid表项判断该表中是否有空表项,如果有,则执行步骤211,否则,执行步骤212。
步骤211、读取PVC-INDEX中对应下行连接表中MAC地址限制值,判断MAC地址限制数是否大于等于门限值,如果是,将PVC-INDEX的MAC地址数加1,将学习内容写入第一个空表项中,否则,执行步骤208。
步骤212、由PVC-INDEX读取下行连接表中MAC地址限制值,判断MAC地址限制数是否大于等于门限值,如果是,学习失败,否则,执行步骤213。
步骤213、学习地址指针指向最后一个无效、地址被更新过或被使用过的地址;步骤214、将新PVC-INDEX的地址数加1,将旧PVC-INDEX的地址数减1,然后将学习内容写入学习地址指针指向的表项,有效索引计数器加1。
当然,在动态地址表的每一个地址表项中可以进一步增加用来表示该表项是动态表项还是静态表项的比特位;在刷新表项之前,根据该比特位,判断要刷新的表项是否为静态表项,如果是,不刷新,若不是,刷新该表项。
从上述地址学习的过程可以看出,PVC_INDEX相当于本发明所指的A部分,MAC地址相当于本发明所指的B部分。当动态地址表中没有与要学习地址和对应PVC连接号一致的表项时,根据要学习地址对应的PVC连接号索引PVC连接表;如果索引出PVC连接表对应表项中当前PVC学习地址数目大于对应PVC地址数限制值,则丢弃该要学习的地址,否则,将该要学习的地址学习到动态地址表中,并且,将所述对应关系中当前该PVC学习地址数加1。当然,这时如果动态地址表中没有空表项,那么就可以刷新动态地址表中不活跃的表项,比如很久没有被查找使用过,或者不是新学习过的表项等。
权利要求
1.一种限制动态地址表地址数的方法,应用于至少包括A和B表项的动态地址表,其中,B部分为要学习的地址内容,A部分为连接号,且同一A包含一个以上个数目的B,其特征在于,该方法包括以下步骤a.建立每个A所包含B的最大限制数目与当前动态地址表中A所包含B的个数的对应关系;b.判断要学习的B及其归属的A与动态地址表中已存在的B及其归属的A是否不一致,如果不一致,根据要学习的B所归属的A来查找步骤a中所述对应关系;c.判断所述对应关系中,当前动态地址表中该A所包含B的个数是否小于相应的最大限制数目,如果不小于,则丢弃该要学习的B,否则,将该要学习的B学习到动态地址表,并且,将所述对应关系中的当前该A学习的地址数目加1。
2.根据权利要求1所述的方法,其特征在于,所述步骤c进一步包括当动态地址表中没有空表项时,如果当前动态地址表中该A所包含B的个数小于相应的最大限制数目,则用要学习的B及其所归属的A刷新动态地址表,并将所述对应关系中,被刷新的动态地址表的表项所对应的A所包含B的个数减1。
3.根据权利要求1所述的方法,其特征在于,所述动态地址表为散列存储(HASH)动态地址表。
4.根据权利要求2所述的方法,其特征在于,该方法进一步包括在动态地址表的每一个地址表项中进一步增加用来表示该表项是动态表项还是静态表项的比特位;在刷新表项之前,根据该比特位,判断要刷新的表项是否为静态表项,如果是,不刷新,若不是,刷新该表项。
5.根据权利要求2所述的方法,其特征在于,所述刷新原有表项是将要学习B内容覆盖动态地址表中没有进行地址查找过的表项或非新表项获得。
全文摘要
本发明公开了一种限制动态地址表地址数的方法,应用于至少包括A和B表项的动态地址表,B部分为要学习的地址内容,A部分为连接号,且同一A包含一个以上个数目的B,该方法包括建立每个A所包含B的最大限制数目与当前动态地址表中A所包含B的个数的对应关系;判断要学习的B及其归属的A与动态地址表中已存在的B及其归属的A是否不一致,如果不一致,根据要学习的B所归属的A来查找步骤a中所述对应关系;判断所述对应关系中,该A所包含B的个数是否小于相应最大限制数目,如果不小于,则丢弃该要学习的B,否则,将该要学习的B学习到动态地址表,且,将所述对应关系中当前该A学习的地址数目加1。该方法节省资源,且管理简单、高效。
文档编号H04L12/24GK1538660SQ0310956
公开日2004年10月20日 申请日期2003年4月14日 优先权日2003年4月14日
发明者胡锴, 程贵峰, 徐肆海, 胡 锴 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1