当前位置: 首页 > 专利查询>之江实验室专利>正文

一种面向P4语言的编译时流表验证系统及验证方法技术方案

技术编号:38516607 阅读:13 留言:0更新日期:2023-08-19 16:57
本发明专利技术提供一种面向P4语言的编译时流表验证系统及验证方法,系统包括:流表提取器、规则提取器、逻辑表验证器、动作验证器、匹配字段验证器;流表提取器用于遍历可编程数据平面设备上的流表,并将流表转换为P4Runtime协议格式文件;规则提取器用于从正在编译的P4源程序中提取逻辑表、动作、逻辑表中匹配字段的验证规则;逻辑表验证器用于根据规则提取器提取的验证规则,对流表文件中的逻辑表进行验证;动作验证器用于根据规则提取器提取的验证规则对流表文件中的动作进行验证;匹配字段验证器用于根据规则提取器提取的验证规则对流表文件中的匹配字段进行验证。本发明专利技术可以根据编译的P4源程序对平台上的流表进行验证,提升整个网络的可靠性和稳定性。网络的可靠性和稳定性。网络的可靠性和稳定性。

【技术实现步骤摘要】
一种面向P4语言的编译时流表验证系统及验证方法


[0001]本专利技术涉及计算机网络领域,尤其涉及一种面向P4语言的编译时流表验证系统及验证方法。

技术介绍

[0002]现有的P4编译器结构通常由前端、中端和后端组成,用于处理P4源程序并生成特定硬件架构的目标代码。在这个过程中,前端负责对P4源程序进行词法分析、语法分析和语义分析,生成包含语法树的中间代码。中端和后端结合使用中间代码进行处理,生成适用于特定硬件平台的目标代码。
[0003]然而,在编译P4程序之前,可编程数据平面设备通常会缓存或接收控制面下发的一些流表信息。如果这些流表信息与P4程序不匹配,那么在P4编译器生成的目标代码在可编程数据平面设备上运行时,会出现以下问题:
[0004](1)资源浪费:设备上的缓存资源将被浪费,因为存储了与P4程序不匹配的流表信息,这些流表信息可能不会被使用。
[0005](2)不合理的路由规划:如果流表与P4程序不匹配,设备可能会根据不正确的流表信息进行路由规划,导致网络流量无法按预期进行转发,从而可能导致网络阻塞甚至瘫痪。

技术实现思路

