Added README.
Modified cleanup to use dpctl to remove kernel datapaths.
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user