summaryrefslogtreecommitdiffstats
path: root/sys/dev/ath/if_ath.c
Commit message (Collapse)AuthorAgeFilesLines
...
* o correct handling of a frame that has too many segments to fit in thesam2003-10-161-3/+6
| | | | | | | tx descriptor array o while here fix a whitespace nit Obtained from: NetBSD
* o convert mutex calls to #defines for portability, etc.sam2003-10-141-31/+33
| | | | o destroy mutex's on detach (was missing)
* remove dangling mtx_unlock orphaned by rev 1.21 changesam2003-10-131-1/+0
|
* Reduce per-packet overhead when using WEP by using an advancing IVsam2003-10-131-1/+8
| | | | | | seeded with arc4random rather than calling arc4random for each packet. Note this is the same algorithm used to select the IV when doing WEP on the host.
* Must reset the pointer to the 802.11 header after prependingsam2003-10-131-0/+1
| | | | for WEP in case the prepend addes a new mbuf. This fixes WEP.
* MFp4:sam2003-10-131-3/+13
| | | | | | | | | | o don't grab the mutex at the top of ath_detach; it does nothing useful o deal with entry to ath_ioctl during detach to disable promiscuous mode as a result of calling bpfdetach2: cannot call ath_init when the device is marked invalid as the code isn't prepared to deal with it (in particular by that time the hal reference may have been yanked)
* MFp4:sam2003-10-131-14/+23
| | | | | | change ath_rate_ctl_reset to handle transition from station mode to adhoc mode; was not resetting the initial xmit rate causing outbound frames to be dicarded
* include the DS element in beaconssam2003-10-061-1/+4
|
* Maintain a history of data associated with received frames and use this tosam2003-09-151-5/+67
| | | | | | | | | | | | | | calculate smoothed signal quality data for each node. o add a 16-deep history buffer to each driver-private node storage that holds rssi and antenna info for received frames o override the default per-node "get rssi" method to return an average rssi value based on samples collected over the last second o enable beacon reception so even idle systems maintain a running history of signal quality This data may also be useful for improving the rate control algorithm. Based on work by Tom Marshall <tommy@home.tig-grr.com> for MADWIFI.
* o do not filter received frames based on type or length; pass 'em all upsam2003-09-151-13/+3
| | | | | | | | to the 802.11 layer if they are at least IEEE80211_MIN_LEN o mask off interrupt status bits that we don't care about so we don't do the wrong thing; this fixes a problem where the beacon miss interrupt status bit is delivered together with other status bits when operating in monitor mode (we would post a beacon miss swi and then do the wrong thing)
* must also check for 5Ghz channels when marking short preamble capability insam2003-09-141-1/+2
| | | | | | the beacon frames Reminded by: Stephane Laroche <stephane.laroche@colubris.com>
* o mark the device capable of short preamble (meaningless for the 5210 butsam2003-09-141-15/+18
| | | | | | | | | | safe since the 802.11 layer does the right thing for 11a operation) o select short preamble operation based on the negotiated capabilities; not just the local state/capability o fillin the duration field in the 802.11 header as appropriate o remove detection of 11g support; no longer needed Obtained from: MADWIFI (with modifications)
* Add support for the experimental radiotap capture format. With thissam2003-09-051-11/+64
| | | | we no longer need the debugging code to dump packets.
* Explicitly enable probe request frame reception when not in station mode;sam2003-09-011-0/+4
| | | | | | this is needed for the 5212 which a separate filter bit for these frames. Submitted by: Stephane Laroche <stephane.laroche@colubris.com>
* MFp4 changes to fix locking issues and correct referencesam2003-08-191-37/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | count handling of station entries in hostap mode: Input path: o driver is now expected to find the node associated with the sender of a received frame; use ic_bss if none is located o driver passes the (referenced) node into ieee80211_input for use within the wlan module and is responsible for cleaning up on return o the antenna state is no longer passed up with each frame; this is now considered driver-private state and drivers are responsible for keeping it in the driver-private part of a node Output path: Revamp output path for management frames to eliminate redundant locking that causes problems and to correct reference counting bogosity that occurs when stations are timed out due to inactivity (in AP mode). On output the refcnt'd node is stashed in the pkthdr's recvif field (yech) and retrieved by the driver. This eliminates an unref/ref scenario and related node table unlock/lock due to the driver looking up the node. This is particularly important when stations are timed out as this causes a lock order reversal that can result in a deadlock. As a byproduct we also reduce the overhead for sending management frames (minimal). Additional fallout from this is a change to ieee80211_encap to return a refcn't node for tieing to the outbound frame. Node refcnts are not reclaimed until after a frame is completely processed (e.g. in the tx interrupt handler). This is especially important for timed out stations as this deref will be the final one causing the node entry to be reclaimed. Additional semi-related changes: o replace m_copym use with m_copypacket (optimization) o add assert to verify ic_bss is never free'd during normal operation o add comments explaining calling conventions by drivers for frames going in each direction o remove extraneous code that "cannot be executed" (e.g. because pointers may never be null)
* o pass control frames up the stack when in monitor mode (the 802.11 layer willsam2003-08-191-2/+5
| | | | | | | | quietly discard them; this just permits them to be collected with bpf) o add a counter for the number of rate control frames discarded when not in monitor mode o move the rx "too short" statistic in the stat structure so non-error rx stats are together (NB: ABI change to apps that collect stats via driver ioctl)
* o correct beacon frame length calculation and add an assert to catch any futuresam2003-08-191-2/+6
| | | | | | mistakes (this mistake was not an issue because the length is only used to decide whether or not to allocate a cluster) o while here, move a beacon length comment to the "right place"
* maintain a table for mapping hardware rate codes to 802.11 rates forsam2003-08-191-3/+5
| | | | calculating the rate for each rx'd frame
* mark the scan and calibrate callouts MPSAFEsam2003-08-191-2/+2
|
* remove unneeded include filessam2003-08-191-4/+0
|
* Close a race where ath_intr is installed and may be called beforesam2003-08-131-2/+3
| | | | | the HAL is setup: use sc_invalid to discard such entries into ath_intr. This can easily happen if the device is assigned a shared IRQ.
* o remove bmisshack no longer needed with the BSSID fix in v0.9.5.2 of the halsam2003-08-021-14/+17
| | | | | | o add monitor mode support o fix short preamble handling in beacon setup (noop) o correct resume handling
* track changes to 802.11 code:sam2003-07-201-22/+22
| | | | | o override new_state method per new model o use ieee80211_state_name instead of private copy
* o add read-only sysctls to view regulatory domain, country code, andsam2003-07-131-5/+19
| | | | | outdoor use controls o use sysctl-visible values in setting up channel list
* acknowledge the contribution of Atsushi Onoesam2003-06-301-0/+3
|
* Atheros 802.11 driver. Requires Atheros Hardware Access Lay (HAL).sam2003-06-231-0/+2548
Supported by: Atheros Comunications
OpenPOWER on IntegriCloud