Statistics
| Branch: | Tag: | Revision:

mininet / README @ 98332cb6

History | View | Annotate | Download (2.33 KB)

1

    
2
    Mininet: A Simple Virtual Testbed for OpenFlow
3
                        aka
4
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
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

    
18
Mininet provides a set of Python classes and functions which enable
19
creation of OpenFlow networks of varying sizes and topologies.
20

    
21
In order to run Mininet, you must have:
22

    
23
* A Linux 2.6.26 or greater kernel compiled with network namespace support
24
  enabled. (debian-testing seems to have such a kernel.)
25

    
26
* 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

    
30
* Python, bash, ping, iperf, etc.
31

    
32
* Root privileges (required for network device access)
33

    
34
* The netns program (included as netns.c), or an equivalent program
35
  of the same name, installed in an appropriate path location
36
  
37
* mininet.py installed in an appropriate Python path location
38

    
39
Currently mininet includes:
40

    
41
- A simple node infrastructure (Host, Switch, Controller classes) for
42
  creating virtual OpenFlow networks
43
	
44
- A simple network infrastructure (class Network and its descendants
45
  TreeNet, GridNet and LinearNet) for creating scalable topologies and
46
  running experiments (e.g. TreeNet(2,3).run(pingTest) )
47
  
48
- Some simple tests which can be run using someNetwork.run( test )
49
	
50
- A simple command-line interface which may be invoked on a network using
51
  .run( Cli ). It provides useful diagnostic commands, as well as the
52
  ability to send a command to a node. For example,
53
  
54
  mininet> h11 ifconfig -a
55
  
56
  tells host h11 to run the command 'ifconfig -a'
57

    
58
- A 'cleanup' script to get rid of junk (interfaces, processes, files in
59
  /tmp, etc.) which might be left around by mininet. Try this if things
60
  stop working!
61
  
62
- Examples (in examples/ directory) to help you get started.
63

    
64
Batteries are not included (yet!) 
65

    
66
However, some preliminary installation notes are included in the INSTALL
67
file. Good luck!
68

    
69
---
70
Bob Lantz
71
rlantz@cs.stanford.edu
72

    
73