Currently, as part of wlan_hdd_stop_modules, direct link config
is not being cleared but hif link state vote is cleared, as a
result when hdd_close_adpater() is called, link state is already
cleared, resulting in crash, as config is still enabled.
To fix this, clearing config as part of direct link context
de-initialization.
Change-Id: I1a5de6f427b5bc4dc4fe4346e53354645ad53529
CRs-Fixed: 3495027
STA is on 5 GHz 5260, SAP on 6 GHz 6415, GO on 5 GHz 5745.
STA receives CSA event to move to 5540. Then 3 vdevs are
MCC in 5 GHz high band which is not supported by target.
And we should avoid SAP+GO on same band MCC.
Fix by:
1. Check allow concurrency for STA CSA for more than 2 connection
case.
2. change SAP PCL to only includes SCC 5 GHz channel and 2.4
GHz channel to avoid SAP choosing 5 GHz MCC channel if STA+GO is in
SBS mode.
Change-Id: Iadf8cfd215393baf4823c0e7cb6aa3656d8004dd
CRs-Fixed: 3482252
The four SAP concurrency pcl table is deleted by change:
I494e7a8d6ecc0a550027ff7f64de5deb11b987a9, it is still needed
for MDM platform, otherwise the 4th SAP will be rejected by
policy manager.
Add back original four SAP concurrency pcl rules.
Change-Id: Ib80c58f114f494a2c66fc15286b1a434d577dd26
CRs-Fixed: 3490580
When the Intra band INI is enabled and the STA connected in 6 GHz
band the channel count and frequency are not sent in the
WMI_ROAM_CHAN_LIST command as the band is not defined or unknown.
As a result of this DUT is unable to trigger partial roam scan in
the current connected 6 GHz channel and does a full roam scan.
Add the 6 GHz band check in the Intra band enabled case.
Change-Id: I765c233d1e6bf71cab186041ebd7df2293be6f05
CRs-Fixed: 3469197
Currently as IPA_OFFLOAD path is enabled for OPT_WIFI_DP
usecase, this causes SAP/GO D3 WOW to be disabled.
This change will add a check to ensure D3 WOW is
enabled when IPA path is set for OPT_WIFI_DP usecase.
Change-Id: Ibec94ca172646c80fa9ec7e6ff24e6e5f6fcad60
CRs-Fixed: 3472752
Host parse newely added vendor command
QCA_NL80211_VENDOR_SUBCMD_CONNECTED_CHANNEL_STATS and trigger
scan to get connected channel stats from FW in case of MLO
connection.
On scan done host sends scan done indication to upper layer
via QCA_NL80211_VENDOR_SUBCMD_CONNECTED_CHANNEL_STATS vendor
command.
Change-Id: Iff09b6dfe88b5f075a4c81d8f0bfff5bbb0fedaa
CRs-Fixed: 3491058
When DFS CAC is going on for SAP, if 5 GHz mac is occupied by the
SAP and it's not available for 5 GHz NAN discovery. Enabling NAN
on 5 GHz in such cases cause inconsistency in firmware state machine
and firmware may assert as DFS MAC is not supposed to be disturbed
while CAC is going on.
So, check if NAN enable request has 5 GHz NAN channel also and reject
the request. Allow NAN enable command if it's 2 GHz only NAN enable
request, while CAC is going on.
Change-Id: If3f2b2b40cc2b70bc7a872970bc088204440d519
CRs-Fixed: 3458462
There is a race condition where profile for direct link is set but
hif link was not yet voted up to prevent suspend. Parallelly,
direct link config is cleared in different context causing hif link
to vote down without being voted up which resulted in crash.
To fix this, create a mutex lock and move all the config set
operations inside the lock.
Change-Id: I80924d9ed52a9889a178b98469be15af0454b022
CRs-Fixed: 3490442
In case of MLO connection, firmware sends each vdev's status
information via vdev extended stats event. Add support in driver,
to extract that information.
Change-Id: Ia7a0a92baf008e6549830672b68e58be5a8202df
CRs-Fixed: 3483731
when STA roams from multi link AP to single link AP,
the non-assoc link gets cleaned up(through disconnect path) and
RSO gets disabled as part of this. But RSO doesn't get re-enabled
when link cleanup is completed. So, STA can't roam further.
Remove the check which skips RSO enable if the current
disconnecting vdev is of type MLO link. Next API
policy_mgr_get_roam_enabled_sta_session_id() can fetch the
right valid vdev to enable RSO. Don't update PCL to
firmware as there is no need to update again as part of link
cleanup. Firmware has already got the PCL as part of assoc
vdev RSO enable.
cm_roam_switch_to_init() takes care of not allowing RSO enable
in disconnect case as the assoc vdev CM is in
WLAN_CM_S_DISCONNECTING state.
Change-Id: I155bb93868653d5575f81559c48b86b40cf5d59c
CRs-Fixed: 3487290
Drop any vendor command request to enter EMLSR mode if there
are any concurrent connections existing with MLSR STA as
this combination is not supported.
Change-Id: I3b1f2bbe714c83628a8394068f7483d3913ce421
CRs-Fixed: 3478257
Since fw update the logic of roam stats, the data of
wmi_roam_trigger_reason maybe null when fw send event
of WMI_ROAM_STATS_EVENTID to host driver, and at that
time, the num_roam_trigger_reason is zero, we don't
need reduce the length when extract roam stats event.
Change-Id: I332de7ba2d2efeba722e2194af4b9c97ef310a73
CRs-Fixed: 3475501
Host sends roam scan offload channel list via WMI_ROAM_CHAN_LIST
to FW after a successful connection.
The host creates a ROAM_SCAN_CHAN list with BSSID entries present
in the scan database. If the connection to an AP fails due to
Auth/Join/Assoc timeout, Host removes the AP entry from the Scan
database, assuming it’s not reachable (to avoid reconnecting to the
AP as it's not responding). Due to this, FW does not include the
frequency(s), for which the connection failed, in roam scan.
Fix is to store the frequency(s) of all the candidates to which the
driver tried connection in the rso config during connect resp failure
and use the same list to update the roam channel list on the top of
entries present in scan db.
Change-Id: I7a4bb3961a64fcf987cb6f2be87b6475363d500a
CRs-Fixed: 3486154
With the commit(Ic425cc065a29bbc444531f523eaccb14014ae47a) driver
enqueues the TDLS peer deletion as part of roam sync indication
and then enqueues the TDLS disable notify to firmware. But before
this driver is processing the TDLS enable notify which is part of
add_sta and then the TDLS disable is getting processed and
notified to firmware, which results in disabling the TDLS after
roam.
The correct sequence during roam should be delete the TDLS peers,
followed by TDLS disable notify to FW and then TDLS enable notify
to FW.
Driver already take care of deleting the TDLS peers as part roam
sync indication callback. This change calls the TDLS disable
notify API only after deleting the TDLS peers during roam.
Change-Id: I58ef78852290c95e6709e6aa1b0671916322625f
CRs-Fixed: 3486585
Currently, single API is being used to get sap freq for
both HT and LT profile type sap which may cause issue in
future because one could be in MCC but other will be strictly SCC.
To avoid any issue different APIs are introduced for different
AP profile type.
Change-Id: I7108ef96896d3bec2116c6936884500d82b24fa0
CRs-Fixed: 3489049
Add multi page prealloc pools for TX buffers and CE
TX buffers for direct link datapath.
Change-Id: I8c8be42b0530de39293ad8e45f47e16f90ea7767
CRs-Fixed: 3490109
Add a new cfg item to drop connection request if
AP is operating in 6 GHz SP mode and STA doesn't
support SP mode but supports VLP mode.
Change-Id: I0f20d63f68b2424390ca424188f95f26971c9ada
CRs-Fixed: 3470602
relaxed_6ghz_conn_policy cfg item is no longer needed
with new regulatory policy as there is no dependency
on STA, AP country code to find 6 GHz power mode for
connection and also connect request should be rejected
if AP is advertising VLP and STA doesn't support VLP.
Hence remove this cfg item and the related APIs.
Change-Id: I3a48a3c6343e57f4f2386ebbab1f88d5052af505
CRs-Fixed: 3470571
Roam background scan abort, driver print roam result
failed, but current ap is still connected.
Change roam abort background scan log instead of fail.
Change-Id: Ia10f010e8c353b12bdbbe0407c8e3d30b1ea45c2
CRs-Fixed: 3469290
Caller of wlan_cm_get_rnr, uses the cm request data without
lock.
Fix it by passing a local memory to wlan_cm_get_rnr to get
a copied data to use.
Change-Id: I574de5391dd02c1603e7c9c4b79b58d45e6e7739
CRs-Fixed: 3483870
For ML-AP, if fastreassoc command is received and scan
candidate is not found in host scan db.
Host will still send roam invoke request to FW, FW will
perform scan.
Change-Id: I8157cf396e3e0c19607d990307e07d31e879a2d4
CRs-Fixed: 3474257
When handling T2LM action request frame, clear the previous
ml peer level t2lm negotiation before applying new tid mapping
to FW.
Change-Id: Ie7f7a28fb7cf886778cd697605352c4ff47d18fd
CRs-Fixed: 3487089
After ML STA connected on 2.4 GHz + 5 GHz, two existing
SAP (2.4 GHz and 5 GHz) have to force SCC to respective
band's ML link home channel. Currently driver make the
CSA for two sap at same time but to different channel.
We only support CSA one by one (for different target
channel) because only one target channel is in
mac_ctx->sap.SapDfsInfo.target_chan_freq. Otherwise, the
value will be override by second SAP's CSA and causes
first SAP changed to wrong channel.
Fix by:
1. change __policy_mgr_check_sta_ap_concurrent_ch_intf to
trigger CSA for one SAP by break the loop.
2. reschedule the sta_ap workqueue after first CSA done in
multiple SAP case. Then do force SCC for second SAP.
Change-Id: I1de81b5839a7e24f862627ecc49663dcd0d91ce4
CRs-Fixed: 3470343
As per requirement, for MLO connection host should reject
GET_CU_FOR_EACH_SUB_BW request and return failure to upper
layer as a response.
Change-Id: I8177d92982c832a17c1657239b69cc3712e1eaf4
CRs-Fixed: 3476349
Diag logging is used for connectivity logging of
BTM event.
Remove unused legacy connectivity logging mechanism for
BTM events.
Change-Id: I65dc5fe5f071fd74eeed2433894a238318ce76ab
CRs-Fixed: 3470401
Diag logging is used for connectivity logging of roam
candidate event and roam roam result event.
Remove unused legacy connectivity logging mechanism for
roam candidate and roam result events.
Change-Id: I826107fc764abdeec7408dbb6c52e580d1fe32f4
CRs-Fixed: 3470206
Scenario: There is dual sta present in HBS mode in DUT where one
sta is on wlan0 interface and it has 11be capability, so it has
formed ML connection with ML AP. The another STA is present on
wlan1 interface and this STA also supports 11be capability. But
as per current design, host supports 11be with MLO. It doesn't
support 11be alone. Also 11be with MLO is supported only in wlan0
interface. So for another connection which are present in wlan1
interface, even if it supports 11be host will downgrade to 11ax
and form connection.
During the formation of second connection, host will sends peer
create command(WMI_PEER_CREATE_CMDID) to firmware. Before sending
this command, host checks only eht cap in cm_create_bss_peer()
and fills the mld_mac addr. Because of that, DP assumes that
there is an ML connection and it creates MLD peer on wlan1
interface. Due to this, it causes ping failure on wlan1 interface
as the ICMP response might be coming on incorrect peer and it's
getting dropped.
As part of fix, check whether vdev is mlo supported or
not in cm_set_peer_mld_info()
Change-Id: Ieed67aa2735d200a140f9e771d791b3b9308a0f9
CRs-Fixed: 3474874
Add API to get LI which is configured by the user.
In case, user has not configured any interval,
device uses default LI and this cmd will return 0
Syntax for cli cmd: driver GET_LISTEN_INTERVAL
Change-Id: I3ef12ffc757288c057c88dceece7dbc2da68880b
CRs-Fixed: 3425472
If STA connected with MLO AP, don't process ch_width update
with notify request.
Change-Id: Id2e0d6357feac13787abcafe8b9d69a0c64dbedb
CRs-Fixed: 3472173
Host receives QCA_WLAN_VENDOR_ATTR_CONFIG_CHANNEL_WIDTH vendor
command indication to update STA adapter channel width.
On receiving channel width update indication from upper layer,
first host updates internally and send new channel width value
to FW via WMI_VDEV_PARAM_CHWIDTH_WITH_NOTIFY.
Target firmware should take care of notifying associated peers
(except TDLS) about change in bandwidth, through OMN/OMI
notification before performing bandwidth update internally.
Change-Id: I517ed1fbf8d074e511f8fb43c9c1dac824c9f084
CRs-Fixed: 3469473
In case of wide band scan request, FW sends subband CCA busy info
to host via a new tlv wmi_cca_busy_subband_info added in existing
event WMI_CHAN_INFO_EVENTID.
Fix is to store CCA busy info coming from FW to HDD context.
Change-Id: Ic4b439ed1c270badbe265dc8543dc6d6a1612fab
CRs-Fixed: 3469467
Diag logging is used to log mgmt frame events.
Remove unused unused legacy connectivity log used
for mgmt frame events.
Change-Id: I7d682f9aa4005d82beef03030017f943687e3480
CRs-Fixed: 3469403
Add support to stop t2lm timer during sta disconnection
and clear t2lm mapping.
Change-Id: I59e724331eda8b67fd1405031bdb00d12805ad09
CRs-Fixed: 3479496
When roaming happens, vdev CM changes from CONNECTED to ROAMING first,
vdev still keeps up, then RSO becomes ROAMING_IN_PROG later,
so need permit RSO cmd during CM ROAMING state.
Change-Id: If4902dcff6b8b4f169fb43da4a889b09e1c2875d
CRs-Fixed: 3482158
While mlo wlan0 sta connecting with vdev0 up and vdev1 not up yet, wlan1
vdev2 disconnected, enabled roaming on other connected sta, then vdev0 RSO
enabled before vdev1 up, mlme session for vdev1 wasn't created in F/W. When
roaming happened, vdev1 peer wasn't deleted, F/W asserted.
To fix it, for mlo sta, follow legacy sta, if not all of requested links
are up, abort RSO operation except deinit on it.
Change-Id: I7026614ab91cf0a603c97e962433dc5139b210dd
CRs-Fixed: 3471655
If PMKID present in AP expires, AP rejects the PMKID based association.
Current design is to clear the cache using BSSID/MAC address of link
in such cases to let a fresh SAE authentication to happen.
But host driver stores PMKSA with MLD address for ML BSS.
Adapt to the same and update PMKSA cache clear APIs to use
MLD address instead of link address.
Use the API which gives ML BSS peer's MLD address for
MLO VDEV or else legacy address for non MLO VDEV to remove
the correct entry in PMKSA cache based on association.
Change-Id: I4af9814e377737eef4a54fdf15db9f6bac38d954
CRs-Fixed: 3433723
Add the following fixes to get Async TID to link map info:
1. Add APIs to register and unregister the T2LM callback.
2. Add HDD callbacks.
3. Send T2LM info, when receiving TID-to-link mapping response
from the associated AP MLD.
Change-Id: Ia98605b3244b24cc3cac41d2decf22ff6aa82f88
CRs-Fixed: 3431518
Need to add support for rTWT feature in host. Host needs to define rTWT
ini, and set rTWT bit in EHT Cap. rTWT ini will allow users to
enable/disable rTWT feature. We define rTWT ini and function to get ini
value. EHT Cap will advertise rTWT support to peer. To populate EHT Cap
we must validate rTWT is supported in driver. To do this, we check rTWT
and bTWT params.
Changes are as follows.
1) Define rTWT ini
2) Get rTWT ini value
3) Get rTWT support
4) Set rTWT bit in EHT Cap
Change-Id: Id5676c6b7c3d4f48a0010f2e9ae369d9dfa710e9
CRs-Fixed: 3446652
To process get_cu_for_each_subbw request from upper layer,
host needs to trigger scan for initial connection ch width
on every get_cu request.
Change-Id: I2bbf20c9207f46983b14dcd95bf81f32cfd7c060
CRs-Fixed: 3466958
Some AP doesn't honor CCK rate for auth/assoc.
this ini is added to detect specified AP and
send auth/assoc/reassoc(non-offload) with 6 Mbps
rate on 2.4 GHz, then AP will ack to STA.
Change-Id: I8a164471198842368add40ca726420569dd82430
CRs-Fixed: 3412381
Add the following fixes in case of peer-level tid-to-link
mapping negotiation.
1) Copy peer-level mapping to wlan_prev_t2lm_negotiated_info
from wlan_t2lm_onging_negotiation_info after negotiation
is completed as the former structure is used for mapping
reference.
2) Currently, the Host sends peer-level negotiated mapping
to FW, followed by an action frame response to the AP.
Reverse this order to align with the design flow.
Change-Id: I0e0db95c539cfd9aee27b481683e3e807a1f712e
CRs-Fixed: 3423125