SAE authentication happens with MLD address rather than link
addresses as it's common authentication for all links in an ML
connection. But OTA exchange of authentication frames happens
with a chosen link address from available links.
As userspace takes care of the SAE authentication, host driver
has to replace the rx SAE auth frame SA with peer MLD and DA with
self MLD address. Similarly for tx SAE auth frames, replace self
SA with link address and DA with peer link address.
Current change is to support the same for roaming case. Fetch the
MLD from scan cache corresponds to link address provided in roam
auth event and replace as mentioned above.
Change-Id: Ide15caa122f78301391b5ea891e2e6eaf4af8974
CRs-Fixed: 3441483
Currently SIFS burst configuration is done from
osif layer though there isn't any dependency on
the osif layer.
Move the configuration of SIFS burst to post
vdev create.
Change-Id: Id1e6064164c0ea9d6ab5c5b1217c7c275fb45832
CRs-Fixed: 3297656
In SAE roam offload case, the SSID of the candidate is
retrieved from the roam candidate frame, and this SSID
is sent to the userspace for initiating SAE authentication.
However, if roam candidate frame is an MBSS beacon and the
candidate BSSID is present in non-tx profile, still the
SSID from tx profile is sent to the userspace, which leads
to authentication failure.
To fix this:
a) Save the BSSID in addition to the SSID during the roam
candidate frame extraction.
b) During roam auth offload event, get the SSID from the
scan cache only if the existing BSSID cache(filled in #a)
doesn't match with the BSSID received in roam offload event.
This would prevent the time expensive scan table lookup
operation for non-MBSSID cases.
Change-Id: Ib8cc0408cba7ccfc8c2b3e2d657f7b40f8a4d421
CRs-Fixed: 3437698
Currently in wma_unified_link_peer_stats_event_handler, the host
updates peer's rx_mpdu value by querying dp_peer stats, using
peer mac address and vdev_id sent by firmware.
In case of MLO connection, the dp_peer stats query fails for
partner link peer, since the vdev_id sent by firmware is for
assoc link. So, the rx_mpdu value for partner link peer is not
updated. To fix this issue, update correct vdev_id for the peer.
Change-Id: I5f45f1cba6399c6ab810d3d94272d035259317a8
CRs-Fixed: 3438061
wmi_handle is retrieved from psoc handle, validate the same before
dereferencing to avoid any invalid access.
Change-Id: I58c566e1b94c5ba2cd4d74ad4406545ffb39e36e
CRs-Fixed: 3434869
Previously the function wma_handle_btm_blacklist_event() was removed
by:
qcacld-3.0: Cleanup ROAM_TARGET_IF_CONVERGENCE usage
Change-Id I6973d9c366ec6a9c6164dd19f6f4775dd3ebf5f0
However, the prototype was left behind.
This prototype was renamed as part of:
qcacld-3.0: Replace blacklist/whitelist for denylist/allowlist
Change-Id I9ba61dde3b3ea008ca3777448d1f8dab83d33ec1
But this is still a prototype without a function, so remove it.
Change-Id: I7b9ad27e7f9fd3195bbae77c07104a0ee4764e0b
CRs-Fixed: 3434500
A prototype for wma_register_roam_vdev_disc_event_handler() was added
by:
qcacld-3.0: Process Disconnect request from FW
Change-Id Ic1e83aace48a3e8424f23641b0e77c66f4283587
However, no actual function was added, so remove the prototype.
Change-Id: I4c6f41f93bb80f733031f4a77a94ee0b4cad6f1c
CRs-Fixed: 3434499
Functions wma_roam_synch_event_handler() and wma_roam_event_callback()
were removed by:
qcacld-3.0: Cleanup ROAM_TARGET_IF_CONVERGENCE usage
Change-Id I6973d9c366ec6a9c6164dd19f6f4775dd3ebf5f0
However, the prototypes were left behind, so remove them now.
Change-Id: I53970271698425093abd3d96f8c03b8eef0bbb60
CRs-Fixed: 3434498
Function wma_stats_event_handler() was removed by:
qcacld-3.0: Remove legacy implementation of stats event handler
Change-Id I9a892b5f7486a406654256fc2cc8177f2fafe790
However, the prototype was left behind, so remove it now.
Change-Id: I8eba9a888c9dbb592b802fa3fd2e1fd0a824296d
CRs-Fixed: 3434497
The following patch replaced typedef tSirWifiPeerStat with a new
struct wifi_peer_stat that has member names that following the Linux
coding style:
qcacld-3.0: Replace typedef tSirWifiPeerStat
Change-Id I337e2329d544e0b6daf6650f826e736f2492ef30
As part of that change all instances of tSirWifiPeerStat::numPeers
should have been replaced with wifi_peer_stat::num_peers, but one
instance was overlooked in wma_peer_ps_evt_handler(), so fix it now.
Note that ideally the compiler should have caught this, but
wma_peer_ps_evt_handler() is conditionally compiled, and apparently
the WLAN_PEER_PS_NOTIFICATION feature is not enabled on any current
targets.
Change-Id: If7fc2d38886119f2e21413213ad386d2ad19e4f3
CRs-Fixed: 3431813
Function wma_wni_cfg_dnld() was removed by:
qcacld-3.0: Cleanup legacy cfg related files
Change-Id If46ae4c59f1010a655aa65e3502fc0c660e33cdc
However the prototype was left, so remove it now.
Change-Id: I35d5c578407492e213d9183275c68c8e011f5abe
CRs-Fixed: 3434496
There are several issues with wma_ds_peek_rx_packet_info():
1) The bSwap parameter is unused.
2) The other parameter identifiers used in the prototype do not match
the ones in the implementation.
3) The implementation is documented instead of the interface.
Fix these issues by removing the unused parameter, making sure the
other parameters match between the prototype and implementation, and
documenting the interface.
Change-Id: Ia9d68dbcc7093f14aec6519303c4318e950c4d2d
CRs-Fixed: 3433198
A typo was introduced by the following patch:
qcacld-3.0: Replace WMA_LOGE() with wma_err() in wma_main.c
Change-Id If55d52640dbe921377f1ceffed609e096f449563
One instance of WMA_LOGE(), in wma_motion_det_host_event_handler(),
was changed to wma_er() instead of wma_err(). This has gone undetected
since it is feature-specific code that is not enabled, and hence has
not resulted in a compilation failure. But this was detected manually
during dead code removal, so fix the typo.
Change-Id: I07b6b5792c1419a83ee1a735943b8375d22e71d8
CRs-Fixed: 3432958
When DUT roams from one set of links(e.g. 2 GHz + 5 GHz) to
another set of links(e.g. 5 GHz + 6 GHz) in the same AP, there
might be a common link/peer(e.g. 5 GHz link). Current MLO roaming
design doesn't allow the common link peer creation as it's
already present on another link in previous connection.
Added changes to cleanup all peers as part of roam sync
processing on first vdev if it's a self ML roaming.
So, peers get deleted at the beginning itself and if roam sync
fails due to any reason, no new peer gets created.
Next HO_FAIL/disconnection should go through though peer
is not present.
Add changes for the same.
Change-Id: Idcec54c795dd494243c9a8d8152499f2ca1f5ed0
CRs-Fixed: 3426642
For mlo roaming, roam sync will be handled on
link vdev/s first and then assoc link vdev.
In case of mlo self roaming, an issue is observed
during peer creation as one already exists on other link.
To solve this all link peers will be deleted
while handling roam synch on first link.
Change-Id: I4d3ff71dd7c8b54f3f06b0147ce23ac8bfe5f49b
CRs-Fixed: 3421698
Notif_param of Roam event ID carries the trigger reason as part
of roam scan start notif. Currently host doesn't read this param.
This commit reads the trigger reason and sends it to user-space
via vendor attribute whenever the roam event vendor command is
enabled.
Change-Id: If9fdbc31df149f4f1c9ca196ee74e2fcb3709a1c
CRs-Fixed: 3161803
The last reference to the sme_ctx member of struct del_vdev_params was
removed with the following patch:
qcacld-3.0: Send vdev delete to firmware on notification
Change-Id I67bea0d2b2a0d2d9eb4602e5d0b8bbdcafdd4d26
Since it is now obsolete, remove it.
Change-Id: I9f016232d62c469075d4abb8e718d6876179e4bf
CRs-Fixed: 3429768
Currently, on obss color collision detection driver sends bss color
change IE in beacon and updates the color switch count in IE in
every beacon until color switch count reaches 0.
If the wlan driver enters suspend during this updation of bss color
change IE in beacon, the bss color change is not completed until wlan
resumes. This will lead to delay in bss color change after bss color
collision is detected.
To fix this issue, acquire wakelock once obss color collision is
detected and release it once obss color change is completed. This fix
is similar to how CSA is handled currently in driver.
Change-Id: I9c3e7cfe16da116905121b044054c0987afbca09
CRs-Fixed: 3405919
The logic that invoked wma_lro_init() was removed by the patch:
qcacld-3.0: Code cleanup from HDD module
Change-Id If5f1cf432b5c02848202debee7de696b2f20be9a
Since this function is no longer used, remove it.
That removes the logic which used to send the WMA_LRO_CONFIG_CMD
command. Since that command is no longer used, also remove the
command handler, wma_lro_config_cmd(), along with the command
definition itself.
Change-Id: I1416d8c635a908d33cc41046ffd0ff63837dae99
CRs-Fixed: 3424790
The kernel-doc script identified documentation issues in
core/wma/inc/wma_api.h, so fix them.
Change-Id: I723daf02378ea794628adbcc4d14c0e5d031c599
CRs-Fixed: 3424666
The wma_sta_mlme_vdev_down_send() prototype was added by:
qcacld-3.0: Add VDEV state machine for STA disconnection
Change-Id Iee7274fbc8ae985d034a29f920faa38aab68ccc7
However, it didn't add a function body, and one hasn't been added
since then, so remove the unused prototype.
Change-Id: I729c758676a2b0c77d44916808c50a9996a6c698
CRs-Fixed: 3424626
The following patch removed all usage of struct vdev_create_req_param:
qcacld-3.0: Send the vdev create to firmware in the caller thread
Change-Id Iafb186b13d948e421d152c3142cb8614fdbbffa6
However it didn't remove the actual struct, so remove it now.
Change-Id: I20937b00ecdc61f7b349dd287092d5ebd6d7e9c4
CRs-Fixed: 3424785
The following change removed most of the legacy crypto code following
the transition to the converged crypto component:
qcacld-3.0: Cleanup CRYPTO_SET_KEY_CONVERGED for WMA layer
Change-Id If70fc5cb01f2a0123030c92410e126ce8078e1c6
This change removed wma_setup_install_key_cmd(), but left behind the
now unused function wma_fill_in_wapi_key_params() that it used to call
when FEATURE_WLAN_WAPI was enabled.
So remove the unused function, along with struct wma_set_key_params
which is now unused as well.
Change-Id: Ie16d6ce20d8f5f99ef1c625b34bea3685d3d8029
CRs-Fixed: 3424774
The follow change removed all usage of the t_wma_handle ocb_config_req
member:
qcacld-3.0: Clean up OCB legacy code
Change-Id Ib8a26c9e67e78e53f8b2b4929276060687254ea1
However the member itself was not removed, so remove it now.
Change-Id: Id61a2575b9e7d447bb88133322fae9aa7ef33cb5
CRs-Fixed: 3424783
As part of new requirement of 'SAP PS with TWT enabled',
send configured ini value 'g_sap_ps_with_twt_enable'
through vdev set param i.e whether power save
enabled or disabled, during vdev_create to the firmware.
Change-Id: I22fa5754229b5efd7fe3f9b97e0e565f31c01949
CRs-Fixed: 3421619
Code analysis identified dead code protected with the obsolete feature
flag ANI_SIR_IBSS_PEER_CACHING, so remove all logic associated with
that flag.
This is cleanup from a previous patch:
qcacld-3.0: Cleanup IBSS code from LIM
(Change-Id Idebb0f55aa27751f1fdd7b4c1fb8124ae29eb382)
Change-Id: I67a6b2b4747a774b5e116f017b7ef1be0fc5b2f7
CRs-Fixed: 3423129
Issue: Host reports different RSSI values during roaming
trigger logging and subsequent deauth TX logging to user
space.
In case of roam trigger roaming, driver sends the rssi value
to user space from wmi_roam_ap_info tlv in roam scan results.
In case of disconnection due to BMISS or STA KICKOUT case,
host does not receive latest beacon from FW. This results,
on disconnection, host reports deauth TX logs to userspace
using old RSSI present in mac->lim.bss_rssi which is updated
when beacon or probe response is received in host.
Fix is to update mac->lim.bss_rssi while processing sta
kickout or bmiss event coming from FW.
Change-Id: I108f94959fbf915d8f67f443a9fcd54d595c27d1
CRs-Fixed: 3417363
Currently thermal level can be got from upper layer only
for FW thermal mgmt offload case. Per the requirement,
refine the code to support it for thermal non-offload
case as well.
Similar to offload thermal mitigation, add TX_OFF and
shutdown two states for non-offload case. Host will fully
stop TX traffic in TX_OFF state and target will trigger
shutdown when temperature come to the range of shutdown.
Per above requirement, add below four INI to configure
thermal temperature threshold value as need for TX off
and target shutdown.
gThermalTempMinLevel4
gThermalTempMaxLevel4
gThermalTempMinLevel5
gThermalTempMaxLevel5
Change-Id: I40d097ab8a5801052553ad7adedd38be475c7669
CRs-Fixed: 3413165
The reference taken for objmgr peer during ML peer
context creation is not released if any validation
has failed in pe_session initialization. The call
to directly remove objmgr is initiated without a
call to detach ML peer. This leads to reference
leak for the peer.
If lim_fill_session_params() API returns error,
wma_remove_bss_peer_before_join() API is called
to cleanup the peer objmgr. Call API corresponding
to MLO peer detach in this function to release
the MLO_MGR reference.
Change-Id: I010150b4aefe9f076455cd5aafb1c3b55155458b
CRs-Fixed: 3405762
Currently host driver considers wakeup from runtime PM because
of pagefult as well to trigger the SSR. Based on new requirement
do not consider wakeup from runtime PM to trigger the SSR.
Change-Id: I61837ee876fffa33d56035ee41c8e8a2b68e8ca7
CRs-Fixed: 3402848
Incorrect parameters exist in TWT documentation. Correct parameters
to match function.
Change-Id: Ida1c223b8e5735cc9126f321142218d56716d4be
CRs-Fixed: 3414468
Currently vdev set parameters sends through
wma_cli_set command, during processing of cli_set command
some vdev set params stores in vdev_cli_config
For remaining params printing invalid
which creates confusion.
To fix this modify debug print to param is not part of
vdev_cli_config to avoid confusion.
Change-Id: I5644adfe6d7cff61b09a6191813109877c378fdd
CRs-Fixed: 3412198
In the case of EHT, if the mode is MLO then set AMSDU/AMPDU
caps per vdev instead of setting it only on assoc vdev.
Change-Id: Iaf480ee6a42cea83e30f412f663f688c0330d246
CRs-Fixed: 3392015
Currently many host hang reason codes are not mapped to corresponding
userspace codes as a result these hang reason code will be invalid
for userspace and also QDF_REASON_UNSPECIFIED is used in some places
in host.
To add mappings for host hang codes to corresponding to userspace
hang codes and also add new hang codes.
Change-Id: Id617c2bbfd72b0e83b50f522fd1313fbc9eea2cc
CRs-Fixed: 3381230
In case of legacy to multi-link MLO roaming, if roam sync event
handling fails, then the pe_session is deleted for the link
VDEV and the cleanup happens only for the assoc vdev. Since,
the link vdev doesn't have proper session/vdev params, the
cleanup fails in link VDEV. This leaves the link vdev in UP
state, even after disconnection. Therefore, subsequent attempts
to connect to an MLO-AP would fail since the partner link is
never cleaned up and is in invalid state(UP).
To fix this, propagate the HO-failure error through state machine
and move the VDEV SM from UP->DOWN directly.
Change-Id: I6480a1821ab4c8cf9af6cd96af0f7889307c3b18
CRs-Fixed: 3362995
Previous code was already align with spec.
This reverts Change-Id Id16123baf7a18ce10c3c5776b6ef33864a0d9a82.
Change-Id: I83102059e94f71d61ec2eb564f0c9e2d6b253872
CRs-Fixed: 3361303
There are function parameters missing in kernel doc for TWT.
Add the parameters to kernel doc and fix mispellings.
Change-Id: Ice88e22fed8fb01760b4ed7981cb6b042f3751d6
CRs-Fixed: 3349940
with recent host change
"Trigger SSR on wakeup from pagefault"
missed to update copyright year for some files
This change will update that missed copyright
year to 2023.
Change-Id: I1b2972e824b21e70c697bf819ee34312946aed6b
CRs-Fixed: 3387893
WMA MGT RX process extraction are logged in err level.
Rate limit the logs to avoid excessive logs to kernel
logging.
Change-Id: Idde55ab4dab24d55ff9e7239a69d586bd4f855ef
CRs-Fixed: 3391246
Modify the log level from error/info to debug, to reduce logging
time. henceforth, it reduces intf deletion time and enhance the overall
performance of device.
Change-Id: I3498438e07daa97dc5b4805271397205c7aa0cf2
CRs-Fixed: 3389896
A 802.11be MLD device can have one of the links
address same as MLD address. On add peer for this
MLD peer the validation for existing peers with same
MAC address may fail as a match with existing peer
will be found.
If an existing peer with new peer's MLD address
is found, then allow new peer if both existing peer
and new peer are in same ML dev context, if both
are on different ML dev context, reject the peer
add request.
Change-Id: I30c53032f228f166a1011b330ca245581dfe468b
CRs-Fixed: 3381720
Whenever driver add new feature, it increments the feature version
and send it to firmware.
Due to new 11KV feature update, increments the feature version.
Change-Id: Ia840faf85c06a4f33f68f59dadda400c8e91804c
CRs-Fixed: 3381243
According to new requirement, use INIs
max_pagefault_wakeups_for_ssr,
interval_for_pagefault_wakeup_counts and
ssr_frequency_on_pagefault
to trigger SSR if host wakes up because of pagefault.
For ex: If max_pagefault_wakeups_for_ssr = 30,
interval_for_pagefault_wakeup_counts = 180000 (3 mins) and
ssr_frequency_on_pagefault = 3600000 (1hr), in this case host
will trigger the SSR if it receives 30 wakeups because of
pagefaults in 3 mins, host will trigger SSR only once in 1 hr.
Once the SSR is triggered, host will not trigger next SSR for
next 1 hr even if it receives 30 wakeups from fw because of
pagefaults. This 1 hr time is getting monitored from last SSR.
Change-Id: Ia06f87aff6d1552e37c582e7464f1b2451543502
CRs-Fixed: 3378502
Currently the set feature version is 2. There is a change in
min sleep period for TWT.
So increment the set feature version from 2 to 3
CRs-Fixed: 3378350
Change-Id: Iacee2a208b01144ced6b64834cbb3f6a5bedff20
Currently in the host in wma_set_sap_keepalive API
using incorrect param type i.e uses MLME_PDEV_PARAM
for vdev set param, hence host sends vdev params
as pdev params,pdev_id as vdev_id causes crash.
This fixes the MLME_PDEV_PARAM to MLME_VDEV_PARAM
for wma_send_multi_pdev_vdev_set_params in
wma_set_sap_keepalive.
Change-Id: Iae35211aa5057d2bb3a69b8f5caca6a548f9ed2f
CRs-Fixed: 3379012
Currently in wma_send_multi_pdev_vdev_set_params,
wma_validate_txrx_chain_mask APIs there is no NULL
check before dereferencing the pointer
in wma_dev_if.c
Add NULL check before dereference in
wma_send_multi_pdev_vdev_set_params and
wma_validate_txrx_chain_mask APIs
Change-Id: Ifa8e6dbdd9421145970a95f9c73794e79a41f8c3
CRs-Fixed: 3378273
Currently there is no information of delayed
wakeup packets when APPS is resumed because
of delayed wakeup.
Add the support to print the number of delayed
packets buffered in FW when resume happens.
Change-Id: Id76347f87f3c440b793f5d3bcb11270db8bdf061
CRs-Fixed: 3307262