Vendor Logo

New York University – Gauntlet

Gauntlet is a set of tools designed to find bugs in P4-16 compilers. Gauntlet ensures that a P4 compiler correctly translates a given input P4 program to its target-specific binary.

The toolset is targeted to the P4 language ecosystem for programmable data-plane compilers, specifically the P4-16 reference compiler (p4c).

The goal is to ensure that a P4 compiler correctly translates a given input P4 program to its target-specific binary. The compiler must not crash, and it must preserve the semantics of the program as originally written. The suite has three major components:

  • A fuzz tester that generates random P4 programs using libraries repurposed from p4c.
  • Translation Validation, which analyses the intermediate representation of a program after each compiler pass and identifies potential discrepancies. Gauntlet supports translation validation for the open-source p4c compiler front- and mid-end libraries.
  • Model-based Testing, which infers input and corresponding output for a particular P4 program and generates end-to-end test packets.

Gauntlet open source repository