Mininet - acmsigcomm18hackathon/hackathonprojects GitHub Wiki

Welcome to the SIGCOMM/Mininet Hackathon!

Is there a particular feature that you would like to see added to Mininet?

Why not try prototyping it at the SIGCOMM Hackathon!!

We can chat on Hackathon slack and I will try to help you out.

Useful Mininet References

Enhancements to Mininet

These are just starter ideas - you can do whatever you want and whatever you think might be useful! Also I didn't come up with all of these ideas but I can try to decipher them if needed.

  • Enhance ServerNode (host with enhanced isolation)

    • get ServerNode to work with Ubuntu 18.04/16.04/14.04
    • (unfortunately the overlayfs API changed across kernels)
    • add tests
    • rebase and merge against master
  • Native/upstream support for P4 switches in Mininet (there is some existing work in ONOS)

    • BMv2
    • TAP4S
    • eBPF
    • Intel DPDK switch (need to get you more details)
  • Better support for IPv6

    • make sure IP() and setIP() work properly
    • automatic IPv6 address assignment
  • New (heavyweight) host/node types

    • DockerHost (there are multiple existing implementations of this)
    • LxcHost
    • KvmHost
  • New Switch/Router/forwarding node types

    • QuaggaRouter
      • Some prior work in ONOS
    • eBPF switch
    • possible improvements to or derivatives of LinuxRouter
    • others?
  • Better support for mobile/WiFi network modeling

    • make it easy to model mobile hosts
    • make it easy to model abstracted access points
  • Easy support for AS (Autonomous System/ISP) modeling (notably BGP support)

    • See QuaggaRouter above
    • or maybe BIRD etc.
    • Some prior work in ONOS, Faucet
    • ideally easy mn command-line dynamic generation and automatic configuration
  • Merge in MultiOVS support

    • Faster startup for large networks
  • MiniEdit (GUI) enhancements?

  • Upstream support for new controllers (e.g. Faucet, ONOS)

  • Running Mininet in Docker (or with Docker)

    • In industry, helpful for CI testing and deployment
    • Make research more reproducible (how?)
  • Cluster Edition; there is a lot of prior work, but still opportunities to enhance or try new approaches

    • build a solid test infrastructure for Cluster Edition using ServerNode
    • simplify installation and configuration of Cluster Edition
    • test and verify the various link type
      • perhaps add other link types if it's useful?
    • Could use Kubernetes or Docker Swarm?
  • Vagrant support for Mininet environment (lower priority) ?

  • 'Pure Python' Mininet

    • rewrite mnexec in python
  • Fix interoperability between TCLink and OVS's bandwidth limits

    • there is prior work on this
  • Fix interoperability between TCLink and UserSwitch queues

  • Generate VMs on hosted CI infrastructure

    • regular "nightly build" VMs
    • Ubuntu VMs for x86
    • Ubuntu VMs for Raspberry Pi

Applications on Mininet

  • Projects that leverage OpenFlow or P4Runtime for SDN are good candidates (some examples of using Mininet in ONOS project)

Applications on ONOS

  • Closed-loop network automation and enhancement using ML
    • ONOS for network control and telemetry; Tensorflow? for model training
  • Implement a new network control-plane protocol from recent research (as an ONOS application)