The mac80211 subsystem for kernel developers

Johannes Berg

This documentation is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.

This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this documentation; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

For more details see the file COPYING in the source distribution of Linux.

Abstract

mac80211 is the Linux stack for 802.11 hardware that implements only partial functionality in hard- or firmware. This document defines the interface between mac80211 and low-level hardware drivers.

If you're reading this document and not the header file itself, it will be incomplete because not all documentation has been converted yet.


Table of Contents

I. The basic mac80211 driver interface
1. Basic hardware handling
2. PHY configuration
3. Virtual interfaces
4. Receive and transmit processing
what should be here
Frame format
Alignment issues
Calling into mac80211 from interrupts
functions/definitions
5. Frame filtering
II. Advanced driver interface
6. Hardware crypto acceleration
7. Multiple queues and QoS support
8. Access point mode support
9. Supporting multiple virtual interfaces
10. Hardware scan offload
III. Rate control interface
11. dummy chapter
IV. Internals
12. Key handling
Key handling basics
MORE TBD
13. Receive processing
14. Transmit processing
15. Station info handling
Programming information
STA information lifetime rules
16. Synchronisation