path: root/sys/dev/usb/wlan/if_rsu.c
diff options
authorAdrian Chadd <adrian@FreeBSD.org>2015-09-13 19:17:26 +0000
committerAdrian Chadd <adrian@FreeBSD.org>2015-09-13 19:17:26 +0000
commitcf52bbe053a1e82fd26cbc43936dac78f645d544 (patch)
tree13581857cd5d13b7587959ccf1807240bd0f7617 /sys/dev/usb/wlan/if_rsu.c
parenta44aa8e0300ec469dd472f21d810130dec2fe012 (diff)
Disable mgmt frame sending in if_rsu.
The firmware in this NIC sends management frames. So far I'm not sure which ones it handles and which ones it doesn't handle - but this is what openbsd does. The association messages are handled by the firmware; the key negotiation for 802.1x and WPA are done as raw frames, not management frames. This successfully allows it to associate to my home networks whereas it didn't work beforehand. Tested: * RTL8712, cut 3, STA mode TODO: * The firmware does send a join response with a status code; that should be logged in a more obvious way to assist with debugging. Ie, the firmware is the thing that is saying "couldn't join, sorry!", not net80211.
Notes: svn path=/head/; revision=287763
Diffstat (limited to 'sys/dev/usb/wlan/if_rsu.c')
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/dev/usb/wlan/if_rsu.c b/sys/dev/usb/wlan/if_rsu.c
index 86b7fce9e0b2..353d538c3142 100644
--- a/sys/dev/usb/wlan/if_rsu.c
+++ b/sys/dev/usb/wlan/if_rsu.c
@@ -299,6 +299,13 @@ rsu_match(device_t self)
static int
+rsu_send_mgmt(struct ieee80211_node *ni, int type, int arg)
+ return (ENOTSUP);
+static int
rsu_attach(device_t self)
struct usb_attach_arg *uaa = device_get_ivars(self);
@@ -398,6 +405,7 @@ rsu_attach(device_t self)
ic->ic_update_mcast = rsu_update_mcast;
ic->ic_parent = rsu_parent;
ic->ic_transmit = rsu_transmit;
+ ic->ic_send_mgmt = rsu_send_mgmt;
ieee80211_radiotap_attach(ic, &sc->sc_txtap.wt_ihdr,
sizeof(sc->sc_txtap), RSU_TX_RADIOTAP_PRESENT,