Grafico dei commit

20520 Commit

Autore SHA1 Messaggio Data
Amit Mehta
4d9cda5abb qcacmn: Fix invalid osif_vdev issue
Currently as part of TDLS connection if TLDS connection is formed
on secondary vdev, osif_vdev of secondary vdev is updated with
osif_vdev of primary vdev.
Due to osif_vdev update, during vdev delete 1st vdev will call
API to free osif_vdev. When 2nd vdev try to access the osif_vdev
it will result in invalid pointer access.

As current change was done to handle case where osif_vdev
for MLO connection used to point to 2 different interfaces
and where secondary interface used to point to NULL/dummy netdev.
As per latest change osif_vdev will point to per vdev dp_link
which for MLO connection will have single interface. So osif_vdev
update is not required anymore.

So, to fix invalid/stale pointer issue remove osif_vdev update for
TDLS connection.

CRs-Fixed: 3814466
Change-Id: Icac13d88411ca572c9d5823a6bd2d3d5b1ba632f
2024-05-24 00:18:04 -07:00
Ananya Gupta
00e159df45 qcacmn: Retrieve monitor flags params from dp_soc
Include CDP_MONITOR_FLAG to get monitor mode flags from
SOC structure.

Change-Id: I67992abcbb64e4f24cf42c57557d501330d3c3f2
CRs-Fixed: 3809485
2024-05-21 09:32:39 -07:00
Vinod Kumar Pirla
572ebb7dca qcacmn: Force disconnect on VDEV repurpose failure
Initiate disconnect if VDEV repurpose fails for any reason
and the VDEV moves to disconnected state (not connected).

Change-Id: Ie6421f2430fc109b4f10c22f98c3dbf3909bb103
CRs-Fixed: 3797171
2024-05-20 00:41:10 -07:00
Yeshwanth Sriram Guntuka
1051fdbb29 qcacmn: Update first_msdu_payload once per status nbuf
first_msdu_payload is updated for every WIFIRX_HEADER_E
TLV received in the status nbuf and this could result
in incorrect offset into the nbuf for the first MSDU
if the PPDU has multiple MPDUs. Also, the size variable
used is 8 bit for the calculation of offset into the nbuf
for the frame which could result in possible overflow.

Fix is to update first_msdu_payload only for the first
WIFIRX_HEADER_E TLV entry for a PPDU and increase the
width of size variable to avoid possible integer overflow.

Change-Id: Ic12cb11328fc1414bd7a68fa941fa0ef764c8b1f
CRs-Fixed: 3788496
2024-05-20 00:40:46 -07:00
Deeksha Gupta
a341ed26d8 qcacmn: Move wlan_mlo_t2lm_register_link_update_notify_handler() under WIN
Register TTLM notify API()
wlan_mlo_t2lm_register_link_update_notify_handler()
only for WIN.
For MCC, call wlan_register_t2lm_link_update_notify_handler()
to register the MCC handlers to receive link update
notification.

CRs-Fixed: 3764848
Change-Id: Iadf06a0879213d84753f2114b6c5fd4cfa1b8618
2024-05-17 00:18:00 -07:00
Chaithanya Garrepalli
7e67cbbf58 qcacmn: Fix null pointer de-ref in LT replenish
In dp_rx_buffers_lt_replenish_simple pass desc_list
and tail pointers correctly to dp_rx_buffers_replenish.
To avoid NULL pointer dereference of desc_list

Change-Id: Ic94c93ddf7ef6343afafc78a70d5634c70fa8bc4
CRs-Fixed: 3665302
2024-05-16 06:45:43 -07:00
Abhinav Kumar
67fa3a718c qcacmn: Support single PMK feature for AKM SAE_EXT_KEY
If host founds below all conditions are true:
1. Connected AP sends CCX IE in beacon/probe response
2. single PMK feature enabled via ini
   "sae_single_pmk_feature_enabled"
3. And current connection is SAE with AKM type
   WLAN_CRYPTO_KEY_MGMT_SAE_EXT_KEY or
   WLAN_CRYPTO_KEY_MGMT_SAE

Then host should mark connected AP supports
"single PMK feature" and update same to FW via RSO
command.

Change-Id: I696da4d2ca929e72ee5cff087a1411b492b03ce3
CRs-Fixed: 3803070
2024-05-15 00:46:27 -07:00
Yu Tian
349b952c45 qcacmn: Add MSDU length for the first RX fragment buffer
When fragment buffer received in REO2SW, MSDU length only valid
in the last fragment, need to copy that value to first fragment
for following process.

Change-Id: Ib3fbc07b11662fc161402befbb8396519fcebd33
CRs-Fixed: 3790059
2024-05-14 19:36:53 -07:00
Balaji Pothunoori
16c7f39e21 qcacmn: initialize structure parameters before use
Currently bool values are not initialized and results
in unexpected values for bool variables,
Hence this change is to initialize structure to NULL
before use.

Change-Id: I096ca0d3cb86083c2f57abaa429535ff76154fbd
CRs-Fixed: 3800969
2024-05-14 05:05:49 -07:00
Surya Prakash Sivaraj
836d95ed6f qcacmn: Allow firmware to auto detect tx bssid
In the case of of 5 GHz + non-tx 6 GHz MLO connection, the scan entry
generated from the ML-probe might not carry MBSSID information of the
non-tx partner. The RNR of the assoc link will also not be inherited.
Therefore, the mbssid info is not generated for this non-tx 6 GHz scan
entry. In such cases, if there is a vdev restart, host driver sends zero
mac address in trans bssid, leading to issues with connection.

To fix this:
1. Look up the RNR db for the 6 GHz link, and determine if the bss param
corresponding to the bssid is non-tx MBSSID.
2. If it is a non-tx MBSSID and there is no mbssid info in the scan cache,
then configure the tx-bssid as broadcast mac.
3. This allows the firmware to auto-detect the tx bssid from the upcoming
beacons.
4. Also, save the neighbor entries from the beacon/probes received from
the firmware during roam sync and other events to facilitate the look-up.
5. If there is no existing entry for the roamed non-tx link, then caching
the neighbor info from the assoc partner link would store the valid entry
into the rnr db.

Change-Id: I2c16ed1428b578efaeed98daca08b722b0d40a05
CRs-Fixed: 3784879
2024-05-14 00:37:03 -07:00
Sheenam Monga
5daee8fcbe qcacmn: Add length checks for noninheritance_ie
In util_scan_find_noninheritance_ie API,
ies[ELEM_ID_EXTN_POS] may lead to OOB access if
len==MIN_IE_LEN.

util_parse_noninheritance_list may lead to OOB
read access extn_elem[ELEM_ID_LIST_LEN_POS]

Fix is to add length checks and add sub_copy and length
subie_len checks before accessing extn_elem to avoid any
OOB read.

Change-Id: I7758c6e4d8d568a5050011603b48a23e0b11da94
CRs-Fixed: 3717569
2024-05-07 03:17:23 -07:00
Vinod Kumar Pirla
46b43b40f2 qcacmn: Move peer transition history under MLO_ADV flag
Move the peer transition history infra under
WLAN_FEATURE_11BE_MLO_ADV_FEATURE flag to enable the changes
by default

Change-Id: I8b0e07fb045b1e383af4b4144e31e8b709a8c83d
CRs-Fixed: 3802485
2024-05-06 00:55:57 -07:00
Pragaspathi Thilagaraj
6680ed52fb qcacmn: Update scan mlme BSS info after roaming
After roaming update scan mlme bss info and update AP
channel info MLO mgr API are not called. This causes the
wrong channel width to be updated in the get_channel
command leading to disconnect.

Update standby link vdev scan entry state after roaming and
refactor the scan mlme info updation logic in a new API.

CRs-Fixed: 3753587
Change-Id: I5bcd4c807f6e23b5d604eec1158c21ccb4f29b58
2024-05-05 23:18:26 -07:00
Krupali Dhanvijay
cee6125a6d qcacmn: Fix OOB reads in util_gen_new_ie
In util_gen_new_ie, there are several possible out-of-bound reads
with invalid information elements such as improper/missing check when
updating tmp_old, missing check prior to starting while loop and missing
length check.

