• 1
  • 2
  • 3
  • 4

Activities

  • NITOS Outdoor deployment consists of powerful nodes that feature multiple wireless interfaces and allow for experimentation with heterogeneous (Wi-Fi, WiMAX,

    Read More
  • The setup NITOS testbed is currently using is a fixed setup (employing no mobility between BSs) that does not require

    Read More
  • Towards the development of a remote accessible LTE testbed, where experimenters from all the word will be able to run

    Read More
  • NITOS facility provides remote access to OpenFlow switches (2 x Pronto 3290 , 2 x HP 3800 ), enabling the user to create

    Read More
  • NITlab developed a software defined radio (SDR) testbed that consists of 18 Universal Software Radio Peripheral (USRP) devices attached to

    Read More
  • NITOS is an Intelligent Transport System (ITS) compatible facility thanks to the implementation of the key components of the ITS

    Read More
  • NITOS cloud infrastructure is based on HP GEN8 blade servers and one HP DL380p GEN8 server. Cloud Infrastructure UTH Each blade server has

    Read More

NITOS

The Future Internet Facility

  • Outdoor Testbed

    Experiments under real world environment Read More
  • Indoor Testbed

    Experiments in RF isolated environment Read More
  • Office testbed

    Experiments in an office environment Read More
  • 1
  • 2
  • 3

MadWiFi Driver

Since we started working on open source drivers we realized that there is no organized documentation that would give a clear and sufficient information in the field. Questions as "Which part of the MAC protocol is controlled by the driver" or "What are the differences between the available open source drivers?" were not easy to be answered in the beginning. Later, more advanced questions such as "How does rate adaptation work in MadWifi?" or "How can I implement QoS schemes in the driver" came into the picture.

Therefore, we decided to build a tutorial that would organize in a systematic way the information that someone needs to know in order to work on the implementation of wireless protocols using open source drivers. Through this tutorial we intend to give the appropriate information to guide a researcher from simple introductory concepts to more and more advanced issues. We cover issues related to drivers programming in general, as well as MadWifi-specific documentation. This information is based on our own experience and we hope that it will help others to understand the whole concept.

Introduction to Device Driver Programming

A device driver is a computer program which allows a higher level computer program to interact with a device. It simplifies programming by acting as a translator between a device and the applications or operating systems that use it. Device drivers are device dependent software programs.

A classic reference for device driver programming is Linux Device Drivers, Third Edition by Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman.

For more in depth knowledge go through the following books which are a great complement to Linux Device Drivers:
The Linux Kernel by David A. Rusling and Understanding Linux Network Internals by Christian Benvenuti

Also see: Device Drivers - A short tutorial on device drivers.

MadWiFi - General Description

A general description of transmission and reception procedure in MadWiFi driver in a state-diagram form is provided in the following link:

MafWiFi-Summary.pdf

A users guide regarding configuration of MadWiFi using Wireless Extensions is provided in the following link:

MafWiFi-Users-Guide.pdf

MadWiFi - specific tutorials

In order to understand MadWifi, you need to go through the basics of the transmission and reception procedure, as well as the basic structures used in MadWifi. You can start by reading the following document which contains the common notation you'll encounter in the MadWifi code:

Then it would be wise to have a look at sk_buff, which is probably the most important data structure in the code. The following document describes the main members and functions of this structure:

After that you should get into the details of the transmission procedure. The documents below describe the three most important functions in transmission, which always starts by calling the function ath_hardstart.

The reception procedure should then be the object of your focus. Reception in MadWifi starts by a call to ath_rx_tasklet, which then calls other reception-related functions either directly or not.

Also take a look at the following document, which gathers some of the main functions in transmission and reception.

What Our Experimenters Say

  • NITOS is a very reliable and well managed platform. The offered infrastructure and features are great. The management team is very supportive.

    Mustafa Al-Bado
    Postdoctoral researcher
    Insight centre, University College Cork (UCC)
  • 1
  • 2
 
uth
image
image
image
 
 

Login Form