Clean up (and fix) OVSSwitch fast reconnect
Fix setDefaultRoute to work with passed parameters.
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...
Fix method name mismatch for setDefaultRoute.
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.
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
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
Fix Node.MAC to return intf.MAC rather than intf.IPFixes #89 ; Thanks to Nikhil S. Menon for the bug report
pass code check
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'.
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...
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 E203 whitespace before punctutation
Fix multi-controller/failover support on User, OVSLegacy switches
Fix typo in RemoteController.__init__ comment.Thanks to Isaku Yamahata.
Fix whitespace and change no controller exception to warning.
Override remote controller check to ensure that remote controller is contactable
Re-enable slicing in UserSwitch since it's fixed with newer kernels.
Workaround for openvswitch_mod rename and pass code check.
Change default controller for mn to ovsc (ovs-controller.)
Also add check to see if another controller is running -eventually we should really detect errors from starting thecontroller!!
Fix popen to allow popen( cmd, arg1, arg2, arg3 )
Fix pexec('echo foo', shell=True)
Set dpid on OVSSwitch.
Fix default dpid which should be 12 digits for reference user switch.
Fix RemoteController which was still using defaultIP rather than ip.
Improve error handling for defaultDpid()
I think it's worth considering how we want to specify dpids forswitches. One way would be to have Mininet (optionally) pick themautomatically. Another way, which I have currently implemented, isto intuit them from the name, for example s1 -> 1. The latter is...
White space edits for code check.
CPULimiteHost.popen(): set cgroup and (optionally) RT priority
Add popen() to regular hosts (cpu limited in progress)
Add default value mems=0 for memory placement.
Allow fail-mode to be set.Probably we should have a generic mechanism to specify OVS options.
Add static cpu (and memory) assignment.
Restore deleted deleteIntfs in OVSSwitch.stop()
Pass code check.
Change default period to 100 ms, which seems to help cfs at least...rt is still somewhat broken.
Fix OVS legacy switch.
Retry deleting cgroup for the moment because it seems flaky.
Ultimately we may wish to create a mininet/ cgroup and do a recursivedelete at the end.
Fix printing pid for background tasks.
Workaround: reapply tc config after OVS destroys it.
Make CPULimitedHost method sig friendlier, and make 'cfs' default sched.
Fix convenience configuration methods.
Add warning in defaultIntf() if host has no interfaces.
Possibly this should be in intf() instead, as intf() is assumedto always succeed.
Allow sendCmd( [ cmd, arg1, ... ] )
Clarify comments and finally remove ControllerParams definition.
Use port 0 for control interface on switches.
Fix CLI commands.
Fix codecheck and MininetWithControlNet.
Fix examples to work with new API (and vice-versa.)
Move init() into Mininet() and remove calls (since called automatically.)Note: we should probably rename it "setup()" to avoid confusion.
Add OVSController to complete out-of-box Ubuntu experience.
Fix NOX controller so that mn --controller nox,pyswitch,... works.
Add CPULimitedHost to file comment.
Reorganize CPULimitedHost and add cgroup cleanup.
Support for CFS bandwidth limiting.Also trying to fix NOX cmdline opt, but broken at the moment.
New configuration scheme and support for CPU limits (RT).
Tease out intfList() from intfNames().
Intf and Link classes. Latter support bandwidth limits using tc.
Update OVS switch to use ovs-vsctl rather than deprecated ovs-openflowd.
Revert inadvertent print in node.py
Switch to Open vSwitch 1.1.1 for stability.
Fixed nox_pysw not to fail on startup, but --port still doesn't work.
Not sure why, but there's an extra blank line ;-/
Merge branch 'of1.0' into testing
bin/mn mininet/cli.py mininet/moduledeps.py mininet/node.py mininet/topo.py util/install.sh
Rename Controller.controller to .command
Fixed args for nox.
Added port to controller args; changed NOX to new arg format.
Don't try to modprobe tun if it's built-in (e.g. Ubuntu.)
Better error messages when switch setup() fails.
Oops, get rid of debug print.
Switches use high default intf; disable slicing for user switch. ;-(
This should fix --switch user --innamespace.
Add passive listening port
Delete spaces around =.
Added additional sanity checks for when OF/OVS isn't installed.
Change to automatically update IP and MAC addresses.
mininet.node.SWITCH_PORT_BASE specifies first switch port number.
This should be mostly cosmetic, but it causes switches to numbertheir ports consistently with OpenFlow 1.0, which starts at 1.For older versions of OpenFlow, SWITCH_PORT_BASE may be set to zero.
Remove print statement left in
Change port base from 0 to 1
OpenFlow versions > v0.9 require this.
Only tested w/FatTree topo - it's almost a guarantee that this breaksevery other topology.
Small OVS API change
Fix --mac breakage
The OVS interface for this moved to ovs-openflowd.
This functionality was never there for the user-space switch. Now it'sin.
Darned trailing whitespace.
Consistently use tcp:%s:%d for controller IP address format.
(In user, kernel and ovsk switch classes.)