To fix these OOB issues add and improve length checks in util_gen_new_ie.

Change-Id: I39b9cd82ab6a7bd1a4c8d7cd5039a998a290b85f
CRs-Fixed: 3717568
2024-05-03 01:36:17 -07:00
Ruben Columbus
69cd6cf948 qcacmn: check for rx_user_status
add a condition to check for rx_user_status to see
if its NULL or not. in 2.0 platforms it comes always as valid
for 1.0 platforms it could vary.
In case of rx_user_status is NULL then user rx_status instead.
for when rx_user_status is valid then 'or' both values.

Change-Id: I9e87d3b3592741a24ef2ef229bf7d4cdbdb871a3
CRs-Fixed: 3755942
2024-05-02 22:58:01 -07:00
Ruben Columbus
6813cbfead qcacmn: add MU Sniffer compatibility
add missing values for rx_status and rx_user_status
values are for both HE and EHT data as well as usig.

CRs-Fixed: 3734450
Change-Id: I1bfd1a3021e11c4b5f2c07f324273bb778bf5c0f
2024-05-02 22:57:49 -07:00
Vinod Kumar Pirla
70ef35de9d qcacmn: Fix MLO mgr notify miss on VDEV repurpose completion
MLO manager will change the VDEV MLO flags on start of VDEV repurpose
and need to reset the flags on end of VDEV repurpose. Currently MLO
manager callback is not called after end of VDEV repurpose and flags
are not reset.

Always call MLO manager to reset the flags on VDEV repurpose completion.

Change-Id: Ie2d323888a01e4f19c439619b5ed267e43f0ce0c
CRs-Fixed: 3798911
2024-04-30 22:17:44 -07:00
Karthik Kantamneni
332fc3b9eb qcacmn: Fix out of sync OOM work counter
Currently OOM work counter is incremented when schedule_work
is called and counter is decremented when work is scheduled.
But there is possibility of OOM schedule_work is getting called
from tasklet context and worker thread context and resulting
only one time work execution but active work counter being
incremented twice. This scenario may result in OOM work going
out of sync and preventing suspend usecase.

Avoid this by incrementing the OOM active work count only when
work is getting added to global work queue and corresponding count
will be decremented when work handler gets executed.

Change-Id: Ie02d5b9c821327337a1b822c81c51878af522832
CRs-Fixed: 3787873
2024-04-30 22:17:27 -07:00
Yeshwanth Sriram Guntuka
410a2ae521 qcacmn: Use addr1 for RA in TXMON generated ACK frame
ACK frame captured via TXMON as part of LPC has incorrect
RA field populated using addr2 from TLVs. This is resulting
in the TX ACK frame to be misinterpreted as RX ACK frame.

Fix is to use addr1 from TLVs to populate RA for TX ACK
frames.

Change-Id: I23022c5cbabafc7025abef9ef2e9e2370750dad7
CRs-Fixed: 3787647
2024-04-30 11:36:37 -07:00
Asutosh Mohapatra
724452ba70 qcacmn: Add vendor attribute to configure custom STA keep-alive interval
Introduce an attribute QCA_WLAN_VENDOR_ATTR_CONFIG_KEEP_ALIVE_INTERVAL
in QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION to configure
station's keep-alive interval to the driver/firmware. This can be used
to resolve kickout issues from APs which kick out STAs before the BSS
maximum idle period expires.

Change-Id: I80c743d5a10b559a2ec027a1098ff55fc450007b
CRs-Fixed: 3795409
2024-04-29 06:48:37 -07:00
Manikanta Pubbisetty
6b801c30d6 qcacmn: Reduce CE history size for perf builds
Currently, CE history captures 1024 events. Addition of CE-1 events
to the CE history increased the memory requirement on perf builds by
56KB. Reducing CE history size to 768 will offset the memory
increase and also captures sufficient logs for issue debugging.

