The project mHOP has developed an 802.11 MAC SDR implementation for experimental communications and networking research. The MAC layer has been implemented using as starting point the Physical (PHY) layer developed by the Telecommunications Research Center Vienna FTW. The FTW source code is available at the Comprehensive GNU Radio Archive Network (CGRAN) project folder. Due to the lack of an 802.11a/g/p OFDM receiver implementation for USRP2, the receiver functionality from the PHY layer has been simulated to check the correct MAC layer operation. The source code provided by mHOP includes the initial release of the source code for the uwicore_MAC project, licensed under the GPLv3. The attached file also includes the ftw_ofdm_tx project code (developed by FTW) since it is necessary to run the uwicore_MAC software.
The MAC layer has been implemented following a Finite State Machine scheme using the Python programming language. It includes the following 802.11 mandatory functionalities: Request-to-Send/Clear-to-Send, Carrier Sensing based on power measurement, Packet Retransmission, Packet Acknowledgment, Beaconing process and Packet Fragmentation and Re-assembly. Taking as example the procedure designed by FTW to define a DATA UNICAST frame, we have defined new frame types used by the MAC layer (RTS, CTS, ACK, Beacon, Data). All the MAC frames defined in the present project are correctly formed and transmitted, and they can be captured using a commercial 802.11a/g wireless card, which allows setting up the card in promiscuous mode. It is important to note that all the 802.11 time parameters (time-slot and DCF Interframe Spacing Interval) are multiplied by a 'beta' factor, in order to adapt the MAC timing to the USRP2 timing. This factor is modifiable, depending on the speed of the processor which executes the software. Finally, the communication between layers (PHY<->MAC<->Upper Layer) has been done through stream sockets to ensure the transmission and ease the message interchange procedure between layers.
It is important to note that the MAC code provided by the Uwicore laboratory has been tested on:
If you are interested in having access to the 802.11 MAC SDR code for USRP2 developed at the Uwicore laboratory, please email email@example.com and firstname.lastname@example.org. For reference purposes, we would appreciate if in your email you indicate your name, affiliation, contact address and research activity for which you are planning to use our code. If you are a student, please also include your supervisor's name and email address. We will then send you the code in a few days.
In order to comply with our sponsor guidelines, we would appreciate if any publication using the uwicore_MAC software includes the following reference:
J.R. Gutierrez-Agullo, B. Coll-Perales and J. Gozalvez, "An IEEE 802.11 MAC Software Defined Radio Implementation for Experimental Wireless Communications and Networking Research", Proceedings of the 2010 IFIP/IEEE Wireless Days (WD'10), 20-22 October 2010, Venice (Italy).
The code has been provided to date to the following institutions: