Wiki Navigation

Developer Documentation

Unfortunately there is not (yet) a lot of documentation for developers. Check the source, it's quite readable and well commented.

Overview

The code consists mainly of 4 parts:

The net80211 stack from FreeBSD: Contains generic 802.11 functions and callback functions which can be overridden by devices. In the BSDs this stack supports multiple wlan hardware, but in madwifi it's obviously only used for atheros devices.

The ath part: Defines Atheros specific callbacks for the net80211 layer and accesses the hardware thru the About/HAL.

The About/HAL: Hardware Abstraction Layer. All access to the hardware has to go thru this closed source component which is maintained by Atheros. Unfortunately there is no documentation for it except the public interfaces in hal/ah.h.

The rate algorithms: Different algorithms for selecting the best transmission rate have been implemented by the rate modules in ath_rate. See UserDocs/RateControl

Dipankar Biswas has written his thesis on Madwifi/Atheros stuff: "Prototyping a Packet Scheduler..." where he examines a "global" time driven scheduling concept and discusses aspects of madwifi code in detail. http://web.it.kth.se/~dipankar/exjobb/toc.htm The link also offers a pdf.