【技术实现步骤摘要】
一种面向P4语言的编译时流表验证系统及验证方法
[0001]本专利技术涉及计算机网络领域,尤其涉及一种面向P4语言的编译时流表验证系统及验证方法。
技术介绍
[0002]现有的P4编译器结构通常由前端、中端和后端组成,用于处理P4源程序并生成特定硬件架构的目标代码。在这个过程中,前端负责对P4源程序进行词法分析、语法分析和语义分析,生成包含语法树的中间代码。中端和后端结合使用中间代码进行处理,生成适用于特定硬件平台的目标代码。
[0003]然而,在编译P4程序之前,可编程数据平面设备通常会缓存或接收控制面下发的一些流表信息。如果这些流表信息与P4程序不匹配,那么在P4编译器生成的目标代码在可编程数据平面设备上运行时,会出现以下问题:
[0004](1)资源浪费:设备上的缓存资源将被浪费,因为存储了与P4程序不匹配的流表信息,这些流表信息可能不会被使用。
[0005](2)不合理的路由规划:如果流表与P4程序不匹配,设备可能会根据不正确的流表信息进行路由规划,导致网络流量无法按预期进行转发,从而可能导致 ...
【技术保护点】
【技术特征摘要】
1.一种面向P4语言的编译时流表验证系统,其特征在于,包括流表提取器、规则提取器、逻辑表验证器、动作验证器、匹配字段验证器;所述流表提取器用于遍历可编程数据平面设备上的流表,并将流表转换为P4Runtime协议格式文件;所述规则提取器用于从正在编译的P4源程序中提取逻辑表、动作、逻辑表中匹配字段的验证规则;所述逻辑表验证器用于根据所述规则提取器提取的验证规则,对流表文件中的逻辑表进行验证;所述动作验证器用于根据所述规则提取器提取的验证规则对流表文件中的动作进行验证;所述匹配字段验证器用于根据所述规则提取器提取的验证规则对流表文件中的匹配字段进行验证。2.根据权利要求1所述的面向P4语言的编译时流表验证系统,其特征在于,所述流表提取器用于通过P4Runtime接口和相关系统组件将可编程数据平面设备上缓存中的流表和正在接收的流表提取出来,保存为待验证的流表文件,并停止接收控制面下发的流表直到编译流程结束。3.根据权利要求1所述的面向P4语言的编译时流表验证系统,其特征在于,所述规则提取器还用于从正在编译的P4源程序中提取逻辑表及表中相关动作、匹配字段的信息,通过不同的编程语言设计数据结构,保存在内存中,用于快速读入到后续处理模块。4.根据权利要求1所述的面向P4语言的编译时流表验证系统,其特征在于,所述逻辑表验证器用于根据所述规则提取器提取的几种不同的编程语言在内存中生成的数据结构提供的验证规则,对所述流表提取器生成的流表文件中的逻辑表信息进行验证。5.根据权利要求1所述的面向P4语言的编译时流表验证系统,其特征在于,所述动作验证器用于根据所述规则提取器提取的几种不同的编程语言在内存中生成的数据结构提供的验证规则对所述流表提取器生成的流表文件中的动作信息进行验证。6.根据权利要求1所述的面向P4语言的编译时流表验证系统,其特征在于,所述匹配字段验证器用于根据所述规则提取器提取的几种不同的编程语言在内存中生成的数据结构提供的验证规则对所述流表提取器生成的流表文件中的匹...
【专利技术属性】
技术研发人员:薛镭,高万鑫,张富军,朱俊,邹涛,张汝云,
申请(专利权)人:之江实验室,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。