Wlan firmware updates "max tx pwr allowed" to host in vdev start response
event and roam sync indication event. Host uses this value to update
power constraint ie in assoc request and TPC query response.
Host updates "max tx pwr allowed" value to firmware after association
completion, so that firmware uses the same max power to transmit mgmt and
data frames.
Change-Id: Ifd8d47fd830bd02bdde2633c22ea82820adf73a0
CRs-Fixed: 2652690
Replacing all occurences of mac_context->lteCoexAntShare
with mac_context->mlme_cfg->gen.as_enabled
Change-Id: I8c86d1d082446e9dc63fc35d478b2e59768dae95
CRs-Fixed: 2665255
dual_mac_feature_disable isn't used in the module.
Hence, Removed from mac_context and csr_config_param.
Change-Id: If85fdbc93b8bfafd6dea694efc5847aa4d5abc42
CRs-Fixed: 2666569
When set_pmksa command is received from userspace, the internal
pmk table is updated with the new bssid entry and the pmk is saved
to the session. Additionally this update triggers an RSO update
command to the firmware which causes the use of stale pmk for
single pmkid case, in which the BSS capability of SAE single pmk
will be known only after parsing the beacon/probe received in the
roam synch indication.
So donot send RSO update on receiving set pmksa command.
Change-Id: I25419fbc3061ab963ccf3228b3681c83773a7963
CRs-Fixed: 2659055
Currently the driver uses the reason code
POLICY_MGR_UPDATE_REASON_CHANNEL_SWITCH for
chanenl switch for P2P-CLI which is same
reason code used for hw mode change in case
of SAP, so after the hw mode is changed the
VDEV-SM does call the callback of SAP CSA
also.
Fix is to use a different reason code for
SAP CSA.
Change-Id: I16b0521d5a21391e642f29e86037f9eb4fd2af62
CRs-Fixed: 2663915
Currently if station is connected in 11AX mode, AP's HE
IE is not getting updated in the cache information of the
station.
Add support to update HE operation element in the connection
info structure of the station context.
Change-Id: I214d6cec22525788e9ce21a7d832263148989715
CRs-Fixed: 2656005
Power stats is moved from debugfs to sysfs, and hence add the feature
flag WLAN_POWER_DEBUG such that this feature can be compiled out for
low memory foot print drivers.
Change-Id: Ic395f393580fcd59faa4e4676f67a39ff37bdd1a
CRs-Fixed: 2665089
SAP turn on is getting stuck for longer time due to vdev is getting
deleted logically before response for sme_soc_set_dual_mac_config comes.
To resolve this, add wait in wlan_hdd_update_dbs_scan_and_fw_mode_config
to confirm sme_soc_set_dual_mac_config completion.
Change-Id: I9408713fcf828d24688ecc45290d8c90a8d54c22
CRs-Fixed: 2663509
Currently for SAP case on the disconnection with the
client, host driver sends get stats command for the
disconnected peer to the FW and proceeds with the peer
deletion. There is a race condition where if the peer
gets deleted in the object manager before FW sends the
requested stats in that case host driver drops the
response from the FW.
To resolve above issue send the get stats request command
in serialization before peer delete command gets serialized
which will ensure that get stats response is processed
before peer delete in the object manager.
Change-Id: I1aa4be329a06e261222c0f9dccc36e08bd6b137a
CRs-Fixed: 2656842
Add INI - gActionOUIReconnAssocTimeout to configure driver
to do:
1. Driver will not send deauth to the AP after association timeout.
2. Reconnect to same BSS again if the last association failure
is association response timeout.
Default="00E04C 00 01"
The change fixes IOT issue with certain AP which doesn't
response first association request frame sometime. But the AP
would response second association request.
Change-Id: I9f7b8d14aaaaa97f08856c8b62e49b145db3ac91
CRs-Fixed: 2653877
Currently, active commands are not being flushed during vdev delete.
This will cause issue when vdev is logically being deleted before
response comes for this active comand.
To resolve this, flush vdev active commands also along with pending
commands.
Change-Id: Ie31936132a389685ff4ff55b43ccbb4102e65830
CRs-Fixed: 2664624
Power stats is moved from debugfs to sysfs as part of commit
I10df003fe8f79d35d0758b56d971f4973d27750b and hence remove
the remaining references of WLAN_POWER_DEBUGFS.
Change-Id: Iba29387ab93740595560e068e4bd4ede8efafbc9
CRs-Fixed: 2661078
In case eCsrForcedDeauthSta from NB is completed, eWNI_SME_DEAUTH_RSP
will remove all pending eSmeCommandWmStatusChange type commands from
serialization, this will cause other peers which deauth request is
from SB are not deleted from LIM and remain in deleting progress.
Fix is to don't remove pending eSmeCommandWmStatusChange type
commands when NB disconnect complete from eWNI_SME_DEAUTH_RSP.
Change-Id: I8e2248463fb7fd97343d411d46b1cae08dc4cb25
CRs-Fixed: 2652486
The driver doesn't ageout connected BSS from rrm scan
result after the scan default ageout time. This results
in connected AP information sent in beacon report request
in table mode always.
Fill the ageout threshold value as the default scan age out
time in the rrm scan filter.
Change-Id: I8f9b0457bd93e2d9b51a772bdbdfb01dcd429c56
CRs-Fixed: 2650915
Currently the driver allows roaming to the BSSID
which it is already connected, which can lead to
many unexpected behaviour, for eg. if the SAP
to which the DUT is connected turns off, then the
DUT would try to roam to other BSSID of the same
SSID, and in case the SAP turns on back in time,
then the DUT would re-associate to the same BSSID.
Now if the subnet may change, and since the DHCP
does not happen again in roaming, it would then
lead to NUD failure.
Fix is to introduce an ini to allow/disallow
roaming to the same BSSID.
Change-Id: Ibd04fcd7384c0987db5bb6dae1a26ee077456290
CRs-Fixed: 2634860
When STA switch channel the freq0 and freq1 are channel number
and not frequency in hdd_chan_change_notify. Thus the freq0 and
freq1 validation fails in nl80211_send_chandef and thus the
channel change is not notified to supplicant.
Fix this by filling freq instead of channel in freq0 and freq1 in
hdd_chan_change_notify.
Change-Id: I03d3a2afcbb812e6da7ec2be9887dd185e754a44
CRs-Fixed: 2655979
When beacon report request is received from AP in table mode,
sme_rrm_issue_scan_req() is called recursively till scan results
in all channels for that country code is reached. In 6GHz, the
number of channels are high and recursively calling
sme_rrm_issue_scan_req for that much channels causes stack
corruption.
Remove recursive call to the function sme_rrm_issue_scan_req.
Instead, loop all the frequencies in the list and send
scan results on those channels.
Change-Id: Id75d00cfc98fcf218c6b1f85da3270e210697403
CRs-Fixed: 2654375
In csr_nonscan_pending_ll_next/csr_nonscan_pending_ll_peek_head and
csr_nonscan_active_ll_peek_head all commands umac_cmd is mapped
to tSmeCmd. This can lead to invalid pointer access as umac_cmd
can be of different type and does not always map to tSmeCmd.
Thus return the cmds only with source WLAN_UMAC_COMP_MLME, which are
initiated by sme and has tSmeCmd mapped to umac_cmd.
Change-Id: I73e75ef5ea754f4ef548a1cb9b3de2d0e566adf6
CRs-Fixed: 2655838
If start bss fail in logs it indicate start BSS timeout, so
fix the logs to indicate proper logs.
Change-Id: Ie470550a1606a1cddd6577f0945386e8c1a5cc13
CRs-Fixed: 2655836
Currently there is no provision to configure OCL mode in FW during
driver bootup.
To enable this configuration add a new INI configuration parameter
gOclCfg.
Change-Id: I87c9131f5395c394f745e0170f0d9b3d1571d030
CRs-Fixed: 2644312
Regulatory function in qcacmn has new name so update
qcacld to have correct call.
Change-Id: I95e7c5148471ded68f97a7ac56d5eb4a770e82f2
CRs-fixed: 2650575
When multiple measurement requests are received in a single beacon
report request, multiple iterative scans are triggered for each
request for the frequency list provided in the request. This results
in free of rrm context global frequency list by the second
request rrm scan in the iter measurement timer start failure path
and was accessed by the scan done callback of the 1st measurement
request.
Add null check for rrm context frequency list and also if the
timer is already running, send measurement done indication for
that request.
Change-Id: I149ba47872095228595cd52535fb76c422eefba7
CRs-Fixed: 2648618
Remove max_tx_power from wlan_mlme_power struct
and ini_tx_power from lim_max_tx_pwr_attr struct
and all their instances.
Change-Id: I982a15b71b64d368b623128e04f09a8f3bf4f5ec
CRs-Fixed: 2645922
During set channel request for monitor mode vdev start is triggered.
The vdev operation is completed only when vdev up is send to FW.
Wlan driver does not wait for completion of the vdev up operation
and after posting set channel request context is returned to supplicant.
Supplicant sends vdev stop operation for montior mode which results in
vdev up command sending to FW after vdev stop.
Fix, is to wait for completion of vdev up operation, then return the
context to supplicant.
change-ID: I33d7f9f85848b74d1206cff145e27ca2d96580a0
CRs-Fixed: 2627239
Introduce an INI "ap_tx_pwr_scoring" to indicate firmware about ap tx
power weightage so that firmware can use ap tx power weightage to
calculate candidate AP's score.
Change-Id: I8831c571162f044f4ae204ef0edfc59942f36837
CRs-Fixed: 2647115
Currently QDF_MAX_NUM_CHAN/POLICY_MGR_MAX_CHANNEL_LIST aren't aligned with
NUM_CHANNELS, these unalignment may cause some potential OOB access.
So replace QDF_MAX_NUM_CHAN/POLICY_MGR_MAX_CHANNEL_LIST with NUM_CHANNELS
to keep unified.
Change-Id: Ib6c81a3979f2fd29ba1ec678f018a6704b599385
CRs-Fixed: 2644066
Host driver sets broadcast keys followed by unicast keys for
FILS connection. This results in the data packet sent before
unicast set key and peer pn was reset. Sending broadcast keys
first will allow firmware to enable WAL_PEER_ALLOW_DATA and
data tx could start without unicast keys being set. Due
to this TX packet will go unencrypted and TX will fail without
ACK from peer AP, peer pn will be set to 2, after this unicast
key got set and this resets the peer pn to 1. And when next
frame TX was done, pn check failed and firmware assert occured.
Set the unicast keys to firmware first followed by the broadcast
keys for FILS case.
Change-Id: Ia498709ac524e95b831cc7ccdd17e6fc7ae0b130
CRs-Fixed: 2633632
Presently vdev delete is sent to firmware 1st and the object manager
vdev delete is deleted after all the references are released.
With this change the vdev delete is sent to firmware when all the
references are released and the vdev delete is sent to firmware via
the object manager vdev delete notification.
Change-Id: I67bea0d2b2a0d2d9eb4602e5d0b8bbdcafdd4d26
CRs-Fixed: 2618278
For SAE connection, if sta has a PMKID cached from previous
full SAE authentication and uses it for the open authentication
with the AP and if the AP rejects the association with invalid
pmkid (53), then the STA tries association with next AP. This
could result in association with a low score candidate.
Retry association with same AP, with full SAE authentication,
if AP rejects association with reason code invalid pmkid. Limit
the retry count to 1 per AP.
Change-Id: I5b26822ff9bbeea51de1b80852d5d325d28bf17f
CRs-Fixed: 2625987
Currently when association reject with reason code 53(invalid
pmkid) is received from the AP, then we delete the pmksa entry
for that AP from csr_session, but with converged crypto component,
the entry needs to be deleted from the crypto pmk table.
Else when associating to the same AP again, driver will use the
stale pmk for the AP again.
Delete the pmk entry from crypto pmk table when association
reject is received from AP with reason code 53.
Change-Id: I54f4a7ee7e02d35e0560bfad9fe2e3466aaa361d
CRs-Fixed: 2636570
A unknown symbol sme_get_roam_scan_ch() error will happen when
probing wlan module without the enablement of FEATURE_WLAN_ESE.
Move the definition of sme_get_roam_scan_ch() out of the body
of FEATURE_WLAN_ESE.
Change-Id: Ie39133778b6e569d40ee05bffff5c27343f1507a
CRs-Fixed: 2634396
Currenlty the occupied channel list is not updated with the new
channel to which STA gets connected after CSA. This leads to non
updation of the scan_list in firmware with the new occupied
channel. So firmware goes for a full scan instead of partial scan
in case of roam scan trigger.
To mitigate this issue, update the occupied channel list with the
new channel after CSA, which will lead to updation of scan list in
firmware.
Change-Id: I21e9bdd3474ecd23e49aabf27c2a9978b158c2ce
CRs-Fixed: 2632943
Glitches seen after the STA disconnection because of the roam scan
triggered on a heartbeat failure ( beacon miss ).STA does a partial
scan followed by full scan causing the DUT to go off-channel from
the STA and P2P home channel, causing the music BLIP.
Fix is to disable roaming irrespective of data traffic present
or not on P2P interface and enabled again once P2P is disconnected.
Change-Id: I5ddf946adbfbe99d5b20c23c46b2b4ac0bfac47f
CRs-Fixed: 2632939
In WEP SAP mode, the ping between SAP and client is failed
because in the SAP side the firmware has no unicast key
for peer mac address. The default address in key context is
SAP bssid.
Update the peer mac address before set key to firmware for
the WEP peer.
Change-Id: Ia5ba4612d0cc0f9900c72baf1c37bd278b526389
CRs-Fixed: 2599289
Introduce ini for roaming_triggers to enable/disable specific
roaming triggers. This will be the master ini to control roaming
triggers. If this ini is set to zero, roaming will not be enabled
on the sta interface unless its enabled via vendor command.
A new roaming trigger - Sta kickout roaming is introduced in
firmware, include this bit support also in the ini.
The value of this ini will be sent over the wmi command
WMI_ROAM_ENABLE_DISABLE_TRIGGER_REASON_CMDID during RSO start.
Reset this value to 0 during RSO stop if RSO stop is due to
disconnect or roam synch failure.
Change-Id: I02f207cdde9d8fb68cd91fab07572baa9e7ac50d
CRs-Fixed: 2631712
For FILS connection with FILS auth algo, the keys are derived
at the driver and set key is done in the join response path.
In this path, if the security profile is not WEP, set key is
not done. So for FILS case set broadcast keys returns failure
and unicast keys are also not set.
Check the add_key flag also before returning error in set-keys.
Also store the keys in crypto component so that it can be used
at target-if layer to send the unicast/broadcast keys to firmware.
Change-Id: Ia0feb0c9d213ffe50e42b3e67b7074b19898918e
CRs-Fixed: 2625992
For packet capture mode, record the channel number on
which STA vdev is operating on.
Change-Id: Id52536b5b238dc1e4fe4c612a651c6fe8ddc17d3
CRs-Fixed: 2627713
Restore default RSO configs in host driver on disconnect, as vdev state
in the firmware is VDEV_STOP no need to update default RSO configs
in firmware.
Change-Id: I061dbfcc5e3fb5350a7fe240d8b1405e1548d7d5
CRs-fixed: 2627107
Improve logging in driver by avoiding unnecessary error prints
and combining logs.
Change-Id: Ibab9067aa1bce992f36fca22a5aed88e8d85ba25
CRs-Fixed: 2627549
For FILS pmksa cache, the pmksa add/del/query is based on SSID
and cache id.
1. Add SSID/Cache ID to pmksa cache using pmksa API.
2. Set PMK to csr session if PMK is present, PMK will be sent
to FW in RSO command.
Change-Id: I88a3e70a50565300ebab9723b439ee7674788b55
CRs-Fixed: 2621846
Clear sae_single_pmk info while processing del/flush pmk command
from supplicant, if required.
Change-Id: Idd974822ef0426461cd9971e54d8244d64b246b5
CRs-Fixed: 2616036
Requirement is to allow station to just keep the
first PMK1 and PMKID1 which gets derived while first
connection and re-use it for roaming to other AP
which has some specific VSIE.
To support this feature, STA should Set new flag in 11i
params during RSO start/update when initial connection is
completed based on the VSIE in AP beacon/probe response
frame. This flag will allow fw to roam to AP(s) which has
VSIE with single PMK.
Update PMK info in RSO update command with sae_single_pmk
info if roaming is completed with AP(s) contains VSIE.
Change-Id: I6ef7a5581a380b0db323199fbda9407a5e792f4e
CRs-Fixed: 2616031