On Wed, 2006-10-25 at 16:28 +0800, Hong Liu wrote: > I'd prefer to let the stack tell the driver when there is new phase1 key > generated.
Fine too, I guess. > + u8 tkip_keylen; What do you need that for? The driver should know whether it requested a phase 1 or phase 2 key. > + u8 tkip_key[16];/* generated RC4/phase1 key for hw TKIP */ Do we really have to stick this into this structure? But I'll let Jiri figure out how to remove the structure bloat :) > + /* calculate Michael MIC for an MSDU when doing hwcrypto */ > +#define IEEE80211_HW_TKIP_INCLUDE_MMIC (1<<12) > + /* Do TKIP phase1 key mixing in stack to support cards only do > + * phase2 key mixing when doing hwcrypto */ > +#define IEEE80211_HW_TKIP_REQ_PHASE1_KEY (1<<13) > + /* Do TKIP phase1 and phase2 key mixing in stack and send the generated > + * per-packet RC4 key with each TX frame when doing hwcrypto */ > +#define IEEE80211_HW_TKIP_REQ_PHASE2_KEY (1<<14) Maybe a comment indicating that you must not set both of these flags would be good. Or (see below) Should there be some flag indicating if the hw/firmware checked the MIC on reception? The current code has bad assumptions there: (from the pre-flags version) /* Some devices handle Michael MIC internally and do not include MIC in * the received packets passed up. device_strips_mic must be set * for such devices. The 'encryption' frame control bit is expected to * be still set in the IEEE 802.11 header with this option unlike with * the device_hides_wep configuration option. */ unsigned int device_strips_mic:1; What if the devices leaves the MIC there but indicates if it was checked? > + if (flags & IEEE80211_HW_TKIP_REQ_PHASE1_KEY) { ... > + } else if (flags & IEEE80211_HW_TKIP_REQ_PHASE2_KEY) { ... if you change the order of these tests then setting both flags will be fine. johannes - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html