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 |