更新转发表的方法、硬件加速器、OVS和服务器技术

技术编号:21340129 阅读:36 留言:0更新日期:2019-06-13 21:46
本申请公开了一种开放虚拟交换机OVS,该OVS包括通用处理器和硬件加速器,该硬件加速器上存储有保护缓存表和临时缓存表。该硬件加速器用于:解析报文以获取该报文的至少一个待匹配字段,该至少一个待匹配字段用于识别该报文所属的数据流;根据该至少一个待匹配字段查找该保护缓存表;当没有从该保护缓存表中找到该数据流对应的保护缓存表项时,根据该至少一个待匹配字段查找该临时缓存表得到该数据流对应的临时缓存表项;根据临时缓存表项转发该报文;统计该数据流的报文数;当该数据流的报文数大于设定的阈值时,根据该数据流对应的临时缓存表项更新该保护缓存表和该临时缓存表。

Method of Updating Forwarding Table, Hardware Accelerator, OVS and Server

This application discloses an open virtual switch OVS comprising a general purpose processor and a hardware accelerator, which stores a protected cache table and a temporary cache table. The hardware accelerator is used to parse a message to obtain at least one matched field of the message, which is used to identify the data stream to which the message belongs, to find the protection cache table according to the at least one matched field, and to look up the corresponding protection cache table item of the data stream according to the at least one matched field when the corresponding protection cache item of the data stream is not found from the protection cache table. Find the temporary cache table to get the temporary cache table entries corresponding to the data stream; forward the message according to the temporary cache table entries; count the number of messages in the data stream; update the protected cache table and the temporary cache table according to the temporary cache table entries corresponding to the data stream when the number of messages in the data stream exceeds the set threshold.

