Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 334d0945 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.26: (1090 commits)
  [NET]: Fix and allocate less memory for ->priv'less netdevices
  [IPV6]: Fix dangling references on error in fib6_add().
  [NETLABEL]: Fix NULL deref in netlbl_unlabel_staticlist_gen() if ifindex not found
  [PKT_SCHED]: Fix datalen check in tcf_simp_init().
  [INET]: Uninline the __inet_inherit_port call.
  [INET]: Drop the inet_inherit_port() call.
  SCTP: Initialize partial_bytes_acked to 0, when all of the data is acked.
  [netdrvr] forcedeth: internal simplifications; changelog removal
  phylib: factor out get_phy_id from within get_phy_device
  PHY: add BCM5464 support to broadcom PHY driver
  cxgb3: Fix __must_check warning with dev_dbg.
  tc35815: Statistics cleanup
  natsemi: fix MMIO for PPC 44x platforms
  [TIPC]: Cleanup of TIPC reference table code
  [TIPC]: Optimized initialization of TIPC reference table
  [TIPC]: Remove inlining of reference table locking routines
  e1000: convert uint16_t style integers to u16
  ixgb: convert uint16_t style integers to u16
  sb1000.c: make const arrays static
  sb1000.c: stop inlining largish static functions
  ...
parents d1a4be63 d1643d24
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -11,7 +11,8 @@ DOCBOOKS := wanbook.xml z8530book.xml mcabook.xml videobook.xml \
	    procfs-guide.xml writing_usb_driver.xml networking.xml \
	    kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \
	    gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \
	    genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml
	    genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \
	    mac80211.xml

###
# The build process is as follows (targets):
+335 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
	"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>

<book id="mac80211-developers-guide">
  <bookinfo>
    <title>The mac80211 subsystem for kernel developers</title>

    <authorgroup>
      <author>
        <firstname>Johannes</firstname>
        <surname>Berg</surname>
        <affiliation>
          <address><email>johannes@sipsolutions.net</email></address>
        </affiliation>
      </author>
    </authorgroup>

    <copyright>
      <year>2007</year>
      <year>2008</year>
      <holder>Johannes Berg</holder>
    </copyright>

    <legalnotice>
      <para>
        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.
      </para>

      <para>
        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.
      </para>

      <para>
        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
      </para>

      <para>
        For more details see the file COPYING in the source
        distribution of Linux.
      </para>
    </legalnotice>

    <abstract>
!Pinclude/net/mac80211.h Introduction
!Pinclude/net/mac80211.h Warning
    </abstract>
  </bookinfo>

  <toc></toc>

<!--
Generally, this document shall be ordered by increasing complexity.
It is important to note that readers should be able to read only
the first few sections to get a working driver and only advanced
usage should require reading the full document.
-->

  <part>
    <title>The basic mac80211 driver interface</title>
    <partintro>
      <para>
        You should read and understand the information contained
        within this part of the book while implementing a driver.
        In some chapters, advanced usage is noted, that may be
        skipped at first.
      </para>
      <para>
        This part of the book only covers station and monitor mode
        functionality, additional information required to implement
        the other modes is covered in the second part of the book.
      </para>
    </partintro>

    <chapter id="basics">
      <title>Basic hardware handling</title>
      <para>TBD</para>
      <para>
        This chapter shall contain information on getting a hw
        struct allocated and registered with mac80211.
      </para>
      <para>
        Since it is required to allocate rates/modes before registering
        a hw struct, this chapter shall also contain information on setting
        up the rate/mode structs.
      </para>
      <para>
        Additionally, some discussion about the callbacks and
        the general programming model should be in here, including
        the definition of ieee80211_ops which will be referred to
        a lot.
      </para>
      <para>
        Finally, a discussion of hardware capabilities should be done
        with references to other parts of the book.
      </para>
<!-- intentionally multiple !F lines to get proper order -->
!Finclude/net/mac80211.h ieee80211_hw
!Finclude/net/mac80211.h ieee80211_hw_flags
!Finclude/net/mac80211.h SET_IEEE80211_DEV
!Finclude/net/mac80211.h SET_IEEE80211_PERM_ADDR
!Finclude/net/mac80211.h ieee80211_ops
!Finclude/net/mac80211.h ieee80211_alloc_hw
!Finclude/net/mac80211.h ieee80211_register_hw
!Finclude/net/mac80211.h ieee80211_get_tx_led_name
!Finclude/net/mac80211.h ieee80211_get_rx_led_name
!Finclude/net/mac80211.h ieee80211_get_assoc_led_name
!Finclude/net/mac80211.h ieee80211_get_radio_led_name
!Finclude/net/mac80211.h ieee80211_unregister_hw
!Finclude/net/mac80211.h ieee80211_free_hw
    </chapter>

    <chapter id="phy-handling">
      <title>PHY configuration</title>
      <para>TBD</para>
      <para>
        This chapter should describe PHY handling including
        start/stop callbacks and the various structures used.
      </para>
