2009-12-10 01:47:00 -08:00
2009-12-10 00:21:26 -08:00
2009-12-10 00:21:26 -08:00

	Mininet: A Simple Virtual Testbed for OpenFlow
						aka
How to Squeeze a 1024-node OpenFlow Network onto your Laptop

(Extremely Experimental Development Version 0.1, December 2009)

---

Mininet creates simple OpenFlow test networks by using process-based
virtualization and network namespaces.

Simulated hosts (as well as switches and controllers with the user 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.

In order to run Mininet, you must have:

* A Linux 2.6.26 or greater kernel compiled with network namespace support
  enabled. (Debian-testing should work.)

* The OpenFlow reference implementation (either the user or kernel datapath
  may be used, and the tun or ofdatapath kernel modules must be loaded,
  respectively)

* Python, Bash, etc.

* Root privilieges (required for network device access)

* The netns program or equivalent (included as netns.c)

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 (using someNetwork.run( test ) )
	
	Some simple tests which can be run by someNetwork.run( test )
	
	A simple command-line interface which may be invoked on a network
	using .run( Cli )
	
	Examples (in examples/ directory) to help you get started.
	
Notes and Advice:

For scalable configurations, you may need to increase some of your kernel
limits. For example, you could add something like the following to
/etc/sysctl.conf:

# OpenFlow: get rid of ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

# Mininet: Increase open file limit
fs.file-max = 100000

# Mininet: increase network buffer space
net.core.wmem_max = 16777216
net.core.rmem_max = 16777216
net.ipv4.tcp_rmem = 10240 87380 16777216
net.ipv4.tcp_rmem = 10240 87380 16777216
net.core.netdev_max_backlog = 5000

# Mininet: increase arp cache size
net.ipv4.neigh.default.gc_thresh1 = 4096 
net.ipv4.neigh.default.gc_thresh2 = 8192 
net.ipv4.neigh.default.gc_thresh3 = 16384

# Mininet .... and increase routing table size
net.ipv4.route.max_size=32768

---
Bob Lantz
rlantz@cs.stanford.edu


S
Description
No description provided
Readme 5.9 MiB
Languages
Python 76.5%
C 12.4%
Shell 10.4%
Makefile 0.7%