Revision tags: release/11.0.1, release/11.0.0, release/10.3.0 |
|
#
11d38a57 |
| 28-Oct-2015 |
Baptiste Daroussin <bapt@FreeBSD.org> |
Merge from head
Sponsored by: Gandi.net
|
#
324fd1ce |
| 15-Oct-2015 |
Glen Barber <gjb@FreeBSD.org> |
MFH to r289370
Sponsored by: The FreeBSD Foundation
|
#
becbad1f |
| 13-Oct-2015 |
Baptiste Daroussin <bapt@FreeBSD.org> |
Merge from head
|
#
a997b777 |
| 13-Oct-2015 |
Navdeep Parhar <np@FreeBSD.org> |
Sync up with head up to r289211.
|
#
4f4a7a03 |
| 12-Oct-2015 |
Adrian Chadd <adrian@FreeBSD.org> |
net80211 drivers: eliminate any references to sc_rxtap_len/sc_txtap_len (never used here)
Submitted by: <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3776
|
#
65dcb5bc |
| 01-Oct-2015 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r288197 through r288456.
|
#
5a2b666c |
| 01-Oct-2015 |
Baptiste Daroussin <bapt@FreeBSD.org> |
Merge from head
|
#
a3767659 |
| 30-Sep-2015 |
Adrian Chadd <adrian@FreeBSD.org> |
modify the rssi logic a bit to actually return a useful rssi.
The fullmac firmware doesn't seem to populate a useful rssi indicator in the RX descriptor, so if one plotted said values, they'd basica
modify the rssi logic a bit to actually return a useful rssi.
The fullmac firmware doesn't seem to populate a useful rssi indicator in the RX descriptor, so if one plotted said values, they'd basically look like garbage.
The reference driver implements a "get current rssi" firmware command which I guess is really meant for station operation only (as hostap operation would need rssi per station, not a single firmware read.)
So:
* populate sc_currssi during each calibration run; * use this in the RX path instead of trying to reconstruct the RSSI value and passing it around as a pointer; * do up a quick hack to map the rssi hardware value to some useful signal level; * the survey results provide an RSSI value between 0..100, so just do another quick hack to map it into some usefulish signal level; * supply a faked noise floor - I haven't yet found how to pull it out of the firmware.
The scan results and the station RSSI information is now more useful for indicating signal strength / distance.
show more ...
|
#
85dafc69 |
| 29-Sep-2015 |
Adrian Chadd <adrian@FreeBSD.org> |
rsu(4): Add support for 1T2R and 2T2R NICs.
This logic is mostly crimed from the reference driver and the linux r92su driver.
I verified that it (a) worked on the rsu hardware I have, and (b) did t
rsu(4): Add support for 1T2R and 2T2R NICs.
This logic is mostly crimed from the reference driver and the linux r92su driver.
I verified that it (a) worked on the rsu hardware I have, and (b) did traffic testing whilst watching what ath(4) sent as a hostap. It successfully sent MCS8..15 rates (which requires 2-stream reception) as well as MCS0..7 (which is 1-stream.)
Tested:
* RTL8712, 1T1R NIC, MCS rates 0..7. * RTL8712, 1T2R NIC, MCS rates 0..15
TODO:
* Find a 2T2R NIC!
show more ...
|
#
0f405ee7 |
| 28-Sep-2015 |
Navdeep Parhar <np@FreeBSD.org> |
Sync up with head (up to r288341).
|
#
26e065d0 |
| 22-Sep-2015 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r288035 through r288099.
|
#
0cf00015 |
| 22-Sep-2015 |
Adrian Chadd <adrian@FreeBSD.org> |
net80211: include one copy of struct ieee80211_beacon_offsets into ieee80211vap
Submitted by: Andriy Voskoboinyk <s3erios@gmail.com> Differential Revision: https://reviews.freebsd.org/D3658
|
#
44369387 |
| 22-Sep-2015 |
Adrian Chadd <adrian@FreeBSD.org> |
Send a power command to the firmware to shut down the radio as well during rsu_stop().
|
#
6acf853d |
| 22-Sep-2015 |
Adrian Chadd <adrian@FreeBSD.org> |
Begin fleshing out basic power-on / power-off and A-MPDU TX support.
* Add a new method to control NIC poweron / network-sleep / power off; * Add in A-MPDU TX negotiation support, but comment it out
Begin fleshing out basic power-on / power-off and A-MPDU TX support.
* Add a new method to control NIC poweron / network-sleep / power off; * Add in A-MPDU TX negotiation support, but comment it out because it does break TX traffic; * blank out the tx buffer before sending a firmware message, just in case; * go into network-sleep once associated;
TODO:
* figure out why ampdu negotiation isn't working and breaking TX traffic, then enable it.
show more ...
|
#
77435f18 |
| 21-Sep-2015 |
Adrian Chadd <adrian@FreeBSD.org> |
Convert if_rsu to use a deferred transmit task rather than using rsu_start() to do it directly.
Ensure that we re-queue starting transmit upon TX completion.
This solves two issues:
* It stops tx
Convert if_rsu to use a deferred transmit task rather than using rsu_start() to do it directly.
Ensure that we re-queue starting transmit upon TX completion.
This solves two issues:
* It stops tx stalls - before this, if the transmit path filled the mbuf queue then it'd never start another transmit.
* It enforces ordering - this is very required for 802.11n which requires frames to be transmitted in the order they're queued. Since everything remotely involved in USB has an unlock/thing/relock pattern with that mutex, the only way to guarantee TX ordering is to 100% defer it into a separate thread.
This now survives an iperf test and gets a reliable 30mbit/sec.
show more ...
|
#
ae2d96ab |
| 20-Sep-2015 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r287878 through r288034.
|
#
23386fa4 |
| 18-Sep-2015 |
Adrian Chadd <adrian@FreeBSD.org> |
Add in a temporary (hah!) workaround for net80211 scanning versus NIC requirements.
Don't start the opmode and join path until a pending survey is finished. This seems to reliably fix things.
Ideal
Add in a temporary (hah!) workaround for net80211 scanning versus NIC requirements.
Don't start the opmode and join path until a pending survey is finished. This seems to reliably fix things.
Ideally I'd just finish off the net80211 pluggable scan stuff and implement the methods here so if_rsu can just drive the scan machinery. However, that's a .. later thing.
Whilst here, remove the getbuf debugging; it's okay to run out of transmit buffers under load; it however isn't okay to not be able to send commands. I'll fix that later.
show more ...
|
#
237c4b43 |
| 18-Sep-2015 |
Adrian Chadd <adrian@FreeBSD.org> |
Add a very hacked up station only A-MPDU negotiation path.
This is enough to set things up; there are still lots of retransmits seen but it's enough to get things working.
|
#
bc6a9865 |
| 17-Sep-2015 |
Adrian Chadd <adrian@FreeBSD.org> |
Use the H2C endpoint for sending firmware commands, rather than the voice data queues.
This is similar to the openbsd and rtlwifi/r92su drivers.
Note: this driver still assumes it's a 4-endpoint de
Use the H2C endpoint for sending firmware commands, rather than the voice data queues.
This is similar to the openbsd and rtlwifi/r92su drivers.
Note: this driver still assumes it's a 4-endpoint device; I'll enforce that in a follow-up commit.
show more ...
|
#
47b0d9dd |
| 17-Sep-2015 |
Adrian Chadd <adrian@FreeBSD.org> |
Prepare for 11n - get the number of endpoints and whether 11n is available.
|
#
ddf4995d |
| 17-Sep-2015 |
Adrian Chadd <adrian@FreeBSD.org> |
Bump RX_LIST_COUNT so we don't fall behind during active traffic.
|
#
f94594b3 |
| 12-Sep-2015 |
Baptiste Daroussin <bapt@FreeBSD.org> |
Finish merging from head, messed up in previous attempt
|
#
00176600 |
| 09-Sep-2015 |
Navdeep Parhar <np@FreeBSD.org> |
Merge r286744-r287584 from head.
|
#
d9442b10 |
| 05-Sep-2015 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r286858 through r287489.
|
#
7a79cebf |
| 27-Aug-2015 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Replay r286410. Change KPI of how device drivers that provide wireless connectivity interact with the net80211 stack.
Historical background: originally wireless devices created an interface, just li
Replay r286410. Change KPI of how device drivers that provide wireless connectivity interact with the net80211 stack.
Historical background: originally wireless devices created an interface, just like Ethernet devices do. Name of an interface matched the name of the driver that created. Later, wlan(4) layer was introduced, and the wlanX interfaces become the actual interface, leaving original ones as "a parent interface" of wlanX. Kernelwise, the KPI between net80211 layer and a driver became a mix of methods that pass a pointer to struct ifnet as identifier and methods that pass pointer to struct ieee80211com. From user point of view, the parent interface just hangs on in the ifconfig list, and user can't do anything useful with it.
Now, the struct ifnet goes away. The struct ieee80211com is the only KPI between a device driver and net80211. Details:
- The struct ieee80211com is embedded into drivers softc. - Packets are sent via new ic_transmit method, which is very much like the previous if_transmit. - Bringing parent up/down is done via new ic_parent method, which notifies driver about any changes: number of wlan(4) interfaces, number of them in promisc or allmulti state. - Device specific ioctls (if any) are received on new ic_ioctl method. - Packets/errors accounting are done by the stack. In certain cases, when driver experiences errors and can not attribute them to any specific interface, driver updates ic_oerrors or ic_ierrors counters.
Details on interface configuration with new world order: - A sequence of commands needed to bring up wireless DOESN"T change. - /etc/rc.conf parameters DON'T change. - List of devices that can be used to create wlan(4) interfaces is now provided by net.wlan.devices sysctl.
Most drivers in this change were converted by me, except of wpi(4), that was done by Andriy Voskoboinyk. Big thanks to Kevin Lo for testing changes to at least 8 drivers. Thanks to pluknet@, Oliver Hartmann, Olivier Cochard, gjb@, mmoll@, op@ and lev@, who also participated in testing.
Reviewed by: adrian Sponsored by: Netflix Sponsored by: Nginx, Inc.
show more ...
|