[BUG] QWLE900V5-18 - cannot achievie 3 spatial streams link
Tomasz Tajmajer
tt at elnovel.com
Mon Dec 9 07:10:37 EST 2013
On 09.12.2013 12:29, Tomasz Tajmajer wrote:
>
> On 09.12.2013 11:13, Michal Kazior wrote:
>> On 9 December 2013 11:03, Tomasz Tajmajer <tt at elnovel.com> wrote:
>>> On 09.12.2013 10:04, Kalle Valo wrote:
>>>> Janusz Dziedzic <janusz.dziedzic at tieto.com> writes:
>>>>
>>>>> On 6 December 2013 17:33, Tomasz Tajmajer <tt at elnovel.com> wrote:
>>>>>> Hi,
>>>>>>
>>>>>> Recently, I've been making quite a lot of tests with two
>>>>>> QWLE900V5-18
>>>>>> cards.
>>>>>> I had some issues with the drivers (e.g. regarding the regulatory
>>>>>> domain),
>>>>>> but I've managed to fix them on my own. However, there is one
>>>>>> issue that
>>>>>> I
>>>>>> cannot deal with.
>>>>>> I'm trying to get the highest throughput possible using 3x3 MIMO.
>>>>>> The
>>>>>> problem is that the wifi card does not set higher rates than
>>>>>> 2x433.3Mbps
>>>>>> (MCS 9, VHT-NSS 2). The specification says that it should be
>>>>>> possible to
>>>>>> have 3 spatial streams.
>>>>>> First, I thought it is a problem with some options of hostapd, but
>>>>>> hostapd
>>>>>> even does not allows me to set the [RX-STBC-12] or [RX-STBC-123]
>>>>>> options.
>>>>>> Only [RX-STBC-1] may be set in the configuration (what in fact,
>>>>>> does not
>>>>>> disallows the 2x433.3Mbps link, which is another issue).
>>>>>> Driver info shows that the driver should support 3 spatial streams.
>>>>>> I am not sure where is the problem, is it some bug in hostapd, which
>>>>>> forces
>>>>>> the card to use 2 spatial streams only or is it the driver, which
>>>>>> does
>>>>>> not
>>>>>> enable 3 streams when it is possible. The physical connectivity
>>>>>> (antennas
>>>>>> etc.) is not the problem AFAIK.
>>>>>>
>>>>> When sta assoc to ap you will get dbg mesg (you can enable this eg.
>>>>> when loading ath10k_core module with param - debug_mask).
>>>>> "mac ht peer %pM mcs cnt %d nss %d\n" - nss is interesting here
>>>> This debug message is enabled with ATH10K_DBG_MAC. More info here:
>>>>
>>>> http://wireless.kernel.org/en/users/Drivers/ath10k/debug
>>>>
>>>>> Also rx_mcs_set for STA from ath10k_peer_assoc_h_vht() could be
>>>>> interesting - unfortunetly we don't print this. But you can print
>>>>> this.
>>>> Indeed, we should include that to the message as well.
>>>>
>>> I've enabled dbg messages and added rx_mcs_set and tx_mcs_set as you
>>> suggested.
>>> Here is the output for STA:
>>>
>>> [ 2278.320312] ath10k: htt target version 2.1
>>> [ 2278.320455] ath10k: mac vdev create 0 (add interface) type 2
>>> subtype 0
>>> [ 2278.320741] ath10k: mac vdev 0 cts_prot 0
>>> [ 2278.320765] ath10k: mac vdev 0 slot_time 1
>>> [ 2278.320801] ath10k: mac vdev 0 preamble 1n
>>> [ 2278.321320] ath10k: mac config channel 5180 mhz
>>> [ 2278.321353] ath10k: mac vdev 0 psmode disable
>>> [ 2278.321448] IPv6: ADDRCONF(NETDEV_UP): wlan1: link is not ready
>>> [ 2278.321458] ath10k: mac vdev 0 psmode disable
>>> [ 2282.499925] wlan1: authenticate with 04:f0:21:0c:a2:3a
>>> [ 2282.499946] ath10k: mac config channel 5180 mhz
>>> [ 2282.499962] ath10k: mac vdev 0 beacon_interval 100
>>> [ 2282.499968] ath10k: mac vdev 0 create peer 04:f0:21:0c:a2:3a
>>> [ 2282.500109] ath10k: mac vdev 0 start 04:f0:21:0c:a2:3a
>>> [ 2282.500115] ath10k: mac vdev 0 start center_freq 5180 phymode
>>> 11ac-vht80
>>> [ 2282.506711] wlan1: direct probe to 04:f0:21:0c:a2:3a (try 1/3)
>>> [ 2282.708052] wlan1: send auth to 04:f0:21:0c:a2:3a (try 2/3)
>>> [ 2282.709096] wlan1: authenticated
>>> [ 2282.712122] wlan1: associate with 04:f0:21:0c:a2:3a (try 1/3)
>>> [ 2282.713907] wlan1: RX AssocResp from 04:f0:21:0c:a2:3a (capab=0x1
>>> status=0 aid=1)
>>> [ 2282.714331] ath10k: mac vdev 0 dtim_period 2
>>> [ 2282.714367] ath10k: mac vdev 0 slot_time 2
>>> [ 2282.714415] ath10k: mac ht peer 04:f0:21:0c:a2:3a mcs cnt 24 nss 3
>>> [ 2282.714421] ath10k: mac vht peer 04:f0:21:0c:a2:3a max_mpdu 65535
>>> flags
>>> 0x601b001 rx_mcs_set 0000ffea tx_mcs_set 0000ffea
>>> [ 2282.714427] ath10k: mac peer 04:f0:21:0c:a2:3a phymode 11ac-vht80
>>> [ 2282.714435] ath10k: mac vdev 0 up (associated) bssid
>>> 04:f0:21:0c:a2:3a
>>> aid 1
>>> [ 2282.714822] ath10k: mac vdev 0 psmode enable
>>> [ 2282.714869] wlan1: associated
>>>
>>> And for AP:
>>> [ 9460.458700] ath10k: htt target version 2.1
>>> [ 9460.458874] ath10k: mac vdev create 0 (add interface) type 1
>>> subtype 0
>>> [ 9460.459120] ath10k: mac vdev 0 cts_prot 0
>>> [ 9460.459155] ath10k: mac vdev 0 slot_time 1
>>> [ 9460.459156] ath10k: mac vdev 0 preamble 1n
>>> [ 9460.459385] ath10k: mac config channel 5180 mhz
>>> [ 9460.459434] IPv6: ADDRCONF(NETDEV_UP): wlan2: link is not ready
>>> [ 9461.562262] ath10k: mac vdev 0 rts threshold -1
>>> [ 9461.562292] ath10k: mac vdev 0 fragmentation threshold -1
>>> [ 9461.564900] ath10k: mac config channel 5180 mhz
>>> [ 9461.564919] ath10k: mac vdev 0 beacon_interval 100
>>> [ 9461.564923] ath10k: vdev 0 set beacon tx mode to staggered
>>> [ 9461.564931] ath10k: mac vdev 0 start center_freq 5180 phymode
>>> 11ac-vht80
>>> [ 9461.571970] ath10k: mac vdev 0 up
>>> [ 9461.572108] ath10k: mac vdev 0 cts_prot 0
>>> [ 9461.572117] ath10k: mac vdev 0 slot_time 2
>>> [ 9461.572241] IPv6: ADDRCONF(NETDEV_CHANGE): wlan2: link becomes ready
>>> [ 9461.572192] ath10k: mac vdev 0 preamble 1n
>>> [ 9549.331556] ath10k: vdev 0 set beacon tx mode to staggered
>>> [ 9549.331637] ath10k: mac vdev 0 cts_prot 0
>>> [ 9549.331644] ath10k: mac vdev 0 preamble 1n
>>> [ 9549.332425] ath10k: mac vdev 0 peer create 04:f0:21:0c:a2:3b (new
>>> sta)
>>> [ 9549.332628] ath10k: mac sta 04:f0:21:0c:a2:3b associated
>>> [ 9549.332637] ath10k: mac ht peer 04:f0:21:0c:a2:3b mcs cnt 24 nss 3
>>> [ 9549.332643] ath10k: mac vht peer 04:f0:21:0c:a2:3b max_mpdu
>>> 1048575 flags
>>> 0x601b001 rx_mcs_set 0000ffea tx_mcs_set 0000ffea
>>> [ 9549.332648] ath10k: mac peer 04:f0:21:0c:a2:3b phymode 11ac-vht80
>>>
>>>
>>> As you can see, the "nss" value is set to 3, but I've never observed
>>> VHT-NSS
>>> 3 reported by "iw DEV station dump". Also the maximum throughput for
>>> UDP
>>> measured by iperf was ~630Mbps, which seems to be the netto value
>>> for 2x433
>>> Mbps PHY throughput.
>> I wouldn't rely on station dump Tx/Rx stats (especially Tx stats which
>> are broken due to FW limitation).
>>
>> You can create a monitor interface on the receiver side and run
>> wireshark in non-promiscuous mode and check radiotap headers to
>> confirm whether 3 spatial streams are used or not.
>>
>>
>> Michał
>>
> I've attached the output from wireshark.
>
> Bandwidth: 80 MHz (4)
> User 0: MCS 9
> 1001 .... = MCS index 0: 9 (256-QAM 5/6)
> .... 0010 = Spatial streams 0: 2
> Space-time streams 0: 2
> Coding 0: BCC (0)
> [Data Rate: 866,6 Mb/s]
>
> Unfortunately, it confirms that only 2 spatial streams are used.
>
>
> TomaszT
>
I thought that maybe one of the card is physically damaged and the third
spatial link cannot be established. I've checked that using a 802.11ac
router, which I also have (and it supports 3 streams). Both cards
connected with it using only 2 spatial streams. Its unlikely that both
cards have a malfunction, so its rather a software problem.
TomaszT
More information about the ath10k
mailing list