CN1323517C - 一种限制动态地址表地址数目的方法 - Google Patents
一种限制动态地址表地址数目的方法 Download PDFInfo
- Publication number
- CN1323517C CN1323517C CNB031095658A CN03109565A CN1323517C CN 1323517 C CN1323517 C CN 1323517C CN B031095658 A CNB031095658 A CN B031095658A CN 03109565 A CN03109565 A CN 03109565A CN 1323517 C CN1323517 C CN 1323517C
- Authority
- CN
- China
- Prior art keywords
- address table
- list item
- dynamic address
- address
- dynamic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Landscapes
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种限制动态地址表地址数的方法,包括:建立每个A所包含B的最大限制数目与当前动态地址表中A所包含B的个数的对应关系;当要学习的B及其归属的A与动态地址表中已存在的B及其归属的A不一致时,根据要学习的B所归属的A来查找所述对应关系;判断所述对应关系中该A所包含B的个数是否小于相应最大限制数目,如果不小于,则丢弃该要学习的B,否则,判断当前动态地址表中是否有空表项,如果有,将该要学习的B学习到动态地址表,将所述对应关系中当前该A学习的地址数加1,如果没有,用要学习的B及其所归属的A刷新动态地址表,将被刷新的动态地址表的表项所对应的A所包含B的个数减1。该方法节省资源,且管理简单、高效。
Description
技术领域
本发明涉及数据通信设备中数据链路层与网络层内地址表管理技术,尤其关于一种限制动态地址表地址数目的方法。
背景技术
地址表是在数据链路层与网络层数据通信设备,如以太网、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表明在当前老化周期内该地址被使用过。这些标志位都是高有效的。
保留(63) | Valid(62) | New(61) | Used(60) | PVC_INDEX[11:0](59~48) | MAC_Addr[47:0](47~0) |
表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,并跳出本流程;否则,执行步骤d;
d.判断当前动态地址表中是否有空表项,如果有,则将该要学习的B学习到动态地址表,并且,将所述对应关系中的当前该A学习的地址数目加1;否则,用要学习的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来查找步骤101中所述对应关系;
步骤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地址数。
PVC_MAC_Threshold0[11~0] | PVC_MAC_Counter0[11~0] |
PVC_MAC_Threshold1[11~0] | PVC_MAC_Counter1[11~0] |
...... | |
PVC_MAC_Threshold4095[11~0] | PVC_MAC_Counter4095[11~0] |
表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和该表项中的PVC-INDEX即旧PVC-INDEX是否相同,如果是,执行步骤205,否则,执行步骤206。
步骤205、读取PVC-INDEX对应下行连接表中MAC地址数,判断MAC地址数是否大于等于上限值,如果是,则执行步骤209,否则,执行步骤208。
步骤206、读取新PVC-INDEX对应下行连接表中MAC地址数,判断MAC地址数是否大于等于上限值,如果是,则将旧PVC-INDEX对应下行连接表中的地址数减1,删除该单播表中对应的HASH表项,然后跳出;否则,执行步骤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,将学习内容写入第一个空表项中,然后跳出;否则,学习失败,直接跳出。
步骤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。当然,这时如果动态地址表中没有空表项,那么就可以刷新动态地址表中不活跃的表项,比如很久没有被查找使用过,或者不是新学习过的表项等。
Claims (4)
1、一种限制动态地址表地址数的方法,应用于至少包括A和B表项的动态地址表,其中,B部分为要学习的地址内容,A部分为连接号,且同一A包含一个以上个数目的B,其特征在于,该方法包括以下步骤:
a.建立每个A所包含B的最大限制数目与当前动态地址表中A所包含B的个数的对应关系;
b.判断要学习的B及其归属的A与动态地址表中已存在的B及其归属的A是否不一致,如果不一致,根据要学习的B所归属的A来查找步骤a中所述对应关系;
c.判断所述对应关系中,当前动态地址表中该A所包含B的个数是否小于相应的最大限制数目,如果不小于,则丢弃该要学习的B,并跳出本流程;否则,执行步骤d;
d.判断当前动态地址表中是否有空表项,如果有,则将该要学习的B学习到动态地址表,并且,将所述对应关系中的当前该A学习的地址数目加1;否则,用要学习的B及其所归属的A刷新动态地址表,并将所述对应关系中,被刷新的动态地址表的表项所对应的A所包含B的个数减1。
2、根据权利要求1所述的方法,其特征在于,所述动态地址表为散列存储(HASH)动态地址表。
3、根据权利要求1所述的方法,其特征在于,该方法进一步包括:在动态地址表的每一个地址表项中进一步增加用来表示该表项是动态表项还是静态表项的比特位;在刷新表项之前,根据该比特位,判断要刷新的表项是否为静态表项,如果是,不刷新,若不是,刷新该表项。
4、根据权利要求1所述的方法,其特征在于,所述刷新原有表项是将要学习B内容覆盖动态地址表中没有进行地址查找过的表项或非新表项获得。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031095658A CN1323517C (zh) | 2003-04-14 | 2003-04-14 | 一种限制动态地址表地址数目的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031095658A CN1323517C (zh) | 2003-04-14 | 2003-04-14 | 一种限制动态地址表地址数目的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1538660A CN1538660A (zh) | 2004-10-20 |
CN1323517C true CN1323517C (zh) | 2007-06-27 |
Family
ID=34319392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB031095658A Expired - Lifetime CN1323517C (zh) | 2003-04-14 | 2003-04-14 | 一种限制动态地址表地址数目的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1323517C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102422608A (zh) * | 2009-05-08 | 2012-04-18 | 瑞典爱立信有限公司 | 限制混合节点中mac地址表的大小 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001047168A2 (en) * | 1999-12-20 | 2001-06-28 | Zarlink Semiconductor V. N. Inc. | High speed mac address search engine |
KR20020039559A (ko) * | 2000-11-22 | 2002-05-27 | 구자홍 | 계층 2에서의 네트워크 보안방법 |
CN1402480A (zh) * | 2001-08-07 | 2003-03-12 | 株式会社藤仓 | 介质访问控制桥路的地址管理方法和该桥路 |
CN1407769A (zh) * | 2001-09-11 | 2003-04-02 | 友讯科技股份有限公司 | 网络交换器的地址表格中地址数目的控制方法 |
-
2003
- 2003-04-14 CN CNB031095658A patent/CN1323517C/zh not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001047168A2 (en) * | 1999-12-20 | 2001-06-28 | Zarlink Semiconductor V. N. Inc. | High speed mac address search engine |
KR20020039559A (ko) * | 2000-11-22 | 2002-05-27 | 구자홍 | 계층 2에서의 네트워크 보안방법 |
CN1402480A (zh) * | 2001-08-07 | 2003-03-12 | 株式会社藤仓 | 介质访问控制桥路的地址管理方法和该桥路 |
CN1407769A (zh) * | 2001-09-11 | 2003-04-02 | 友讯科技股份有限公司 | 网络交换器的地址表格中地址数目的控制方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102422608A (zh) * | 2009-05-08 | 2012-04-18 | 瑞典爱立信有限公司 | 限制混合节点中mac地址表的大小 |
CN102422608B (zh) * | 2009-05-08 | 2014-11-05 | 瑞典爱立信有限公司 | 限制混合节点中mac地址表的大小 |
Also Published As
Publication number | Publication date |
---|---|
CN1538660A (zh) | 2004-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7058642B2 (en) | Method and data structure for a low memory overhead database | |
US20110188503A1 (en) | Ethernet Forwarding Database Method | |
US6922410B1 (en) | Organization of databases in network switches for packet-based data communications networks | |
CN101068178B (zh) | 使用、管理mac地址表的方法、系统、及搜索引擎 | |
US5440552A (en) | ATM cell assembling/disassembling system | |
CN107832343B (zh) | 一种基于位图的mbf数据索引结构对数据快速检索的方法 | |
US20090282167A1 (en) | Method and apparatus for bridging | |
US20040160954A1 (en) | High speed routing table learning and lookup | |
CN111988231B (zh) | 一种掩码五元组规则匹配的方法及装置 | |
CN101620623A (zh) | 内容可寻址存储器表项管理方法和装置 | |
US6201755B1 (en) | Method and system for storing and retrieving information in a communications node | |
JP4557745B2 (ja) | 高速なルーティングテーブル学習およびルックアップ | |
CN1323517C (zh) | 一种限制动态地址表地址数目的方法 | |
CN109688126A (zh) | 一种数据处理方法、网络设备及计算机可读存储介质 | |
US20040143701A1 (en) | Ternary content addressable memory with enhanced priority matching | |
CN100487697C (zh) | 一种应用改进的哈希方法进行查找的方法 | |
CN100477644C (zh) | 一种路由存储方法及装置 | |
USRE40776E1 (en) | Method for translating an ATM switch cell header | |
CN107241251A (zh) | 多路can报文实时接收的软件实现方法 | |
CN109286570B (zh) | 一种邻接表项的查找方法及装置 | |
CN106789672A (zh) | 一种报文路由处理方法及装置 | |
CN108307001A (zh) | Mac地址老化方法、装置及电子设备 | |
CN101420465A (zh) | 在地址转换表中映射源端口的方法及网络地址转换设备 | |
CN103200111A (zh) | 一种信元交换方法及装置 | |
CN111865794B (zh) | 一种逻辑端口的关联方法、系统、设备及数据传输系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20070627 |
|
CX01 | Expiry of patent term |