【技术实现步骤摘要】
更新转发表的方法、硬件加速器、OVS和服务器
本申请涉及通信领域,尤其涉及一种一种更新转发表的方法以及实现所述方法的硬件加速器、开放虚拟交换机和服务器。
技术介绍
随着物联网发展、大数据汇聚、数据中心兴起,网络流量带宽越来越大,提高用于实现网络流量交换的网络交换设备的转发效率变得越来越重要。支持开放流(OpenFlow)协议的开放虚拟交换机(openvswitch,OVS)用于在开源的虚拟化平台中执行网络交换设备的功能,因此,同样需要提高OVS的转发速率。
技术实现思路
本申请实施例提供了一种更新转发表的方法、硬件加速器、OVS和服务器,用于提高OVS的转发效率。本专利技术第一方面提供了一种更新转发表的方法。该方法应用于开放虚拟交换机OVS中,所述OVS包括处理器和硬件加速器,所述硬件加速器上存储有保护缓存表和临时缓存表,所述保护缓存表用于存储大象流对应的转发表项,所述临时缓存表用于存储非大象流对应的转发表项。所述硬件加速器接收第一报文,解析所述第一报文以获取所述第一报文的至少一个待匹配字段,所述至少一个待匹配字段用于识别所述第一报文所属的第一数据流。所述硬件加速器根据所述第一报文的至少一个待匹配字段查找所述保护缓存表;当没有从所述保护缓存表中找到所述第一数据流对应的保护缓存表项时,所述硬件加速器根据所述第一报文的至少一个待匹配字段查找所述临时缓存表得到所述第一数据流对应的临时缓存表项。所述硬件加速器根据所述第一数据流对应的临时缓存表项转发所述第一报文。所述硬件加速器统计所述第一数据流的报文数,并确定所述第一数据流的报文数是否大于设定的阈值。当所述第一数据流的报文数大于设定的阈值时,所述硬件加速器根据所述第一数据流对应的临时缓存表项更新所述保护缓存表和所述临时缓存表。本专利技术实施例中,将用于存储大象流的转发表项的保护缓存表存储在硬件加速器上,使得属于大象流的报文不经过处理器就被转发,提高了大象流的处理效率。进一步地,本专利技术实施例中,通过在临时缓存表中记录非大象流的转发表项,并统计临时缓存表中记录的数据流的报文数,可以准确识别大象流。故本申请实施例提供的硬件加速器和更新转发表的方法可以提高OVS的转发效率。在第一方面的第一实施方式中,所述硬件加速器根据所述第一数据流对应的临时缓存表项更新所述保护缓存表和所述临时缓存表包括:所述硬件加速器将所述第一数据流对应的临时缓存表项写入所述保护缓存表作为所述第一数据流对应的保护缓存表项;以及所述硬件加速器从所述临时缓存表中删除所述临时缓存表项。通过上述方式,使用保护缓存表存储大象流,使用临时缓存表存储非大象流,并且一旦将临时缓存表中的表项写入保护缓存表,就删除临时缓存表中的相应表项,可以节约硬件加速器的存储空间。在第一方面的第二实施方式中,所述硬件加速器还接收第二报文;所述第二报文为所述第一数据流的后续报文。所述硬件加速器解析所述第二报文以获取所述第二报文的至少一个待匹配字段。所述硬件加速器根据所述第二报文的至少一个待匹配字段查找所述保护缓存表得到所述第一数据流对应的保护缓存表项。所述硬件加速器根据所述第一数据流对应的保护缓存表项转发所述第二报文。通过上述方式,当保护缓存表中存储有大象流对应的表项时,硬件加速器可以直接根据该表项转发属于该大象流的报文,提高了OVS的转发效率。在第一方面的第三实施方式中,当满足预设条件时,所述硬件加速器从所述保护缓存表中删除所述第一数据流对应的保护缓存表项;所述预设条件为以下任意一个:所述第一数据流对应的保护缓存表项为所述保护缓存表中被最早写入的表项;所述第一数据流对应的保护缓存表项为所述保护缓存表中最长时间未被使用的表项;所述第一数据流对应的保护缓存表项为所述保护缓存表中设定时长内被使用次数最少的表项。通过上述方式,硬件加速器实时更新保护缓存表的表项,使保护缓存表中始终记录最新最活跃的大象流,最大限度提高保护缓存表的命中率,提高OVS的效率。在第一方面的第四实施方式中,所述从所述保护缓存表中删除所述第一数据流对应的保护缓存表项之前,所述硬件加速器将所述第一数据流对应的保护缓存表项重新写入所述临时缓存表,作为所述第一数据流的临时缓存表项。进一步地,硬件加速器还可以为该第一数据流设置一个较大的初始计数。通过上述方式,当硬件加速器再次接收到该第一数据流的后续报文时,可以很快将该第一数据流再次确认为大象流,并将该第一数据流对应的临时缓存表项再次写入保护缓存表。在第一方面的第五实施方式中,所述硬件加速器提供N个哈希函数,N大于等于2,所述硬件加速器统计所述第一数据流的报文数包括:所述硬件加速器将所述至少一个待匹配字段分别应用于所述N个哈希函数得到N个哈希值,所述N个哈希值中每个哈希值分别对应N个计数器中的一个计数器,所述硬件加速器根据所述第一报文的至少一个匹配字段将所述N个计数器的值分别加1,得到更新后的N个计数器的值,将所述更新后的N个计数器的值的最小值作为所述第一数据流的报文数。通过上述方式,硬件加速器可以精确统计第一数据流的报文数,并识别出大象流。在第一方面的第六实施方式中,所述硬件加速器接收第三报文;所述硬件加速器解析所述第三报文以获取所述第三报文的至少一个待匹配字段;所述至少一个待匹配字段用于识别所述第三报文所属的第二数据流。所述硬件加速器根据所述第三报文的至少一个待匹配字段查找所述保护缓存表;当所述保护缓存表中不存在所述第二数据流对应的保护缓存表项时,所述硬件加速器查找所述临时缓存表;当所述临时缓存表中不存在所述第二数据流对应的临时缓存表项时,所述硬件加速器向所述处理器发送所述第三报文的至少一个待匹配字段;所述硬件加速器接收所述处理器根据所述第三报文的至少一个待匹配字段生成的所述第二数据流对应的临时缓存表项;所述硬件加速器将所述第二数据流对应的临时缓存表项添加到所述临时缓存表。通过上述方式,本专利技术实施例可以将最近处理的数据流对应的临时缓存表项添加到临时缓存表中,以根据该临时缓存表项转发该最近处理的数据流的报文,避免将该数据流的所有报文都发送给处理器处理,提高了报文处理效率。本专利技术第二方面提供了一种硬件加速器,该硬件加速器包括缓存,用于存储保护缓存表和临时缓存表,所述保护缓存表用于存储大象流的转发表项,所述临时缓存表用于存储非大象流的转发表项。所述硬件加速器还包括:接收电路,用于接收第一报文;解析电路,用于解析所述第一报文以获取所述第一报文的至少一个待匹配字段,所述至少一个待匹配字段用于识别所述第一报文所属的第一数据流;查找电路,用于根据所述第一报文的至少一个待匹配字段查找所述保护缓存表;当没有从所述保护缓存表中找到所述第一数据流对应的保护缓存表项时,根据所述第一报文的至少一个待匹配字段查找所述临时缓存表得到所述第一数据流对应的临时缓存表项;发送电路,用于根据所述第一数据流对应的临时缓存表项转发所述第一报文;计数电路,用于:统计所述第一数据流的报文数,确定所述第一数据流的报文数是否大于设定的阈值,当所述第一数据流的报文数大于设定的阈值时,触发所述缓存;所述缓存,还用于在所述计数电路的触发下所述根据所述第一数据流对应的临时缓存表项更新所述保护缓存表和所述临时缓存表。在第二方面的第一实施方式中,所述缓存用于:将所述第一数据流对应的临本文档来自技高网...

