<div dir="ltr">Note that it fails with Ubuntu 18.04 Linux without patches to gRPC.  It works perfectly fine unpatched on Ubuntu 16.04 Linux, which is still the recommended base OS, I believe.  I'm sure that will update to a later version of Linux some time, but probably for most the goal is not to be on the bleeding edge for libraries on which P4 tools depend (yes, I know we are far from the bleeding edge on versions there).<div><br></div><div>Andy</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Feb 22, 2019 at 1:50 PM <<a href="mailto:hemant@mnkcg.com">hemant@mnkcg.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-5843147501559508792WordSection1"><p class="MsoNormal">At some point, we do have to update the gRPC version used by PI because the version does not build.  See <a href="https://github.com/p4lang/PI/issues/436" target="_blank">https://github.com/p4lang/PI/issues/436</a><u></u><u></u></p><p class="MsoNormal">Andy has a script to install PI and the script applies patches to gRPC.   If one has only downloaded PI and gRPC separately, then, I have code changes shown in the issue above for how to fix the build.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Hemant<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><div><div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(225,225,225);padding:3pt 0in 0in"><p class="MsoNormal"><b>From:</b> P4-dev <<a href="mailto:p4-dev-bounces@lists.p4.org" target="_blank">p4-dev-bounces@lists.p4.org</a>> <b>On Behalf Of </b>Frédéric LOUI<br><b>Sent:</b> Friday, February 22, 2019 3:01 PM<br><b>To:</b> Antonin Bas <<a href="mailto:antonin@barefootnetworks.com" target="_blank">antonin@barefootnetworks.com</a>><br><b>Cc:</b> p4-dev <<a href="mailto:p4-dev@lists.p4.org" target="_blank">p4-dev@lists.p4.org</a>><br><b>Subject:</b> Re: [P4-dev] p4lang/third-party<u></u><u></u></p></div></div><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Salut Antonin,<u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Merci pour ta réponse plutôt positive. <u></u><u></u></p></div><div><p class="MsoNormal">My answers inline :)<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><blockquote style="margin-top:5pt;margin-bottom:5pt"><div><div><p class="MsoNormal">I think it's a great idea to build Debian packages for the p4lang software<u></u><u></u></p></div></div></blockquote></div><div><p class="MsoNormal">Well, I’m working for RENATER (French Education & Research Network) and within the scope of our project learning/dissemination is part of our role.<u></u><u></u></p></div><div><p class="MsoNormal">I hoping these packages will help propagate p4 programming.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><blockquote style="margin-top:5pt;margin-bottom:5pt"><div><div><p class="MsoNormal">especially if the packages end up in the official distribution repositories and especially if your organization is volunteering to maintain them :) <u></u><u></u></p></div></div></blockquote></div><div><p class="MsoNormal">Well for now, we just want to appreciate, if these packages will be useful and build a first set that fit the potential training we might conduct ourselves.<u></u><u></u></p></div><div><p class="MsoNormal">We have a p4 event during next TNC: <a href="https://tnc19.geant.org/" target="_blank">https://tnc19.geant.org/</a> (Where all academic networks in Europe get together) <u></u><u></u></p></div><div><p class="MsoNormal">As we are working in a academic model we can possibly but this is not granted have resources meant to maintain these packages if they are used by our organisation. :)<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><blockquote style="margin-top:5pt;margin-bottom:5pt"><div><div><p class="MsoNormal">currently the most used p4lang repositories are p4c, bmv2 and PI AFAIK … <u></u><u></u></p></div></div></blockquote><blockquote style="margin-top:5pt;margin-bottom:5pt"><div><div><p class="MsoNormal">so you should focus on these<u></u><u></u></p></div></div></blockquote></div><div><div><div><p class="MsoNormal">We will. However we are working actively on identifying how to « hook » our control plane to switch.p4 (for example) using gRPC. <u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div></div></div><div><blockquote style="margin-top:5pt;margin-bottom:5pt"><div><div><p class="MsoNormal">- a lot of the dependencies are actually optional. For example, the tutorials use the bmv2 simple_switch target, <b>which does not require Thrift</b>. So a bmv2 Debian package without Thrift support would still be very useful. Similarly <b>sysrepo is optional</b> - used to run a gNMI service in simple_switch_grpc - and I would omit it at first. That applies to libyang as well, since it is only used by sysrepo. Nanomsg is also optional and is used to run the bmv2 debugger (p4dbg.py), but it seems that there is a package available in your Debian distribution so maybe it is not too much trouble (except for nnpy).<u></u><u></u></p></div></div></blockquote></div><div><div><div><div><div><div><p class="MsoNormal">So PI (P4runtime implementation is also a must for us) and simple_switch_grpc<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div></div></div></div></div></div><div><blockquote style="margin-top:5pt;margin-bottom:5pt"><div><div><p class="MsoNormal">- speaking as the maintainer for bmv2 & PI, I am open to modifications to the code to get it working with more recent versions of the dependencies (protobuf, grpc, nanomsg, ...), <b>as long as the code still works with the older versions references in p4lang/third-party</b>. Ideally support for more recent versions of the libraries would be tested in CI, but that may be too much to ask and the testing matrix may become too complex.<u></u><u></u></p></div></div></blockquote></div><div><p class="MsoNormal">For now I propose to have a first set of packages that fit existing code and principle. <u></u><u></u></p></div><div><p class="MsoNormal">Maybe code modification is needed in order to support recent dependencies and fit automatic package generation, in that case we will propose this to you. <u></u><u></u></p></div><div><p class="MsoNormal">But only if you agree and if it serves your purpose.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><blockquote style="margin-top:5pt;margin-bottom:5pt"><div><div><p class="MsoNormal"> Ideally support for more recent versions of the libraries would be tested in CI, but that may be too much to ask and the testing matrix may become too complex.<u></u><u></u></p></div></div></blockquote></div><div><div><div><p class="MsoNormal">If CI chain is elaborated it should be OK.<u></u><u></u></p></div></div></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><blockquote style="margin-top:5pt;margin-bottom:5pt"><div><div><p class="MsoNormal">but that may be too much to ask and the testing matrix may become too complex.<u></u><u></u></p></div></div></blockquote><div><p class="MsoNormal">Well, we have some experts within EU organisation whose job is to implement these CI chains.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><blockquote style="margin-top:5pt;margin-bottom:5pt"><div><div><p class="MsoNormal">- I also welcome changes to the Python scripts to make them work with python 3, as long as backward-compatibility with Python 2.7 is not broken<u></u><u></u></p></div></div></blockquote></div><div><div><div><p class="MsoNormal">Noted.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><blockquote style="margin-top:5pt;margin-bottom:5pt"><div><div><p class="MsoNormal">(As a remainder, your organization needs to be a <a href="http://p4.org/" target="_blank">p4.org</a> member in order for you to contribute code to p4lang)<u></u><u></u></p></div></div></blockquote><div><div><div><p class="MsoNormal">Our project started in January 2019 (M1 and should last 24 months). If fruitful it is not sure but it can be reconnected during 24 months again.<u></u><u></u></p></div><div><p class="MsoNormal">I think GEANT/NRENs can become <a href="http://p4.org" target="_blank">p4.org</a> member during this period.<u></u><u></u></p></div></div></div></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><blockquote style="margin-top:5pt;margin-bottom:5pt"><div><div><p class="MsoNormal">Please let me know if you have questions.<u></u><u></u></p></div></div></blockquote><div><div><div><p class="MsoNormal">OK ! Thank you for your support and valuable answer.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">We will keep you posted regarding our progress.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Merci & Bon week end,<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div></div></div></div></div></div><div><div><div><div><p class="MsoNormal"><span style="font-size:9pt;font-family:Helvetica,sans-serif;color:black">À bientôt,<u></u><u></u></span></p></div><div><p class="MsoNormal"><span style="font-size:9pt;font-family:Helvetica,sans-serif;color:black">--  Frederic<u></u><u></u></span></p></div><p class="MsoNormal"><span style="color:black"><u></u> <u></u></span></p></div></div><p class="MsoNormal" style="margin-bottom:12pt"><u></u> <u></u></p></div><div><p class="MsoNormal"><br><br><u></u><u></u></p><blockquote style="margin-top:5pt;margin-bottom:5pt"><div><p class="MsoNormal">Le 22 févr. 2019 à 20:17, Antonin Bas <<a href="mailto:antonin@barefootnetworks.com" target="_blank">antonin@barefootnetworks.com</a>> a écrit :<u></u><u></u></p></div><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal">Salut Frederic,<u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">I think it's a great idea to build Debian packages for the p4lang software, especially if the packages end up in the official distribution repositories and especially if your organization is volunteering to maintain them :) I'm a Ubuntu user myself so obviously I'm more biased towards that distribution.<u></u><u></u></p></div><div><p class="MsoNormal">Some information that may be useful:<u></u><u></u></p></div><div><p class="MsoNormal">- currently the most used p4lang repositories are p4c, bmv2 and PI AFAIK. These projects are used in particular for the P4 tutorials (orchestrated by p4app and run inside a Docker image), so you should focus on these<u></u><u></u></p></div><div><p class="MsoNormal">- a lot of the dependencies are actually optional. For example, the tutorials use the bmv2 simple_switch target, <b>which does not require Thrift</b>. So a bmv2 Debian package without Thrift support would still be very useful. Similarly <b>sysrepo is optional</b> - used to run a gNMI service in simple_switch_grpc - and I would omit it at first. That applies to libyang as well, since it is only used by sysrepo. Nanomsg is also optional and is used to run the bmv2 debugger (p4dbg.py), but it seems that there is a package available in your Debian distribution so maybe it is not too much trouble (except for nnpy).<u></u><u></u></p></div><div><p class="MsoNormal">- speaking as the maintainer for bmv2 & PI, I am open to modifications to the code to get it working with more recent versions of the dependencies (protobuf, grpc, nanomsg, ...), <b>as long as the code still works with the older versions references in p4lang/third-party</b>. Ideally support for more recent versions of the libraries would be tested in CI, but that may be too much to ask and the testing matrix may become too complex.<u></u><u></u></p></div><div><p class="MsoNormal">- I also welcome changes to the Python scripts to make them work with python 3, as long as backward-compatibility with Python 2.7 is not broken<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">(As a remainder, your organization needs to be a <a href="http://p4.org/" target="_blank">p4.org</a> member in order for you to contribute code to p4lang)<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Please let me know if you have questions.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Antonin<u></u><u></u></p></div></div></div></blockquote></div><p class="MsoNormal"><u></u> <u></u></p></div></div></div>_______________________________________________<br>
P4-dev mailing list<br>
<a href="mailto:P4-dev@lists.p4.org" target="_blank">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/listinfo/p4-dev_lists.p4.org</a><br>
</blockquote></div>