The supplicant sends del_pmksa command to delete the pmk,pmkid
for a particular bssid. In this command pmk_len will be 0.
In send_set_del_pmkid_cache_cmd_tlv() the host driver currently
checks the pmk_len to set WMI_PMK_CACHE_OP_FLAG_FLUSH_ALL.
If pmk_len is 0 WMI_PMK_CACHE_OP_FLAG_FLUSH_ALL is set, which
is not correct. pmk_len will be zero in both the flush and delete
cases.
So add a new flag is_flush_all which will be set to true when the
supplicant sends pmksa flush command.
At WMI based on this flag set the flush flag to the wmi cmd.
Change-Id: I7626c500721a4b8cccbb21a08d4235c041456d1b
CRs-Fixed: 2502478
Dynamically allocate ch_list in wifi_pos_pdev_iterator(), to avoid
exceeding the stack frame limit with the introduction of new channels.
Change-Id: I41aaa3ad0405a3023768e5278dacf7475524c4e0
CRs-Fixed: 2463009
Full scan period is the idle period in seconds between two
successive full channel roam scans. Configure this to firmware
along with scan period as part of roam_scan_offload request
Change-Id: I3d629f0735b50a5b8116b422779ae423c15cae1d
CRs-Fixed: 2507604
This enhances the existing vendor command QCA_NL80211_VENDOR_SUBCMD_ROAM
with the following configurations:
1. Set/get/clear roam control
2. Set/get the channels on which the roaming has to be triggered
3. Set/get the roam scan period
4. Configure the triggers for roaming
5. Configure the candidate selection criteria
Change-Id: I75bad835c501d86fa4b2f0e8fcadf8af5b17daca
CRs-Fixed: 2508279
In case of latest firmware, there can be multiple pdev stats events
received and last_bit is set in the pdev stats to indicate this
is a last pdev stats event to be sent from the firmware to host.
In case of older firmware the last bit will not be set and host waits
for the peer stats event to be the last event, generally for pdev
specific stats request the peer stats will not be sent resulting in
the timeout for the pdev specific stats.
So, if the last_bit in the stats is not present return true when
queried for last event.
Change-Id: I264428edba01285fdab4c109a9051b350063d74f
CRs-Fixed: 2509093
There is possibility that sleep_timer is in running state,
so even in hif_pci_cancel_deferred_target_sleep timer has
been stopped, it runs later.
Use fake_sleep in hif_sleep_entry to check if timer has been
stopped, if yes, without action in hif_sleep_entry.
Change-Id: I46f28f8d856b51792e27a1f80f763830956b2868
CRs-Fixed: 2482547
qca_wlan_vendor_attr_roam_subcmd is an enum associated with the
attribute QCA_WLAN_VENDOR_ATTR_ROAMING_SUBCMD. It represents
different sub command values and these are not the attributes.
Hence, rename the enum to qca_wlan_vendor_roaming_subcmd.
Accordingly, the members of this enum are also renamed to
suite the usage.
Change-Id: Idbc80bf084ff293402fa2de368bc91b4fc659f01
CRs-Fixed: 2508204
Cleanup cdp_fc_get_tx_resource to be peer mac address based
from local peer id based.
Change-Id: I241377c75f09e9f0e177a167905cd9461ffcd088
CRs-Fixed: 2508146
Currently runtime PM only has inprogress state which means either
suspend or resume is in progress. Add suspending and resuming states
so that proper handling can be done for each state.
Change-Id: I9d92a8719d659b9ea271c46f8ce6bc912edc0863
CRs-fixed: 2507953
In cases where NSS offload is enabled, we currently do not support
flow-based search (flow tagging). Check for NSS offload enabled flag
prior to configuring the flow search table in target/hardware.
CRs-Fixed: 2502311
Change-Id: I291c610fe568ac36bacb3c21fd14feb544332b20
For MCL, vdev manager resp timer callback should be called in scheduler
context. Hence vdev manager response timer callback code is refactored.
To handle vdev response timer, MCL specific change is to post message to
scheduler thread and handle timer callback in scheduler thread. This MCL
specific change is protected using "SERIALIZE_VDEV_RESP_TIMER" macro.
Change-Id: I4c5a24cd4c8afba92e407fc229a9d2c295cecb57
CRs-Fixed: 2507577
MDNS packets if forwarded for a NAN vdev can lead to potential flooding
of the air interface. Hence donot forward them.
Change-Id: Idfdedfb0b5b553745440587448230013f3b56a7d
CRs-Fixed: 2503360
1. Assign correct first msdu payload
2. Reset mpdu fcs ok bitmap upon reception of next ppdu
3. Free rx_ppdu_buf_q in error cases
Change-Id: I4f2e687d51d1e10693adc9cfcdee49190ba6815c
CRs-Fixed: 2502889
Currently eWNI_SME_DFS_RADAR_FOUND is triggered for every vdev
attached to the pdev in which radar is found. It is incorrect
because when handling one eWNI_SME_DFS_RADAR_FOUND event, every
sap in the DFS channel processes the event.
Trigger eWNI_SME_DFS_RADAR_FOUND once for one radar detection.
Change-Id: I72f8a2a34b670bd86f07d0caabf2ee8f96c962be
CRs-Fixed: 2504793
wlan_pdev_vdev_list_peek_active_head can't be used out of object
manager, because object manager structures can't be referenced
outside object manager.
Add wlan_pdev_peek_active_first_vdev which can be used out of
object manager, because it only needs pdev parameters.
Change-Id: I1d32ec2b5342dbdcbbb817d80623f802011892b0
CRs-Fixed: 2507969
Cleanup dp_get_vdev_by_sta_id to be peer mac address based
from local peer id based.
Also, modify the API cdp_peer_get_vdev_by_sta_id with additional
argument for peer mac address.
Rename cdp_peer_get_vdev_by_sta_id to cdp_peer_get_vdev_by_peer_addr.
Change-Id: I889538b5ea7ebac8973dcaaa5ebdad1ac495e791
CRs-Fixed: 2504569
Process smart antenna fields from tlv
HTT_PPDU_STATS_USR_COMPLTN_COMMON_TLV in tx
completion path and export it to tx_completion.
Change-Id: If14e711b0aee8e583fd329f3c3915904649ffe47
CRs-Fixed: 2491429
As a part of vdev manager conversion, vdev delete code is
refactored. Legacy code and naming is removed. In vdev manager
operations, STA_SESSION is addressed as VDEV.
Hence WLAN_SER_CMD_DEL_STA_SESSION macro is renamed to
WLAN_SER_CMD_VDEV_DELETE.
Change-Id: I08bf6b2e69f5635d5ebc2548c18991bbb12b3985
CRs-Fixed: 2508147
As Spectral module is loaded before qca_ol module and the FW assert
function is compiled in qca_ol module, FW assert function will be an
unknown symbol when used inside Spectral module.
To fix this, register a callback to the FW assert function and
use that callback in Spectral module.
Change-Id: I6ca18b151e86b93de9988bc6026894617f2168a2
CRs-Fixed: 2507522
Since tx_monitor mode and rx_monitor mode consume signficant MIPS
when enabled on a per-peer basis, new requirement is to enable such
functionality on a per-peer basis. New CDP APIs are added to set these
per-peer parameters.
CRs-Fixed: 2494471
Change-Id: Ib44845ec98481cc4df36c30f47335522e5274568
The HIF_MAX_GROUP value is not consistent with the
HIF_NUM_INT_CONTEXTS which can cause out of bound access.
Fix this issue by making both these values same.
CRs-Fixed: 2505220
Change-Id: Ia79d9c03de82a73662c189e61e83e43e71d2ef3f
Set ssid and ssid_len when restart sap vdev. When hostapd set
ignore_broadcast_ssid to 1(zero-len) or 2(zero-content), when we force-scc
or setChanChange to restart sap vdev, if not set ssid and
ssid_len(default 0) in vdev start wmi, then firmware will reply
broadcast probe request since the ssid_len in broadcast probe req is 0
which matches the condition that firmware send probe response, however,
we should not reply with probe response.
Change-Id: I56580529e2b0db673c6b28c75094a7fd225cba77
CRs-Fixed: 2506391
Increase the REO Threshold interrupt timer from 256 to 512us. This
provides additional savings in number of interrupts in low throughput
scnearios.
CRs-Fixed: 2500152
Change-Id: I0b21a0425018d5db068016222378d16f394dc347
In dp_rx_process there are two cases in which vdev will be
null. One is when peer is invalid case which happens when
packets comes on reo with out any valid peer and vdev set.
Second case is fetching more data in case of napi no yield
condition and there are no buffers to fetch. In current
dp_rx_process gro flush is called at the end of nbuff process
and with out checking for vdev sanity it is referenced. So
add vdev null sanity check to prevent NULL pointer dereference.
Change-Id: Ie2d480108118d9b83373a450aecabee57675c41d
CRs-Fixed: 2507067
In case of TCP packets being processed by dp_rx_process, send out GRO
flush indication to the thread.
CRs-Fixed: 2500152
Change-Id: I4f464456d423e4680955992c0acf0ed5f4e618b8
Add cfr_enable flag in Probe response, so that FW can start CFR
capture for particular client.
Change-Id: Id38b61317384a069308de4931463f1aef4f65f38
CRs-Fixed: 2502030
There are 2 issues in the driver:
1. Currently host incorrectly fills the pdev id value as 0
in stats request, If host sends the pdev id as 0 for
stats request then FW sends the stats for all the pdevs.
2. If host requests pdev stats with pdev id as 0,
FW can send multiple events for each pdev stats
if one event buffer is not sufficient to fill the stats
for all the pdevs. Curent host logic doesn't process
multiple pdev stats events.
Address above 2 issues with below fixes:
1. Send correct pdev id to FW in the stats command.
2. Add a logic in host to process all the pdev stats events
received as part of the pdev stats request.
Change-Id: I5b5bfcda2f30fb32749c653c6524ecbd2edc44a4
CRs-Fixed: 2503273
Currently CP stats component does not fill the proper pdev_id
in the command for the stats request. This causes the value
sent to firmware to be 0 bydeafult. As per the logic in firmware,
if the value is zero then the stats for all the pdevs are sent.
To get only stats for a single pdev, send the pdev_id along with
the vdev_id in the stats request command.
Change-Id: Ic4ecad132c8764196b9f5ed6af76fe4f2778d8d1
CRs-Fixed: 2502459
Cleanup dp_clear_peer to be peer mac address based
from local peer id based.
Also, modify the API cdp_clear_peer with addition argument
for peer mac address.
Change-Id: I1bd3fab1b9510b5f1d4476e11b617fcb6417f2c4
CRs-Fixed: 2503774
rxhost ring backpressure:
identifying rings causing rx backpressure after being notified
by FW message. Adding logs to be able to see at what state
the ap was after a backpressure event was triggered.
Adding radio stats (261) as well as napi stats for better
state description.
Change-Id: I395450be6faaf959f91729516a7b229c5b3396ce
Add auto PM tag for WMI_HW_DATA_FILTER_CMDID command such
that CCE HW fiter feature can be enabled for runtime pm
as well.
Change-Id: Iec1495ebecb0aab0e695fb5e656ac13a22bba338
CRs-Fixed: 2505994
Currently a single API(dfs_get_precac_enable) is used to get
dfs_precac_enable and dfs_agile_precac_enable. This API is
wrongly returning value for dfs_precac_enable since agile
capability is set even for Cascade.
Separate out the GET APIs for getting dfs_precac_enable and
dfs_agile_precac_enable so that getting these flags becomes
independent of each other.
Change-Id: I08b0cbcd29c320a345865e3e9456ce3e809e26a6
CRs-fixed: 2501266
Add support for OWE and SAE roam target capability.
Add event mapping for the tgt event
WMI_ROAM_PREAUTH_START_EVENTID.
Add changes to send WMI_ROAM_PREAUTH_STATUS_CMDID after
the SAE external authentication event is received.
Also for SAE/OWE/802.1x, the key management offload
needs to be enabled by default as PMKSA caching if
set_pmksa is received from the supplicant. So remove
the additional key management offload check so that
OKC and PMKSA is enabled by default for SAE and OWE.
Change-Id: I01d3a07e2ce60e25ea8624c030c6a5802205566d
CRs-Fixed: 2491042
As vdev conversion is done in phases, so vdev stop response
handler for target_if is made global. To process vdev stop
response tlv extraction API is registered to WMI tlv_ops.
Change-Id: Ib00f7339330e69d6103a175611df7b59c01faad0
CRs-Fixed: 2506500
In the function extract_ndp_ind_tlv the data from FW is assigned
to the event.The event fields ndp_cfg, ndp_app_info and ndp_scid
are used as source in the memcpy without null check which can cause
undefined behaviour.
To solve this, add null check for ndp_cfg, ndp_app_info and ndp_scid
before memcpy use.
Change-Id: I4bf592e6977c50518e53ece268c34450d9684304
CRs-Fixed: 2476173
Optimize BSS score to consider OCE WAN and Band score only if
congestion is less than 75% (CONGESTION_THRSHOLD_FOR_BAND_OCE_SCORE)
Change-Id: I114032db59be162cad62dfa4cdcd52983f5eec9b
CRs-Fixed: 2505430
WIN and MCL both uses common targer_if code for vdev manager.
So legacy code and "CMN_VDEV_MGR_TGT_IF_ENABLE" macro is removed.
Change-Id: I2984ae44f3a7cfa01b8f1455353d09deb4db5759
CRs-Fixed: 2503804
Target will be sharing the time taken for reset in the
first Spectral report after reset. The reset delay value
is common for all the Spectral modes. Host updates
the timestamp WAR offset variable for all the Spectral modes.
CRs-Fixed: 2504798
Change-Id: If7d47a434054f220b0717f7d8939f9f8922af30f
Add device ID change and target type checks for pine.
Also remove memory war added for Hk emulation.
Change-Id: Idf531a48a03202d4fb241a92a1d671ee2b94cfbd
CRs-fixed: 2453899