[发明专利]一种计算最长前缀匹配LPM规则索引的hash方法有效
申请号: | 202110267003.1 | 申请日: | 2021-03-11 |
公开(公告)号: | CN112905597B | 公开(公告)日: | 2022-02-11 |
发明(设计)人: | 王娜;张远超;陈盈安;卢笙 | 申请(专利权)人: | 芯启源(南京)半导体科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22 |
代理公司: | 南京新慧恒诚知识产权代理有限公司 32424 | 代理人: | 王皎 |
地址: | 210046 江苏省南京市南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 计算 最长 前缀 匹配 lpm 规则 索引 hash 方法 | ||
1.一种计算最长前缀匹配LPM规则索引的hash方法,其特征在于,包括以下步骤:S1、保证每个存储LPM规则的存储单元的存储结构相同,每个存储单元可存储2n条规则,即每个存储单元通过n个比特确定规则在该存储单元的位置,且对每个存储单元标记其初始所存储的LPM规则的长度;S2、当LPM规则长度L超过n时,将以前n个比特为基准,向后逐位做异或运算,循环往复,直到运算出LPM指定长度的hash值,并对该hash值进行存储;所述步骤S2具体步骤如下,S2.1、将n赋值与m;S2.2、hash值为LPM规则的前n位;S2.3、将hash值与LPM规则的第m+1位相结合,即将该hash值作为前n位,将LPM规则的第m+1位作为第n+1位,结合成一个长度为n+1的组合;S2.4、将该组合的前n位分别与该组合的第2位到第n+1位逐位进行异或操作,得到LPM规则在第m+1位的hash值,并将该hash值作为LPM规则的hash值,并进行存储;S2.5、m+1赋值与m;S2.6、判断m是否大于L,S2.7、若m大于L,则结束;S2.8、若m小于L,则重复S2.3-S2.7;S3、当LPM规则长度L不超过n时,该LPM规则的hash值为该LPM规则的前L位,并对该hash值进行存储。
2.根据权利要求1所述的一种计算最长前缀匹配LPM规则索引的hash方法,其特征在于,所述步骤S1中,当存储单元的初始存储的LPM规则的长度不超过n个比特时,则对该存储单元进行特殊标记,且存储入该存储单元的LPM规则的长度不能超过n个比特。
3.根据权利要求2所述的一种计算最长前缀匹配LPM规则索引的hash方法,其特征在于,所述步骤S1中,当存储单元的初始存储的LPM规则的长度超过n个比特时,则将首次存储入该存储单元的LPM规则的长度L标记为W,且该存储单元仅能存储LPM规则的长度L大于或等于W的LPM规则,用于保证hash值对应存储单元地址的唯一性。
4.根据权利要求1所述的一种计算最长前缀匹配LPM规则索引的hash方法,其特征在于,所述步骤S3具体步骤如下,S3.1、判断LPM规则长度L是否不超过n;S3.2、若L不超过n,则该LPM规则的hash值为该LPM规则的前L位;S3.3、将n与L的差值赋值与i;S3.4、存储地址address为hash值左移i位,且以该存储地址address值为起始位置,迭代器初始值k=0;S3.5、判断k是否小于1向左偏移i个比特的结果;S3.6、若k小于1向左偏移i个比特的结果,则判断address+k是否被占用;S3.7、若address+k未被占用,则直接存储该LPM规则;S3.8、若address+k被占用,则LPM规则与原地址上的LPM规则进行长度对比;S3.9、若LPM规则长度L大于原地址上的LPM规则L1,则LPM规则覆盖原地址上的LPM规则;S3.10、若LPM规则长度L不大于原地址上的LPM规则L1,则不覆盖;S3.11、将k+1赋值于k;S3.12、重复S3.5-S3.11;S3.13、若k不小于1向左偏移i个比特的结果,则结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于芯启源(南京)半导体科技有限公司,未经芯启源(南京)半导体科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110267003.1/1.html,转载请声明来源钻瓜专利网。