Extend the page fault action INI to handle following:
1) Ignore page fault event
2) Trigger SSR on page fault threshold
3) Send blob of data to userspace on page fault threshold
On pagefault wakeup event, save per symbol pagefault timestamp
and once the event count reaches configured threshold within the
configured time interval, either trigger SSR or notify userspace
with pagefault address and count based on INI configuration.
Change-Id: I0a3ece369ad0c7aac676fc91f6863e06a3f4ce8c
CRs-Fixed: 3713813
Suppose INI gDot11Mode is configured as 1 dot11mode_11a, but
the enum MLME_DOT11_MODE_ABG is defined at the last, which is
causing STA to connect in dot11mode_11ac.
So, lower dot11modes should be defined first. Change the order
of dot11mode_11abg to the initial enum value.
Change MLME dot11mode mapping to CSR dot11mode, passing to
csr_convert_mode_to_nw_type function.
Change-Id: I71972bed1b6ac25f809c980e9fff4829fae7e4ff
CRs-Fixed: 3686458
Excessive logging in beacon report request action frame, for
failure case will leads to wlan panic.
Rate limit excessive logging in error and info logging.
Change-Id: I5cac65a1f901b5f281983c23218416f1c9300be5
CRs-Fixed: 3696118
At present, num_tx_chains_11a value is updated from the last
setting of num_tx_chains_11a in dynamic_cfg. If last setting
num_tx_chains_11a is 1, new num_tx_chains[NSS_CHAINS_BAND_5GHZ]
changed to 2 by vendor command, it will not be updated to 2.
Fix by update them based on new num_tx_chains[NSS_CHAINS_BAND_5GHZ]
value and ini config.
Change-Id: Id25e8f8d0427b77c2191dfc352b5827be543a191
CRs-Fixed: 3683946
When DUT sta disconnect, bw_le_80_rx_max_nss_for_mcs_0_to_9 of 2 GHz eht
cap is set to 1, means only nss 1x1 supported for 2 GHz 40M EHT MCS9.
To fix it, don't change bw_le_80_rx_max_nss_for_mcs_0_to_9 when
disconnect, just change it during WFA case.
Change-Id: Ie96fbd77c473ac6d537517208fd799d7b648dc73
CRs-Fixed: 3670034
Host receives set cfg80211 power management config
(enable/disable power save mode) indication in any
driver state (connected / disconnected / roaming state).
In connected state, Host directly sends power save
enable/disable power save mode indication to FW.
In non-associated state driver does below steps:
1. As kernel expects return status success if host is in
the disconnected state for request then host first cache
power save mode per VDEV and return success to kernel
from sme_ps_enable_disable().
2. In next connection, Host checks cache power save mode
cached at step 1, while processing changes in IPv6/IPv4
state for the interface and sends "power save enable/disable
power save mode indication to FW accordingly.
Currently in roaming state, if host receives enable/disable
power save mode command from user space, Host sends failure
to kernel with error message "not in connected state", which
is not correct. As by this time VDEV is active and FW also
ready to honor power save enable/disable power save mode
indication, host should send indication to FW.
To fix this issue send power save enable/disable power save
mode indication to FW if host receives "set cfg80211 power
management config" in roaming state.
Change-Id: I0fea2275123840e936ddd6c0326f5e9b866de52a
CRs-Fixed: 3665639
Parse Association response frame eht cap by dot11f_unpack_ie_eht_cap
is incorrect, and eht_cap->present is false.
After connect done, driver save bss info into conn_flag and parse
eht cap by dot11f_unpack_ie_eht_cap, so eht cap present failed
again. To fix it, decode eht cap again and update the present.
When set max bandwidth and change bss rate flag, driver can get
right eht present and set correct rate flag.
Change-Id: Iea578bee6f434ac91c3858d60029c18db459fd63
CRs-Fixed: 3643347
To improve p2p connection set up performance, don't delete and re-create
p2p vdev, just update p2p device mac dynamically during UP state as
following steps:
1. Delete self peer, send WMI_PEER_DELETE_CMDID to F/W
2. Delete DP peer
3. Delete self peer from OBJ manager
4. Receive DP peer unmap event
5. Receive WMI_PEER_DELETE_RESP_EVENT, delete DP vdev
7. Send WMI_VDEV_UPDATE_MAC_ADDR_CMDID to F/W
8. Receive WMI_VDEV_UPDATE_MAC_ADDR_CONF_EVENT
9. Create DP vdev with new MAC
10. Create DP peer with new MAC
11. Send WMI_PEER_CREATE_CMDID with new MAC to F/W
12. Add new self peer to OBJ manager
To fix race condition issue that new DP vdev is created before old DP vdev
finished cdp_vdev_detach, don't create new DP vdev until
WMI_PEER_DELETE_RESP_EVENTID received and handled.
Change-Id: Ie39d385f79a1ec636b8e5fb660fa44e9623afca2
CRs-Fixed: 3658819
Add separate APIs to validate SAP, P2PGO or LL_LT_SAP
channels according to LL_LT_SAP concurrency.
Change-Id: I180796df6b312f9bbb0a8e61085ca1517cd687b5
CRs-Fixed: 3647561
hdd_set_mac_chan_width API may be invoked from connection mgr
sm with conn mgr lock. And it will acquire the sme lock when
update the sme config. This lock sequence is invalid and will
cause deadlock. Fix by move the sme config updating in
scheduler thread msg queue callback to avoid holding the
conn mgr lock.
Change-Id: I3e2634c25971e7ddc18c52f82ed118ad43659283
CRs-Fixed: 3649696
If "override_ht20_40_24g" ini is set, the host driver disables
the HT40/HE40 caps for 2.4 GHz after connection via SET IE. The
firmware uses this for roam. However, if reassoc comes from userspace
with the HT40 cap different from the initial connect, then host
does not update the IEs based on new cap. This leads to mismatch
between user configuration and firmware roam.
To fix this, modify and send the HE40/HT40 caps via SET IE for
every connect request. Reset it after disconnection to the default
self cap.
Change-Id: I58e14e8ae8e8842e1d79a0284c4240ac7d279272
CRs-Fixed: 3651600
wlan_objmgr_get_vdev_by_id_from_psoc() may return NULL vdev pointer,
add check to avoid access NULL vdev pointer.
This is to fix reported issue by static analyze.
Change-Id: I5d9619e1d0a04bbb68069dde78859a6570e97aaf
CRs-Fixed: 3654411
Add new dot11mode in MLME and update the utility functions to
derive the dot11mode based on the INI config and AP dot11 mode.
Change-Id: Ic53ab0cdd94dce75d6928270bc8bf4f8539ac96f
CRs-Fixed: 3653767
When LL_LT_SAP is running, MCC lite needs to run in the hal-phy,
since MCC lite does not support dynamic chainmask update, do not
update chainmask if LL_LT_SAP vdev is present.
Change-Id: Ia7c38fbce88f0a236d96bfc21ae3206e88d0b323
CRs-Fixed: 3653697
To avoid race between CSA and set BW, check if BW upgrade is
still required after set bandwidth command become active.
If any connection is in progress, restart the timer again.
Change-Id: I049dbcbc1d30fba8f38250b05f5f62e8c230234c
CRs-Fixed: 3652085
The MBSSID info needs to updated to the firmware during
every VDEV UP. In current implementation, the MBSSID info
is not updated after roaming. Therefore, upon vdev restart
happens, host will sends stale entries to the firmware in
the VDEV UP command.
To fix this, update the mbssid info during roaming and link
switch in the vdev and use this for the VDEV UP updates.
Change-Id: I65d9cd2ce830a4fbbfde5f20d22c4b0df97055ec
CRs-Fixed: 3640372
As per spec if Wide Bandwidth Channel Switch (id 163) and Bandwidth
Indication (id 164) sub element present in channel load request,
Host should send same sub element ids with same values as in request
in channel load response.
Change-Id: If419c1e2ac694ee5d2da301e404085bb3fc68674
CRs-Fixed: 3629125
AP can send channel width and related information via below OPIE:
1. Wide Bandwidth Channel Switch (Subelement ID 163)
2. Bandwidth Indication (Subelement ID 164)
Trigger wide band scan as per values present for above IEs present
in channel load request.
Change-Id: I013389972f0f72395488a2405e4b0dcbff39dd42
CRs-Fixed: 3629109
When AP_AP work on 5 GHz SCC channel, but then hostapd_cli disable
this band, AP_AP can't switch to channel of the other band if force
SCC is enabled.
The cause is that channel switch is one by one for each AP in
hdd_country_change_update_sap(), the first AP's new channel(within
the other band) can't pass overlap check from
sme_check_concurrent_channel_overlap() against the second AP's working
channel(5 GHz band), then cause channel switch failure.
To fix this issue, the overlap check(e.g.,for the first AP) should
skip any vdevs(e.g.,the second AP) that still work on channels on
disabled band, noting that these vdevs will also switch to the other
band later.
Change-Id: I00ee1038c56dffdc01bcf902d77d1c1365c9c64a
CRs-Fixed: 3616777
For mcc to scc switch config QDF_MCC_TO_SCC_SWITCH_WITH_FAVORITE_CHANNEL,
if GO is on 5/6 GHz, SAP is not allowed to active on 5/6 GHz, SAP should
move to 2.4 GHz, If GO is not present on 5/6 GHz, SAP needs to move to
5/6 GHz user configured frequency.
Change-Id: I4ba99460fe5656440c6010afcb0ebbc9c0f4de76
CRs-Fixed: 3624311
In current design, host validates the PMKID in the
assoc request of an SAE STA after the Peer creation
in CSR. For cases with invalid PMKID, the assoc response
with status INVALID_PMKID and the peer delete are queued
back-to-back to the firmware. In some cases, this assoc
response gets flushed out due to the peer delete cmd and
leads to discard of the assoc response frame in SAP.
To fix this, validate the PMKID before the peer creation
as part of the assoc request sanity checks.
Change-Id: I5aa71188e4482063c5a5173b9aebd54ac9891c17
CRs-Fixed: 3631253
For certain cert cases involving power save, STA is expected
to wake up only to receive DTIM beacons but Firmware is not
aware of the AP's DTIM period. Thus, Host caches the DTIM period
received from AP within the TIM IE and configures this value as
the listen interval to Firmware via existing WMI.
CRs-Fixed: 3601676
Change-Id: I23e191b00e22b9cd26344ad40f485807d81ed3d8
If "override_ht20_40_24g" ini is set, then both
connection and roaming should not happen to the
2.4 GHz BSS in 40 MHz.
Based on this ini, update the channel widthset
capability for the 40 MHz in the HT/HE/EHT cap
IEs after connection. Similarly, after disconnect
reset the capabilities back to default self cap.
Change-Id: I6f7e019f4a8f194a703b503741a57f22509a5d3d
CRs-Fixed: 3623042
Currently, if host fails to get memory for SAP 320 MHz bandwidth
update messgae eWNI_SME_SAP_CH_WIDTH_UPDATE_RSP, it doesn't post
the message to SME and the command which caused the bandwidth
update is not removed from CSR queue. No other command can be
processed in such cases and leads to command timeout errors.
Post the message and handle it in SME even if it fails to get
memory. There could be functionality failures but system would
be functional.
Change-Id: I9e4c412441c9a9db02c7883dd4f64d7d2893a43d
CRs-Fixed: 3631557
In case of wide band scan, FW sends cca_busy_subband_info
tlvs via WMI_CHAN_INFO_EVENTID, which contains value of
rx_clear_count for each 20 MHz freq space.
Fix is to updates rx_clear_count per channel to cp stats
component.
Change-Id: Iff26087da4ffa3e1147c5ffe4127e5aa078f406f
CRs-Fixed: 3626725
When multiple APs in the environment have same BSSID but
different SSID, MDIE configurations then BSS descriptor filled
by fetching the scan result with only BSSID as filter can cause
wrong BSSID data to be filled. This causes wrong MDIE to be
sent to firmware after roaming.
So filter the scan entry based on SSID and BSSID.
Fill the mobility domain to RSO config in LIM after roaming.
For initial connection, fill MDIE from assoc request.
Change-Id: Ica5c46d6fe07799f16a1a26d66aa6f8452e4c8d1
CRs-Fixed: 3615256
Channel bonding is enabled wrongly after sta disconnected for max channel
width is larger than 20 MHz even gChannelBondingMode24GHz=0.
To fix it, when restore max channel width after sta disconnected,
restore to ini gChannelBondingMode24GHz value.
Change-Id: I72cae0360bf51a2c914d1bfec069abae6a03b337
CRs-Fixed: 3618677
Add vendor configure attribute handler for
QCA_WLAN_VENDOR_ATTR_CONFIG_PEER_AMPDU_CNT, pass the user space
peer A-MPDU count configure to target through WMI_PEER_AMPDU.
Adjust input validation of wlan_hdd_cfg80211_wifi_set_rx_blocksize(),
to avoid respond with error if other command with PEER MAC input,
because PEER MAC attribute can be reused by other vendor configure
command.
Change-Id: I21b8800d12328177853ebab4715a7a5ae4195e18
CRs-Fixed: 3611765
In the MLO-MBSSID test, STA can request information of
non-Tx BSS through Tx BSS by configuring non-Tx BSS MLD ID
within the ML probe request that is invoked as part of scan
request. Add support to configure MLD ID in scan start
params to FW.
Change-Id: Iec5a144e597a7f6b9b741f279e4424f975c5115c
CRs-Fixed: 3561040
If ML STA vdev is in inactive connection table, do not get
the vdev's channel for force SCC check.
Change-Id: I206aa33461f299847b247e97ea0453186c362795
CRs-Fixed: 3609017
The STAUT should have AMSDU support enabled by default and
only be reset if user space requests for it. On contrary,
the testbed STA needs to disable AMSDU support by default.
Currently, a unit test command is being issued to FW via
reset EHT defaults that disables the global AMSDU flag in
FW and without another unit test command, AMSDU is kept
disabled. Remove the unit test command logic as sigma_dut
itself disables AMSDU through cli set command in reset
defaults. For STAUT, a user config is set to true in reset
defaults and cli set command in pre vdev start uses this
flag to enable AMSDU support by default.
Change-Id: If49cb137ac4e0354b68d8d3a1aeceae49c4863aa
CRs-Fixed: 3601076
For BTM certification cases, FW is unable to roam to
testbed AP BSS due to scoring logic. Reset the BTM
abridge flag that is used to enable FW to select
candidates based on score.
Change-Id: I29b6e1b5dea969263eb263103c6d2c10d5047f20
CRs-Fixed: 3591574
Add support to disable MCS 15 tx and rx as part of reset
EHT capabilities. Also, add support to configure full state
BA for buffer size 512.
Change-Id: I314fc7c14330166e5e1daf8a6d423ba66ed21738
CRs-Fixed: 3526185
As per the spec, the expectation is that in a given country
if the channel load is requested on a channel not present
in that country, STA should respond with incapable set in
the report.
Fix is to validate channel and op class present in channel
load request before processing channel load rrm request.
Change-Id: I6e282478cd41c9aca8f6c95c2dfde1466b678889
CRs-Fixed: 3603919
Currently, when the CAPI to set Manual BA mode is received
Host configures assoc vdev and sends it to FW, where as this
value is stored in mac context and sent to FW during vdev
start response for partner vdev. FW honors Host input during
peer create that happens before vdev start and thus, the BA
mode is not updated for partner vdev. This leads to FW
sending undesired addba request to AP. Thus, configure BA
mode to Manual on both vdevs immediately upon receiving
input from user space.
Change-Id: Id71c2e3b8fa523af94773b6346fd023784e0d85a
CRs-Fixed: 3584312
Existing code for sending set link request to FW will
get VDEV list from MLO manager and sets the VDEV's
MAC address matching userspace request to active and
non-matching as inactive. However for three link
connection this misses the third link which doesn't
have any VDEV so userspace control for this link is
not available.
Enhance the logic to allow userspace to send MAC addr
of the standby link to manage link active/inactive.
Change-Id: Iba5d976349917b1b4f7146381cb0f49218cf4ed8
CRs-Fixed: 3600291
When a concurrent STA moves to a new channel due to CSA from
peer AP, check if 320 MHz SAP needs bandwidth downgrade/upgrade
operation.
Change-Id: Id207f1c37a65c4638359eb7f2294478f13beed73
CRs-Fixed: 3601349
When a STA connect req comes up, check if any of the candidates
cause DBS/SBS with the concurrent 320 MHz SAP and downgrade the
SAP bandwidth to 160 MHz.
Also, consider to downgrade the SAP bandwidth to 160 MHz when
an ML candidate is found as ML candidates need DBS/SBS mostly.
Change-Id: Icf2c9c26bd953d58bc0702302825493c0937a699
CRs-Fixed: 3601344
Currently, 320 MHz SAP is supported only when the hardware mode
is SMM. When a new concurrency comes up, firmware may have to
configure the hw_mode to split-phy mode(DBS/SBS). Then the
requirement is to downgrade SAP to 160 MHz as split-phy mode
doesn't support 320 MHz.
As part of the downgrade process,
1. Indicate to the connected peers that SAP is going to be
downgraded to 160 MHz via ECSA frame
2. Update ECSA IE to the beacon template with count as 1
3. Indicate the final bandwidth of each peer to firmware
Add infrastructure to support these. Reuse some of the existing
APIs of NSS update and hw_mode update.
Change-Id: Ieb964ddb782a547699890a9dbbc3efdf631149eb
CRs-Fixed: 3601336
Add a sanity check for validating vdev_id in the function
sme_set_wlm_latency_level. If Invalid vdev_id is passed down
it might lead to an assert in firmware.
Change-Id: Ie410d2655a607628b0741c9efd1fbfaa00c5dc78
CRs-Fixed: 3599133
There are two APIs wlan_get_opmode_vdev_id and
wlan_get_opmode_from_vdev_id present in the host driver for the
same task.
With this change, remove the duplicate API wlan_get_opmode_vdev_id
from the host driver code.
Change-Id: I7ff45610ff18da9c002e22c5be06f1414d3835bc
CRs-Fixed: 3593560
Enable Flexible TWT when TWT feature is enable and either of
the TWT Requestor or Responder capability is enable.
Change-Id: I2f2b1c311d9aba6e09d309e83f37098175b80767
CRs-Fixed: 3422493
When memory dump config is enabled, the lim/sme state info
dump api's are invoked. These api's are also invoked after wlan
modules are stopped.
Change is to remove the assert and return if mac context is null.
Change-Id: Ie1b71bb62c490b9c79430dd997db3f09bbe6ef31
CRs-Fixed: 3579391
If a DUT accept channel load request, the STA should
response with a channel load report with channel
utilization measurement as observed by the measuring
STA.
Change-Id: Ic8faa45e24d7cd296e44828370b1b1088d46ddda
CRs-Fixed: 3580203
As per new requirement, to improve Wi-Fi Roaming behavior
DUT should support channel load request received as part
of rrm measurement.
The Channel Load request/report pair returns the channel
utilization measurement to AP as observed by the measuring
STA.
Change-Id: Idf1b5581222e1fbed3426d94edd8768234ff6a43
CRs-Fixed: 3580180