Reducing P4 language's voluminosity using higher-level constructs

7Citations
Citations of this article
6Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Over the last years, P4 has positioned itself as the primary language for data-plane programming. Despite its constant evolution, the P4 language still "suffers"from one significant limitation: the voluminosity of its code. P4 applications easily reach thousands of lines of code, becoming hard to develop, debug, and maintain. The reason is twofold: P4 requires many characters to express individual concepts (verbosity), and it relies on code repetition (lack of parametrization). Today, P4 users overcome this limitation by relying on templating tools, hand-crafted scripts, and complicated macros. Unfortunately, these methods are not optimal: they make the development process difficult and do not generalize well beyond one codebase. In this work, we propose reducing the voluminosity of P4 code by introducing higher-level language constructs. We present O4, an extended version of P4, that includes three such constructs: arrays (which group same-type entities together), loops (which reduce simple repetitions), and factories (which enable code parametrization). We evaluate O4 on several state-of-the-art programs and show how, with respect to P4: (i) it reduces code volumes by up to 80%, (ii) it decreases code verbosity by 44% on average, and (iii) it cuts duplicated code by 60%. We contribute a compiler implementation that provides said benefits with just a 3.5% increase in compilation time.

Cite

CITATION STYLE

APA

Alcoz, A. G., Busse-Grawitz, C., Marty, E., & Vanbever, L. (2022). Reducing P4 language’s voluminosity using higher-level constructs. In EuroP4 2022 - Proceedings of the 5th International Workshop on P4 in Europe, Part of CoNEXT 2022 (pp. 19–25). Association for Computing Machinery, Inc. https://doi.org/10.1145/3565475.3569078

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free