Commit Graph
22 Commits
Author SHA1 Message Date
Rich Lane e0cd11ab21 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 back
it would be duplicated for each CLI object created. So, over a few mininet runs
the history file would grow exponentially.

This change moves the readline setup code out of the CLI constructor into a
class method and adds a flag to prevent it from being executed more than once.
2015-02-20 10:47:43 -08:00
Rich Lane f5164f86b7 IVSSwitch: turn off verbose logging by default
Most users don't need this much logging and it slows down the switch.
2014-11-19 18:24:49 -08:00
Rich Lane 163a66c64c IVSSwitch: add an option to control the --verbose flag 2014-05-22 13:06:57 -07:00
Rich Lane 876e66e555 net: allow batch shutdown of multiple types of switches
Each switch class will be called to shutdown its own instances.
2014-05-22 12:36:07 -07:00
Rich Lane 93cd5583eb IVSSwitch: support batch shutdown
Not a single command like the OVS one, but it still greatly decreases the
shutdown time.

This does assume that stop() is called after batchShutdown(), which is true in
the current mininet code.
2014-05-22 12:22:41 -07:00
Rich Lane a7eb557680 IVSSwitch: wait for ivs to terminate before tearing down node
This was a problem when running IVS in a container. IVS would begin the process
of closing controller connections on receiving SIGTERM, but often mininet would
have continued on and removed the control network interface from the container
before it could send the FIN. The controller wouldn't know the connection had
been closed until it timed out much later.
2014-03-18 11:04:14 -07:00
Rich Lane a905be2260 persistent command history
Saves readline history to ~/.mininet_history.
2014-03-15 10:46:07 -07:00
Rich Lane 2200d8d173 node: kill entire process group in terminate
mnexec already puts the shell into its own process group. Killing the entire
process group cleans up after any background processes the user left running.
2013-12-14 11:12:46 -08:00
Rich Lane 5461565945 mnexec: mount sysfs in each container
The sysfs filesystem is [tagged][1] with a set of namespaces when mounted, taken
from the mounting process. Among other things, this controls which network
devices will show up in /sys/class/net and /sys/class/net/bonding_masters.

Without this change, mininet will not mount sysfs in a node. Attempting to
configure a bond interface in a node will only affect the parent namespace.

This change mounts a new sysfs filesystem in each node. To prevent this mount
from affecting the parent namespace the mount namespace is also unshared.

[1]: https://www.kernel.org/doc/Documentation/filesystems/sysfs-tagging.txt
2013-11-18 17:05:09 -08:00
Rich Lane 4a94f76ec3 IVSSwitch: bring up lo interface 2013-10-08 16:59:02 -07:00
Rich Lane d4fabc0464 IVSSwitch: support opts constructor parameter
This parameter is already supported by the other switch classes.
2013-09-16 13:33:38 -07:00
Rich Lane 0a54360211 IVSSwitch: support running IVS in a namespace
This change uses the `Node.cmd` method instead of `Popen`. The `cmd` method
sends the input to a shell which may be in another namespace (if --innamespace
is in use), while `Popen` would always run in the root namespace.
2013-07-18 17:50:52 -07:00
Rich Lane 5c24263779 clean: send SIGTERM before SIGKILL
IVS needs to be sent SIGTERM so it has a chance to clean up the kernel
datapath.
2013-07-18 13:50:20 -07:00
Rich Lane 0e2cc609df tests: run all tests with OVS, IVS, and userspace switches
Each switch gets its own class so that the test results are listed separately.
2013-07-10 11:19:25 -07:00
Rich Lane 60abb34497 clean: kill ivs processes 2013-07-09 08:36:36 -07:00
Rich Lane 94ff77f2f2 clean: don't wait forever for ovsdb
This could happen if OVS was installed but not running.
2013-07-09 08:34:33 -07:00
Rich Lane 71ffb0028e IVSSwitch: remove namespace warnings
IVS works fine using --innamespace.
2013-07-01 16:05:52 -07:00
Rich Lane 803c0a6e22 IVSSwitch: use ovs-ofctl for dpctl functionality 2013-06-29 18:11:15 -07:00
Rich Lane 8ee4aa6de4 install.sh: add support for IVS 2013-06-28 15:01:58 -07:00
Rich Lane 91261b2757 IVSSwitch: add support for dpctl
dpctl is not included with IVS. The user will need to obtain it from the
OpenFlow reference repository.
2013-06-27 17:56:46 -07:00
Rich Lane 812c91cc9e test_hifi: use SWITCH to pick the switch class 2013-06-27 14:50:59 -07:00
Rich Lane 27da832d6d add support for the IVS virtual switch
IVS is an open source virtual switch available for download at
https://github.com/floodlight/ivs. It uses the openvswitch
kernel module.
2013-06-27 14:50:59 -07:00