Mininet 2.2.1 Release Notes
Mininet 2.2.1 is primarily a performance enhancement and bug fix release to Mininet 2.2.0.
Debian and Raspberry Pi support
install.sh -fnv
and install.sh -a
now work out of the box on Raspbian/Debian 7.8 Wheezy, so you can easily install and run Mininet on a Raspberry Pi! You can also install OVS 2.3.1 using "install.sh -V 2.3.1
".
API Changes
2.2.1 is compatible with the 2.0 API, but some minor changes have been made for performance or other reasons, and you should be aware of them since they could cause unexpected behavior.
-
links not added using
addLink()
will not be cleaned up automatically inMininet.stop()
. Note thatsshd.py
has changed slightly to reflect this.controlnet.py
has also changed. The symptom you may observe is that links may be left in the root namespace. They may be deleted usingmn -c
ormininet.clean.cleanup()
-
printPid
is nowFalse
by default inNode.cmd()
andNode.sendCmd()
-
mininet.clean.cleanup()
has been reorganized and now uses a class. -
Some previously silent command failures may now cause exceptions due to using
errRun
rather thanquietRun
. If you encounter unexpected exceptions, you may wish to run withsetLogLevel('debug')
(or--v debug
) to see what is going on. -
As the Linux kernel matures, it becomes less necessary to have secondary checks as to whether an operation succeeded and try again (as seen with the infamous "gave up after 3 tries" messages) so these checks (and retries) are being removed. This may expose issues which were previously hidden on older Linux kernels.
-
The Ryu controller class is now named
Ryu
instead ofRYU
- the new name reflects the correct project name, which is not an acronym. The--controller ryu
option is unchanged.
OVS Patch Links
An OVSLink
(--link ovs
) class has been added which implements OVS patch links. Unlike veth
pairs, OVS Patch Links are virtual entities within OVS itself, and can potentially support much higher data rates (particularly over multiple links, probably due to OVS's flow rule optimization) as well as slightly faster startup time.
However, OVSLinks have several serious limitations, including the following:
-
OVS patch ports are not real Linux interfaces, so you cannot monitor them using
tcpdump
orwireshark
. -
OVS patch ports are not real Linux interfaces, so you cannot control their behavior using
tc
. -
Because of the above,
OVSLink
does not support link modeling including bandwidth limits, delay modeling, or loss modeling. -
Based on our experience so far, no more than ~64
OVSLinks
should be used in a row. This means that a command likemn --topo linear,64 --test iperf
will work, butmn --topo linear,80 --test iperf
will fail.
That being said, if you want the fastest possible data rates on small-diameter networks, you may wish to try OVSLink
. If it doesn't work, just go back to regular links.
Notable bug fixes
- The CPqD switch should now build and install on Ubuntu 14.04
- The CLI
switch
command has been fixed (though its precise semantics are still a bit obscure, as it currently causes a switch to stop or start forwarding packets while leaving its interfaces up) - Repeatedly invoking the CLI will not cause
.mininet_history
to double in size (thanks to Rich Lane.)
Other minor changes
-
You may now specify multiple
--controller
arguments tomn
-
RemoteController
and--controller remote
now accept strings of the formIP:port
whereIP
is the remote controller IP address andport
is the port. -
mn --help
and the man page formn
now list the class names for--host
,--switch
, and--controller
options. The classes themselves, along with their options, are documented on http://api.mininet.org . We hope to improve the documentation over time.
Errata
Please consult the Mininet 2.2.0 Release Notes#errata.