#
296373 |
|
04-Mar-2016 |
marius |
- Copy stable/10@296371 to releng/10.3 in preparation for 10.3-RC1 builds. - Update newvers.sh to reflect RC1. - Update __FreeBSD_version to reflect 10.3. - Update default pkg(8) configuration to use the quarterly branch.
Approved by: re (implicit) |
#
256281 |
|
10-Oct-2013 |
gjb |
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
#
252369 |
|
29-Jun-2013 |
rpaulo |
Don't panic the kernel if we run wpa_supplicant on a hostap VAP.
Reviewed by: adrian
|
#
251488 |
|
07-Jun-2013 |
adrian |
Don't hold the node lock over the iterator.
The "find node" function call will increase the node reference anyway; so there's no reason to hold the node table lock during the MLME change.
The only reason I could think of is to stop overlapping mlme ioctls from causing issues, but this should be fixed a different way.
This fixes a whole class of LORs that creep up when nodes are being timed out or removed by hostapd.
Tested:
* AR5416, hostap, with nodes coming and going. No LORs or stability issues were observed.
|
#
229968 |
|
11-Jan-2012 |
adrian |
Add the ability to kick an existing mesh node without waiting for it to time out.
Submitted by: Monthadar Al Jaberi <monthadar@gmail.com>
|
#
228621 |
|
17-Dec-2011 |
bschmidt |
Fix some net80211 enum nits: - ic_vap_create() uses an ieee80211_opmode argument - ieee80211_rate2media() takes an ieee80211_phymode argument - ieee80211_plcp2rate() takes an ieee80211_phytype argument - cast to enum ieee80211_protmode and ieee80211_roamingmode to silence compiler warnings
Submitted by: arundel@
|
#
227331 |
|
08-Nov-2011 |
adrian |
Add 802.11h quiet time element support into net80211.
This supports both station and hostap modes:
* Station mode quiet time element support listens to quiet time IE's and modifies the local quiet time configuration as appropriate; * Hostap mode both obeys the locally configured quiet time period and includes it in beacon frames so stations also can obey as needed.
Submitted by: Himali Patel <himali.patel@sibridgetech.com> Sponsored by: Sibridge Technologies
|
#
223145 |
|
16-Jun-2011 |
kevlo |
Change i_len in ieee80211req to be unsigned and fix other signed/unsigned issues.
Reviewed by: bschmidt Obtained from: NetBSD
|
#
218092 |
|
30-Jan-2011 |
bschmidt |
Instead of always returning 0 to a scan request, indicate if there is one running already.
MFC after: 1 month
|
#
208699 |
|
01-Jun-2010 |
rpaulo |
Fix resource leaks in ieee80211_ioctl_setchanlist() in case of error.
Found with: Coverity Prevent(tm) CID: 4115 MFC after: 3 days
|
#
208693 |
|
01-Jun-2010 |
rpaulo |
Properly initialize stack variable sr in setmlme_assoc_adhoc().
Found with: Coverity Prevent(tm) CID 4365 MFC after: 3 days
|
#
206457 |
|
10-Apr-2010 |
bschmidt |
Add WPA-None support: * WPA-None requires ap_scan=2: The major difference between ap_scan=1 (default) and 2 is, that no IEEE80211_IOC_SCAN* ioctls/functions are called, though, there is a dependency on those. For example the call to wpa_driver_bsd_scan() sets the interface UP, this never happens, therefore the interface must be marked up in wpa_driver_bsd_associate(). IEEE80211_IOC_SSID also is not called, which means that the SSID has not been set prior to the IEEE80211_MLME_ASSOC call. * WPA-None has no support for sequence number updates, it doesn't make sense to check for replay violations.. * I had some crashes right after the switch to RUN state, issue is that sc->sc_lastrs was not yet defined.
Approved by: rpaulo (mentor) MFC after: 3 weeks
|
#
202935 |
|
24-Jan-2010 |
syrinx |
While flushing the multicast filter of an interface, do not zero the relevant ifmultiaddr structures' reference to the parent interface, unless the parent interface is really detaching. While here, program only link layer multicast filters to a wlan's hardware parent interface.
PR: kern/142391, kern/142392 Reviewed by: sam, rpaolo, bms MFC after: 1 week
|
#
195618 |
|
11-Jul-2009 |
rpaulo |
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
|
#
194021 |
|
11-Jun-2009 |
sam |
use negotiated short gi to calculate the tx rate; using the htcaps does not take into account local state (e.g. manual disable of sgi)
|
#
193655 |
|
07-Jun-2009 |
sam |
iv_flags_ext is full, make room by moving HT-related flags to a new iv_flags_ht word
|
#
193439 |
|
04-Jun-2009 |
sam |
o station mode channel switch support o IEEE80211_IOC_CHANSWITCH fixups: - restrict to hostap vaps - return EOPNOTSUPP instead of EINVAL when applied to !hostap vap or to a vap w/o 11h enabled - interpret count of 0 to mean cancel the current CSA
Reviewed by: rpaulo, avatar
|
#
193347 |
|
02-Jun-2009 |
sam |
fix typo
|
#
193312 |
|
02-Jun-2009 |
sam |
Remove hack used to deal with ifnet teardown now that if_detach and the bridge do a better job. o move ether_ifdetach to the top of ieee80211_detach o do not clear if_softc at the top of ieee80211_detach; we no longer need this because we are safeguarded against calls coming back through if_ioctl o simplify the bpf tracker now that we don't null if_softc
This also fixes an issue where having a bpf consumer active when a vap is destroyed would cause a crash because bpf referenced free'd memory.
Reviewed by: imp
|
#
191746 |
|
02-May-2009 |
thompsa |
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
|
#
191555 |
|
26-Apr-2009 |
sam |
add IEEE80211_FEXT_4ADDR to indicate ieee80211_encap should do 4-address encapsulation when relaying frames; this reduces the cost of the test and enables use for situations other than "sta vap + dwds"
|
#
191532 |
|
26-Apr-2009 |
sam |
correct bssid reporting for wds vaps
|
#
190532 |
|
29-Mar-2009 |
sam |
o add ic_rt to track the rate table for the current channel; this enables calculation of packet transmit times to do things like check txop limits o remove equivalent driver code and convert to use net80211 state
|
#
190391 |
|
24-Mar-2009 |
sam |
split Atheros SuperG support out into it's own file that's included only with a new IEEE80211_SUPPORT_SUPERG option
|
#
190384 |
|
24-Mar-2009 |
sam |
add linker sets for get/set ioctl handlers so optional net80211 code is isolated
|
#
188782 |
|
19-Feb-2009 |
sam |
Add modes for 1/2 and 1/4-width channels so we have separate roaming and xmit parameters. This makes it possible to use tdma on fractional channels. o add IEEE80211_MODE_HALF and IEEE80211_MODE_QUARTER; note these are band-agnostic (may need revisiting) o setup all default rates in ic_sup_rates instead of doing it only for active modes; we need these to calculate the default tx parameters which are not recalculated after a regulatory update (can't just recalculate after installing a new channel list because we might clobber user settings) o remove special case code in ieee80211_get_suprates; this is now a candidate for an inline or removal o add various entries for new modes (roaming+tx params, wme, rate mapping, scan set setup, country ie construction, tdma, basic rates)
Note these modes are intentionally not visible through if_media.
|
#
188781 |
|
19-Feb-2009 |
sam |
o looseen abi dependencies on IEEE80211_MODE_MAX by accepting smaller parameters for IEEE80211_IOC_ROAM and IEEE80211_IOC_TXPARAMS; this lets us add more modes and still have old apps work o consolidate loops to remote assumptions about mode ordering
|
#
188780 |
|
19-Feb-2009 |
sam |
use c99 initializers
|
#
188774 |
|
19-Feb-2009 |
sam |
instead of special casing lookups for the 11na/g legacy rate set, just install the rates once when creating the com structure
|
#
188533 |
|
12-Feb-2009 |
thompsa |
Add a ieee80211_waitfor_parent() function that will wait for all deferred parent interface tasks to complete. This had been added to the ioctl path but it is also need elsewhere like detach so its safe to teardown.
Reported by: Hans Petter Selasky Submitted by: sam
|
#
187835 |
|
28-Jan-2009 |
sam |
add an assert to verify the number of channels returned by ic_getradiocaps correlates with the size of the channel array passed down
might want to promote this to be always present to catch for driver errors
|
#
187801 |
|
27-Jan-2009 |
sam |
Remove assumptions about the max # channels in ioctl's: o change ioctl's that pass channel lists in/out to handle variable-size arrays instead of a fixed (compile-time) value; we do this in a way that maintains binary compatibility o change ifconfig so all channel list data structures are now allocated to hold MAXCHAN entries (1536); this, for example, allows the kernel to return > IEEE80211_CHAN_MAX entries for calls like IEEE80211_IOC_DEVCAPS
|
#
187800 |
|
27-Jan-2009 |
sam |
change ic_getradiocaps driver callback to include the max # channels so callers know the size of the array passed down
|
#
187678 |
|
25-Jan-2009 |
thompsa |
If the parent up/down task was queued then sync with it before returning from the vap ioctl. This means that the parent interface should hopefully be up before we return to userland, it does not depend on the parent init succeeding, just that it was run.
This fixes wpa_supplicant with ndis and USB where the parent interfaces can be slow to init.
|
#
187060 |
|
11-Jan-2009 |
sam |
add missing return that broke WPA1+2 support
Submitted by: "Jared Go" <jared@hobnob.com>
|
#
186904 |
|
08-Jan-2009 |
sam |
TDMA support for long distance point-to-point links using ath devices: o add net80211 support for a tdma vap that is built on top of the existing adhoc-demo support o add tdma scheduling of frame transmission to the ath driver; it's conceivable other devices might be capable of this too in which case they can make use of the 802.11 protocol additions etc. o add minor bits to user tools that need to know: ifconfig to setup and configure, new statistics in athstats, and new debug mask bits
While the architecture can support >2 slots in a TDMA BSS the current design is intended (and tested) for only 2 slots.
Sponsored by: Intel
|
#
186302 |
|
18-Dec-2008 |
sam |
convert MALLOC/FREE to malloc/free
|
#
186107 |
|
15-Dec-2008 |
sam |
Fix definition of IEEE80211_CHAN_MAX; it was defined as 255 but really was meant to be 256. Adjust usage accordingly and replace bogus usage of this value in checking IEEE channel #'s.
NB: this causes an ABI change; ifconfig must be recompiled
|
#
184274 |
|
25-Oct-2008 |
sam |
change ieee80211_sta_join to take an explicit channel instead of using the value in the scan parameters; this will be used to fix issues with 11b operation
|
#
184210 |
|
23-Oct-2008 |
des |
Revert the removal of the MALLOC and FREE macros from the net80211 code.
Requested by: sam
|
#
184205 |
|
23-Oct-2008 |
des |
Retire the MALLOC and FREE macros. They are an abomination unto style(9).
MFC after: 3 months
|
#
183256 |
|
22-Sep-2008 |
sam |
RIFS support; needs driver callback for dynamic state change
|
#
183255 |
|
22-Sep-2008 |
sam |
MIMO power save support; still needs callbacks for notifying drivers of dynamic state change in station mode.
|
#
182832 |
|
06-Sep-2008 |
sam |
only return the negotiated ampdu density for sta mode
|
#
181455 |
|
09-Aug-2008 |
imp |
Verify that the WPA flags set are actually compatible with the driver's set of valid flags. Otherwise, wpa_supplicant wouldn't report an error for old wi cards that can't do WPA.
Reviewed by: sam@
|
#
179395 |
|
28-May-2008 |
sam |
Add a mac address to the key definition as otherwise we lose the address specified in the ioctl and for drivers that need the address to locate a key (e.g. for delete).
Note this changes net80211-private api's but not the driver callback; may want to change that in the future.
Reviewed by: sephe, thompsa
|
#
178956 |
|
11-May-2008 |
sam |
we have a DFS capability now so enable check
|
#
178354 |
|
20-Apr-2008 |
sam |
Multi-bss (aka vap) support for 802.11 devices.
Note this includes changes to all drivers and moves some device firmware loading to use firmware(9) and a separate module (e.g. ral). Also there no longer are separate wlan_scan* modules; this functionality is now bundled into the wlan module.
Supported by: Hobnob and Marvell Reviewed by: many Obtained from: Atheros (some bits)
|
#
173273 |
|
02-Nov-2007 |
sam |
sync 11n support with vap code base; many changes based on interop testing with all major vendors
MFC after: 1 week
|
#
172062 |
|
06-Sep-2007 |
sam |
Fixup sta inactivity handling: o reset ni_inact when ni_inact_reload is changed so we're assured a valid setting o never let ni_inact go negative o add a knob to disable hostap sta idle handling (e.g. so it can be done by a user application) o remove bogus reload on associate
Reviewed by: avatar Approved by: re (blanket wireless)
|
#
170530 |
|
11-Jun-2007 |
sam |
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.
|
#
170360 |
|
06-Jun-2007 |
sam |
copyright updates: o update to include 2007 o switch back to a 2-clause bsd-only license
Reviewed by: onoe
|
#
167468 |
|
11-Mar-2007 |
sam |
change ic_modecaps to a bit vector and use setbit, et. al.
|
#
167439 |
|
11-Mar-2007 |
sam |
keep tx/rx seq #'s for non-QoS traffic separate from QoS; stations aren't supposed mix traffic but if they did frames might be mis-handled
Obtained from: Atheros MFC after: 2 weeks
|
#
167245 |
|
05-Mar-2007 |
sam |
correct inital bounds check on returning scan results; this does not paper over catching an error as the case was already handled, albeit in a somewhat surprising way (the caller received zero'd data)
Submitted by: sephe MFC after: 2 weeks
|
#
164033 |
|
06-Nov-2006 |
rwatson |
Sweep kernel replacing suser(9) calls with priv(9) calls, assigning specific privilege names to a broad range of privileges. These may require some future tweaking.
Sponsored by: nCircle Network Security, Inc. Obtained from: TrustedBSD Project Discussed on: arch@ Reviewed (at least in part) by: mlaier, jmg, pjd, bde, ceri, Alex Lyashkov <umka at sevcity dot net>, Skip Ford <skip dot ford at verizon dot net>, Antoine Brodin <antoine dot brodin at laposte dot net>
|
#
162659 |
|
26-Sep-2006 |
ru |
Now that we have COMPAT_FREEBSD6 officially, use it from opt_compat.h.
|
#
161146 |
|
10-Aug-2006 |
sam |
More statistics fixups: o change rssi to be signed in ieee80211_nodestats o add noise floor in ieee80211_nodestats (use an implicit hole to preserve layout); return it as zero until we can update the api's so the driver can provide noise floor data o add a bandaid so IEEE80211_IOC_STA_STATS works for sta mode; when all nodes are in the station table this will no longer be needed o fix braino in IEEE80211_IOC_STA_INFO implementation; was supposed to take a mac address and return info for that sta or all stations if ff:ff:ff:ff:ff was supplied--but somehow this didn't get implemented; implement the intended semantics and leave a compat shim at the old ioctl number for the previous api
Reviewed by: mlaier MFC after: 3 weeks
|
#
160686 |
|
26-Jul-2006 |
sam |
add IEEE80211_IOC_BMISSTHRESHOLD for managing the beacon miss threshold
Submitted by: Henrik Brix Andersen <henrik@brixandersen.dk> MFC after: 2 weeks
|
#
160407 |
|
16-Jul-2006 |
sam |
power save mode state changes should not require clocking the 802.11 state machine; use the reset method instead
MFC after: 2 weeks
|
#
157172 |
|
27-Mar-2006 |
sam |
implement set(IEEE80211_IOC_STA_STATS) for hostapd; for now just make it clear station statistics (could read a stat block and assign to caller can do partial changes)
Reviewed by: avatar (previous version) MFC after: 1 week
|
#
155885 |
|
21-Feb-2006 |
sam |
honor user-specified key index for global key slots
Submitted by: Joe Love Reviewed by: avatar MFC after: 1 week
|
#
155862 |
|
20-Feb-2006 |
sam |
treat setting the optional ie to a zero-length datum to mean "delete the ie"; this helps drivers that (wrongly) check ic_opt_ie against NULL when making decisions
Reviewed by: luigi, avatar MFC after: 3 days
|
#
154541 |
|
18-Jan-2006 |
sam |
Rev ioctl to get scan results: o lock the list walk o malloc a results buffer instead of copying out one result at a time using an on-stack buffer o fix definition of ieee80211req_scan_result so size of variable-length information elements is large enough to hold all possible ie's (still only return wpa+wme, at some point may return all) o make rssi+noise data signed; they should've been so all along o add a bit more padding for future additions while we're here o define a new ioctl for new api and add compat code for old ioctl under COMPAT_FREEBSD6 (temporarily enabled local to the file)
Reviewed by: Scott Long MFC after: 2 weeks
|
#
154505 |
|
18-Jan-2006 |
cperciva |
Correct a buffer overflow when scanning for 802.11 wireless networks.
Security: FreeBSD-SA-06:05.80211
|
#
153421 |
|
14-Dec-2005 |
sam |
make packet bursting configurable (default to on if device is capable)
|
#
153402 |
|
14-Dec-2005 |
sam |
allow setting the bssid in any mode
Obtained from: netbsd
|
#
153346 |
|
12-Dec-2005 |
sam |
add fixed rate for sending multicast frames
Obtained from: atheros MFC after: 1 week
|
#
153345 |
|
12-Dec-2005 |
sam |
change malloc when setting an optional ie to use M_NOWAIT
MFC after: 3 days
|
#
153344 |
|
12-Dec-2005 |
sam |
correct parameter check when retrieving the current channel list
MFC after: 3 days
|
#
152315 |
|
11-Nov-2005 |
ru |
- Store pointer to the link-level address right in "struct ifnet" rather than in ifindex_table[]; all (except one) accesses are through ifp anyway. IF_LLADDR() works faster, and all (except one) ifaddr_byindex() users were converted to use ifp->if_addr.
- Stop storing a (pointer to) Ethernet address in "struct arpcom", and drop the IFP2ENADDR() macro; all users have been converted to use IF_LLADDR() instead.
|
#
149620 |
|
30-Aug-2005 |
avatar |
Properly set ic_curchan before calling back to device driver to do channel switching(ifconfig devX channel Y). This fix should make channel changing works again in monitor mode.
Submitted by: sam X-MFC-With: other ic_curchan changes
|
#
149028 |
|
13-Aug-2005 |
sam |
Extend acl support to pass ioctl requests through and use this to add support for getting the current policy setting and collecting the list of mac addresses in the acl table.
Submitted by: Michal Mertl (original version) MFC after: 2 weeks
|
#
148936 |
|
10-Aug-2005 |
sam |
Clarify/fix handling of the current channel: o add ic_curchan and use it uniformly for specifying the current channel instead of overloading ic->ic_bss->ni_chan (or in some drivers ic_ibss_chan) o add ieee80211_scanparams structure to encapsulate scanning-related state captured for rx frames o move rx beacon+probe response frame handling into separate routines o change beacon+probe response handling to treat the scan table more like a scan cache--look for an existing entry before adding a new one; this combined with ic_curchan use corrects handling of stations that were previously found at a different channel o move adhoc neighbor discovery by beacon+probe response frames to a new ieee80211_add_neighbor routine
Reviewed by: avatar Tested by: avatar, Michal Mertl MFC after: 2 weeks
|
#
148887 |
|
09-Aug-2005 |
rwatson |
Propagate rename of IFF_OACTIVE and IFF_RUNNING to IFF_DRV_OACTIVE and IFF_DRV_RUNNING, as well as the move from ifnet.if_flags to ifnet.if_drv_flags. Device drivers are now responsible for synchronizing access to these flags, as they are in if_drv_flags. This helps prevent races between the network stack and device driver in maintaining the interface flags field.
Many __FreeBSD__ and __FreeBSD_version checks maintained and continued; some less so.
Reviewed by: pjd, bz MFC after: 7 days
|
#
148863 |
|
08-Aug-2005 |
sam |
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
|
#
148845 |
|
08-Aug-2005 |
sam |
use ieee80211_iterate_nodes to retrieve station data; the previous code walked the list w/o locking
MFC after: 1 week
|
#
148843 |
|
08-Aug-2005 |
sam |
Cleanup beacon/listen interval handling: o separate configured beacon interval from listen interval; this avoids potential use of one value for the other (e.g. setting powersavesleep to 0 clobbers the beacon interval used in hostap or ibss mode) o bounds check the beacon interval received in probe response and beacon frames and drop frames with bogus settings; not clear if we should instead clamp the value as any alteration would result in mismatched sta+ap configuration and probably be more confusing (don't want to log to the console but perhaps ok with rate limiting) o while here up max beacon interval to reflect WiFi standard
Noticed by: Martin <nakal@nurfuerspam.de> MFC after: 1 week
|
#
148302 |
|
22-Jul-2005 |
sam |
simplify ieee80211_node_authorize and ieee80211_node_unauthorize api's
MFC after: 3 days
|
#
148292 |
|
22-Jul-2005 |
sam |
o add IEEE80211_IOC_FRAGTHRESHOLD for getting+setting the tx fragmentation threshold o fix bounds checking on IEEE80211_IOC_RTSTHRESHOLD
MFC after: 3 days
|
#
148290 |
|
22-Jul-2005 |
sam |
diff reduction against p4: define IEEE80211_FIXED_RATE_NONE and use it instead of -1
|
#
147794 |
|
06-Jul-2005 |
sam |
add "pureg" mode for ap operation: reject association requests from 11b-only stations when operating in 11g
Reviewed by: avatar Approved by: re (scottl)
|
#
147779 |
|
05-Jul-2005 |
sam |
remove auto-add of IEEE80211_KEY_GROUP; all the apps that need to set it have been fixed
Reviewed by: avatar Approved by: re (scottl)
|
#
147775 |
|
05-Jul-2005 |
sam |
o when setting a wpa key, hold a ref on the bss node; fixes a ref cnt leak o make unicast key handling on delete identical to set o change legacy wep key api to reset the 802.11 state machine for backwards compatibility
Reviewed by: avatar Approved by: re (scottl)
|
#
147256 |
|
10-Jun-2005 |
brooks |
Stop embedding struct ifnet at the top of driver softcs. Instead the struct ifnet or the layer 2 common structure it was embedded in have been replaced with a struct ifnet pointer to be filled by a call to the new function, if_alloc(). The layer 2 common structure is also allocated via if_alloc() based on the interface type. It is hung off the new struct ifnet member, if_l2com.
This change removes the size of these structures from the kernel ABI and will allow us to better manage them as interfaces come and go.
Other changes of note: - Struct arpcom is no longer referenced in normal interface code. Instead the Ethernet address is accessed via the IFP2ENADDR() macro. To enforce this ac_enaddr has been renamed to _ac_enaddr. - The second argument to ether_ifattach is now always the mac address from driver private storage rather than sometimes being ac_enaddr.
Reviewed by: sobomax, sam
|
#
147118 |
|
07-Jun-2005 |
sam |
Change the MLME ASSOCIATE ioctl to accept either a ssid, a bssid, or a bssid+ssid. This is needed for later versions of wpa_supplicant and for forthcoming addons to wpa_supplicant.
Note this is an api change and applications must be rebuilt.
|
#
144960 |
|
12-Apr-2005 |
sam |
Revise crypto api lightly to improve group key handling: o don't pre-assign key index to the global key table entries so device has a chance to decide what to use o make ieee80211_crypto_newkey take the desired flags as an argument instead of wacking the key structure directly; this eliminates a bunch of code warts o add a new flag IEEE80211_KEY_GROUP to indicate a key is a WPA Group key so devices don't need to guess (temporarily add this flag in the ioctl code until we can get wpa_supplicant+hostapd updated) o shuffle IEEE80211_KEY_* bits to move flags used internally to the high nibble of the flags word
Reviewed by: Tai-hwa Liang
|
#
143110 |
|
03-Mar-2005 |
wpaul |
Recently, it was reported to me that you could provoke a double fault panic with the NDISulator if you did "ifconfig ndis0 10.0.0.1/24," whereas "ifconfig ndis0 10.0.0.1/24 up" worked fine. The double fault was caused by the ifconfig thread running out of kernel stack space. (This was partly due to the NDIsulator using a couple of big buffers on the stack, but even after fixing that the double fault persisted.)
It turns out that ndis_init() is called in both cases, but in the first case the code path passes through ieee80211_ioctl(), and it turns out ieee80211_ioctl() consumes a whopping 2400 bytes of stack space. Apparently, gcc -O2 causes the ieee80211_ioctl_get80211() routine to be inlined into ieee80211_ioctl(), and for some reason which I do not fully understand, this causes ieee80211_ioctl() to consume an extra 2K of stack space.
To prevent this overly agressive optimization, ieee80211_ioctl_get80211() is now declared with __attribute__ ((noinline)). With this change, ieee80211_ioctl() now only reserves about 200 bytes of stack instead of 2400.
|
#
140753 |
|
24-Jan-2005 |
sam |
statically allocate the station/neighbor node table; the deferred allocation scheme introduced a race condition during device state transitions
|
#
139530 |
|
31-Dec-2004 |
sam |
bump copyright for 2005
|
#
139519 |
|
31-Dec-2004 |
sam |
accept IEEE80211_KEYIX_NONE for a default tx key
|
#
138663 |
|
10-Dec-2004 |
sam |
fix wep key seting: ENETRESET is the code to return to signal the driver should push software state to the hardware (was ERESTART which caused the system call to be retried)
Submitted by: Tor Egge
|
#
138568 |
|
08-Dec-2004 |
sam |
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.
|
#
127648 |
|
30-Mar-2004 |
sam |
o add support for controlling the power of transmitted frames o add support for controlling the 11g protection mechanism used to protect OFDM frames in a mixed 11b/g network
Reviewed by: imp
|
#
127646 |
|
30-Mar-2004 |
sam |
Only call if_init when doing SIOCSIFADDR if the interface is not marked up (IFF_UP). This eliminates extraneous AP scanning.
Reviewed by: imp
|
#
124706 |
|
19-Jan-2004 |
onoe |
Change WI_RID_SCAN_RES compatibility interface to return the result after active scan is completed just as WI_RID_READ_APS. This fixes wicontrol -L for ath(4) and awi(4) to have results even if the driver cannot associate any APs.
|
#
124457 |
|
13-Jan-2004 |
sam |
Handle SIOCSIFMTU ioctl directly so we can apply 802.11-specific bounds. Note that the min is actually constrained to IF_MINMTU by the if layer.
|
#
122600 |
|
13-Nov-2003 |
sam |
o insure the current channel is in a good state before starting an AP scan o reject scan requests for a device that isn't marked up
This fixes a problem where requesting a scan before marking the device up would cause a panic because the current channel was set to "any" (0xffff).
|
#
122090 |
|
05-Nov-2003 |
green |
Fix a reversed suser(9) in SIOCG80211:IEEE80211_IOC_WEPKEY which prevents root from reading the wireless card's WEP keys, but allows non-root.
|
#
121180 |
|
17-Oct-2003 |
sam |
add statistics for all failures and/or abnormal events; still need to add per-node statistics
|
#
120480 |
|
26-Sep-2003 |
sam |
correct spelling of IEEE80211_IOC_RTSTHRESHOLD
|
#
120104 |
|
15-Sep-2003 |
sam |
Generalize the per-node RSSI data so drivers can do more interesting things than record a single value.
o add a per-node method for returning the "current RSSI" for a node o create a default method that returns ni_rssi which is the rssi for the last received frame o use the per-node "get rssi" method to return data for the RID's submitted by wicontrol, et. al.
Loosely based on work by Tom Marshall <tommy@home.tig-grr.com> for MADWIFI.
|
#
117811 |
|
20-Jul-2003 |
sam |
o change ieee80211_new_state handling to use a proper method that drivers override in their sub-class; this eliminates the hack of interpreting the EINPROGRESS return value to mean "don't do any of the normal work" o correct active scanning so the first channel is only scanned once and so per-channel passive mode is properly honored o expose 802.11 FSM state names so every driver doesn't keep a private copy o eliminate node parameter to ieee80211_begin_scan; it was not being used
|
#
117040 |
|
29-Jun-2003 |
sam |
use proper length to copy data for WI_RID_DESIRED_SSID (was smashing ic_des_chan that immediately follows)
|
#
116904 |
|
27-Jun-2003 |
sam |
revise copyright notices per discussion with Atsushi Onoe <onoe@sm.sony.co.jp>
|
#
116742 |
|
23-Jun-2003 |
sam |
new 802.11 layer:
o code reorg (relative to old netbsd-derived code) for future growth o drivers now specify available channels and rates and 802.11 layer handles almost all ifmedia actions o multi-mode support for 11a/b/g devices o 11g protocol additions (incomplete) o new element id additions (for other than 11g) o node/station table redone for proper locking and to eliminate driver incestuousness o split device flags and capabilities to reduce confusion and provide room for expansion o incomplete power management infrastructure (need to revisit) o incomplete hooks for software retry o more...
|