Initial text and version updates for 2.1.0
updating setup to include examples
Some cleanup and style fixes for fixlimits
Cleaned up sysctl and rlimit test and setUse files instead of sysctl to set limits
add sysctl test and setfixes #184
fixed comment in cli.py
Made net compliant with dict semantics and added function commentsFixed locals bug (now they are persisent across calls)
Replaced nodelist and nodemap in CLI with mnUpdated Mininet to be more compliant with dictFixes #182
Removing test prints from user switch merge
Merge branch 'adf-userswitch-tclink' of github.com:adferguson/mininet into adferguson-adf-userswitch-tclinkOnly sleep and reapply if slicing is enabled
Merge branch 'master' of github.com:mininet/mininet
Merging MurphyMc LinearTopo pull request
Merge branch 'ivs' of https://github.com/rlane/mininet into rlane-ivs
Merge pull request #181 from mininet/devel/ping
pingall now reports fraction received
pingall now reports fraction receivedfixes #168
Fix indentation in LinearTopo()
Reimplemented and corrected Graph as MultiGraphfixes #172
Prevent Mininet from crashing when display not setfixes #173
improved check for downed link in parsePingFullfixes #176
Merge pull request #174 from pantuza/master
Dynamic Network with Remote Controller example; Extended LinearTopo
Simplified and refactored examples/dynamicnet.pyExtended LinearTopo to support mulitple hosts per switch
IVSSwitch: support running IVS in a namespace
This change uses the `Node.cmd` method instead of `Popen`. The `cmd` methodsends the input to a shell which may be in another namespace (if --innamespaceis in use), while `Popen` would always run in the root namespace.
clean: send SIGTERM before SIGKILL
IVS needs to be sent SIGTERM so it has a chance to clean up the kerneldatapath.
Fix issue with mountCgroups not recognizing mounted cgroup
Changed mountCgroups to use the file /proc/mounts (instead of thecurrent case where it uses the less reliable(http://firstname.lastname@example.org/msg00455.html)/etc/mtab thorugh the mount program
Added output line to ping that is closer to ping program output
Fixed divide by 0 error in ping command when no packets are sentfixes #143
tests: run all tests with OVS, IVS, and userspace switches
Each switch gets its own class so that the test results are listed separately.
Removing unused import in mininet/link.py
Style changes in mininet/node.py and removing used import in mininet/link.py
CPULimitedHost cleanup() calls superclass methodfixes #161
clean: kill ivs processes
clean: don't wait forever for ovsdb
This could happen if OVS was installed but not running.
Clean up intfs in root NS, and avoid deleting HW intfs
It appears that under certain conditions, such as when anamespace exits, both ends of a veth pair may get dumpedinto the root namespace. We therefore now remove an interfaceboth from its home namespace and from the root namespace.
IVSSwitch: remove namespace warnings
IVS works fine using --innamespace.
IVSSwitch: use ovs-ofctl for dpctl functionality
IVSSwitch: add support for dpctl
dpctl is not included with IVS. The user will need to obtain it from theOpenFlow reference repository.
test_hifi: use SWITCH to pick the switch class
add support for the IVS virtual switch
IVS is an open source virtual switch available for download athttps://github.com/floodlight/ivs. It uses the openvswitchkernel module.
Workaround: add default dpopts='--no-slicing' to UserSwitch
This disables slicing by default but fixes bandwidth limits.Eventually we want to enable both to work together, but for nowthis enables one or the other depending on the dpopts setting.
Workaround: add dpopts to UserSwitch
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 thinkabout it and also see if any one is using it...
Ensure dpid is a valid hex string in OVSSwitch
Fix some pylint messages.
Add Switch.connected() and OVSSwitch.controllerUUIDs()
Minor comment change and text change.
Clean up (and fix) OVSSwitch fast reconnect
Fix setDefaultRoute to work with passed parameters.
topo: make new minimal Graph object a Graph, not a DiGraph
Fixes another Graph regression relative to NetworkX.
RipL broke because the NetworkX Graph object that was used previouslyfor topologies is an undirected graph:
import networkx as nxg=nx.Graph()...
import networkx as nxg=nx.Graph()...
topo: add getitem for Graph
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 somethinglike this:
nodes = [n for n in self.g.data[name] if self.layer(n) layer]...
Merge pull request #150 from MurphyMc/ovs_fast_reconnect
node: Make OVS switches reconnect quickly
Don't flush ALL routes and enable OPTIONAL default route/gw
fixes #152 hopefully
Ordinarily, OVS switches back off when they can't reach their controllers.Under the type of scenarios where Mininet is used, I think this isprobably just inconvenient. This patch set controllers to attempt toreconnect every second.
node: Allow OVSSwitch to run in userspace mode
This adds a datapath parameter to OVSSwitch which allows one to tell OVS torun in userspace mode rather than kernel mode. From the commandline, thisis --switch=ovsk,datapath=user.
Note that this makes "ovsk" and the OVSKernelSwitch alias misnomers. Since...
topo: Add host count param to LinearTopo
Previously, LinearTopo took one parameter (k), which controlled the numberof 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)....
Change to only split once so that cargs='--foo=1 --bar=2' works.fixes #144
Add 'x' command to open an X11 tunnel (and run a client)fixes #142
Fix method name mismatch for setDefaultRoute.
Edits to pass code check and make style consistent.
Remove networkx dependency
Update host's IP address during name-IP substitutionfixes #139
Add ovs-controller to shutdown list
Change OVSSwitch.dpctl() to call ovs-ofctl
This should fix the problem of dump-flows not showing the OpenFlowflow table flows and only showing cached kernel flow table flows.
allow user switch to be used with TCIntf's
start xterm with TERM=ansi to preserve title from bash.bashrcfixes #128
Adjust numbering to support tc-based switch QoSboth the reference switch and Open vSwitch assume ids with major 1can be used for tc-based QoS
Change popen() to detach from terminal/process group.This may or may not be the right thing to do - an alternativewould be to ignore SIGINT, but that would make the popen()job unkillable by normal means! So we'll try this and seehow well it works.Fixes #124
Add source node option to moveIntf() (note: low-level API!!)In the future we may wish to enable moving interfaces acrossnodes which are not in the root NS, and this would providethe low-level mechanism to do so.closes #122
More code check nits.
Fix code check.
Tag node bash processes and add attach scriptTry invoking bash processes with -s mininet:host,for easy identification of hosts. This enableseasy attachment using the util/m script.closes #121
Change makeTerm() to tunnel X11 using socat if neededFor local display, allow local root accessFor remote display, tunnel with socat/mnexecThis should enable wireshark in hosts and fix #119
fix --ipbase: fix ipAdd() and remove unused default from ipStr()
Add net['h1'] and for node in net supportthanks to Brian O'Connor for reminder + suggestioncloses #114
Fix pmonitor() to not return blank lines on EOFfixes #109 (hopefully)
Add px command which uses exec() vs. py's eval()This is necessary since exec() isn't really a function, andeval can't evaluate statements.fixes #104
Fix Node.MAC to return intf.MAC rather than intf.IPFixes #89 ; Thanks to Nikhil S. Menon for the bug report
pass code check
2.0.0rc1 -> 2.0.0 final
node: verify telnet installation for controller checking
Reported-by: Julius Bachnick
Fix whitespace error.
Merge branch '2.0dev' into 2.0merge
Conflicts: .gitignore .pylint examples/miniedit.py mininet/node.py mininet/util.py util/install.sh util/vm/install-mininet-vm.sh
node: add OVS passive listening support
node: Use space, rather than comma, to separate controllersfor OVS
Otherwise, OVS thinks the second controller is a parameter of the first, andonly creates one controller entry as seen in 'ovs-vsctl show'.
test_hifi: Fix occasional test breakage
Source of error: regex to parse ps output had a single space, ratherthan handling any amount of whitespace before the CPU percentage. Whenthat percentage would drop below 10.0, an space would be printed,confusing the regex....
test: Improve unit tests to verify basic functionality
Also a more complete ping test that parses all output to the CLI.
These tests expand the hifi-specific ones to not just cover whethera topology can be created with options, but whether those options...
Move CPU limit into net, to be reused in future unit tests
Add a simple unit test for link/host creation with options
Fix SSHD example by generalizing input intf args
A number of functions in node.py look like this: return self.intf( intf ).<other stuff>
Previously, self.intf(...) in Node would expect a string name for aninterface and return None if an object was passed in instead of a...
small refactor: put function to ensure root in util
Two benefits:- One place to change if in the future, a more granular method of root access is used (like the BigSwitch patch).- Makes this reusable by stuff like examples/baresshd.py that use the low-level Mininet API.
Fix 'cgroups not mounted' error in U12.10
'mount' shows something slightly different in Ubuntu 12.10:
cgroup on /sys/fs/cgroup type tmpfs (rw,uid=0,gid=0,mode=0755)
Note the lack of a plural on first word cgroup, which has changed.
Still mounted at /sys/fs/cgroup, so check for both possibilities...
pep8: Fix E127 continuation line over-indented
There are a bunch of these remaining, but I don't think the right course isto 'fix' all of them to make pep8 happy, but instead to either changethe test in pep8 to consider that a continuation line may itself...
pep8: fix E128 continuation line under-indented errors
I wasn't sure this was worth fixing at first, but it does look more readablenow.
pep8: Fix E121/126, continuation line indention
pep8: Fix E121 continuation line indentation is not a multiple of four
pep8: Fix E125 continuation line does not distinguish itself from next logical line
pep8: Fix E711, comparisons to None should use 'is' or 'is not'
Lengthy discussion of why this is a good thing (I didn't know) at SO:
pep8: Fix E203 whitespace before punctutation
pep8: Fix E271/E272, spaces before/after keyword
VERSION -> 2.0.0rc1
Avoid modifying keyword parameter dictionary in customized()