[发明专利]基于哈希表和TCAM表的MAC地址硬件学习方法及系统有效

专利信息
申请号: 201310055657.3 申请日: 2013-02-21
公开(公告)号: CN103117931A 公开(公告)日: 2013-05-22
发明(设计)人: 周万涛;徐剑辉 申请(专利权)人: 烽火通信科技股份有限公司
主分类号: H04L12/741 分类号: H04L12/741;H04L29/12
代理公司: 北京捷诚信通专利事务所(普通合伙) 11221 代理人: 魏殿绅;庞炳良
地址: 430074 湖北省武*** 国省代码: 湖北;42
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种基于哈希表和TCAM表的MAC地址硬件学习方法及系统,涉及MAC地址学习领域,本发明在没有MAC地址冲突的时候,使用哈希表来存储学习到的MAC地址,哈希表硬件上用SRAM或者DRAM来实现;存在MAC地址冲突时,使用TCAM表来缓存冲突的MAC地址,TCAM表硬件上采用TCAM存储器来实现,由于TCAM硬件上是并行查找,一次搜索即可定位空闲表项,而且TCAM的表项个数就是实际能缓存的冲突的MAC地址个数。本发明在通用的可编程交换芯片上实现,不需专用硬件电路的支持,学习速率较高,占用的内存资源较少,采用通用的算法,应用灵活,能实现冲突概率完全可控。
搜索关键词: 基于 哈希表 tcam mac 地址 硬件 学习方法 系统
【主权项】:
一种基于哈希表和TCAM表的MAC地址硬件学习方法,其特征在于,包括以下步骤:S1、以报文所属的虚拟转发实例号和源MAC地址计算哈希值,并以哈希值为索引搜索哈希表;S2、组织搜索TCAM表项的键值:虚拟转发实例号为报文所属的虚拟转发实例号;MAC地址为报文的源MAC地址;表项满标志置1,表示在已经学习到的TCAM表项中进行搜索;S3、判断TCAM表项数据中有效标志是否置位,如果置位,则转到S4;否则,转到S6;S4、比较TCAM表项数据中虚拟交换端口是否等于报文接收虚拟交换端口,如果是,则表项不需要更新,转到S15;否则,表示TCAM表项需要更新,转到S5;S5、更新当前TCAM表项数据中虚拟交换端口为报文实际接收虚拟交换端口,转到S15;S6、判断哈希表中数据有效标志是否置位,如果置位,则转到S8;否则,转到S7;S7、将报文源MAC地址、报文所属虚拟转发实例号和报文接收的虚拟交换端口存储到当前哈希表项中,表项有效标志置1,转到S15;S8、比较哈希表中虚拟转发实例号和MAC地址是否和报文所属的虚拟转发实例号及源MAC地址相匹配,如果匹配,则表示当前地址已经在哈希表中学到过,转到S9;否则,转到S11;S9、比较当前哈希表中虚拟交换端口是否等于报文实际接收虚拟交换端口,如果相等,则哈希表项不需要更新,转到S15;否则,转 到S10;S10、更新当前哈希表项中的虚拟转发端口号为报文实际接收虚拟端口号,转到S15;S11、产生哈希冲突,组织搜索TCAM表项的键值以寻找空闲TCAM表项缓存冲突:键值中虚拟转发实例号为0,MAC地址为0,表项满标志为0,表示在空闲TCAM表项中进行搜索;S12、判断TCAM数据中有效标志是否置位,如果置位,表示找到第一个空闲表项,转到S14;否则,转到S13;S13、TCAM存储器没有空闲表项,放弃学习,转到S15;S14、将MAC地址缓存到当前空闲TCAM表项中:键值的虚拟转发实例号填写为报文所属虚拟转发实例号,掩码置1;MAC地址填写为报文的源MAC地址,掩码置1;表项满标志置1,掩码置1;数据中虚拟交换端口填写为报文实际接收虚拟交换端口,转到S15;S15、MAC地址硬件学习流程结束。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201310055657.3/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top