Discussion:
QCA99XX with MU-MIMO and beamforming?
Ben Greear
2016-04-25 20:31:11 UTC
Permalink
Has anyone tried this? Looks like hostapd has the ability to set the
feature flags, but I am not sure if it is really working in ath10k?

Do you actually need anything other than standard whip antenna to
allow this to function properly?

What about station mode?

Thanks,
Ben
--
Ben Greear <***@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
Michal Kazior
2016-04-26 06:16:06 UTC
Permalink
Post by Ben Greear
Has anyone tried this? Looks like hostapd has the ability to set the
feature flags, but I am not sure if it is really working in ath10k?
vht_capab=[RXLDPC][SHORT-GI-80][TX-STBC-2BY1][SU-BEAMFORMER][SU-BEAMFORMEE][MU-BEAMFORMER][RX-ANTENNA-PATTERN][TX-ANTENNA-PATTERN][BF-ANTENNA-4][MAX-MPDU-11454][RX-STBC-1][MAX-A-MPDU-LEN-EXP7]
The SU-, MU- and BF- are the required part only I think.
Post by Ben Greear
Do you actually need anything other than standard whip antenna to
allow this to function properly?
I don't think. FWIW Make sure the antennas are reasonably set
up/separated from each other. If you cram them too tight/randomly
beamforming won't work efficiently. I had problem with client antennas
being too close to each other and lying flat on a table (I than made a
foam-stand and put them a few cm apart) so the same thing must apply
to AP as well.
Post by Ben Greear
What about station mode?
Works as well. Both on QCA99XX and QCA9377.


Michał
Valo, Kalle
2016-04-26 09:44:03 UTC
Permalink
Post by Michal Kazior
Post by Ben Greear
Has anyone tried this? Looks like hostapd has the ability to set the
feature flags, but I am not sure if it is really working in ath10k?
vht_capab=[RXLDPC][SHORT-GI-80][TX-STBC-2BY1][SU-BEAMFORMER][SU-BEAMFORMEE][MU-BEAMFORMER][RX-ANTENNA-PATTERN][TX-ANTENNA-PATTERN][BF-ANTENNA-4][MAX-MPDU-11454][RX-STBC-1][MAX-A-MPDU-LEN-EXP7]
The SU-, MU- and BF- are the required part only I think.
If/when you have time, could you please mention something about this in
the wiki:

https://wireless.wiki.kernel.org/en/users/drivers/ath10k/configuration#hostapd
--
Kalle Valo
Ben Greear
2016-04-26 14:35:35 UTC
Permalink
Post by Michal Kazior
Post by Ben Greear
Has anyone tried this? Looks like hostapd has the ability to set the
feature flags, but I am not sure if it is really working in ath10k?
vht_capab=[RXLDPC][SHORT-GI-80][TX-STBC-2BY1][SU-BEAMFORMER][SU-BEAMFORMEE][MU-BEAMFORMER][RX-ANTENNA-PATTERN][TX-ANTENNA-PATTERN][BF-ANTENNA-4][MAX-MPDU-11454][RX-STBC-1][MAX-A-MPDU-LEN-EXP7]
The SU-, MU- and BF- are the required part only I think.
Post by Ben Greear
Do you actually need anything other than standard whip antenna to
allow this to function properly?
I don't think. FWIW Make sure the antennas are reasonably set
up/separated from each other. If you cram them too tight/randomly
beamforming won't work efficiently. I had problem with client antennas
being too close to each other and lying flat on a table (I than made a
foam-stand and put them a few cm apart) so the same thing must apply
to AP as well.
Post by Ben Greear
What about station mode?
Works as well. Both on QCA99XX and QCA9377.
Thanks for the info. How did you determine that it actually worked?

My understanding is that the QCA99XX should be able to simultaneously
transmit a 2x2 frame to one peer and another 2x2 frame to a second peer,
but seems that would be hard to verify.

Maybe just look for full-ish 2x2 throughput two two different 2x2 peers?

And, maybe there are some management frames to sniff for?

And finally, could you let me know the model number of your QCA9377 device? I'd like
to get some for testing...

Thanks,
Ben
--
Ben Greear <***@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
Michal Kazior
2016-04-27 06:37:05 UTC
Permalink
Post by Ben Greear
Post by Ben Greear
Post by Ben Greear
Has anyone tried this? Looks like hostapd has the ability to set the
feature flags, but I am not sure if it is really working in ath10k?
vht_capab=[RXLDPC][SHORT-GI-80][TX-STBC-2BY1][SU-BEAMFORMER][SU-BEAMFORMEE][MU-BEAMFORMER][RX-ANTENNA-PATTERN][TX-ANTENNA-PATTERN][BF-ANTENNA-4][MAX-MPDU-11454][RX-STBC-1][MAX-A-MPDU-LEN-EXP7]
The SU-, MU- and BF- are the required part only I think.
Post by Ben Greear
Do you actually need anything other than standard whip antenna to
allow this to function properly?
I don't think. FWIW Make sure the antennas are reasonably set
up/separated from each other. If you cram them too tight/randomly
beamforming won't work efficiently. I had problem with client antennas
being too close to each other and lying flat on a table (I than made a
foam-stand and put them a few cm apart) so the same thing must apply
to AP as well.
Post by Ben Greear
What about station mode?
Works as well. Both on QCA99XX and QCA9377.
Thanks for the info. How did you determine that it actually worked?
Empirically. If you get 600mbps UDP to two 1x1 clients it works :)

