| 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 | } |