Fixes another Graph regression relative to NetworkX.
RipL broke because the NetworkX Graph object that was used previously
for topologies is an undirected graph:
>>> import networkx as nx
>>> g=nx.Graph()
>>> g.add_edge(0,1)
>>> g[1]
{0: {}}
>>> g[0]
{1: {}}
There is a separate DiGraph object in NetworkX for directed behavior.
The minimal replacement previously implemented DiGraph behavior.
>>> from mininet.topo import Graph
>>> g2=Graph()
>>> g2.add_edge(0,1)
>>> g2[0]
[1]
>>> g2[1]
[]
This commit restores undirected graph behavior.
Commit 65c35b65 'Remove networkx dependency' broke this line from RipL:
nodes = [n for n in self.g[name] if self.layer(n) == layer]
To work around this, RipL code would have to be changed to something
like this:
nodes = [n for n in self.g.data[name] if self.layer(n) == layer]
...which would use an internal variable, data.
It seems cleaner to add this one little feature from NetworkX Graph objects.
If NBEEURL is defined when running install.sh, use that location.
Enables use of a local mirror for netbee download.
Thanks to David Erickson for the code.
Ordinarily, OVS switches back off when they can't reach their controllers.
Under the type of scenarios where Mininet is used, I think this is
probably just inconvenient. This patch set controllers to attempt to
reconnect every second.
This adds a datapath parameter to OVSSwitch which allows one to tell OVS to
run in userspace mode rather than kernel mode. From the commandline, this
is --switch=ovsk,datapath=user.
Note that this makes "ovsk" and the OVSKernelSwitch alias misnomers. Since
the default behavior is still kernel mode, this is hopefully harmless.
This is the second version of this patch, which changes the argument name
and values according to Bob's suggestion.
Previously, LinearTopo took one parameter (k), which controlled the number
of switches; each of these got one host. This adds a second parameter (j),
which controls the number of hosts per switch, defaulting to 1 (as before).
This is the second version of this patch, which attempts to make the
host name generation more straightforward.
Fix method name mismatch for setDefaultRoute.
This seems to be logically correct according to the intention of the code, but it may cause some trouble because routes will now be flushed by Mininet.configHosts().
Adjust numbering to support tc-based switch QoS
This looks fine to me - probably we want to change the way this works eventually, but for now renumbering it is fine and we can change the numbering later if desired.
This may or may not be the right thing to do - an alternative
would be to ignore SIGINT, but that would make the popen()
job unkillable by normal means! So we'll try this and see
how well it works.
Fixes#124
In the future we may wish to enable moving interfaces across
nodes which are not in the root NS, and this would provide
the low-level mechanism to do so.
closes#122