linux/drivers/net/wireless/iwlwifi
Johannes Berg 5a3d9882b8 iwlagn: rewrite HW crypto
As I just discovered while doing WoWLAN, HW crypto
is done wrong for GTKs: they should be programmed
for the AP station ID (in the managed mode case)
and the HW can actually deal with multiple group
keys per station as well (which is useful in IBSS
RSN but that I've chosen not to use this).

To fix all this, modify the way keys are sent to
the device and key offsets are allocated. After
these changes, key offsets are stored into the
hw_key_idx which we can then track for the key
lifetime, not relying on our sta_cmd array. WEP
default keys get special treatment, of course.

Additionally, since I had the API for it, we can
now pre-fill TKIP phase 1 keys for RX now that we
can obtain the P1K from mac80211, a capability I
had added for WoWLAN initially.

Finally, some keys simply don't need to be added
into the device's key cache -- a key that won't
be used for RX is only needed in the TX header,
so "pretend" to have accepted any key without
adding it into the device -- no need to use up
key space there for it.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
2011-07-21 07:31:25 -07:00
..
iwl-1000.c iwlagn: kill iwlagn_setup_deferred_work 2011-07-21 07:28:03 -07:00
iwl-2000.c iwlagn: kill iwlagn_setup_deferred_work 2011-07-21 07:28:03 -07:00
iwl-5000-hw.h iwlagn: generic temperature location in EEPROM 2011-06-11 07:10:48 -07:00
iwl-5000.c iwlagn: transport layer receives struct iwl_trans* 2011-07-21 07:29:48 -07:00
iwl-6000-hw.h
iwl-6000.c iwlagn: transport layer receives struct iwl_trans* 2011-07-21 07:29:48 -07:00
iwl-agn-calib.c iwlagn: remove un-necessary "_agn" 2011-07-21 07:31:01 -07:00
iwl-agn-calib.h iwlagn: remove iwlagn_hcmd_utils structure and call directly 2011-07-11 15:02:10 -04:00
iwl-agn-eeprom.c iwlagn: remove indirection for eeprom_query_addr 2011-07-11 15:02:05 -04:00
iwl-agn-hw.h iwlagn: move PCI power related functions to the PCI layer 2011-06-18 08:17:29 -07:00
iwl-agn-lib.c iwlagn: remove un-necessary "_agn" 2011-07-21 07:31:01 -07:00
iwl-agn-rs.c iwlagn: testmode fixed rate available for testmode only 2011-07-21 07:30:36 -07:00
iwl-agn-rs.h
iwl-agn-rxon.c iwlagn: remove un-necessary "_agn" 2011-07-21 07:31:01 -07:00
iwl-agn-sta.c iwlagn: rewrite HW crypto 2011-07-21 07:31:25 -07:00
iwl-agn-tt.c iwlagn: use IWL_DEBUG_TEMP for temperature related debug 2011-06-11 07:10:25 -07:00
iwl-agn-tt.h
iwl-agn-tx.c iwlagn: testmode fixed rate available for testmode only 2011-07-21 07:30:36 -07:00
iwl-agn-ucode.c iwlagn: transport layer receives struct iwl_trans* 2011-07-21 07:29:48 -07:00
iwl-agn.c iwlagn: rewrite HW crypto 2011-07-21 07:31:25 -07:00
iwl-agn.h iwlagn: rewrite HW crypto 2011-07-21 07:31:25 -07:00
iwl-bus.h iwlagn: iwl_bus holds drv_data as void * instead of iwl_priv 2011-07-21 07:30:07 -07:00
iwl-commands.h iwlagn: rewrite HW crypto 2011-07-21 07:31:25 -07:00
iwl-core.c iwlagn: remove un-necessary "_agn" 2011-07-21 07:31:01 -07:00
iwl-core.h iwlagn: iwl_bus holds drv_data as void * instead of iwl_priv 2011-07-21 07:30:07 -07:00
iwl-csr.h
iwl-debug.h iwlagn: remove forgotten debugfs function 2011-07-21 07:31:10 -07:00
iwl-debugfs.c iwlagn: remove un-necessary "_agn" 2011-07-21 07:31:01 -07:00
iwl-dev.h iwlagn: remove un-necessary "_agn" 2011-07-21 07:31:01 -07:00
iwl-devtrace.c
iwl-devtrace.h iwlagn: more ucode error log info 2011-05-13 12:01:50 -07:00
iwl-eeprom.c iwlagn: remove dual-indirect call to simply the code 2011-07-16 07:37:28 -07:00
iwl-eeprom.h iwlagn: remove indirection for eeprom_query_addr 2011-07-11 15:02:05 -04:00
iwl-fh.h iwlagn: remove the indirection for the dma channel num 2011-07-11 15:02:03 -04:00
iwl-helpers.h iwlwifi: fix stop/wake queue hacks 2011-06-20 15:16:32 -04:00
iwl-io.c iwlagn: introduce silent grabbing of NIC access 2011-04-30 08:39:22 -07:00
iwl-io.h iwlagn: simplify the bus architecture 2011-07-21 07:29:55 -07:00
iwl-led.c iwlagn: simplify the bus architecture 2011-07-21 07:29:55 -07:00
iwl-led.h
iwl-pci.c iwlagn: add comment to warn about WoWLAN in resume / suspend flows 2011-07-21 07:30:27 -07:00
iwl-power.c iwlagn: simplify the bus architecture 2011-07-21 07:29:55 -07:00
iwl-power.h iwlagn: move PCI power related functions to the PCI layer 2011-06-18 08:17:29 -07:00
iwl-prph.h iwlagn: add tx start API to transport layer 2011-07-16 07:39:42 -07:00
iwl-rx.c iwlagn: remove un-necessary "_agn" 2011-07-21 07:31:01 -07:00
iwl-scan.c iwlagn: remove un-necessary "_agn" 2011-07-21 07:31:01 -07:00
iwl-sta.c iwlagn: rewrite HW crypto 2011-07-21 07:31:25 -07:00
iwl-sta.h iwlagn: rewrite HW crypto 2011-07-21 07:31:25 -07:00
iwl-sv-open.c iwlagn: simplify the bus architecture 2011-07-21 07:29:55 -07:00
iwl-testmode.h iwlagn: allow application own the uCode operation 2011-07-11 15:02:08 -04:00
iwl-trans-int-pcie.h iwlagn: SCD configuration for AMPDU moves to transport layer 2011-07-21 07:29:12 -07:00
iwl-trans-rx-pcie.c iwlagn: remove un-necessary "_agn" 2011-07-21 07:31:01 -07:00
iwl-trans-tx-pcie.c iwlagn: simplify the bus architecture 2011-07-21 07:29:55 -07:00
iwl-trans.c iwlagn: simplify the bus architecture 2011-07-21 07:29:55 -07:00
iwl-trans.h iwlagn: transport layer receives struct iwl_trans* 2011-07-21 07:29:48 -07:00
Kconfig iwlwifi: support the svtool messages interactions through nl80211 test mode 2011-05-06 10:44:46 -07:00
Makefile iwlagn: move all the ICT related functions to iwl-trans-rx-pcie.c 2011-07-16 07:39:34 -07:00