undoing gateway in net and removing addNAT helpers
Adding NAT classIncludes automatic NAT feature (mn --nat) and addNAT convenience method for topologiesfixes #111
code check fixes & add comment spaces
removing todos in net.py
changed CLI to MininetFacade; a great deal of logic also changed
Initial text and version updates for 2.1.0
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
Merge pull request #181 from mininet/devel/ping
pingall now reports fraction received
pingall now reports fraction receivedfixes #168
Prevent Mininet from crashing when display not setfixes #173
improved check for downed link in parsePingFullfixes #176
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
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.
Don't flush ALL routes and enable OPTIONAL default route/gw
fixes #152 hopefully
Add net['h1'] and for node in net supportthanks to Brian O'Connor for reminder + suggestioncloses #114
2.0.0rc1 -> 2.0.0 final
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
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.
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 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:
VERSION -> 2.0.0rc1
Allow controller to optionally be a list of constructors/classes
Update version number to 2.0.0d3 (and pass version check)
Change version to 2.0.0d2 - there has to be a better way.
Add VERSION string.
Propagate prefix length to host IP configuration.
configHosts(): don't try to configure nonexistent interfaces.
Add popen() to regular hosts (cpu limited in progress)
Allow lists of nodes to be passed to getNodeByName....which should perhaps be renamed!!!
Add static cpu (and memory) assignment.
Bring up loopback interface when configuring hosts.
Simplify port specification.
For the moment, I've removed the ability to specifya dict of options without using **. This is a slightlyunfortunate trade-off since it simplifies implementationat the expense of making the API slightly less convenient(if somewhat more consistent.)
Change to allow addLink() without specifying ports.
Add getNodeByName for hifi compatibility.
Attempt at revised/simplified topo class:
- keys are strings- metadata is simply a dict- buildFromTopo greatly simplified
Fix CLI commands.
Fix codecheck and MininetWithControlNet.
Add support for specifying host IP range with --ipbase.
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.
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).
Intf and Link classes. Latter support bandwidth limits using tc.
Attempt to make iperf test more robust.
Rename Controller.controller to .command
Added controller class arg to addController().
Add option to turn off passive listening port
Add passive listening port
Add more param choices for iperf udp on CLI
Fixed minor breakage due to code cleanup.
Changed to use new cmd interface.
I'm still not 100% sure on this.
Minor comment changes.
Changed to automatically call build() if necessary.
Changed messages slightly.
For a network, we create "links" rather than "edges" on a graph.
"Edges" is a bit confusing because the links may not be edge links onthe network!
Also, since you're not necessarily running a "test", I changed it tojust say that we're "Done."
Support gnome terminals too
Caution: code is incomplete - can't set a default type from the CLIand in some places the phrase xterm should be replaced by terminal.
Change run() to allow running external functions.
Added two spaces before in-line # comments.
Changed mininet.link() to mininet.configLinkStatus(src,dst,status)
Also rearranged parameters in link command to
mininet> link s1 h2 up
To resemble ifconfig a bit more.
Changed mininet.link() to support multiple links.
It should also probably be renamed to something like:configLinks(src, dst, status).
Fix NOX breakage
Controllers are no longer namespace-able, and all calls need one fewerarg.
Also use more sensible temporary variable name.
Buffered output. Added net.monitor() and node.readline()
Moved monitor() and readline() into net.py and node.py respectively,which will hopefully be useful for monitoring large sets of hosts,as is done in udpbwtest.py.
Changed iperf to use interactive command infrastructure (such as it...
Changed remaining refs to netns to refer to mnexec.
Automatically load kernel module dependencies
Before this commit, you'd have to manually insert the kernel module forOVS or OF kernel modules, and you couldn't run one regression test withall 3.
Now, these are kmod insert/remove is handled automatically.
Fix param typo
Handle ping output for paused hosts
Add port status change command
Reinstantiated inNamespace and routed control network.
We need to figure out how to specify the IP addresses for therouted control network. For now I'm going back to 192.168.12x.y
Also changed controller params to use IP strings rather thannumbers. However, we still need to clarify what ControllerParams...
Removed underscores for public Node methods. Minor cleanup & comments.
Changed to use Node.MAC.
Rename cliinfo debug level to output
Add new loglevel to display CLI output only
Also print warning if user chooses a loglevel that will hide CLI output.
Changed setIP to accept numeric prefix len. Added Node.deleteIntfs().
Moved link creation into Node.addIntf() and fixed util:CreateLink().
Also tweaked cmd/cmdPrint to make them more beautiful and functional,and a few other minor changes, such as using a new idiom for verbose.
These changes support reinstating the examples.
Minor cleanup of mn/net and fixes for CLI.
All commands should work now.
Changed custom feature so that params aren't added to globals.
There is probably a better way of doing this, but currentlyparseCustomFile can modify globals (e.g. TOPOS) as well asinstance variables (self.validate) and classes (e.g. MyTopo),which are also in the global name space....
Changed to dump bad iperf output.
Made it possible to create a Mininet() without using a Topo object.
This increases flexibility by allowing a topology to be manually createdin Python, or specified using another format, without having to createa Topo object first.
However, Topos are useful, and are still the default topology object!
Added a bit to comments, and removed trailing spaces.
Changed to use info() and error() logging aliases.
Removed hash-bang in module files which aren't executed directly,with the exception of topo.py, which I haven't touched.
Comment tweaks and additions.
Moved CLI into its own file. Also, MininetCLI is now just 'CLI'.
Minor changes to get 'make test' to pass.
- some namespace conflicts due to unpep8- fixed infinite recursion caused by removing redundant makeIntfPair
First crack at restoring mininet python style, assisted by handy'unpep8' script, which does most of the work.
- topo.py is still in pep8- not all examples work, but this is due to other issues
Renamed logging_mod.py -> log.py
Updated other files accordingly.
Support OpenVSwitch in kernel-mode
Add static code checking for style and errors
This required a change to logging, which now uses a singleton pattern.
For all future checkins, 'make codecheck' should pass.
Restore user-space switch option
Switches and controller in root namespace only, for now.