首页> 中国专利> 一种P4-Target的验证方法与系统

一种P4-Target的验证方法与系统

摘要

本申请涉及一种P4‑Target的验证方法与系统,包括:获取预先设置的网络协议,以所述网络协议为约束条件随机生成网络报文;将所述网络报文分别输入参考验证模型和所述P4‑Target中,获取所述参考验证模型响应于所述报文激励进行处理后输出的参考报文以及所述P4‑Target响应于所述报文激励进行处理后输出的实测报文,根据所述参考报文和所述实测报文的比较结果确定验证是否通过;其中,所述P4‑Target具有多级Match‑Action流水线,每一级Match‑Action流水线的Match表项和Action表项分别根据其前一级Match‑Action流水线编辑输出的报文获得,第一级Match‑Action流水线的Match表项和Action表项根据所述网络报文获得。本申请的方法能够覆盖后级Match‑Action流水线命中表项后再Action处理的场景。

著录项

  • 公开/公告号CN116521543A

    专利类型发明专利

  • 公开/公告日2023-08-01

    原文格式PDF

  • 申请/专利权人 深圳云豹智能有限公司;

    申请/专利号CN202310473629.7

  • 发明设计人 萧启阳;何鱼;郭宸琛;张长述;

    申请日2023-04-26

  • 分类号G06F11/36(2006.01);G06F11/22(2006.01);

  • 代理机构深圳汇智容达专利商标事务所(普通合伙) 44238;

  • 代理人徐文城

  • 地址 518000 广东省深圳市前海深港合作区前弯一路1号A栋201室(入驻深圳市前海商务秘书有限公司)

  • 入库时间 2024-01-17 01:19:37

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-08-18

    实质审查的生效 IPC(主分类):G06F11/36 专利申请号:2023104736297 申请日:20230426

    实质审查的生效

  • 2023-08-01

    公开

    发明专利申请公布

说明书

技术领域

本申请涉及软硬件开发技术领域,具体涉及一种P4-Target的验证方法与系统。

背景技术

P4是一种与协议无关的包处理器的高级语言,英文全称为ProgrammingProtocol-independent Packet Processors。基于P4生成的P4-Target逻辑已广泛应用于众多可编程芯片中,所述P4-Target指的是能够运行P4程序的硬件设备;P4-Target逻辑具有灵活可编程特点,再加上后期加载表项的可编程特性,使得P4多级查表流水线的验证空间变得无限大。

其中,如图1所示为一种典型的P4可编程架构,其包括入口可编程的Parser(数据包解析器)、可编程多级Match-Action流水线(Programmable Match-Action Pipeline)以及出口的Deparser(数据包封装器),能够提供强大的网络报文处理能力。

其中,所述可编程多级Match-Action流水线的结构如图2所示,每一级Match-Action流水线(例如图2中的第一级Match-Action流水线PIPE0和第二级Match-Action流水线PIPE1)都会对入口报文进行组key以作表项匹配,如果匹配命中则进入Action处理,Action处理过程有可能对入口报文进行编辑。

多级Match-Action流水线的验证存在以下问题:多级Match-Action流水线需要先配置Match和Action的表项,然后再发出网络报文,第一级Match-Action流水线对报文进行编辑后,第二级Match-Action流水线的组key结果就发生了变化,如果不做特殊处理,第二级Match-Action流水线配置的Match表项无法和第一级Match-Action流水线编辑后的报文产生耦合关系,就不会命中表项,造成第二级之后的流水线无法命中表项,报文在查表miss后直接输出,这样验证场景比较单一,无法覆盖后级Match-Action流水线命中表项后再Action处理的场景,对于这种多级Match-Action流水线的耦合无法有效测试。

发明内容

本申请的目的在于提出一种P4-Target的验证方法与系统,以解决多级Match-Action流水线的验证存在的上述问题。

本申请的实施例提出一种P4-Target的验证方法,包括:

