[P4-dev] Confusion regarding some P4 language terminologies

hemant at mnkcg.com hemant at mnkcg.com
Thu Jun 6 13:54:32 EDT 2019

bmv2 is a p4c (P4 compiler) backend.  The compiled output from bmv2 is JSON.


The simple_switch ingests JSON and runs software switch testing.  


You should read the compiler design doc: https://github.com/p4lang/p4c/blob/master/docs/compiler-design.pptx


The simple_switch exists at this repo:  https://github.com/p4lang/behavioral-model


To work with p4c, you should install both the p4lang/p4c and the p4lang/behavioral-model software. 


If you want more p4 info, read Andy Fingerhut’s guide notes:  https://github.com/jafingerhut/p4-guide




From: P4-dev <p4-dev-bounces at lists.p4.org> On Behalf Of Harsh Gondaliya
Sent: Thursday, June 06, 2019 1:47 PM
To: p4-dev at lists.p4.org
Subject: [P4-dev] Confusion regarding some P4 language terminologies


I need some elaboration on what is the exact meaning of these terms:


(1) Behavioral Model (bmv2)

*	Can it be called a P4 software switch just like OVS? Or is it some sort of framework?
*	Am I correct to state that in the P4 tutorial programs available on https://github.com/p4lang/tutorials, I am using bmv2 as my software switch?

(2) simple_switch

*	It is called a target switch. Then what is the difference between bmv2 and simple_switch

Thanking You,



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.p4.org/pipermail/p4-dev_lists.p4.org/attachments/20190606/78a0aeb3/attachment.html>

More information about the P4-dev mailing list