Change-Id: I411d8ba7422d0039ad7e2ab01c159c36aa68dc41
CRs-Fixed: 3781894
2024-04-29 05:48:14 -07:00
Vinod Kumar Pirla
054c286289 qcacmn: First set CM state before handling event action
VDEV repurpose is in progress when NB disconnect is received.
Driver will change the state of CM to IDLE_DUE_TO_LINK_SWITCH
on disconnect complete due to VDEV repurpose. When the NB disconnect
gets active, instead of dropping the disconnect, queues a new
disconnect to do necessary cleanup and notify kernel if it is on
assoc VDEV. Here before VDEV repurpose disconnect moves the CM-SM
to IDLE_DUE_TO_LINK_SWITCH, the NB disconnect command gets active
and drops the disconnect request and finally the CM-SM moves to
IDLE_DUE_TO_LINK_SWITCH.

Supplicant sends new connect request and driver while handling this
sees the CM state as IDLE_DUE_TO_LINK_SWITCH and moves the SM to
connected to force trigger disconnect and later handle the connect.
This forced disconnect has cleared the VDEV-MLO flag on disconnect
complete but by the time peer create request is filled, this MLO-VDEV
flag is set so ML peer is created but during VDEV start MLO flag is not
set, so FW assertion failed while sending peer assoc indication with
MLO flag set.

Issue gets unflods when handling NB disconnect where the state of
CM is not set to IDLE_DUE_TO_LINK_SWITCH. So first set the CM-SM
before calling the disconnect complete handler.

Change-Id: Ieed1a1ace8ca18670c51d177d172243fc754b617
CRs-Fixed: 3784659
2024-04-25 11:17:40 -07:00
Krupali Dhanvijay
3c9097cd58 qcacmn: Add cinfo length check to fix heap buffer overflow issue
Add proper cinfo length check to fix heap buffer overflow issue
while generating link specific (re)association request/response,
as well as in the API for getting per-STA partner link information.

Change-Id: Ida561790bb745d6861a3a07b9db09b5b24443a6a
CRs-Fixed: 3699767
2024-04-24 15:33:47 -07:00
Aditya Kodukula
d4e00677a3 qcacmn: Add support for size 1 flexible length arrays
Convert size 1 variable length arrays to flexible
length arrays.

Change-Id: Iad84a006a2445465432252109874c479291f27fe
CRs-Fixed: 3690244
2024-04-24 01:38:01 -07:00
Jianmin Zhu
0ec12ea328 qcacmn: Fix scan entry double free issue
If last scan_cache_node in scan list is removed as dup candidate, it's
next becomes itself. qdf_list_peek_next return failed, so next_node isn't
updated, keeps as old freed scan_cache_node, and assign to cur_node for
next loop, next_node becomes same as cur_node, so the node will be
treated as dup candidate, double free will happen.

To fix it, if qdf_list_peek_next return failed, means no more next node,
break loop.

Change-Id: I6451437d6d025375ec5de2fa3e4651d967cd94b9
CRs-Fixed: 3785453
2024-04-24 01:37:43 -07:00
Liangwei Dong
f8075fb083 qcacmn: Fix All vdev up check in mlo link switch mgr
Correct All vdev up check by API mlo_check_if_all_vdev_up

Change-Id: Ieaab78ccf57b908a1c1535a3959b20148165e927
CRs-Fixed: 3792845
2024-04-24 00:37:22 -07:00
Vinod Kumar Pirla
5834a1af6b qcacmn: Allow VDEV repurpose only if all VDEVs are up
The non-transitioning VDEV in link switch might not be
in connected state (processing of NB disconnect on another
thread). Not checking VDEV state of non-transitioning VDEV
can lead to not handling error status where VDEV repurpose
shall be rejected.

Iterate all the connected VDEVs in the MLO dev context at
the start of VDEV repurpose.

Change-Id: I092780564715f22f1c75e042f86ea0ad37b04ba6
CRs-Fixed: 3743757
2024-04-24 00:37:05 -07:00
Rachit Kankane
8c32a7a5e6 qcacmn: Enable Chipset Stats in FW
Send WMI_PDEV_PARAM_ENABLE_CHIPSET_LOGGING to enable chipset
stats logging in FW based on INI and new service bit
WMI_SERVICE_CHIPSET_LOGGING_SUPPORT.

