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
Currently, assoc response is cached when initial connection
happens on assoc link and same is used to initiate connect
on other links. Similarly, reassoc rsp is cached in case of
OWE roaming to continue connect on other links post EAPOL
handshake.
When DUT roams to 3-link AP and if link switch happens
post roaming, link switch always picks the cached assoc rsp as
it's available. But link-switch after roaming is supposed to
pick reassoc response.
Free the cached assoc response to avoid picking it post
roaming.
Change-Id: I0f316dc9259c597012e18e7c7af5e454df6651d1
CRs-Fixed: 3646555
Driver tries next candidate during connection if current
candidate fails in the join procedure. For each candidate
the number of partner links for that candidate is updated in
connect req params, but this won't update if the candidate
is not ML capable or is SLO.
If the previous candidate is MLO (MLMR or MLSR) which failed
in join and if the next candidate is SLO then the number of
partner links is not updated and will be non-zero for SLO
candidate which is invalid. This leads to going for partner
VDEV connect but with different MLD address than assoc VDEV
which is undesirable.
Always update the number of partner links on each candidate.
Change-Id: Id8147572706ee6a3055e68672aad04eaed4cf43a
CRs-Fixed: 3648252
Based on new requirement update policy manager PCL tables for
below LL_LT_SAP concurrencies:
1. LL_LT_SAP + STA + SAP
2. LL_LT_SAP + SAP + SAP
3. LL_LT_SAP + STA + P2P GO
4. LL_LT_SAP + P2P GO + SAP
5. LL_LT_SAP + P2P GO + P2P GO
6. LL_LT_SAP + STA + P2P CLIENT
7. LL_LT_SAP + P2P GO + P2P CLIENT
8. LL_LT_SAP + STA + STA
9. LL_LT_SAP + P2P_CLIENT + SAP
Change-Id: I8a01b88fc89dc18d1740ccf5fe0f8751e2980535
CRs-Fixed: 3647137
For dump_station command, host driver does not take the PCIe
reference before it sends the command over qmi, which may result
in unexpected behaviour at FW if runtime suspend happens in the
processing of this command as runtime suspend will put PCIe also
in suspend.
In current scenario there is a race condition where host receives
dump_stats command when runtime suspend is in progress and it sends
this command to FW over qmi without taking PCIe reference.
Since host does not take the PCIe reference in this case, PCIe also
goes into suspend state which results in unexpected behavior in FW.
Change-Id: I54689d2c00f6a58fec0040953e4ba1ac734805c6
CRs-Fixed: 3651489
When STA is connected with some AP and that AP has send
RRM request to connected STA. The connected STA will start
RRM scan. During RRM scan, STA may miss beacon while doing
scan as it goes to foreign channel for scan and then comes
back to home channel. Now if LL_LT_SAP is present, it will
do scan in TWT interval. It will be overhead to handle
LL_LT_SAP + STA + Scan in firmware.
For now, reject rrm request if LL_LT_SAP is present.
Enable back later if required
Change-Id: I010b2b3289d80bfd9b0b6340fc6dda17044b06b0
CRs-Fixed: 3647800
Host semd wmi as following order after CSA received/vdev restart and
before vdev up, old puncture bitmap mismatched with new phy mode lead to
F/W assert.
1. WMI PEER PHY MODE
2. WMI PEER PUNCTURE BITMAP and BW
To fix it, swap order as following
1. WMI PEER PUNCTURE BITMAP and BW
2. WMI PEER PHY MODE
Change-Id: I1ae3e5093cb45520be0f50ffb31fa7386201340b
CRs-Fixed: 3650797
When SAE roaming happens, the preauth event BSSID is used to
trigger external authentication to userspace and frame exchange
also happens with this BSSID. But while caching the info
corresponding to this frames, the current connected AP bssid is
used. This causes failure while fetching the cached entries.
Use correct BSSID to fetch the cached SAE authentication frames
for MLO SAE roaming. Enhance the error logs in some cases.
Update the driver authentication logs also to print the auth info.
Change-Id: Idd21f40cf0802879e83c10d91956662733b74666
CRs-Fixed: 3644706
Currently host driver does not set freq_list to memzero in
ll_lt_sap_get_valid_freq api which may contain some invalid values
which leads to unexpected issues in channel selection.
To address this issue, initialize freq_list with memzero
in ll_lt_sap_get_valid_freq API.
Change-Id: I2f0e7fef6c5ece88b2714b4a90bc169c8bbb75cc
CRs-Fixed: 3647070
In the driver, the default value for signal_average is defined
in the macro WLAN_HDD_TGT_NOISE_FLOOR_DBM. Update its value from
-96dBm to -128dBm.
Change-Id: Ifd1d7233e36b1a74e5432fc9e20ce0f6a7799357
CRs-Fixed: 3650550
In api wlan_connectivity_sta_info_event(),and in
connectivity_mgmt_event() the band information, link self mac
address is populated from the MLO mgr link info structure. But
MLO mgr link info is updated when we receive unicast probe
request from the AP. But we don't send unicast probe request to
MBSSID non-TX BSS and we could receive beacon from TX BSSID. This
causes the advertised links band information not getting logged
for the assoc request frame connectivity log and STA information
event doesn't have the self link addresses.
Populate MLO mgr link info before sending Join confirm during
MBSSID connect for non-TX BSSID. Introduce a new api
lim_populate_partner_link_chan_info_for_mbssid(), to populate
the link info from join request.
Change-Id: I6148a8a9b9bf15de65e7640f39456dade2e8987f
CRs-Fixed: 3647725
Root cause:
1. When connect to 2 link AP1 completed, will save assoc rsp in
mlo_dev_ctx->sta_ctx->assoc_rsp by mlo_sta_link_connect_notify.
2. When roam to another 3 link AP2 completed, reassoc rsp isn’t saved in
mlo_dev_ctx->sta_ctx->assoc_rsp.
3. When link switch happens and need gen link assoc rsp, still use
mlo_get_assoc_rsp to get mlo_dev_ctx->sta_ctx->assoc_rsp as AP2’s
reassoc rsp, so failed to find right per-sta profile in assoc_rsp.
To fix it, when roam to AP2 completed, save reassoc rsp in
mlo_dev_ctx->sta_ctx->assoc_rsp by mlo_roam_copy_reassoc_rsp without
checking whether AUTH/EAPOL finished. replace old initial connected AP’s
assoc rsp.
Change-Id: I6873ba090dd85ad919541d10acbdd6599fc9675c
CRs-Fixed: 3650574
Issue is Host always sends btm_offload bitmap as 1 via RSO
STOP command during disconnection. If host configures BTM
enable with flag value as 1 during disconnection and try to
enable back with flag value 0x1c1, FW will never honor it
since previous configuration is not disabled while
disconnection.
FW expects BTM offload enable only as part of supplicant
disabled-roam and btm_offload bitmap to be cleared (= 0)
in RSO STOP during disconnection.
Fix is to set btm_offload bitmap as 1 only while processing
RSO STOP with roam reason REASON_SUPPLICANT_DISABLED_ROAMING.
CRs-Fixed: 3650261
Change-Id: Idc23497331b4b49e485e5d1d3ab5e46207680829
Currently host driver does not wait for uptree operations in dsc
before it starts vdev transitios, which may lead to memory domain
mismatch.
For example, if modules are closed because of idle shutdown, memory
domain in host driver will be init domain and at that time if some
psoc ops starts, memory allocated as part of this ops will be
allocated in init domain and if at the same time if vdev up starts
which will trigger the vdev trans and will start the modules and change
the memory domain to active domain, now when the memory allocated as
part of psoc operation is released on psoc ops completion will be
released in the active domain which leads the memory domain mismatch.
In current issue, host driver closes the modules because of idle
shutdown and changes the memory domain to init domain, now host driver
receives get features vendor command and starts psoc operation which
allocates memory in init domain, while this psoc operation is still in
progress, host driver receives interface create which starts vdev
operation and changes the memory domain to active domain as part of
start modules. Now, when ongoing psoc operation completes, it
releases the momory in active domain, which results in memory
domain mismatch.
To fix this issue, before starting vdev transition, add wait for uptree
operations in dsc tree, which includes wait for psoc operations and
driver operations as this issue is possible with the driver operations
as well.
Change-Id: I2cf395ebb94cafca728926a6617fdc34a073755a
CRs-Fixed: 3621530
Add NULL check for pm_ctx pointer to avoid NULL pointer deference
in function policy_mgr_pcl_modification_for_sap().
Change-Id: Ibc32e5dace8eddd1b88775af6ce76ae62fc76a1e
CRs-Fixed: 3626754
For the MLO SAP setup connection with legacy STA case,
the DA of the 2/4 or 4/4 EAPOL is possible with bssid
address(link address) not adapter address(mld address),
and we should not drop them inside driver.
So add this change to allow EAPOL to be delivered with
DA is equal to link address or mld address.
Change-Id: I629d24190a4fdef2ef6b3eddd76a345735ec0ff7
CRs-Fixed: 3650022
Currently, host driver sends NDP END ALL commands to the target
and target responses with NDP_HOST_UPDATE and NDP_END_IND. But
due to some reason if host driver does not receive NDP_END_IND
then there is timeout in driver and it starts the NDP cleanup.
While NDP cleanup, driver does not decrement the NDP session
in the PCL. Although driver destroy NDI but there is entry
remaining in the PCL. Hence, it rejects the NAN Enable command.
So, to fix this, while NDP cleanup, decrement the NDP sessions
and change the NDI state to disconnected in the failure cases
also and increase the timeout for NDP_END_ALL request.
Change-Id: I3c5f8f49adced528cb7199831e4d4c13a690dde3
CRs-Fixed: 3648611
Issue 1: Host sends T2LM status event twice during an
association.
Requirement is: Host should send T2LM status event to
upper layer for an association only once if T2LM elements
does not get change in between.
Currently host sends T2LM status event
(wlan_connectivity_t2lm_status_event) to upper layer in
below cases:
1. When host receives t2lm action frame
2. Upon Re/Association Response frame reception or roam
synch indication with reassociation response frame is
received
3. While processing connects complete indication
As there is no chance to get change T2LM status in between
association response frame and connect complete indication.
So, no need to send T2LM status event while processing
assoc/reassoc response frame as by this time host doesn't
updates T2LM IE information buffer.
Issue 2: Currently host sends STA MLD MAC address via ASSOC
RESP connectivity logging event.
As per requirement, host should send MLD MAC address of MLD
AP via ASSOC RESP connectivity logging event and mld address
should not present in event in case of non-MLD AP connection.
Fix is to send MLD MAC address of MLD AP instead of STA MLD
MAC address via ASSOC RESP connectivity logging event.
Change-Id: I57a5875775b0960ab3b307f1486bd9e6ff4dd9ac
CRs-Fixed: 3647437
Currently host doesn't send set tpc power command to
fw for roam case, hence STA tx power remains same
even if new connection frequency has different tx
power values.
To address this issue send set tpc power command to
fw while processing roam sync indication.
Change-Id: Ief565760085b0628e6ad2fe40086e7514b9baec5
CRs-Fixed: 3635222
Excessive error logs in per packet path may flood the system with logs.
Avoid this by rate limiting excessive logs in DP component per packet
path.
Change-Id: I1c06db6e22eb5e234cee19b8c9968c8444792e6c
CRs-Fixed: 3648926
The SNS test may input QCA_WLAN_VENDOR_ATTR_CONFIG_EMLSR_MODE_SWITCH
vendor command randomly. The force active/inactive bitmap may
be conflict with existing force bitmap state. And eMLSR can only
enter with no concurrent connection present.
Add validation to avoid entering eMLSR in concurrent connection
present and bitmap confliction.
Change-Id: Ia1ca46faeca8ae1e32e5e8f585affff2870c5bf8
CRs-Fixed: 3644746
If the get link state fails due to error from the firmware, the
osif memory is not freed, fix this by freeing the memory in the error
condition.
CRs-Fixed: 3644905
Change-Id: If4e629c0eaff9a898ff01a336fbd10cad13d55d6
Add log to print the interface combinations that are registered to
the userspace.
Change-Id: I0aa55cadf85150d5af3eacb9e71fa928a65f00d8
CRs-Fixed: 3645036
Some buggy 2 GHz AP indicates 40 MHz in VHT OP (|PRI_CH-CCFS0| is 2), but
indicates 20 MHz in HT info, associate as 20 MHz by HT info, when handle
beacon update, try to upgrade to 40 MHz by VHT OP, sec_chan_offset
isn't filled but used, lim_is_csa_channel_allowed return false,
disconnect will happen.
To fix it, when handle beacon update, honor ht info than vht op when
conflict happens as 2G VHT not included in formal spec.
this logic existed in sch_bcn_update_opmode_change already, so remove
it from lim_process_beacon_eht.
Use CCFS0 instead of sec_chan_offset in csa param to calculate
sec_ch_2g_freq in lim_is_csa_channel_allowed.
Change-Id: Ic7e66b040f4234157237a2f3cb449ccaf202823e
CRs-Fixed: 3627496
This change resolves following static analysis issues:
1. Using uint32_t and enumeration as operands to logical AND
operator (&&) is not allowed by the static analyzer tool.
Convert them to bool and use.
2. Overwriting the variable previous value before using it.
3. sizeof(key_alloc_buf[k]) returns 4/8 bytes as key_alloc_buf[k]
contains pointer. Use sizeof(*key_alloc_buf[k]) to get right
size of the object and use it to mem_zero the buffer.
Change-Id: I6faa5b3ff6847786a7f6ac525ccb0e5f60dbd020
CRs-Fixed: 3646512
Today projects should all support all band channel switch.
SAP option to send CSA or ECSA should not depend on whether operating
on channel 2.4 GHz, but considering if client support Extended Channel
Switch and whether 6 GHz channel involved as currently do.
Enable CONFIG_CHANNEL_HOPPING_ALL_BANDS in default configure and
remove checking 2.4 GHz channel condition.
Change-Id: Ibd73ca2115f8f2183292f3ca82d29be4590951a1
CRs-Fixed: 3642763
User space need roam AP BSSID info to analyse roam issue.
Driver cache AP BSSID during roam and update to user space when
get roam stats info by QCA_WLAN_VENDOR_ATTR_ROAM_STATS_INFO.
Change the roam frame number from 6 to 54, means update all
roam failed and successful frame to user space.
Change-Id: I22b3d917e7e0b4f322142ab359fa135cd588d8f7
CRs-Fixed: 3611826
When update channel width of current vdev, need update puncture bitmap
to avoid mismatch.
Change-Id: I0487b251524421611cee2ec33f036a037efa42ea
CRs-Fixed: 3646904
Add NULL check for twt_psoc_obj pointer to avoid NULL pointer
deference in function wlan_twt_get_pmo_allowed().
Change-Id: I1e5c24b843845c89e8779c5e69433c41c2311829
CRs-Fixed: 3626932
During roaming, if wpa_supplicant disable roaming by driver command
SETROAMMODE or SETFASTROAM, roam sync will fail.
To fix it, Don't allow to disable roaming by driver command SETROAMMODE
or SETFASTROAM during roaming, same as QCA_NL80211_VENDOR_SUBCMD_ROAMING.
Change-Id: I48efdb91abffdd7e4879f777be9c53ccab0126f7
CRs-Fixed: 3642788
SAP restart happens when a concurrent STA comes up in the
same band. Currently, the new bw is calculated based on channel
supported max bw. If SAP moves from one 6 GHz channel to another
6 GHz channel, the new bw would be calculated as 320 MHz even if
the current SAP operating bw is 160 MHz. But SAP bw should be
limited to current operating bw as it might have got downgraded
to 160 MHz as part of sap_bw_update algo.
Considered current operating bw when SAP restart happens as part
of sap_bw_update.
Change-Id: If310b0ad9f914b438ae3c1968ca8f1ee26d57589
CRs-Fixed: 3637263
Disable puncture in US LPI mode per FCC request.
If bad FCC AP is detected, send WMI_VDEV_PARAM_CHWIDTH_WITH_NOTIFY with
reduced bw after setkey is done.
Also add the same bad FCC AP detection logic in HDD where bw increase req
from SS framework is handled.
When handle beacon update, also FCC AP detection logic to avoid wrong
channel switch.
If the AP removes or reduces puncturing pattern in new beacon, send
WMI_VDEV_PARAM_CHWIDTH_WITH_NOTIFY with increased bw.
For roaming case, after roaming, host will receive new beacon with new
bpcc, same as beacon update, use the same bad FCC AP detection logic and
send WMI_VDEV_PARAM_CHWIDTH_WITH_NOTIFY with updted bw right away or after
setkey is done (in case of hybrid roaming like OWE).
Change-Id: I6e85de879575d5c0a1960527f9018b4b33bf18d6
CRs-Fixed: 3631634