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 crater.dragonflybsd.org
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
ieee80211_ratectl_none.c
sys/netproto/802_11/wlan_ratectl Makefile
sys/netproto/802_11/wlan_ratectl/amrr Makefile
ieee80211_ratectl_amrr.c
ieee80211_ratectl_amrr.h
sys/netproto/802_11/wlan_ratectl/onoe Makefile
ieee80211_ratectl_onoe.c
ieee80211_ratectl_onoe.h
Log:
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:
http://www-sop.inria.fr/rapports/sophia/RR-5208.html
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:
# http://www-sop.inria.fr/rapports/sophia/RR-5208.html
# http://www.pdos.lcs.mit.edu/papers/jbicket-ms.pdf
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
http://www.dragonflybsd.org/cvsweb/src/sbin/ifconfig/ifconfig.8.diff?r1=1.10&r2=1.11&f=u
http://www.dragonflybsd.org/cvsweb/src/sbin/ifconfig/ifieee80211.c.diff?r1=1.12&r2=1.13&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/conf/files.diff?r1=1.137&r2=1.138&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/conf/LINT.diff?r1=1.88&r2=1.89&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netproto/802_11/Makefile.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netproto/802_11/ieee80211.h.diff?r1=1.2&r2=1.3&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netproto/802_11/ieee80211_ioctl.h.diff?r1=1.2&r2=1.3&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netproto/802_11/ieee80211_node.h.diff?r1=1.2&r2=1.3&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netproto/802_11/ieee80211_var.h.diff?r1=1.4&r2=1.5&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netproto/802_11/wlan/Makefile.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netproto/802_11/wlan/ieee80211.c.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netproto/802_11/wlan/ieee80211_ioctl.c.diff?r1=1.2&r2=1.3&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/netproto/802_11/wlan/ieee80211_node.c.diff?r1=1.3&r2=1.4&f=u
More information about the Commits
mailing list