Statistics
| Branch: | Tag: | Revision:

mininet / README @ f4d9e05d

History | View | Annotate | Download (2.12 KB)

1 95d9a374 Bob Lantz
2 748e35d5 Bob Lantz
    Mininet: A Simple Virtual Testbed for OpenFlow
3
                        aka
4 95d9a374 Bob Lantz
How to Squeeze a 1024-node OpenFlow Network onto your Laptop
5
6
(Extremely Experimental Development Version 0.1, December 2009)
7
8
---
9
10
Mininet creates simple OpenFlow test networks by using process-based
11
virtualization and network namespaces.
12
13 748e35d5 Bob Lantz
Simulated hosts (as well as switches and controllers with the user
14
datapath) are created as processes in separate network namespaces. This
15
allows a complete OpenFlow network to be simulated on top of a single
16
Linux kernel.
17 95d9a374 Bob Lantz
18 f4d9e05d Bob Lantz
Mininet provides a set of Python classes and functions which enable
19
creation of OpenFlow networks of varying sizes and topologies.
20
21 95d9a374 Bob Lantz
In order to run Mininet, you must have:
22
23
* A Linux 2.6.26 or greater kernel compiled with network namespace support
24 748e35d5 Bob Lantz
  enabled. (Debian 5.0 or greater should work.)
25 95d9a374 Bob Lantz
26 748e35d5 Bob Lantz
* The OpenFlow reference implementation (either the user or kernel
27
  datapath may be used, and the tun or ofdatapath kernel modules must be
28
  loaded, respectively)
29 95d9a374 Bob Lantz
30 d8ef79df Bob Lantz
* Python, Bash, Ping, iPerf, etc.
31 95d9a374 Bob Lantz
32 d8ef79df Bob Lantz
* Root privileges (required for network device access)
33 95d9a374 Bob Lantz
34 d8ef79df Bob Lantz
* The netns program (included as netns.c), or an equivalent program called
35
  'netns', installed in an appropriate path location.
36 748e35d5 Bob Lantz
  
37
* mininet.py installed in an appropriate Python path location.
38 95d9a374 Bob Lantz
39
Currently mininet includes:
40
41 748e35d5 Bob Lantz
- A simple node infrastructure (Host, Switch, Controller classes) for
42
  creating virtual OpenFlow networks.
43 95d9a374 Bob Lantz
	
44 748e35d5 Bob Lantz
- A simple network infrastructure (class Network and its descendants
45
  TreeNet, GridNet and LinearNet) for creating scalable topologies and
46
  running experiments (using someNetwork.run( test ) )
47 d8ef79df Bob Lantz
  
48 748e35d5 Bob Lantz
- Some simple tests which can be run using someNetwork.run( test )
49 95d9a374 Bob Lantz
	
50 748e35d5 Bob Lantz
- A simple command-line interface which may be invoked on a network using
51
  .run( Cli )
52 b3dd44d4 Bob Lantz
53
- A 'cleanup' script to get rid of junk (interfaces, processes, etc.)
54
  which might be left around by mininet. Try this if things stop
55
  working.
56
  
57 748e35d5 Bob Lantz
- Examples (in examples/ directory) to help you get started.
58 95d9a374 Bob Lantz
59 b3dd44d4 Bob Lantz
Batteries are not included (yet!) 
60
61
However, some preliminary installation notes are included in the INSTALL
62
file. Good luck!
63 95d9a374 Bob Lantz
64
---
65
Bob Lantz
66
rlantz@cs.stanford.edu
67