-
Notifications
You must be signed in to change notification settings - Fork 80
PSA
As of March, 2020, the open source compiler p4c-bm2-psa
can compile some small P4 programs written using the PSA architecture, but there is still a significant amount of work to be done before most people would consider it ready for wide use.
A team of students at Cornell made some significant progress in early 2019 to advancing the number of PSA programs that can compile, and the resulting compiled program run on the BMv2 simple_switch
process.
- A Google Docs presentation they created explaining what they did, and what remains to be done.
- A Pull request for the p4lang/behavioral-model repository with some notes on extending
simple_switch
to support other architectures, written by one of the Cornell team members, Derek So.
To see examples of PSA architecture programs that compile, and can pass some packets through correctly, look in the p4lang/p4c repository's directory testdata/p4_16_samples
for files who names match the pattern psa*-bmv2.stf
, and the corresponding file names with .stf
replaced with .p4
.
The following Github issues explain some of the simplest kinds of things that do not currently work, most with example P4 programs as attachments: