Home | History | Annotate | Line # | Download | only in net80211
      1 ***
      2 *** Summary of changes between 2005-05-18 and 2005-11-01.
      3 ***
      4 *** % setenv TZ UTC
      5 *** % cvs -d freebsdanoncvs (a] anoncvs.freebsd.org:/home/ncvs co src
      6 *** % cd src/sys/net80211/
      7 *** % cvs2cl --follow trunk --hide-filenames --no-indent --no-wrap \
      8 ***      -f CHANGES -l '-d 2005-05-18<=2005-11-01'
      9 ***
     10 
     11 2005-08-30 14:27  avatar
     12 
     13 Properly set ic_curchan before calling back to device driver to do channel
     14 switching(ifconfig devX channel Y).  This fix should make channel changing
     15 works again in monitor mode.
     16 
     17 Submitted by:	sam
     18 X-MFC-With:	other ic_curchan changes
     19 
     20 2005-08-13 17:50  sam
     21 
     22 revert 1.64: we cannot use the channel characteristics to decide when to
     23 do 11g erp sta accounting because b/g channels show up as false positives
     24 when operating in 11b.
     25 
     26 Noticed by:	Michal Mertl
     27 
     28 2005-08-13 17:31  sam
     29 
     30 Extend acl support to pass ioctl requests through and use this to
     31 add support for getting the current policy setting and collecting
     32 the list of mac addresses in the acl table.
     33 
     34 Submitted by:	Michal Mertl (original version)
     35 MFC after:	2 weeks
     36 
     37 2005-08-10 17:42  sam
     38 
     39 Don't use ic_curmode to decide when to do 11g station accounting,
     40 use the station channel properties.  Fixes assert failure/bogus
     41 operation when an ap is operating in 11a and has associated stations
     42 then switches to 11g.
     43 
     44 Noticed by:	Michal Mertl
     45 Reviewed by:	avatar
     46 MFC after:	2 weeks
     47 
     48 2005-08-10 16:22  sam
     49 
     50 Clarify/fix handling of the current channel:
     51 o add ic_curchan and use it uniformly for specifying the current
     52   channel instead of overloading ic->ic_bss->ni_chan (or in some
     53   drivers ic_ibss_chan)
     54 o add ieee80211_scanparams structure to encapsulate scanning-related
     55   state captured for rx frames
     56 o move rx beacon+probe response frame handling into separate routines
     57 o change beacon+probe response handling to treat the scan table
     58   more like a scan cache--look for an existing entry before adding
     59   a new one; this combined with ic_curchan use corrects handling of
     60   stations that were previously found at a different channel
     61 o move adhoc neighbor discovery by beacon+probe response frames to
     62   a new ieee80211_add_neighbor routine
     63 
     64 Reviewed by:	avatar
     65 Tested by:	avatar, Michal Mertl
     66 MFC after:	2 weeks
     67 
     68 2005-08-09 10:19  rwatson
     69 
     70 Propagate rename of IFF_OACTIVE and IFF_RUNNING to IFF_DRV_OACTIVE and
     71 IFF_DRV_RUNNING, as well as the move from ifnet.if_flags to
     72 ifnet.if_drv_flags.  Device drivers are now responsible for
     73 synchronizing access to these flags, as they are in if_drv_flags.  This
     74 helps prevent races between the network stack and device driver in
     75 maintaining the interface flags field.
     76 
     77 Many __FreeBSD__ and __FreeBSD_version checks maintained and continued;
     78 some less so.
     79 
     80 Reviewed by:	pjd, bz
     81 MFC after:	7 days
     82 
     83 2005-08-08 18:46  sam
     84 
     85 Split crypto tx+rx key indices and add a key index -> node mapping table:
     86 
     87 Crypto changes:
     88 o change driver/net80211 key_alloc api to return tx+rx key indices; a
     89   driver can leave the rx key index set to IEEE80211_KEYIX_NONE or set
     90   it to be the same as the tx key index (the former disables use of
     91   the key index in building the keyix->node mapping table and is the
     92   default setup for naive drivers by null_key_alloc)
     93 o add cs_max_keyid to crypto state to specify the max h/w key index a
     94   driver will return; this is used to allocate the key index mapping
     95   table and to bounds check table loookups
     96 o while here introduce ieee80211_keyix (finally) for the type of a h/w
     97   key index
     98 o change crypto notifiers for rx failures to pass the rx key index up
     99   as appropriate (michael failure, replay, etc.)
    100 
    101 Node table changes:
    102 o optionally allocate a h/w key index to node mapping table for the
    103   station table using the max key index setting supplied by drivers
    104   (note the scan table does not get a map)
    105 o defer node table allocation to lateattach so the driver has a chance
    106   to set the max key id to size the key index map
    107 o while here also defer the aid bitmap allocation
    108 o add new ieee80211_find_rxnode_withkey api to find a sta/node entry
    109   on frame receive with an optional h/w key index to use in checking
    110   mapping table; also updates the map if it does a hash lookup and the
    111   found node has a rx key index set in the unicast key; note this work
    112   is separated from the old ieee80211_find_rxnode call so drivers do
    113   not need to be aware of the new mechanism
    114 o move some node table manipulation under the node table lock to close
    115   a race on node delete
    116 o add ieee80211_node_delucastkey to do the dirty work of deleting
    117   unicast key state for a node (deletes any key and handles key map
    118   references)
    119 
    120 Ath driver:
    121 o nuke private sc_keyixmap mechansim in favor of net80211 support
    122 o update key alloc api
    123 
    124 These changes close several race conditions for the ath driver operating
    125 in ap mode.  Other drivers should see no change.  Station mode operation
    126 for ath no longer uses the key index map but performance tests show no
    127 noticeable change and this will be fixed when the scan table is eliminated
    128 with the new scanning support.
    129 
    130 Tested by:	Michal Mertl, avatar, others
    131 Reviewed by:	avatar, others
    132 MFC after:	2 weeks
    133 
    134 2005-08-08 05:49  sam
    135 
    136 use ieee80211_iterate_nodes to retrieve station data; the previous
    137 code walked the list w/o locking
    138 
    139 MFC after:	1 week
    140 
    141 2005-08-08 03:30  sam
    142 
    143 Cleanup beacon/listen interval handling:
    144 o separate configured beacon interval from listen interval; this
    145   avoids potential use of one value for the other (e.g. setting
    146   powersavesleep to 0 clobbers the beacon interval used in hostap
    147   or ibss mode)
    148 o bounds check the beacon interval received in probe response and
    149   beacon frames and drop frames with bogus settings; not clear
    150   if we should instead clamp the value as any alteration would
    151   result in mismatched sta+ap configuration and probably be more
    152   confusing (don't want to log to the console but perhaps ok with
    153   rate limiting)
    154 o while here up max beacon interval to reflect WiFi standard
    155 
    156 Noticed by:	Martin <nakal (a] nurfuerspam.de>
    157 MFC after:	1 week
    158 
    159 2005-08-06 04:57  sam
    160 
    161 fix debug msg typo
    162 
    163 MFC after:	3 days
    164 
    165 2005-08-06 04:56  sam
    166 
    167 Fix handling of frames sent prior to a station being authorized
    168 when operating in ap mode.  Previously we allocated a node from the
    169 station table, sent the frame (using the node), then released the
    170 reference that "held the frame in the table".  But while the frame
    171 was in flight the node might be reclaimed which could lead to
    172 problems.  The solution is to add an ieee80211_tmp_node routine
    173 that crafts a node that does exist in a table and so isn't ever
    174 reclaimed; it exists only so long as the associated frame is in flight.
    175 
    176 MFC after:	5 days
    177 
    178 2005-07-31 06:12  sam
    179 
    180 close a race between reclaiming a node when a station is inactive
    181 and sending the null data frame used to probe inactive stations
    182 
    183 MFC after:	5 days
    184 
    185 2005-07-27 04:41  sam
    186 
    187 when bridging internally bypass the bss node as traffic to it
    188 must follow the normal input path
    189 
    190 Submitted by:	Michal Mertl
    191 MFC after:	5 days
    192 
    193 2005-07-27 02:53  sam
    194 
    195 bandaid ni_fails handling so ap's with association failures are
    196 reconsidered after a bit; a proper fix involves more changes to
    197 the scanning infrastructure
    198 
    199 Reviewed by:	avatar, David Young
    200 MFC after:	5 days
    201 
    202 2005-07-23 00:16  sam
    203 
    204 the AREF flag is only meaningful in ap mode; adhoc neighbors now
    205 are timed out of the sta/neighbor table
    206 
    207 2005-07-22 23:25  sam
    208 
    209 o move inactivity-related debug msgs under IEEE80211_MSG_INACT
    210 o probe inactive neighbors in adhoc mode (they don't have an
    211   association id so previously were being timed out)
    212 
    213 MFC after:	3 days
    214 
    215 2005-07-22 21:11  sam
    216 
    217 split xmit of probe request frame out into a separate routine that
    218 takes explicit parameters; this will be needed when scanning is
    219 decoupled from the state machine to do bg scanning
    220 
    221 MFC after:	3 days
    222 
    223 2005-07-22 20:48  sam
    224 
    225 split 802.11 frame xmit setup code into ieee80211_send_setup
    226 
    227 MFC after:	3 days
    228 
    229 2005-07-22 17:57  sam
    230 
    231 simplify ic_newassoc callback
    232 
    233 MFC after:	3 days
    234 
    235 2005-07-22 17:54  sam
    236 
    237 simplify ieee80211_ibss_merge api
    238 
    239 MFC after:	3 days
    240 
    241 2005-07-22 17:50  sam
    242 
    243 add stats we know we'll need soon and some spare fields for future expansion
    244 
    245 MFC after:	3 days
    246 
    247 2005-07-22 17:45  sam
    248 
    249 simplify tim callback api
    250 
    251 MFC after:	3 days
    252 
    253 2005-07-22 17:42  sam
    254 
    255 don't include 802.3 header in min frame length calculation as it may
    256 not be present for a frag; fixes problem with small (fragmented) frames
    257 being dropped
    258 
    259 Obtained from:	Atheros
    260 MFC after:	3 days
    261 
    262 2005-07-22 17:36  sam
    263 
    264 simplify ieee80211_node_authorize and ieee80211_node_unauthorize api's
    265 
    266 MFC after:	3 days
    267 
    268 2005-07-22 17:31  sam
    269 
    270 simplifiy ieee80211_send_nulldata api
    271 
    272 MFC after:	3 days
    273 
    274 2005-07-22 17:29  sam
    275 
    276 simplify rate set api's by removing ic parameter (implicit in node reference)
    277 
    278 MFC after:	3 days
    279 
    280 2005-07-22 17:21  sam
    281 
    282 reject association requests with a wpa/rsn ie when wpa/rsn is not
    283 configured on the ap; previously we either ignored the ie or (possibly)
    284 failed an assertion
    285 
    286 Obtained from:	Atheros
    287 MFC after:	3 days
    288 
    289 2005-07-22 17:16  sam
    290 
    291 missed one in last commit; add device name to discard msgs
    292 
    293 2005-07-22 17:13  sam
    294 
    295 include device name in discard msgs
    296 
    297 2005-07-22 17:12  sam
    298 
    299 add diag msgs for frames discarded because the direction field is wrong
    300 
    301 2005-07-22 17:08  sam
    302 
    303 split data frame delivery out to a new function ieee80211_deliver_data
    304 
    305 2005-07-22 17:00  sam
    306 
    307 o add IEEE80211_IOC_FRAGTHRESHOLD for getting+setting the
    308   tx fragmentation threshold
    309 o fix bounds checking on IEEE80211_IOC_RTSTHRESHOLD
    310 
    311 MFC after:	3 days
    312 
    313 2005-07-22 16:55  sam
    314 
    315 o add IEEE80211_FRAG_DEFAULT
    316 o move default settings for RTS and frag thresholds to ieee80211_var.h
    317 
    318 2005-07-22 16:50  sam
    319 
    320 diff reduction against p4: define IEEE80211_FIXED_RATE_NONE and use
    321 it instead of -1
    322 
    323 2005-07-22 16:37  sam
    324 
    325 add flags missed in last merge
    326 
    327 2005-07-22 16:36  sam
    328 
    329 Diff reduction against p4:
    330 o add ic_flags_ext for eventual extension of ic_flags
    331 o define/reserve flag+capabilities bits for superg,
    332   bg scan, and roaming support
    333 o refactor debug msg macros
    334 
    335 MFC after:	3 days
    336 
    337 2005-07-22 05:17  sam
    338 
    339 send a response when an auth request is denied due to an acl;
    340 might be better to silently ignore the frame but this way we
    341 give stations a chance of figuring out what's wrong
    342 
    343 2005-07-22 05:15  sam
    344 
    345 remove excess whitespace
    346 
    347 2005-07-22 04:55  sam
    348 
    349 use IF_HANDOFF when bridging frames internally so if_start gets
    350 called; fixes communication between associated sta's
    351 
    352 MFC after:	3 days
    353 
    354 2005-07-11 03:06  sam
    355 
    356 Handle encrypt of arbitarily fragmented mbuf chains: previously
    357 we bailed if we couldn't collect the 16-bytes of data required
    358 for an aes block cipher in 2 mbufs; now we deal with it.  While
    359 here make space accounting signed so a sanity check does the
    360 right thing for malformed mbuf chains.
    361 
    362 Approved by:	re (scottl)
    363 
    364 2005-07-11 03:00  sam
    365 
    366 nuke assert that duplicates real check
    367 
    368 Reviewed by:	avatar
    369 Approved by:	re (scottl)
    370 
    371 2005-07-09 23:15  sam
    372 
    373 Change default key allocation method to do the right thing for
    374 legacy parts (i.e. those that have 4 global key slots).  We
    375 blindly assign unicast keys to key slot 0.  Devices that need
    376 alternate allocation logic must override this method.
    377 
    378 Reviewed by:	avatar
    379 Approved by:	re (scottl)
    380 
    381 2005-07-08 22:49  sam
    382 
    383 correct check for high priority wme traffic
    384 
    385 Noticed by:	Ralf Assmann
    386 Reviewed by:	apatti
    387 Approved by:	re (scottl)
    388 
    389 2005-07-08 16:36  sam
    390 
    391 fix another instance of the MORE_DATA bit handling for frames on the
    392 power save queue (missed in previous commit)
    393 
    394 Submitted by:	Bruno Randolf
    395 Approved by:	re (scottl)
    396 
    397 2005-07-06 15:38  sam
    398 
    399 add "pureg" mode for ap operation: reject association requests from
    400 11b-only stations when operating in 11g
    401 
    402 Reviewed by:	avatar
    403 Approved by:	re (scottl)
    404 
    405 2005-07-06 01:55  sam
    406 
    407 Fix handling of data frames queued for a station in power save mode:
    408 don't mark the MORE_DATA bit when taking it off the ps queue, there's
    409 no 802.11 header then; we must wait to do this at encap time so
    410 mark the mbuf instead.
    411 
    412 Reviewed by:	avatar
    413 Approved by:	re (scottl)
    414 Obtained from:	Atheros
    415 
    416 2005-07-06 01:51  sam
    417 
    418 Fix race condition in handling node reference counts for authenticating
    419 stations in ap mode.  Track when a node's first auth frame is
    420 received and use this to decide whether or not to bump the refcnt.
    421 This insures we only ever bump the refcnt once.
    422 
    423 Reviewed by:	avatar
    424 Approved by:	re (scottl)
    425 
    426 2005-07-06 01:31  avatar
    427 
    428 Only update the scan entry state based on newly received frames.
    429 This fixes duplicative BSS entries(memory leaks as well) listed in
    430 "ifconfig dev list scan" when a station fails to associate with an AP.
    431 
    432 Reviewed by:	sam
    433 Approved by:	re (scottl)
    434 
    435 2005-07-05 18:05  sam
    436 
    437 remove auto-add of IEEE80211_KEY_GROUP; all the apps that need to
    438 set it have been fixed
    439 
    440 Reviewed by:	avatar
    441 Approved by:	re (scottl)
    442 
    443 2005-07-05 17:35  sam
    444 
    445 o when setting a wpa key, hold a ref on the bss node;
    446   fixes a ref cnt leak
    447 o make unicast key handling on delete identical to set
    448 o change legacy wep key api to reset the 802.11 state
    449   machine for backwards compatibility
    450 
    451 Reviewed by:	avatar
    452 Approved by:	re (scottl)
    453 
    454 2005-07-04 01:29  sam
    455 
    456 when operating in ap mode, explicitly drop associated/authenticated
    457 stations when transitioning to INIT state (e.g. as a result of
    458 changing state at the 802.11 level)
    459 
    460 Approved by:	re (scottl)
    461 
    462 2005-06-13 21:01  sam
    463 
    464 revert 1.53; it breaks ibss merge
    465 
    466 Noticed by:	Bruno Randolf
    467 Approved by:	re (dwhite)
    468 
    469 2005-06-10 21:30  sam
    470 
    471 don't look at the wme ie in a beacon unless we negotiated use
    472 
    473 2005-06-10 16:49  brooks
    474 
    475 Stop embedding struct ifnet at the top of driver softcs. Instead the
    476 struct ifnet or the layer 2 common structure it was embedded in have
    477 been replaced with a struct ifnet pointer to be filled by a call to the
    478 new function, if_alloc(). The layer 2 common structure is also allocated
    479 via if_alloc() based on the interface type. It is hung off the new
    480 struct ifnet member, if_l2com.
    481 
    482 This change removes the size of these structures from the kernel ABI and
    483 will allow us to better manage them as interfaces come and go.
    484 
    485 Other changes of note:
    486  - Struct arpcom is no longer referenced in normal interface code.
    487    Instead the Ethernet address is accessed via the IFP2ENADDR() macro.
    488    To enforce this ac_enaddr has been renamed to _ac_enaddr.
    489  - The second argument to ether_ifattach is now always the mac address
    490    from driver private storage rather than sometimes being ac_enaddr.
    491 
    492 Reviewed by:	sobomax, sam
    493 
    494 2005-06-10 16:14  sam
    495 
    496 validate the bssid for non-data frames too when operating in
    497 adhoc/ahdemo/hostap modes
    498 
    499 2005-06-10 16:11  sam
    500 
    501 o fix wpa w/ wme: don't strip the QoS header on recv as tkip requires
    502   it; instead pass the space occupied by the header down into the
    503   crypto modules (except in the demic case which needs it only when
    504   doing int in s/w)
    505 o while here fix defrag to strip the header from 2nd and later frames
    506 o teach decap code how to handle 4-address frames
    507 
    508 2005-06-10 05:04  sam
    509 
    510 mark stations authorized during recv processing instead of doing it
    511 as a side effect of sending an auth success frame; sending mgmt
    512 frames should not have side effects
    513 
    514 2005-06-10 04:42  sam
    515 
    516 move AID implementation defines from the protocol definitions to
    517 where they are used
    518 
    519 2005-06-10 04:37  sam
    520 
    521 accept diassoc frame in ASSOC state
    522 
    523 2005-06-10 01:48  sam
    524 
    525 pull some debug msgs up so they're seen more often
    526 
    527 2005-06-10 01:47  sam
    528 
    529 kick the state machine when we receive failure notice from an ap (when
    530 operating in sta mode); this speeds up the state machine, previously
    531 we were acting on a timeout
    532 
    533 2005-06-10 01:43  sam
    534 
    535 discard open auth requests in adhoc mode
    536 
    537 2005-06-10 01:41  sam
    538 
    539 reject open auth requests when shared key auth is configured
    540 
    541 Obtained from:	Atheros
    542 
    543 2005-06-10 01:40  sam
    544 
    545 add ieee80211_send_error to encapsulate an idiom
    546 
    547 2005-06-10 01:38  sam
    548 
    549 o always check if ic_set_tim is !NULL before using it
    550 o add missing call to clear tim after flushing ps q
    551 
    552 2005-06-10 01:35  sam
    553 
    554 mark state for protection only when operating in 11g
    555 
    556 2005-06-10 01:33  sam
    557 
    558 don't reject station based on the PRIVACY bit in the capabilities;
    559 the 802.11 spec says not to
    560 
    561 Obtained from:	Atheros
    562 
    563 2005-06-10 01:31  sam
    564 
    565 correct checks for rate set compatibility
    566 
    567 2005-06-10 01:29  sam
    568 
    569 record tstamp from beacons received in station mode when associated;
    570 this is needed by drivers that want to resync their timers based on
    571 the tsf of the last recv'd beacon frame
    572 
    573 2005-06-09 04:05  sam
    574 
    575 o collect dtim period+count from beacons in station mode so drivers
    576   can better program beacon timers
    577 o leave placeholder in com structure for future ap/adhoc mode tim support
    578 
    579 Reviewed by:	avatar
    580 
    581 2005-06-07 23:37  sam
    582 
    583 Change the MLME ASSOCIATE ioctl to accept either a ssid, a bssid,
    584 or a bssid+ssid. This is needed for later versions of wpa_supplicant
    585 and for forthcoming addons to wpa_supplicant.
    586 
    587 Note this is an api change and applications must be rebuilt.
    588 
    589 2005-06-07 23:31  sam
    590 
    591 Don't clock the state machine in various cases when roaming is set
    592 to manual; this helps keep wpa_supplicant in sync.
    593 
    594 2005-06-07 00:08  sam
    595 
    596 WPA/802.11i interoperability fixes:
    597 o only include capabilities word in the WPA ie when non-zero and
    598   not preauth
    599 o always include the capabilities in the RSN ie
    600 
    601 Obtained from:	Atheros
    602 
    603 2005-06-06 04:04  sam
    604 
    605 add force flag to enmic/demic crypto api for use in xmit fragmentation
    606 and h/w mic verification
    607 
    608 Reviewed by:	avatar
    609 
    610