diff options
author | Adrian Chadd <adrian@FreeBSD.org> | 2015-09-13 19:17:26 +0000 |
---|---|---|
committer | Adrian Chadd <adrian@FreeBSD.org> | 2015-09-13 19:17:26 +0000 |
commit | cf52bbe053a1e82fd26cbc43936dac78f645d544 (patch) | |
tree | 13581857cd5d13b7587959ccf1807240bd0f7617 /sys/dev/usb/wlan/if_rsu.c | |
parent | a44aa8e0300ec469dd472f21d810130dec2fe012 (diff) | |
download | src-cf52bbe053a1e82fd26cbc43936dac78f645d544.tar.gz src-cf52bbe053a1e82fd26cbc43936dac78f645d544.zip |
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
Notes:
svn path=/head/; revision=287763
Diffstat (limited to 'sys/dev/usb/wlan/if_rsu.c')
-rw-r--r-- | sys/dev/usb/wlan/if_rsu.c | 8 |
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, |