Also, the rx bitrate on the receiving ath10k end will be kind of wierd
(there's currently no way to decode MU ratesets on Rx because group
ids are managed in firmware).
Post by Ben Greear
My understanding is that the QCA99XX should be able to simultaneously
transmit a 2x2 frame to one peer and another 2x2 frame to a second peer,
but seems that would be hard to verify.
No, not really. MU- consumes 1 antenna, i.e. 4 antenna chip can do
split/MU- 3 spatial streams. This also implies you need at least 3
antenna chip for MU.
Post by Ben Greear
Maybe just look for full-ish 2x2 throughput two two different 2x2 peers?
FWIW You can push 3 times 1x1 traffic which is, in theory, up to
roughly 900mbps. I was able to get up to 870mbps with ath10k w/ 3 UDP
1x1 clients on AP148.
Post by Ben Greear
And, maybe there are some management frames to sniff for?
NDP advertisment I think although these are used for sounding and
don't imply MU encoding will be used.
Post by Ben Greear
And finally, could you let me know the model number of your QCA9377 device?
I'd like
to get some for testing...
FWIW lspci tells me:

00:07.0 Network controller [0280]: Qualcomm Atheros Device [168c:0042] (rev 30)
Subsystem: Qualcomm Atheros Device [168c:334f]

Do note the revision. I recall a different revision wasn't as good at
decoding MU as rev30, at least in my experience.


Michał
Ben Greear
2016-05-02 17:59:32 UTC
Permalink
Post by Michal Kazior
Post by Ben Greear
Post by Ben Greear
Post by Ben Greear
Has anyone tried this? Looks like hostapd has the ability to set the
feature flags, but I am not sure if it is really working in ath10k?
vht_capab=[RXLDPC][SHORT-GI-80][TX-STBC-2BY1][SU-BEAMFORMER][SU-BEAMFORMEE][MU-BEAMFORMER][RX-ANTENNA-PATTERN][TX-ANTENNA-PATTERN][BF-ANTENNA-4][MAX-MPDU-11454][RX-STBC-1][MAX-A-MPDU-LEN-EXP7]
The SU-, MU- and BF- are the required part only I think.
Post by Ben Greear
Do you actually need anything other than standard whip antenna to
allow this to function properly?
I don't think. FWIW Make sure the antennas are reasonably set
up/separated from each other. If you cram them too tight/randomly
beamforming won't work efficiently. I had problem with client antennas
being too close to each other and lying flat on a table (I than made a
foam-stand and put them a few cm apart) so the same thing must apply
to AP as well.
Post by Ben Greear
What about station mode?
Works as well. Both on QCA99XX and QCA9377.
Thanks for the info. How did you determine that it actually worked?
Empirically. If you get 600mbps UDP to two 1x1 clients it works :)
Also, the rx bitrate on the receiving ath10k end will be kind of wierd
(there's currently no way to decode MU ratesets on Rx because group
ids are managed in firmware).
So, I configured 3 systems: 1 is AP, two are acting as stations.

All are 9980, but the two station systems are forced to act like
1x1.

Single station download is about 270Mbps over-the-air. But, when I
add the second station, then total over-the-air stays at about 270Mbps.

So, I guess mu-mimo is not actually working for me.

My hostapd config looks like this (below). Does it look right? Do I need something
special in wpa_supplicant config on the station side?