获取预先设置的网络协议,以所述网络协议为约束条件随机生成网络报文;

将所述网络报文分别输入参考验证模型和所述P4-Target中,获取所述参考验证模型响应于所述报文激励进行处理后输出的参考报文以及所述P4-Target响应于所述报文激励进行处理后输出的实测报文,根据所述参考报文和所述实测报文的比较结果确定验证是否通过;

其中,所述P4-Target具有多级Match-Action流水线,每一级Match-Action流水线的Match表项和Action表项分别由根据前一级Match-Action流水线编辑输出的报文获得,第一级Match-Action流水线的Match表项和Action表项根据所述网络报文获得。

可选地,所述每一级Match-Action流水线的Match表项和Action表项具体根据以下方式获得:

每一级Match-Action流水线分别根据提取流入Match-Action流水线的报文的流特征,以所述流特征作为约束条件随机生成Match-Action流水线的Match表项;并且,根据流入Match-Action流水线的报文随机生成Match-Action流水线的Action表项。

可选地,所述参考验证模型配置有与Match表项对应的组key逻辑和与Action表项对应的报文编辑逻辑;

所述每一级Match-Action流水线具体根据所述组key逻辑提取流入Match-Action流水线的报文的流特征;所述每一级Match-Action流水线具体根据所述报文编辑逻辑对流入的报文进行编辑后输出。

可选地,所述流特征包括报文层次信息和报文域段信息,所述Match表项包括报文特征和动作id,所述Action表项包括动作类型和动作值域。

可选地,所述根据所述参考报文和所述实测报文的比较结果确定验证是否通过,包括:

当所述参考报文与所述实测报文不一致时,确定P4多级查表流水线的验证不通过;当所述参考报文与所述实测报文一致时,确定P4多级查表流水线的验证通过。

本申请实施例还提出一种P4-Target的验证系统,包括:

报文生成单元,用于获取预先设置的网络协议,以所述网络协议为约束条件随机生成网络报文;

验证单元,用于将所述网络报文分别输入参考验证模型和所述P4-Target中,获取所述参考验证模型响应于所述报文激励进行处理后输出的参考报文以及所述P4-Target响应于所述报文激励进行处理后输出的实测报文,根据所述参考报文和所述实测报文的比较结果确定验证是否通过;

其中,所述P4-Target具有多级Match-Action流水线,每一级Match-Action流水线的Match表项和Action表项分别根据其前一级Match-Action流水线编辑输出的报文获得,第一级Match-Action流水线的Match表项和Action表项根据所述网络报文获得。

可选地,所述每一级Match-Action流水线的Match表项和Action表项具体根据以下方式获得:

每一级Match-Action流水线分别根据提取流入Match-Action流水线的报文的流特征,以所述流特征作为约束条件随机生成Match-Action流水线的Match表项;并且,根据流入Match-Action流水线的报文随机生成Match-Action流水线的Action表项。

可选地,所述参考验证模型配置有与Match表项对应的组key逻辑和与Action表项对应的报文编辑逻辑;

所述每一级Match-Action流水线具体根据所述组key逻辑提取流入Match-Action流水线的报文的流特征;所述每一级Match-Action流水线具体根据所述报文编辑逻辑对流入的报文进行编辑后输出。

可选地,所述流特征包括报文层次信息和报文域段信息,所述Match表项包括报文特征和动作id,所述Action表项包括动作类型和动作值域。

可选地,所述验证单元,具体用于:

当所述参考报文与所述实测报文不一致时,确定P4多级查表流水线的验证不通过;当所述参考报文与所述实测报文一致时,确定P4多级查表流水线的验证通过。

本申请的实施例具有以下有益效果:

