• 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

Introduction to Wireless LAN 802.11

Introduction to Wireless LAN 802.11

IEEE 802.11 refers to a family of specifications developed by the IEEE for Wireless LAN technology. This standard describes the MAC Layer and the physical layer standard for WLAN technology.

The following tutorials cover all the details of 802.11 WLAN standard:

By Mustafa Ergen, University of California Berkeley.

By Pablo Brenner, BreezeCOM Wireless Communication.

All the technical specification details of 802.11 MAC layer and physical layer from this IEEE 802.11 standard draft.

The IEEE 802.11 standard is full of abbreviations. A list of these abbreviations can be found in the preceding link.

C Programming

For design and development of device driver programs some in-depth knowledge of C programming is needed, like pointer usage, bit manipulation, memory functions, etc.

Below are a few tutorials which will help you to brush up your C programming skills:

Essential C
From Stanford CS Education Library

C Programming Tutorial
By Mark Burgess. 1987, 1999

Recommended C Style and Coding Standards
By L.W.Cannon,R.A.Elliott,L.W.Kirchhoff,J.H.Miller,J.M.Milner,R.W.Mitze, E.P.Whittington,Henry Spencer,David Keppel,Mark Brader.
This document describes a recommended coding standard for C programs. This coding standard is followed in device driver programming and you are advised to follow this C coding style.

Linux

All the software programming/development in NITLab is done in Linux environment. It is required for every member of the lab to be comfortable in using Linux Operating System. Following tutorials will help you get familiarized with Linux OS.

Getting Started with Linux
From Linux Online Inc.

Introduction to UNIX
By Frank G. Fiamingo, Linda Condron and Linda DeBula, The Ohio State University.

Linux Command Reference Index - A comprehensive list of most useful Linux commands

Network Tools

Kismet

Kismet is a network detector, packet sniffer, and intrusion detection system for 802.11 Wireless LANs. Kismet will work with any wireless card which supports raw monitoring mode, and can sniff 802.11a, 802.11b and 802.11g traffic.

Here you can find a tutorial on Kismet.

Iperf

Iperf is a traffic generation tool that allows the user to experiment with different TCP and UDP parameters to see how they affect network performance. It is a tool to measure maximum TCP bandwidth, allowing the tuning of various parameters and UDP characteristics. Iperf reports bandwidth, delay jitter, datagram loss.

A tutorial on iperf can be found here.

Wireshark (Ethereal)

Wireshark(formerly Ethereal) is a network packet analyzer. A network packet analyzer will try to capture network packets and tries to display that packet data as detailed as possible.
Wireshark User Guide will help you install this tool and provides comprehensive usage information.

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