!Finclude/net/mac80211.h ieee80211_conf
!Finclude/net/mac80211.h ieee80211_conf_flags
    </chapter>

    <chapter id="iface-handling">
      <title>Virtual interfaces</title>
      <para>TBD</para>
      <para>
        This chapter should describe virtual interface basics
        that are relevant to the driver (VLANs, MGMT etc are not.)
        It should explain the use of the add_iface/remove_iface
        callbacks as well as the interface configuration callbacks.
      </para>
      <para>Things related to AP mode should be discussed there.</para>
      <para>
        Things related to supporting multiple interfaces should be
        in the appropriate chapter, a BIG FAT note should be here about
        this though and the recommendation to allow only a single
        interface in STA mode at first!
      </para>
!Finclude/net/mac80211.h ieee80211_if_types
!Finclude/net/mac80211.h ieee80211_if_init_conf
!Finclude/net/mac80211.h ieee80211_if_conf
    </chapter>

    <chapter id="rx-tx">
      <title>Receive and transmit processing</title>
      <sect1>
        <title>what should be here</title>
        <para>TBD</para>
        <para>
          This should describe the receive and transmit
          paths in mac80211/the drivers as well as
          transmit status handling.
        </para>
      </sect1>
      <sect1>
        <title>Frame format</title>
!Pinclude/net/mac80211.h Frame format
      </sect1>
      <sect1>
        <title>Alignment issues</title>
        <para>TBD</para>
      </sect1>
      <sect1>
        <title>Calling into mac80211 from interrupts</title>
!Pinclude/net/mac80211.h Calling mac80211 from interrupts
      </sect1>
      <sect1>
        <title>functions/definitions</title>
!Finclude/net/mac80211.h ieee80211_rx_status
!Finclude/net/mac80211.h mac80211_rx_flags
!Finclude/net/mac80211.h ieee80211_tx_control
!Finclude/net/mac80211.h ieee80211_tx_status_flags
!Finclude/net/mac80211.h ieee80211_rx
!Finclude/net/mac80211.h ieee80211_rx_irqsafe
!Finclude/net/mac80211.h ieee80211_tx_status
!Finclude/net/mac80211.h ieee80211_tx_status_irqsafe
!Finclude/net/mac80211.h ieee80211_rts_get
!Finclude/net/mac80211.h ieee80211_rts_duration
!Finclude/net/mac80211.h ieee80211_ctstoself_get
!Finclude/net/mac80211.h ieee80211_ctstoself_duration
!Finclude/net/mac80211.h ieee80211_generic_frame_duration
!Finclude/net/mac80211.h ieee80211_get_hdrlen_from_skb
!Finclude/net/mac80211.h ieee80211_get_hdrlen
!Finclude/net/mac80211.h ieee80211_wake_queue
!Finclude/net/mac80211.h ieee80211_stop_queue
!Finclude/net/mac80211.h ieee80211_start_queues
!Finclude/net/mac80211.h ieee80211_stop_queues
!Finclude/net/mac80211.h ieee80211_wake_queues
      </sect1>
    </chapter>

    <chapter id="filters">
      <title>Frame filtering</title>
!Pinclude/net/mac80211.h Frame filtering
!Finclude/net/mac80211.h ieee80211_filter_flags
    </chapter>
  </part>

  <part id="advanced">
    <title>Advanced driver interface</title>
    <partintro>
      <para>
       Information contained within this part of the book is
       of interest only for advanced interaction of mac80211
       with drivers to exploit more hardware capabilities and
       improve performance.
      </para>
    </partintro>

    <chapter id="hardware-crypto-offload">
      <title>Hardware crypto acceleration</title>
!Pinclude/net/mac80211.h Hardware crypto acceleration
<!-- intentionally multiple !F lines to get proper order -->
!Finclude/net/mac80211.h set_key_cmd
!Finclude/net/mac80211.h ieee80211_key_conf
!Finclude/net/mac80211.h ieee80211_key_alg
!Finclude/net/mac80211.h ieee80211_key_flags
    </chapter>

    <chapter id="qos">
      <title>Multiple queues and QoS support</title>
      <para>TBD</para>
!Finclude/net/mac80211.h ieee80211_tx_queue_params
!Finclude/net/mac80211.h ieee80211_tx_queue_stats_data
!Finclude/net/mac80211.h ieee80211_tx_queue
    </chapter>

    <chapter id="AP">
      <title>Access point mode support</title>
      <para>TBD</para>
      <para>Some parts of the if_conf should be discussed here instead</para>
      <para>
        Insert notes about VLAN interfaces with hw crypto here or
        in the hw crypto chapter.
      </para>
!Finclude/net/mac80211.h ieee80211_get_buffered_bc
!Finclude/net/mac80211.h ieee80211_beacon_get
    </chapter>

    <chapter id="multi-iface">
      <title>Supporting multiple virtual interfaces</title>
      <para>TBD</para>
      <para>
        Note: WDS with identical MAC address should almost always be OK
      </para>
      <para>
        Insert notes about having multiple virtual interfaces with
        different MAC addresses here, note which configurations are
        supported by mac80211, add notes about supporting hw crypto
        with it.
      </para>
    </chapter>

    <chapter id="hardware-scan-offload">
      <title>Hardware scan offload</title>
      <para>TBD</para>
