中文

P4Testgen:一个可扩展的P4测试预言器

网络与互联网体系结构 2023-08-08 v3 符号计算 软件工程

摘要

我们提出P4Testgen,一个面向P416_{16}语言的测试预言器。P4Testgen支持为任何P4目标自动生成测试,并被设计为可扩展到多种P4目标。它对目标的数据包处理流水线的完整语义进行建模,包括P4语言、架构与外部函数,以及目标特定的扩展。为处理非确定性行为和复杂外部函数(例如校验和与哈希函数),P4Testgen使用了污点追踪与混合符号执行。它还提供了路径选择策略,以减少实现全覆盖所需的测试数量。我们已为V1model、eBPF、PNA和Tofino P4架构实例化了P4Testgen。每个扩展所需的工作量与目标的复杂度相称。我们通过在整个P4C测试套件以及Tofino P4 Studio提供的程序上运行生成的测试来验证它们。利用该工具,我们还确认了成熟的、用于BMv2和Tofino的生产工具链中的25个缺陷。

关键词

引用

@article{arxiv.2211.15300,
  title  = {P4Testgen: An Extensible Test Oracle For P4},
  author = {Fabian Ruffy and Jed Liu and Prathima Kotikalapudi and Vojtěch Havel and Hanneli Tavante and Rob Sherwood and Vladyslav Dubina and Volodymyr Peschanenko and Anirudh Sivaraman and Nate Foster},
  journal= {arXiv preprint arXiv:2211.15300},
  year   = {2023}
}