当前位置: 首页 > 专利查询>清华大学专利>正文

可编程数据平面虚拟层构建方法及存储介质技术

技术编号:18501131 阅读:46 留言:0更新日期:2018-07-21 22:22
本发明专利技术公开了一种可编程数据平面虚拟层构建方法以及可编程数据层,可编程数据平面虚拟层构建方法包括构建包括多个虚拟化匹配动作表和多个虚拟化控制逻辑的平面虚拟层;其中,虚拟化控制逻辑和虚拟化匹配动作表可根据第一预设方式被配置为多个网络功能,多个网络功能可根据第二预设方式被配置为多个虚拟化可编程数据平面。本发明专利技术实现了在现有硬件资源下同时运行多个程序,不需通过重新编程及导入过程即可实现网络功能的动态更新以及网络功能处理顺序的修改,提高可编程数据平面的灵活性和资源利用率,且更好的应对网络数据包处理日益复杂的环境要求。

Programmable data plane virtual layer construction method and storage medium

The invention discloses a programmable data plane virtual layer construction method and the programmable data layer. The method of constructing the programmable data plane virtual layer includes building a plane virtual layer including multiple virtualization matching action tables and multiple virtualization control logic, in which the virtualization control logic and the virtualization matching action table can be rooted. According to the first preset mode, it is configured as multiple network functions, and multiple network functions can be configured into multiple virtualized programmable data planes according to the second preset mode. This invention can run multiple programs at the same time with the existing hardware resources, without the reprogramming and importing process, the dynamic update of network function and the modification of network function processing order can be realized, the flexibility and resource utilization of the programmable data plane can be improved, and the network data packet processing is more and more complex. Miscellaneous environmental requirements.

