Extern Objects in P4: an ROHC Header Compression Scheme Case Study
Jeferson Santiago da Silva, Fran\c{c}ois-Raymond Boyer,, Laurent-Olivier Chiquette, J.M. Pierre Langlois

TL;DR
This paper investigates methods to extend P4 language capabilities by implementing an ROHC header compression scheme using extern objects, demonstrating their advantages for target-specific applications and code elegance.
Contribution
It introduces and compares two extension methods for P4, highlighting extern instances as a flexible and elegant solution for complex operations.
Findings
Extern instances are suitable for target-specific applications.
Both methods show similar performance in packet latency.
Externs simplify code and reduce modification risks.
Abstract
P4 is an emergent packet-processing language with which the user can describe how the packets are to be processed in a switching element. This paper presents a way to implement complex operations that are not natively supported in P4. In this work, we explored two different methods to add extensions to P4: i) using new native primitives and ii) using extern instances. As a case study, an ROHC entity was implemented and invoked in a P4 program. The tests showed similar relative performance in both methods in terms of normalized packet latency. However, extern instances appear to be more suitable for target-specific switching applications, where the manufacturer/vendor can specify its own specific operations without changes in the P4 syntax and semantics. Extern instances only require changes in the target-specific backend compiler while keeping the P4 frontend compiler unchanged. The…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
