Commit Graph
30 Commits
Author SHA1 Message Date
Brandon Heller e5d7b3801d topo: make new minimal Graph object a Graph, not a DiGraph
Fixes another Graph regression relative to NetworkX.

RipL broke because the NetworkX Graph object that was used previously
for topologies is an undirected graph:

>>> import networkx as nx
>>> g=nx.Graph()
>>> g.add_edge(0,1)
>>> g[1]
{0: {}}
>>> g[0]
{1: {}}

There is a separate DiGraph object in NetworkX for directed behavior.

The minimal replacement previously implemented DiGraph behavior.

>>> from mininet.topo import Graph
>>> g2=Graph()
>>> g2.add_edge(0,1)
>>> g2[0]
[1]
>>> g2[1]
[]

This commit restores undirected graph behavior.
2013-06-20 18:51:09 -07:00
Brandon Heller 4e1630e126 topo: add __getitem__ for Graph
Commit 65c35b65 'Remove networkx dependency' broke this line from RipL:

    nodes = [n for n in self.g[name] if self.layer(n) == layer]

To work around this, RipL code would have to be changed to something
like this:

    nodes = [n for n in self.g.data[name] if self.layer(n) == layer]

...which would use an internal variable, data.

It seems cleaner to add this one little feature from NetworkX Graph objects.
2013-06-20 16:27:17 -07:00
Bob Lantz 2485d57f66 Edits to pass code check and make style consistent. 2013-05-22 15:40:12 -07:00
ryanc 65c35b6595 Remove networkx dependency
Conflicts:

	util/install.sh

closes #100
2013-05-22 15:24:22 -07:00
Brandon Heller 2e089b5e4a pep8: Fix E127 continuation line over-indented
There are a bunch of these remaining, but I don't think the right course is
to 'fix' all of them to make pep8 happy, but instead to either change
the test in pep8 to consider that a continuation line may itself
be continued halfway, OR, to change the code in these lines to be more
readable by removing the need for all those nested continuations.

Personally, I find multiply-broken lines (aka nested continuations) really
hard to read.
2012-11-13 17:17:51 -08:00
Bob Lantz ce15c4f67d rename Topo() methods for consistency: add_node() -> addNode() 2012-08-16 18:48:41 -07:00
Bob Lantz 8f310286f8 Add setLinkInfo() which seems to be missing. 2012-05-21 23:09:11 -07:00
Bob Lantz 78606a35c9 Removed unused param in add_link. 2012-03-31 21:29:27 -07:00
Bob Lantz e1246c3741 Simplify port specification.
For the moment, I've removed the ability to specify
a dict of options without using **. This is a slightly
unfortunate trade-off since it simplifies implementation
at the expense of making the API slightly less convenient
(if somewhat more consistent.)
2012-03-25 15:39:18 -07:00
Bob Lantz 8bebd37759 Fix is_switch() to always succeed + whitespace edits. 2012-03-20 15:45:46 -07:00
Bob Lantz 5a8bb48951 Attempt at revised/simplified topo class:
- keys are strings
- metadata is simply a dict
- buildFromTopo greatly simplified
2012-03-20 00:17:30 -07:00
Bob Lantz 14ff3ad3d0 Fix codecheck and MininetWithControlNet. 2012-03-10 20:44:34 -08:00
Bob Lantz 82f483f559 Add support for specifying host IP range with --ipbase. 2012-03-09 17:44:47 -08:00
Bob Lantz bf5becc7d5 Get rid of SWITCH_PORT_BASE since it's 1 for OF >= 1.0. 2012-03-08 13:38:46 -08:00
Bob Lantz cbe20c7587 Remove unused imports. 2012-03-08 00:05:25 -08:00
Bob Lantz b1f90976a3 Remove default classes since Mininet() really handles them. 2012-03-07 00:03:38 -08:00
Bob Lantz 94c02695fd Clarify precedence of default classes. 2012-03-06 23:50:46 -08:00
Bob Lantz a6bcad8f48 Intf and Link classes. Latter support bandwidth limits using tc. 2012-03-02 15:45:21 -08:00
Bob Lantz 24baea734f Changed networkx import line; we may have to deal with version issues here. 2010-10-17 17:36:48 -07:00
Bob Lantz 68c89df8a1 Pass make codecheck. 2010-08-16 19:35:49 -07:00
Bob Lantz dd159b4a73 mininet.node.SWITCH_PORT_BASE specifies first switch port number.
This should be mostly cosmetic, but it causes switches to number
their ports consistently with OpenFlow 1.0, which starts at 1.
For older versions of OpenFlow, SWITCH_PORT_BASE may be set to zero.
2010-08-16 14:49:02 -07:00
Bob Lantz 0774c8bbce Added two spaces before in-line # comments. 2010-03-24 14:42:42 -07:00
Bob Lantz 80be564274 Removed underscores for public Node methods. Minor cleanup & comments. 2010-03-08 15:32:41 -08:00
Brandon Heller befa1310df Revamp custom topology input
Defining custom topologies, switch types, controllers, and hosts is now
much easier.  Plus, all Ripcord-specific stuff has been moved out.
2010-01-30 02:46:08 -08:00
Brandon Heller 723d068c51 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.
2010-01-09 17:59:43 -08:00
Brandon Heller 6d2cd77b5a Add reversed version of the SingleSwitch topology
Possibly useful for adding custom port mappings.
2010-01-06 08:53:01 -08:00
Brandon Heller 540379957b Add MAC auto set for switches
Also use indexing for DPIDs to avoid zeroed MAC
2010-01-01 03:16:57 -08:00
Brandon Heller 433a7cc88c Make Ripcord-specific topologies optional
If ripcord.dctopo imports properly, then include its topologies in the
list of available ones.  Also replace topo.py with new generic
topologies and update paths.
2010-01-03 03:53:23 -08:00
Brandon Heller c98514ae44 Support more topologies 2010-01-03 02:44:08 -08:00
Brandon Heller 8b5062a3a1 Move TreeNet to new Mininet API
Also remove all non-object-oriented legacy Mininet code and update
tests.

User-space compatibility is untested, but most of the code for it is
still in.
2009-12-26 14:25:48 -08:00