forked from Minki/linux
f698d856f6
This patch replaces net_device arguments to mac80211 internal functions with ieee80211_{local,sub_if_data} as appropriate. It also does the same for many 802.11s mesh functions, and changes the mesh path table to be indexed on sub_if_data rather than net_device. If the mesh part needs to be a separate patch let me know, but since mesh uses a lot of mac80211 functions which were being converted anyway, the changes go hand-in-hand somewhat. This patch probably does not convert all the functions which could be converted, but it is a large chunk and followup patches will be provided. Signed-off-by: Jasper Bryant-Greene <jasper@amiton.co.nz> Signed-off-by: John W. Linville <linville@tuxdriver.com>
43 lines
1.2 KiB
C
43 lines
1.2 KiB
C
/*
|
|
* Copyright 2007 Johannes Berg <johannes@sipsolutions.net>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*
|
|
* mac80211 - events
|
|
*/
|
|
|
|
#include <net/iw_handler.h>
|
|
#include "ieee80211_i.h"
|
|
|
|
/*
|
|
* indicate a failed Michael MIC to userspace; the passed packet
|
|
* (in the variable hdr) must be long enough to extract the TKIP
|
|
* fields like TSC
|
|
*/
|
|
void mac80211_ev_michael_mic_failure(struct ieee80211_sub_if_data *sdata, int keyidx,
|
|
struct ieee80211_hdr *hdr)
|
|
{
|
|
union iwreq_data wrqu;
|
|
char *buf = kmalloc(128, GFP_ATOMIC);
|
|
DECLARE_MAC_BUF(mac);
|
|
|
|
if (buf) {
|
|
/* TODO: needed parameters: count, key type, TSC */
|
|
sprintf(buf, "MLME-MICHAELMICFAILURE.indication("
|
|
"keyid=%d %scast addr=%s)",
|
|
keyidx, hdr->addr1[0] & 0x01 ? "broad" : "uni",
|
|
print_mac(mac, hdr->addr2));
|
|
memset(&wrqu, 0, sizeof(wrqu));
|
|
wrqu.data.length = strlen(buf);
|
|
wireless_send_event(sdata->dev, IWEVCUSTOM, &wrqu, buf);
|
|
kfree(buf);
|
|
}
|
|
|
|
/*
|
|
* TODO: re-add support for sending MIC failure indication
|
|
* with all info via nl80211
|
|
*/
|
|
}
|