mac80211: extend get_tkip_seq to all keys

Extend the function to read the TKIP IV32/IV16 to read the IV/PN for
all ciphers in order to allow drivers with full hardware crypto to
properly support this.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Esse commit está contido em:
Johannes Berg
2015-04-20 18:12:41 +02:00
commit 9352c19f63
10 arquivos alterados com 143 adições e 108 exclusões

Ver arquivo

@@ -69,6 +69,17 @@
#define CHANCTX_PR_ARG CHANDEF_PR_ARG, MIN_CHANDEF_PR_ARG, \
__entry->rx_chains_static, __entry->rx_chains_dynamic
#define KEY_ENTRY __field(u32, cipher) \
__field(u8, hw_key_idx) \
__field(u8, flags) \
__field(s8, keyidx)
#define KEY_ASSIGN(k) __entry->cipher = (k)->cipher; \
__entry->flags = (k)->flags; \
__entry->keyidx = (k)->keyidx; \
__entry->hw_key_idx = (k)->hw_key_idx;
#define KEY_PR_FMT " cipher:0x%x, flags=%#x, keyidx=%d, hw_key_idx=%d"
#define KEY_PR_ARG __entry->cipher, __entry->flags, __entry->keyidx, __entry->hw_key_idx
/*
@@ -522,25 +533,19 @@ TRACE_EVENT(drv_set_key,
LOCAL_ENTRY
VIF_ENTRY
STA_ENTRY
__field(u32, cipher)
__field(u8, hw_key_idx)
__field(u8, flags)
__field(s8, keyidx)
KEY_ENTRY
),
TP_fast_assign(
LOCAL_ASSIGN;
VIF_ASSIGN;
STA_ASSIGN;
__entry->cipher = key->cipher;
__entry->flags = key->flags;
__entry->keyidx = key->keyidx;
__entry->hw_key_idx = key->hw_key_idx;
KEY_ASSIGN(key);
),
TP_printk(
LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT,
LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG
LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT KEY_PR_FMT,
LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, KEY_PR_ARG
)
);
@@ -656,28 +661,25 @@ TRACE_EVENT(drv_get_stats,
)
);
TRACE_EVENT(drv_get_tkip_seq,
TRACE_EVENT(drv_get_key_seq,
TP_PROTO(struct ieee80211_local *local,
u8 hw_key_idx, u32 *iv32, u16 *iv16),
struct ieee80211_key_conf *key),
TP_ARGS(local, hw_key_idx, iv32, iv16),
TP_ARGS(local, key),
TP_STRUCT__entry(
LOCAL_ENTRY
__field(u8, hw_key_idx)
__field(u32, iv32)
__field(u16, iv16)
KEY_ENTRY
),
TP_fast_assign(
LOCAL_ASSIGN;
__entry->hw_key_idx = hw_key_idx;
__entry->iv32 = *iv32;
__entry->iv16 = *iv16;
KEY_ASSIGN(key);
),
TP_printk(
LOCAL_PR_FMT, LOCAL_PR_ARG
LOCAL_PR_FMT KEY_PR_FMT,
LOCAL_PR_ARG, KEY_PR_ARG
)
);