Change-Id: I29918ac80b10c1c38af1140ac36f92ea91318040
CRs-Fixed: 3786401
2024-04-23 07:53:37 -07:00
Rachit Kankane
7a5d5ec780 qcacmn: Add QDF support for QMI Indications
Add APIs in QDF to allow QMI Indication handled. This will be done
by registering callbacks to QMI Indications.

Change-Id: Ic01d0f0f7e87a2cf77fbba25a1a7b1606b3d42de
CRs-Fixed: 3786369
2024-04-23 07:53:19 -07:00
Rachit Kankane
168a9c55df qcacmn: Add INI config for CP Stats component
Add new CFG file for CP stats where we can define INIs for component
CP Stats.
Add INI to enable / disable chipset stats logging feature in CP
Stats config file.

Change-Id: I56154127d2f74ec423891653419d93c3ee0c3c5c
CRs-Fixed: 3785789
2024-04-23 07:53:04 -07:00
Nirav Shah
6d412727f1 qcacmn: Add chipset stats for EAPOL/DHCP packets
Add chipset stats for EAPOL/DHCP packets.

Change-Id: Icaabd64a84f57b7a556cb7c463fc19cfe0780a2b
CRs-Fixed: 3783005
2024-04-23 07:52:47 -07:00
Prasanna JS
ae5253bcd4 qcacmn: Add chipset stats for STA connect/disconnect event
Add chipset stats for STA connect/disconnect event

Change-Id: I28ea3fa265d27162b8a381b0c1d39093694b1cc7
CRs-Fixed: 3782996
2024-04-23 07:52:30 -07:00
Prasanna JS
2564504301 qcacmn: Add chipset stats event id's and common header
Add chipset stats event id's and common header

Change-Id: I53485f66646a040c2abb14ad3e5389f8c2be6baf
CRs-Fixed: 3782943
2024-04-23 07:52:08 -07:00
Prasanna JS
6559d10b18 qcacmn: Add API to flush chipset stats to middleware
Add API to flush chipset stats to middleware when user
request the ring data

Change-Id: I8cdaca506afa729cca1d42a97f073e2d6adad533
CRs-Fixed: 3782360
2024-04-23 07:51:51 -07:00
Prasanna JS
b4f5316ea8 qcacmn: Add API to write stats to chipset stats buffer
Add API to write stats to chipset stats buffer

Change-Id: Icf7de8a6925aa177443ee9f9b5b17183f36d93de
CRs-Fixed: 3782329
2024-04-23 07:51:29 -07:00
Prasanna JS
8209f7fc66 qcacmn: Add API to register cbk to send cstats to middleware
Add API to register cbk to send cstats to middleware

Change-Id: I0b73d37e42703d44b72388a3982d86150eb05ae1
CRs-Fixed: 3784974
2024-04-23 07:51:08 -07:00
Prasanna JS
67d9279244 qcacmn: Add API to init/deinit chipset stats
Add API to init/deinit chipset stats

Change-Id: I71d01c6cebabe2cf250438f4fc5423d6bc159fdf
CRs-Fixed: 3782270
2024-04-23 07:50:50 -07:00
Aman Kumar
3c208c9662 qcacmn: Enhance link state handling for active and inactive links
Previously, host drivers only updated the link state for
active links upon receiving the wmi_mlo_link_state_switch_eventid
event from the firmware. This led to all links being updated
as active after multiple link_state_switch events, as the
state for inactive links was not being updated.

This commit addresses this issue by ensuring that the link
state for both active and inactive links is updated upon
receiving the link_state_switch event from the firmware.

Change-Id: I668074b397cf6b570929459c9fe5e23ca55b75b1
CRs-Fixed: 3763361
2024-04-22 00:37:26 -07:00
Vinod Kumar Myadam
cc6e9e8d8a qcacmn: Fix un-initialize structure variable
Un-initialize structure variable causes prevent issue.

