23 Commits

Author SHA1 Message Date
Carmelo Cascone
c282133c31 Remove depenency on internal BMv2 device ID when starting bmv2.py
Needed to support TestON-based Segment Routing tests. All instances
started with internal ID = 0 (one PI/P4Runtime server procees is
executed for each simple_switch_grpc instance, i.e, there's no need to
use different internal IDs to distinguish between switch instances).
Log/conf files and bm-* commands are now based on switch name.

Change-Id: I34d3079d6dff5933ceb4d95f04863426af24eb81
2018-05-15 05:19:30 +00:00
Carmelo Cascone
eaa8b1dcf9 Simplified Mininet command line args when using bmv2.py
All lower case, easier to remember

Change-Id: I5093769263f8c282381e0f8f8bcd040268045809
2018-04-11 21:30:02 +00:00
Carmelo Cascone
4f985cd8c5 Disabled gNMI support in p4vm until it becomes more stable
Change-Id: If2085d5824a2b9d06b249bf8d82d92fd384de5af
2018-02-11 20:12:49 -08:00
Andrea Campanella
bf9e5ce3f5 [ONOS-7137] Interfaces Discovery through gNMI
Also, bumped version of gNMI proto as supported by PI

Change-Id: If2903b2dc483f545893daae77f993cc7dadee468
2018-01-24 16:54:21 +00:00
Carmelo Cascone
f11513d1bc Various improvements to P4 dev env
- Better handling of BMv2 crashes in bmv2.py (with watchdog and logging)
- bm-* commands for easy access to BMv2 log, CLI, etc

Change-Id: I1c79acda641171566d8e1162442c7f377bb273fe
2018-01-18 00:59:26 +00:00
Keesjan Karsten
8539f088f2 Mininet gRPC switch startup reachability check
Just a small change to make sure the gRPC port of simple_switch_grpc
is actually opened after startup, before ONOS gets the netcfg to try
to connect to the switch. Otherwise ONOS will receive a TCP RST from
the still closed port and the connection fails, rendering the switch
devices unavailable. Also included a timeout for port opening.

Change-Id: I1338a4ba24a14be57717f636e684c91c4cb12a7c
2018-01-04 16:08:15 +00:00
Carmelo Cascone
6ec8f8ff93 Minor refactoring of BMv2 mininet scripts
With options to delay pushing the netcfg for each device and generating
the full netcfg JSON for bmv2-demo.

Change-Id: I046a93a8c639f4bb4cf76cbd61b826473760bfb1
2017-11-23 00:49:04 +00:00
Carmelo Cascone
6e85404b1c Minor changes to PI-ECMP demo
- Support devices with different pipeconfs (as in the HW testbed)
- Run UDP servers in Mininet hosts
- Wait before pushing config to ONOS

Change-Id: Ic400e0ac0949375a27aa9721b32dc57d5065fb1c
2017-09-11 22:02:57 +02:00
Carmelo Cascone
46d360bb63 Added option to run Bmv2 with valgrind in bmv2.py
Helpful to debug Bmv2 memory leaks.

Change-Id: I404914201c00203ab3050c439fd7af8a608774d2
2017-08-29 21:07:23 +02:00
Carmelo Cascone
3443325287 Allow bmv2-demo mininet topology with arbitrary size
+ made imbalanced striping optional
+ improved generated netcfg
+ various improvements to bmv2.py

Change-Id: Ic297a9d4571bc1987a9cf8fe7bec7c648fb86686
2017-08-29 15:28:50 +00:00
Yi Tseng
7875cb78bb [ONOS-6854] refactor bmv2-demo.py
Change-Id: I9b7460b15f6664363f2ff0b16110e2b3bc4dedeb
2017-08-22 19:32:12 +00:00
Carmelo Cascone
2cad9efec5 Various fixes to get a P4Runtime demo that works
Change-Id: Icab512fceeb6ec0faf1b402c1e325e055cdb2caf
2017-08-03 16:17:58 +02:00
Carmelo Cascone
aaf6d9821e Build BMv2 with debugger in onos-setup-p4-dev
Tested on Ubuntu 14.04, not 16.04.

Also, bumped version of PI and BMv2.

Change-Id: I00319f12f077608a66c7e07fd59a7f1ca835c391
2017-07-31 09:08:03 +00:00
Carmelo Cascone
fb76b04736 Fixed P4 tools build script for Ubuntu 14
+ bumped version of p4runtime and BMv2
+ minor update to bmv2.py

Change-Id: I7784b075b2e6015bb3eef1286011968303b66129
2017-07-18 13:41:32 +00:00
Carmelo Cascone
59f57decd1 ONOS-6561 BMv2 handshaker via P4Runtime
+ support fort device-specific default pipeconf
+ improvements to P4runtime and gRPC protocol stuff

Change-Id: I8986fce3959df564454ea3d31859860f61eabcae
2017-07-13 17:24:25 +00:00
Carmelo Cascone
569d4ad93f Bumped version of P4Runtime and P4 tools for dev VM
+fixed protobuf version according to p4c documentation.

Change-Id: I16471b70b9b2ebc0e0a30c733f1e6ce47d40e30b
2017-07-10 16:24:53 -04:00
Carmelo Cascone
9e6621ffb0 Fix for log handling in bmv2.py
Change-Id: Idf96ace58c4b1cb67c52e2c122ad644b945f4f99
2017-06-27 20:14:13 +00:00
Carmelo Cascone
a11279b3c2 Updated JSON config in bmv2.py for general device provider
+ fixed unhandled exception

Change-Id: I06057872e743a85a430980ed2b6a67942b61e58f
2017-06-22 11:10:33 +00:00
Brian O'Connor
71167f9e76 Updating bmv2.py to remove dependency on onos-netcfg
Change-Id: I4b98efe2d025a03925a6505ef387aac105af9aa0
2017-06-19 21:02:32 +02:00
Carmelo Cascone
b752427548 ONOS-6457 Improved bmv2.py mininet script
- Starts BMv2 with empty.p4 as when running with --no-p4 the switch
  crashes
- Automatically send a netcfg JSON to ONOS for each device
- Makefile to build all P4 programs (needed for empty.p4)

Change-Id: Ib872641751c543aac6c752610b1ce88a1a00d0d2
2017-06-06 12:48:02 +00:00
Carmelo Cascone
75e9799694 ONOS-6457 Updated bmv2.py to work with simple_switch_grpc target
Change-Id: I696daca118f631c73b747eaea8ce936cd4b1097a
2017-06-05 15:30:02 +00:00
Carmelo Cascone
977ae3f42d Varius updates to BMv2 mininet scripts
Most notably:
- Added support for onos.py's ONOSCluster controller (it works with
	"mn --custom onos.py,bmv2.py --switch onosbmv2 ...")
- Randomly select an open port for the Thrift RPC server

Change-Id: Ifa974741dc4a3693777f01866b1f6203d0e7e75e
2016-06-29 20:53:05 +00:00
Carmelo Cascone
785fada2fb Added Bmv2 demo scripts (mininet and netcfg)
Change-Id: I7471a9ebe55f74dbe8c63faef9a8685c48621862
2016-06-28 23:01:35 +00:00