JODY-W2(88W8987) Endless WiFi Scan Good day! This is a continuation of this issue. I was able to compile mlanutl and used the tool to set httxcfg and htcapinfo. I found out that the default value of httxcfg and htcapinfo for BG is 0x61 and 0x04c00000 respectively. With the default values, httxcfg=0x61: 20/40MHz SGI and LDPC are enabled. And htcapinfo=0x04c00000: Rx STBC, 20MHz SGI and Rx LDPC are enabled. In order to disable 40MHz SGI, I tried setting httxcfg to 0x21 by issuing command "mlanutl mlan0 httxcfg 0x21 1", however when I issue "iw list", below snippet of output is shown, showing 40MHz SGI still enabled. Band 1: Capabilities: 0x177f RX LDPC HT20/HT40 SM Power Save disabled RX Greenfield RX HT20 SGI RX HT40 SGI RX STBC 3-streams HT Delayed Block Ack Max AMSDU length: 3839 bytes DSSS/CCK HT40 It seems that mlanutl commands are not properly executed. Can you please share correct commands to disable HT using mlanutl? Does values set via mlanutl tool can be verified via "iw list"? Can you also please provide instructions on how to compile the driver with 80211n/ac disabled? Regards, Elton OS Other Product: WiFi 88W8987 Re: JODY-W2(88W8987) Endless WiFi Scan Hi, @elton
Thanks for your efforts and your kindness to share us your final solution for this case.
It will be a very good reference for our future support.
Please feel free to create us new cases if you have any other questions or other concerns about our products in the future.
Wish you have a nice rest of your day!
Best regards,
Christine. Re: JODY-W2(88W8987) Endless WiFi Scan Hello @Christine_Li , We were able to fix the issue. We added below flags and recompiled wpa_supplicant、 CONFIG_HT_OVERRIDES=y CONFIG_VHT_OVERRIDES=y then added below options on wpa_supplicant.conf. ht40_intolerant=1 disable_ht40=1 disable_vht=1 Thank you for support. Regards, Elton Re: JODY-W2(88W8987) Endless WiFi Scan Hello @Christine_Li , There are 2 ways you can get mlanutl's binary: a. You can ask U-Blox to build/compile for you after they download the release package from our website, then share to you the binary. Will be a quick way for this time. b. You can directly sign NDA with us(NXP) and then apply for the secure files access of 88W8987. It will take longer time, but will be convenient for you in the future. Will ask my superior regarding this. 2. Can you also please share the link of the tool's source code so that I can compile? I am using this publicly available source code. Regards, Elton Re: JODY-W2(88W8987) Endless WiFi Scan Hi, @elton
Thanks for your reply.
Please see below for my mlanutl's version:
==========
root@imx8mnevk:~# ./mlanutl -version Invalid number of parameters! Usage: mlanutl -v (version) mlanutl [...] where ifname : wireless network interface name, such as mlanX or uapX cmd : version verext hostcmd drvdbg getdatarate getlog get_txpwrlimit getsignal signalextcfg getsignalext getsignalextv2 vhtcfg dyn_bw 11axcfg 11axcmd txratecfg httxcfg htcapinfo aggrpriotbl addbapara addbareject hssetpara mefcfg cloud_keep_alive min_ba_threshold 11dcfg 11dclrtbl addbapara addbareject addts amsduaggrctrl antcfg arpfilter assocctrl assocessid assocessid_bssid associate authtype autotdls bandcfg bcninterval bssrole cfgdata cfpcode changraph coex_rx_winsize countrycode customie deauth deepsleep delba delts dfstesting clear_nop nop_list fake_radar dfs53cfg dfs_mode dfs_cac autodfs dfs_repeater dscpmap esuppmode extcapcfg cancelscan fwmacaddr fwwakeupmethod getkey getscantable getstalist hotspotcfg hscfg mgmtfilter htstreamcfg mimoswitch httxbfcap httxbfcfg inactivityto ipaddr linkstats listeninterval macctrl memrdwr miracastcfg mgmtframectrl mgmtframetx mpactrl netmon cfg_noa cfg_opp_ps offchannel otpuserdata passphrase pb_bypass pmfcfg port_ctrl powercons pscfg psmode qconfig qoscfg qstatus rdeeprom reassoctrl regioncode cfpinfo regrdwr rejectaddbareq scancfg sdcmd52rw sdcmd53rw sdioclock setuserscan sleepparams sleeppd sysclock clocksync gettsfinfo targetschan backupchan tcpackenh tdls_idle_time tdls_channel_switch tdls_config tdls_cs_params tdls_debug tdls_disable_cs tdls_discovery tdls_link_status tdls_powermode tdls_setinfo tdls_setup tdls_stop_channel_switch tdls_teardown thermal ts_status tsf txaggrctrl txbufcfg txcontrol txpowercfg txwatchdog aggrctrl usbaggrctrl usbresume usbsuspend opermodecfg wakeupreason warmreset wmmcfg wmmparamcfg wpssession wwscfg mc_cfg mc_policy mc_cfg_ext get_sensor_temp channel_switch indrstcfg dfs_offload cwmode txrxhistogram per_pkt_cfg dot11_txrx robustcoex ctrldeauth dmcs range_ext twt_setup twt_teardown rx_abort_cfg rx_abort_cfg_ext tx_ampdu_prot_mode rate_adapt_cfg cck_desense_cfg get_chnrgpwr comparergpwr comparetrpc getcfgchanlist lpm arb dot11mc_unassoc_ftm_cfg tp_state hal_phy_cfg ips_cfg mcast_aggr_group mc_aggr_cfg getchload getuuid
root@imx8mnevk:~# ./mlanutl -v NXP mlanutl version M1.3
2. Can you also please share the link of the tool's source code so that I can compile?
==>As I mentioned before, the source code could not be shared directly on the public community and also I am not allowed to share source code directly.
There are 2 ways you can get mlanutl's binary:
a. You can ask U-Blox to build/compile for you after they download the release package from our website, then share to you the binary. Will be a quick way for this time.
b. You can directly sign NDA with us(NXP) and then apply for the secure files access of 88W8987. It will take longer time, but will be convenient for you in the future.
Request an NDA
Request secure access rights
Please let me know whether have anything I can do for you on this case.
Best regards,
Christine. Re: JODY-W2(88W8987) Endless WiFi Scan Hello @Christine_Li , I am using mlanutl version 1.3.02 and there is no "scancfg" option. root@colibri-imx6ull-15102395:~# mlanutl -v NXP mlanutl version M1.3.02 root@colibri-imx6ull-15102395:~# mlanutl Invalid number of parameters! Usage: mlanutl -v (version) mlanutl [...] where ifname : wireless network interface name, such as mlanX or uapX cmd : version verext hostcmd getdatarate getlog get_txpwrlimit vhtcfg dyn_bw 11axcfg 11axcmd txratecfg httxcfg htcapinfo aggrpriotbl addbapara addbareject hssetpara mefcfg cloud_keep_alive min_ba_threshold Can you please let me know what version of mlanutl you are using? Can you also please share the link of the tool's source code so that I can compile? Regards, Elton Re: JODY-W2(88W8987) Endless WiFi Scan Hi, @elton Thanks for your reply.
Then, would you prefer to go back to the Wi-Fi scan issue, and not continue to discuss about disable 11n or HT 40MHz issue, Am I right?
If so, can you please let me know whether you are using network manager? or you are using wpa_supplicant to connect to AP?
I tried locally with wpa_supplicant to connect to AP, and there is no endless scan on my side.
===========
root@imx8mnevk:~# wpa_supplicant -d -B -i mlan0 -c /etc/wpa_supplicant.conf -Dnl80211 wpa_supplicant v2.10 random: Trying to read entropy from /dev/random Successfully initialized wpa_supplicant Initializing interface 'mlan0' conf '/etc/wpa_supplicant.conf' driver 'nl80211' ctrl_interface 'N/A' bridge 'N/A' Configuration file '/etc/wpa_supplicant.conf' -> '/etc/wpa_supplicant.conf' Reading configuration file '/etc/wpa_supplicant.conf' ctrl_interface='/var/run/wpa_supplicant' ctrl_interface_group='0' update_config=1 Priority group 0 id=0 ssid='BES'
.......
root@imx8mnevk:~# [ 135.643858] wlan: SCAN COMPLETED: scanned AP count=7 [ 135.657662] wlan: HostMlme mlan0 send auth to bssid dc:XX:XX:XX:85:9c [ 135.666184] mlan0: [ 135.666189] wlan: HostMlme Auth received from dc:XX:XX:XX:85:9c [ 135.690507] wlan: HostMlme mlan0 Connected to bssid dc:XX:XX:XX:85:9c successfully [ 135.711612] mlan0: [ 135.711627] wlan: Send EAPOL pkt to dc:XX:XX:XX:85:9c [ 135.727907] mlan0: [ 135.727919] wlan: Send EAPOL pkt to dc:XX:XX:XX:85:9c [ 135.729002] IPv6: ADDRCONF(NETDEV_CHANGE): mlan0: link becomes ready [ 135.742076] woal_cfg80211_set_rekey_data return: gtk_rekey_offload is DISABLE
root@imx8mnevk:~# root@imx8mnevk:~# ifconfig -a eth0: flags=4099 mtu 1500 ether 00:04:9f:06:da:96 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 172 bytes 12688 (12.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 172 bytes 12688 (12.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
mlan0: flags=4163 mtu 1500 inet6 fe80::224e:f6ff:fe20:98f1 prefixlen 64 scopeid 0x20 inet6 fddc:333d:7d85:9300:224e:f6ff:fe20:98f1 prefixlen 64 scopeid 0x0 ether 20:4e:f6:20:98:f1 txqueuelen 1000 (Ethernet) RX packets 8 bytes 738 (738.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 23 bytes 3215 (3.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
root@imx8mnevk:~# udhcpc -i mlan0 udhcpc: started, v1.35.0 udhcpc: broadcasting discover udhcpc: broadcasting select for 192.168.x.xx, server 192.168.x.1 udhcpc: lease of 192.168.x.xx obtained from 192.168.x.1, lease time 86400 /etc/udhcpc.d/50default: Adding DNS 192.168.x.1 root@imx8mnevk:~# root@imx8mnevk:~#
================
And is there any influence if there is endless scan after connected to AP?
As I know, the throughput drop is expected behavior when performing scan because during scan operation, RF goes off channel for scan and this results in throughput drop.
To improve throughput results you can try below command:
./mlanutl mlan0 scancfg 0 0 2 20
The above command will reduce scan time on each channel and time gap between two scans.
Below is the details for scancfg:
scancfg
This command is used to set/get scan configuration parameters.
Usage:
mlanutl mlanX scancfg [t] [m] [p] [s] [a] [b] [c] [ext] [gap]
where the parameters:
[t]: Scan Type (0: Unchanged, 1: Active, 2: Passive, default Active)
[m]: Scan Mode (0: Unchanged, 1: BSS, 2: IBSS, 3: Any, default Any)
[p]: Scan Probes (0: Unchanged, 1-5: Number of probes per channel, default 4)
[s]: Specific Scan Time (0: Unchanged, n: Value in ms, default 110 ms, max 500 ms)
[a]: Active Scan Time (0: Unchanged, n: Value in ms, default 200 ms, max 500 ms)
[b]: Passive Scan Time (0: Unchanged, n: Value in ms, default 200 ms, max 2000 ms)
[c]: Passive to Active Scan (0: Unchanged, 1: Enable, 2: Disable, default Enable)
[ext]: Extended scan (0: Unchanged, 1: Legacy scan, 2: Extended scan, 3: Extended scan enhance)
[gap]: Time gap between two scans in milliseconds (max value 500ms)
No change if the parameter is 0 or the parameter is not provided.
Examples:
mlanutl mlan0 scancfg : Get all the current scan configuration settings
mlanutl mlan0 scancfg 1 3 : Set scan type to active and scan mode to any,
all the other scan configurations are unchanged
mlanutl mlan0 scancfg 0 1 2 200 : Set scan mode to BSS, number of probes to 2 and
specific scan time to 200 ms, all the other scan
configurations are unchanged
mlanutl mlan0 scancfg 0 0 0 0 0 0 1 : Set Passive to Active Scan to enable, all the
other scan configurations are unchanged
mlanutl mlan0 scancfg 2 0 0 0 0 0 2 : Set scan type to passive, Passive to Active
Scan to disable, all the other scan configurations
are unchanged
Please let us know if you have further queries for this issue.
Best regards,
Christine. Re: JODY-W2(88W8987) Endless WiFi Scan Hello @Christine_Li , Thanks for your response. I have analyzed this code and found out below defines. /** Max AMSDU size support */ #define HWSPEC_MAX_AMSDU_SUPP MBIT(31) /** Greenfield support */ #define HWSPEC_GREENFIELD_SUPP MBIT(29) /** HW_SPEC FwCapInfo : If FW support RSN Replay Detection */ #define ISSUPP_RSN_REPLAY_DETECTION(FwCapInfo) (FwCapInfo & MBIT(28)) /** SM Power Save enable */ #define CAPINFO_SMPS_ENABLE MBIT(27) /** RX STBC support */ #define HWSPEC_RXSTBC_SUPP MBIT(26) /** ShortGI @ 40Mhz support */ #define HWSPEC_SHORTGI40_SUPP MBIT(24) /** ShortGI @ 20Mhz support */ #define HWSPEC_SHORTGI20_SUPP MBIT(23) /** RX LDPC support */ #define HWSPEC_LDPC_SUPP MBIT(22) /** Channel width 40Mhz support */ #define HWSPEC_CHANBW40_SUPP MBIT(17) #define ISSUPP_11ACENABLED(FwCapInfo) (FwCapInfo & (MBIT(12) | MBIT(13))) #define ISSUPP_11AC2GENABLED(FwCapInfo) (FwCapInfo & MBIT(12)) #define ISSUPP_11AC5GENABLED(FwCapInfo) (FwCapInfo & MBIT(13)) #define ISSUPP_11NENABLED(FwCapInfo) (FwCapInfo & MBIT(11)) /** RadioType : Support for Band A */ #define ISSUPP_BANDA(FwCapInfo) (FwCapInfo & MBIT(10)) /** SM Power Save mode */ #define CAPINFO_SMPS_MODE MBIT(9) /** HW_SPEC FwCapInfo */ #define HWSPEC_11ACSGI80_SUPP MBIT(5) #define HWSPEC_11ACRXSTBC_SUPP MBIT(8) I tried masking those bits but it does not resolve the issue. WiFi scan issue may not be related to IEEE80211N/HT40. Regards, Elton Re: JODY-W2(88W8987) Endless WiFi Scan Hi, @elton
dev_cap_mask= This load parameter is uses to configure device features support.
Usage: dev_cap_mask=
: Represents features supported : Indicates support for 11AX : Indicates support for 6G
Example: To disable 11AX and 6G support: dev_cap_mask=0xfffcffff
Please let me know whether have any other concerns on this case.
Best regards,
Christine. Re: JODY-W2(88W8987) Endless WiFi Scan Hi, @elton
Thanks for creating new case to us, and thanks for you trial for compiling mlanutl.
Please see below for the httxcfg:
httxcfg
This command is used to configure various 11n specific configuration for transmit (such as Short GI, Channel BW and Green field support).
where is
This is a bitmap and should be used as following
Bit 15-8: Reserved set to 0
Bit 7: STBC enable/disable
Bit 6: Short GI in 40 Mhz enable/disable
Bit 5: Short GI in 20 Mhz enable/disable
Bit 4: Green field enable/disable
Bit 3-2: Reserved set to 1
Bit 1: 20/40 Mhz enable disable.
Bit 0: LDPC enable/disable
When Bit 1 is set then firmware could transmit in 20Mhz or 40Mhz based
on rate adaptation. When this bit is reset then firmware will only
transmit in 20Mhz.
Point 1:
Default value: root@imx8mnevk:~# ./mlanutl mlan0 httxcfg
HT Tx cfg:
BG band: 0x00000061==》0000 0000 0000 0110 0001 ==>It means in default, the Bit 1: 20/40 Mhz is disable, so in default, it will only transmit in 20MHz.
A band: 0x00000063
Point 2:
Please confirm, you want to disable 40MHz or you want to disable 40MHz Short GI.
Point 3:
The mlanutl commands are used only for TX, not for RX.
I see your paste is: RX HT40 SGI
RX is depending on the AP side, could not controlled by our Wi-Fi station side.
Point 4:
To confirm whether set it with mlanutl successfully, you can check it with below 2 methods. And personally I recommend method 1.
1. During connection with AP, capture sniffer logs and check the association request frame, like below, I checked it on my local side:
2. Ping command with long data, then check with: "iw mlan0 station dump"
Point 5:
Can you also please provide instructions on how to compile the driver with 80211n/ac disabled?
==> I know for AP mode, you can configure whether support 11n or 11ac through below parameters in hostapd.conf:
ieee80211n=0/1 ieee80211ac=0/1
But for Station mode, I don't think it is a good idea that disable 11n/11ac because it usually follows up the configurations of AP side. Otherwise, it will always throw out connection errors because of AP is working in 11n or 11ac mode.
Please let me know whether have any other concerns on this case.
Best regards,
Christine. Re: JODY-W2(88W8987) Endless WiFi Scan Hello All, It is stated on this link that 5GHz modules can be disabled by using dev_cap_mask=0xffffdbff. Can anyone explain which bit corresponds to which parameter? Can 80211n be disabled using this driver parameter? Regards, Elton
View full article