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 5.0 or greater 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) 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 (using someNetwork.run( test ) ) - 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 ) - 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
"examples/treeping64.py" did not exist on "2a0cad3c85a91bf927de2e2ed542bec0ed8457be"
Name | Last commit | Last update |
---|---|---|
examples | ||
README | ||
cleanup | ||
mininet.py | ||
netns.c |