This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

WL1837MODCOM8I: low throughput

Part Number: WL1837MODCOM8I
Other Parts Discussed in Thread: WL1837MOD,
Hi all,
We are facing a low throughput issue with WiLink8.0 module WL1837MOD. Hardware is TIs am57xx-evm with Linux kernel 4.4.32. wlcore firmware (Rev 8.9.0.1.55).
It is configured to work with 5Ghz in AP mode. Problem is iperf results show TCP transmission throughput only ~12Mbits/sec. This we measured using ATS utility in iPhone. throughput is expected be around 80Mbits/sec.

We have tried other settings like changing to different channel, 2.4GHz band, other H/W capabilities like ieee80211n. Still no change in throughput.

Also tried changing TCP congestion algorithm in "Reno" mode as mentioned under below link. Still no improvement in the throughput.
e2e.ti.com/.../2027577

Any suggestion is appreciated. Please let us know if more information is required.
Thanks in advance!

Client iperf command executed by ATS utility:
iperf -p 5001 -l 131072 -w 131072 -w 131072 -i 1.0 -c 192.168.43.1 -t 1.0

root@am57xx-evm:~# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.43.1 port 5001 connected with 192.168.43.21 port 50132
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.1 sec  12.2 MBytes  10.2 Mbits/sec
[  5] local 192.168.43.1 port 5001 connected with 192.168.43.21 port 50133
[  5]  0.0-10.1 sec  14.4 MBytes  11.9 Mbits/sec
[  4] local 192.168.43.1 port 5001 connected with 192.168.43.21 port 50134
[  4]  0.0-10.1 sec  14.4 MBytes  12.0 Mbits/sec
[  5] local 192.168.43.1 port 5001 connected with 192.168.43.21 port 50135
[  5]  0.0-10.1 sec  15.5 MBytes  12.9 Mbits/sec
[  4] local 192.168.43.1 port 5001 connected with 192.168.43.21 port 50136
[  4]  0.0-10.1 sec  14.4 MBytes  12.0 Mbits/sec

root@am57xx-evm:~# iw dev wlan1 info                                                                                                                  
Interface wlan1
        ifindex 6
        wdev 0x2
        addr a8:1b:6a:6a:9e:ac
        ssid wilink_8
        type AP
        wiphy 0
        channel 36 (5180 MHz), width: 40 MHz, center1: 5190 MHz

