Commit Graph

81 Commits

Author SHA1 Message Date
Sam Leffler
b5c9941514 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
2005-08-10 16:22:30 +00:00
Sam Leffler
d365f9c760 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
2005-08-08 03:30:57 +00:00
Sam Leffler
e35ac6b9dd fix debug msg typo
MFC after:	3 days
2005-08-06 04:57:27 +00:00
Sam Leffler
97c973adc4 Fix handling of frames sent prior to a station being authorized
when operating in ap mode.  Previously we allocated a node from the
station table, sent the frame (using the node), then released the
reference that "held the frame in the table".  But while the frame
was in flight the node might be reclaimed which could lead to
problems.  The solution is to add an ieee80211_tmp_node routine
that crafts a node that does exist in a table and so isn't ever
reclaimed; it exists only so long as the associated frame is in flight.

MFC after:	5 days
2005-08-06 04:56:49 +00:00
Sam Leffler
19ad2dd79a close a race between reclaiming a node when a station is inactive
and sending the null data frame used to probe inactive stations

MFC after:	5 days
2005-07-31 06:12:32 +00:00
Sam Leffler
767cee4f5b when bridging internally bypass the bss node as traffic to it
must follow the normal input path

Submitted by:	Michal Mertl
MFC after:	5 days
2005-07-27 04:41:25 +00:00
Sam Leffler
edfa57d0f0 simplify tim callback api
MFC after:	3 days
2005-07-22 17:45:48 +00:00
Sam Leffler
e4918ecdb9 simplify ieee80211_node_authorize and ieee80211_node_unauthorize api's
MFC after:	3 days
2005-07-22 17:36:12 +00:00
Sam Leffler
f62121ce8e simplifiy ieee80211_send_nulldata api
MFC after:	3 days
2005-07-22 17:31:18 +00:00
Sam Leffler
7d77cd5381 simplify rate set api's by removing ic parameter (implicit in node reference)
MFC after:	3 days
2005-07-22 17:29:03 +00:00
Sam Leffler
bdad3a1066 reject association requests with a wpa/rsn ie when wpa/rsn is not
configured on the ap; previously we either ignored the ie or (possibly)
failed an assertion

Obtained from:	Atheros
MFC after:	3 days
2005-07-22 17:21:36 +00:00
Sam Leffler
aa8c14c444 missed one in last commit; add device name to discard msgs 2005-07-22 17:16:37 +00:00
Sam Leffler
497c84ae3a include device name in discard msgs 2005-07-22 17:13:44 +00:00
Sam Leffler
bd6f09d92f add diag msgs for frames discarded because the direction field is wrong 2005-07-22 17:12:05 +00:00
Sam Leffler
1bd482ef57 split data frame delivery out to a new function ieee80211_deliver_data 2005-07-22 17:08:38 +00:00
Sam Leffler
f6df31916c Diff reduction against p4:
o add ic_flags_ext for eventual extention of ic_flags
o define/reserve flag+capabilities bits for superg,
  bg scan, and roaming support
o refactor debug msg macros

MFC after:	3 days
2005-07-22 16:36:12 +00:00
Sam Leffler
a3d1edc2b2 send a response when an auth request is denied due to an acl;
might be better to silently ignore the frame but this way we
give stations a chance of figuring out what's wrong
2005-07-22 05:17:52 +00:00
Sam Leffler
79198e858b remove excess whitespace 2005-07-22 05:15:53 +00:00
Sam Leffler
b138c15024 use IF_HANDOFF when bridging frames internally so if_start gets
called; fixes communication between associated sta's

MFC after:	3 days
2005-07-22 04:55:40 +00:00
Sam Leffler
ac594bdfd7 nuke assert that duplicates real check
Reviewed by:	avatar
Approved by:	re (scottl)
2005-07-11 03:00:20 +00:00
Sam Leffler
1a08800d14 correct check for high priority wme traffic
Noticed by:	Ralf Assmann
Reviewed by:	apatti
Approved by:	re (scottl)
2005-07-08 22:49:26 +00:00
Sam Leffler
c52dab628a fix another instance of the MORE_DATA bit handling for frames on the
power save queue (missed in previous commit)

Submitted by:	Bruno Randolf
Approved by:	re (scottl)
2005-07-08 16:36:02 +00:00
Sam Leffler
c4f040c3f3 add "pureg" mode for ap operation: reject association requests from
11b-only stations when operating in 11g

Reviewed by:	avatar
Approved by:	re (scottl)
2005-07-06 15:38:27 +00:00
Sam Leffler
bc5627d91f 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
2005-07-06 01:55:17 +00:00
Sam Leffler
ebdda46c84 Fix race condition in handling node reference counts for authenticating
stations in ap mode.  Track when a node's first auth frame is
received and use this to decide whether or not to bump the refcnt.
This insures we only ever bump the refcnt once.

