<div dir="ltr">Q1:<div><br></div><div>If you go to <a href="http://p4.org">p4.org</a> and click on the SPEC link near the upper right you get to this page: <a href="https://p4lang.github.io/p4-spec/">https://p4lang.github.io/p4-spec/</a></div><div><br></div><div>That is where the most recently released versions of the language specs are published.  It currently includes v1.0.4 of the P4_14 language, which is still the same syntax as older versions of the P4_14 language, and version 1.0.0 of the P4_16 language, which has a noticeably different syntax.</div><div><br></div><div>Q2:</div><div><br></div><div>I have run this bash script to mostly automate the steps given in the relevant README's for the behavioral-model and p4c Github projects, to get a copy of those repositories and build them.  As mentioned in the READMEs, it also gets a copy of Google protobuf and builds and installs that, required for building p4c.</div><div><br></div><div><a href="https://github.com/jafingerhut/p4-guide/blob/master/bin/install-p4dev.sh">https://github.com/jafingerhut/p4-guide/blob/master/bin/install-p4dev.sh</a><br></div><div><br></div><div>I have only ever tested that script on an Ubuntu 16.04 Linux machine.</div><div><br></div><div>Q3:</div><div><br></div><div>I do not know enough about the init_objects() method that you mention to know whether there are any significant differences in how that method is called between P4_14 and P4_16 JSON files produced by the compiler.  Sorry.  Perhaps someone else can help there, or you can just try an experiment with it and see if things go well.</div><div><br></div><div>Andy</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Aug 1, 2017 at 3:29 AM, Hardik Soni <span dir="ltr"><<a href="mailto:hardik.soni@inria.fr" target="_blank">hardik.soni@inria.fr</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-family:times new roman,new york,times,serif;font-size:12pt;color:#000000"><div>Hello All,</div><div><br></div><div>I need some information on versions of specs, p4c code and bmv2 code.</div><div><br></div><div>Q1: </div><div><br></div><div><span style="font-size:12pt">There is a spec (</span><span style="font-size:12pt">Version 1.0.3) of P416 dated </span><span style="font-size:12pt">November 2, 2016.</span></div><div><span style="font-size:12pt">That BNF is not of P416 compiler, am I right?</span></div><div><span style="font-size:12pt">A recent, May 2017, spec has different grammar.</span></div><div><span style="font-size:12pt"><br></span></div><div><span style="font-size:12pt"><br></span></div><div><span style="font-size:12pt">Q2: </span></div><div><span style="font-size:12pt">I have BMV2 clone with following last commit.</span></div><div><span style="font-size:12pt">------------------------------<wbr>------------------------------<wbr>----------</span></div><div><p style="margin:0px">commit 41c1f2ed487ff086a1d582069e8bc6<wbr>8cab8ffdb0<br>Author: Antonin Bas <<a href="mailto:antonin@barefootnetworks.com" target="_blank">antonin@barefootnetworks.com</a>><br>Date: Fri Jul 7 11:49:00 2017 -0700</p><p style="margin:0px">Fix installation for simple_switch_grpc (#409)<br>Fixed error: "Recursive variable 'includep4bmdir' references itself"</p><p style="margin:0px">------------------------------<wbr>------------------------------<wbr>----------</p><p style="margin:0px"><br></p><p style="margin:0px">And </p><p style="margin:0px">I have p4c compiler clone with following last commit.</p><p style="margin:0px"><br></p><p style="margin:0px">------------------------------<wbr>------------------------------<wbr>----------</p><p style="margin:0px">commit ae458b34014e23f095accac8008875<wbr>7a07612a7a<br>Author: Calin Cascaval <<a href="mailto:cascaval@barefootnetworks.com" target="_blank">cascaval@barefootnetworks.com</a><wbr>><br>Date: Tue Jul 11 21:02:41 2017 -0700</p><p style="margin:0px">proper path to include directory</p><p style="margin:0px">------------------------------<wbr>------------------------------<wbr>----------</p><p style="margin:0px"><br></p><p style="margin:0px"><span style="font-size:12pt">If any one can confirm the exact commands to compile for bmv2(simple_switch target) and run on it, it will be great.(for the above commit versions)</span></p><p style="margin:0px"><span style="font-size:12pt">Though, I used python script in mininet folder.</span></p><p style="margin:0px"><br></p><p style="margin:0px"><br></p><p style="margin:0px">And the most important question </p><p style="margin:0px">Q3: </p><p style="margin:0px">I could run simple_router  json file(probably precompile from P414 ) on bmv2 simple_router target.</p><p style="margin:0px">It could run safely.</p><p style="margin:0px">So, is there any big change in execution of json files of P414 and p416?</p><p style="margin:0px"><br></p><p style="margin:0px">Being more precise, my code heavily depends on </p><p style="margin:0px">P4Objects::init_objects(std::<wbr>istream *is,  LookupStructureFactory *lookup_factory, int device_id, size_t cxt_id,  </p><p style="margin:0px">                              <wbr>      std::shared_ptr<<wbr>TransportIface> notifications_transport, const std::set<header_field_pair> </p><p style="margin:0px">                              <wbr>      &required_fields, const ForceArith &arith_objects) {</p><p style="margin:0px">/* All the data structures(maps and vectors etc) being initialized here */</p><p style="margin:0px">}</p><p style="margin:0px"><br></p><p style="margin:0px">Is there any difference in filling up the data-structures for P4-14 and p4-16 jsons?</p><p style="margin:0px"><br></p></div><div><span style="font-size:12pt"><br></span></div><div><br></div><div><span name="x"></span><div><span style="font-size:medium">Best Regards,</span><br><span style="font-size:medium">Hardik Soni</span></div><span name="x"></span><br></div></div></div><br>______________________________<wbr>_________________<br>
P4-dev mailing list<br>
<a href="mailto:P4-dev@lists.p4.org">P4-dev@lists.p4.org</a><br>
<a href="http://lists.p4.org/mailman/listinfo/p4-dev_lists.p4.org" rel="noreferrer" target="_blank">http://lists.p4.org/mailman/<wbr>listinfo/p4-dev_lists.p4.org</a><br></blockquote></div><br></div>