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.)
Fix is_switch() to always succeed + whitespace edits.
Attempt at revised/simplified topo class:
- keys are strings- metadata is simply a dict- buildFromTopo greatly simplified
Fix codecheck and MininetWithControlNet.
Add support for specifying host IP range with --ipbase.
Get rid of SWITCH_PORT_BASE since it's 1 for OF >= 1.0.
Remove unused imports.
Remove default classes since Mininet() really handles them.
Clarify precedence of default classes.
Intf and Link classes. Latter support bandwidth limits using tc.
Changed networkx import line; we may have to deal with version issues here.
Pass make codecheck.
mininet.node.SWITCH_PORT_BASE specifies first switch port number.
This should be mostly cosmetic, but it causes switches to numbertheir ports consistently with OpenFlow 1.0, which starts at 1.For older versions of OpenFlow, SWITCH_PORT_BASE may be set to zero.
Added two spaces before in-line # comments.
Removed underscores for public Node methods. Minor cleanup & comments.
Revamp custom topology input
Defining custom topologies, switch types, controllers, and hosts is nowmuch easier. Plus, all Ripcord-specific stuff has been moved out.
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.
Add reversed version of the SingleSwitch topology
Possibly useful for adding custom port mappings.
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
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.