To match what used in Stratum
Change-Id: Ic4b87bcad6c3da36030fa01ee4135f60c05fcd78
(cherry picked from commit 1a16f00d8ddfb47c6423e5bc70f5d362230debb7)
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
- 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
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
With options to delay pushing the netcfg for each device and generating
the full netcfg JSON for bmv2-demo.
Change-Id: I046a93a8c639f4bb4cf76cbd61b826473760bfb1
- 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
+ support fort device-specific default pipeconf
+ improvements to P4runtime and gRPC protocol stuff
Change-Id: I8986fce3959df564454ea3d31859860f61eabcae
- 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
E.g. $ sudo -E python attmpls.py --cluster-size 3
Also, added option (--netcfg) to auto set netcfg at Mininet startup, and
added command to bring onos instances up/down to Mininet CLI.
Change-Id: Id02917fd5181af496b7d954da0ef3d5f2cbb970d
A set of mininet based HA tests based on onos.py
Currently includes the following tests:
- a control network partitioning test
- A dynamic cluster scaling test
Change-Id: I9a8e1019dcc51666fee1d933afd66ff390592525
multicluster.py creates two ONOS "clusters" (1 node by
default, though larger are possible), each of which
is responsible for a separate segment of the data network.
Change-Id: I233c9884b565bd6a28fa1a05e990e86207c88347
Previously we were only passing the first ONOSCluster
into MininetFacade, but lo and behold it supports as
many networks as you like! So we pass them all in the
case where we have multiple ONOSClusters.
Change-Id: If848886b958aa47d3e4834c44adc98fffd90453c
Since --custom files are execed, subsequently importing them
actually creates duplicate classes. This wouldn't be a problem
except that we depend on isinstance(). As a workaround, we allow
the class name to match if isinstance() fails, assuming it will
be a class that is compatible with ONOSCluster or ONOSNode.
Example: env PYTHONPATH=. mn --custom onos.py,mytest.py
where mytest.py imports onos
Change-Id: Ib4cda82fbdd612420de1e113ab768e2f137d5213
With multiple ONOS clusters, we want to make sure that the
forwarded port numbers don't collide. We add a portOffset
which is automatically incremented appropriately as more
ONOSClusters are created. It can also be specified explicitly.
Change-Id: I62977c3d4141668d9f541067db1a20ec0035489b
This should fix the problem seen in VirtualBox where you
may have some random interface which is host-only which needs
to have port forwarding set up on it.
Change-Id: Iacdbb129d52529783bdab1c3d768131f6eaf0364
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