freebsd-nq/sys
Sam Leffler c1225b52f6 Split crypto tx+rx key indices and add a key index -> node mapping table:
Crypto changes:
o change driver/net80211 key_alloc api to return tx+rx key indices; a
  driver can leave the rx key index set to IEEE80211_KEYIX_NONE or set
  it to be the same as the tx key index (the former disables use of
  the key index in building the keyix->node mapping table and is the
  default setup for naive drivers by null_key_alloc)
o add cs_max_keyid to crypto state to specify the max h/w key index a
  driver will return; this is used to allocate the key index mapping
  table and to bounds check table loookups
o while here introduce ieee80211_keyix (finally) for the type of a h/w
  key index
o change crypto notifiers for rx failures to pass the rx key index up
  as appropriate (michael failure, replay, etc.)

Node table changes:
o optionally allocate a h/w key index to node mapping table for the
  station table using the max key index setting supplied by drivers
  (note the scan table does not get a map)
o defer node table allocation to lateattach so the driver has a chance
  to set the max key id to size the key index map
o while here also defer the aid bitmap allocation
o add new ieee80211_find_rxnode_withkey api to find a sta/node entry
  on frame receive with an optional h/w key index to use in checking
  mapping table; also updates the map if it does a hash lookup and the
  found node has a rx key index set in the unicast key; note this work
  is separated from the old ieee80211_find_rxnode call so drivers do
  not need to be aware of the new mechanism
o move some node table manipulation under the node table lock to close
  a race on node delete
o add ieee80211_node_delucastkey to do the dirty work of deleting
  unicast key state for a node (deletes any key and handles key map
  references)

Ath driver:
o nuke private sc_keyixmap mechansim in favor of net80211 support
o update key alloc api

These changes close several race conditions for the ath driver operating
in ap mode.  Other drivers should see no change.  Station mode operation
for ath no longer uses the key index map but performance tests show no
noticeable change and this will be fixed when the scan table is eliminated
with the new scanning support.

Tested by:	Michal Mertl, avatar, others
Reviewed by:	avatar, others
MFC after:	2 weeks
2005-08-08 18:46:36 +00:00
..
alpha Add hints for uart(4). These are the same as for sio(4) and make it 2005-08-06 19:24:22 +00:00
amd64 When support for 2MB/4MB pages was added in revision 1.148 an error was 2005-08-07 22:00:47 +00:00
arm - Add support for saving stack traces and displaying them via printf(9) 2005-08-03 04:27:40 +00:00
boot Add if_arl_load, if_axe_load, if_aue_load, if_cs_load, if_cue_load, 2005-08-07 09:41:53 +00:00
bsm For consistency with more system include files, add a trailing '_' to 2005-05-29 16:11:34 +00:00
cam Fix the recent panics/LORs/hangs created by my kqueue commit by: 2005-07-01 16:28:32 +00:00
coda
compat Add missing dependencies on the SYSVIPC modules. 2005-07-29 19:41:04 +00:00
conf Add strcasecmp() and strncasecmp() to libkern and connect to the build. 2005-08-08 18:31:13 +00:00
contrib Prevent a race condition. As pf_send_tcp() - called for expired synproxy 2005-07-20 18:58:27 +00:00
crypto
ddb Implement functions calls from within DDB on ia64. On ia64 a function 2005-07-02 23:52:37 +00:00
dev Split crypto tx+rx key indices and add a key index -> node mapping table: 2005-08-08 18:46:36 +00:00
doc
fs devfs is not yet fully MPSAFE - for example, multiple concurrent devfs(8) 2005-07-29 23:00:56 +00:00
gdb
geom MFp4: Export more informations about encrypted providers. 2005-07-27 22:31:57 +00:00
gnu Repair this: 2005-07-09 18:30:31 +00:00
i4b Fix some long standing bugs in writing to the BPF device attached to 2005-06-26 18:11:11 +00:00
i386 When support for 2MB/4MB pages was added in revision 1.148 an error was 2005-08-07 22:00:47 +00:00
ia64 Improve SMP support: 2005-08-06 20:28:19 +00:00
isa Add pnp and location info for the ISA bus. The pnp info is the 2005-08-01 07:03:10 +00:00
isofs/cd9660
kern Try best to keep a preempted thread at front of run queue, this seems 2005-08-08 14:20:10 +00:00
libkern Add strcasecmp() and strncasecmp() to libkern and connect to the build. 2005-08-08 18:31:13 +00:00
modules Connect GEOM_ELI class to the build. 2005-07-27 21:47:55 +00:00
net destroy lock _before_ free'ing the structure it resides in 2005-08-06 18:42:01 +00:00
net80211 Split crypto tx+rx key indices and add a key index -> node mapping table: 2005-08-08 18:46:36 +00:00
netatalk Eliminate MAC entry point mac_create_mbuf_from_mbuf(), which is 2005-07-05 23:39:51 +00:00
netatm Stop embedding struct ifnet at the top of driver softcs. Instead the 2005-06-10 16:49:24 +00:00
netgraph Fix up the comment. 2005-08-02 20:06:48 +00:00
netinet Introduce in_multi_mtx, which will protect IPv4-layer multicast address 2005-08-03 19:29:47 +00:00
netinet6 Modify network protocol consumers of the ifnet multicast address lists 2005-08-02 23:51:22 +00:00
netipsec Correct typo in a comment describing vshiftl(). 2005-06-02 23:56:10 +00:00
netipx Stop embedding struct ifnet at the top of driver softcs. Instead the 2005-06-10 16:49:24 +00:00
netkey fix build without option INET6. 2005-07-30 20:10:31 +00:00
netnatm Remove FreeBSD 2.2 protocol usrreq compatibility code. 2005-07-19 13:36:39 +00:00
netncp Change API of mb_copy_t in libmchain so that netsmb can handle 2005-07-29 13:22:37 +00:00
netsmb Change API of mb_copy_t in libmchain so that netsmb can handle 2005-07-29 13:22:37 +00:00
nfs Fixes for NFS crashes on architectures that require strict alignment. 2005-07-14 20:08:27 +00:00
nfs4client
nfsclient FIx for a bug in the change that made nfs_timer() MPSAFE. We need to 2005-07-27 15:06:26 +00:00
nfsserver
opencrypto malloc.h relies on param.h for a definition of MAXCPU. I guess that there is 2005-05-30 05:01:44 +00:00
pc98 MFi386: revision 1.1204. 2005-07-21 11:13:12 +00:00
pccard
pci Fix up the locking in pcn(4) and mark it MPSAFE. 2005-08-05 16:03:16 +00:00
posix4
powerpc - Add support for saving stack traces and displaying them via printf(9) 2005-08-03 04:27:40 +00:00
rpc
security Insert a series of place-holder function pointers in mac_policy.h for 2005-08-08 16:09:33 +00:00
sparc64 The system tick _compare_ register of USIII CPUs and up is ASR25, not 2005-08-07 13:21:00 +00:00
sys Add strcasecmp() and strncasecmp() to libkern and connect to the build. 2005-08-08 18:31:13 +00:00
tools Allow EVFILT_VNODE events to work on every filesystem type, not just 2005-06-09 20:20:31 +00:00
ufs Delay freeing disk space for file system blocks until all dirty buffers 2005-07-31 20:24:14 +00:00
vm Don't perform a nested include of opt_vmpage.h if LIBMEMSTAT is defined, 2005-08-04 10:05:11 +00:00
Makefile