This change uses the `Node.cmd` method instead of `Popen`. The `cmd` method
sends the input to a shell which may be in another namespace (if --innamespace
is in use), while `Popen` would always run in the root namespace.
Right now after installing mininet using util/install.sh there is a problem when try to generate doc:
make doc
doxygen doc/doxygen.cfg
make: doxygen: Command not found
make: *** [doc] Error 127
Adding doxygen, doxypy and texlive-fonts-recommended packages to fix the problem.
It appears that under certain conditions, such as when a
namespace exits, both ends of a veth pair may get dumped
into the root namespace. We therefore now remove an interface
both from its home namespace and from the root namespace.
This disables slicing by default but fixes bandwidth limits.
Eventually we want to enable both to work together, but for now
this enables one or the other depending on the dpopts setting.
Currently, slicing on the user switch breaks bandwidth limits.
We don't yet have a good way of using both of them at the same time.
I'm inclined to turn off slicing by default, but I have to think
about it and also see if any one is using it...
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.