Restored scratchnet and scratchnetuser demos.
Also changed the str format for nodes to use str() ratherthan repr() so we don't end up with extraneous quotes.
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.
Changed cmdPrint to cmd.
Added debug() convenience function.
Added py command to evaluate Python expressions, e.g. h1.cmd('ls')
Removed trailing spaces.
Merge branch 'customtopos' into bl-dev
Tweaks to pass code check.
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....
Removed blank line at EOF.
Changed to dump bad iperf output.
Fixed to be compatible with modified Mininet() class.
Ran unpep8 on test_nets.py.
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!
Fix KeyError for missing NOX env var
Added a bit to comments, and removed trailing spaces.
Minor bug fixes and tweaks.
Shell now works (although we should use quietRun instead to avoidfile descriptor problem!)
exit/quit/EOF now all exit.
Renamed pingall and pingpair to make them easier to type - I thinkcommands should not require use of the shift key in general, although...
Added warn to complement info, error.
Minor cleanup; clarified fdToNode (still need to test however.)
Changed to use info() and error() logging aliases.
Added info() and error() as aliases for lg.info() and lg.error()
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.
Revamp custom topology input
Defining custom topologies, switch types, controllers, and hosts is nowmuch easier. Plus, all Ripcord-specific stuff has been moved out.
Improve CLI line editing capabilities
Convert CLI to use Python Cmd object, which provides line editing.
Fix errors from style changes
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.
Support out-of-order link addition
Sort interface names before passing to dpctl for kernel switch, so thatlinks for multipath topologies can be added in any order.
Add reversed version of the SingleSwitch topology
Possibly useful for adding custom port mappings.
CLI: add node dump-all-data command
CLI: add interface dump command
Add default ip and port for remote controller
Add options for auto MAC and ARP setup.
Auto MAC setup sets each host MAC equal to its DPID, which simplifiesdebugging.
Auto ARP setup removes the need for broadcast support for ARP, whichenables a smaller NOX controller.
Make Ripcord-specific topologies optional
If ripcord.dctopo imports properly, then include its topologies in thelist of available ones. Also replace topo.py with new generictopologies and update paths.
Support more topologies
Increase createLink retry count
Was seeing occasional errors with tests run back-to-back.
Remove accidentally-added iperf verbosity
Add iperf UDP test
Add xterm support
Separate kernel and user switches into separate objects
Enable controller-less setups
Add more NOX options
Restore iperf test
Also simplify test running.
Auto-install run and clean scripts
Also remove usused imports and outdated doc text.
Added a RemoteController object
Now you can run a controller on a remote PC that isnot on the same pc as Mininet.
Add MAC auto set for switches
Also use indexing for DPIDs to avoid zeroed MAC
Move TreeNet to new Mininet API
Also remove all non-object-oriented legacy Mininet code and updatetests.
User-space compatibility is untested, but most of the code for it isstill in.
Move fixLimits function to util
Move Node functions into their own file
Nodes include Switch, Host, and Controller; move these to a separatefile.
This file still could use some attention to hide private functions.Node seems like a primary class to extend, for adding stuff like OpenvSwitch, so it could benefit from a simpler interface.
Remove unused function
Move utility functions out of mininet.py
Having a file with the same name as its package creates hard-to-diagnoseimport error, so rename mininet.py to net.py. This commit moves utilityfunctions, generally those dealing with network namespaces and interface...
Remove verbose command printouts
Add missing newline printouts
Document retry function
Fix IP printing exception
Fix module resolution
Forgot to add init.py
Add LinearNet test case
More flexible logging support
Use customized StreamHandler from Python logging module to printonly messages for the specified loglevel to the console.
Clean up display
Don't print retry errors by default.
Don't attempt to kill processes twice
Was causing OSErrors because the process to kill no longer existed.
Reduce interface move delay and make configurable
Much faster now; from 1 s delay to 100 us.
Add example unit tests and Makefile target
Use setuptools to install python files
Now, to reference mininet files, use 'import mininet.mininet'.
PYTHONPATH mods are no longer required for installation.