at v2.6.29 41 lines 1.1 kB view raw
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 */ 10 11#include <net/iw_handler.h> 12#include "ieee80211_i.h" 13 14/* 15 * indicate a failed Michael MIC to userspace; the passed packet 16 * (in the variable hdr) must be long enough to extract the TKIP 17 * fields like TSC 18 */ 19void mac80211_ev_michael_mic_failure(struct ieee80211_sub_if_data *sdata, int keyidx, 20 struct ieee80211_hdr *hdr) 21{ 22 union iwreq_data wrqu; 23 char *buf = kmalloc(128, GFP_ATOMIC); 24 25 if (buf) { 26 /* TODO: needed parameters: count, key type, TSC */ 27 sprintf(buf, "MLME-MICHAELMICFAILURE.indication(" 28 "keyid=%d %scast addr=%pM)", 29 keyidx, hdr->addr1[0] & 0x01 ? "broad" : "uni", 30 hdr->addr2); 31 memset(&wrqu, 0, sizeof(wrqu)); 32 wrqu.data.length = strlen(buf); 33 wireless_send_event(sdata->dev, IWEVCUSTOM, &wrqu, buf); 34 kfree(buf); 35 } 36 37 /* 38 * TODO: re-add support for sending MIC failure indication 39 * with all info via nl80211 40 */ 41}