Wait for controller shutdown.
Unfortunately, this can slow things down a bit - perhaps100-200 ms in the case of ovs-controller, but I am hoping thatit may help slightly with #399.
Merge pull request #391 from cdburkard/patches/fix_popen
workaround: attach to cgroup first, then mount namespace
add Ryu controller to mininet
attach to cgroup first, then mount namespace
Merge pull request #375 from cdburkard/patches/multi_core_rt
fix host --rt
Merge pull request #374 from cdburkard/patches/rt
check if RT_GROUP_SCHED is enabled in kernel
Cluster edition prototype: remote nodes and links.
We add a new experimental feature to allow Mininet to run acrossa cluster of machines. This is currently implemented via a setmix-in classes that provide remote nodes that are implementedvia a connection to a remote shell, and remote links which are...
wall clock time makes rt quota independent of nprocs
Merge pull request #364 from cdburkard/patches/testCPULimit
Fix output of backgrounded processes
clean up logic for backgrounded processes
parse pid printed when backgrounding a process
fixes for LinkDelay test in test_hifi
Merge pull request #342 from cdburkard/devel/startup
improve startup performance, largely by removing unnecessary ifconfigs
Merge pull request #353 from mininet/devel/nat
Adding NAT class to NodeLib
Merge pull request #356 from cdburkard/patches/stop_controller
fix for controller shutdown - send SIGHUP rather than SIGKILL
added controller.stop() back in
kill all child processes to avoid race condition and no controller shutdown
Merge pull request #337 from ggee/ovsProtocol
Add parameter to set protocol list in OVSSwitch.
Fixing Node.monitor() to read entire prompt marker.
Applying @cdburkard fix to #322
moving NAT to nodelib
Merge branch 'master' into nat
adding comments and removing random access spaces
Conflicts: mininet/net.py mininet/node.py
removed more unnecessary ifconfigs
switched back to node.cmd for OVS commands. this is faster..
added some documentation
fixed issue with regex matching
adding old changes
few small fixes to syntax errors
removed many of the commands being run to maximize startup performance
Reverting the disable signals change
Merge branch 'master' into devel/pty
Add parameter to set protocol list in OVSSwitch. Allows setting OpenFlow version. s2 = net.addSwitch( 's2', protocols='OpenFlow13' )
revised comment on defaultController function
restructured defaultController into a function
fixed command parameter
added default controller class
Adding listen socket to UserSwitch when there is no listenPort set
Merge pull request #315 from cdburkard/patches/fix_bindpy
Added support for mount namespaces in bind.py
Restore non-mnexec pid detection for background commands
Fix pid regex to eat \r\n
Set default printPid back to True
Fix findPid since pty uses \r\n as line ending
conforming to mininet style
Possibly faster check for sentinel.
Don't set self.waiting twice
Avoid overhead of another process (env) in startShell()
Attach a pty to each node's bash process
This should enable node commands that are expecting a tty tobehave better.
Whitespace changes in OVSSwitch.
added documentation for HostWithPrivateDirs
mountprivatedirs is no longer needed
added persistence option to HostWithPrivateDirs. also attached mount namespaces when mnexec -a is specified
Merge pull request #313 from cdburkard/master
ovs port numbering bug fix
Added support for mount namespaces in bind.py. Also moved it to the node class as a host type.
Merge pull request #310 from rlane/ivs-verbose
IVSSwitch: add an option to control the --verbose flag
conforming to mininet python style
removing debugging messages
rearranged code for elegance
adding ovs version detection to fix port numbering bug
net: allow batch shutdown of multiple types of switches
Each switch class will be called to shutdown its own instances.
IVSSwitch: support batch shutdown
Not a single command like the OVS one, but it still greatly decreases theshutdown time.
This does assume that stop() is called after batchShutdown(), which is true inthe current mininet code.
Add ability for for OVS switch start connect to controllers using protocols other than TCP.
net.addController( 'c0', protocol='ssl' )
This now allows OVS to connect to a controller using SSL. The default of protocol is 'tcp'as it currently is.
Merge pull request #286 from lantz/devel/ovsbatch
Enable batch startup/shutdown of OVS
Not perfect, but it moves us forward at least.
Merge pull request #290 from backb1/patch/netstatnumeric
Netstat: do not resolve addresses
IVSSwitch: wait for ivs to terminate before tearing down node
This was a problem when running IVS in a container. IVS would begin the processof closing controller connections on receiving SIGTERM, but often mininet wouldhave continued on and removed the control network interface from the container...
Use a single ovs-vsctl command for speed/atomicity
Fix default of in-band control for OVS.fixes #279
Add support for batch shutdown of OVS switches.
This saves about 10 seconds for a 200 switch network.
Minor tweak of return value.
Check (and canonicalize) dpid arguments to Switch()
This seems slightly ugly, but it has bitten many people.
Canonicalize dpid by removing colons and padding with zeroscloses #268
userspace switch can be reached on unix port by dpctl
don't crash when link is TCLink but without options
caused by optimized return in link.py#275 in TCIntf.config()
node: kill entire process group in terminate
mnexec already puts the shell into its own process group. Killing the entireprocess group cleans up after any background processes the user left running.
Do not resolve addresses
small fixes for NAT
IVSSwitch: bring up lo interface
fixing --nat option in mn
undoing gateway in net and removing addNAT helpers
Adding NAT classIncludes automatic NAT feature (mn --nat) and addNAT convenience method for topologiesfixes #111
Merge pull request #210 from rlane/ivs-opts
IVSSwitch: support opts constructor parameter
This parameter is already supported by the other switch classes.
Check for `Connected` in checkListening()
changed CLI to MininetFacade; a great deal of logic also changed
Delete leftover TAP interface from OVS with datapath=userfixes #199
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 'ivs' of https://github.com/rlane/mininet into rlane-ivs
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.
Style changes in mininet/node.py and removing used import in mininet/link.py
CPULimitedHost cleanup() calls superclass methodfixes #161
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.