Initialize structure variable with zero in all fields of the
structure in cm_update_link_channel_info

Change-Id: Ib249bcb56b189b1529daeeb4be9f694c5a3ecae3
CRs-Fixed: 3788234
2024-04-19 08:36:58 -07:00
Jianmin Zhu
8b53a70981 qcacmn: Fix bss peer leak for link switch when LL-SAP existed
Hit following issue of link switch when LL-SAP existed.
1. Link switch was received on VDEV-1 (partner link).
   a. Link switch cmd was added to serial active queue, existing peer
      was deleted as part of link switch disconnect.
   b. Link switch connect started but got deferred due to LL-SAP Bearer
      switch transition, when WLAN_CM_SM_EV_BEARER_SWITCH_COMPLETE
      received, a new connect cmd was added to serial pending queue,
      link switch was blocked here.

2. Disconnect from userspace was received
   a. The disconnect on VDEV-1 here notified MLO-manager to terminate
      ongoing link switch.
   b. Link switch confirmation was sent to F/W as failure.
   c. link switch cmd was removed from serial active queue.

3. Connect cmd queued in #1.b was activated and moved VDEV-1 state to
connecting.
   a. New peer got created but PE session wasn't yet created.
   b. Disconnect from #2.a changed the VDEV-1 state from connecting to
      disconnecting.
   c. While processing the disconnect in #3.b, peer delete for the peer
   created in #3.a didn’t happen as disconnect didn’t proceed when pe
   session not found.

To fix it, for link switch, don't add new connect cmd to serial queue
after LL-SAP Bearer switch since link switch cmd is queued already.

1. Link switch is received on VDEV-1 (partner link).
   a. links witch cmd was added serial active queue, existing peer
      gets deleted as part of link switch disconnect.
   b. Link switch connect starts but gets deferred due to LL-SAP Bearer
      switch transition, WLAN_CM_SM_EV_CONNECT_ACTIVE is sent after
      WLAN_CM_SM_EV_BEARER_SWITCH_COMPLETE received, bss peer creat cmd
      is sent to F/W.

2. Disconnect from userspace is received when link switch unfinished.
   a. The disconnect on VDEV-1 here notified MLO-manager to terminate
      ongoing link switch.
   b. If BSS peer created, mlme_cm_bss_peer_delete_req will be called to
	delete it.
   c. Link switch confirmation is sent to F/W as failure.
   d. link switch cmd is removed from serial active queue.

Change-Id: I13ba820bd0240d062c7cd47ec0e53ae1a27d5b58
CRs-Fixed: 3752437
2024-04-19 06:27:37 -07:00
CNSS_WLAN Service
4004081535 Merge "qcacmn: Use only partner links with valid scan entry" into wlan-cmn.driver.lnx.2.0.14 2024-04-19 04:18:22 -07:00
Sheenam Monga
1111cf6224 qcacmn: Update validation before accessing neighbor_ap_info_field data
Don't fetch TBTT info if data + neighbor_ap_info_field is <=
ie + rnr_ie_len + 2 instead of < ie + rnr_ie_len + 2.
Only less than validation may lead to extra iteration and
wrong rnr data.

CRs-Fixed: 3787446
Change-Id: I9dbaa066dd09f6c9ddfb3e400d95e009313cd54d
2024-04-17 10:25:57 -07:00
Rahul Gusain
f5a0f79275 qcacmn: Fix null pointer dereference
Fix NULL pointer dereference issue for CFR private object in the
"target_if_cfr_update_global_cfg" API.

Change-Id: Ieac9df08c0e14b6c65f8d974f7f1f1220a3b8008
CRs-Fixed: 3772912
2024-04-12 00:19:43 -07:00
Vinod Kumar Pirla
e60c0128f8 qcacmn: Add API to check reg domain supports 11be
Check the max supported current regulatory domain's
phy mode equals 11be or not.