本申请的实施例的P4-Target具有多级Match-Action流水线,每一级Match-Action流水线的Match表项和Action表项分别根据其前一级Match-Action流水线编辑输出的报文获得,第一级Match-Action流水线的Match表项和Action表项根据所述网络报文获得,在Match表项和Action表项生成过程中,模拟真实网络报文进入P4多级Match-Action流水线后的处理情况,得到与报文相耦合的多级Match-Action流水线的Match表项和Action表项,后级Match-Action流水线配置的Match表项能够和前级Match-Action流水线编辑后的报文产生耦合关系,因此能够覆盖后级Match-Action流水线命中表项后再Action处理的场景,从而可以实现P4多级查表流水线的随机化测试,提高验证效率。

本申请的实施例其它特征和优点将在随后的说明书中阐述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为一种典型的P4可编程架构的示意图。

图2为多级Match-Action流水线的示意图。

图3为本申请实施例中一种P4-Target的验证方法的流程图。

图4为本申请实施例中多级Match-Action流水线的表项配置流程图。

图5为本申请实施例中一种P4-Target的验证系统的工作场景示意图。

具体实施方式

附图的详细说明意在作为本申请的当前优选实施例的说明,而非意在代表本申请能够得以实现的仅有形式。应理解的是,相同或等同的功能可以由意在包含于本申请的精神和范围之内的不同实施例完成。

参阅图3,本申请的一个实施例提出一种P4-Target的验证方法,包括以下步骤:

步骤S1、获取预先设置的网络协议,以所述网络协议为约束条件随机生成网络报文;

具体而言,网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。本实施例所述网络协议为P4-Target在计算机网络中与外部进行数据交换所使用的协议,P4-Target用于处理基于该网络协议生成网络报文;本实施例所述网络协议不局限于某一种,其具体内容根据P4-Target的实际应用情况进行定义。其中,所述报文激励序列用于后续对P4-Target的多级查表流水线的验证。

步骤S2、将所述网络报文分别输入参考验证模型和所述P4-Target中,获取所述参考验证模型响应于所述报文激励进行处理后输出的参考报文以及所述P4-Target响应于所述报文激励进行处理后输出的实测报文,根据所述参考报文和所述实测报文的比较结果确定验证是否通过;

其中,所述P4-Target具有多级Match-Action流水线,每一级Match-Action流水线的Match表项和Action表项分别由根据前一级Match-Action流水线编辑输出的报文获得,第一级Match-Action流水线的Match表项和Action表项根据所述网络报文获得。

具体而言,P4-Target是指能够运行P4程序的硬件设备,例如可编程芯片,在P4-Target的开发过程中,需要编写P4程序,通过Target编译器,生成自定义的P4-Target,其为本领域技术人员所熟知的技术内容,此处不进行赘述;本实施例的方法不局限于某一种P4-Target的逻辑的验证。

所述参考验证模型为预先开发得到,其可以基于具体的P4应用场景进行开发,可以用于验证对应P4应用场景的P4-Target的多级查表流水线是否正确,简单而言,对于一个正确无误的P4-Target,将相同的报文激励输入该P4-Target和所述参考验证模型,该P4-Target和所述参考验证模型的输出相同。

具体地,每一级Match-Action流水线均包括Match(匹配)和Action(动作)两部分,每一级Match-Action流水线的Match部分是指根据Match表项对流入流水线的报文进行匹配,进一步地,Action部分指的是根据匹配结果执行所述Action表项中编辑逻辑,对流入流水线的报文进行处理,处理结果流出流水线。

本实施例在Match表项和Action表项生成过程中,模拟真实网络报文进入P4多级Match-Action流水线后的处理情况,得到与报文相耦合的多级Match-Action流水线的Match表项和Action表项,后级Match-Action流水线配置的Match表项能够和前级Match-Action流水线编辑后的报文产生耦合关系,因此能够覆盖后级Match-Action流水线命中表项后再Action处理的场景,从而可以实现P4多级查表流水线的随机化测试,提高验证效率。

在一些实施例中,所述每一级Match-Action流水线的Match表项和Action表项具体根据以下方式获得:

