summaryrefslogtreecommitdiffstats
path: root/sys/net80211
Commit message (Collapse)AuthorAgeFilesLines
* purge dead codesam2009-06-081-29/+0
|
* fix big-endian machinessam2009-06-081-4/+4
|
* After r193232 rt_tables in vnet.h are no longer indirectly dependent onbz2009-06-081-1/+0
| | | | | | | | | the ROUTETABLES kernel option thus there is no need to include opt_route.h anymore in all consumers of vnet.h and no longer depend on it for module builds. Remove the hidden include in flowtable.h as well and leave the two explicit #includes in ip_input.c and ip_output.c.
* do not strip M_MORE_DATA on packets coming through ieee80211_start;sam2009-06-081-3/+4
| | | | | | frames coming out of the ps q may have this set and removing it causes the 802.11 header to not indicate more frames follow which can result in the sta going to sleep and missing them
* prefer callout_schedulesam2009-06-071-2/+1
|
* use c99-style initializerssam2009-06-071-7/+7
|
* teach ieee80211_classify about ipv6 packetssam2009-06-071-1/+23
| | | | Reviewed by: bz, rrs
* add iv_flags_ht and ic_flags_htsam2009-06-071-0/+2
|
* iv_flags_ext is full, make room by moving HT-related flags to a newsam2009-06-0711-116/+166
| | | | iv_flags_ht word
* o add bits for STBC and Greenfieldsam2009-06-061-5/+8
| | | | o fix some comments
* reserve node flag bits for a-msdu tx/rxsam2009-06-051-3/+7
|
* reserve ioc's for Greenfield and STBCsam2009-06-051-0/+2
|
* correct status code returned for ht capability mismatch on assoc/reassocsam2009-06-051-1/+1
|
* o correct/add action frame categoriessam2009-06-051-1/+5
| | | | o add IEEE80211_STATUS_MISSING_HT_CAPS, added in 11n D3.0 spec
* add tid param to ieee80211_notify_replay_failure to get the correct rscsam2009-06-054-6/+6
|
* Fix spelling of MAC check for 8.x version of MAC Framework, not noticed duerwatson2009-06-051-1/+3
| | | | | | | to a lack of an opt_mac.h include, which I won't add for now as options MAC will soon move to opt_global.h. Spotted by: pjd
* o station mode channel switch supportsam2009-06-049-22/+207
| | | | | | | | | | 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
* When a channel switch is done to a channel with different operatingsam2009-06-031-0/+34
| | | | | | | | characteristics force the stations to re-associate so protocol state is re-initialized. Note that for 11h/DFS this is irrelevant as channel changes are never cross-band. Reviewed by: ctlaw
* After a channel switch mark associated stations so they will immediatelysam2009-06-031-0/+18
| | | | | be probed as inactive; this more quickly weeds out stations that don't follow to the new channel.
* calls callout_drain(9) to un-schedule a scan timer to prevent a pageweongyo2009-06-031-0/+1
| | | | | | | fault in softclock. Submitted by: sam Reviewed by: jhb, sam (original version), thompsa
* remove another vestige of the null if_softc on detach hacksam2009-06-021-16/+6
|
* fix typosam2009-06-021-1/+1
|
* partially fix mode setting; this no longer returns an error but stillsam2009-06-021-1/+1
| | | | | | needs to handle the case where the vap is up+running Noticed by: "Paul B. Mahol" <onemda@gmail.com>
* move if_detach to the top of ieee80211_ifdetach to close various racessam2009-06-021-2/+3
| | | | Reviewed by: jhb
* Remove hack used to deal with ifnet teardown now that if_detach and thesam2009-06-023-42/+8
| | | | | | | | | | | | | 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
* Fix monitor mode vaps to work as intended:sam2009-06-027-23/+89
| | | | | | | o track # bpf taps on monitor mode vaps instead of # monitor mode vaps o spam monitor mode taps on tx/rx o fix ieee80211_radiotap_rx_all to dispatch frames only if the vap is up o while here print radiotap (and superg) state in show com
* don't dispatch frames to vap's not runningsam2009-06-021-0/+3
|
* count packetssam2009-06-021-0/+3
|
* pad data structures to enable integration of future features w/o abi breakagesam2009-06-016-2/+19
|
* distribute sysctl decls so global variables can be made staticsam2009-05-304-51/+38
|
* o assert TDMA_MAXSLOTS is 2 so noone tries to blindly increase itsam2009-05-301-4/+17
| | | | | | | | | o add safety belt in vdetach for failed state block allocation o fix dynamic change to tdma config; ERESTART may not result in kicking the state machine so we need to explicitly mark the beacon for update Sponsored by:
* add ieee80211_isratevalidsam2009-05-291-0/+6
|
* Fix handling of devices w/o radiotap support:sam2009-05-256-11/+14
| | | | | | | o do not attach DLT_IEEE802_11_RADIO unless both tx and rx headers are present; this is assumed in the capture code paths o verify the above with asserts in ieee80211_radiotap_{rx,tx} o add missing checks for active taps before calling ieee80211_radiotap_rx
* do internal bpf tracking only for radiotap DLT'ssam2009-05-251-2/+2
|
* Prepare to distribute sysctl code to reduce global definitions:sam2009-05-202-1/+5
| | | | | | | o expose net.wlan sysctl node o expose ieee80211_sysctl_msecs_ticks Reviewed by: rpaulo, thompsa
* Overhaul monitor mode handling:sam2009-05-2023-142/+503
| | | | | | | | | | | | | | | | | | | | | | | | o replace DLT_IEEE802_11 support in net80211 with DLT_IEEE802_11_RADIO and remove explicit bpf support from wireless drivers; drivers now use ieee80211_radiotap_attach to setup shared data structures that hold the radiotap header for each packet tx/rx o remove rx timestamp from the rx path; it was used only by the tdma support for debugging and was mostly useless due to it being 32-bits and mostly unavailable o track DLT_IEEE80211_RADIO bpf attachments and maintain per-vap and per-com state when there are active taps o track the number of monitor mode vaps o use bpf tap and monitor mode vap state to decide when to collect radiotap state and dispatch frames; drivers no longer explicitly directly check bpf state or use bpf calls to tap frames o handle radiotap state updates on channel change in net80211; drivers should not do this (unless they bypass net80211 which is almost always a mistake) o update various drivers to be more consistent/correct in handling radiotap o update ral to include TSF in radiotap'd frames o add promisc mode callback to wi Reviewed by: cbzimmer, rpaulo, thompsa
* add block ack frame idsam2009-05-181-0/+1
|
* add missing type for SYSCTL_PROC items; w/o a type you can view the valuesam2009-05-141-6/+6
| | | | but not change it
* correct handling of ctl frames: the sender's address is always i_addr2 forsam2009-05-141-12/+0
| | | | | | | frames we should expect to process (old code was trying to handle frames we should never see--like ACK) Reviewed by: thompsa, cbzimmer
* Cancel the scan when going to INIT state. Should do this for other states herethompsa2009-05-101-0/+2
| | | | too as once the protocol newstate handler runs the scan has always ended.
* Change the curvnet variable from a global const struct vnet *,zec2009-05-051-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | previously always pointing to the default vnet context, to a dynamically changing thread-local one. The currvnet context should be set on entry to networking code via CURVNET_SET() macros, and reverted to previous state via CURVNET_RESTORE(). Recursions on curvnet are permitted, though strongly discuouraged. This change should have no functional impact on nooptions VIMAGE kernel builds, where CURVNET_* macros expand to whitespace. The curthread->td_vnet (aka curvnet) variable's purpose is to be an indicator of the vnet context in which the current network-related operation takes place, in case we cannot deduce the current vnet context from any other source, such as by looking at mbuf's m->m_pkthdr.rcvif->if_vnet, sockets's so->so_vnet etc. Moreover, so far curvnet has turned out to be an invaluable consistency checking aid: it helps to catch cases when sockets, ifnets or any other vnet-aware structures may have leaked from one vnet to another. The exact placement of the CURVNET_SET() / CURVNET_RESTORE() macros was a result of an empirical iterative process, whith an aim to reduce recursions on CURVNET_SET() to a minimum, while still reducing the scope of CURVNET_SET() to networking only operations - the alternative would be calling CURVNET_SET() on each system call entry. In general, curvnet has to be set in three typicall cases: when processing socket-related requests from userspace or from within the kernel; when processing inbound traffic flowing from device drivers to upper layers of the networking stack, and when executing timer-driven networking functions. This change also introduces a DDB subcommand to show the list of all vnet instances. Approved by: julian (mentor)
* Relax the condition for printing the lost state transition message. The newthompsa2009-05-031-10/+12
| | | | | state will be set before the EXT_STATEWAIT flag is cleared and its ok to transition again at that point.
* don't say "ac WME_AC_BE"; remove "ac"sam2009-05-021-1/+1
|
* promote ieee80211_seq typedefsam2009-05-023-4/+4
|
* o dump tx/rx seq#'s for qos tid'ssam2009-05-021-2/+10
| | | | o improve check for when to dump rx ampdu state
* whitespacesam2009-05-021-0/+1
|
* make superg/fast-frames state dynamically-allocated (and indirect offsam2009-05-023-21/+65
| | | | | the com structure instead of embedded); this reduces the overhead when not configured and reduces visibility of the contents
* Create a taskqueue for each wireless interface which provides a serialisedthompsa2009-05-0210-261/+454
| | | | | | | | | | | | | | | | | | | | | | | 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
* revert wipsam2009-05-011-13/+4
|
* Store the tx seq# of an 802.11 frame in the mbuf pkthdr; this will besam2009-04-272-0/+11
| | | | | | | | | | 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
OpenPOWER on IntegriCloud