cvs commit: src/sbin/ifconfig ifconfig.8 ifieee80211.c src/sys/conf files src/sys/i386/conf LINT src/sys/netproto/802_11 Makefile ieee80211.h ieee80211_ioctl.h ieee80211_node.h ieee80211_ratectl.h ieee80211_var.h src/sys/netproto/802_11/wlan ...

Sepherosa Ziehau sephe at
Fri Sep 1 08:17:08 PDT 2006

sephe       2006/09/01 08:12:12 PDT

DragonFly src repository

  Modified files:
    sbin/ifconfig        ifconfig.8 ifieee80211.c 
    sys/conf             files 
    sys/i386/conf        LINT 
    sys/netproto/802_11  Makefile ieee80211.h ieee80211_ioctl.h 
                         ieee80211_node.h ieee80211_var.h 
    sys/netproto/802_11/wlan Makefile ieee80211.c 
                             ieee80211_ioctl.c ieee80211_node.c 
  Added files:
    sys/netproto/802_11  ieee80211_ratectl.h 
    sys/netproto/802_11/wlan ieee80211_ratectl.c 
    sys/netproto/802_11/wlan_ratectl Makefile 
    sys/netproto/802_11/wlan_ratectl/amrr Makefile 
    sys/netproto/802_11/wlan_ratectl/onoe Makefile 
  Implement a generic TX rate control algorithm framework in 802.11 layer.
  It is highly modulized so TX rate control algorithms can be added with ease.
  Only limited interfaces are exported for driver to use, so most of the WiFi
  drivers can be converted without too much trouble.  It does not affect WiFi
  drivers which are unaware of the new framework yet.  Also, the new framework
  allows TX rate control algorithm to be changed without touching the 802.11
  state machine or reinitializing WiFi devices.
  Two TX rate control algorithms are factored out from ath(4) driver:
  1) Onoe TX rate control algorithm, which is suitable for almost any kinds of
     WiFi NIC driver, especially for 11b devices. (*)
  2) AMRR TX rate control algorithm, which should _only_ be used by the WiFi NIC
     which supports multi-rate retry.  More information of this TX rate control
     algorithm is available at:
  In order to use the framework, individual WiFi driver needs to do following:
  1) Tell the framework, which TX rate control algorithms it supports and which
     one to be used as the default, by setting up ieee80211com.ic_ratectl.
  2) Call ieee80211_ratectl_newstate() in driver's own newstate() function.
  3) When set up hardware TX descriptors, which normally contain TX rate related
     fields, instead of accessing ieee80211_node.ni_txrate directly, call
     ieee80211_ratectl_findrate() to get a rate set from the framework.
  4) When TX completes, feed TX state (e.g. failure, number of retries) to the
     framework by calling ieee80211_ratectl_tx_complete().
  Teach ifconfig(8) to print and set the TX rate control algorithm.
  # (*) There is no formal paper for this algorithm, but following two papers
  #     have brief introduction of this TX rate control algorithm:
  Revision  Changes    Path
  1.11      +13 -1     src/sbin/ifconfig/ifconfig.8
  1.13      +40 -0     src/sbin/ifconfig/ifieee80211.c
  1.138     +4 -0      src/sys/conf/files
  1.89      +2 -0      src/sys/i386/conf/LINT
  1.6       +1 -1      src/sys/netproto/802_11/Makefile
  1.3       +2 -0      src/sys/netproto/802_11/ieee80211.h
  1.3       +1 -0      src/sys/netproto/802_11/ieee80211_ioctl.h
  1.3       +1 -0      src/sys/netproto/802_11/ieee80211_node.h
  1.5       +6 -0      src/sys/netproto/802_11/ieee80211_var.h
  1.6       +1 -0      src/sys/netproto/802_11/wlan/Makefile
  1.8       +15 -3     src/sys/netproto/802_11/wlan/ieee80211.c
  1.3       +12 -0     src/sys/netproto/802_11/wlan/ieee80211_ioctl.c
  1.4       +21 -0     src/sys/netproto/802_11/wlan/ieee80211_node.c

More information about the Commits mailing list