Reviewed by:	avatar
Approved by:	re (scottl)
2005-07-06 01:51:44 +00:00
Tai-hwa Liang
720bd46e9f Only update the scan entry state based on newly received frames.
This fixes duplicative BSS entries(memory leaks as well) listed in
"ifconfig dev list scan" when a station fails to associate with an AP.

Reviewed by:	sam
Approved by:	re (scottl)
2005-07-06 01:31:34 +00:00
Sam Leffler
bc031652cb revert 1.53; it breaks ibss merge
Noticed by:	Bruno Randolf
Approved by:	re (dwhite)
2005-06-13 21:01:06 +00:00
Sam Leffler
3fd5a5aa93 don't look at the wme ie in a beacon unless we negotiated use 2005-06-10 21:30:29 +00:00
Sam Leffler
7f1d8b7517 validate the bssid for non-data frames too when operating in
adhoc/ahdemo/hostap modes
2005-06-10 16:14:48 +00:00
Sam Leffler
2cc12aded0 o fix wpa w/ wme: don't strip the QoS header on recv as tkip requires
it; instead pass the space occupied by the header down into the
  crypto modules (except in the demic case which needs it only when
  doing int in s/w)
o while here fix defrag to strip the header from 2nd and later frames
o teach decap code how to handle 4-address frames
2005-06-10 16:11:24 +00:00
Sam Leffler
da17aba102 mark stations authorized during recv processing instead of doing it
as a side effect of sending an auth success frame; sending mgmt
frames should not have side effects
2005-06-10 05:04:42 +00:00
Sam Leffler
404265d4fe accept diassoc frame in ASSOC state 2005-06-10 04:37:05 +00:00
Sam Leffler
4720ec1918 pull some debug msgs up so they're seen more often 2005-06-10 01:48:57 +00:00
Sam Leffler
181181ac41 kick the state machine when we receive failure notice from an ap (when
operating in sta mode); this speeds up the state machine, previously
we were acting on a timeout
2005-06-10 01:47:28 +00:00
Sam Leffler
4fd1a57d92 discard open auth requests in adhoc mode 2005-06-10 01:43:28 +00:00
Sam Leffler
b8d05d3cf7 reject open auth requests when shared key auth is configured
Obtained from:	Atheros
2005-06-10 01:41:59 +00:00
Sam Leffler
84eb84c45d add ieee80211_send_error to encapsulate an idiom 2005-06-10 01:40:58 +00:00
Sam Leffler
c789ea8b60 o always check if ic_set_tim is !NULL before using it
o add missing call to clear tim after flushing ps q
2005-06-10 01:38:02 +00:00
Sam Leffler
ec42511509 mark state for protection only when operating in 11g 2005-06-10 01:35:21 +00:00
Sam Leffler
9b4db82905 don't reject station based on the PRIVACY bit in the capabilities;
the 802.11 spec says not to

Obtained from:	Atheros
2005-06-10 01:33:47 +00:00
Sam Leffler
49d4c02f30 correct checks for rate set compatibility 2005-06-10 01:31:28 +00:00
Sam Leffler
f1e95a234a record tstamp from beacons received in station mode when associated;
this is needed by drivers that want to resync their timers based on
the tsf of the last recv'd beacon frame
2005-06-10 01:29:21 +00:00
Sam Leffler
a634d6a788 o collect dtim period+count from beacons in station mode so drivers
can better program beacon timers
o leave placeholder in com structure for future ap/adhoc mode tim support

Reviewed by:	avatar
2005-06-09 04:05:43 +00:00
Sam Leffler
96d8846397 add force flag to enmic/demic crypto api for use in xmit fragmentation
and h/w mic verification

Reviewed by:	avatar
2005-06-06 04:04:38 +00:00
Sam Leffler
1f29887956 change ieee80211_input to return the frame type or -1 2005-04-04 02:32:56 +00:00
Sam Leffler
c9a4bb99b0 when WPA is enabled discard association requests w/o a WPA ie
Submitted by:	Divy Le Ray
2005-03-26 07:15:34 +00:00
Sam Leffler
20098591be eliminate use after free in debug code
Noticed by:	Coverity Prevent analysis tool
2005-03-16 20:39:05 +00:00
Sam Leffler
0796482dd1 kill dead code
Noticed by:	Coverity Prevent analysis tool
2005-03-16 20:35:23 +00:00
Sam Leffler
a0cc3f8558 mark timestamp for pending fragments
Noticed by:	Jeffrey D. Chung
2005-02-23 04:52:30 +00:00
Sam Leffler
acc4f7f50c statically allocate the station/neighbor node table; the deferred
allocation scheme introduced a race condition during device state
transitions
2005-01-24 19:32:10 +00:00