Revision tags: release/7.0.0_cvs, release/7.0.0, release/6.3.0_cvs, release/6.3.0 |
|
#
1b6167d2 |
| 02-Nov-2007 |
Sam Leffler <sam@FreeBSD.org> |
sync 11n support with vap code base; many changes based on interop testing with all major vendors
MFC after: 1 week
|
#
b1acbdbb |
| 05-Sep-2007 |
Sam Leffler <sam@FreeBSD.org> |
o add M_WEP mbuf flag so drivers can mark frames that are decrypted by the device and have had the crypto bits stripped from the 802.11 header o strip mbuf flags in the rx path before passing up th
o add M_WEP mbuf flag so drivers can mark frames that are decrypted by the device and have had the crypto bits stripped from the 802.11 header o strip mbuf flags in the rx path before passing up the stack
Reviewed by: thompsa, sephe, avatar Approved by: re (blanket wireless)
show more ...
|
#
b038594e |
| 25-Jun-2007 |
Sam Leffler <sam@FreeBSD.org> |
Correct msecs_to_ticks macro. This fixes problems when hz is not the default 1000 setting.
Reviewed by: thompsa, rpaulo Approved by: re (bmah)
|
#
68e8e04e |
| 11-Jun-2007 |
Sam Leffler <sam@FreeBSD.org> |
Update 802.11 wireless support: o major overhaul of the way channels are handled: channels are now fully enumerated and uniquely identify the operating characteristics; these changes are visible
Update 802.11 wireless support: o major overhaul of the way channels are handled: channels are now fully enumerated and uniquely identify the operating characteristics; these changes are visible to user applications which require changes o make scanning support independent of the state machine to enable background scanning and roaming o move scanning support into loadable modules based on the operating mode to enable different policies and reduce the memory footprint on systems w/ constrained resources o add background scanning in station mode (no support for adhoc/ibss mode yet) o significantly speedup sta mode scanning with a variety of techniques o add roaming support when background scanning is supported; for now we use a simple algorithm to trigger a roam: we threshold the rssi and tx rate, if either drops too low we try to roam to a new ap o add tx fragmentation support o add first cut at 802.11n support: this code works with forthcoming drivers but is incomplete; it's included now to establish a baseline for other drivers to be developed and for user applications o adjust max_linkhdr et. al. to reflect 802.11 requirements; this eliminates prepending mbufs for traffic generated locally o add support for Atheros protocol extensions; mainly the fast frames encapsulation (note this can be used with any card that can tx+rx large frames correctly) o add sta support for ap's that beacon both WPA1+2 support o change all data types from bsd-style to posix-style o propagate noise floor data from drivers to net80211 and on to user apps o correct various issues in the sta mode state machine related to handling authentication and association failures o enable the addition of sta mode power save support for drivers that need net80211 support (not in this commit) o remove old WI compatibility ioctls (wicontrol is officially dead) o change the data structures returned for get sta info and get scan results so future additions will not break user apps o fixed tx rate is now maintained internally as an ieee rate and not an index into the rate set; this needs to be extended to deal with multi-mode operation o add extended channel specifications to radiotap to enable 11n sniffing
Drivers: o ath: add support for bg scanning, tx fragmentation, fast frames, dynamic turbo (lightly tested), 11n (sniffing only and needs new hal) o awi: compile tested only o ndis: lightly tested o ipw: lightly tested o iwi: add support for bg scanning (well tested but may have some rough edges) o ral, ural, rum: add suppoort for bg scanning, calibrate rssi data o wi: lightly tested
This work is based on contributions by Atheros, kmacy, sephe, thompsa, mlaier, kevlo, and others. Much of the scanning work was supported by Atheros. The 11n work was supported by Marvell.
show more ...
|
#
ae8b7333 |
| 06-Jun-2007 |
Sam Leffler <sam@FreeBSD.org> |
copyright updates: o update to include 2007 o switch back to a 2-clause bsd-only license
Reviewed by: onoe
|
#
3c419c1b |
| 07-Mar-2007 |
Sam Leffler <sam@FreeBSD.org> |
When dispatching frames saved on the power save queue to a station exiting power save mode prepend them to the driver's send q instead of appending them. This insures the packets are not misordered
When dispatching frames saved on the power save queue to a station exiting power save mode prepend them to the driver's send q instead of appending them. This insures the packets are not misordered wrt any packets already q'd for the station.
This corrects a problem noticed when using a VoIP phone talking to an ath card in ap mode; the misordered packets caused noise.
Submitted by: "J.R. Oldroyd" <jr@opal.com> MFC after: 2 weeks
show more ...
|
Revision tags: release/6.2.0_cvs, release/6.2.0 |
|
#
5675bedd |
| 09-Jan-2007 |
Sam Leffler <sam@FreeBSD.org> |
reduce user-visible namespace to just what is needed
MFC after: 2 weeks
|
#
37c970e4 |
| 09-Jan-2007 |
Sam Leffler <sam@FreeBSD.org> |
bandaid to unbreak build (user code includes this file)
|
#
915f1482 |
| 08-Jan-2007 |
Sam Leffler <sam@FreeBSD.org> |
Fix potential node refcnt leak. If mbufs are q'd on ic_mgtq when the state machine clocks to INIT, node references are not reclaimed. Add a new routine ieee80211_drain_ifq that does this and use it
Fix potential node refcnt leak. If mbufs are q'd on ic_mgtq when the state machine clocks to INIT, node references are not reclaimed. Add a new routine ieee80211_drain_ifq that does this and use it instead of IF_DRAIN.
Submitted by: Sepherosa Ziehau Obtained from: DragonFly MFC after: 1 month
show more ...
|
#
246b5467 |
| 26-Jul-2006 |
Sam Leffler <sam@FreeBSD.org> |
add support for 802.11 packet injection via bpf
Together with: Andrea Bittau <a.bittau@cs.ucl.ac.uk> Reviewed by: arch@ MFC after: 1 month
|
Revision tags: release/5.5.0_cvs, release/5.5.0, release/6.1.0_cvs, release/6.1.0, release/6.0.0_cvs, release/6.0.0 |
|
#
c1225b52 |
| 08-Aug-2005 |
Sam Leffler <sam@FreeBSD.org> |
Split crypto tx+rx key indices and add a key index -> node mapping table:
Crypto changes: o change driver/net80211 key_alloc api to return tx+rx key indices; a driver can leave the rx key index se
Split crypto tx+rx key indices and add a key index -> node mapping table:
Crypto changes: o change driver/net80211 key_alloc api to return tx+rx key indices; a driver can leave the rx key index set to IEEE80211_KEYIX_NONE or set it to be the same as the tx key index (the former disables use of the key index in building the keyix->node mapping table and is the default setup for naive drivers by null_key_alloc) o add cs_max_keyid to crypto state to specify the max h/w key index a driver will return; this is used to allocate the key index mapping table and to bounds check table loookups o while here introduce ieee80211_keyix (finally) for the type of a h/w key index o change crypto notifiers for rx failures to pass the rx key index up as appropriate (michael failure, replay, etc.)
Node table changes: o optionally allocate a h/w key index to node mapping table for the station table using the max key index setting supplied by drivers (note the scan table does not get a map) o defer node table allocation to lateattach so the driver has a chance to set the max key id to size the key index map o while here also defer the aid bitmap allocation o add new ieee80211_find_rxnode_withkey api to find a sta/node entry on frame receive with an optional h/w key index to use in checking mapping table; also updates the map if it does a hash lookup and the found node has a rx key index set in the unicast key; note this work is separated from the old ieee80211_find_rxnode call so drivers do not need to be aware of the new mechanism o move some node table manipulation under the node table lock to close a race on node delete o add ieee80211_node_delucastkey to do the dirty work of deleting unicast key state for a node (deletes any key and handles key map references)
Ath driver: o nuke private sc_keyixmap mechansim in favor of net80211 support o update key alloc api
These changes close several race conditions for the ath driver operating in ap mode. Other drivers should see no change. Station mode operation for ath no longer uses the key index map but performance tests show no noticeable change and this will be fixed when the scan table is eliminated with the new scanning support.
Tested by: Michal Mertl, avatar, others Reviewed by: avatar, others MFC after: 2 weeks
show more ...
|
#
bc5627d9 |
| 06-Jul-2005 |
Sam Leffler <sam@FreeBSD.org> |
Fix handling of data frames queued for a station in power save mode: don't mark the MORE_DATA bit when taking it off the ps queue, there's no 802.11 header then; we must wait to do this at encap time
Fix handling of data frames queued for a station in power save mode: don't mark the MORE_DATA bit when taking it off the ps queue, there's no 802.11 header then; we must wait to do this at encap time so mark the mbuf instead.
Reviewed by: avatar Approved by: re (scottl) Obtained from: Atheros
show more ...
|
Revision tags: release/5.4.0_cvs, release/5.4.0 |
|
#
0942c81c |
| 04-Apr-2005 |
Sam Leffler <sam@FreeBSD.org> |
remove extern from function decls
|
#
0fc5fe12 |
| 29-Mar-2005 |
Sam Leffler <sam@FreeBSD.org> |
pass re-association events up using a new message type
|
Revision tags: release/4.11.0_cvs, release/4.11.0 |
|
#
1f1d7810 |
| 31-Dec-2004 |
Sam Leffler <sam@FreeBSD.org> |
bump copyright for 2005
|
#
8a1b9b6a |
| 08-Dec-2004 |
Sam Leffler <sam@FreeBSD.org> |
Update 802.11 support; too much new functionality to fully describe here but it includes completed 802.11g, WPA, 802.11i, 802.1x, WME/WMM, AP-side power-save, crypto plugin framework, authenticator p
Update 802.11 support; too much new functionality to fully describe here but it includes completed 802.11g, WPA, 802.11i, 802.1x, WME/WMM, AP-side power-save, crypto plugin framework, authenticator plugin framework, and access control plugin frameowrk.
show more ...
|
#
b6108616 |
| 07-Apr-2010 |
Rui Paulo <rpaulo@FreeBSD.org> |
net80211 rate control framework (net80211 ratectl).
This framework allows drivers to abstract the rate control algorithm and just feed the framework with the usable parameters. The rate control fram
net80211 rate control framework (net80211 ratectl).
This framework allows drivers to abstract the rate control algorithm and just feed the framework with the usable parameters. The rate control framework will now deal with passing the parameters to the selected algorithm. Right now we have AMRR (the default) and RSSADAPT but there's no way to select one with ifconfig, yet. The objective is to have more rate control algorithms in the net80211 stack so all drivers[0] can use it. Ideally, we'll have the well-known sample rate control algorithm in the net80211 at some point so all drivers can use it (not just ath).
[0] all drivers that do rate control in software, that is.
Reviewed by: bschmidt, thompsa, weyongo MFC after: 1 months
show more ...
|
#
11e9b8ba |
| 04-Aug-2009 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
- MFC @196061
|
#
59aa14a9 |
| 11-Jul-2009 |
Rui Paulo <rpaulo@FreeBSD.org> |
Implementation of the upcoming Wireless Mesh standard, 802.11s, on the net80211 wireless stack. This work is based on the March 2009 D3.0 draft standard. This standard is expected to become final nex
Implementation of the upcoming Wireless Mesh standard, 802.11s, on the net80211 wireless stack. This work is based on the March 2009 D3.0 draft standard. This standard is expected to become final next year. This includes two main net80211 modules, ieee80211_mesh.c which deals with peer link management, link metric calculation, routing table control and mesh configuration and ieee80211_hwmp.c which deals with the actually routing process on the mesh network. HWMP is the mandatory routing protocol on by the mesh standard, but others, such as RA-OLSR, can be implemented.
Authentication and encryption are not implemented.
There are several scripts under tools/tools/net80211/scripts that can be used to test different mesh network topologies and they also teach you how to setup a mesh vap (for the impatient: ifconfig wlan0 create wlandev ... wlanmode mesh).
A new build option is available: IEEE80211_SUPPORT_MESH and it's enabled by default on GENERIC kernels for i386, amd64, sparc64 and pc98.
Drivers that support mesh networks right now are: ath, ral and mwl.
More information at: http://wiki.freebsd.org/WifiMesh
Please note that this work is experimental. Also, please note that bridging a mesh vap with another network interface is not yet supported.
Many thanks to the FreeBSD Foundation for sponsoring this project and to Sam Leffler for his support. Also, I would like to thank Gateworks Corporation for sending me a Cambria board which was used during the development of this project.
Reviewed by: sam Approved by: re (kensmith) Obtained from: projects/mesh11s
show more ...
|
#
5b16c28c |
| 05-Jul-2009 |
Sam Leffler <sam@FreeBSD.org> |
Add ieee80211_ageq; a facility for staging packets that require long-term work before they can be serviced. Packets are tagged and assigned an age (in seconds) at the point they are added to the que
Add ieee80211_ageq; a facility for staging packets that require long-term work before they can be serviced. Packets are tagged and assigned an age (in seconds) at the point they are added to the queue. If a packet is not retrieved before it's age expires it is reclaimed. Tagging can take two forms: a reference to an ieee80211_node (as happens in the tx path) or an opaque token in cases where there is no reference or the node structure is not stable (i.e. it's going to be destroyed).
o add ic_stageq to replace the per-node wds staging queue used for dynamic wds o add ieee80211_mac_hash for building ageq tokens; this computes a 32-bit hash from an 802.11 mac address (copied from the bridge) o while here fix a stray ';' noticed in IEEE80211_PSQ_INIT
Reviewed by: rpaulo Approved by: re (kensmith)
show more ...
|
#
2e370a5c |
| 26-May-2009 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
Merge from HEAD
|
#
f6ac5011 |
| 20-May-2009 |
Sam Leffler <sam@FreeBSD.org> |
Prepare to distribute sysctl code to reduce global definitions: o expose net.wlan sysctl node o expose ieee80211_sysctl_msecs_ticks
Reviewed by: rpaulo, thompsa
|
#
e7153b25 |
| 07-May-2009 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
Merge from HEAD
|
#
5efea30f |
| 02-May-2009 |
Andrew Thompson <thompsa@FreeBSD.org> |
Create a taskqueue for each wireless interface which provides a serialised sleepable context for net80211 driver callbacks. This removes the need for USB and firmware based drivers to roll their own
Create a taskqueue for each wireless interface which provides a serialised sleepable context for net80211 driver callbacks. This removes the need for USB and firmware based drivers to roll their own code to defer the chip programming for state changes, scan requests, channel changes and mcast/promisc updates. When a driver callback completes the hardware state is now guaranteed to have been updated and is in sync with net80211 layer.
This nukes around 1300 lines of code from the wireless device drivers making them more readable and less race prone.
The net80211 layer has been updated as follows - all state/channel changes are serialised on the taskqueue. - ieee80211_new_state() always queues and can now be called from any context - scanning runs from a single taskq function and executes to completion. driver callbacks are synchronous so the channel, phy mode and rx filters are guaranteed to be set in hardware before probe request frames are transmitted.
Help and contributions from Sam Leffler.
Reviewed by: sam
show more ...
|
Revision tags: release/7.2.0_cvs, release/7.2.0 |
|
#
9a841c7f |
| 27-Apr-2009 |
Sam Leffler <sam@FreeBSD.org> |
Store the tx seq# of an 802.11 frame in the mbuf pkthdr; this will be used for s/w retransmit schemes that want to access this information w/o the overhead of decoding the raw frame. Note this also
Store the tx seq# of an 802.11 frame in the mbuf pkthdr; this will be used for s/w retransmit schemes that want to access this information w/o the overhead of decoding the raw frame. Note this also allows drivers to record this information w/o writing the frame when the seq# is obtained through an out-of-band mechanism (e.g. when a h/w assigned seq# is reported in a descriptor on tx done notification).
Reviewed by: sephe, avatar
show more ...
|