[0006]针对现有技术的不足,本专利技术提供一种面向P4语言的编译时流表验证系统及验证方法,以达到提高网络的可靠性和稳定性的目的。这个系统在P4编译器的中端和后端之间加入相应的验证机制,以确保生成的目标代码与设备上的流表信息相匹配。具体而言,该系统在编译过程中执行以下操作:
[0007](1)提取流表信息:从P4程序中提取与流表相关的信息,例如表的ID、匹配字段、动作等。
[0008](2)与设备流表进行比对:将提取到的流表信息与设备上的流表进行比对,检查是否存在匹配的流表。
[0009](3)检测冲突和不匹配:根据比对结果检测冲突和不匹配的情况。如果发现与设备上的流表冲突或不匹配的信息,系统可以发出警告或错误提示。
[0010](4)错误处理和修复:如果发现冲突或不匹配的情况,采取相应的错误处理和修复措施。例如,提示用户更新设备上的流表或调整P4程序以解决冲突。
[0011]通过引入本专利技术的编译时流表验证系统,可以在编译阶段及时检测和处理流表与P4程序不匹配的情况,从而减少资源浪费和避免不合理的路由规划,提高网络的可靠性和性能。
[0012]本专利技术的目的通过如下的技术方案来实现:
[0013]一种面向P4语言的编译时流表验证系统,包括流表提取器、规则提取器、逻辑表验证器、动作验证器、匹配字段验证器;
[0014]所述流表提取器用于遍历可编程数据平面设备上的流表,并将流表转换为P4Runtime协议格式文件;
[0015]所述规则提取器用于从正在编译的P4源程序中提取逻辑表、动作、逻辑表中匹配字段的验证规则;
[0016]所述逻辑表验证器用于根据所述规则提取器提取的验证规则,对流表文件中的逻辑表进行验证;
[0017]所述动作验证器用于根据所述规则提取器提取的验证规则对流表文件中的动作进行验证;
[0018]所述匹配字段验证器用于根据所述规则提取器提取的验证规则对流表文件中的匹配字段进行验证。
[0019]进一步地,所述流表提取器用于通过P4Runtime接口和相关系统组件将可编程数据平面设备上缓存中的流表和正在接收的流表提取出来,保存为待验证的流表文件,并停止接收控制面下发的流表直到编译流程结束。
[0020]进一步地,所述规则提取器还用于从正在编译的P4源程序中提取逻辑表及表中相关动作、匹配字段的信息,通过不同的编程语言设计数据结构,保存在内存中,用于快速读入到后续处理模块。
[0021]进一步地,所述逻辑表验证器用于根据所述规则提取器提取的几种不同的编程语言在内存中生成的数据结构提供的验证规则,对所述流表提取器生成的流表文件中的逻辑表信息进行验证。
[0022]进一步地,所述动作验证器用于根据所述规则提取器提取的几种不同的编程语言在内存中生成的数据结构提供的验证规则对所述流表提取器生成的流表文件中的动作信息进行验证。
[0023]进一步地,所述匹配字段验证器用于根据所述规则提取器提取的几种不同的编程语言在内存中生成的数据结构提供的验证规则对所述流表提取器生成的流表文件中的匹配字段信息进行验证。
[0024]进一步地,该系统作为验证端,插入编译器工具的中端和后端之间,将中端优化和转换后的中间表示信息进行流表验证。
[0025]进一步地,所述规则提取器在遍历JSON格式的中间表示信息时,使用递归或迭代的方式进行深度优先遍历,通过解析JSON对象的键和值来访问和操作中间表示信息的不同部分,提取表、动作、匹配字段的信息作为验证规则,保存在对应的数据结构中。
[0026]进一步地,通过构造函数,接收编译命令附带的参数选项和中端处理后的中间表示信息对象的引用,并提供成员函数用于验证逻辑表的信息。
[0027]一种面向P4语言的编译时流表验证方法,该方法基于所述的面向P4语言的编译时流表验证系统来实现;
[0028]该方法包括如下步骤:
[0029]通过所述流表提取器遍历可编程数据平面设备上的流表,并将流表转换为P4Runtime协议格式文件;如果提取为空或转换失败,则提示相关错误信息,并退出验证流程;如果提取成功,则启动规则提取流程;
[0030]通过所述规则提取器从P4源程序中提取逻辑表、动作、逻辑表中匹配字段的验证
规则;如果提取为空或失败,则提示相关错误信息,并退出验证流程;如果提取成功,则启动逻辑表验证流程;
[0031]通过所述逻辑表验证器根据规则提取器提供的验证规则对流表文件中的逻辑表进行验证;如果验证失败,则提示相关错误信息,并退出验证流程;如果验证成功,则启动动作验证流程;
[0032]通过所述动作验证器根据规则提取器提供的验证规则对流表文件中的动作进行验证;如果验证失败,则提示相关错误信息,并退出验证流程;如果验证成功,则启动匹配字段验证流程;
[0033]通过所述匹配字段验证器根据规则提取器提供的验证规则对流表文件中的匹配字段进行验证;如果验证失败,则提示相关错误信息,并退出验证流程;如果验证成功,则进入后续编译流程。
[0034]与现有技术相比,本专利技术的有益效果如下:
[0035]本专利技术的面向P4语言的编译时流表验证系统设计了多个验证器,根据编译的P4源程序,依次对可编程数据平面设备上的流表进行验证,并对多个验证结果进行判断,提高平台的资源利用率,进而提升整个网络的可靠性和稳定性。
附图说明
[0036]下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0037]附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向P4语言的编译时流表验证系统,其特征在于,包括流表提取器、规则提取器、逻辑表验证器、动作验证器、匹配字段验证器;所述流表提取器用于遍历可编程数据平面设备上的流表,并将流表转换为P4Runtime协议格式文件;所述规则提取器用于从正在编译的P4源程序中提取逻辑表、动作、逻辑表中匹配字段的验证规则;所述逻辑表验证器用于根据所述规则提取器提取的验证规则,对流表文件中的逻辑表进行验证;所述动作验证器用于根据所述规则提取器提取的验证规则对流表文件中的动作进行验证;所述匹配字段验证器用于根据所述规则提取器提取的验证规则对流表文件中的匹配字段进行验证。2.根据权利要求1所述的面向P4语言的编译时流表验证系统,其特征在于,所述流表提取器用于通过P4Runtime接口和相关系统组件将可编程数据平面设备上缓存中的流表和正在接收的流表提取出来,保存为待验证的流表文件,并停止接收控制面下发的流表直到编译流程结束。3.根据权利要求1所述的面向P4语言的编译时流表验证系统,其特征在于,所述规则提取器还用于从正在编译的P4源程序中提取逻辑表及表中相关动作、匹配字段的信息,通过不同的编程语言设计数据结构,保存在内存中,用于快速读入到后续处理模块。4.根据权利要求1所述的面向P4语言的编译时流表验证系统,其特征在于,所述逻辑表验证器用于根据所述规则提取器提取的几种不同的编程语言在内存中生成的数据结构提供的验证规则,对所述流表提取器生成的流表文件中的逻辑表信息进行验证。5.根据权利要求1所述的面向P4语言的编译时流表验证系统,其特征在于,所述动作验证器用于根据所述规则提取器提取的几种不同的编程语言在内存中生成的数据结构提供的验证规则对所述流表提取器生成的流表文件中的动作信息进行验证。6.根据权利要求1所述的面向P4语言的编译时流表验证系统,其特征在于,所述匹配字段验证器用于根据所述规则提取器提取的几种不同的编程语言在内存中生成的数据结构提供的验证规则对所述流表提取器生成的流表文件中的匹...

【专利技术属性】
技术研发人员:薛镭高万鑫张富军朱俊邹涛张汝云
申请(专利权)人:之江实验室
类型:发明
国别省市:

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

1