diff options
author | Sam Leffler <sam@FreeBSD.org> | 2004-12-31 20:59:03 +0000 |
---|---|---|
committer | Sam Leffler <sam@FreeBSD.org> | 2004-12-31 20:59:03 +0000 |
commit | ecca7ea2ee10718f3b7b7207d0a8e263844797ff (patch) | |
tree | 38c8b7b8762f9a1a503814447e2318e31b1d2745 /sys/net80211/ieee80211_crypto_tkip.c | |
parent | f287c95b863939253ba01a92974655032d89f488 (diff) |
correct pseudo-mic header calculation for QoS frames
Notes
Notes:
svn path=/head/; revision=139511
Diffstat (limited to 'sys/net80211/ieee80211_crypto_tkip.c')
-rw-r--r-- | sys/net80211/ieee80211_crypto_tkip.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/net80211/ieee80211_crypto_tkip.c b/sys/net80211/ieee80211_crypto_tkip.c index fd029180d23f..913394650673 100644 --- a/sys/net80211/ieee80211_crypto_tkip.c +++ b/sys/net80211/ieee80211_crypto_tkip.c @@ -780,7 +780,12 @@ michael_mic_hdr(const struct ieee80211_frame *wh0, uint8_t hdr[16]) break; } - hdr[12] = 0; /* XXX qos priority */ + if (wh->i_fc[0] & IEEE80211_FC0_SUBTYPE_QOS) { + const struct ieee80211_qosframe *qwh = + (const struct ieee80211_qosframe *) wh; + hdr[12] = qwh->i_qos[0] & IEEE80211_QOS_TID; + } else + hdr[12] = 0; hdr[13] = hdr[14] = hdr[15] = 0; /* reserved */ } |