Tutorial: Building a Custom Scheduled MAC with the 802.11 Reference Design

A major feature of the 802.11 Reference Design is its compliance to the 802.11 standard to enable interaction with commercial Wi-Fi devices. This is the design in its "reference" state -- a known quantity that is intended to be modified to suit the needs of research applications. In our other app notes, we made small modifications to the design and characterized how those design changes manifested using the WLAN Experiments Framework. Ultimately, however, those design changes were small and the resulting design differed from the 802.11 standard only slightly.

This application note is different -- we will build a non-standard MAC from scratch and use the WLAN Experiments Framework to characterize our novel design. This application note is structured as a tutorial, describing step-by-step how to build and evaluate a custom MAC protocol. The MAC presented here is very different from the standard 802.11 Distributed Coordination Function (DCF). The standard DCF is a classic example of a random access MAC. In this tutorial, we will build the opposite- a simple, scheduled-access, token-passing MAC we call "TokenMAC".

Overview of TokenMAC

The purpose of a MAC protocol is to share the wireless medium among competing devices. The standard 802.11 DCF employs carrier sensing and random transmission timing to coordinate medium access without a central controller. In this tutorial, we will implement a different kind of MAC protocol, one based on the idea of a token ring. Our custom MAC uses a centrally controlled token passing scheme to assign transmission slots deterministically. This MAC avoids collisions by explicitly reserving the medium for each node in the network. One node in the network (the AP in our case) is responsible for defining the schedule and passing the token.

TokenMAC avoids contention through explicit token passing from a managing Access Point (AP).

Implementing TokenMAC requires modifications to the MAC code in the 802.11 Reference Design. This tutorial does not require any changes to the Reference Design hardware.


Tutorial Organization

This application note is organized as follows:

  • Changes to CPU_HIGH Code -- Describes the changes required in the high-level MAC code. TokenMAC requires modifications to the AP application to implement the MAC's central controller.
  • Changes to CPU_LOW Code -- Describes the changes required to the low-level MAC code. The low-level TokenMAC implementation is based on NoMAC, which provides a "clean slate" on which to build the custom MAC protocol.
  • Characterizing the Design -- Once TokenMAC is operational, we will use the WLAN Experiments Framework to characterize the design and analyze its strengths and its weaknesses.
  • Extensions -- Having identified a few of TokenMAC's key weaknesses in the previous section, we will describe and construct enhancements to the basic TokenMAC protocol. The intent of this section is to demonstrate how to "close the loop" between protocol design, experiment design, characterization, and re-design based on empirical results.
Last modified 9 years ago Last modified on Jul 15, 2015, 9:29:21 AM