CN103731355A - 避免mac地址学习时哈希冲突的方法及系统 - Google Patents
避免mac地址学习时哈希冲突的方法及系统 Download PDFInfo
- Publication number
- CN103731355A CN103731355A CN201310751196.3A CN201310751196A CN103731355A CN 103731355 A CN103731355 A CN 103731355A CN 201310751196 A CN201310751196 A CN 201310751196A CN 103731355 A CN103731355 A CN 103731355A
- Authority
- CN
- China
- Prior art keywords
- mac address
- vlan
- chip
- tcam
- information
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000004364 calculation method Methods 0.000 claims abstract description 13
- 238000001514 detection method Methods 0.000 claims description 55
- 230000032683 aging Effects 0.000 claims description 18
- 230000003679 aging effect Effects 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 5
- 239000000284 extract Substances 0.000 claims description 4
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 2
- 238000012360 testing method Methods 0.000 abstract description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Landscapes
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种避免MAC地址学习时产生哈希冲突的方法及系统,属于网络通信测试领域,包括以下步骤:S1:从报文解析出源MAC地址、虚拟局域网号VLAN ID和端口号;S2:将解析出的源MAC地址和VLAN ID进行哈希计算并在芯片内的MAC地址表中进行哈希查找,如查找到,更新芯片MAC地址表并执行S8,否则执行S3;S3:将源MAC地址、VLAN ID和端口号信息存储到MAC地址表中。本发明的有益效果如下:本发明通过硬件芯片发出中断信息快速定位MAC地址哈希冲突,软件冲突检测单元进行检测,TCAM表存储冲突MAC地址的方式快速解决MAC地址哈希冲突。
Description
技术领域
本发明涉及网络通信测试领域,尤其涉及一种避免MAC(Media AccessControl,介质访问控制)地址学习时哈希(HASH)冲突的方法及系统。
背景技术
交换机转发是通过MAC地址来进行的,它会建立一张包含源MAC地址、VLAN ID(Virtual Local Area Network ID,虚拟局域网标识号)、Port(端口号)的转发表,并根据该转发表实现报文的单播转发。MAC地址表最初采用顺序表的结构存储,当MAC地址发生变化时,即添加或删除MAC地址时,为了保持MAC地址表的有序性,MAC地址表会出现表项移动。当MAC地址表容量较大时,移动与查找就变得复杂,此时报文无法达到线速,查找效率也较低下。
后期的芯片,MAC地址表采用哈希表结构进行存储。首先确定哈希桶的深度,再用整个MAC地址表的容量除以哈希桶的深度,得到需要的哈希桶个数,每个哈希桶有自己唯一的编号,在哈希桶的内部仍然采用顺序的方式存储。当进行MAC地制学习时,会根据源MAC地址和VLAN ID使用特定的哈希算法得到哈希桶的编号,然后把MAC地址存储到该桶中。这样可以提高查表效率,但是同时也产生了哈希冲突。
假如一个哈希桶能存储N个MAC地址,当它装满N个MAC地址后,一个正在学习的MAC地址根据哈希算法获得的存储编号依然为该哈希桶时,就无法存储到该表项,此时称之为哈希冲突。
现有的解决哈希冲突的方案有以下几种:
方法一:通过ACL(Access Control List,重定向)来转发冲突的MAC地址:检测到MAC地址冲突时,将该MAC地址写入软件表项,并将该MAC地址作为匹配条件生成ACL指向学习到该MAC地址的端口,该条ACL下发到每一个端口,当目的MAC地址为冲突的MAC地址时,直接匹配到该条ACL,之后定向至出端口进行单播线速转发,该方法在解决问题的时候会占用大量ACL资源,一个哈希冲突的MAC地址下发到N个端口使用的ACL数量为N个,当大量MAC地址冲突时,少则造成严重ACL资源浪费,多则ACL资源被耗尽。该方案存在以下缺点(1)使用大量ACL资源,造成资源浪费;(2)无法对所有哈希冲突的MAC地址进行安全性保证;(3)不能彻底解决MAC地址学习以及硬件转发问题,而且会受ACL模块本身的影响。
方法二:通过缩短哈希桶深,扩大哈希链长来解决,该方法不能彻底解决MAC地址冲突,只能减少哈希冲突。
方法三:通过可编程的交换芯片扩展TCAM表进行MAC地址硬件学习,该方法可维护性不强,一旦要更改时需对交换芯片重新编程,其次所有交换芯片需要和TCAM表结合使用,另外不易发生MAC地址哈希冲突的低端设备也会外挂TCAM表,实际运用当中会导致成本过高。
其中,TCAM(ternary content addressable memory)是一种三态内容寻址存储器,主要用于快速查找ACL、路由等表项。
综上所述,目前需要解决以下问题:哈希冲突产生时快速定位及学习问题、硬件转发问题、MAC地址老化等更新问题。
发明内容
本发明的目的在于解决哈希冲突产生时快速定位及学习问题、硬件转发问题、MAC地址老化更新等问题而提出的一种避免MAC地址学习时哈希冲突的学习方法及系统。
为了实现以上发明目的,本发明采取的技术方案如下:一种避免MAC地址学习时哈希冲突的方法,包括以下步骤:
S1:从报文解析出源MAC地址、虚拟局域网号VLAN ID和端口号;
S2:将解析出的源MAC地址和VLAN ID进行哈希计算并在芯片内的MAC地址表中进行哈希查找,如查找到,更新芯片MAC地址表并执行S8,否则执行S3;
S3:将源MAC地址、VLAN ID和端口号信息存储到MAC地址表中;
S4:冲突检测单元检测是否存在哈希冲突,如存在,执行S5,否则执行S8;
S5:将源MAC地址、VLAN ID和端口号信息在三态内容寻址存储器TCAM表中进行并行查找,如查找到,执行S7,否则执行S6;
S6:将源MAC地址、VLAN ID和端口号信息线性存储到TCAM表中;
S7:对TCAM表进行更新;
S8:进行目的MAC地址查询。
作为优选:S4中所述的冲突检测单元检测方法如下:
S41:芯片检测到哈希冲突,产生中断信息通知CPU,并且拷贝产生哈希冲突的数据包到CPU;
S42:CPU收到该中断信息并释放信号量;
S43:冲突检测单元的检测任务模块收到信号量后,调用接收报文的接口,接收对应的数据包;
S44:检测任务模块从接收到的数据包中提取源MAC地址、VLAN ID和端口号。
作为优选:S7所述的TCAM表更新包括老化更新、删除更新和添加更新。
作为优选:TCAM表老化更新方法如下:
S701:芯片老化动作的第一个周期到,芯片检查TCAM表中MAC地址表项的命中标记位;
S702:如MAC地址表项的命中标记位为1,则将TCAM表的命中标记位更改为0,如果MAC地址表项的命中标记位为0,则清除表项,执行S704;
S703:芯片老化动作的第二个周期到,芯片清除命中标记位为0的表项;
S704:芯片老化动作后产生中断信息,通知CPU释放信号量;
S705:冲突检测单元收到信号量后更新相应软件数据结构。
作为优选:TCAM表添加更新方法如下:
S711:相同的报文进入芯片后,在芯片内部的MAC地址表中对该报文的源MAC地址进行查询;
S712:芯片内部的MAC地址表中对该报文的源MAC地址查询失败;
S713:将源MAC地址和VLAN ID进行哈希计算,得出对应的索引号,将源MAC地址写入索引号对应的哈希桶中,产生哈希冲突;
S714:芯片产生中断信息并拷贝该报文到CPU,CPU释放中断信号量;
S715:冲突检测单元收到该信号量,对TCAM进行源MAC地址查询;
S716:查询成功,将该MAC地址表的命中标记位更改为1。
作为优选:S8所述的进行目的MAC地址查询方法如下:
S81:从报文解析出目的MAC地址、VLAN ID和端口号;
S82:将解析出的目的MAC地址和VLAN ID在芯片内的MAC地址表中进行哈希查找,如查找到,执行S85,否则执行S83;
S83:将解析出的目的MAC地址、VLAN ID和端口号在TCAM表内进行并行查找,如查找到,执行S85,否则执行S84;
S84:在相同VLAN内进行洪泛;
S85:根据MAC地址表中的内容进行单播转发。
为了解决上述问题,本发明还提出了一种系统,包括信息解析单元、信息查询单元、信息存储单元、TCAM表更新单元、冲突检测单元和目的MAC地址查询单元;
其中,信息解析单元用于从报文解析出源MAC地址、VLAN ID和端口号;
信息查询单元用于将解析出的源MAC地址和VLAN ID进行哈希计算并在芯片内的MAC地址表中进行哈希查找;
信息查询单元还用于在MAC地址表查询不成功后将源MAC地址、VLAN ID和端口号信息在TCAM表中进行并行查找;
信息存储单元用于信息查询单元在MAC地址表中查询不成功时将源MAC地址、VLAN ID和端口号信息存储到MAC地址表中;
信息存储单元还用于信息查询单元在TCAM表中查询不成功时将源MAC地址、VLAN ID和端口号信息线性存储到TCAM表中;
TCAM表更新单元分别用于信息查询单元在MAC地址表和TCAM表中查找成功时对TCAM表进行更新;
冲突检测单元用于源MAC地址、VLAN ID和端口号信息存储到MAC地址表之后检测是否存在哈希冲突,如存在启动信息查询单元将源MAC地址、VLAN ID和端口号信息在TCAM表中进行并行查找,否则启动目的MAC地址查询单元;
目的MAC地址查询单元用于进行目的MAC地址查询。
作为优选:所述的冲突检测单元包括检测任务模块,检测任务模块用于接收芯片产生哈希冲突并产生中断信息后通知CPU释放的信号量;检测任务模块还用于调用接收报文的接口接收拷贝到CPU的产生哈希冲突的数据包;检测任务模块还用于从接收到的数据包中提取源MAC地址、VLAN ID和端口号。
作为优选:所述的TCAM表更新包括老化更新模块、删除更新模块和添加更新模块;
其中,
TCAM表老化更新模块用于芯片老化动作的第一个周期到,芯片检查TCAM表中MAC地址表项的命中标记位;如MAC地址表项的命中标记位为1,则将TCAM表的命中标记位更改为0,如果MAC地址表项的命中标记位为0,则清除表项,同时芯片产生中断信息,通知CPU释放信号量;芯片老化动作的第二个周期到,芯片清除命中标记位为0的表项,芯片产生中断信息,通知CPU释放信号量;冲突检测单元收到信号量后更新相应软件数据结构;
TCAM表添加更新模块用于相同的报文进入芯片后,在芯片内部的MAC地址表中对该报文的源MAC地址进行查询;芯片内部的MAC地址表中对该报文的源MAC地址查询失败;将源MAC地址和VLAN ID进行哈希计算,得出对应的索引号,将源MAC地址写入索引号对应的哈希桶中,产生哈希冲突;芯片产生中断信息并拷贝该报文到CPU,CPU释放中断信号量;冲突检测单元收到该信号量,对TCAM进行源MAC地址查询;查询成功,将该MAC地址表的命中标记位更改为1。
作为优选:目的MAC地址查询单元具体用于从报文解析出目的MAC地址、VLAN ID和端口号;将解析出的目的MAC地址和VLAN ID在芯片内的MAC地址表中进行哈希查找,如查找到,根据MAC地址表中的内容进行单播转发,否则将解析出的目的MAC地址、VLAN ID和端口号在TCAM表内进行并行查找,如查找到,根据MAC地址表中的内容进行单播转发,否则在相同VLAN内进行洪泛。
本发明的有益效果:本发明通过硬件芯片发出中断信息快速定位MAC地址哈希冲突,软件冲突检测单元进行检测,TCAM表存储冲突MAC地址的方式快速解决MAC地址哈希冲突。硬件芯片老化处理速度快,时间也比较准确,而且不需要通过CPU进行干预和控制,减少CPU资源的占用和消耗,CPU部分只需要处理简单的相关软件数据结构,队列长度不需要很大就可处理,这些对于大量地址表的处理优于其他方式。这种软硬件结合的方法做到了可维护性强并且兼容了硬件学习的快速性能等特点,较少的利用了系统资源,增加了设备的系统资源。
附图说明
图1为MAC地址学习的流程图;
图2为MAC地址转发的流程图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明做进一步详细说明。
一种避免MAC地址学习时哈希冲突的方法,包括以下步骤:
S1:从报文解析出源MAC地址、虚拟局域网号VLAN ID和端口号;
S2:将解析出的源MAC地址和VLAN ID进行哈希计算并在芯片内的MAC地址表中进行哈希查找,如查找到,更新芯片MAC地址表并执行S8,否则执行S3;
S3:将源MAC地址、VLAN ID和端口号信息存储到MAC地址表中;
S4:冲突检测单元检测是否存在哈希冲突,如存在,执行S5,否则执行S8;
S5:将源MAC地址、VLAN ID和端口号信息在三态内容寻址存储器(ternarycontent addressable memory,TCAM)表中进行并行查找,如查找到,执行S7,否则执行S6;
S6:将源MAC地址、VLAN ID和端口号信息线性存储到TCAM表中;
S7:对TCAM表进行更新;
S8:进行目的MAC地址查询。
S4中所述的冲突检测单元检测方法如下:
S41:芯片检测到哈希冲突,产生中断信息通知CPU,并且拷贝产生哈希冲突的数据包到CPU;
S42:CPU收到该中断信息并释放信号量;
S43:冲突检测单元的检测任务模块收到信号量后,调用接收报文的接口,接收对应的数据包;
S44:检测任务模块从接收到的数据包中提取源MAC地址、VLAN ID和端口号。
S7所述的TCAM表更新包括老化更新、删除更新和添加更新。
TCAM表老化更新方法如下:
S701:芯片老化动作的第一个周期到,芯片检查TCAM表中MAC地址表项的命中标记位;
S702:如MAC地址表项的命中标记位为1,则将TCAM表的命中标记位更改为0,如果MAC地址表项的命中标记位为0,则清除表项,执行S704;
S703:芯片老化动作的第二个周期到,芯片清除命中标记位为0的表项;
S704:芯片老化动作后产生中断信息,通知CPU释放信号量;
S705:冲突检测单元收到信号量后更新相应软件数据结构。
作为优选:TCAM表添加更新方法如下:
S711:相同的报文进入芯片后,在芯片内部的MAC地址表中对该报文的源MAC地址进行查询;
S712:芯片内部的MAC地址表中对该报文的源MAC地址查询失败;
S713:将源MAC地址和VLAN ID进行哈希计算,得出对应的索引号,将源MAC地址写入索引号对应的哈希桶中,产生哈希冲突;
S714:芯片产生中断信息并拷贝该报文到CPU,CPU释放中断信号量;
S715:冲突检测单元收到该信号量,对TCAM进行源MAC地址查询;
S716:查询成功,将该MAC地址表的命中标记位更改为1。
S8所述的进行目的MAC地址查询方法如下:
S81:从报文解析出目的MAC地址、VLAN ID和端口号;
S82:将解析出的目的MAC地址和VLAN ID在芯片内的MAC地址表中进行哈希查找,如查找到,执行S85,否则执行S83;
S83:将解析出的目的MAC地址、VLAN ID和端口号在TCAM表内进行并行查找,如查找到,执行S85,否则执行S84;
S84:在相同VLAN内进行洪泛;
S85:根据MAC地址表中的内容进行单播转发。(可达到线速转发)
为了解决上述问题,本发明还提出了一种系统,包括信息解析单元、信息查询单元、信息存储单元、TCAM表更新单元、冲突检测单元和目的MAC地址查询单元;
其中,信息解析单元用于从报文解析出源MAC地址、VLAN ID和端口号;
信息查询单元用于将解析出的源MAC地址和VLAN ID进行哈希计算并在芯片内的MAC地址表中进行哈希查找;
信息查询单元还用于在MAC地址表查询不成功后将源MAC地址、VLAN ID和端口号信息在TCAM表中进行并行查找;
信息存储单元用于信息查询单元在MAC地址表中查询不成功时将源MAC地址、VLAN ID和端口号信息存储到MAC地址表中;
信息存储单元还用于信息查询单元在TCAM表中查询不成功时将源MAC地址、VLAN ID和端口号信息线性存储到TCAM表中;
TCAM表更新单元分别用于信息查询单元在MAC地址表和TCAM表中查找成功时对TCAM表进行更新;
冲突检测单元用于源MAC地址、VLAN ID和端口号信息存储到MAC地址表之后检测是否存在哈希冲突,如存在启动信息查询单元将源MAC地址、VLAN ID和端口号信息在TCAM表中进行并行查找,否则启动目的MAC地址查询单元;
目的MAC地址查询单元用于进行目的MAC地址查询。
所述的冲突检测单元包括检测任务模块,检测任务模块用于接收芯片产生哈希冲突并产生中断信息后通知CPU释放的信号量;检测任务模块还用于调用接收报文的接口接收拷贝到CPU的产生哈希冲突的数据包;检测任务模块还用于从接收到的数据包中提取源MAC地址、VLAN ID和端口号。
所述的TCAM表更新包括老化更新模块、删除更新模块和添加更新模块;
其中,
TCAM表老化更新模块用于芯片老化动作的第一个周期到,芯片检查TCAM表中MAC地址表项的命中标记位;如MAC地址表项的命中标记位为1,则将TCAM表的命中标记位更改为0,如果MAC地址表项的命中标记位为0,则清除表项,同时芯片产生中断信息,通知CPU释放信号量;芯片老化动作的第二个周期到,芯片清除命中标记位为0的表项,芯片产生中断信息,通知CPU释放信号量;冲突检测单元收到信号量后更新相应软件数据结构;
TCAM表添加更新模块用于相同的报文进入芯片后,在芯片内部的MAC地址表中对该报文的源MAC地址进行查询;芯片内部的MAC地址表中对该报文的源MAC地址查询失败;将源MAC地址和VLAN ID进行哈希计算,得出对应的索引号,将源MAC地址写入索引号对应的哈希桶中,产生哈希冲突;芯片产生中断信息并拷贝该报文到CPU,CPU释放中断信号量;冲突检测单元收到该信号量,对TCAM进行源MAC地址查询;查询成功,将该MAC地址表的命中标记位更改为1。
目的MAC地址查询单元具体用于从报文解析出目的MAC地址、VLAN ID和端口号;将解析出的目的MAC地址和VLAN ID在芯片内的MAC地址表中进行哈希查找,如查找到,根据MAC地址表中的内容进行单播转发,否则将解析出的目的MAC地址、VLAN ID和端口号在TCAM表内进行并行查找,如查找到,根据MAC地址表中的内容进行单播转发,否则在相同VLAN内进行洪泛。
具体实施例:
如图1所示,当芯片收到一个报文会解析它的头部信息,MAC地址、VLAN ID和端口号(Port),当源MAC地址为MAC(X)的报文进行转发时,转发流程会先查找源MAC(X)是否在芯片的MAC地址中,若存在将直接查找目的MAC地址,进入目的地址查找逻辑,查找芯片MAC地址表,若可以进行学习,说明没有产生哈希冲突,若无法学习且芯片产生了哈希冲突中断信息,再查找TCAM中的MAC地址表,若存在将进行目的查找逻辑和转发逻辑。
当产生哈希冲突时,芯片及时产生中断信息,同时将该报文拷贝一份传送到CPU,CPU收到该中断信息并释放信号量,冲突检测单元的检测任务模块收到信号量后,调用接收报文的接口,接收对应的数据包,检测任务模块从接受到的数据包中提取源MAC(X)地址、VLAN ID和端口号后,再调用驱动添加MAC地址表接口到TCAM表中。在写入的时候采用的是顺序写入方式,这样可以完全避免冲突。如图2所示,当完成MAC地址学习进入目的地址查找,当收到目的地址为MAC(Y)的报文时,先查找芯片自带的MAC地址转发表,若查找到就根据MAC地址表进行转发,若没有查找到再查找扩展的芯片表项TCAM,查找TCAM表项可以达到线速。
扩展的MAC地址表需要TCAM的硬件支持。但是与之而来会产生TCAM表的维护及更新等问题,解决方案如下:
冲突检测单元对TCAM表的MAC地址老化采用和芯片一致的处理方式,即冲突检测单元会启用一个周期为T的老化任务,该T值由配置决定,每隔T秒的时间该老化任务会对TCAM表中的MAC地址清除其命中标记位,再经过T个周期后该任务将命中标记位被清除的地址删除掉。冲突检测单元将需要删除的MAC地址,根据特定的条件,调用驱动接口删除TCAM表中的地址。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的实施方法,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
Claims (10)
1.一种避免MAC地址学习时产生哈希冲突的方法,其特征在于,包括以下步骤:
S1:从报文解析出源MAC地址、虚拟局域网号VLAN ID和端口号;
S2:将解析出的源MAC地址和VLAN ID进行哈希计算并在芯片内的MAC地址表中进行哈希查找,如查找到,更新芯片MAC地址表并执行S8,否则执行S3;
S3:将源MAC地址、VLAN ID和端口号信息存储到MAC地址表中;
S4:冲突检测单元检测是否存在哈希冲突,如存在,执行S5,否则执行S8;
S5:将源MAC地址、VLAN ID和端口号信息在三态内容寻址存储器TCAM表中进行并行查找,如查找到,执行S7,否则执行S6;
S6:将源MAC地址、VLAN ID和端口号信息线性存储到TCAM表中;
S7:对TCAM表进行更新;
S8:进行目的MAC地址查询。
2.根据权利要求1所述的方法,其特征在于,S4中所述的冲突检测单元检测方法如下:
S41:芯片检测到哈希冲突,产生中断信息通知CPU,并且拷贝产生哈希冲突的数据包到CPU;
S42:CPU收到该中断信息并释放信号量;
S43:冲突检测单元的检测任务模块收到信号量后,调用接收报文的接口,接收对应的数据包;
S44:检测任务模块从接收到的数据包中提取源MAC地址、VLAN ID和端口号。
3.根据权利要求1或2所述的方法,其特征在于,S7所述的TCAM表更新包括老化更新、删除更新和添加更新。
4.根据权利要求3所述的方法,其特征在于,TCAM表老化更新方法如下:
S701:芯片老化动作的第一个周期到,芯片检查TCAM表中MAC地址表项的命中标记位;
S702:如MAC地址表项的命中标记位为1,则将TCAM表的命中标记位更改为0,如果MAC地址表项的命中标记位为0,则清除表项,执行S704;
S703:芯片老化动作的第二个周期到,芯片清除命中标记位为0的表项;
S704:芯片老化动作后产生中断信息,通知CPU释放信号量;
S705:冲突检测单元收到信号量后更新相应软件数据结构。
5.根据权利要求3所述的方法,其特征在于,TCAM表添加更新方法如下:
S711:相同的报文进入芯片后,在芯片内部的MAC地址表中对该报文的源MAC地址进行查询;
S712:芯片内部的MAC地址表中对该报文的源MAC地址查询失败;
S713:将源MAC地址和VLAN ID进行哈希计算,得出对应的索引号,将源MAC地址写入索引号对应的哈希桶中,产生哈希冲突;
S714:芯片产生中断信息并拷贝该报文到CPU,CPU释放中断信号量;
S715:冲突检测单元收到该信号量,对TCAM进行源MAC地址查询;
S716:查询成功,将该MAC地址表的命中标记位更改为1。
6.根据权利要求4所述的方法,其特征在于,S8所述的进行目的MAC地址查询方法如下:
S81:从报文解析出目的MAC地址、VLAN ID和端口号;
S82:将解析出的目的MAC地址和VLAN ID在芯片内的MAC地址表中进行哈希查找,如查找到,执行S85,否则执行S83;
S83:将解析出的目的MAC地址、VLAN ID和端口号在TCAM表内进行并行查找,如查找到,执行S85,否则执行S84;
S84:在相同VLAN内进行洪泛;
S85:根据MAC地址表中的内容进行单播转发。
7.一种系统,其特征在于,包括信息解析单元、信息查询单元、信息存储单元、TCAM表更新单元、冲突检测单元和目的MAC地址查询单元;
其中,信息解析单元用于从报文解析出源MAC地址、VLAN ID和端口号;
信息查询单元用于将解析出的源MAC地址和VLAN ID进行哈希计算并在芯片内的MAC地址表中进行哈希查找;
信息查询单元还用于在MAC地址表查询不成功后将源MAC地址、VLAN ID和端口号信息在TCAM表中进行并行查找;
信息存储单元用于信息查询单元在MAC地址表中查询不成功时将源MAC地址、VLAN ID和端口号信息存储到MAC地址表中;
信息存储单元还用于信息查询单元在TCAM表中查询不成功时将源MAC地址、VLAN ID和端口号信息线性存储到TCAM表中;
TCAM表更新单元分别用于信息查询单元在MAC地址表和TCAM表中查找成功时对TCAM表进行更新;
冲突检测单元用于源MAC地址、VLAN ID和端口号信息存储到MAC地址表之后检测是否存在哈希冲突,如存在启动信息查询单元将源MAC地址、VLAN ID和端口号信息在TCAM表中进行并行查找,否则启动目的MAC地址查询单元;
目的MAC地址查询单元用于进行目的MAC地址查询。
8.根据权利要求7所述的系统,其特征在于,所述的冲突检测单元包括检测任务模块,检测任务模块用于接收芯片产生哈希冲突并产生中断信息后通知CPU释放的信号量;检测任务模块还用于调用接收报文的接口接收拷贝到CPU的产生哈希冲突的数据包;检测任务模块还用于从接收到的数据包中提取源MAC地址、VLAN ID和端口号。
9.根据权利要求8所述的系统,其特征在于,所述的TCAM表更新包括老化更新模块、删除更新模块和添加更新模块;
其中,
TCAM表老化更新模块用于芯片老化动作的第一个周期到,芯片检查TCAM表中MAC地址表项的命中标记位;如MAC地址表项的命中标记位为1,则将TCAM表的命中标记位更改为0,如果MAC地址表项的命中标记位为0,则清除表项,同时芯片产生中断信息,通知CPU释放信号量;芯片老化动作的第二个周期到,芯片清除命中标记位为0的表项,芯片产生中断信息,通知CPU释放信号量;冲突检测单元收到信号量后更新相应软件数据结构;
TCAM表添加更新模块用于相同的报文进入芯片后,在芯片内部的MAC地址表中对该报文的源MAC地址进行查询;芯片内部的MAC地址表中对该报文的源MAC地址查询失败;将源MAC地址和VLAN ID进行哈希计算,得出对应的索引号,将源MAC地址写入索引号对应的哈希桶中,产生哈希冲突;芯片产生中断信息并拷贝该报文到CPU,CPU释放中断信号量;冲突检测单元收到该信号量,对TCAM进行源MAC地址查询;查询成功,将该MAC地址表的命中标记位更改为1。
10.根据权利要求7-9任一项所述的系统,其特征在于:目的MAC地址查询单元具体用于从报文解析出目的MAC地址、VLAN ID和端口号;将解析出的目的MAC地址和VLAN ID在芯片内的MAC地址表中进行哈希查找,如查找到,根据MAC地址表中的内容进行单播转发,否则将解析出的目的MAC地址、VLANID和端口号在TCAM表内进行并行查找,如查找到,根据MAC地址表中的内容进行单播转发,否则在相同VLAN内进行洪泛。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310751196.3A CN103731355B (zh) | 2013-12-31 | 2013-12-31 | 避免mac地址学习时哈希冲突的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310751196.3A CN103731355B (zh) | 2013-12-31 | 2013-12-31 | 避免mac地址学习时哈希冲突的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103731355A true CN103731355A (zh) | 2014-04-16 |
CN103731355B CN103731355B (zh) | 2017-01-25 |
Family
ID=50455290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310751196.3A Active CN103731355B (zh) | 2013-12-31 | 2013-12-31 | 避免mac地址学习时哈希冲突的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103731355B (zh) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468362A (zh) * | 2014-12-01 | 2015-03-25 | 上海斐讯数据通信技术有限公司 | 一种mac地址学习时哈希冲突的同步方法 |
CN104750488A (zh) * | 2015-03-26 | 2015-07-01 | 浪潮集团有限公司 | 一种软件调试日志输出控制实现方法 |
CN105072208A (zh) * | 2015-07-09 | 2015-11-18 | 北京宇航系统工程研究所 | 一种sdh设备的mac地址学习方法 |
CN107666445A (zh) * | 2016-07-29 | 2018-02-06 | 中兴通讯股份有限公司 | 一种分布式系统mac地址处理方法和装置 |
CN107770076A (zh) * | 2016-08-23 | 2018-03-06 | 中兴通讯股份有限公司 | 一种哈希冲突的处理方法、装置及交换设备 |
CN108134856A (zh) * | 2017-12-25 | 2018-06-08 | 杭州叙简科技股份有限公司 | 一种基于网络树的虚拟化mac地址防冲突方法和装置 |
CN108307001A (zh) * | 2018-04-28 | 2018-07-20 | 深圳市风云实业有限公司 | Mac地址老化方法、装置及电子设备 |
CN108418759A (zh) * | 2018-05-31 | 2018-08-17 | 新华三技术有限公司 | 一种mac地址表项处理方法及装置 |
CN108632148A (zh) * | 2017-12-29 | 2018-10-09 | 西安电子科技大学 | 基于预读取方式的学习mac地址的装置及方法 |
CN108848034A (zh) * | 2018-07-17 | 2018-11-20 | 新华三技术有限公司 | 一种网络设备及表项学习方法 |
CN109218458A (zh) * | 2017-07-07 | 2019-01-15 | 中兴通讯股份有限公司 | Mac地址的写入方法、设备及计算机可读存储介质 |
CN109218204A (zh) * | 2017-06-29 | 2019-01-15 | 中兴通讯股份有限公司 | 一种解决mac hash冲突的方法和装置 |
CN109327462A (zh) * | 2018-11-14 | 2019-02-12 | 盛科网络(苏州)有限公司 | 一种基于l2vpn网络的mac地址认证方法 |
CN111107068A (zh) * | 2019-12-09 | 2020-05-05 | 江苏云涌电子科技股份有限公司 | 一种fpga高效规则匹配方法及终端 |
CN111343089A (zh) * | 2020-02-17 | 2020-06-26 | 烽火通信科技股份有限公司 | 解决mac地址hash冲突导致洪泛问题的方法及系统 |
CN111355823A (zh) * | 2020-02-17 | 2020-06-30 | 杭州迪普科技股份有限公司 | Mac地址表项的老化处理方法和装置 |
CN112087388A (zh) * | 2020-08-17 | 2020-12-15 | 深圳市风云实业有限公司 | 一种l2数据报文的转发方法 |
CN112637072A (zh) * | 2020-12-23 | 2021-04-09 | 北京时代民芯科技有限公司 | 一种用于交换芯片地址存储及查找的快速并行电路及方法 |
CN112667867A (zh) * | 2020-12-31 | 2021-04-16 | 北京卓讯科信技术有限公司 | 一种基于tcam特征码的匹配冲突检查方法和设备 |
CN113783636A (zh) * | 2020-12-29 | 2021-12-10 | 北京京东尚科信息技术有限公司 | 通信设备的测试方法、装置、介质及电子设备 |
CN113904987A (zh) * | 2021-10-29 | 2022-01-07 | 西安微电子技术研究所 | 一种mac地址路由管理控制器、系统及控制方法 |
CN114785396A (zh) * | 2022-03-09 | 2022-07-22 | 西安电子科技大学 | 逻辑端口配置、查找映射及流量管理方法、系统及终端 |
CN115118662A (zh) * | 2022-06-16 | 2022-09-27 | 浪潮思科网络科技有限公司 | 一种基于arp表的哈希冲突处理方法、系统、设备及介质 |
CN115334046A (zh) * | 2022-07-04 | 2022-11-11 | 超聚变数字技术有限公司 | 一种mac地址删除方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101232444B (zh) * | 2008-01-22 | 2012-03-21 | 杭州华三通信技术有限公司 | 哈希冲突解决方法、装置及具有该装置的交换设备 |
CN103117931B (zh) * | 2013-02-21 | 2015-07-01 | 烽火通信科技股份有限公司 | 基于哈希表和tcam表的mac地址硬件学习方法及系统 |
-
2013
- 2013-12-31 CN CN201310751196.3A patent/CN103731355B/zh active Active
Cited By (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468362B (zh) * | 2014-12-01 | 2017-11-24 | 上海斐讯数据通信技术有限公司 | 一种mac地址学习时哈希冲突的同步方法 |
CN104468362A (zh) * | 2014-12-01 | 2015-03-25 | 上海斐讯数据通信技术有限公司 | 一种mac地址学习时哈希冲突的同步方法 |
CN104750488B (zh) * | 2015-03-26 | 2018-07-31 | 浪潮集团有限公司 | 一种软件调试日志输出控制实现方法 |
CN104750488A (zh) * | 2015-03-26 | 2015-07-01 | 浪潮集团有限公司 | 一种软件调试日志输出控制实现方法 |
CN105072208A (zh) * | 2015-07-09 | 2015-11-18 | 北京宇航系统工程研究所 | 一种sdh设备的mac地址学习方法 |
CN107666445A (zh) * | 2016-07-29 | 2018-02-06 | 中兴通讯股份有限公司 | 一种分布式系统mac地址处理方法和装置 |
CN107666445B (zh) * | 2016-07-29 | 2021-09-07 | 中兴通讯股份有限公司 | 一种分布式系统mac地址处理方法和装置 |
CN107770076A (zh) * | 2016-08-23 | 2018-03-06 | 中兴通讯股份有限公司 | 一种哈希冲突的处理方法、装置及交换设备 |
CN107770076B (zh) * | 2016-08-23 | 2020-12-04 | 中兴通讯股份有限公司 | 一种哈希冲突的处理方法、装置及交换设备 |
CN109218204A (zh) * | 2017-06-29 | 2019-01-15 | 中兴通讯股份有限公司 | 一种解决mac hash冲突的方法和装置 |
CN109218458A (zh) * | 2017-07-07 | 2019-01-15 | 中兴通讯股份有限公司 | Mac地址的写入方法、设备及计算机可读存储介质 |
CN108134856A (zh) * | 2017-12-25 | 2018-06-08 | 杭州叙简科技股份有限公司 | 一种基于网络树的虚拟化mac地址防冲突方法和装置 |
CN108134856B (zh) * | 2017-12-25 | 2020-10-23 | 杭州叙简科技股份有限公司 | 一种基于网络树的虚拟化mac地址防冲突方法和装置 |
CN108632148B (zh) * | 2017-12-29 | 2020-06-16 | 西安电子科技大学 | 基于预读取方式的学习mac地址的装置及方法 |
CN108632148A (zh) * | 2017-12-29 | 2018-10-09 | 西安电子科技大学 | 基于预读取方式的学习mac地址的装置及方法 |
CN108307001A (zh) * | 2018-04-28 | 2018-07-20 | 深圳市风云实业有限公司 | Mac地址老化方法、装置及电子设备 |
CN108418759A (zh) * | 2018-05-31 | 2018-08-17 | 新华三技术有限公司 | 一种mac地址表项处理方法及装置 |
CN108418759B (zh) * | 2018-05-31 | 2020-09-08 | 新华三技术有限公司 | 一种mac地址表项处理方法及装置 |
CN108848034B (zh) * | 2018-07-17 | 2021-04-27 | 新华三技术有限公司 | 一种网络设备及表项学习方法 |
CN108848034A (zh) * | 2018-07-17 | 2018-11-20 | 新华三技术有限公司 | 一种网络设备及表项学习方法 |
CN109327462A (zh) * | 2018-11-14 | 2019-02-12 | 盛科网络(苏州)有限公司 | 一种基于l2vpn网络的mac地址认证方法 |
CN111107068A (zh) * | 2019-12-09 | 2020-05-05 | 江苏云涌电子科技股份有限公司 | 一种fpga高效规则匹配方法及终端 |
CN111107068B (zh) * | 2019-12-09 | 2021-03-09 | 江苏云涌电子科技股份有限公司 | 一种fpga高效规则匹配方法及终端 |
CN111355823B (zh) * | 2020-02-17 | 2023-04-07 | 杭州迪普科技股份有限公司 | Mac地址表项的老化处理方法和装置 |
CN111355823A (zh) * | 2020-02-17 | 2020-06-30 | 杭州迪普科技股份有限公司 | Mac地址表项的老化处理方法和装置 |
CN111343089A (zh) * | 2020-02-17 | 2020-06-26 | 烽火通信科技股份有限公司 | 解决mac地址hash冲突导致洪泛问题的方法及系统 |
CN112087388A (zh) * | 2020-08-17 | 2020-12-15 | 深圳市风云实业有限公司 | 一种l2数据报文的转发方法 |
CN112637072A (zh) * | 2020-12-23 | 2021-04-09 | 北京时代民芯科技有限公司 | 一种用于交换芯片地址存储及查找的快速并行电路及方法 |
CN113783636A (zh) * | 2020-12-29 | 2021-12-10 | 北京京东尚科信息技术有限公司 | 通信设备的测试方法、装置、介质及电子设备 |
CN112667867A (zh) * | 2020-12-31 | 2021-04-16 | 北京卓讯科信技术有限公司 | 一种基于tcam特征码的匹配冲突检查方法和设备 |
CN113904987A (zh) * | 2021-10-29 | 2022-01-07 | 西安微电子技术研究所 | 一种mac地址路由管理控制器、系统及控制方法 |
CN114785396A (zh) * | 2022-03-09 | 2022-07-22 | 西安电子科技大学 | 逻辑端口配置、查找映射及流量管理方法、系统及终端 |
CN114785396B (zh) * | 2022-03-09 | 2024-04-12 | 西安电子科技大学 | 逻辑端口配置、查找映射及流量管理方法、系统及终端 |
CN115118662A (zh) * | 2022-06-16 | 2022-09-27 | 浪潮思科网络科技有限公司 | 一种基于arp表的哈希冲突处理方法、系统、设备及介质 |
CN115334046A (zh) * | 2022-07-04 | 2022-11-11 | 超聚变数字技术有限公司 | 一种mac地址删除方法及装置 |
CN115334046B (zh) * | 2022-07-04 | 2023-09-01 | 超聚变数字技术有限公司 | 一种mac地址删除方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103731355B (zh) | 2017-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103731355B (zh) | 避免mac地址学习时哈希冲突的方法及系统 | |
CN107770076B (zh) | 一种哈希冲突的处理方法、装置及交换设备 | |
US10956194B2 (en) | Learning a MAC address in VXLAN | |
US20210367887A1 (en) | Flow classification apparatus, methods, and systems | |
CN101616466B (zh) | 一种自组网区域路由方法 | |
CN110808910B (zh) | 一种支持QoS的OpenFlow流表节能存储架构及其方法 | |
CN108134748B (zh) | 一种基于快速转发表项的丢包方法和装置 | |
CN101834788B (zh) | 媒体访问控制地址表项的存储操作方法、装置及设备 | |
CN106789859B (zh) | 报文匹配方法及装置 | |
US20200328914A1 (en) | Packet transmission | |
CN103368851A (zh) | 基于资源复用的Openflow流表存储优化方法 | |
CN103780490A (zh) | 一种更新路由查找树的方法及装置 | |
CN108418759B (zh) | 一种mac地址表项处理方法及装置 | |
CN103560957A (zh) | 查表键值构造方法、微码下发方法、装置及系统 | |
CN103581022A (zh) | Mac地址的查找转发方法和装置 | |
WO2012106916A1 (zh) | 哈希计算处理方法及装置 | |
CN111327717A (zh) | 一种mac地址学习方法及装置 | |
CN104252504B (zh) | 数据查询方法、设备和系统 | |
CN107070797B (zh) | 一种报文转发的方法及系统 | |
CN106416150B (zh) | 一种路由查询方法和网络设备 | |
CN106059810B (zh) | 一种消息通知方法及系统 | |
CN105323175A (zh) | 一种地址解析协议表的扩展方法和装置 | |
CN106470156B (zh) | 一种转发报文的方法和装置 | |
CN107409088B (zh) | 一种数据包转发方法和网络设备 | |
CN106878176B (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 |