coms6998

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