【技术实现步骤摘要】
可编程数据平面虚拟层构建方法及存储介质
本专利技术属于网络
,具体涉及一种可编程数据平面虚拟层构建方法及内部存储有可编程数据平面虚拟层的存储介质。
技术介绍
可编程数据平面架构是一种协议无关的可重配置的数据平面架构,现有的网络设备制造商和网络管理员基于可编程数据平面架构可对网络设备芯片进行编程,定制实现多种多样功能的网络协议以及数据包处理功能,以适应不同的网络环境需求。但随着网络的不断发展,协议无关的数据包处理器编程语言实现的网络功能不断复杂化,从而使得现有的可编程数据平面存在如下问题:1、一旦将程序编译并载入可编程路由交换设备后,就无法动态地修改该设备的数据包处理功能,因此使得该设备的网络功能无法被动态更新;2、程序无法动态地根据实时的策略调整网络功能的处理顺序,若需修改网络功能的处理顺序,必须重新修改程序并加载到网络设备中;3、网络硬件设备有限,无法在有限的硬件资源下运行多个程序。现在亟须一种可动态更新网络功能以及网络功能的排列顺序、并可实现在有限的网络硬件设备运行多个程序的可编程数据“平面”。
技术实现思路
本专利技术所要解决的技术问题是现有的可编程数据平面无法动态更新网络功能和网络功能的排列顺序、且无法在在有限的网络硬件设备上运行多个程序。为了解决上述技术问题,本专利技术提供了一种可编程数据平面虚拟层构建方法,包括:构建包括多个虚拟化匹配动作表和多个虚拟化控制逻辑的平面虚拟层;其中,所述虚拟化控制逻辑和虚拟化匹配动作表可根据第一预设方式被配置为多个网络功能,多个所述网络功能可根据第二预设方式被配置为多个虚拟化可编程数据平面。优选地,每个所述虚拟化可编程数据平面内部所述网络功能不同或所述网络功能排列顺序不同。优选地,可编程数据平面虚拟层构建方法还包括:在所述平面虚拟层中构建虚拟化快速解析器,以用于对数据包进行解析并将解析后的数据包传送给对应的所述虚拟化可编程数据平面。优选地,所述虚拟化快速解析器对所述数据包的解析及发送步骤包括:对所述数据包的描述头信息进行解析,以得到虚拟化可编程数据平面序列号以及数据包头长度信息;根据所述数据包头长度信息获取所述数据包的数据包头,并将所述数据包头发送给与所述虚拟化可编程数据平面序列号对应的虚拟化可编程数据平面。优选地,所述网络功能的配置步骤包括:获取与待配置网络功能对应的所述虚拟化控制逻辑和所述虚拟化匹配动作表;根据第一预设方式将所述虚拟化控制逻辑和所述虚拟化匹配动作表配置为网络功能。优选地,根据第一预设方式将所述虚拟化控制逻辑和所述虚拟化匹配动作表配置为网络功能的步骤包括:待配置网络功能的首个虚拟化控制逻辑中的首端配置表根据第一预设方式获取虚拟化匹配动作表位图以及待配置网络功能的序列号;在每个与所述虚拟化匹配动作表位图对应的虚拟化匹配动作表前设置虚拟化匹配动作表位图检测点,以用于检测所对应的虚拟化匹配动作表是否会被执行;在所述虚拟化匹配动作表位图末端设置末端配置表,以用于检测数据包是否被执行完成;重复上述步骤,依次对待配置网络功能的其他虚拟化控制逻辑进行配置,直至所述网络功能配置完成。优选地,所述虚拟化匹配动作表对数据包的处理步骤包括:判断所述数据包头是否符合判断条件;将符合所述判断条件的数据包头与匹配域进行匹配,输出相应的匹配结果和动作位图;根据所述匹配结果和所述动作位图对所述数据包头进行处理。优选地,所述可编程数据平面虚拟层构建于硬件可编程数据平面上。根据本专利技术的另一个方面,提供了一种存储介质,其存储有可编程数据平面虚拟层,所述可编程数据平面虚拟层包括:多个匹配动作表和多个控制逻辑,用于根据第一预设方式配置网络功能,且配置的网络功能可根据第二预设方式配置可编程数据平面;其中,所述虚拟化可编程数据平面用于对数据包进行处理。优选地,可编程数据层还包括虚拟化快速解析器,所述虚拟化快速解析器用于对数据包进行解析,并将解析后的数据包传送给对应所述虚拟化可编程数据平面。。与现有技术相比,上述方案中的一个或多个实施例可以具有如下优点或有益效果:应用本专利技术实施例提供的可编程数据平面虚拟层构建方法,通过构建包括多个虚拟化匹配动作表和多个虚拟化控制逻辑的平面虚拟层,来使得平面虚拟层具有构建多种网络功能,以及网络功能在平面虚拟层中根据要求任意结合排序,形成多个不同的虚拟化可编程数据平面的功能,即使得所构建的平面虚拟层可包括多个可编程数据平面,以满足在现有硬件资源下同时运行多个程序的要求;同时网络功能的构建以及虚拟化可编程数据平面均可根据管理员的设置进行配置,即管理员可根据待处理数据包内的数据类型以及对数据包的处理要求来配置对数据包进行处理的网络功能以及网络功能的处理顺序,不需通过重新编程及导入过程即可实现网络功能的动态更新以及网络功能处理顺序的修改,提高可编程数据平面的灵活性和资源利用率,且更好的应对网络数据包处理日益复杂的环境要求。本专利技术的其它特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例共同用于解释本专利技术,并不构成对本专利技术的限制。在附图中:图1示出了本专利技术实施例一可编程数据平面虚拟层构建方法的流程图;图2示出了虚拟化快速解析器将数据包的数据包头发送给虚拟化可编程数据平面的示意图;图3示出了虚拟化匹配动作表的一个动作位图示意图;图4示出了本专利技术构建的可编程数据平面虚拟层对数据包的处理流程示意图;图5示出了本专利技术构建的可编程数据平面虚拟层对数据包的处理过程示意图。具体实施方式以下将结合附图及实施例来详细说明本专利技术的实施方式,借此对本专利技术如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本专利技术中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本专利技术的保护范围之内。可编程数据平面架构是一种与协议无关的可重配置的数据平面架构,用于对网络设备芯片进行编程,以实现多种多样功能的网络协议以及数据包处理功能,适应不同的网络环境需求。但现有的可编程数据平面存在有如下问题:将程序编译并载入可编程路由交换设备后,就无法动态地修改该设备的数据包处理功能;程序无法动态地根据实时的策略调整网络功能的处理顺序,必须重新修改程序并加载到网络设备中;无法在有限的硬件资源下运行多个程序。实施例一为解决现有技术中存在的上述技术问题,本专利技术实施例提供了可编程数据平面虚拟层构建方法。图1示出了本专利技术实施例一可编程数据平面虚拟层构建方法的流程图。参照图1,本实施例可编程数据平面虚拟层构建方法包括如下步骤:步骤S101:构建包含多个虚拟化匹配动作表和多个虚拟化控制逻辑的平面虚拟层,其中,虚拟化控制逻辑和虚拟化匹配动作表可根据第一预设方式被配置为多个网络功能,多个网络功能可根据第二预设方式被配置为多个虚拟化可编程数据平面。具体地,在可运行虚拟化可编程数据平面的硬件上构建平面虚拟层,并在平面虚拟层内构建多个虚拟化匹配动作表和多个虚拟化控制逻辑,为在本专利技术可编程数据平面虚拟层中配置网络功能以及虚拟化可编程数据平面提供配置基础。对可本文档来自技高网...