【技术保护点】
1.一种更新转发表的方法,其特征在于,应用于开放虚拟交换机OVS中,所述OVS包括处理器和硬件加速器,所述硬件加速器上存储有保护缓存表和临时缓存表,所述保护缓存表用于存储大象流对应的转发表项,所述临时缓存表用于存储非大象流对应的转发表项;所述方法包括:所述硬件加速器接收第一报文;所述硬件加速器解析所述第一报文以获取所述第一报文的至少一个待匹配字段,所述至少一个待匹配字段用于识别所述第一报文所属的第一数据流;所述硬件加速器根据所述第一报文的至少一个待匹配字段查找所述保护缓存表;当没有从所述保护缓存表中找到所述第一数据流对应的保护缓存表项时,所述硬件加速器根据所述第一报文的至少一个待匹配字段查找所述临时缓存表得到所述第一数据流对应的临时缓存表项;所述硬件加速器根据所述第一数据流对应的临时缓存表项转发所述第一报文;所述硬件加速器统计所述第一数据流的报文数;所述硬件加速器确定所述第一数据流的报文数是否大于设定的阈值;当所述第一数据流的报文数大于设定的阈值时,所述硬件加速器根据所述第一数据流对应的临时缓存表项更新所述保护缓存表和所述临时缓存表。

【技术特征摘要】
1.一种更新转发表的方法,其特征在于,应用于开放虚拟交换机OVS中,所述OVS包括处理器和硬件加速器,所述硬件加速器上存储有保护缓存表和临时缓存表,所述保护缓存表用于存储大象流对应的转发表项,所述临时缓存表用于存储非大象流对应的转发表项;所述方法包括:所述硬件加速器接收第一报文;所述硬件加速器解析所述第一报文以获取所述第一报文的至少一个待匹配字段,所述至少一个待匹配字段用于识别所述第一报文所属的第一数据流;所述硬件加速器根据所述第一报文的至少一个待匹配字段查找所述保护缓存表;当没有从所述保护缓存表中找到所述第一数据流对应的保护缓存表项时,所述硬件加速器根据所述第一报文的至少一个待匹配字段查找所述临时缓存表得到所述第一数据流对应的临时缓存表项;所述硬件加速器根据所述第一数据流对应的临时缓存表项转发所述第一报文;所述硬件加速器统计所述第一数据流的报文数;所述硬件加速器确定所述第一数据流的报文数是否大于设定的阈值;当所述第一数据流的报文数大于设定的阈值时,所述硬件加速器根据所述第一数据流对应的临时缓存表项更新所述保护缓存表和所述临时缓存表。2.根据权利要求1所述的方法,其特征在于,所述硬件加速器根据所述第一数据流对应的临时缓存表项更新所述保护缓存表和所述临时缓存表包括:所述硬件加速器将所述第一数据流对应的临时缓存表项写入所述保护缓存表作为所述第一数据流对应的保护缓存表项;以及所述硬件加速器从所述临时缓存表中删除所述临时缓存表项。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:所述硬件加速器接收第二报文;所述第二报文为所述第一数据流的后续报文;所述硬件加速器解析所述第二报文以获取所述第二报文的至少一个待匹配字段;所述硬件加速器根据所述第二报文的至少一个待匹配字段查找所述保护缓存表得到所述第一数据流对应的保护缓存表项;所述硬件加速器根据所述第一数据流对应的保护缓存表项转发所述第二报文。4.根据权利要求1-3中任意一项所述的方法,其特征在于,所述方法还包括:当满足预设条件时,所述硬件加速器从所述保护缓存表中删除所述第一数据流对应的保护缓存表项;所述预设条件为以下任意一个:所述第一数据流对应的保护缓存表项为所述保护缓存表中被最早写入的表项;所述第一数据流对应的保护缓存表项为所述保护缓存表中最长时间未被使用的表项;所述第一数据流对应的保护缓存表项为所述保护缓存表中设定时长内被使用次数最少的表项。5.根据权利要求4所述的方法,其特征在于,所述从所述保护缓存表中删除所述第一数据流对应的保护缓存表项之前,所述方法还包括:所述硬件加速器将所述第一数据流对应的保护缓存表项重新写入所述临时缓存表,作为所述第一数据流的临时缓存表项。6.根据权利要求1-5中任意一项所述的方法,其特征在于,所述硬件加速器提供N个哈希函数,N大于等于2,所述硬件加速器统计所述第一数据流的报文数包括:所述硬件加速器将所述至少一个待匹配字段分别应用于所述N个哈希函数得到N个哈希值,所述N个哈希值中每个哈希值分别对应N个计数器中的一个计数器,所述硬件加速器根据所述第一报文的至少一个匹配字段将所述N个计数器的值分别加1,得到更新后的N个计数器的值,将所述更新后的N个计数器的值的最小值作为所述第一数据流的报文数。7.根据权利要求1-6中任意一项所述的方法,其特征在于,所述方法还包括:所述硬件加速器接收第三报文;所述硬件加速器解析所述第三报文以获取所述第三报文的至少一个待匹配字段;所述至少一个待匹配字段用于识别所述第三报文所属的第二数据流;所述硬件加速器根据所述第三报文的至少一个待匹配字段查找所述保护缓存表;当所述保护缓存表中不存在所述第二数据流对应的保护缓存表项时,所述硬件加速器查找所述临时缓存表;当所述临时缓存表中不存在所述第二数据流对应的临时缓存表项时,所述硬件加速器向所述处理器发送所述第三报文的至少一个待匹配字段;所述硬件加速器接收所述处理器根据所述第三报文的至少一个待匹配字段生成的所述第二数据流对应的临时缓存表项;所...

【专利技术属性】
技术研发人员:汪波魏明胡新宇陈锐曹倩
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1