Date: Fri, 8 Nov 2013 23:46:23 -0800 From: Adrian Chadd <adrian@freebsd.org> To: "freebsd-wireless@freebsd.org" <freebsd-wireless@freebsd.org> Subject: [iwn] round four - 5100 works, 21xx works, EAPOL fixes, rate selection fixes Message-ID: <CAJ-VmonLHcq7dRCv_pkGigWr3yHbbjaVxyyZTpFkELUVDXrKdg@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
Argh, why am I still hacking on the iwn(4) driver. So, I saw a lot of broken stuff. This patch fixes some. http://people.freebsd.org/~adrian/iwn/20131108-iwn-update-works-full-5100-11.diff You have to update sys/net80211 and sys/dev/iwn to the latest version in HEAD before you apply this diff. What's committed: * AMRR wasn't correctly initializing the initial rate, so it thought it was starting at MCS15 but it was in fact starting at MCS0. This caused hilarity. * AMRR should be selecting a "mostly ok" rate, not MCS15. So, this was also fixed. What's in this patch: * EAPOL frames were going out at the normal data rate, rather than going out at the management rate. Like ath(4), override this. Once I fixed AMRR to set the initial rate from MCS0 to the "best initial rate" it chose MCS15 and this failed. It showed up as the initial association suceeding but the auth exchange failed, logging a "pre-shared key may be incorrect" message. Sigh. So, like ath(4), detect if it's EAPOL and if so override. * If an AMPDU frame TX failed the firmware doesn't send up a compressed-BA notification as it doesn't receive one. iwn_ampdu_tx_done() doesn't do any rate control notification - that is left up to the compressed BA RX function. So, if an entire A-MPDU transmit failed, there'd be no notification of such - and the rate control code never got notified of said failures! Thus it would never back off the rate. So, if the whole frame transmission failed, just notify the rate control code so it correctly backs off the rate selection. With this, things are .. more stable. The whole A-MPDU handling needs a lot of work to make as correct as the ath(4) driver, but that is so not in the scope of what I'm doing here. -adrian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-VmonLHcq7dRCv_pkGigWr3yHbbjaVxyyZTpFkELUVDXrKdg>