每一级Match-Action流水线分别根据提取流入Match-Action流水线的报文的流特征,以所述流特征作为约束条件随机生成Match-Action流水线的Match表项;并且,根据流入Match-Action流水线的报文随机生成Match-Action流水线的Action表项。

具体而言,假设P4-Target具有n级Match-Action流水线,对于第i级Match-Action流水线而言,获取流入所述第i级Match-Action流水线的报文,根据所述组key逻辑提取流入所述第i级Match-Action流水线的报文的流特征,以所述流特征作为约束条件随机生成所述第i级Match-Action流水线的Match表项;并且,根据流入所述第i级Match-Action流水线的报文随机生成所述第i级Match-Action流水线的Action表项;i≥1;当i=1时,流入所述第i级Match-Action流水线的报文为所述报文激励序列中的任意一个报文;当i>1时,流入所述第i级Match-Action流水线的报文为根据所述Action编辑逻辑对流入所述第i-1级Match-Action流水线的报文进行编辑得到的报文;

如图4所示为本实施例列举的一个两级Match-Action流水线的Match表项和Action表项的配置流程,在图4的例子中,n=2,第一级Match-Action流水线为PIPE0(前级),第二级Match-Action流水线为PIPE1(后级);(1)对于PIPE0的Match表项和Action表项的获取,获取流入PIPE0的网络报文为步骤S1生成的网络报文,复用所述参考验证模型的组key逻辑提取流入PIPE0的网络报文的第一流特征,以所述第一流特征作为约束条件随机生成PIPE0的Match表项;并且,根据流入PIPE0的网络报文随机生成PIPE0的Action表项;最后,复用所述参考验证模型的Action编辑逻辑对流入PIPE0的网络报文进行编辑得到的流入PIPE1的网络报文;(2)PIPE1的Match表项和Action表项的获取与PIPE0的Match表项和Action表项的获取相似,获取流入PIPE1的网络报文为步骤S30生成的网络报文,复用所述参考验证模型的组key逻辑提取流入PIPE1的网络报文的第二流特征,以所述第二流特征作为约束条件随机生成PIPE1的Match表项;并且,根据流入PIPE1的网络报文随机生成PIPE1的Action表项;在图4的例子中,PIPE1为最后一级Match-Action流水线,由于不需要再配置下一级Match-Action流水线的表项,因此,在获得PIPE1的Match表项和Action表项之后,即结束Match表项和Action表项的获取。

在一些实施例中,所述参考验证模型配置有与Match表项对应的组key逻辑和与Action表项对应的报文编辑逻辑;具体而言,所述Match表项用于对流入流水线的报文进行匹配,具体为提取流入流水线的报文特征,例如报文层次和报文域段等信息,然后将提取的报文特征与所述Match表项中的报文特征进行匹配,如果命中(匹配一致),则获取所述Match表项中与命中的该报文特征对应的动作id;进一步地,根据Action表项获取与该动作id对应动作参数,根据所述动作参数和所述报文编辑逻辑对流入流水线的报文进行编辑得到处理结果,处理结果流出流水线,进入下一级Match-Action流水线或输出。

所述每一级Match-Action流水线具体根据所述组key逻辑提取流入Match-Action流水线的报文的流特征;所述每一级Match-Action流水线具体根据所述报文编辑逻辑对流入的报文进行编辑后输出;具体而言,每一级Match-Action流水线复用所述参考验证模型的组key逻辑和报文编辑逻辑,避免重复编写代码,提高代码复用性和可维护性。

在一些实施例中,所述流特征包括报文层次信息和报文域段信息,所述Match表项包括报文特征和动作id,所述Action表项包括动作类型和动作值域。