Change-Id: Ic4ba81d22d195248a7a1b25f3e7fa5b31093f4c6
CRs-Fixed: 3671851
2024-04-11 01:21:09 -07:00
Jianmin Zhu
864dae22f3 qcacmn: Disable partner link which has same mac or id with assoc link
In RNR of bad AP beacon, partner link has same link id and bssid as assoc
link of same MLD.

To fix it, disable partner link which has same mac or id as assoc link
of same MLD.

Change-Id: Ieda1807b5ed13559c847f2d39035a9acb2e4232f
CRs-Fixed: 3772848
2024-04-08 21:06:45 -07:00
Sheenam Monga
d47fccbfde qcacmn: Fix potential OOB read in util_scan_parse_rnr_ie
Currently, while parsing scan RNR Ie data is moved to
next neighbor_ap_info_field after parsing the current
neighbor_ap_info_field. But in last iteration pointer may
try to access invalid data if (uint8_t *)ie + rnr_ie_len + 2)
bytes are less than sizeof neighbor_ap_info_field and same
is the case with tbtt_length access.

Fix is to add a length check of data + next data size to be parsed
< (uint8_t *)ie + rnr_ie_len + 2) instead of adding a validation
of data length only.

CRs-Fixed: 3710080
Change-Id: I05e5a9a02f0f4f9bc468db894588e676f0a248c0
2024-04-07 21:07:09 -07:00
Krupali Dhanvijay
77cebf7083 qcacmn: Add check to avoid NULL pointer deference in parse MBSSID
In malformed beacon frame may deference the NULL pointer while
parsing MBSSID IE in util_scan_parse_mbssid will lead to crash.

Add check in util_scan_parse_mbsssid for split_prof_start before
passing to util_gen_new_ie and assign zero to split_prof_len
whenever split_prof_start freed to avoid unanticipated scenario.

Change-Id: Ibb9739d6b5d1775ab52d59f9aa5050ca693cd926
CRs-Fixed: 3717571
2024-04-03 16:43:31 -07:00
Pragaspathi Thilagaraj
ba7f3371ee qcacmn: Set LTF keyseed required for existing peer also
LTF keyseed required flag is set only for newly created PASN
peer. This value is filled from the security mode value received
the PASN peer create request event from the firmware.
If PASN peer already exists, then the peer is just added to the
peer list and secure LTF keyseed required flag is not updated.
This leads to wrong sequence of commands going to firmware.

Expected sequence: Install TK -> Set LTF keyseed -> PASN Auth
STATUS.

Observed Sequence: Install TK -> PASN Auth status -> Set LTF
keyseed -> PASN Auth status.

So set the is_ltf_keyseed required flag for already existing
PASN peer also

Change-Id: If9994ad01a96bdb26ad55538a67feaed7e22892f
CRs-Fixed: 3742573
2024-03-29 15:51:58 -07:00
Surya Prakash Sivaraj
99f24676b4 qcacmn: Use only partner links with valid scan entry
If the scan entries for a non-tx profile MBSSID partner links
are not present at the time of candidate selection, then
host driver generates the scan entry for the missing partner
link from the assoc response.

The assoc response from the AP has PMKID in the RSN(some APs
do not include RSN IE in assoc resp).In this case, the RSN
along with PMKID gets inherited into the scan cache of the
missing partner and this leads to mismatch between M3 and
scan entry RSN causing disconnection.

To fix this, mark all the MBSSID partners without scan entries
as invalid links at the time of candidate shortlisting. Score
and connect to only non-tx candidates with valid scan entries.

Remove the probe response generation from assoc response logic.

Change-Id: I342519490ead2a2e91426439cf47e65c61b53aed
CRs-Fixed: 3766047
2024-03-28 23:03:01 -07:00
Vinod Kumar Pirla
3ea1cbb97c qcacmn: Introduce APIs to save peer create and destroy hist
Add new structures, enums and APIs to enhance driver support
to store peer create and destroy history in PSOC.

Add new list to MLME's PSOC object to hold entries.

Change-Id: I22b8d559e9981a93dc4891d563586dc13245aff9
CRs-Fixed: 3738897
2024-03-28 01:38:03 -07:00