Commit aa0daf0e authored by Johannes Berg's avatar Johannes Berg Committed by David S. Miller

[MAC80211]: remove/change some comments about Michael MIC hardware offload

There are a few TODO comments in the mac80211 sources regarding
hardware offload for Michael MIC verification. Those items are,
however, better handled in the driver instead of the stack, if
any device requires such hand-holding.
Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 475fa49c
...@@ -1179,8 +1179,6 @@ static void ieee80211_rx_michael_mic_report(struct net_device *dev, ...@@ -1179,8 +1179,6 @@ static void ieee80211_rx_michael_mic_report(struct net_device *dev,
else else
keyidx = -1; keyidx = -1;
/* TODO: verify that this is not triggered by fragmented
* frames (hw does not verify MIC for them). */
if (net_ratelimit()) if (net_ratelimit())
printk(KERN_DEBUG "%s: TKIP hwaccel reported Michael MIC " printk(KERN_DEBUG "%s: TKIP hwaccel reported Michael MIC "
"failure from " MAC_FMT " to " MAC_FMT " keyidx=%d\n", "failure from " MAC_FMT " to " MAC_FMT " keyidx=%d\n",
...@@ -1188,9 +1186,10 @@ static void ieee80211_rx_michael_mic_report(struct net_device *dev, ...@@ -1188,9 +1186,10 @@ static void ieee80211_rx_michael_mic_report(struct net_device *dev,
keyidx); keyidx);
if (!sta) { if (!sta) {
/* Some hardware versions seem to generate incorrect /*
* Michael MIC reports; ignore them to avoid triggering * Some hardware seem to generate incorrect Michael MIC
* countermeasures. */ * reports; ignore them to avoid triggering countermeasures.
*/
if (net_ratelimit()) if (net_ratelimit())
printk(KERN_DEBUG "%s: ignored spurious Michael MIC " printk(KERN_DEBUG "%s: ignored spurious Michael MIC "
"error for unknown address " MAC_FMT "\n", "error for unknown address " MAC_FMT "\n",
...@@ -1201,16 +1200,18 @@ static void ieee80211_rx_michael_mic_report(struct net_device *dev, ...@@ -1201,16 +1200,18 @@ static void ieee80211_rx_michael_mic_report(struct net_device *dev,
if (!(rx->fc & IEEE80211_FCTL_PROTECTED)) { if (!(rx->fc & IEEE80211_FCTL_PROTECTED)) {
if (net_ratelimit()) if (net_ratelimit())
printk(KERN_DEBUG "%s: ignored spurious Michael MIC " printk(KERN_DEBUG "%s: ignored spurious Michael MIC "
"error for a frame with no ISWEP flag (src " "error for a frame with no PROTECTED flag (src "
MAC_FMT ")\n", dev->name, MAC_ARG(hdr->addr2)); MAC_FMT ")\n", dev->name, MAC_ARG(hdr->addr2));
goto ignore; goto ignore;
} }
if (rx->sdata->type == IEEE80211_IF_TYPE_AP && keyidx) { if (rx->sdata->type == IEEE80211_IF_TYPE_AP && keyidx) {
/* AP with Pairwise keys support should never receive Michael /*
* MIC errors for non-zero keyidx because these are reserved * APs with pairwise keys should never receive Michael MIC
* for group keys and only the AP is sending real multicast * errors for non-zero keyidx because these are reserved for
* frames in BSS. */ * group keys and only the AP is sending real multicast
* frames in the BSS.
*/
if (net_ratelimit()) if (net_ratelimit())
printk(KERN_DEBUG "%s: ignored Michael MIC error for " printk(KERN_DEBUG "%s: ignored Michael MIC error for "
"a frame with non-zero keyidx (%d)" "a frame with non-zero keyidx (%d)"
...@@ -1230,10 +1231,6 @@ static void ieee80211_rx_michael_mic_report(struct net_device *dev, ...@@ -1230,10 +1231,6 @@ static void ieee80211_rx_michael_mic_report(struct net_device *dev,
goto ignore; goto ignore;
} }
/* TODO: consider verifying the MIC error report with software
* implementation if we get too many spurious reports from the
* hardware. */
mac80211_ev_michael_mic_failure(rx->dev, keyidx, hdr); mac80211_ev_michael_mic_failure(rx->dev, keyidx, hdr);
ignore: ignore:
dev_kfree_skb(rx->skb); dev_kfree_skb(rx->skb);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment