For a network, we create "links" rather than "edges" on a graph.
"Edges" is a bit confusing because the links may not be edge links on
the network!
Also, since you're not necessarily running a "test", I changed it to
just say that we're "Done."
Moved monitor() and readline() into net.py and node.py respectively,
which will hopefully be useful for monitoring large sets of hosts,
as is done in udpbwtest.py.
Changed iperf to use interactive command infrastructure (such as it
is), which may make it more reliable. Hopefully it's a bit clearer
as well, although it is slightly more complicated.
Before this commit, you'd have to manually insert the kernel module for
OVS or OF kernel modules, and you couldn't run one regression test with
all 3.
Now, these are kmod insert/remove is handled automatically.
We need to figure out how to specify the IP addresses for the
routed control network. For now I'm going back to 192.168.12x.y
Also changed controller params to use IP strings rather than
numbers. However, we still need to clarify what ControllerParams
is actually for.
Also tweaked cmd/cmdPrint to make them more beautiful and functional,
and a few other minor changes, such as using a new idiom for verbose.
These changes support reinstating the examples.
There is probably a better way of doing this, but currently
parseCustomFile can modify globals (e.g. TOPOS) as well as
instance variables (self.validate) and classes (e.g. MyTopo),
which are also in the global name space.
Inconveniently enough, lambdas don't seem to be full closures
in Python; if they were, this trickiness would be unnecessary.
Even so, using execfile() seems like it might be a bit dubious...
This increases flexibility by allowing a topology to be manually created
in Python, or specified using another format, without having to create
a Topo object first.
However, Topos are useful, and are still the default topology object!
Auto MAC setup sets each host MAC equal to its DPID, which simplifies
debugging.
Auto ARP setup removes the need for broadcast support for ARP, which
enables a smaller NOX controller.