Skip to content
Snippets Groups Projects
Commit ed097b3b authored by Bob Lantz's avatar Bob Lantz
Browse files

Working a bit on text files. Removed netns.

parent bca38c99
No related branches found
No related tags found
No related merge requests found
......@@ -10,12 +10,12 @@ Preliminary Mininet Installation/Configuration Notes
This places the mininet package in /usr/lib/python-2.5/site-packages/,
so that 'import mininet' will work.
- Installation is simplest with a distribution that includes a kernel
which supports the CLONE_NETNS unshare flag by default. Debian 5.0+ does
(e.g. current debian-testing release); Ubuntu doesn't. If your kernel
doesn't support it, you will need to build and install a kernel that
does! If you are using OpenVSwitch, 2.6.33 works best. For the reference
kernel switch, 2.6.30 is compatible.
- Mininet requires a kernel built with support for the CLONE_NETNS unshare
flag by default.
If your kernel doesn't support it, you will need to build and install a
kernel that does! If you are using Open vSwitch, 2.6.33 works best. For
the reference kernel switch, 2.6.30 should be compatible.
- Mininet should probably be run either on a machine with
no other important processes, or on a virtual machine.
......@@ -62,5 +62,3 @@ Preliminary Mininet Installation/Configuration Notes
sudo sysctl -p
---
......@@ -3,7 +3,7 @@
aka
How to Squeeze a 1024-node OpenFlow Network onto your Laptop
(Extremely Experimental Development Version 0.1, December 2009)
Development Release, March 2010
---
......@@ -15,52 +15,51 @@ datapath) are created as processes in separate network namespaces. This
allows a complete OpenFlow network to be simulated on top of a single
Linux kernel.
Mininet provides a set of Python classes and functions which enable
creation of OpenFlow networks of varying sizes and topologies.
Although Mininet may be invoked directly from the command line, it also
incorporates a handy Python API, in the form of classes and functions
which enable creation of OpenFlow networks of varying sizes and topologies.
In order to run Mininet, you must have:
* A Linux 2.6.26 or greater kernel compiled with network namespace support
enabled. (debian-testing seems to have such a kernel, but it doesn't
work for compiling nox, unfortunately.) 2.6.33 or greater is recommended
for faster switch shutdown.
enabled (see INSTALL for additional information.)
* The OpenFlow reference implementation (either the user or kernel
datapath may be used, and the tun or ofdatapath kernel modules must be
loaded, respectively)
* An OpenFlow implementation (either the reference user or kernel
space implementations, or Open vSwitch.) Appropriate kernel modules
(e.g. tun and ofdatapath for the reference kernel implementation) must
be loaded.
* Python, bash, ping, iperf, etc.
* Root privileges (required for network device access)
* The netns program (included as netns.c), or an equivalent program
of the same name, installed in an appropriate path location
* mininet.py installed in an appropriate Python path location
Currently mininet includes:
- A simple node infrastructure (Host, Switch, Controller classes) for
creating virtual OpenFlow networks
- A simple network infrastructure (class Network and its descendants
TreeNet, GridNet and LinearNet) for creating scalable topologies and
running experiments (e.g. TreeNet(2,3).run(pingTest) )
- A simple network infrastructure (Mininet class) supporting parametrized
topologies (Topo subclasses.) For example, a tree network may be created
with the command
- Some simple tests which can be run using someNetwork.run( test )
- A simple command-line interface which may be invoked on a network using
.run( Cli ). It provides useful diagnostic commands, as well as the
ability to send a command to a node. For example,
# mn --topo tree,depth=2,fanout==3
- Basic tests, including connectivity (ping) and bandwidth (iperf)
- A command-line interface (CLI class) which provides useful
diagnostic commands, as well as the ability to send a command to a
node. For example,
mininet> h11 ifconfig -a
tells host h11 to run the command 'ifconfig -a'
- A 'cleanup' script to get rid of junk (interfaces, processes, files in
- A 'cleanup' command to get rid of junk (interfaces, processes, files in
/tmp, etc.) which might be left around by mininet. Try this if things
stop working!
# mn -c
- Examples (in examples/ directory) to help you get started.
Batteries are not included (yet!)
......@@ -71,5 +70,3 @@ file. Good luck!
---
Bob Lantz
rlantz@cs.stanford.edu
/* netns: run a command in a network namespace.
* Simplified from netunshare.c on lxc.sf.net
*/
#include <stdio.h>
#include <linux/sched.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
if (unshare(CLONE_NEWNET) == -1) {
perror("unshare");
return 1;
}
if (argc) {
execve(argv[1], &argv[1], __environ);
perror("execve");
return 1;
}
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment