COAP: A Software-Defined Approach for Managing Residential Wireless Gateways

Wireless gateways (e.g., Access Points, wireless Set-Top Boxes) act as the primary mode of internet access in most residential network deployments today. A diverse set of WiFi- capable devices access Internet-based services through these gateways, e.g., laptops, tablets and other handhelds, game controllers (XBox, Wii), media streaming devices (Apple TV, Google TV, Roku), and many more. Given its central role in these home networks, the performance and experience of users at homes depend centrally on efficient and dynamic configuration of these gateways.

In our proposed service, called COAP (Coordination framework for Open APs), participating wireless gateways (e.g., Access Points) are configured to securely connect to a cloud- based controller (Figure 2). The controller provides all necessary management services that can be operated by a third-party (potentially distinct from the individual ISPs). In general, it is desirable that all nearby APs use the same controller service for the management function. In the context of large apartment buildings, we envision that the apartment management contract with a single controller service and all residents are asked to utilize the designated controller service within the building.

The architectural components of COAP are based on work done by this team as part of the MobilityFirst Future Internet Architecture project.

For more information and collaboration opportunities, please contact: Prof. Suman Banerjee (suman@cs.wisc.edu).
COAP
An example of COAP deployment within a residential apartment building consisting of COAP capable home APs and a cloud based COAP controller.

COAP Framework Components

COAP uses OpenFlow to enable SDN style management of residential APs. Following are the main components of the COAP framework.
  • Controller: The COAP controller is implemented over the Java based open source SDN controller, Floodlight and currently runs on a standard linux server for our deployment. All the COAP controller modules (StatsManager, COAPEngine and ConfigManager) are implemented as modules within Floodlight. The controller uses OpenFlow with COAP-specific protocol extensions to collect data from the gateways as well as apply the configuration updates.

  • Protocol extensions to OpenFlow:The OpenFlow communication protocol currently consists of capabilities to exchange switch related statistics (e.g., statistics per switch port, flow, queue etc.). We augment this feature to also exchange different COAP related wireless specific statistics (e.g., airtime usage, link performance, non-WiFi activity). To transmit wireless configuration updates to gateways (e.g., switch channel, throttle airtime), we extend the OpenFlow protocol to use a mechanism analogous to the one used to send switch configuration updates (e.g., adding a flow-related rule).

  • Wireless Gateways: In our current implementation using OpenWrt based WiFi gateways, we use the open-source click framework to implement the WiFi and non-WiFi statistics gathering capabilities of the BasicStatsReporter and DiagnosticStatsReporter modules. Airshark provides the non-WiFi device detection capabilities using commodity WiFi cards. The OpenFlow module interfaces with Airshark and click as well as communicates with the SDN controller. We have instrumented the ath9k wireless driver to support APIs related to airtime management. For example, to throttle the airtime access of a gateway, we disable the transmit queue (using the AR_Q_TXD register) to block packet transmissions for the required duration. Across vendors, the underlying implementation of this feature can be driver specific and transparent to the COAP API. The APConfigManager module interfaces with the OpenWrt configuration tool (luci) to perform AP level configurations (e.g., channel, transmit power and traffic shaping). This interface can easily be modified for other platforms.

COAP whitepaper and API Overview

Most functions are fairly simple to implement.
Please refer to the white paper for detailed information about the COAP API and OpenFlow wireless extensions.

The following OpenFlow client code files (v 1.0) contain COAP related modications: openflow.h   datapath.c
These files are only meant to provide information about Openflow protocol modifications required to support COAP.

A screenshot of the different functions implemented by the COAP APs.

COAP API

COAP Diagram Access Point and controller components of the COAP framework. The "COAPManager" is the main module which manages other modules at the controller.

Publications

[pdf]
[slides]

Outsourcing Coordination and Management of Home Wireless Access Points through an Open API
Ashish Patro, Suman Banerjee
IEEE INFOCOM 2015

White paper describing the OpenFlow protocol extensions for COAP: SWhite paper
Datasets from the MobiCom 2013 work analyzed for this paper: dataset
[pdf]
[slides]

COAP: A Software-Defined Approach for Home WLAN Management through an Open API
Ashish Patro, Suman Banerjee
Workshop on Mobility in the Evolving Internet Architecture (MobiArch), ACM MobiCom 2014 Best presentation award

Demo at Open Networking Summit 2014: pdf
Proposal at Open Networking Summit 2013: pdf   poster
[pdf]
[slides]
[dataset]
Observing Home Wireless Experience through WiFi APs
Ashish Patro, Srinivas Govindan, Suman Banerjee
ACM MobiCom 2013