Statistics
| Branch: | Tag: | Revision:

mininet / README @ 54037995

History | View | Annotate | Download (2.38 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 0a9ea29f Bob Lantz
  enabled. (debian-testing seems to have such a kernel, but it doesn't
25
  work for compiling nox, unfortunately.)
26 95d9a374 Bob Lantz
27 748e35d5 Bob Lantz
* The OpenFlow reference implementation (either the user or kernel
28
  datapath may be used, and the tun or ofdatapath kernel modules must be
29
  loaded, respectively)
30 95d9a374 Bob Lantz
31 55dd9368 Bob Lantz
* Python, bash, ping, iperf, etc.
32 95d9a374 Bob Lantz
33 d8ef79df Bob Lantz
* Root privileges (required for network device access)
34 95d9a374 Bob Lantz
35 08cef003 Bob Lantz
* The netns program (included as netns.c), or an equivalent program
36 55dd9368 Bob Lantz
  of the same name, installed in an appropriate path location
37 748e35d5 Bob Lantz
  
38 55dd9368 Bob Lantz
* mininet.py installed in an appropriate Python path location
39 95d9a374 Bob Lantz
40
Currently mininet includes:
41
42 748e35d5 Bob Lantz
- A simple node infrastructure (Host, Switch, Controller classes) for
43 55dd9368 Bob Lantz
  creating virtual OpenFlow networks
44 95d9a374 Bob Lantz
	
45 748e35d5 Bob Lantz
- A simple network infrastructure (class Network and its descendants
46
  TreeNet, GridNet and LinearNet) for creating scalable topologies and
47 08cef003 Bob Lantz
  running experiments (e.g. TreeNet(2,3).run(pingTest) )
48 d8ef79df Bob Lantz
  
49 748e35d5 Bob Lantz
- Some simple tests which can be run using someNetwork.run( test )
50 95d9a374 Bob Lantz
	
51 748e35d5 Bob Lantz
- A simple command-line interface which may be invoked on a network using
52 98332cb6 Bob Lantz
  .run( Cli ). It provides useful diagnostic commands, as well as the
53
  ability to send a command to a node. For example,
54
  
55
  mininet> h11 ifconfig -a
56
  
57
  tells host h11 to run the command 'ifconfig -a'
58 b3dd44d4 Bob Lantz
59 98332cb6 Bob Lantz
- A 'cleanup' script to get rid of junk (interfaces, processes, files in
60
  /tmp, etc.) which might be left around by mininet. Try this if things
61
  stop working!
62 b3dd44d4 Bob Lantz
  
63 748e35d5 Bob Lantz
- Examples (in examples/ directory) to help you get started.
64 95d9a374 Bob Lantz
65 b3dd44d4 Bob Lantz
Batteries are not included (yet!) 
66
67
However, some preliminary installation notes are included in the INSTALL
68
file. Good luck!
69 95d9a374 Bob Lantz
70
---
71
Bob Lantz
72
rlantz@cs.stanford.edu
73