<div dir="ltr"><div>Hi Sergio,<br><br></div>See answer inline<br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 23, 2015 at 6:30 PM, Sergio Gutierrez <span dir="ltr"><<a href="mailto:saguti@gmail.com" target="_blank">saguti@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hello all.<div><br></div><div>I am new to P4 development, and I have a couple questions that I could not solve by reading the documentation and tutorials:</div><div><br></div><div>- Is there any process/daemon/service that I need to start previous to run the behavioral models? I am trying to run the built in tests and I receive an error of connection refused.</div></div></blockquote><div><br></div><div>If you followed the steps written down in the p4factory README, everything should work fine. Could you send the exact commands you ran and their respective output?<br></div><div>There is no deamon involved. To run the unit tests on basic routing, you only need to execute these 2 steps (assuming you have compiled the switch already):<br></div><div>1) sudo ./behavioral_model (which will start the switch process)<br></div><div>2) sudo python run_tests.py --test-dir of-tests/tests/ (which will configure the match tables and send test packets)<br></div><div><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 dir="ltr"><div><br></div><div>- I am trying to extend the simple_router example to use two switches. Is there any advice about how to do it?</div></div></blockquote><div><br></div><div>We are still working on improving multi-device support at the moment. However it should not be too difficult to run 2 instances of simple_router.<br></div><div>The behavioral model executable accepts a few command line arguments, which we do not use for unit testing and are not very well documented. If you go to the simple_router target directory and run ./behavioral-model -h, you will get the following output:<br><br>ivs: Barefoot Networks Virtual Switch<br>Usage: ivs [OPTION]...<br><br> -v, --verbose Verbose logging<br> -t, --trace Very verbose logging<br> -l, --listener=IP:PORT Listen for bfnctl connections<br> --p4nsdb=IP:PORT Connect to the P4NSDB<br><b> --pd-server=IP:PORT Listen for PD RPC calls</b><br> --no-veth No veth interfaces<br> --no-pcap Do not dump to pcap files<br><b> -i, --interface=INTERFACE Attach a network interface at startup</b><br> --name=NAME Set the name of the datapath (default p4ns)<br> --dpid=DPID Set datapath ID (default autogenerated)<br> -h,--help Display this help message and exit<br> --version Display version information and exit<br><br></div><div>I highlighted the important options in your case.<br></div><div>1) --pd-server will let you specify on which port you want to run the Thrift RPC server which listens for control plane updates. For example:<br><a href="http://127.0.0.1:4567">127.0.0.1:4567</a><br><br></div><div>2) --interface will let you choose which interfaces you want to attach to your switch (we use libpcap to listen for traffic). For example<br></div><div>--interface veth1 --interface veth3<br><br></div><div>Using these command line argument you can spawn 2 instances of simple_router, managing different interfaces and listening on a different TCP port for control plane updates.<br></div><div>To send control plane updates, you can either write a Python script (as is done for unit tests) or -and this is the preferred way in this case- use the CLI:<br><a href="https://github.com/p4lang/p4factory/blob/master/targets/simple_router/run_add_demo_entries.bash">https://github.com/p4lang/p4factory/blob/master/targets/simple_router/run_add_demo_entries.bash</a><br></div><div>By leveraging the -c option, you can connect to the correct RPC server.<br><br></div><div>Hope this helps.<br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><br></div><div>Thanks in advance for the attention.</div><div><br></div><div>PS: I am running P4 on Linux Ubuntu 14.04<span class=""><font color="#888888"><br clear="all"><div><br></div>-- <br><div>Sergio Gutiérrez</div>
</font></span></div></div>
<br>_______________________________________________<br>
P4-dev mailing list<br>
<a href="mailto:P4-dev@p4.org">P4-dev@p4.org</a><br>
Listinfo - <a href="http://mail.p4.org/mailman/listinfo/p4-dev_p4.org" rel="noreferrer" target="_blank">http://mail.p4.org/mailman/listinfo/p4-dev_p4.org</a><br>
Archives - <a href="http://mail.p4.org/pipermail/p4-dev_p4.org/" rel="noreferrer" target="_blank">http://mail.p4.org/pipermail/p4-dev_p4.org/</a><br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature"><div dir="ltr">Antonin<br></div></div>
</div></div>