[BUG] QWLE900V5-18 - cannot achievie 3 spatial streams link
Tomasz Tajmajer
tt at elnovel.com
Mon Dec 9 06:29:14 EST 2013
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
-------------- next part --------------
No. Time Source Destination Protocol Length Info
185396 4.169737000 10.0.10.2 10.0.10.1 UDP 1562 Source port: commplex-link Destination port: commplex-link
Frame 185396: 1562 bytes on wire (12496 bits), 1562 bytes captured (12496 bits) on interface 0
Radiotap Header v0, Length 30
Header revision: 0
Header pad: 0
Header length: 30
Present flags
.... .... .... .... .... .... .... ...0 = TSFT: False
.... .... .... .... .... .... .... ..1. = Flags: True
.... .... .... .... .... .... .... .0.. = Rate: False
.... .... .... .... .... .... .... 1... = Channel: True
.... .... .... .... .... .... ...0 .... = FHSS: False
.... .... .... .... .... .... ..1. .... = dBm Antenna Signal: True
.... .... .... .... .... .... .0.. .... = dBm Antenna Noise: False
.... .... .... .... .... .... 0... .... = Lock Quality: False
.... .... .... .... .... ...0 .... .... = TX Attenuation: False
.... .... .... .... .... ..0. .... .... = dB TX Attenuation: False
.... .... .... .... .... .0.. .... .... = dBm TX Power: False
.... .... .... .... .... 1... .... .... = Antenna: True
.... .... .... .... ...0 .... .... .... = dB Antenna Signal: False
.... .... .... .... ..0. .... .... .... = dB Antenna Noise: False
.... .... .... .... .1.. .... .... .... = RX flags: True
.... .... .... .0.. .... .... .... .... = Channel+: False
.... .... .... 0... .... .... .... .... = HT information: False
.... .... ...0 .... .... .... .... .... = A-MPDU Status: False
.... .... ..1. .... .... .... .... .... = VHT information: True
...0 0000 00.. .... .... .... .... .... = Reserved: 0x00000000
..0. .... .... .... .... .... .... .... = Radiotap NS next: False
.0.. .... .... .... .... .... .... .... = Vendor NS next: False
0... .... .... .... .... .... .... .... = Ext: False
Flags: 0x00
.... ...0 = CFP: False
.... ..0. = Preamble: Long
.... .0.. = WEP: False
.... 0... = Fragmentation: False
...0 .... = FCS at end: False
..0. .... = Data Pad: False
.0.. .... = Bad FCS: False
0... .... = Short GI: False
Channel frequency: 5180 [A 36]
Channel type: 802.11a (0x0140)
.... .... ...0 .... = Turbo: False
.... .... ..0. .... = Complementary Code Keying (CCK): False
.... .... .1.. .... = Orthogonal Frequency-Division Multiplexing (OFDM): True
.... .... 0... .... = 2 GHz spectrum: False
.... ...1 .... .... = 5 GHz spectrum: True
.... ..0. .... .... = Passive: False
.... .0.. .... .... = Dynamic CCK-OFDM: False
.... 0... .... .... = Gaussian Frequency Shift Keying (GFSK): False
...0 .... .... .... = GSM (900MHz): False
..0. .... .... .... = Static Turbo: False
.0.. .... .... .... = Half Rate Channel (10MHz Channel Width): False
0... .... .... .... = Quarter Rate Channel (5MHz Channel Width): False
SSI Signal: -32 dBm
Antenna: 0
RX flags: 0x0000
.... .... .... .... .... ..0. = Bad PLCP: False
VHT information
Known VHT information: 0x44
.... .... .... ...0 = STBC: False
.... .... .... ..0. = TXOP_PS_NOT_ALLOWED: False
.... .... .... .1.. = Guard interval: True
.... .... .... 0... = SGI Nsym disambiguation: False
.... .... ...0 .... = LDPC extra OFDM symbol: False
.... .... ..0. .... = Beamformed: False
.... .... .1.. .... = Bandwidth: True
.... .... 0... .... = Group ID: False
.... ...0 .... .... = Partial AID: False
.... .1.. = Guard interval: short (1)
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]
IEEE 802.11 QoS Data, Flags: .......T
Type/Subtype: QoS Data (0x28)
Frame Control Field: 0x8801
.... ..00 = Version: 0
.... 10.. = Type: Data frame (2)
1000 .... = Subtype: 8
Flags: 0x01
.... ..01 = DS status: Frame from STA to DS via an AP (To DS: 1 From DS: 0) (0x01)
.... .0.. = More Fragments: This is the last fragment
.... 0... = Retry: Frame is not being retransmitted
...0 .... = PWR MGT: STA will stay up
..0. .... = More Data: No data buffered
.0.. .... = Protected flag: Data is not protected
0... .... = Order flag: Not strictly ordered
.000 0000 0011 0000 = Duration: 48 microseconds
Receiver address: CompexPt_0c:a2:3a (04:f0:21:0c:a2:3a)
BSS Id: CompexPt_0c:a2:3a (04:f0:21:0c:a2:3a)
Transmitter address: CompexPt_0c:a2:3b (04:f0:21:0c:a2:3b)
Source address: CompexPt_0c:a2:3b (04:f0:21:0c:a2:3b)
Destination address: CompexPt_0c:a2:3a (04:f0:21:0c:a2:3a)
Fragment number: 0
Sequence number: 931
Qos Control: 0x0000
.... .... .... 0000 = TID: 0
[.... .... .... .000 = Priority: Best Effort (Best Effort) (0)]
.... .... ...0 .... = QoS bit 4: Bits 8-15 of QoS Control field are TXOP Duration Requested
.... .... .00. .... = Ack Policy: Normal Ack (0x0000)
.... .... 0... .... = Payload Type: MSDU
0000 0000 .... .... = TXOP Duration Requested: 0 (no TXOP requested)
More information about the ath10k
mailing list