Petr4: formal foundations for p4 data planes

Petr4: formal foundations for p4 data planes
复制标题

Petr4:p4 数据平面的正式基础

DOI:
10.1145/3434322
复制
发表时间:
2021
影响因子:
--
通讯作者:
Foster, Nate
Foster, Nate
中科院分区:
--
文献类型:
--
作者:
Doenges, Ryan;Arashloo, Mina Tahmasbi;Bautista, Santiago;Chang, Alexander;Ni, Newton;Parkinson, Samwise;Peterson, Rudy;Solko-Breslin, Alaia;Xu, Amanda;Foster, Nate

文献摘要

参考文献

被引文献

相似文献

P4 是一种用于编程和指定数据包处理系统的领域特定语言。它基于优雅的设计,具有高级抽象,例如解析器和匹配操作管道,可以编译为软件或硬件中的高效实现。不幸的是,像许多工业语言一样,P4 的开发没有正式的基础。 P4 语言规范是一份 160 页的文档,混合了非正式的散文、图表和伪代码,将语言语义的许多方面留给了各个编译目标。 P4 参考实现是一个复杂的系统,运行超过 40KLoC 的 C++ 代码,仅支持少数目标。显然,这些工件一般都不适合对 P4 进行形式化推理。本文提出了一个名为 Petr4 的新框架,它为 P4 奠定了坚实的基础。 Petr4 由一个全新的定义解释器和一个对 P4 片段进行建模的核心演算组成。 Petr4 不依赖于任何特定目标:解释器通过一个接口进行参数化,该接口收集委托给目标的功能,而核心演算使用非确定性过度近似特定于目标的行为。我们已经针对 P4 参考实现中的一组超过 750 个测试验证了解释器,通过针对不同目标的测试来锻炼我们的目标接口。我们通过类型保留终止的证明验证了核心演算。在开发 Petr4 时,我们报告了语言规范和参考实现中的数十个错误,其中许多已得到修复。
P4 is a domain-specific language for programming and specifying packet-processing systems. It is based on an elegant design with high-level abstractions like parsers and match-action pipelines that can be compiled to efficient implementations in software or hardware. Unfortunately, like many industrial languages, P4 has developed without a formal foundation. The P4 Language Specification is a 160-page document with a mixture of informal prose, graphical diagrams, and pseudocode, leaving many aspects of the language semantics up to individual compilation targets. The P4 reference implementation is a complex system, running to over 40KLoC of C++ code, with support for only a few targets. Clearly neither of these artifacts is suitable for formal reasoning about P4 in general.This paper presents a new framework, called Petr4, that puts P4 on a solid foundation. Petr4 consists of a clean-slate definitional interpreter and a core calculus that models a fragment of P4. Petr4 is not tied to any particular target: the interpreter is parameterized over an interface that collects features delegated to targets in one place, while the core calculus overapproximates target-specific behaviors using non-determinism.We have validated the interpreter against a suite of over 750 tests from the P4 reference implementation, exercising our target interface with tests for different targets. We validated the core calculus with a proof of type-preserving termination. While developing Petr4, we reported dozens of bugs in the language specification and the reference implementation, many of which have been fixed.
DOI: --
发表时间: 2020-06
期刊: --
影响因子: --
作者:
Fabian Ruffy;Tao Wang;Anirudh Sivaraman
通讯作者: Fabian Ruffy;Tao Wang;Anirudh Sivaraman
DOI: 10.1145/3319535.3363214
发表时间: 2019-11
期刊: Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security
影响因子: --
作者:
C. Skalka;J. Ring;David Darais;Minseok Kwon;Sahil Gupta;Kyle I. Diller;S. Smolka;Nate Foster
通讯作者: C. Skalka;J. Ring;David Darais;Minseok Kwon;Sahil Gupta;Kyle I. Diller;S. Smolka;Nate Foster
编程语言中的类型分配
DOI: --
发表时间: 1984
期刊:
影响因子: --
作者:
L. Damas
通讯作者: L. Damas
思科系统公司
DOI: --
发表时间: 2003
期刊:
影响因子: --
作者:
L. Ginsberg
通讯作者: L. Ginsberg
“Petr4:P4 数据平面的正式基础”的工件
DOI: --
发表时间: 2020
期刊: Artifact Digital Object Group
影响因子: --
作者:
Ryan Doenges;Mina Tahmasbi Arashloo;Santiago Bautista;Alexander Chang;Newton Ni;Samwise Parkinson;Rudy Peterson;Alaia Solko;Amanda Xu;Nate Foster
通讯作者: Nate Foster