Skip to content
This repository has been archived by the owner on Dec 27, 2022. It is now read-only.
/ p4c-bm Public archive

Generates the JSON configuration for the behavioral-model (bmv2), as well as the C/C++ PD code

License

Notifications You must be signed in to change notification settings

p4lang/p4c-bm

Repository files navigation

p4c-bm

https://travis-ci.org/p4lang/p4c-bm.svg?branch=develop

Generates the JSON configuration for the behavioral-model (bmv2).

NOTE: This repository is no longer under active development or maintenance. We recommend that you instead consider using the currently developed open source P4 tools, which are p4c and behavioral-model.

Important: the PD has been moved out of this repository and split between the bmv2 repository (for fixed part of the PD) and the new p4-build repository (build infrastructure for the auto-generated / program-dependent part of the PD).

Usage

  • To install p4c-bm on your machine:
    • sudo pip install -r requirements.txt
    • sudo pip install -r requirements_v1_1.txt if you are interested in compiling P4 v1.1 programs
    • sudo python setup.py install
  • Using p4c-bm
    • Try p4c-bmv2 -h
    • --json to generate a JSON representation of the P4 program
    • --pd to generate the PD C++ code
    • --p4-v1.1 if your input program is a P4 v1.1 program
  • To install in a non-default location, you can use:
    • python setup.py build install --prefix <your_path> [--single-version-externally-managed] --record install_files.txt
    • cat install_files.txt | xargs rm -rf if you need to uninstall later on