具体而言,所述报文层次信息例如是有几层隧道,每层隧道有几层报文头等,所述报文域段信息例如是每层报文头的类型,每个报文头内部域段的取值等。所述动作类型(action_code)包括Encap、Decap、Modify等;所述动作值域(action_data)指的是对应动作类型下需要Encap/Decap/Modify的域段取值Encap field/Decap field/Modify field。

在一些实施例中,所述根据所述参考报文和所述实测报文的比较结果确定验证是否通过,包括:

当所述参考报文与所述实测报文不一致时,确定P4多级查表流水线的验证不通过;当所述参考报文与所述实测报文一致时,确定P4多级查表流水线的验证通过。

具体而言,在得到Match表项和Action表项后,将Match表项和Action表项加载至所述P4-Target的存储单元中,当将报文输入所述P4-Target之后,所述P4-Target的处理器运行存储于其存储单元的P4-Target逻辑,并根据存储于其存储单元的各个流水线的match表项和action表项对报文进行处理输出实测报文;当将报文输入所述参考验证模型之后,所述参考验证模型输出一个正确结果,即参考报文,用于评判所述P4-Target输出实测报文是否正确。

本申请的另一个实施例提出一种P4-Target的验证系统,可以用于实现上述实施例所述的P4-Target的验证方法,参阅图5,本实施例的系统包括:

报文生成单元,用于获取预先设置的网络协议,以所述网络协议为约束条件随机生成网络报文;

验证单元,用于将所述网络报文分别输入参考验证模型和所述P4-Target中,获取所述参考验证模型响应于所述报文激励进行处理后输出的参考报文以及所述P4-Target响应于所述报文激励进行处理后输出的实测报文,根据所述参考报文和所述实测报文的比较结果确定验证是否通过;

其中,所述P4-Target具有多级Match-Action流水线,每一级Match-Action流水线的Match表项和Action表项分别根据其前一级Match-Action流水线编辑输出的报文获得,第一级Match-Action流水线的Match表项和Action表项根据所述网络报文获得。

在一些实施例中,所述每一级Match-Action流水线的Match表项和Action表项具体根据以下方式获得:

每一级Match-Action流水线分别根据提取流入Match-Action流水线的报文的流特征,以所述流特征作为约束条件随机生成Match-Action流水线的Match表项;并且,根据流入Match-Action流水线的报文随机生成Match-Action流水线的Action表项。

在一些实施例中,所述参考验证模型配置有与Match表项对应的组key逻辑和与Action表项对应的报文编辑逻辑;

所述每一级Match-Action流水线具体根据所述组key逻辑提取流入Match-Action流水线的报文的流特征;所述每一级Match-Action流水线具体根据所述报文编辑逻辑对流入的报文进行编辑后输出。

在一些实施例中,所述流特征包括报文层次信息和报文域段信息,所述Match表项包括报文特征和动作id,所述Action表项包括动作类型和动作值域。

在一些实施例中,所述验证单元,具体用于:

当所述参考报文与所述实测报文不一致时,确定P4多级查表流水线的验证不通过;当所述参考报文与所述实测报文一致时,确定P4多级查表流水线的验证通过。

需说明的是,本实施例的P4-Target的验证系统与上述实施例的P4-Target的验证方法对应,因此,本实施例的P4-Target的验证系统未详述的部分可以参阅上述实施例的P4-Target的验证方法公开的内容得到,故此处不进行赘述。

本申请的实施例具有以下有益效果:

本申请的实施例通过在Match表项和Action表项随机过程中加入组key和报文编辑逻辑,模拟真实网络报文进入P4多级Match-Action流水线后的处理情况,依次随机每级Match-Action流水线的Match表项和Action表项,得到随机化的网络报文和与报文相耦合的多级Match-Action流水线的Match表项和Action表项,后级Match-Action流水线配置的Match表项能够和前级Match-Action流水线编辑后的报文产生耦合关系,因此能够覆盖后级Match-Action流水线命中表项后再Action处理的场景,从而可以实现P4多级查表流水线的随机化测试,提高验证效率。

以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号