summaryrefslogtreecommitdiffstats
path: root/sys/net80211/ieee80211_tdma.c
Commit message (Collapse)AuthorAgeFilesLines
* Don't return ENOTSUPP here - the net80211 pluggable ioctl API will treatadrian2013-08-181-2/+2
| | | | | | this as the final item in the linker set and not try others. This stopped the fast frames IOCTLs from being called.
* Fix the situation where net80211 is built with IEEE80211_SUPPORT_TDMA but a ↵adrian2012-01-151-0/+4
| | | | | | | | | | | | | | module is used. Although the module _builds_, it fails to load because of a missing symbol from ieee80211_tdma.c. Specifics: * Always build ieee80211_tdma.c in the module; * only compile in the code if IEEE80211_SUPPORT_TDMA is defined.
* Fix an unused variable warning/error when invariants isn't enabled.adrian2011-10-121-2/+1
| | | | Reported by: bz
* Fix a panic in the wifi stack when a software beacon miss occurs in the ↵adrian2011-10-021-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | wrong state. The ieee80211_swbmiss() callout is not called with the ic lock held, so it's quite possible the scheduler will run the callout during a state change. This patch: * changes the swbmiss callout to be locked by the ic lock * enforces the ic lock being held across the beacon vap functions by grabbing it inside beacon_miss() and beacon_swmiss(). This ensures that the ic lock is held (and thus the VAP state stays constant) during beacon miss and software miss processing. Since the callout is removed whilst the ic lock is held, it also ensures that the ic lock can't be called during a state change or exhibit any race conditions seen above. Both Edgar and Joel report that this patch fixes the crash and doesn't introduce new issues. Reported by: Edgar Martinez <emartinez@kbcnetworks.com> Reported by: Joel Dahl <joel@vnode.se> Reported by: emaste
* fixes a broken software beacon miss handler. There is a race to checkweongyo2010-03-141-0/+2
| | | | | | | vap->iv_bmiss_count == 0 in ieee80211_swbmiss because iv_swbmiss_task is enqueued by taskqueue. Reviewed by: rpaulo
* 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:
* Overhaul monitor mode handling:sam2009-05-201-7/+12
| | | | | | | | | | | | | | | | | | | | | | | | 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
* setup turboA/G fixed rate parameters too; this is needed, in particular,sam2009-04-131-3/+5
| | | | for turboG operation
* correct debug printfsam2009-04-131-1/+1
|
* check correct address for a bssid mtchsam2009-04-131-1/+1
|
* o move tdma+superg protocol defs out of public viewsam2009-03-261-1/+11
| | | | | o add #ifdef _KERNEL to superg+tdma include files so they can be used by user code to get the protocol defs
* add linker sets for get/set ioctl handlers so optional net80211sam2009-03-241-8/+8
| | | | code is isolated
* use IEEE80211_SUPPORT_TDMA option to control whether code issam2009-03-241-2/+0
| | | | configured; this allows us to remove an #ifdef
* rate limit printfs for invalid tdma ie contents; probably want this tosam2009-03-181-6/+9
| | | | be less than 1/sec
* Minor cleanups of tdma protocol handling:sam2009-03-181-47/+79
| | | | | | | | | | | o break out version-related code to simplify rev'ing the protocol o add parameter validation macros so checks that appear multiple places are consistent (and easy to change) o add protocol version check when looking for a scan candidate o improve scan debug output format o rewrite beacon update handling to calculate a bitmask of changed values and pass that down through the driver callback so drivers can optimize work o do slot bounds check before use when parsing received beacons
* change tdma slave behaviour: if the channel is locked don't do bmiss handlingsam2009-02-221-3/+6
| | | | | | (so no scanning/roaming) Reviewed by: Chris Anderson
* Add modes for 1/2 and 1/4-width channels so we have separate roamingsam2009-02-191-0/+8
| | | | | | | | | | | | | | | | | | 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.
* remove bogus reference reclaim on the slave-side bss node on beacon misssam2009-02-111-1/+0
|
* when operating as a slave, clear neighbor entries and the peer bss nodesam2009-02-101-2/+16
| | | | | | on beacon miss while here, remove a stray pointless write of iv_bmiss_count
* setup default fixed rates for static turbo and 11n;sam2009-01-291-6/+22
| | | | the 11n rates are pure guess
* TDMA support for long distance point-to-point links using ath devices:sam2009-01-081-0/+715
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
OpenPOWER on IntegriCloud