Statistics
| Branch: | Tag: | Revision:

mininet / README @ ae2ede79

History | View | Annotate | Download (2.69 KB)

1 95d9a374 Bob Lantz
2 d2f9aea2 Bob Lantz
    Mininet: A Simple Virtual Testbed for OpenFlow/SDN
3 8125370d Bob Lantz
                        or
4 95d9a374 Bob Lantz
How to Squeeze a 1024-node OpenFlow Network onto your Laptop
5
6 d2f9aea2 Bob Lantz
Mininet 1.0.0
7 95d9a374 Bob Lantz
8
---
9 219f9de7 Bob Lantz
Welcome to Mininet!
10 95d9a374 Bob Lantz
11 8125370d Bob Lantz
Mininet creates OpenFlow test networks by using process-based
12 95d9a374 Bob Lantz
virtualization and network namespaces.
13
14 748e35d5 Bob Lantz
Simulated hosts (as well as switches and controllers with the user
15
datapath) are created as processes in separate network namespaces. This
16
allows a complete OpenFlow network to be simulated on top of a single
17
Linux kernel.
18 95d9a374 Bob Lantz
19 9a17de91 Bob Lantz
Mininet may be invoked directly from the command line, and also provides a
20
handy Python API for creating networks of varying sizes and topologies.
21
22
Mininet is currently in *limited alpha release*. We encourage you to
23
experiment with it and hope that you will provide us with feedback on
24
features, documentation, and how you're using it. We plan to make it
25
available publicly via a GPL or BSD license (probably in April), but please
26
don't distribute the code or URLs yet! The feedback you provide will help
27
us improve Mininet for general release.
28 f4d9e05d Bob Lantz
29 95d9a374 Bob Lantz
In order to run Mininet, you must have:
30
31
* A Linux 2.6.26 or greater kernel compiled with network namespace support
32 ed097b3b Bob Lantz
  enabled (see INSTALL for additional information.)
33 95d9a374 Bob Lantz
34 ed097b3b Bob Lantz
* An OpenFlow implementation (either the reference user or kernel
35
  space implementations, or Open vSwitch.) Appropriate kernel modules
36
  (e.g. tun and ofdatapath for the reference kernel implementation) must
37
  be loaded.
38 95d9a374 Bob Lantz
39 55dd9368 Bob Lantz
* Python, bash, ping, iperf, etc.
40 95d9a374 Bob Lantz
41 d8ef79df Bob Lantz
* Root privileges (required for network device access)
42 95d9a374 Bob Lantz
43 3465c9ea Bob Lantz
Currently Mininet includes:
44 95d9a374 Bob Lantz
45 748e35d5 Bob Lantz
- A simple node infrastructure (Host, Switch, Controller classes) for
46 55dd9368 Bob Lantz
  creating virtual OpenFlow networks
47 95d9a374 Bob Lantz
	
48 ed097b3b Bob Lantz
- A simple network infrastructure (Mininet class) supporting parametrized
49
  topologies (Topo subclasses.) For example, a tree network may be created
50
  with the command
51 d8ef79df Bob Lantz
  
52 3465c9ea Bob Lantz
  # mn --topo tree,depth=2,fanout=3
53 ed097b3b Bob Lantz
  
54
- Basic tests, including connectivity (ping) and bandwidth (iperf)
55
56
- A command-line interface (CLI class) which provides useful 
57
  diagnostic commands, as well as the ability to send a command to a
58
  node. For example,
59 98332cb6 Bob Lantz
  
60
  mininet> h11 ifconfig -a
61
  
62
  tells host h11 to run the command 'ifconfig -a'
63 b3dd44d4 Bob Lantz
64 ed097b3b Bob Lantz
- A 'cleanup' command to get rid of junk (interfaces, processes, files in
65 8125370d Bob Lantz
  /tmp, etc.) which might be left around by Mininet or Linux. Try this if 
66
  things stop working!
67 b3dd44d4 Bob Lantz
  
68 ed097b3b Bob Lantz
  # mn -c
69
  
70 3465c9ea Bob Lantz
- Examples (in the examples/ directory) to help you get started.
71 95d9a374 Bob Lantz
72 9a17de91 Bob Lantz
Batteries are not included (yet!)
73 b3dd44d4 Bob Lantz
74
However, some preliminary installation notes are included in the INSTALL
75 9a17de91 Bob Lantz
file.
76
77 d2f9aea2 Bob Lantz
Additionally, much useful information, including a Mininet tutorial,
78
is available on the Mininet wiki:
79 9a17de91 Bob Lantz
80 d2f9aea2 Bob Lantz
http://openflow.org/mininet
81 9a17de91 Bob Lantz
82
Enjoy, and good luck!
83 95d9a374 Bob Lantz
84
---
85
Bob Lantz
86
rlantz@cs.stanford.edu