利用可变关键字大小的精确匹配查找的方法及设备技术

技术编号:12664643 阅读:58 留言:0更新日期:2016-01-07 02:15
在一种用于在网络设备中执行精确匹配查找的方法中,在该网络设备接收网络分组。至少基于所接收到的网络分组的报头中所包括的数据确定用于该网络分组的查找关键字。至少基于该查找关键字的大小从多个可能散列函数中选择一个散列函数,并且使用所选择的散列函数对该查找关键字执行散列操作以计算散列查找关键字分段。使用该散列查找关键字分段来查询数据库以提取出精确地对应于该查找关键字的数值。

【技术实现步骤摘要】
【国外来华专利技术】【专利说明】利用可变关键字大小的精确匹配查找相关串请的交叉引用本申请要求于2013年4月11日提交的题为“Exact Match with Variable KeySizes”的美国临时申请N0.61/811011以及于2014年I月2日提交的题为“Exact Matchwith Variable Key Sizes”的美国临时申请N0.61/923093的权益,其公开通过引用结合于此。本申请涉及于2012年8月31日提交的题为“Method and Apparatus For TCAMBased Lookup”的美国专利申请N0.13/966962,于2013年I月9日提交的题为“Exact MatchLookup In Network Switch Device” 的美国专利申请 N0.13/737608,以及于 2013 年 8 月28 日提交的题为“Exact Match Hash Lookup Databases in Network Switch Devices”的美国专利申请N0.14/012834,上述申请的公开通过引用结合于此。
本公开总体上涉及网络设备,更特别地涉及网络设备中的精确匹配查找。
技术介绍
诸如网络交换机、桥接器、路由器、边缘设备等的网络设备经常采用存储与该网络设备所处理的分组相关联的各种类型的信息的查找表。该网络设备在处理分组时经常在查找表中执行搜索/查找以作出各种处理决策或确定(例如,对分组归类,要将分组转发至哪个端口,等等)。通常,针对分组的查找根据与该分组相关联的关键字来执行。该关键字通常包括来自该分组的报头的信息,而且有时包括可能并未包括在报头中的其它信息,诸如进入接口。该关键字例如被用来搜索表格,并且有关该分组的信息(例如,该分组的转发信息或者指示一些其它动作的信息)从被该关键字所标识的表格条目所获取。一些查找表使用内容可寻址存储器(CAM)(例如,三元CAM(TCAM)),其一般被用于“屏蔽”搜索/查找。然而,近年来,网络设备越来越多地开始执行“精确匹配”查找。虽然基于CAM的表格可以被用于精确匹配查找,但是与基于随机访问存储器(RAM)的表格一诸如使用静态RAM(SRAM)所实施的表格一相比,它们通常对于这样的查找不太有效(例如,在面积和功耗方面)。精确匹配查找目前被用来执行任意多种不同的分组处理操作,诸如分组归类、作出转发或路由决策、服务质量归类、策略控制列表应用、隧道终止操作等。此外,由于各种各样的可能处理操作,精确匹配查找可能要去使用具有不同关键字大小的多种不同类型的关键字。例如,典型地,基于介质访问控制(MAC)地址和虚拟局域网(VLAN)标识符的桥接查找使用60位的关键字,而针对IPv4地址的查找使用32位的关键字,针对IPv6地址的路由的查找则使用128位的关键字,等等。为了应对各种关键字大小,一些常规的网络设备将所有较短关键字补充为最大的所支持关键字大小的位长度,或者提供存储在不同存储器中的单独查找表,其中每个表格仅由单一固定大小的关键字进行索引。然而,这两种技术通常在存储器资源的利用方面都是低效的,这最终会增大电路面积和/或功耗。例如,就前者的技术而言,即使相对短的关键字也占据与长关键字相同数量的查找表存储器。此外,由于每个表格/关键字大小将需要的条目数量和/或关键字大小的分布通常并非是事先已知的,所以使用后者的技术的系统设计人员通常无法确定将有效利用查找存储器资源的每查找表/关键字大小的条目数量。
技术实现思路
在一个实施例中,一种用于在网络设备中执行精确匹配查找的方法,包括在该网络设备接收网络分组;至少基于所接收到的网络分组的报头中所包括的数据确定该网络分组的查找关键字;至少基于该查找关键字的大小从多个可能散列函数中选择一个散列函数;使用所选择的散列函数对该查找关键字执行散列操作以计算散列查找关键字分段;并且使用该散列查找关键字分段来查询数据库以提取出精确地对应于该查找关键字的数值。在另一个实施例中,一种网络设备包括多个接口、存储数据库的查找存储器、以及耦合至该多个接口的分组处理器。该分组处理器被配置为对经由该多个接口中的至少一些所接收的网络分组进行处理,并且包括关键字生成单元,关键字生成单元被配置为至少基于所接收到的网络分组的报头中所包括的数据确定经由该多个接口之一所接收到的网络分组的查找关键字。该分组处理器还包括关键字搜索单元,其被配置为至少基于该查找关键字的大小从多个可能散列函数中选择一个散列函数,使用所选择的散列函数对该查找关键字执行散列操作以计算散列查找关键字分段,并且使用该散列查找关键字分段来查询数据库以提取出精确地对应于该查找关键字的数值。在另一个实施例中,一种用于在网络设备中执行精确匹配查找的方法,包括在该网络设备接收网络分组;至少基于所接收到的网络分组的报头中所包括的数据确定该网络分组的查找关键字;使用两个或更多散列函数对该查找关键字执行两个或更多散列操作以计算两个或更多散列查找关键字分段;并且使用该两个或更多散列关键字分段来查询在两个或更多存储器组之间进行分布的数据库以提取出精确地对应于该查找关键字的数值。查询该数据库包括使用该两个或更多散列查找关键字分段来访问该两个或更多存储器组以标识两个或更多匹配分段;获取与该两个或更多匹配分段中的至少一个相关联的至少一个指针;并且使用该至少一个指针将匹配分段中的至少两个进行组合以标识该数据库中的匹配条目,精确地对应于该查找关键字的数值是与该匹配条目相关联的数值。在另一个实施例中,一种网络设备包括多个接口、存储在两个或更多存储器组之间进行分布的数据库的查找存储器,以及耦合至该多个接口的分组处理器。该分组处理器被配置为对经由该多个接口中的至少一些所接收的网络分组进行处理。该分组处理器包括关键字生成单元和关键字搜索单元,关键字生成单元被配置为至少基于所接收到的网络分组的报头中所包括的数据确定经由该多个接口之一所接收到的网络分组的查找关键字。该关键字搜索单元被配置为使用两个或更多散列函数对该查找关键字执行两个或更多散列操作以计算两个或更多散列查找关键字分段,并且使用该两个或更多散列关键字分段来查询该数据库以提取出精确地对应于该查找关键字的数值。该关键字搜索单元被配置为至少通过使用该两个或更多散列查找关键字分段来访问该两个或更多存储器组以标识两个或更多匹配分段,获取与该两个或更多匹配分段中的至少一个相关联的至少一个指针,并且使用该至少一个指针将匹配分段中的至少两个进行组合以标识该数据库中的匹配条目来查询该数据库,精确地对应于该查找关键字的数值是与该匹配条目相关联的数值。在另一个实施例中,一种用于在网络设备中填充精确匹配查找表的方法,包括确定要存储在该网络设备的数据库中的查找关键字,该数据库在两个或更多存储器组之间进行分布。该方法还包括至少基于该查找关键字的大小(i)从该两个或更多存储器组之间选择第一存储器组,并且(ii)从多个可能散列函数中选择一个散列函数,使用所选择的散列函数对该查找关键字执行散列操作以计算第一散列查找关键字分段,将该第一散列查找关键字分段存储在所选择的第一存储器组中,并且将对应于该查找关键字的一个或多个散列查找关键字分段存储在该两个或更多存储器组中本文档来自技高网
...

【技术保护点】
一种用于在网络设备中执行精确匹配查找的方法,所述方法包括:在所述网络设备接收网络分组;至少基于所接收到的网络分组的报头中所包括的数据确定用于所述网络分组的查找关键字;至少基于所述查找关键字的大小从多个可能散列函数中选择一个散列函数;使用所选择的散列函数对所述查找关键字执行散列操作以计算散列查找关键字分段;并且使用所述散列查找关键字分段来查询数据库以提取出精确地对应于所述查找关键字的数值。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:G·勒韦C·阿拉德
申请(专利权)人:马维尔以色列MISL有限公司
类型:发明
国别省市:以色列;IL

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1