The Petr4 project is developing the formal semantics of the P4 Language backed by an independent reference implementation.
-
Install OPAM 2 following the official OPAM installation instructions. Make sure
opam --version
reports version 2 or later. -
Install external dependencies:
sudo apt-get install m4 libgmp-dev
- Install petr4 from the opam repository. This will take a while the first time
because it installs OPAM dependencies.
opam install petr4
-
Check the installed version of OCaml:
ocamlc -v
If the version is less than 4.09.0, upgrade:
opam switch 4.09.0
-
Install p4pp from source.
-
Use OPAM to build and install Petr4. This will take a while the first time because it installs OPAM dependencies.
opam pin add petr4 <path to root of petr4 repo>
Currently petr4
is merely a P4 front-end. By default, it will parse
a source program to an abstract syntax tree and print it out, either
as P4 or encoded into JSON.
Run petr4 -help
to see the list of currently-supported options.
petr4
uses js_of_ocaml
to provide a web interface. To compile to javascript,
run make web
. Then open index.html
in html_build
in a browser.
Petr4 is an open-source project. We encourage contributions! Please file issues on Github.
See the list of contributors.
Petr4 is released under the Apache2 License.