MLD address is mandatory for link VDEV connect request or
else the partner link will fail during candidate fetch from
scan DB because of MLD address mismatch.
For MLO OWE roaming, link VDEV connection starts after
completion of EAPOL-HS, and here MLD address is not filled
leading to link VDEV connect failure.
Use connect response to fill MLD address in link VDEV
connect for MLO OWE roaming
Change-Id: I9eae3b7ba3619a9ce62603efd0590aabce9c70f3
CRs-Fixed: 3715021
Currently, HS_20_AP param of cm_ext_obj->rso_config is set
to true when STA connects to a HS-2.0 AP. This is to disable
btm_offload as per HS-2.0 cert requirements.
But this flag is not cleared even when STA disconnects from
that AP and this disables btm_offload for next connections
as well even for non-HS-2.0 APs.
So, reset the flag as part of connect start to avoid this.
Change-Id: I3763544ecca0e4628b0c78633364fe70fd9b3094
CRs-Fixed: 3712758
FW sends "Center Frequency Index" as new center frequency.
via mlo sta standby csa event WMI_CSA_HANDLING_EVENTID.
Currently host uses value of Center Frequency Index (CFI)
directly to update center frequency for all links to
"mlo_link_info" structure. Due to this host maintains a
wrong value of center frequency throughout of connection
which leads to failure in calculation of bonded channel
in case of 6 GHz and 320 MHz connection.
Fix is to update center frequency in "mlo_link_info"
structure for all require link(s) as per CFI coming via
mlo sta standby csa event.
Change-Id: I73c919aa52ad2eaa822ff5d070223a2d383a0da7
CRs-Fixed: 3709824
Host tried to associate to AP, 6 GHz link is selected as
the assoc link and in the RNR there are two partner links 5 GHz, 2.4 GHz.
Only 6 GHz/2.4 GHz are beaconing and 5 GHz is not beaconing.
STA sent the ML-Probe request on 6 GHz link requesting the full profile
for the 5 GHz and 2.4 GHz links but AP responded with only one partner
link 2.4 GHz, from this we generated 2.4 GHz and added to scan cache,
AP didn't respond with 5 GHz link in per-sta.
STA sent the assoc request over 3-links and AP accepted the assoc,
and association is successful over 3-link and the same is intimated
to the firmware that 3link association is successful.
But while sending the connection information to the kernel 5 GHz link
is not found resulting in HDD/Kernel not being aware of the 5 GHz link.
Fix :- Use assoc response from the ML AP to generate ML probe resp
for the partner links to add to scan DB so that partner link
VDEV will have candidate to start connection.
Change-Id: I30176e58d9b02e7ed275b1c926cd1e119b66f8f3
CRs-Fixed: 3686809
Incase of Firmware crash during the bootup sequence of idle restart
the platform driver calls pld_uevent to indicate the firmware_down
and once the firmware comes back up idle restart callback is invoked
rather than shutdown/re_init. So in this case post idle_restart
the recovery inprogress flag which is set during the fw_down is not
reset, which results in blocking all the north bound operations.
To fix this scenario reset the recovery inprogress flag once
idle_restart is complete.
CRs-Fixed: 3709598
Change-Id: I9aa3e22be7fccc6baffc8fe5d4cdfd64b022bee0
When firmware roams to 2 link AP and sends roam synch key event,
then the pairwise keys are still copied to key_entries for all
the three links in extract_roam_synch_key_event_tlv(). But
since 3rd link is not valid, the pairwise key memory allocated
is not freed resulting in memory leak.
So free the allocated redundant memory for invalid link pairwise
key after roaming.
CRs-Fixed: 3697540
Change-Id: Idfdb53c918d8e684e6171b5e0917e722a2fc605a
This reverts change-Id I7ab2ade0f01ad5035f7b156ded7eb7af7c826b9e.
For CR-3698932, FW to make a change to program MLD address in addition to
link address for ROC request on MLO STA. for ROC scan req host will set
SCAN_FLAG_EXT_FILTER_PUBLIC_ACTION_FRAME.
Host to bring back logic (ROC on BSS channel) added in CR3069810 by
reverting CR3366671.
FW to make a change as replacement fix to CR3366671: allow ROC if requested
channel is same as ULL STA (active link in MLO case) BSS channel when scan
is suppressed due to ULL or other reason.
CRs-Fixed: 3704271
Change-Id: I5914bbd132ebfd9a7b1a852913fb16cdfb1fd8f7
Currently whenever the userspace is trying to reset the previously
configured max mlo links for association, set wifi config command
with "SET_NUM_ALLOWED_MLO_LINK 0" is issued, this always
resets the max mlo value to the ini default value which is 2
rather than defaulting to the firmware/ini intersected value.
Fix is to default to the firmware/ini intersected value rather than
the default value.
CRs-Fixed: 3707990
Change-Id: Iaa7cbe32613102ccffbcf92fcb7ef0a39f96a705
Currently on HO failure host posts disconnect with priority
set in serialization queue before dequeuing the dummy roam
command from serialization, as a result for 2 link ML STA
case when HO failure is received, assoc VDEV disconnect gets
priority over partner link VDEV in the serialization
queue. When assoc VDEV disconnect is complete, host updates this
info to userspace and userspace issues dynamic mac address
update command. While processing this command the DP assoc VDEV
is first detached then re attached. There is possibility of
race where link VDEV disconnect starts in parallel, as DP link
VDEV has the reference of DP assoc VDEV, in order to release the
reference it looks up for the DP assoc VDEV , but as part of mac
address update if DP assoc VDEV is detached and reattachment is
pending then the DP link VDEV doesn't get the DP assoc VDEV and
reference release fails.
To address this issue don't prioritize disconnect for
HO Fail case.
Change-Id: I74c7bce851423226d3aac2750fddd5e6c7e34fd1
CRs-Fixed: 3697528
The config CONFIG_CFG80211_MLD_AP_STA_CONNECT_UPSTREAM_SUPPORT
is need for backward compatibility of legacy STA connection
to OWE SAP.
Therefore enable the above config for MSL targets.
Change-Id: I43df2d72d657d9c9bb5bc4335daca3bc61b4d2ba
CRs-Fixed: 3692713
Add more validation for vendor command force active link bitmap:
1.If force inactive num is present due to MCC link(DBS RD) or
concurrency with legacy intf, don't allow force active if
left inactive link number doesn't meet concurrency requirement.
2.If force inactive bitmap is present due to link removal or
concurrency with legacy intf, don't allow force active if
it is conflict with existing concurrency requirement.
Change-Id: Ic7507c1797189c079f0032a39819e15467bd6bf3
CRs-Fixed: 3701323
Currently the dp_link address is provided to CDP vdev
as a part of vdev register. Also, as per the vdev deletion
sequence, it is possible that dp_link can be destroyed
before CDP vdev is detached. This can lead to use-after-free
scenario when CDP vdev uses the osif_vdev handle (which is
the dp_link handle).
In order to fix this, do not free the dp_link till the CDP
vdev has been detached.
Change-Id: Ie5a1140a0d256b6115fa62e30e6bfd61d1dfc898
CRs-Fixed: 3696641
Peer state could be queried from both fast path and
slow path. Change separates this call and allows log
print from slow path call.
Change-Id: I888b67224752182b792e0165bd5cbacbb7e5f293
CRs-Fixed: 3691146
After received WoW ACK from FW, there should be some RX packets
coming and IRQ delayed, if these packets are not got processed,
FW UMAC will crash. Change adds an explicit check and abort suspend
if rings are not empty.
Change-Id: Ifbd0bfdbc564fb0c02eda7d13756d82966d88549
CRs-Fixed: 3693641
Optimize Ml link state updates to reduce frequent communication from
firmware, preventing unnecessary runtime resume and minimizing power
penalties.
This change is to introduce cached ML link state data, ensuring
efficient communication until the expiration of ML link state cache.
CRs-Fixed: 3650673
Change-Id: I3fb742ed18fa7e364f25fa9ed10092d3a372391b
Add necessary changes for deprecated kernel APIs and other changes
in kernel code in order to compile on LTS 6.5 kernel.
Change-Id: I55175fd0f3a4fe1a00b7682bfceeb705397090a0
CRs-Fixed: 3663879
This commit adds the following change to fix the compilation error
observed with upstream kernel:
1) Include <linux/qcom-iommu-util.h> based on ANDROID_COMMON_KERNEL macro.
2) cpuidle_governor_latency_req API is not exported in upstream
kernel, so protect its usage based on ANDROID_COMMON_KERNEL macro.
Change-Id: I60fc8d331dbbd1595dc9a095464b2baea9b4e4d5
CRs-Fixed: 3681640
Currently, host driver is sending peer delete for VDEV 1
to the fw during disconnection and receiving BA frame on
VDEV 0 , resulting in sending MGMT frame to firmware leading
to crash, As anchor link migration will not happen during disconnection.
This addresses the issue of firmware crash caused by inadvertent
transmission of management frame during disconnection.
CRs-Fixed: 3685886
Change-Id: I336cd2783f8071cd9426a1585d7e1d0aa189a242
Send the OEM INI configuration of EHT/MLO WPA2 security bitmap
to FW in roam params so that FW can roam to APs allowed by OEMs.
Change-Id: I502d9d2601343f2d781e33c5a4fcf78df037a854
CRs-Fixed: 3698002
Introduce INI to allow OEM vendor to configure driver
to connect to various EHT/MLO configuration APs which
are not allowed by default.
The vendor has to specify which APs to be allowed to
connect in EHT/MLO as a bitmap.
The list of configuration allowed are:
1) Connect to WPA2-PSK APs without PMF in EHT only
2) Connect to WPA2-PSK APs without PMF in MLO
3) Connect to WPA2-PSK APs with PMF in EHT only
4) Connect to WPA2-PSK APs with PMF in MLO
5) Connect to WPA2-SAE APs without H2E in EHT only
6) Connect to WPA2-SAE APs without H2E in MLO
Vendors may chose to connect in 802.11be without MLO
and to facilitate such configuration, the following
API is enhanced to take additional argument on whether
the given candidate can allow MLO or only EHT.
API: wlan_cm_is_eht_allowed_for_current_security()
Change-Id: I3ea1cc0b2c7ba96d1b25aba7bc851773edf27bd8
CRs-Fixed: 3693810
The AKM can be different for each link in an MLO and during
candidate and links selection for connection, driver should
eliminate the partner links from assoc request which are not
having atleast one of advertised AKMs that is not overlapping
with assoc link's AKM used for authentication.
Check during ML probe response whether the partner link's
AKMs meet this requirement. If not clear the partner link's
information in such case.
Change-Id: If8bf59ef2445284d333476a667f96b372d825d7d
CRs-Fixed: 3693811
Rate limit the netif queue control logs to avoid excessive prints
in host driver logs.
Change-Id: Ia2ac240310a9b440304c9dc7fdc9fbdb626e2c3f
CRs-Fixed: 3696365
In lim_gen_link_specific_probe_resp_from_assoc_resp() API the
stack variable status can result in returning uninitialized
value.
Initialize the variable on declaration to avoid unexpected
behavior.
Change-Id: I47ef404979f49211e4d511d02646b51e47b003f1
CRs-Fixed: 3698062
Few non-TxMBSSID APs may not respond to ML probe req and driver
can't add latest scan entry for the partner links from ML probe
resp and if beacons from partner links are not received for a
duration enough to flush out the scan entry of that link then
connection of partner VDEV will fail with no candidates found.
Use assoc response from the MBSSID AP to generate ML probe resp
for the partner links to add to scan DB so that partner link
VDEV will have candidate to start connection.
Following are the conditions for this logic:
- Candidate is a non-TxBSSID in an MBSSID set
- Connection is for more than single link (MLSR/MLMR)
- Scan entry for partner link is not found in scan DB
Change-Id: If97475878d61d986988a6e97e693b194518dc192
CRs-Fixed: 3679519
Link_vdev might be used uninitialized when goto end before
mlo_get_vdev_by_link_id().
Change-Id: I56ff8620ead97f9f2992e9af52f4130f4194ae4d
CRs-Fixed: 3698100