interface=vap0
driver=nl80211
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=wave2-2-ssid
bssid=04:f0:21:56:6d:20
country_code=US
ieee80211d=0
ieee80211h=0
ieee80211w=0
hw_mode=a
ieee80211n=1
ieee80211ac=1
beacon_int=240
dtim_period=2
max_num_sta=2007
rts_threshold=2347
preamble=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
# Enable HT modes if you want 300Mbps+ throughput.
#ht_capab=[HT20][HT40-][HT40+][GF][SHORT-GI-20][SHORT-GI-40]
# [TX-STBC][RX-STBC123][MAX-AMSDU-7935][DSSS_CCK-40][PSMP][LSIG-TXOP-PROT]
ht_capab=[HT20][HT40+][SHORT-GI-40][SHORT-GI-20]
vht_capab=[MAX-MPDU-11454][RXLDPC][TX-STBC-2BY1][RX-STBC-1][MAX-A-MPDU-LEN-EXP0][RX-ANTENNA-PATTERN][TX-ANTENNA-PATTERN][SU-BEAMFORMER][SU-BEAMFORMEE][MU-BEAMFORMER][SHORT-GI-80]
wmm_enabled=1
wmm_ac_bk_cwmin=4
wmm_ac_bk_cwmax=10
wmm_ac_bk_aifs=7
wmm_ac_bk_txop_limit=0
wmm_ac_bk_acm=0
wmm_ac_be_aifs=3
wmm_ac_be_cwmin=4
wmm_ac_be_cwmax=10
wmm_ac_be_txop_limit=0
wmm_ac_be_acm=0
wmm_ac_vi_aifs=2
wmm_ac_vi_cwmin=3
wmm_ac_vi_cwmax=4
wmm_ac_vi_txop_limit=94
wmm_ac_vi_acm=0
wmm_ac_vo_aifs=2
wmm_ac_vo_cwmin=2
wmm_ac_vo_cwmax=3
wmm_ac_vo_txop_limit=47
wmm_ac_vo_acm=0
### TX queue parameters
tx_queue_data3_aifs=7
tx_queue_data3_cwmin=15
tx_queue_data3_cwmax=1023
tx_queue_data3_burst=0
tx_queue_data2_aifs=3
tx_queue_data2_cwmin=15
tx_queue_data2_cwmax=63
tx_queue_data2_burst=0
tx_queue_data1_aifs=1
tx_queue_data1_cwmin=7
tx_queue_data1_cwmax=15
tx_queue_data1_burst=3.0
tx_queue_data0_aifs=1
tx_queue_data0_cwmin=3
tx_queue_data0_cwmax=7
tx_queue_data0_burst=1.5
vht_oper_centr_freq_seg0_idx=155
vht_oper_chwidth=1
channel=149
supported_rates=60 90 120 180 240 360 480 540
ieee8021x=0
eapol_key_index_workaround=0
eap_server=0
own_ip_addr=127.0.0.1
wpa=2
wpa_pairwise=TKIP CCMP
wpa_passphrase=wave2-passwd
wpa_key_mgmt=WPA-PSK WPA-PSK-SHA256

# Error emulation settings.
ignore_probe_probability=0.000000
ignore_auth_probability=0.000000
ignore_assoc_probability=0.000000
ignore_reassoc_probability=0.000000
corrupt_gtk_rekey_mic_probability=0.000000
no_pri_sec_switch=1


Thanks,
Ben
--
Ben Greear <***@candelatech.com>
Candela Technologies Inc http://www.candelatech.com
Michal Kazior
2016-05-04 08:32:10 UTC
Permalink
Post by Ben Greear
Post by Michal Kazior
Post by Ben Greear
Post by Ben Greear
Post by Ben Greear
Has anyone tried this? Looks like hostapd has the ability to set the
feature flags, but I am not sure if it is really working in ath10k?
vht_capab=[RXLDPC][SHORT-GI-80][TX-STBC-2BY1][SU-BEAMFORMER][SU-BEAMFORMEE][MU-BEAMFORMER][RX-ANTENNA-PATTERN][TX-ANTENNA-PATTERN][BF-ANTENNA-4][MAX-MPDU-11454][RX-STBC-1][MAX-A-MPDU-LEN-EXP7]
The SU-, MU- and BF- are the required part only I think.
Post by Ben Greear
Do you actually need anything other than standard whip antenna to
allow this to function properly?
I don't think. FWIW Make sure the antennas are reasonably set
up/separated from each other. If you cram them too tight/randomly
beamforming won't work efficiently. I had problem with client antennas
being too close to each other and lying flat on a table (I than made a
foam-stand and put them a few cm apart) so the same thing must apply
to AP as well.
Post by Ben Greear
What about station mode?
Works as well. Both on QCA99XX and QCA9377.
Thanks for the info. How did you determine that it actually worked?
Empirically. If you get 600mbps UDP to two 1x1 clients it works :)
Also, the rx bitrate on the receiving ath10k end will be kind of wierd
(there's currently no way to decode MU ratesets on Rx because group
ids are managed in firmware).
So, I configured 3 systems: 1 is AP, two are acting as stations.
All are 9980, but the two station systems are forced to act like
1x1.
Single station download is about 270Mbps over-the-air. But, when I
add the second station, then total over-the-air stays at about 270Mbps.
So, I guess mu-mimo is not actually working for me.
My hostapd config looks like this (below). Does it look right? Do I need something
special in wpa_supplicant config on the station side?
Nope.


[...]
Post by Ben Greear
[TX-STBC][RX-STBC123][MAX-AMSDU-7935][DSSS_CCK-40][PSMP][LSIG-TXOP-PROT]
ht_capab=[HT20][HT40+][SHORT-GI-40][SHORT-GI-20]
vht_capab=[MAX-MPDU-11454][RXLDPC][TX-STBC-2BY1][RX-STBC-1][MAX-A-MPDU-LEN-EXP0][RX-ANTENNA-PATTERN][TX-ANTENNA-PATTERN][SU-BEAMFORMER][SU-BEAMFORMEE][MU-BEAMFORMER][SHORT-GI-80]
Are you sure you want to use EXP0? There was a bug in hostapd long
time ago that required that IIRC.. you should be setting EXP7 now, no?

FWIW you're missing BF-ANTENNA-4. Not sure if this is really necessary.

Other than that I guess you can look at debugs/traces (or add prints)
to see if vdev txbf param is set properly on both ap and clients and
if peer-assoc vht_caps include MU-.


Michał

Loading...