root@am57xx-evm:~# cat /usr/share/wl18xx/hostapd.conf
interface=wlan1
driver=nl80211
ssid=wilink_8
channel=36
ht_capab=[HT40+]
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=abc123
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
hw_mode=a
ieee80211n=1
country_code=US
vendor_elements=dd2d00a040000002B0220206416c6c476f000306446576313000040301020306065cf370700a180706f4f26d1d9ebb
  • Hi,

    Have you configured your wl18xx-conf.bin file using wlconf to select the correct type of module/chipset and the number of 5Ghz antennas assembled?:
    www.ti.com/.../swra489.pdf

    In addition, unrelated to this issue, you should update your firmware to the latest as 8.9.0.1.55 is outdated.

    Best Regards,
    Eyal
  • Hi Eyal,

    Thank you for your response.

    We configured wl18xx-conf.bin following the document link shared by you. Used "configure-device.sh.fromti" script file, chose the chipset as 1837. But there is a confusion in selecting number of antennas fitted. We use "unictron aa258" antenna. Since it supports both 2.4GHz and 5GHz, tried all the possible combination values for number of antennas fitted.  

    Also tried MIMO ht_mode:

    ./wlconf -i /lib/firmware/ti-connectivity/wl18xx-conf.bin -s wl18xx.ht.mode=0x0 -o \

    /lib/firmware/ti-connectivity/wl18xx-conf.bin

    ./wlconf -i /lib/firmware/ti-connectivity/wl18xx-conf.bin -s \

    wl18xx.phy.number_of_assembled_ant2_4=0x02 -o /lib/firmware/ti-connectivity/wl18xx-conf.bin

    Still there seems to be no improvement in throughput, it is still at ~12Mbits/Sec.

    Below are logs when chose Number of 2.4GHz and 5GHz Antennas as 2.  also attached the wl18xx-conf-dump.txt file. Please let us know if more info is needed.

    Are the other configuration settings correct ?

    Can you please check and help us setting the correct configurations ?

    Thanks,

    Rakesh Guttal

    ==============================================================================

    root@am57xx-evm:/usr/sbin/wlconf# ./configure-device.sh.fromti  

    Please provide the following information.

    Are you using a TI module? [y/n] : y

    What is the chip flavor? [1801/1805/1807/1831/1835/1837 or 0 for unknown] : 1837

    Should Japanese standards be applied? [y/n] : n

    How many 2.4GHz antennas are fitted? [1/2] : 2

    How many 5GHz antennas are fitted? [0/1/2] : 2

    [ 1927.998420] wlcore: down

    The device has been successfully configured.

    TI Module: y

    Chip Flavor: 1837

    Number of 2.4GHz Antennas Fitted: 2

    Number of 5GHz Antennas Fitted: 2

    Diversity Support: y

    SISO40 Support: y

    Japanese Standards Applied: n

    root@am57xx-evm:/usr/sbin/wlconf# [ 1928.520009] wl18xx_driver wl18xx.1.auto: Direct firmware load for ti-connectivity/wl1271-nvs.bin failed with er2

    [ 1928.819427] wlcore: wl18xx HW: 183x or 180x, PG 2.2 (ROM 0x11)

    [ 1928.838856] wlcore: loaded

    [ 1929.240013] wlcore: PHY firmware version: Rev 8.2.0.0.233

    [ 1929.472513] wlcore: firmware booted (Rev 8.9.0.1.55)

    [ 1929.490215] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready

    ================================================================================

    3487.wl18xx-conf-dump.txt
    header.magic = 0x10e100ca
    header.version = 0x00070007
    header.checksum = 0x00000000
    core.sg.params = 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,0
    core.sg.state = 0x01
    core.rx.rx_msdu_life_time = 0x0007d000
    core.rx.packet_detection_threshold = 0x00000000
    core.rx.ps_poll_timeout = 0x000f
    core.rx.upsd_timeout = 0x000f
    core.rx.rts_threshold = 0x0931
    core.rx.rx_cca_threshold = 0x0000
    core.rx.irq_blk_threshold = 0xffff
    core.rx.irq_pkt_threshold = 0x0000
    core.rx.irq_timeout = 0x0258
    core.rx.queue_type = 0x00
    core.tx.tx_energy_detection = 0x00
    core.tx.sta_rc_conf.enabled_rates = 0x00000000
    core.tx.sta_rc_conf.short_retry_limit = 0x0a
    core.tx.sta_rc_conf.long_retry_limit = 0x0a
    core.tx.sta_rc_conf.aflags = 0x00
    core.tx.ac_conf_count = 0x04
    core.tx.ac_conf0.ac = 0x00
    core.tx.ac_conf0.cw_min = 0x0f
    core.tx.ac_conf0.cw_max = 0x003f
    core.tx.ac_conf0.aifsn = 0x03
    core.tx.ac_conf0.tx_op_limit = 0x0000
    core.tx.ac_conf1.ac = 0x01
    core.tx.ac_conf1.cw_min = 0x0f
    core.tx.ac_conf1.cw_max = 0x003f
    core.tx.ac_conf1.aifsn = 0x07
    core.tx.ac_conf1.tx_op_limit = 0x0000
    core.tx.ac_conf2.ac = 0x02
    core.tx.ac_conf2.cw_min = 0x0f
    core.tx.ac_conf2.cw_max = 0x003f
    core.tx.ac_conf2.aifsn = 0x01
    core.tx.ac_conf2.tx_op_limit = 0x0bc0
    core.tx.ac_conf3.ac = 0x03
    core.tx.ac_conf3.cw_min = 0x0f
    core.tx.ac_conf3.cw_max = 0x003f
    core.tx.ac_conf3.aifsn = 0x01
    core.tx.ac_conf3.tx_op_limit = 0x05e0
    core.tx.max_tx_retries = 0x64
    core.tx.ap_aging_period = 0x012c
    core.tx.tid_conf_count = 0x04
    core.tx.tid_conf0.queue_id = 0x00
    core.tx.tid_conf0.channel_type = 0x01
    core.tx.tid_conf0.tsid = 0x00
    core.tx.tid_conf0.ps_scheme = 0x00
    core.tx.tid_conf0.ack_policy = 0x00
    core.tx.tid_conf0.apsd_conf = 0x00000000, 0x00000000
    core.tx.tid_conf1.queue_id = 0x01
    core.tx.tid_conf1.channel_type = 0x01
    core.tx.tid_conf1.tsid = 0x01
    core.tx.tid_conf1.ps_scheme = 0x00
    core.tx.tid_conf1.ack_policy = 0x00
    core.tx.tid_conf1.apsd_conf = 0x00000000, 0x00000000
    core.tx.tid_conf2.queue_id = 0x02
    core.tx.tid_conf2.channel_type = 0x01
    core.tx.tid_conf2.tsid = 0x02
    core.tx.tid_conf2.ps_scheme = 0x00
    core.tx.tid_conf2.ack_policy = 0x00
    core.tx.tid_conf2.apsd_conf = 0x00000000, 0x00000000
    core.tx.tid_conf3.queue_id = 0x03
    core.tx.tid_conf3.channel_type = 0x01
    core.tx.tid_conf3.tsid = 0x03
    core.tx.tid_conf3.ps_scheme = 0x00
    core.tx.tid_conf3.ack_policy = 0x00
    core.tx.tid_conf3.apsd_conf = 0x00000000, 0x00000000
    core.tx.tid_conf4.queue_id = 0x00
    core.tx.tid_conf4.channel_type = 0x00
    core.tx.tid_conf4.tsid = 0x00
    core.tx.tid_conf4.ps_scheme = 0x00
    core.tx.tid_conf4.ack_policy = 0x00
    core.tx.tid_conf4.apsd_conf = 0x00000000, 0x00000000
    core.tx.tid_conf5.queue_id = 0x00
    core.tx.tid_conf5.channel_type = 0x00
    core.tx.tid_conf5.tsid = 0x00
    core.tx.tid_conf5.ps_scheme = 0x00
    core.tx.tid_conf5.ack_policy = 0x00
    core.tx.tid_conf5.apsd_conf = 0x00000000, 0x00000000
    core.tx.tid_conf6.queue_id = 0x00
    core.tx.tid_conf6.channel_type = 0x00
    core.tx.tid_conf6.tsid = 0x00
    core.tx.tid_conf6.ps_scheme = 0x00
    core.tx.tid_conf6.ack_policy = 0x00
    core.tx.tid_conf6.apsd_conf = 0x00000000, 0x00000000
    core.tx.tid_conf7.queue_id = 0x00
    core.tx.tid_conf7.channel_type = 0x00
    core.tx.tid_conf7.tsid = 0x00
    core.tx.tid_conf7.ps_scheme = 0x00
    core.tx.tid_conf7.ack_policy = 0x00
    core.tx.tid_conf7.apsd_conf = 0x00000000, 0x00000000
    core.tx.frag_threshold = 0x0930
    core.tx.tx_compl_timeout = 0x015e
    core.tx.tx_compl_threshold = 0x000a
    core.tx.basic_rate = 0x00000001
    core.tx.basic_rate_5 = 0x00000008
    core.tx.tmpl_short_retry_limit = 0x0a
    core.tx.tmpl_long_retry_limit = 0x0a
    core.tx.tx_watchdog_timeout = 0x00001388
    core.tx.slow_link_thold = 0x03
    core.tx.fast_link_thold = 0x1e
    core.conn.wake_up_event = 0x02
    core.conn.listen_interval = 0x01
    core.conn.suspend_wake_up_event = 0x04
    core.conn.suspend_listen_interval = 0x03
    core.conn.bcn_filt_mode = 0x01
    core.conn.bcn_filt_ie_count = 0x03
    core.conn.bcn_filt_ie0.ie = 0x25
    core.conn.bcn_filt_ie0.rule = 0x02
    core.conn.bcn_filt_ie0.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie0.type = 0x00
    core.conn.bcn_filt_ie0.version = 0x00, 0x00
    core.conn.bcn_filt_ie1.ie = 0x3d
    core.conn.bcn_filt_ie1.rule = 0x01
    core.conn.bcn_filt_ie1.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie1.type = 0x00
    core.conn.bcn_filt_ie1.version = 0x00, 0x00
    core.conn.bcn_filt_ie2.ie = 0x2a
    core.conn.bcn_filt_ie2.rule = 0x01
    core.conn.bcn_filt_ie2.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie2.type = 0x00
    core.conn.bcn_filt_ie2.version = 0x00, 0x00
    core.conn.bcn_filt_ie3.ie = 0x00
    core.conn.bcn_filt_ie3.rule = 0x00
    core.conn.bcn_filt_ie3.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie3.type = 0x00
    core.conn.bcn_filt_ie3.version = 0x00, 0x00
    core.conn.bcn_filt_ie4.ie = 0x00
    core.conn.bcn_filt_ie4.rule = 0x00
    core.conn.bcn_filt_ie4.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie4.type = 0x00
    core.conn.bcn_filt_ie4.version = 0x00, 0x00
    core.conn.bcn_filt_ie5.ie = 0x00
    core.conn.bcn_filt_ie5.rule = 0x00
    core.conn.bcn_filt_ie5.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie5.type = 0x00
    core.conn.bcn_filt_ie5.version = 0x00, 0x00
    core.conn.bcn_filt_ie6.ie = 0x00
    core.conn.bcn_filt_ie6.rule = 0x00
    core.conn.bcn_filt_ie6.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie6.type = 0x00
    core.conn.bcn_filt_ie6.version = 0x00, 0x00
    core.conn.bcn_filt_ie7.ie = 0x00
    core.conn.bcn_filt_ie7.rule = 0x00
    core.conn.bcn_filt_ie7.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie7.type = 0x00
    core.conn.bcn_filt_ie7.version = 0x00, 0x00
    core.conn.bcn_filt_ie8.ie = 0x00
    core.conn.bcn_filt_ie8.rule = 0x00
    core.conn.bcn_filt_ie8.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie8.type = 0x00
    core.conn.bcn_filt_ie8.version = 0x00, 0x00
    core.conn.bcn_filt_ie9.ie = 0x00
    core.conn.bcn_filt_ie9.rule = 0x00
    core.conn.bcn_filt_ie9.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie9.type = 0x00
    core.conn.bcn_filt_ie9.version = 0x00, 0x00
    core.conn.bcn_filt_ie10.ie = 0x00
    core.conn.bcn_filt_ie10.rule = 0x00
    core.conn.bcn_filt_ie10.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie10.type = 0x00
    core.conn.bcn_filt_ie10.version = 0x00, 0x00
    core.conn.bcn_filt_ie11.ie = 0x00
    core.conn.bcn_filt_ie11.rule = 0x00
    core.conn.bcn_filt_ie11.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie11.type = 0x00
    core.conn.bcn_filt_ie11.version = 0x00, 0x00
    core.conn.bcn_filt_ie12.ie = 0x00
    core.conn.bcn_filt_ie12.rule = 0x00
    core.conn.bcn_filt_ie12.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie12.type = 0x00
    core.conn.bcn_filt_ie12.version = 0x00, 0x00
    core.conn.bcn_filt_ie13.ie = 0x00
    core.conn.bcn_filt_ie13.rule = 0x00
    core.conn.bcn_filt_ie13.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie13.type = 0x00
    core.conn.bcn_filt_ie13.version = 0x00, 0x00
    core.conn.bcn_filt_ie14.ie = 0x00
    core.conn.bcn_filt_ie14.rule = 0x00
    core.conn.bcn_filt_ie14.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie14.type = 0x00
    core.conn.bcn_filt_ie14.version = 0x00, 0x00
    core.conn.bcn_filt_ie15.ie = 0x00
    core.conn.bcn_filt_ie15.rule = 0x00
    core.conn.bcn_filt_ie15.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie15.type = 0x00
    core.conn.bcn_filt_ie15.version = 0x00, 0x00
    core.conn.bcn_filt_ie16.ie = 0x00
    core.conn.bcn_filt_ie16.rule = 0x00
    core.conn.bcn_filt_ie16.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie16.type = 0x00
    core.conn.bcn_filt_ie16.version = 0x00, 0x00
    core.conn.bcn_filt_ie17.ie = 0x00
    core.conn.bcn_filt_ie17.rule = 0x00
    core.conn.bcn_filt_ie17.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie17.type = 0x00
    core.conn.bcn_filt_ie17.version = 0x00, 0x00
    core.conn.bcn_filt_ie18.ie = 0x00
    core.conn.bcn_filt_ie18.rule = 0x00
    core.conn.bcn_filt_ie18.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie18.type = 0x00
    core.conn.bcn_filt_ie18.version = 0x00, 0x00
    core.conn.bcn_filt_ie19.ie = 0x00
    core.conn.bcn_filt_ie19.rule = 0x00
    core.conn.bcn_filt_ie19.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie19.type = 0x00
    core.conn.bcn_filt_ie19.version = 0x00, 0x00
    core.conn.bcn_filt_ie20.ie = 0x00
    core.conn.bcn_filt_ie20.rule = 0x00
    core.conn.bcn_filt_ie20.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie20.type = 0x00
    core.conn.bcn_filt_ie20.version = 0x00, 0x00
    core.conn.bcn_filt_ie21.ie = 0x00
    core.conn.bcn_filt_ie21.rule = 0x00
    core.conn.bcn_filt_ie21.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie21.type = 0x00
    core.conn.bcn_filt_ie21.version = 0x00, 0x00
    core.conn.bcn_filt_ie22.ie = 0x00
    core.conn.bcn_filt_ie22.rule = 0x00
    core.conn.bcn_filt_ie22.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie22.type = 0x00
    core.conn.bcn_filt_ie22.version = 0x00, 0x00
    core.conn.bcn_filt_ie23.ie = 0x00
    core.conn.bcn_filt_ie23.rule = 0x00
    core.conn.bcn_filt_ie23.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie23.type = 0x00
    core.conn.bcn_filt_ie23.version = 0x00, 0x00
    core.conn.bcn_filt_ie24.ie = 0x00
    core.conn.bcn_filt_ie24.rule = 0x00
    core.conn.bcn_filt_ie24.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie24.type = 0x00
    core.conn.bcn_filt_ie24.version = 0x00, 0x00
    core.conn.bcn_filt_ie25.ie = 0x00
    core.conn.bcn_filt_ie25.rule = 0x00
    core.conn.bcn_filt_ie25.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie25.type = 0x00
    core.conn.bcn_filt_ie25.version = 0x00, 0x00
    core.conn.bcn_filt_ie26.ie = 0x00
    core.conn.bcn_filt_ie26.rule = 0x00
    core.conn.bcn_filt_ie26.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie26.type = 0x00
    core.conn.bcn_filt_ie26.version = 0x00, 0x00
    core.conn.bcn_filt_ie27.ie = 0x00
    core.conn.bcn_filt_ie27.rule = 0x00
    core.conn.bcn_filt_ie27.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie27.type = 0x00
    core.conn.bcn_filt_ie27.version = 0x00, 0x00
    core.conn.bcn_filt_ie28.ie = 0x00
    core.conn.bcn_filt_ie28.rule = 0x00
    core.conn.bcn_filt_ie28.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie28.type = 0x00
    core.conn.bcn_filt_ie28.version = 0x00, 0x00
    core.conn.bcn_filt_ie29.ie = 0x00
    core.conn.bcn_filt_ie29.rule = 0x00
    core.conn.bcn_filt_ie29.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie29.type = 0x00
    core.conn.bcn_filt_ie29.version = 0x00, 0x00
    core.conn.bcn_filt_ie30.ie = 0x00
    core.conn.bcn_filt_ie30.rule = 0x00
    core.conn.bcn_filt_ie30.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie30.type = 0x00
    core.conn.bcn_filt_ie30.version = 0x00, 0x00
    core.conn.bcn_filt_ie31.ie = 0x00
    core.conn.bcn_filt_ie31.rule = 0x00
    core.conn.bcn_filt_ie31.oui = 0x00, 0x00, 0x00
    core.conn.bcn_filt_ie31.type = 0x00
    core.conn.bcn_filt_ie31.version = 0x00, 0x00
    core.conn.synch_fail_thold = 0x0000000c
    core.conn.bss_lose_timeout = 0x00000190
    core.conn.beacon_rx_timeout = 0x00002710
    core.conn.broadcast_timeout = 0x00004e20
    core.conn.rx_broadcast_in_ps = 0x01
    core.conn.ps_poll_threshold = 0x0a
    core.conn.sig_weights.rssi_bcn_avg_weight = 0x00
    core.conn.sig_weights.rssi_pkt_avg_weight = 0x00
    core.conn.sig_weights.snr_bcn_avg_weight = 0x00
    core.conn.sig_weights.snr_pkt_avg_weight = 0x00
    core.conn.bet_enable = 0x01
    core.conn.bet_max_consecutive = 0x32
    core.conn.psm_entry_retries = 0x08
    core.conn.psm_exit_retries = 0x10
    core.conn.psm_entry_nullfunc_retries = 0x03
    core.conn.dynamic_ps_timeout = 0x0096
    core.conn.forced_ps = 0x00
    core.conn.keep_alive_interval = 0x0000d6d8
    core.conn.max_listen_interval = 0x14
    core.conn.sta_sleep_auth = 0xff
    core.conn.suspend_rx_ba_activity = 0x00
    core.itrim.enable = 0x00
    core.itrim.timeout = 0x0000c350
    core.pm_config.host_clk_settling_time = 0x00001388
    core.pm_config.host_fast_wakeup_support = 0x01
    core.roam_trigger.trigger_pacing = 0x0001
    core.roam_trigger.avg_weight_rssi_beacon = 0x14
    core.roam_trigger.avg_weight_rssi_data = 0x0a
    core.roam_trigger.avg_weight_snr_beacon = 0x14
    core.roam_trigger.avg_weight_snr_data = 0x0a
    core.scan.min_dwell_time_active = 0x00001d4c
    core.scan.max_dwell_time_active = 0x00007530
    core.scan.min_dwell_time_active_long = 0x000061a8
    core.scan.max_dwell_time_active_long = 0x0000c350
    core.scan.dwell_time_passive = 0x000186a0
    core.scan.dwell_time_dfs = 0x000249f0
    core.scan.num_probe_reqs = 0x0002
    core.scan.split_scan_timeout = 0x0000c350
    core.sched_scan.base_dwell_time = 0x00001d4c
    core.sched_scan.max_dwell_time_delta = 0x000057e4
    core.sched_scan.dwell_time_delta_per_probe = 0x000007d0
    core.sched_scan.dwell_time_delta_per_probe_5 = 0x0000015e
    core.sched_scan.dwell_time_passive = 0x000186a0
    core.sched_scan.dwell_time_dfs = 0x000249f0
    core.sched_scan.num_probe_reqs = 0x02
    core.sched_scan.rssi_threshold = 0xa6
    core.sched_scan.snr_threshold = 0x00
    core.sched_scan.num_short_intervals = 0x0d
    core.sched_scan.long_interval = 0x7530
    core.ht.rx_ba_win_size = 0x20
    core.ht.tx_ba_win_size = 0x40
    core.ht.inactivity_timeout = 0x2710
    core.ht.tx_ba_tid_bitmap = 0x3f
    core.mem.num_stations = 0x01
    core.mem.ssid_profiles = 0x01
    core.mem.rx_block_num = 0x28
    core.mem.tx_min_block_num = 0x28
    core.mem.dynamic_memory = 0x01
    core.mem.min_req_tx_blocks = 0x2d
    core.mem.min_req_rx_blocks = 0x16
    core.mem.tx_min = 0x1b
    core.fm_coex.enable = 0x01
    core.fm_coex.swallow_period = 0x05
    core.fm_coex.n_divider_fref_set_1 = 0xff
    core.fm_coex.n_divider_fref_set_2 = 0x0c
    core.fm_coex.m_divider_fref_set_1 = 0xffff
    core.fm_coex.m_divider_fref_set_2 = 0x0094
    core.fm_coex.coex_pll_stabilization_time = 0xffffffff
    core.fm_coex.ldo_stabilization_time = 0xffff
    core.fm_coex.fm_disturbed_band_margin = 0xff
    core.fm_coex.swallow_clk_diff = 0xff
    core.rx_streaming.duration = 0x00000096
    core.rx_streaming.queues = 0x01
    core.rx_streaming.interval = 0x14
    core.rx_streaming.always = 0x00
    core.fwlog.mode = 0x00
    core.fwlog.mem_blocks = 0x02
    core.fwlog.severity = 0x00
    core.fwlog.timestamp = 0x00
    core.fwlog.output = 0x01
    core.fwlog.threshold = 0x00
    core.rate.rate_retry_score = 0x7d00
    core.rate.per_add = 0x2000
    core.rate.per_th1 = 0x0800
    core.rate.per_th2 = 0x1000
    core.rate.max_per = 0x1fa4
    core.rate.inverse_curiosity_factor = 0x05
    core.rate.tx_fail_low_th = 0x04
    core.rate.tx_fail_high_th = 0x0a
    core.rate.per_alpha_shift = 0x04
    core.rate.per_add_shift = 0x0d
    core.rate.per_beta1_shift = 0x0a
    core.rate.per_beta2_shift = 0x08
    core.rate.rate_check_up = 0x02
    core.rate.rate_check_down = 0x0c
    core.rate.rate_retry_policy = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
    core.hangover.recover_time = 0x00000000
    core.hangover.hangover_period = 0x14
    core.hangover.dynamic_mode = 0x01
    core.hangover.early_termination_mode = 0x01
    core.hangover.max_period = 0x14
    core.hangover.min_period = 0x01
    core.hangover.increase_delta = 0x01
    core.hangover.decrease_delta = 0x02
    core.hangover.quiet_time = 0x04
    core.hangover.increase_time = 0x01
    core.hangover.window_size = 0x10
    core.recovery.bug_on_recovery = 0x00
    core.recovery.no_recovery = 0x00
    wl18xx.ht.mode = 0x00
    wl18xx.phy.phy_standalone = 0x00
    wl18xx.phy.spare0 = 0x08
    wl18xx.phy.enable_clpc = 0x00
    wl18xx.phy.enable_tx_low_pwr_on_siso_rdl = 0x00
    wl18xx.phy.auto_detect = 0x00
    wl18xx.phy.dedicated_fem = 0x00
    wl18xx.phy.low_band_component = 0x02
    wl18xx.phy.low_band_component_type = 0x05
    wl18xx.phy.high_band_component = 0x01
    wl18xx.phy.high_band_component_type = 0x0a
    wl18xx.phy.number_of_assembled_ant2_4 = 0x02
    wl18xx.phy.number_of_assembled_ant5 = 0x02
    wl18xx.phy.pin_muxing_platform_options = 0x00, 0x00
    wl18xx.phy.external_pa_dc2dc = 0x00
    wl18xx.phy.tcxo_ldo_voltage = 0x00
    wl18xx.phy.xtal_itrim_val = 0x04
    wl18xx.phy.srf_state = 0x00
    wl18xx.phy.srf1 = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
    wl18xx.phy.srf2 = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
    wl18xx.phy.srf3 = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
    wl18xx.phy.io_configuration = 0x01
    wl18xx.phy.sdio_configuration = 0x00
    wl18xx.phy.settings = 0x00
    wl18xx.phy.rx_profile = 0x00
    wl18xx.phy.per_chan_pwr_limit_arr_11abg = 0x78, 0x88, 0x88, 0x78, 0x88, 0x88, 0x78, 0x88, 0x88, 0x78, 0x88, 0x88, 0x78, 0x88, 0x18, 0x78, 0x88, 0x88f
    wl18xx.phy.pwr_limit_reference_11_abg = 0x55
    wl18xx.phy.per_chan_pwr_limit_arr_11p = 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
    wl18xx.phy.pwr_limit_reference_11p = 0x64
    wl18xx.phy.spare1 = 0x00
    wl18xx.phy.per_chan_bo_mode_11_abg = 0x40, 0x00, 0x04, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x19
    wl18xx.phy.per_chan_bo_mode_11_p = 0x00, 0x00, 0x00, 0x01
    wl18xx.phy.primary_clock_setting_time = 0x05
    wl18xx.phy.clock_valid_on_wake_up = 0x00
    wl18xx.phy.secondary_clock_setting_time = 0x05
    wl18xx.phy.board_type = 0x02
    wl18xx.phy.psat = 0x00
    wl18xx.phy.low_power_val = 0xff
    wl18xx.phy.med_power_val = 0xff
    wl18xx.phy.high_power_val = 0xff
    wl18xx.phy.per_sub_band_tx_trace_loss = 0x08, 0x18, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10
    wl18xx.phy.per_sub_band_rx_trace_loss = 0x08, 0x18, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
    wl18xx.phy.tx_rf_margin = 0x01
    wl18xx.phy.low_power_val_2nd = 0xff
    wl18xx.phy.med_power_val_2nd = 0xff
    wl18xx.phy.high_power_val_2nd = 0xff
    wl18xx.phy.padding = 0x00
    wl18xx.ap_sleep.idle_duty_cycle = 0x00
    wl18xx.ap_sleep.connected_duty_cycle = 0x00
    wl18xx.ap_sleep.max_stations_thresh = 0x04
    wl18xx.ap_sleep.idle_conn_thresh = 0x08
    

  • Hi,

    I believe you configuration in general should be OK.
    One thing you may try is to specify "1" as the number of 5Ghz antennas, unless you plan on using 5Ghz diversity.

    How is your kernel .config set to? Can you verify that you have the following?:

    CONFIG_TCP_CONG_ADVANCED=y
    CONFIG_DEFAULT_RENO=y
    CONFIG_DEFAULT_TCP_CONG="reno"

    See also this thread:
    e2e.ti.com/.../555478

    If this doesn't help, you need to look at a wifi air sniffer and see how the rates look in the air.
    Did you try more than one channel? Perhaps it is just a congested air environment?

    BR,
    Eyal
  • Hi Eyal,

    We tried specifying "1" as the number of 5Ghz antennas. But there seems to be no option in script to select 5Ghz diversity. If you see logs above, its support enabled by default "Diversity Support: y".

    Regarding TCP congestion algorithm. Our config is set to "cubic" mode. We have tried "reno" mode. there seems to no improvement. also in other third-party modules the throughput seems to be fine even in "cubic" mode.

    We have already tried few of the channels supported for 5Ghz. However there are no other APs with 5Ghz in our environment. So we think there is no congested air environment.

    Using Wireshark sniffed in air for packets under channel 11. Attached is the log "wireshark_air_snif_2_4ghz_channel_11.pcapng" for your reference.
    With 5Ghz we faced some problem so captured with AP in 2.4Ghz.

    Thanks for your quick responses.

    Thanks,
    Rakesh G

    =========================================================================================================
    root@am57xx-evm:~# iperf -s
    ------------------------------------------------------------
    Server listening on TCP port 5001
    TCP window size: 85.3 KByte (default)
    ------------------------------------------------------------
    [  4] local 192.168.43.1 port 5001 connected with 192.168.43.20 port 49493
    [ ID] Interval       Transfer     Bandwidth
    [  4]  0.0-10.2 sec  11.8 MBytes  9.68 Mbits/sec

    root@am57xx-evm:~# cat /usr/bin/wifitool/hostapd.conf                                                                                          
    interface=wlan1
    driver=nl80211
    ssid=wilink8
    channel=11
    macaddr_acl=0
    auth_algs=1
    ignore_broadcast_ssid=0
    wpa=2
    wpa_passphrase=abcdef123
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=TKIP
    rsn_pairwise=CCMP
    hw_mode=g
    ieee80211n=1
    vendor_elements=dd2d00a040000002B0220206416c6c476f000306446576313000040301020306065cf370700a180706f4f26d1d9ebb
    ==============================================================================================================

    wireshark_air_snif_2_4ghz_channel_11.pcapng.tar.gz

  • Hi,

    If I am not mistaken after briefly checking your capture, it seems like all data packets are sent with a rate of up to 24Mhz only.
    Can you confirm?
    What type of wl18xx COM8 module are you using here. Can you attach a picture of it?

    BR,
    Eyal
  • Hi Eyal,

    Yes that is correct. data packets are sent with a rate of up to 24mbps.
    We can see from the logs for 802.11 Block Ack:- Data Rate: 24 Mb/s

    Please note that these logs are captured with AP in 2.4Ghz mode. What is the expected max data rate ?

    As attached in the pic we are using WL1837MODCOM8I module.

    Thanks,
    Rakesh G
  • Depending on the wifi conditions ,you should see rates up to 150Mb/s

    Are you seeing same rates also during iperf traffic? please try to capture during traffic.
    Signal strength is also a bit weak. how far are you from the AP?

    Can you send a picture of the actual setup (EVM+com module)? Are you using external antennas?

    BR,
    Eyal
  • The "wireshark_air_snif_2_4ghz_channel_11.pcapng" logs shared include capture during connection of an iPhone to AP and then iperf traffic. We sit very close to actual setup.

    Attached are the pics and some more information. Yes we are using 2 antennas (unictron aa258).

    Thanks,
    Rakesh GuttalLogs.tar.gz

  • Hi,

    This module has on-board antennas (ANT1 and ANT2) which are routed by default.
    You normally have to modify resistors for using an external antenna.
    I don't think the antennas you connected are being used.

    Can you try disconnecting them and see if it makes a change?

    If you are sitting close to the AP (both the sniffer and the target) it doesn't really make sense that signal level is around -70dBm
    Do you have another/similar module you can try?

    BR,
    Eyal
  • Hi Eyal,

    We found that by disconnecting antenna, there is no significant change in signal strength. But there is a change in value of signal strength in wireshark logs compared with some other tool. Not sure which is correct.  Also We tried with another similar setup which has  WL1837MODCOM8I module. the results are same.

    ========================================================================
    From wireshark logs under Radiotap Header, following is the reading:
    -With antenna average signal level is -60dBm
    -Without antenna average signal level is -70dBm

    However some third-party windows tool(wifiinfoview) showed following reading:
    -Both with and without antenna signal level is -40dBm
    =========================================================================

    Does Data Rate depend on signal level ? So do you think the antenna is the reason behind low throughput ?
    If so can you please provide us the modification related to resistors for using an external antenna ?

    Please let us know if any other information is required.

    Thanks,
    Rakesh G

    Attached is the wireshark log with antenna connected. Previously shared one was without antenna connected.

    wireshark_air_snif_2_4ghz_channel_11_with_antenna.pcapng.tar.gz

  • Hi Eyal,

    We plan to update the firmware. The current firmware that we have updated is from below link. we see that 8.9.0.1.55 is the latest one. Can you please confirm what is the latest firmware and link to it ?

    git.ti.com/.../ap_dfs

    Thanks,
    Rakesh G
  • Hi,

    Latest firmware can be taken from here:
    git.ti.com/.../1e2115acb07a2425d7a282078bd0aa22350eebf8

    It is FW 8.9.0.0.78

    Best Regards,
    Eyal
  • Hi Eyal,

    Thanks for sharing the latest firmware link. We will update it.
    Can you please check and help us answer below query from previous reply:

    Does Data Rate depend on signal level ? So do you think the antenna is the reason behind low throughput ?
    If so can you please provide us the modification related to resistors for using an external antenna ?

    Thanks,
    Rakesh G

  • Data rate do depend on signal level as well as other factors (congestion in the air, interference etc.)
    If you are getting only a max of 24MBps rates you will probably not get higher TP than what you are seeing.

    This need to be figured out.
    As you are using a standard module which is configured by default to use the on board antennas, there is no point in connecting the external antennas, as the connectors are not routed to the chip.
    The on board antennas however should work just fine. This is what I am using as well.

    I suggest you try in a shielded room or find a channel which is clear and also try to test closer to the AP.
    You can also disable security on the AP (change to open) and sniff the air during iperf traffic. Would be easier to check the wire shark logs this way.

    BR,
    Eyal
  • Hi Eyal,

    Can you please tell us how can we disable security on the AP. ?
    We removed all the wpa security related configurations from hostapd.conf. Is this correct/enough ?

    Following is our hostapd.conf

    interface=wlan1
    driver=nl80211
    ssid=wilink_8
    channel=36
    ht_capab=[HT40+]
    macaddr_acl=0
    auth_algs=1
    ignore_broadcast_ssid=0
    rsn_pairwise=CCMP
    hw_mode=a
    ieee80211n=1
    country_code=US
    vendor_elements=dd2d00a040000002B0220206416c6c476f000306446576313000040301020306065cf370700a180706f4f26d1d9ebb

    Thanks,
    Rakesh G
  • Hi Rakesh,

    You can check our jostapd.conf from our target-scripts examples:
    git.ti.com/.../hostapd.conf

    See the following documentation page:
    processors.wiki.ti.com/.../WiLink8_WLAN_Demo:_Linux

    The default is open security.

    BR,
    Eyal
  • Hi Eyal,

    1. We used the hostapd.conf provided by you. Also AP is being started the way mentioned in documents reference you provided.
    There is no improvement in the throughput.

    2. We could able to capture packets in air for AP in 5ghz mode. Found that TCP packets data rate is at 72mbps.
    Please check the attached file "wireshark_air_snif_5ghz_channel_36.pcapng" What is the data rates that you get ?Can you please share us the rootfs that you are using ?

    3. Following is the observation made on some different setup:
    We have a hardware running android O say it HW1. It is connected to am57xx-evm over Ethernet.
    Connected iPhone over WiFi to am57xx-evm. wilink module on am57xx-evm is in 5Ghz mode.

    following is the setup:
    HW1<--(Ethernet_connection)-->am57xx-evm<--(Wireless_connection)-->iPhone

    -Run iperf as client on iphone with am57xx-evm WiFi interface IP. Run iperf as server on am57xx-evm.
    iperf results on am57xx-evm show throughput ~12Mbits/sec.

    -Run iperf as client on iphone with HW1 Ethernet interface IP. Run iperf as server on HW1.
    iperf results on HW1 show throughput ~25Mbits/sec

    These results are not matching. Also if same experiment is done with am57xx-evm in 2.4Ghz mode,
    iperf results on both HW1 and am57xx-evm is same i.e, ~12Mbits/sec

    Thanks,
    Rakesh Gwireshark_air_snif_5ghz_channel_36.pcapng.pcapng.tar.gz

  • Hi Rakesh,

    If I get yo correctly you are actually testing routing between ETH and wlan0 on the am57xx-evm and not just wifi.
    With this you bring a lot of variables to the picture.

    Can you please first try a simpler test?
    Run the iperf client/server on the am57xx-exv itself and measure throughput between the am57xx-evm and the iPhone only while disconnecting the ETH cable between the EVM and HW1.
    Are yo getting same results?

    In addition, can you check your kernel .config and verify that you have the following settings?:

    CONFIG_TCP_CONG_ADVANCED=y
    CONFIG_DEFAULT_RENO=y
    CONFIG_DEFAULT_TCP_CONG="reno"

    In case it is different can you make this change, rebuild the kernel and retest?

    BR,
    Eyal
  • Hi Eyal,

    It is true that we are measuring the routing between ETH and wlan0 on the am57xx-evm. We had also verified only with WiFi and found Results were same.
    But now as per your suggestion we disconnected ETH cable. Also added the configuration settings mentioned by you to kernel configuration file and rebuilt the kernel. Even after this, there is no change in the throughput.

    =============================================================================
    We confirmed the configuration changes being applied from the below log:
    root@am57xx-evm:~# cat /proc/sys/net/ipv4/tcp_congestion_control
    reno

    Throughput Results:
    root@am57xx-evm:~# iperf -s
    ------------------------------------------------------------
    Server listening on TCP port 5001
    TCP window size: 85.3 KByte (default)
    ------------------------------------------------------------
    [  4] local 192.168.43.1 port 5001 connected with 192.168.43.24 port 49327
    [ ID] Interval       Transfer     Bandwidth
    [  4]  0.0-10.1 sec  14.6 MBytes  12.1 Mbits/sec
    [  5] local 192.168.43.1 port 5001 connected with 192.168.43.24 port 49328
    [  5]  0.0-10.1 sec  14.6 MBytes  12.2 Mbits/sec
    ================================================================================

    Thanks,
    Rakesh G

  • Hi Rakesh,

    Can you do the following 4 measurements?:

    UDP Tx
    UDP Rx
    TCP Tx
    TCP Rx

    I wonder if UDP is different or same.

    BR,
    Eyal
  • Hi Eyal,

    Do you mean to say measure iperf values for UDP and TCP ?
    With executing iperf as both client and server on am57xx-evm ?

    Thanks,
    Rakesh G
  • Correct. Pure wifi.
    Run iperf on the am57xx-evm with the other side running iperf as well. Could be a phone connected to the same AP or a laptop.

    For example for UDP Rx on the am57xx-evm:

    On the am57xx-evm:
    iperf -s -u -i2

    On the other side:
    iperf -c <ip-of-the-wlan-interface -of-the-am57xx-evm> -b 150M -t60 -i2
  • Hi Eyal,

    I have captured the 4 measurements. Please find the results in attachment.
    There is no provision to edit iperf command in ATS utility on iphone. So following are the commands executed by iphone when run UDP and TCP as client.

    UDP:
    iperf -p 5001 -l 1448 -w 131072k -i 1.0 -u -c 192.168.43.1 -t 10.0 -b 100m

    TCP:
    iperf -p 5001 -l 131072 -w 131072 -i 1.0 -c 192.168.43.1 -t 10.0

    Thanks,
    Rakesh G

    iperf_results.txt.tar.gz

  • Iperf UDP Rx results look better.
    I do see it peak at around 49MBPs so need to look further:

    [ 3] 2.0- 4.0 sec 11.8 MBytes 49.5 Mbits/sec 0.171 ms 504/ 9043 (5.6%)
    [ 3] 4.0- 6.0 sec 10.5 MBytes 44.0 Mbits/sec 0.187 ms 521/ 8118 (6.4%)
    [ 3] 6.0- 8.0 sec 11.2 MBytes 46.9 Mbits/sec 0.181 ms 449/ 8547 (5.3%)
    [ 3] 8.0-10.0 sec 10.8 MBytes 45.4 Mbits/sec 0.209 ms 518/ 8358 (6.2%)
    [ 3] 0.0-10.0 sec 50.5 MBytes 42.3 Mbits/sec 0.211 ms 2351/38937 (6%)

    For UDP Tx the command is wrong:
    Should be:
    iperf -p 5001 -c 192.168.43.24 -u -b100M -t 60 -i2

    and not just:
    iperf -c 192.168.43.24 -u

    But I also suggest you connect a PC/Laptop to the same AP and use standard iperf client on this PC instead of the iPhone App.

    BR,
    Eyal
  • Hi Eyal,

    These are the results for UDP Tx by using laptop as client instead of iPhone:

    On CGW (Server):

    root@am57xx-evm:~# iperf -s -u -i2
    ------------------------------------------------------------
    Server listening on UDP port 5001
    Receiving 1470 byte datagrams
    UDP buffer size: 160 KByte (default)
    ------------------------------------------------------------
    [ 3] local 192.168.43.1 port 5001 connected with 192.168.43.206 port 54819
    [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
    [ 3] 0.0- 2.0 sec 13.8 MBytes 57.9 Mbits/sec 0.128 ms 46/ 9885 (0.47%)
    [ 3] 2.0- 4.0 sec 14.5 MBytes 60.8 Mbits/sec 0.374 ms 0/10336 (0%)
    [ 3] 4.0- 6.0 sec 2.84 MBytes 11.9 Mbits/sec 1.733 ms 0/ 2025 (0%)
    [ 3] 6.0- 8.0 sec 3.54 MBytes 14.9 Mbits/sec 1.224 ms 0/ 2526 (0%)
    [ 3] 8.0-10.0 sec 3.32 MBytes 13.9 Mbits/sec 1.092 ms 74/ 2444 (3%)
    [ 3] 10.0-12.0 sec 3.41 MBytes 14.3 Mbits/sec 3.519 ms 0/ 2435 (0%)
    [ 3] 12.0-14.0 sec 5.65 MBytes 23.7 Mbits/sec 0.180 ms 43/ 4073 (1.1%)
    [ 3] 14.0-16.0 sec 13.4 MBytes 56.2 Mbits/sec 0.198 ms 0/ 9554 (0%)
    [ 3] 16.0-18.0 sec 6.65 MBytes 27.9 Mbits/sec 0.319 ms 0/ 4747 (0%)
    [ 3] 18.0-20.0 sec 8.92 MBytes 37.4 Mbits/sec 2.005 ms 0/ 6365 (0%)
    [ 3] 0.0-21.7 sec 79.3 MBytes 30.6 Mbits/sec 4.071 ms 171/56710 (0.3%)
    [ 3] 0.0-21.7 sec 1 datagrams received out-of-order



    On Laptop(Client):

    allgo@allgo-Vostro-3559:~$
    allgo@allgo-Vostro-3559:~$ iperf -p 5001 -c 192.168.43.1 -u -b100M -t 60 -i2
    ------------------------------------------------------------
    Client connecting to 192.168.43.1, UDP port 5001
    Sending 1470 byte datagrams
    UDP buffer size: 208 KByte (default)
    ------------------------------------------------------------
    [ 3] local 192.168.43.206 port 54819 connected with 192.168.43.1 port 5001
    [ ID] Interval Transfer Bandwidth
    [ 3] 0.0- 2.0 sec 13.4 MBytes 56.3 Mbits/sec
    [ 3] 2.0- 4.0 sec 15.0 MBytes 63.0 Mbits/sec
    [ 3] 4.0- 6.0 sec 2.80 MBytes 11.8 Mbits/sec
    [ 3] 6.0- 8.0 sec 3.54 MBytes 14.8 Mbits/sec
    [ 3] 8.0-10.0 sec 3.42 MBytes 14.3 Mbits/sec
    [ 3] 10.0-12.0 sec 3.43 MBytes 14.4 Mbits/sec
    [ 3] 12.0-14.0 sec 5.43 MBytes 22.8 Mbits/sec
    [ 3] 14.0-16.0 sec 13.7 MBytes 57.4 Mbits/sec
    [ 3] 16.0-18.0 sec 6.40 MBytes 26.8 Mbits/sec
    [ 3] 18.0-20.0 sec 9.12 MBytes 38.2 Mbits/sec
    ^C[ 3] 0.0-21.7 sec 79.5 MBytes 30.7 Mbits/sec
    [ 3] Sent 56711 datagrams
    [ 3] Server Report:
    [ 3] 0.0-21.7 sec 79.3 MBytes 30.6 Mbits/sec 4.071 ms 171/56710 (0.3%)
    [ 3] 0.0-21.7 sec 1 datagrams received out-of-order
    allgo@allgo-Vostro-3559:~$
    allgo@allgo-Vostro-3559:~$

    On Laptop with IP being '192.168.43.24':

    allgo@allgo-Vostro-3559:~$ iperf -p 5001 -c 192.168.43.24 -u -b100M -t 60 -i2
    ------------------------------------------------------------
    Client connecting to 192.168.43.24, UDP port 5001
    Sending 1470 byte datagrams
    UDP buffer size: 208 KByte (default)
    ------------------------------------------------------------
    [ 3] local 192.168.43.206 port 57355 connected with 192.168.43.24 port 5001
    [ ID] Interval Transfer Bandwidth
    [ 3] 0.0- 2.0 sec 24.0 MBytes 101 Mbits/sec
    [ 3] 2.0- 4.0 sec 24.0 MBytes 101 Mbits/sec
    [ 3] 4.0- 6.0 sec 24.0 MBytes 101 Mbits/sec
    [ 3] 6.0- 8.0 sec 24.0 MBytes 101 Mbits/sec
    [ 3] 8.0-10.0 sec 24.0 MBytes 101 Mbits/sec
    ^C[ 3] 0.0-11.4 sec 137 MBytes 101 Mbits/sec
    [ 3] Sent 97665 datagrams
    [ 3] WARNING: did not receive ack of last datagram after 10 tries.
    allgo@allgo-Vostro-3559:~$

    Please check the results and let us know what can be done to increase the TCP throughput.

    Thanks,
    Rakesh G
  • Hi Eyal,
    What are the values on your TI am57xx-evm when configured in AP mode ?

    Regards,
    Rakesh S
  • I don't have an am57xx-evm to try this myself.
    Assigning to someone that may be able to try it out.

    In the meantime, can you try it also in a shielded room, other channels? as it does seem you are able to get to the max throughput (~60MBPs) periodically.

    BR,
    Eyal
  • Hi Eyal,

    We have already tried few other channels. No better results.

    1. There are no other APs around us in 5Ghz mode. Does still trying out in shielded room and all other channels matters ?
    2. Throughput(~60Mbps) is for UDP not TCP correct ?

    We have attached all the results captured by connecting am57xx-evm with laptop instead of iPhone. Please do have a look.
    Thank you for your help. Also please let us know the results when someone tries it out with am57xx-evm.

    Thanks,
    Rakesh G
    iperf_results_laptop.txt.tar.gz

  • I can try it on our AM57x EVM in a day or two..
    Are, you using non-RT kernel or RT kernel? And, also did you make any changes to the governor being used? Can, you try with performance governor?

    Thanks
  • We are using RT kernel. We confirmed it with these lines in config file:
    ./arago-tmp-external-linaro-toolchain/work-shared/am57xx-evm/kernel-build-artifacts/.config:103:CONFIG_PREEMPT_RCU=y
    ./arago-tmp-external-linaro-toolchain/work-shared/am57xx-evm/kernel-build-artifacts/.config:558:CONFIG_PREEMPT=y
    ./arago-tmp-external-linaro-toolchain/work-shared/am57xx-evm/kernel-build-artifacts/.config:559:CONFIG_PREEMPT_RT_BASE=y
    ./arago-tmp-external-linaro-toolchain/work-shared/am57xx-evm/kernel-build-artifacts/.config:561:CONFIG_PREEMPT_LAZY=y

    And we have not done any changes with respect to governor. How to find out which governor is being used? Also how to change it to performance governor?
  • If, you are using AM57x EVM, why do you try with non RT kernel binaries with SDK4.02 release?

    software-dl.ti.com/.../am57xx-evm-linux-sdk-bin-04.02.00.09.tar.xz

    Coming to the governor - check with the sysfs entries and try setting the governor
    To view current governor,

    $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    ondemand

    To set a governor,

    $ echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

    Thanks
  • There is no such governor entry in the above mentioned path:

    root@am57xx-evm:/# cat /sys/devices/system/cpu/cpu0/
    of_node/ power/ subsystem/ topology/ uevent
  • Hari,
    As per Eyal comments, what is the throughput values when am57xx-evm is configured in AP mode ?
    Does it go beyond 12Mbps in AP mode at all ?
  • Hari,

    Can you tell us how do we set governor to performance as there is no scaling_governor present ? Do you have any other update for us ?

    Thanks,
    Rakesh G
  • Rakesh,

    Setting to performance did not improve throug put. I tried your configuration on AM57x EVM in AP mode and got similar results. We, need to verify on other devices and dig into, which component is hindering throughput.. We, will get back shortly..

    Thanks
  • Hari,

    Thank you so much for your quick reply. we are eagerly waiting for your response. Getting the required throughput is very important for our project delivery.

    Thanks,
    Rakesh G
  • Hari,


    Were you able to verify on other devices ? Do you have any update on it ?


    Thanks,

    Rakesh G

  • Rakesh,

    Sorry.. I was away.. Will get back in a day or two..

    Thanks
  • Hari,

    Do you have any update ?

    Thanks,
    Rakesh G