Mininet: A Simple Virtual Testbed for OpenFlow aka How to Squeeze a 1024-node OpenFlow Network onto your Laptop Development Version, March 2010 --- 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. Mininet may be invoked directly from the command line, and also provides a handy Python API for creating 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 (see INSTALL for additional information.) * 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) Currently Mininet includes: - A simple node infrastructure (Host, Switch, Controller classes) for creating virtual OpenFlow networks - A simple network infrastructure (Mininet class) supporting parametrized topologies (Topo subclasses.) For example, a tree network may be created with the command # 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' 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 the examples/ directory) to help you get started. Batteries are not included (yet!) However, some preliminary installation notes are included in the INSTALL file. Good luck! --- Bob Lantz rlantz@cs.stanford.edu