2 * cfg80211 MLME SAP interface
4 * Copyright (c) 2009, Jouni Malinen <j@w1.fi>
7 #include <linux/kernel.h>
8 #include <linux/module.h>
9 #include <linux/netdevice.h>
10 #include <linux/nl80211.h>
11 #include <net/cfg80211.h>
15 void cfg80211_send_rx_auth(struct net_device
*dev
, const u8
*buf
, size_t len
)
17 struct wiphy
*wiphy
= dev
->ieee80211_ptr
->wiphy
;
18 struct cfg80211_registered_device
*rdev
= wiphy_to_dev(wiphy
);
19 nl80211_send_rx_auth(rdev
, dev
, buf
, len
);
21 EXPORT_SYMBOL(cfg80211_send_rx_auth
);
23 void cfg80211_send_rx_assoc(struct net_device
*dev
, const u8
*buf
, size_t len
)
25 struct wiphy
*wiphy
= dev
->ieee80211_ptr
->wiphy
;
26 struct cfg80211_registered_device
*rdev
= wiphy_to_dev(wiphy
);
27 nl80211_send_rx_assoc(rdev
, dev
, buf
, len
);
29 EXPORT_SYMBOL(cfg80211_send_rx_assoc
);
31 void cfg80211_send_deauth(struct net_device
*dev
, const u8
*buf
, size_t len
)
33 struct wiphy
*wiphy
= dev
->ieee80211_ptr
->wiphy
;
34 struct cfg80211_registered_device
*rdev
= wiphy_to_dev(wiphy
);
35 nl80211_send_deauth(rdev
, dev
, buf
, len
);
37 EXPORT_SYMBOL(cfg80211_send_deauth
);
39 void cfg80211_send_disassoc(struct net_device
*dev
, const u8
*buf
, size_t len
)
41 struct wiphy
*wiphy
= dev
->ieee80211_ptr
->wiphy
;
42 struct cfg80211_registered_device
*rdev
= wiphy_to_dev(wiphy
);
43 nl80211_send_disassoc(rdev
, dev
, buf
, len
);
45 EXPORT_SYMBOL(cfg80211_send_disassoc
);
47 static void cfg80211_wext_disconnected(struct net_device
*dev
)
49 #ifdef CONFIG_WIRELESS_EXT
50 union iwreq_data wrqu
;
51 memset(&wrqu
, 0, sizeof(wrqu
));
52 wireless_send_event(dev
, SIOCGIWAP
, &wrqu
, NULL
);
56 void cfg80211_send_auth_timeout(struct net_device
*dev
, const u8
*addr
)
58 struct wiphy
*wiphy
= dev
->ieee80211_ptr
->wiphy
;
59 struct cfg80211_registered_device
*rdev
= wiphy_to_dev(wiphy
);
60 nl80211_send_auth_timeout(rdev
, dev
, addr
);
61 cfg80211_wext_disconnected(dev
);
63 EXPORT_SYMBOL(cfg80211_send_auth_timeout
);
65 void cfg80211_send_assoc_timeout(struct net_device
*dev
, const u8
*addr
)
67 struct wiphy
*wiphy
= dev
->ieee80211_ptr
->wiphy
;
68 struct cfg80211_registered_device
*rdev
= wiphy_to_dev(wiphy
);
69 nl80211_send_assoc_timeout(rdev
, dev
, addr
);
70 cfg80211_wext_disconnected(dev
);
72 EXPORT_SYMBOL(cfg80211_send_assoc_timeout
);
74 void cfg80211_michael_mic_failure(struct net_device
*dev
, const u8
*addr
,
75 enum nl80211_key_type key_type
, int key_id
,
78 struct wiphy
*wiphy
= dev
->ieee80211_ptr
->wiphy
;
79 struct cfg80211_registered_device
*rdev
= wiphy_to_dev(wiphy
);
80 nl80211_michael_mic_failure(rdev
, dev
, addr
, key_type
, key_id
, tsc
);
82 EXPORT_SYMBOL(cfg80211_michael_mic_failure
);