Lists of Projects
1. Programming language abstraction for wireless networks
Maple simplifies SDN programming by
(1) allowing a programmer to use a standard programming language to design an
arbitrary, centralized algorithm, which we call an algorithmic policy, to decide
the behaviors of an entire network, and (2) providing an abstraction that the
programmer-defined, centralized policy runs, conceptually, "afresh" on every
packet entering a network, and hence is oblivious to the challenge of
translating a high-level policy into sets of rules on distributed individual
switches. Can we provide a simple abstraction for wireless networks? The
abstraction allows a centralized program to decide on when to transmit each
packet on the uplink and downlink based on policies. For example, we want to
periodically transmit voIP traffic. We want to provide enough bandwidth for
video traffic. We want to perform transcoding when WiFi access points or
cellular base stations are congested. We want to protect more of P frame than
the I frame in the physical layer. How will the controller implement such an
abstraction. See SoftRAN for more
information.
Pyretic can perform sequential
composition of independent modules. Can we do the same for wireless networks,
e.g. load balancing module, mobility management module, monitoring module?
Research questions: What is the programming language abstraction for
wireless networks?
Implementation considerations: Implement in Floodlight or Maple.
2. CellVisor: virtualizing cellular networks
CellVisor virtualizes cellular network infrastructure for multiple operators.
CellVisor demultiplexes control traffic from the data plane to their
respective operators. CellVisor maintains the network information base
(NIB), a reliable storage for network topology, etc. NIB also keeps the virtual
node to physical node mapping. The CellVisor presents a view (a virtual
topology) to the operators running above. Furthermore, the CellVisor is in
charge of multi-resource allocation (switch CPU, bandwidth, forwarding
table). When an operator's controller sends OpenFlow commands to its virtual
nodes, the commands will be intercepted by the CellVisor. The CellVisor
translates the commands on virtual nodes to commands on physical nodes.
Research questions: How to support flexible slicing operators,
e.g. split and merge?
Implementation considerations: Implement on top of
HotSwap (HotSwap
builds on top of FlowVisor.
3. Scalable controller for wireless networks
How to scale up SoftCell? What are the
right mechanisms, controllers organized in a tree or recursively as logical
crossbars?
Research questions: How to design scalable controllers for wireless networks?
Implementation considerations: Implement on top of SoftCell code base.
4. SDN security
How to leverage a logically centralized control plane to defend again attacks,
e.g. DDoS or battery drain attacks in cellular networks?
Research questions:
How to design such a solution?
Implementation considerations:
Implement in Floodlight or Frenetic
5. SDN monitoring and troubleshooting
SDN makes monitoring and troubleshooting easier. How to design such a module?
See
OpenSketch for how to solve a specific problem.
Research questions:
How to design a general solution?
Implementation considerations:
Implement in Floodlight or Frenetic