On 10/03/2015 17:48, Johannes Berg wrote: > On Tue, 2015-03-10 at 16:46 +0000, Cedric Izoard wrote: >>> How can this be correct? You have a cipher scheme, so you want to >>> encrypt, but now you're not doing that? Perhaps you should drop the >>> frame instead? >>> >> On Tx, cipher scheme is "only" available trough sta pointer and is only >> used in ieee80211_crypto_cs_encrypt to get security header len. >> Since sta pointer is NULL for bcast messages, the proposed patch get the >> security header length using the key->conf.iv_len instead. >> >> If the key is installed with a cs, then key->conf.iv_len is initialized >> with cs->hdr_len. >> >> If the key is installed without a cs, then key->conf.iv_len is 0 (hence >> the early exit in ieee80211_crypto_cs_encrypt) > > So in reality, you're checking "is this a CS key"? Perhaps there's a > better way to do that? > > johannes > > The other option I see, would be to add a pointer to the cipher scheme in struct ieee80211_key. So that in TX cipher_scheme would be test/accessed using key ptr. sta->cipher_scheme would still be used for RX. Do you consider this as a better option ? rgds, cedric -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html