Send HT ie's to FW in AUTO, 11N, 11AC and 11AX modes.
Send VHT ie's to FW in AUTO, 11C, and 11AX modes.
Send HE ie's to FW in AUTO and 11AX modes.
Change-Id: I0ed7b0108593ee20540d4e5da2c1461a4a15e8fc
CRs-Fixed: 2748761
Enable packetdump_timer related operations only when
following conditions are met:
1. WLAN_LOGGING_SOCK_SVC_ENABLE is defined.
2. FEATURE_PKTLOG is defined.
3. REMOVE_PKT_LOG is not defined.
CRs-Fixed: 2747430
Change-Id: I47575ff184345884c47fe91922236bb4a3db420b
Initialize chan_id with 0 in struct wifi_pos_ch_info since it
is obsoleted by channel frequency.
Change-Id: I8228ffc0cce33dcaaa73c29cca5760ff2dbfd8fd
CRs-Fixed: 2749395
If wma_send_msg_high_priority failed to send msg, msg body is freed,
can't access later.
Move wma_delete_sta_req_sta_mode and log to avoid use after free.
Duplicate MLME_IS_ROAM_SYNCH_IN_PROGRESS is called in 3 functions in
same stack, clean up it.
Change-Id: I28b7cc9f12902aefa37bf1345c94ec6f0b581297
CRs-Fixed: 2748407
As per requirement, send a value of an INI "roam_score_delta" to FW
through WMI_ROAM_ENABLE_DISABLE_TRIGGER_REASON_CMDID.
Change-Id: I9a2087f83c2eb95338d440dc901bd8aa246f7e5f
CRs-Fixed: 2740552
Since sme_ps_enable_auto_ps_timer will be called in
different scenarios, and there is error level output
if trying to start it when it's already started.
To avoid the useless error log, check the state
before starting this timer.
CRs-Fixed: 2747427
Change-Id: If119da266a991b6b5990ad3077e41c2bba11a798
On some cases, dp_rx_thread can not handle nbufs in time,
then a large number of packets are pending in
rx_thread->nbuf_queue, which run out of system memory at
last and failed to malloc new buffers for refill buffer ring,
fw crash is encountered. To avoid this, drop RX packets when
the pending number becomes large.
Change-Id: Ie4e001dc584821cf68253aa3a15a5fd72394c736
CRs-Fixed: 2737181
Enable NS offload only when IPv6 address is added. No need to
call it when deleting IPv6 address and ifdown.
Change-Id: I5eb282d1deb1bc101871fa0952ac37796eb16db0
CRs-Fixed: 2747574
Print BTM BSS termination timeout value and BTM MBO assoc
retry timeout value coming from FW through
wmi_roam_trigger_reason_tlv_param tlv.
Print Blacklist reason, Source of adding AP to BL, timestamp
which indicates the time when AP added to blacklist and
Original timeout value in milliseconds when AP added to BL
coming from FW through wmi_roam_ap_info_tlv_param.
Change-Id: Iea5b8c136f83841d679b9ad06721bb0c9349b46a
CRs-Fixed: 2744250
Currently driver sets the NOL state of the channels to false
on every regulatory updated, which indicates the channel is
not in NOL. Which may lead to some issues where the channel
is actually in NOL but host treats it as non-NOL channel.
Ideally NOL list should be maintained throughout the driver
lifetime and across the regulatory changes.
To address this issue add a logic to not update the NOL state
of the channels whenever the regulatory update is received.
CRs-Fixed: 2744916
Change-Id: If96b22ab29a60a2aa752bbf01aaae46fc37362eb
Currently only STA and SAP support PMKSA cache, and return
EOPNOTSUPP for other modes.
Change-Id: Ic8969ffd58815c4f3e2e5e286521421c38eb7f56
CRs-Fixed: 2747485
vdev mlme chan info isn't updated after LFR3 roaming, so
wlan_hdd_cfg80211_get_channel get old center_freq1 from vdev mlme,
center_freq1 isn't same as center_freq for 20M channel,
cfg80211_chandef_valid return false.
Change-Id: I4037f80627d207bdf9ba60cd9c3b7be82bad81e8
CRs-Fixed: 2746246
Enable PM QoS support for 5.x kernel by adopting dev PM QoS APIs to
request device structures for CPUs and then requesting QoS on those CPU
devices.
Change-Id: I9c7565b44a72145e11178fe360f413ff578142cf
CRs-Fixed: 2734025
For 6ghz AP with open security,the STA join req was not going through
due to security check added from CR2715086.
Fix is to move the rmf enabled check inside lim_is_6g_allowed_sec().
Change-Id: I32fb0de34fdf05063dee5f28aac164b1dfcaea5e
CRs-Fixed: 2746745
Currently mac trace msg rx function is passing module
id as a second argument to mac trace function instead of
message id.
As mac trace expects message id as an argument, pass message
id to the mac trace function as message id.
CRs-Fixed: 2719737
Change-Id: I9fa1611d6095975241a01325b798c24ea654df3e
After SAP switches the channel, policy manager needs to check if
the host needs to change HW mode. SAP state machine updates channel
change event to hdd to indicate SAP channel switch. Hence move logic
to change HW mode from start bss success event to channel change
event case in sap event callback.
Problem scenario:
1. DUT is in Single MAC mode by default.
2. SAP is up on Channel-1. So SAP is on MAC-0.
3. Host sets Policy Mgr Hw mode = DBS.
4. STA comes up on Channel-36. As host is in DBS mode, STA came up
on MAC-1.
5. SAP does CSA to Channel-36 (STA’s channel). So SAP moves from
MAC-1 to MAC-0.
6. Host sets Policy Mgr HW mode = Single MAC (As both VDEVs are on
same band).
7. Now, SAP does CSA to Channel-11. As Policy Manager Hw mode is still
Single MAC, SAP is still on MAC-0. So now STA (Channel-36) & SAP
(Channel-1) are in MAC-0 doing MCC.
Fix:
After SAP switches channel, policy manager checks and changes HW mode
change in hdd sap event callback.
Change-Id: If7964057592d85a11dd77197c889a4ed77ed039a
CRs-Fixed: 2719810
After roaming, FW updates host by roam sync indication. Host parses
the reassoc request in roam sync indication to update RSN params of
vdev crypto.
Change-Id: I9638a77150e81ea911e95d294c58d605871630a0
CRs-Fixed: 2746470
The last parameter of stop_roaming_callback is currently an
unsigned int, which does not match the function that is assigned
to this pointer, which has enum wlan_cm_rso_control_requestor.
Update the function pointer to have the correct parameter.
Change-Id: I2761293e6d87e9fcf9586d198a6e60f25ca2b51e
CRs-fixed: 2745188
Send RSN caps value as in supplicant to firmware instead of
intersection value.
Change-Id: If300836a89329325d906c88dcf06835ad767aa85
CRs-Fixed: 2746357
For qca6750, register hif shutdown notifier to update the
firmware recovery state in case of SSR
Change-Id: Ie6d6e9c909df292c62f89612c08b583321703cfc
CRs-Fixed: 2688921
When rx data stall happens due to ring refill failure
check for refill debt count.
CRS-Fixed: 2740233
Change-Id: Ib88074f0e7ed9a64b522a64ff669af87626ce1da
Enable logging feature which helps to check rx ring refill failure.
Currently rx ring refill count is updated same time from multiple
places without protection, so use atomic variable for refill count.
CRS-Fixed: 2740225
Change-Id: Icd88d351cb15d0f18edf0b986e4de95dbe4e6989
Add connection manager changes to send roam scan offload init
deinit. Add new enum roam_offload_init_flags to fill the roam
init/deinit flags, 4-way handshake offload, bmiss skip full scan
flags at connection manager instead of getting the ini and filling
at target if.
Change-Id: I558e868efd341b508d3df76c8d6ab90eac512432
CRs-Fixed: 2745585
When dcs happened for three times in five minutes, then do
restart(start/stop) SAP operation, when SAP is started again,
dcs may happen again quickly, if total four times dcs happened
in five minutes, dcs_disable_timer will be started due to dcs
happened frequency control policy, it will disable wlan
interference detection for 30 minutes and dcs interference
detection won't work for 30 minutes, it's unreasonable. After
SAP restart, dcs happened times should be calculated from zero.
Fix is to reset im stats and freq ctrl params when stop ap.
Change-Id: I0322a268a031b677a4e263cd6c5c6c0627315719
CRs-Fixed: 2738099
Current implementation uses wlan_reg_set_channel_params_for_freq API to
get operating channel information. But this API provides maximum possible
bw for an existing channel, which is not connected.From get_channel
callback, kernel expects information of the connected channel. This is
causing kernel to trigger disconnect STA after 1 minute.
To resolve this, update channel information from the object manger
which will contain connected channel information.
Change-Id: Ibd718003b4defc0e607b5b06abf86479913db538
CRs-Fixed: 2719246
Currently, the INI param wlanLoggingToConsole is used to enable
or disable WLAN logging to console. It will enable/disable console
logs for all log levels i.e. FATAL/ERROR/WARN/INFO. There is no
provision to enable/disable console logs for specific log level.
To address this, change wlanLoggingToConsole INI as bitmap with each
bit representing a log level. Enable/disable console logs based on
this bitmap.
Change-Id: I139ed15e37eb27fcfedcae70d78344e9f978f837
CRs-Fixed: 2734699
Enhance BLM infra to include source,
reason for blacklist, original timeout,
received time for better debug.
Change-Id: Ia705a967a08412824063275f5073c338dabde539
CRs-Fixed: 2744402
In an IOT scenario, client is VHT capable and is carrying
VHT IE in assoc-req frame while our SAP is configured as
HT only.
Key points here are the phymode and vht_flag populated in
WMI_PEER_ASSOC_CMDID.
phymode is set with SAP's own capability taken into considertion
while vht_flag is not. This leads to FW TX data using VHT data
rates.
Fix is to properly set htCapable and vhtCapable with SAP's own
capability taken into considertion.
Change-Id: I7493e90aa744665569093d3a67714c1224d010a0
CRs-Fixed: 2740102
Function hdd_update_wiphy_he_cap() was added to populate 11ax
related HE phy capabilities into the wiphy structure, but it
was wrongly enclosed by the 6GHz related conditional macros.
Enable the above function for compilation when 11ax is
supported or when kernel 4.19 or later is used.
NOTE: The kernel side support for HE phy capability was
introduced by:
commit <c4cbaf7973a794839af080f13748335976cf3f3f>
cfg80211: Add support for HE
in kernel 4.19, and should be back-ported if any
older kernel intends to support 11ax.
Change-Id: I6fe303ce381528be4246bf4761f6483a2f82995f
CRs-Fixed: 2731627
Module is saved in specified memory location when loading. In some
third platform, after rmmod/insmod wlan.ko for a while, wlan.ko may
fail to load due to memory fragmentation.
Split wlan.ko into wlan_resident.ko and wlan.ko. Keep wlan_resident.ko
in kernel all the while and trigger insmod/rmmod only on wlan.ko.
wlan_resident.ko contains all the module realization while wlan.ko
only contains module init/exit.
Change-Id: Iaeb6d810293cc000de8d6ec1df5cd985cef0c317
CRs-Fixed: 2727941
Print info related to WTC BTM roaming coming via
wmi_roam_trigger_reason_tlv_param.
Print timestamp, which indicates the time when btm response is sent
to AP, coming via wmi_roam_btm_response_info_tlv_param to HOST.
Change-Id: I2c408527739e1e2831015dd7b959ab17299abf6b
CRs-Fixed: 2740597
Dynamic rx aggregation feature depends on the context
id which is obtained from the packet context block.
This context id is invalid when this feature is not
enabled, and hence can lead to out of array access/write
leading to memory corruption.
Fix this issue by not using the context id when the dynamic
rx aggregation feature is not enabled.
Change-Id: Ie551217409b0f5aa2f704f9c617949e0d42a74d0
CRs-Fixed: 2742653
In scenarios where p2p is going to be the first connection,
while performing group negotiation, pass up the allowed non-pcl
channels with valid weight so that supplicant can include these
channels as well during negotiation.
Passing interface mode to policy_mgr_get_valid_chan_weights and
populating the channel list based on policy_mgr_is_concurrency_allowed
api for the given mode and assign WEIGHT_OF_NON_PCL_CHANNELS for all
allowed channels.
Change-Id: I8ff08163e6490642f9c2ebd9ca08f1275a2bb1b8
CRs-Fixed: 2734756
During the init sequnce host and firmware exchange the capability
messages, if there is any timeout driver currently induces the fatal
to debug the issues.
If the reason for the timeout is beacaue is because of firmware is
already recovering gracefully return resulting in probe failure.
Change-Id: I487aeae23db37a0ad2d991bae113b221e19a439a
CRs-Fixed: 2742638
If it is LFR2.0 roaming and BTM trigger, original procedure is always
stopping roaming scan with reason REASON_OS_REQUESTED_ROAMING_NOW,
After roaming stop configured, it will check the stop reason and post
eWNI_SME_ROAM_SCAN_OFFLOAD_RSP to invoke host handover to new AP.
Currently the roaming scan logic is changed, if roaming scan not in
enabled state, it will not invoke roaming scan stop, so host handover
cannot invoke when BTM.
And even roaming scan was enabled, the stop reason was override to
REASON_SME_ISSUED in csr_post_rso_stop(), also cannot invoke handover.
Fix it by check the stop reason against REASON_OS_REQUESTED_ROAMING_NOW,
which indicate it is LFR2.0 reassociation invoked by supplicant.
Change-Id: I39a84d06b9c696179da1b854985a23b874a399c5
CRs-Fixed: 2737888
Set the user power save configuration setting in NL power save
command handler.
Change-Id: I8f4d1955071af08a5c0511a4c01c46d79e70e1b0
CRs-Fixed: 2743237
AGO/AP is started and beaconing, but the hostapd_cli status cmd still
show "dfs". This will happen when the STA connected on DFS
channel and AGO/AP is starting on same DFS channel.
By design the AGO/AP CAC is skipped due to STA+SAP DFS concurrency.
If we skip CAC timer, we will need to indicate the CAC event
even though driver doesn't perform CAC, otherwise hostapd will
stuck in "DFS" state.
Change-Id: I7961d0b976fd84fc1f29449d98eb150d1463a92f
CRs-Fixed: 2733624
It will enable periodic capture of tsf and qtime pair.
The qtime will be used as reference for determining
instantaneous tsf.
The 'cat tsf’ command to fetch tsf will print the tsf
at that instant as well along with qtime and host time.
CRs-Fixed: 2736030
Change-Id: I11eb70d4ae710ef2bf50ebee708801fa67d0396c
Issue: Currently host supports WLAN_AKM_SUITE_FT_8021X_SHA384,
RSN_AUTH_KEY_MGMT_CCKM and RSN_AUTH_KEY_MGMT_OSEN AKM
in sta mode but doesn't advertise these akm suites which
may cause issue for FT_8021X_SHA384, RSN_AUTH_KEY_MGMT_CCKM
and RSN_AUTH_KEY_MGMT_OSEN supported connection.
Fix: update wiphy->iftype_akm_suites and advertise missing akm
suites.
Change-Id: I43762c38e15746f50f897a6026b1b96fd571ec4d
CRs-Fixed: 2713183
- Limit the timeout value of the BLM entry if it has big comeback
value and allow connection to that BSSID.
- Fix the BLM entry time stamp boundary checks.
Change-Id: I07bf7b1fce1c1e8d349c4fc0a9b0fed07f237197
CRs-Fixed: 2741689
Possible use of uninitialized Variable "report" in
rrm_process_beacon_req.
Fix is to initialize "report" pointer to NULL,
before use.
Change-Id: I1dcbec60b0028d52046ce28836df83a04e2ed830
CRs-Fixed: 2734078
During idle shutdown(T1 Thread), Driver sends the PDEV
suspend command to FW. If ACK is not received, driver initiates
the work for self recovery. As a part of self recovery(T2 thread)
driver allocates the memory and sends the force fw hang cmd and
wait for the event.
T1 thread continues and stop all the modules and check for mem leaks.
Since t2 thread is not completed and free the memory, the crash
happens as a part of mem leak check.
Fix this race condition by cancelling and flushing the recovery work
in cds close.
CRs-Fixed: 2730021
Change-Id: Ieffff621e0838b341531c5b7feda1277ee4f70fd
In wma_get_trigger_detail_str() driver prints the roam trigger
detail for Low rssi and Periodic scan triggers, the RSSI value of
the current AP is the value before roam scan is triggered. But
the firmware considers the rssi of the current AP after roam scan
is complete to calculate the next RSSI threshold. So there could
be mismatch in the current rssi value and next rssi threshold
when roam_info->rssi_trig_data.threshold is used to print the
current AP rssi.
Use roam_info->current_rssi to print the current connected AP
rssi in the roam trigger logging.
Change-Id: Ib154bb3cbdfe13dbcdd8c8830cdafb6daefa34b5
CRs-Fixed: 2739346