Johannes Berg | eb063c1 | 2007-08-28 17:01:53 -0400 | [diff] [blame] | 1 | /* |
| 2 | * Copyright 2007 Johannes Berg <johannes@sipsolutions.net> |
| 3 | * |
| 4 | * This program is free software; you can redistribute it and/or modify |
| 5 | * it under the terms of the GNU General Public License version 2 as |
| 6 | * published by the Free Software Foundation. |
| 7 | * |
| 8 | * mac80211 - events |
| 9 | */ |
Johannes Berg | f58d4ed | 2009-06-19 02:45:21 +0200 | [diff] [blame] | 10 | #include <net/cfg80211.h> |
Johannes Berg | eb063c1 | 2007-08-28 17:01:53 -0400 | [diff] [blame] | 11 | #include "ieee80211_i.h" |
| 12 | |
| 13 | /* |
Jouni Malinen | a3b8b05 | 2009-03-27 21:59:49 +0200 | [diff] [blame] | 14 | * Indicate a failed Michael MIC to userspace. If the caller knows the TSC of |
| 15 | * the frame that generated the MIC failure (i.e., if it was provided by the |
| 16 | * driver or is still in the frame), it should provide that information. |
Johannes Berg | eb063c1 | 2007-08-28 17:01:53 -0400 | [diff] [blame] | 17 | */ |
Jasper Bryant-Greene | f698d85 | 2008-08-03 12:04:37 +1200 | [diff] [blame] | 18 | void mac80211_ev_michael_mic_failure(struct ieee80211_sub_if_data *sdata, int keyidx, |
Johannes Berg | e6d6e34 | 2009-07-01 21:26:47 +0200 | [diff] [blame] | 19 | struct ieee80211_hdr *hdr, const u8 *tsc, |
| 20 | gfp_t gfp) |
Johannes Berg | eb063c1 | 2007-08-28 17:01:53 -0400 | [diff] [blame] | 21 | { |
Jouni Malinen | a3b8b05 | 2009-03-27 21:59:49 +0200 | [diff] [blame] | 22 | cfg80211_michael_mic_failure(sdata->dev, hdr->addr2, |
| 23 | (hdr->addr1[0] & 0x01) ? |
| 24 | NL80211_KEYTYPE_GROUP : |
| 25 | NL80211_KEYTYPE_PAIRWISE, |
Johannes Berg | e6d6e34 | 2009-07-01 21:26:47 +0200 | [diff] [blame] | 26 | keyidx, tsc, gfp); |
Johannes Berg | eb063c1 | 2007-08-28 17:01:53 -0400 | [diff] [blame] | 27 | } |