【技术保护点】
1.一种可编程数据平面虚拟层构建方法,其特征为,包括:构建包括多个虚拟化匹配动作表和多个虚拟化控制逻辑的平面虚拟层;其中,所述虚拟化控制逻辑和虚拟化匹配动作表可根据第一预设方式被配置为多个网络功能,多个所述网络功能可根据第二预设方式被配置为多个虚拟化可编程数据平面。

【技术特征摘要】
1.一种可编程数据平面虚拟层构建方法,其特征为,包括:构建包括多个虚拟化匹配动作表和多个虚拟化控制逻辑的平面虚拟层;其中,所述虚拟化控制逻辑和虚拟化匹配动作表可根据第一预设方式被配置为多个网络功能,多个所述网络功能可根据第二预设方式被配置为多个虚拟化可编程数据平面。2.根据权利要求1所述的方法,其特征为,每个所述虚拟化可编程数据平面内部的所述网络功能不同或所述网络功能的排列顺序不同。3.根据权利要求1所述的方法,其特征为,还包括:在所述平面虚拟层中构建虚拟化快速解析器,以用于对数据包进行解析并将解析后的数据包传送给对应的所述虚拟化可编程数据平面。4.根据权利要求3所述的方法,其特征为,所述虚拟化快速解析器对所述数据包的解析及发送步骤包括:对所述数据包的描述头信息进行解析,以得到虚拟化可编程数据平面序列号以及数据包头长度信息;根据所述数据包头长度信息获取所述数据包的数据包头,并将所述数据包头发送给与所述虚拟化可编程数据平面序列号对应的虚拟化可编程数据平面。5.根据权利要求4所述的方法,其特征为,所述网络功能的配置步骤包括:获取与待配置网络功能对应的所述虚拟化控制逻辑和所述虚拟化匹配动作表;根据第一预设方式将所述虚拟化控制逻辑和所述虚拟化匹配动作表配置为网络功能。6.根据权利要求5述的方法,其特征为,根据第一预设方式将所述虚拟化控制逻辑和所述虚拟化匹配动作表配置为网络功能的具体步骤...

【专利技术属性】
技术研发人员:毕军张程陈雅正周禹马子俊
申请(专利权)人:清华大学
类型:发明
国别省市:北京,11

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

1