Search Linux Wireless

Re: TCP data throughput for BCM43362

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2016-10-13 at 00:25 +0200, Arend Van Spriel wrote:
> Op 12 okt. 2016 23:19 schreef "Jörg Krause" <joerg.krause@xxxxxxxxxxx
> cks>:
> > 
> > On Wed, 2016-10-12 at 23:08 +0200, Arend Van Spriel wrote:
> > > Op 12 okt. 2016 21:30 schreef "Jörg Krause" <joerg.krause@embedde
> > > d.ro
> > > cks>:
> > > > 
> > > > On Mi, 2016-10-12 at 21:08 +0200, Arend van Spriel wrote:
> > > > 
> > > > [snip]
> > > > 
> > > > > On 12-10-16 16:27, Jörg Krause wrote:
> > > > > > 
> > > > > > It is running the iperf server. It is running in station
> > > > > > mode
> > > > > > as
> > > > > > well
> > > > > > as in AP mode, depending on the use case. The wireshark
> > > > > > dump
> > > > > > was
> > > > > > taken
> > > > > > when the bcm43362 is operating in AP mode.
> > > > > > 
> > > > > > > 
> > > > > > > What specs does the ARM on your custom board have?
> > > > > > 
> > > > > > Which specs do you mean?
> > > > > > 
> > > > > > > 
> > > > > > > The trace shows that it does not do
> > > > > > > aggregation. What it does not show is whether A-MPDU was
> > > > > > > setup,
> > > > > > > ie.
> > > > > > > ADDBA message exchange. So could you create a similar
> > > > > > > capture
> > > > > > > including
> > > > > > > connection setup, ie. AUTH/ASSOC, etc.
> > > > > > 
> > > > > > Yes, I can do that. Note, that I am using wpa_supplicant
> > > > > > 2.5
> > > > > > for AP
> > > > > > mode operation (not hostapd).
> > > > > 
> > > > > ok. unchartered territory for me. In the beacon frame I see
> > > > > 
> > > > > .... ..01 = Maximum Rx A-MPDU Length: 0x1 (16383[Bytes])
> > > > > ...1 10.. = MPDU Density: 8 [usec] (0x6)
> > > > > 
> > > > > In the trace it is only ~1500 bytes so no A-MPDU.
> > > > 
> > > > The issue is not only valid for operating the BCM43362 in AP
> > > > mode,
> > > > but
> > > > also in station mode. The TCP throughput is the same for both
> > > > modes.
> > > > 
> > > > > What device is in the notebook?
> > > > 
> > > > It is a Broadcom 43225. However, the low TCP throughput is not
> > > > specific
> > > > to this device but with all kind of devices including
> > > > Smartphones,
> > > > Notebooks, PCs running the iperf client.
> > > > 
> > > > > Can you use 'iw list' there to obtain info.
> > > > 
> > > >     $ iw list
> > > >     Wiphy phy0
> > > >             max # scan SSIDs: 4
> > > >             max scan IEs length: 2257 bytes
> > > >             max # sched scan SSIDs: 0
> > > >             max # match sets: 0
> > > >             max # scan plans: 1
> > > >             max scan plan interval: -1
> > > >             max scan plan iterations: 0
> > > >             Retry short limit: 7
> > > >             Retry long limit: 4
> > > >             Coverage class: 0 (up to 0m)
> > > >             Device supports RSN-IBSS.
> > > >             Supported Ciphers:
> > > >                     * WEP40 (00-0f-ac:1)
> > > >                     * WEP104 (00-0f-ac:5)
> > > >                     * TKIP (00-0f-ac:2)
> > > >                     * CCMP (00-0f-ac:4)
> > > >                     * 00-0f-ac:10
> > > >                     * GCMP (00-0f-ac:8)
> > > >                     * 00-0f-ac:9
> > > >             Available Antennas: TX 0 RX 0
> > > >             Supported interface modes:
> > > >                      * IBSS
> > > >                      * managed
> > > >                      * AP
> > > >                      * AP/VLAN
> > > >                      * monitor
> > > >             Band 1:
> > > >                     Capabilities: 0x70
> > > >                             HT20
> > > >                             Static SM Power Save
> > > >                             RX Greenfield
> > > >                             RX HT20 SGI
> > > >                             RX HT40 SGI
> > > >                             No RX STBC
> > > >                             Max AMSDU length: 3839 bytes
> > > >                             No DSSS/CCK HT40
> > > >                     Maximum RX AMPDU length 65535 bytes
> > > > (exponent:
> > > > 0x003)
> > > >                     Minimum RX AMPDU time spacing: 8 usec
> > > > (0x06)
> > > >                     HT Max RX data rate: 500 Mbps
> > > >                     HT TX/RX MCS rate indexes supported: 0-15
> > > >                     Bitrates (non-HT):
> > > >                             * 1.0 Mbps
> > > >                             * 2.0 Mbps (short preamble
> > > > supported)
> > > >                             * 5.5 Mbps (short preamble
> > > > supported)
> > > >                             * 11.0 Mbps (short preamble
> > > > supported)
> > > >                             * 6.0 Mbps
> > > >                             * 9.0 Mbps
> > > >                             * 12.0 Mbps
> > > >                             * 18.0 Mbps
> > > >                             * 24.0 Mbps
> > > >                             * 36.0 Mbps
> > > >                             * 48.0 Mbps
> > > >                             * 54.0 Mbps
> > > >                     Frequencies:
> > > >                             * 2412 MHz [1] (19.0 dBm)
> > > >                             * 2417 MHz [2] (19.0 dBm)
> > > >                             * 2422 MHz [3] (19.0 dBm)
> > > >                             * 2427 MHz [4] (19.0 dBm)
> > > >                             * 2432 MHz [5] (19.0 dBm)
> > > >                             * 2437 MHz [6] (19.0 dBm)
> > > >                             * 2442 MHz [7] (19.0 dBm)
> > > >                             * 2447 MHz [8] (19.0 dBm)
> > > >                             * 2452 MHz [9] (19.0 dBm)
> > > >                             * 2457 MHz [10] (19.0 dBm)
> > > >                             * 2462 MHz [11] (19.0 dBm)
> > > >                             * 2467 MHz [12] (19.0 dBm) (no IR)
> > > >                             * 2472 MHz [13] (19.0 dBm) (no IR)
> > > >                             * 2484 MHz [14] (disabled)
> > > >             Supported commands:
> > > >                      * new_interface
> > > >                      * set_interface
> > > >                      * new_key
> > > >                      * start_ap
> > > >                      * new_station
> > > >                      * new_mpath
> > > >                      * set_mesh_config
> > > >                      * set_bss
> > > >                      * authenticate
> > > >                      * associate
> > > >                      * deauthenticate
> > > >                      * disassociate
> > > >                      * join_ibss
> > > >                      * join_mesh
> > > >                      * set_tx_bitrate_mask
> > > >                      * frame
> > > >                      * frame_wait_cancel
> > > >                      * set_wiphy_netns
> > > >                      * set_channel
> > > >                      * set_wds_peer
> > > >                      * probe_client
> > > >                      * set_noack_map
> > > >                      * register_beacons
> > > >                      * start_p2p_device
> > > >                      * set_mcast_rate
> > > >                      * set_qos_map
> > > >                      * connect
> > > >                      * disconnect
> > > >             Supported TX frame types:
> > > >                      * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60
> > > > 0x70 0x80
> > > >     0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
> > > >                      * managed: 0x00 0x10 0x20 0x30 0x40 0x50
> > > > 0x60
> > > > 0x70
> > > >     0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
> > > >                      * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60
> > > > 0x70
> > > > 0x80
> > > >     0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
> > > >                      * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50
> > > > 0x60
> > > > 0x70
> > > >     0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
> > > >                      * mesh point: 0x00 0x10 0x20 0x30 0x40
> > > > 0x50
> > > > 0x60 0x70
> > > >     0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
> > > >                      * P2P-client: 0x00 0x10 0x20 0x30 0x40
> > > > 0x50
> > > > 0x60 0x70
> > > >     0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
> > > >                      * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50
> > > > 0x60
> > > > 0x70
> > > 
> > > 0x80
> > > >     0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
> > > >                      * P2P-device: 0x00 0x10 0x20 0x30 0x40
> > > > 0x50
> > > > 0x60 0x70
> > > >     0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
> > > >             Supported RX frame types:
> > > >                      * IBSS: 0x40 0xb0 0xc0 0xd0
> > > >                      * managed: 0x40 0xd0
> > > >                      * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
> > > >                      * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0
> > > > 0xd0
> > > >                      * mesh point: 0xb0 0xc0 0xd0
> > > >                      * P2P-client: 0x40 0xd0
> > > >                      * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0
> > > > 0xd0
> > > >                      * P2P-device: 0x40 0xd0
> > > >             software interface modes (can always be added):
> > > >                      * AP/VLAN
> > > >                      * monitor
> > > >             interface combinations are not supported
> > > >             HT Capability overrides:
> > > >                      * MCS: ff ff ff ff ff ff ff ff ff ff
> > > >                      * maximum A-MSDU length
> > > >                      * supported channel width
> > > >                      * short GI for 40 MHz
> > > >                      * max A-MPDU length exponent
> > > >                      * min MPDU start spacing
> > > >             Device supports TX status socket option.
> > > >             Device supports HT-IBSS.
> > > >             Device supports SAE with AUTHENTICATE command
> > > >             Device supports low priority scan.
> > > >             Device supports scan flush.
> > > >             Device supports AP scan.
> > > >             Device supports per-vif TX power setting
> > > >             Driver supports a userspace MPM
> > > >             Device supports configuring vdev MAC-addr on
> > > > create.
> > > > 
> > > > > > 
> > > > > > > 
> > > > > > > Just to confirm. You are using the firmware from linux-
> > > > > > > firmware,
> > > > > > > right?
> > > > > > 
> > > > > > Right.
> > > > > > 
> > > > > > > 
> > > > > > > Or are you using firmware from the wiced dev kit?
> > > > > > 
> > > > > > No. I guess you mean bcmdhd?
> > > > > 
> > > > > You referred to 20 Mbps claim on wiced dev kit page at mouser
> > > > > so
> > > > > I
> > > > > assumed you were using that and it includes firmware. As you
> > > > > confirmed
> > > > > using firmware from linux-firmware repo this question does
> > > > > not
> > > > > matter.
> > > > 
> > > > I see! Note, that I measured >20MB throughput on the
> > > > Cubietruck,
> > > > which
> > > > is using the AP6210, but also the brcmfmac driver.
> > > 
> > > So does your custom ARM board have an Ethernet socket, ie. run
> > > iperf
> > > server
> > > on another device hooked up to the AP over Ethernet.
> > 
> > Yes, it does have Ethernet. I hope that I have understand you
> > correctly, so I run an iperf server an my PC and on my ARM board
> > the
> > iperf client. Both devices are connected via Ethernet to the Router
> > (using a Powerline adaptor):
> > 
> > # iperf3 -c 192.168.178.41 -i 1 -t 10
> > Connecting to host 192.168.178.41, port 5201
> > [  4] local 192.168.178.40 port 36130 connected to 192.168.178.41
> > port
> > 5201
> > [ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
> > [  4]   0.00-1.09   sec  2.50 MBytes  19.2 Mbits/sec    0   14.1
> > KBytes
> > [  4]   1.09-2.21   sec  2.50 MBytes  18.8 Mbits/sec    0   14.1
> > KBytes
> > [  4]   2.21-3.30   sec  2.50 MBytes  19.2 Mbits/sec    0   14.1
> > KBytes
> > [  4]   3.30-4.39   sec  2.50 MBytes  19.3 Mbits/sec    0   14.1
> > KBytes
> > [  4]   4.39-5.48   sec  2.50 MBytes  19.2 Mbits/sec    0   14.1
> > KBytes
> > [  4]   5.48-6.02   sec  1.25 MBytes  19.3 Mbits/sec    0   14.1
> > KBytes
> > [  4]   6.02-7.11   sec  2.50 MBytes  19.3 Mbits/sec    0   14.1
> > KBytes
> > [  4]   7.11-8.20   sec  2.50 MBytes  19.3 Mbits/sec    0   14.1
> > KBytes
> > [  4]   8.20-9.43   sec  2.50 MBytes  17.1 Mbits/sec    0   14.1
> > KBytes
> > [  4]   9.43-10.51  sec  2.50 MBytes  19.4 Mbits/sec    0   14.1
> > KBytes
> > - - - - - - - - - - - - - - - - - - - - - - - - -
> > [ ID] Interval           Transfer     Bandwidth       Retr
> > [  4]   0.00-10.51  sec  23.8 MBytes  19.0
> > Mbits/sec    0             sender
> > [  4]   0.00-10.51  sec  23.8 MBytes  19.0
> > Mbits/sec                  receiver
> > 
> > iperf Done.
> 
> Sorry. I meant not running iperf server nor client on AP. A bit more
> graphic:
> 
> Notebook --> AP --> PC
> 
> Iperf client on notebook and iperf server on PC. Notebook to AP is
> wireless, AP to PC is wired.

I see! Howver, this needs routing on the AP, which I have not done yet.
   What do you expect from this test?

I compared the values from the Ethernet test with an Application Note
[1] I found at NXP for the i.MX28. Running iperf shows an throughput of
>60 MBits/sec. I run the test cases again without Powerline adapter by
connecting both devices directly to the Router and even installed iperf
(instead of iperf3). Nevertheless, I am stuck with 20 MBits/sec. Note,
that the Application Note was done with a legacy Linux Kernel 2.6
whereas I use mainline Linux Kernel 4.7. Maybe something is missing in
mainline?

For now, I will consider that brcmfmac is not responsible for the low
throughput and I will move this issue to the ARM linux mailing list.

Many thanks so far for the support! I will keep you in the loop.

[1] http://cache.freescale.com/files/32bit/doc/app_note/AN4544.pdf

Best regards
Jörg Krause



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux