Scalability and performance tests!!
A goal of Mininet was "1000 nodes in a laptop" - we really need to identify the true capabilities and scalability of Mininet; I think we should have some tests which you can run to determine the largest network that you can simulate in various modes on Mininet. Ultimately scalability and performance tests should be part of a feedback loop to improve Mininet's performance and to enable scale-up and scale-out (e.g. to the original goal of simulating all of Stanford on a cluster.)
Mininet 2.0.0 Testing Plan and Projects
Measured scalability results (and possibly improved scalability)
Brief explanation: Mininet's original goal was "1000 nodes on your laptop" but such networks aren't really practical. There's no reason for this - the problem is that the existing implementation has too much overhead. We should measure scalability, profile the system, and identify possible ways of improving scalability. Notably, 1000-node networks are very slow to start up, in part because veth pair creation is slow and adding interfaces to OVS switches gets slower and slower the more switches you have!!
Expected results: Reproducible scalability test and analysis scripts for Mininet, as well as understanding and performance debugging of the whole system, hopefully resulting in a version of the system with improved scalability on a single system.
Knowledge prerequisite: Understanding of the Mininet internals, C/Linux/system calls/network namespaces, systems programming, and performance analysis at both user and kernel level. Likely systems programming of Open vSwitch and the Linux kernel.
Project Ideas for MininetMeasured scalability results (and possibly improved scalability)
Brief explanation: Mininet's original goal was "1000 nodes on your laptop" but such networks aren't really practical. There's no reason for this - the problem is that the existing implementation has too much overhead. We should measure scalability, profile the system, and identify possible ways of improving scalability. Notably, 1000-node networks are very slow to start up, in part because veth pair creation is slow and adding interfaces to OVS switches gets slower and slower the more switches you have!!
Expected results: Reproducible scalability test and analysis scripts for Mininet, as well as understanding and performance debugging of the whole system, hopefully resulting in a version of the system with improved scalability on a single system.
Knowledge prerequisite: Understanding of the Mininet internals, C/Linux/system calls/network namespaces, systems programming, and performance analysis at both user and kernel level. Likely systems programming of Open vSwitch and the Linux kernel.