1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>Part I. The basic mac80211 driver interface</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="The 802.11 subsystems – for kernel developers"><link rel="up" href="mac80211-developers-guide.html" title="The mac80211 subsystem"><link rel="prev" href="mac80211-developers-guide.html" title="The mac80211 subsystem"><link rel="next" href="basics.html" title="Chapter 1. Basic hardware handling"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part I. The basic mac80211 driver interface</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="mac80211-developers-guide.html">Prev</a> </td><th width="60%" align="center">The mac80211 subsystem</th><td width="20%" align="right"> <a accesskey="n" href="basics.html">Next</a></td></tr></table><hr></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a name="idp1113286420"></a>Part I. The basic mac80211 driver interface</h1></div></div></div><div class="partintro"><div></div><p> 2 You should read and understand the information contained 3 within this part of the book while implementing a driver. 4 In some chapters, advanced usage is noted, that may be 5 skipped at first. 6 </p><p> 7 This part of the book only covers station and monitor mode 8 functionality, additional information required to implement 9 the other modes is covered in the second part of the book. 10 </p><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="chapter"><a href="basics.html">1. Basic hardware handling</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-struct-ieee80211-hw.html"><span class="phrase">struct ieee80211_hw</span></a></span><span class="refpurpose"> — 11 hardware information and state 12 </span></dt><dt><span class="refentrytitle"><a href="API-enum-ieee80211-hw-flags.html"><span class="phrase">enum ieee80211_hw_flags</span></a></span><span class="refpurpose"> — 13 hardware flags 14 </span></dt><dt><span class="refentrytitle"><a href="API-SET-IEEE80211-DEV.html"><span class="phrase">SET_IEEE80211_DEV</span></a></span><span class="refpurpose"> — 15 set device for 802.11 hardware 16 </span></dt><dt><span class="refentrytitle"><a href="API-SET-IEEE80211-PERM-ADDR.html"><span class="phrase">SET_IEEE80211_PERM_ADDR</span></a></span><span class="refpurpose"> — 17 set the permanent MAC address for 802.11 hardware 18 </span></dt><dt><span class="refentrytitle"><a href="API-struct-ieee80211-ops.html"><span class="phrase">struct ieee80211_ops</span></a></span><span class="refpurpose"> — 19 callbacks from mac80211 to the driver 20 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-alloc-hw.html"><span class="phrase">ieee80211_alloc_hw</span></a></span><span class="refpurpose"> — 21 Allocate a new hardware device 22 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-register-hw.html"><span class="phrase">ieee80211_register_hw</span></a></span><span class="refpurpose"> — 23 Register hardware device 24 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-unregister-hw.html"><span class="phrase">ieee80211_unregister_hw</span></a></span><span class="refpurpose"> — 25 Unregister a hardware device 26 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-free-hw.html"><span class="phrase">ieee80211_free_hw</span></a></span><span class="refpurpose"> — 27 free hardware descriptor 28 </span></dt></dl></dd><dt><span class="chapter"><a href="phy-handling.html">2. PHY configuration</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-struct-ieee80211-conf.html"><span class="phrase">struct ieee80211_conf</span></a></span><span class="refpurpose"> — 29 configuration of the device 30 </span></dt><dt><span class="refentrytitle"><a href="API-enum-ieee80211-conf-flags.html"><span class="phrase">enum ieee80211_conf_flags</span></a></span><span class="refpurpose"> — 31 configuration flags 32 </span></dt></dl></dd><dt><span class="chapter"><a href="iface-handling.html">3. Virtual interfaces</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-struct-ieee80211-vif.html"><span class="phrase">struct ieee80211_vif</span></a></span><span class="refpurpose"> — 33 per-interface data 34 </span></dt></dl></dd><dt><span class="chapter"><a href="rx-tx.html">4. Receive and transmit processing</a></span></dt><dd><dl><dt><span class="sect1"><a href="rx-tx.html#idp1113573900">what should be here</a></span></dt><dt><span class="sect1"><a href="bk02pt01ch04s02.html">Frame format</a></span></dt><dt><span class="sect1"><a href="bk02pt01ch04s03.html">Packet alignment</a></span></dt><dt><span class="sect1"><a href="bk02pt01ch04s04.html">Calling into mac80211 from interrupts</a></span></dt><dt><span class="sect1"><a href="bk02pt01ch04s05.html">functions/definitions</a></span></dt></dl></dd><dt><span class="chapter"><a href="filters.html">5. Frame filtering</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-enum-ieee80211-filter-flags.html"><span class="phrase">enum ieee80211_filter_flags</span></a></span><span class="refpurpose"> — 35 hardware filter flags 36 </span></dt></dl></dd><dt><span class="chapter"><a href="workqueue.html">6. The mac80211 workqueue</a></span></dt><dd><dl><dt><span class="refentrytitle"><a href="API-ieee80211-queue-work.html"><span class="phrase">ieee80211_queue_work</span></a></span><span class="refpurpose"> — 37 add work onto the mac80211 workqueue 38 </span></dt><dt><span class="refentrytitle"><a href="API-ieee80211-queue-delayed-work.html"><span class="phrase">ieee80211_queue_delayed_work</span></a></span><span class="refpurpose"> — 39 add work onto the mac80211 workqueue 40 </span></dt></dl></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="mac80211-developers-guide.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="mac80211-developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="basics.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">The mac80211 subsystem </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 1. Basic hardware handling</td></tr></table></div></body></html> 41