Also remove all non-object-oriented legacy Mininet code and update
tests.
User-space compatibility is untested, but most of the code for it is
still in.
Nodes include Switch, Host, and Controller; move these to a separate
file.
This file still could use some attention to hide private functions.
Node seems like a primary class to extend, for adding stuff like Open
vSwitch, so it could benefit from a simpler interface.
Having a file with the same name as its package creates hard-to-diagnose
import error, so rename mininet.py to net.py. This commit moves utility
functions, generally those dealing with network namespaces and interface
management, into their own file.
Also fix a few minor formatting bugs and clean up logging code (which
had issues when multiple files would import mininet.logging_mod).
Make much of the Mininet code object-oriented around the new Mininet
object, and create a generic way to build a Mininet.
Previously, each network topology was created by Mininet API calls,
which seems much less approachable for new users than passing in a
topology object along with controller, switch, and host classes.
The modified code is all in ripcordtest.py, but will need to replace the
main mininet.py code eventually.
Kernel-space support only, for now.
- invoke ofdatapath with --fail=closed (no controller = no connectivity!)
- stop hosts before switches before the controller
- this seems slightly more sensible
- it's the reverse of the startup order
- fix retry() so it kind of works (it's actually helpful I think!)
Not sure if I want nox_core -v in nox.py - it's useful for debugging.
ripcordtest.py (and grid.py) still depend on routing, which I haven't been
able to test yet.
Unfortunately, I can't test this at the moment since nox seems not to
be able to find the routing module.
Added/renamed examples: grid.py, tree1024.py
Added -v flag to nox arguments, so we have some chance of figuring
out why nox is dying, as it generally is.