!Finclude/net/mac80211.h ieee80211_scan_completed
    </chapter>
  </part>

  <part id="rate-control">
    <title>Rate control interface</title>
    <partintro>
      <para>TBD</para>
      <para>
       This part of the book describes the rate control algorithm
       interface and how it relates to mac80211 and drivers.
      </para>
    </partintro>
    <chapter id="dummy">
      <title>dummy chapter</title>
      <para>TBD</para>
    </chapter>
  </part>

  <part id="internal">
    <title>Internals</title>
    <partintro>
      <para>TBD</para>
      <para>
       This part of the book describes mac80211 internals.
      </para>
    </partintro>

    <chapter id="key-handling">
      <title>Key handling</title>
      <sect1>
        <title>Key handling basics</title>
!Pnet/mac80211/key.c Key handling basics
      </sect1>
      <sect1>
        <title>MORE TBD</title>
        <para>TBD</para>
      </sect1>
    </chapter>

    <chapter id="rx-processing">
      <title>Receive processing</title>
      <para>TBD</para>
    </chapter>

    <chapter id="tx-processing">
      <title>Transmit processing</title>
      <para>TBD</para>
    </chapter>

    <chapter id="sta-info">
      <title>Station info handling</title>
      <sect1>
        <title>Programming information</title>
!Fnet/mac80211/sta_info.h sta_info
!Fnet/mac80211/sta_info.h ieee80211_sta_info_flags
      </sect1>
      <sect1>
        <title>STA information lifetime rules</title>
!Pnet/mac80211/sta_info.c STA information lifetime rules
      </sect1>
    </chapter>

    <chapter id="synchronisation">
      <title>Synchronisation</title>
      <para>TBD</para>
      <para>Locking, lots of RCU</para>
    </chapter>
  </part>
</book>
+0 −37
Original line number Diff line number Diff line
@@ -203,14 +203,6 @@ Who: linuxppc-dev@ozlabs.org

---------------------------

What:   sk98lin network driver
When:   Feburary 2008
Why:    In kernel tree version of driver is unmaintained. Sk98lin driver
	replaced by the skge driver. 
Who:    Stephen Hemminger <shemminger@linux-foundation.org>

---------------------------

What:	i386/x86_64 bzImage symlinks
When:	April 2010

@@ -221,8 +213,6 @@ Who: Thomas Gleixner <tglx@linutronix.de>

---------------------------

---------------------------

What:	i2c-i810, i2c-prosavage and i2c-savage4
When:	May 2008
Why:	These drivers are superseded by i810fb, intelfb and savagefb.
@@ -230,33 +220,6 @@ Who: Jean Delvare <khali@linux-fr.org>

---------------------------

What:	bcm43xx wireless network driver
When:	2.6.26
Files:	drivers/net/wireless/bcm43xx
Why:	This driver's functionality has been replaced by the
	mac80211-based b43 and b43legacy drivers.
Who:	John W. Linville <linville@tuxdriver.com>

---------------------------

What:	ieee80211 softmac wireless networking component
When:	2.6.26 (or after removal of bcm43xx and port of zd1211rw to mac80211)
Files:	net/ieee80211/softmac
Why:	No in-kernel drivers will depend on it any longer.
Who:	John W. Linville <linville@tuxdriver.com>

---------------------------

What:	rc80211-simple rate control algorithm for mac80211
When:	2.6.26
Files:	net/mac80211/rc80211-simple.c
Why:	This algorithm was provided for reference but always exhibited bad
	responsiveness and performance and has some serious flaws. It has been
	replaced by rc80211-pid.
Who:	Stefano Brivio <stefano.brivio@polimi.it>

---------------------------

What (Why):
	- include/linux/netfilter_ipv4/ipt_TOS.h ipt_tos.h header files
	  (superseded by xt_TOS/xt_tos target & match)
+1 −1
Original line number Diff line number Diff line
@@ -80,7 +80,7 @@ once you enable the radio, will depend on your hardware and driver combination.
e.g. With the BCM4318 on the Acer Aspire 5020 series:

ndiswrapper: Light blinks on when transmitting
bcm43xx/b43: Solid light, blinks off when transmitting
b43: Solid light, blinks off when transmitting

Wireless radio control is unconditionally enabled - all Acer laptops that support
acer-wmi come with built-in wireless. However, should you feel so inclined to
+0 −2
Original line number Diff line number Diff line
@@ -100,8 +100,6 @@ tuntap.txt
	- TUN/TAP device driver, allowing user space Rx/Tx of packets.
vortex.txt
	- info on using 3Com Vortex (3c590, 3c592, 3c595, 3c597) Ethernet cards.
wan-router.txt
	- WAN router documentation
wavelan.txt
	- AT&T GIS (nee NCR) WaveLAN card: An Ethernet-like radio transceiver
x25.txt
Loading