apply ANS group patches.
Patches allow to use specific per-link delay distributions, and to assign deterministic IP address to TCIntf interfaces.Patches also add a "deb" target to the Makefile in order to create the debian package.
Fix documentation of failMode in OVSSwitch
Collect all server output in iperf()
This still isn't ideal - this was breaking UDP iperf, whichcan take a bit of time to print its output after you control-c it.
Fix UDP iperf.
Try to fix iperf race condition
This is more complicated than it should be. We are also relying onthe fact that waitOutput should eat extra prompts most of the time.Still not perfect - it's hard to get this exactly right, and weshould try to make it easier!...
monitor() should return on timeout; docstring changes
It appears that read() has been blocking for some time,so for now it makes sense to change the documentation tomatch the functionality!
It's not entirely clear if monitor() expects this functionality....
Merge pull request #533 from pichuang/node
Check for ovs-testcontroller in OVSController
addNAT always use first switch
addNAT always use first switch even though another switch specified
Workaround for cgdelete deleting cgroup but returning error
Removing unnecessary braces in RemoteController
Updating OpenFlow default port to 6653
- Pass 6653 to controllers that Mininet starts- Try to connect first on 6653 for RemoteController, then fallback to 6633
The programe name changed from test-controller to ovs-testcontroller
Remove blank line
I'm not sure whether we really need to turn off ip_forward beforeflushing iptables, but it might possibly be useful to avoid certainunexpected behavior.
Change quoting for '!'
Enable NAT to use all interfaces.
Also put the net.ipv4.ip_forward option back to what it was before on exit,rather than always setting back to 0.
Remove debug print
Add flush option to disable flushing iptables
Fix TorusTopo for UserSwitch
UserSwitch requires a 12-digit dpid.
Warn if bridge netfilter (firewall) is enabled
Newer linux kernels enable filtering on the linux bridge;this can prevent it from working in mininet!
Adding number of hosts per switch option to torus topo
Avoid expanding a string into a list of chars
Restore use of self.intf (if present) in addLink
2.2.1rc1 -> 2.2.1
Simply use class names as option help
The justification for this is that 1) the options arealready documented in the API documentation and 2) theclass names are fairly self-explanatory, so adding shortdescriptions doesn't add much.
In the future, however, we could add a short description...
Implement Switch.stop(), which doesn't call terminate
When I changed the switch implementations to call super().stop(),I neglected to include a Switch.stop() method which didn't callterminate(). This broke switch s1 stop and s1.stop().
Support multiple --controller arguments
Allow node.setIP() to pass extra arguments to intf.setIP()
Remove redundant processing for '/'
Rename node.RYU to node.Ryu
Perhaps it should be RyuController, but just Ryu for now.RYU made no sense because it's not an acronym.
2.2.1d1 -> 2.2.1d2
Minor formatting, pass code check
Fix exception for unknown class
Pass code check
Remove obsolete OVSLegacyKernelSwitch
Fix undefined constructors in customClass()
CustomConstructor -> CustomClass, which calls specialClass
specialClass is an analog of functools.partial but for classes.We can now use it instead of partial() in mn, so that Mininetcan introspect on the actual base class.
Merge pull request #473 from joerango/master
Support for running arbitrary command when starting terminal
Move cmdloop() wrapper into a new run() method
I also added another try/catch block so that interruptingthe 'Interrupt' message should no longer occur.
cli: don't read/write readline history more than once
Previously, when creating multiple CLI objects, each one would append the~/.mininet_history file to readline's internal list. When writing the file backit would be duplicated for each CLI object created. So, over a few mininet runs...
Support for running arbitrary command when starting terminal (other than bash)
Add ip:port shorthand to Controller
Fix customConstructor to work correctly with newargs
A controller should delete its interfaces if necessary
This was causing controlnet.py to not clean up its interfaces, sincethose interfaces were linked from the controller to the switchrather than vice-versa!!
deleteIntfs already will only delete interfaces whose names match...
2.2.0+ -> 2.2.1d1
pass code check
Batch link delete commands (and minor edits)
Fix OVS protocols option
Clarify makeIntfPair behavior and pass code check
Remove now-unused quietRun import
Indent one line for consistency
Delete tap9 for CE
In the future, we should probably not hardwire this,or should at least make it a constant!!
node shell: remove unnecessary -m and unset HISTFILE
Since we already disable job notification with +m, it doesn'tmake sense to set it in the original invocation!
It's also annoying if all of the host commands end up overwritingyour regular bash_history!!
Change iperf() to use waitListening()
Turn off printPid by default to avoid mnexec fork/exec
Set batch=False in OVSSwitch for low-level API
If you try to use the low-level API, you are probablynot going to call batchStartup()! So, we set batch=Falseby default. This means that buildFromTopo() needs to setit to True, so we add a bit of irritatingly complex machinery...
Fix OVS user switch (remove unnecessary % parameter)
cluster: add batchStartup/Shutdown, cleanup
Remove debug print lines
Clarify which intf pair failed and raise exception
Merge OVSBatch into OVSSwitch
Note that we are changing the interface of batchStartup/Shutdownslightly so that the method can choose not to start some of theswitches. We might wish to refine this a bit...
Don't clean up links that may have been dumped into root NS.
This should rarely happen - in the usual case, either thelinks will be shut down by Mininet.stop(), or the interfaceswill be deleted by node.stop( deleteIntfs=True ), or thelinks or interfaces will be explicitly deleted or stopped...
make 'ovs-vsctl' string symmetric
Fix super() typo
Clean up - TCReapply still broken!
Remove shared reconnectms, improve self.started
We still need to set it in batchShutdown()
Refactor for compatibility with isOldOVS() == True
First crack at setting controller backoff in single command
errRun: add debug( results )
Add debug(cmd) to errRun()
Add OVSBatch class (experimental)
This implements batch startup for OVS switches.
Clarify bandwidth limit for TCIntfs
In the future, we would like to support higher bandwidthlimits for TCIntfs, but we'll probably need to adjust someof the parameters dynamically.
Exit poll loop on POLLHUP or anything unexpected
In my opinion, we really shouldn't even get POLLHUP, butwe do. In case we get anything else odd, quite polling onthat fd.
Fix polling in errRun
It's tricky to get this right, but basically we want to readif there is something to read; if not, we want to check forEOF.
Return correct success condition in cgroupDel
Without this, we end up retrying until we fail, insteadof returning immediately on success!
Call delete() in link.stop() ; warn on exited node.cmd()
We should think a bit about the semantics that we want here.The comments say "stop and clean up link" so perhaps that'swhat we want. However, we could also imagine stop stoppingforwarding on the link (and possibly allowing restarts)....
2.2.0 -> 2.2.0+
Add stp param to OVS and connected() to OVSBridge
This allows --switch ovsbr,stp=True to work correctly
OVSLink: use isinstance() to detect OVSSwitch subclasses
Merge del-br into cmd, and add reconnectms param
With newer versions of OVS, this allows us to set up a switchwith a single OVS command (if reconnectms is zero.) If reconnectmsis specified, then it slows things down slightly (but not much.)
Stub out RemoteOVSSwitch.batchShutdown()
Eventually we should implement true batch shutdown.In the mean time, we just ignore it. Note there's no goodway that I know of for a subclass to remove a superclassmethod, so we changed the protocol a bit to require a return...
Fix indentation error
Don't stop switches that we've already stopped.
Note that this also changes the way that links are deleted;the reason is that the batch shutdown doesn't currently deletethe links, but OVSSwitch.stop() does. We may wish to revisitthis in the future.
Add comment about redundant intf.delete()
customize makeIntfPair to eliminate fastIntfPair
Add addresses to fastIntfPair() and fix codecheck
Update comment to reflect OVS patch link limits
add fastIntfPair to speed up link creation
use isinstance( intf, OVSIntf )
Add OVSLink/--link ovs, which uses OVS patch links when possible
Revert to using OVS default OpenFlow versions.
It makes sense to follow Open vSwitch's lead here.OVS 2.3 enables OpenFlow 1.0 through 1.3 by default.OVS 2.0 has incomplete support for 1.3, but you can enableit with protocols=OpenFlow13
Set OVSSwitch default protocols to OpenFlow10,OpenFlow13
For OVS versions 1.9 or earlier, this setting is ignored.
Fix code minor code check errors
Correctly set controller backoff for OVS.
Also report connected in standalone/bridge mode
2.2.0rc1 -> 2.2.0
2.2.0rc1 -> 2.2.0rc2
Basically no changes except for whitespace and satisfying pep8.