"prev_bssid" can be AP mld address if current connection
is mlo connection. Allow roam if "prev_bssid" is AP mld
address.
Change-Id: Iebc71acae11fcbfb4fc98ec2199d546d71ef057c
CRs-Fixed: 3489879
In the enum wlan_cm_connect_fail_reason, the value of
member CM_NO_CANDIDATE_FOUND is modified to 1 in order
for value of members of the enum will begin from 1.
Change-Id: I3f4686b32cec92b45e03b30b4293b4571a3f01fe
CRs-Fixed: 3486473
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: Icbe109abecdd73ceedee8ecec45ae82cd47464e0
CRs-Fixed: 3470599
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: I215939bdce2e08eb9d4c5286487941198ab19232
CRs-Fixed: 3470569
wlan_cm_get_rnr, uses the cm request without lock and pass the
pointer to the caller instead of passing a copy.
Fix it by copying the rnr info while holding the lock. and move the
cm req access logic to core from dispatcher.
Change-Id: I72861021d98b996a379a2917874b5dadbc37c6af
CRs-Fixed: 3483871
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 eht cap as well as vdev is mlo supported or
not in cm_create_bss_peer()
Change-Id: I60dbb8ee91025266d0b9b48075dc2db9a407e015
CRs-Fixed: 3454128
1. Read the new service capability:
WMI_SERVICE_CCA_BUSY_INFO_FOREACH_20 MHz: Via this host knows
whether FW supports reporting of CCA busy info for each 20 MHz
subband of wideband scan channel or not.
WMI_SERVICE_VDEV_PARAM_CHWIDTH_WITH_NOTIFY_SUPPORT: Via this
host knows whether FW supports VDEV param channel width switch
with OMN/OMI notification or not
2. Register osif callback to send scan done indication to upper
layer
3. Add 2 new scan flags pause_home_channel and
report_cca_busy_for_each_20 MHz
Change-Id: I63d561a3c5f8e49a3ca42d956e6b630c63edeaf4
CRs-Fixed: 3460901
In independent repeater scenario when STA connects to root AP on different
channel as that of AP Vdevs, then txCSA is used to move the AP vdevs
to the new channel using FW_VDEV_RESTART.
If a ML-AP vdev is stuck in MLO_SYNC_WAIT state, then TxCSA is not
processed which would lead to MVR timeout.
Add change to handle FW_VDEV_RESTART event in SYNC_WAIT.
Change-Id: If7359a5a39ed9478c813b8eb0f97a6a0d07e1ba1
CRs-Fixed: 3477635
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.
Introduce new API which return the legacy address for non-ML
association and MLD address for MLO association of the BSS peer.
Use this API to get the correct entry from PMKSA cache to delete.
Introduce new utility API to fetch the MLD address from scan entry.
Use this API to get the MLD address of the ML candidate.
Change-Id: Id35a3937ba6649e8ba7ae8f849ac1ed2a9cc83f8
CRs-Fixed: 3453839
If link vdev roam sync failed and new dp mlo peer wasn't created,
assoc vdev roam sync was still handled, dp peer update failed
and asserted for mlo peer not found.
To fix it, if link vdev roam sync failed, return to trigger HO_FAIL,
don't handle assoc vdev roam sync.
Change-Id: I47aa70723cd741839cdb8fb21d446730a8ed80e5
CRs-Fixed: 3468553
Add if_mgr support to handle STA CSA complete notification and
SAP CSA Started and complete notification.
Before CSA vdev restart on SAP side, disable TDLS off channel.
After CSA, check if TDLS is allowed for the current concurrency
and take action accordingly.
Change-Id: Icbadb898f5b468717f74f92a0993c05b59719205
CRs-Fixed: 3445113
Some IOT APs only allow to connect if last 3 bytes of
BSSID and self MAC is same. They create a new bssid on
receiving unicast probe/auth req from STA and allow STA to
connect to this matching BSSID only. So boost the matching BSSID
to try to connect to this BSSID.
And add logic to refresh the candidate list before next
candidate try when the last candidate connect fail.
Change-Id: I482e122c8c9febbab42f64013fbb78c266f49655
CRs-Fixed: 3432618
Trigger SAP / GO channel switch on receiving
wmi_csa_ie_received_event_id from FW in STA + SAP / GO DFS SCC
concurrency.
Change-Id: Iff60dffb71b170f56c4fbee4e297b81b87632a2a
CRs-Fixed: 3431365
This is needed in case the STA is configured with more MLO links
than the AP. It will make sure only links that the AP allows
are in use in the STA MLO as well.
Also check for mlo flag on vdev before sending link connect and
updating partner bitmap.
CRs-Fixed: 3423668
Change-Id: Iceec3cf7e8dc7e5bc0a29c56b990faef4f741158
Add variable and get / set APIs in VDEV mgr for STA + SAP / GO DFS SCC
scenario to track SAP / GO's channel switch before STA's channel switch
Change-Id: Ie13291602a5888942c71e3882c72796c7ea47378
CRs-Fixed: 3431360
As part of commit I7a08635a7912cbd940d90a2d62433296740ad913
a vendor command is added to enable roam stats event.
This change registers callback to send the added vendor
command event to userspace.
Change-Id: I6dc3f8357ace5bb3fa41b4aa116652a91b9fd924
CRs-Fixed: 3427397
Assoc dev disconnect happened before link vdev for following sequence
1) SB disconnect followed by NB disconnect.
2) SB disconnect queue disconnect on both link and assoc same time.
3) NB disconnect queue link disconnect first and wait for it to complete.
Fix in mlo_sync_disconnect by using sync API only for assoc vdev, for link
vdevs, let the non-sync API post the disconnect, thus all disconnect goes
in 1 instance and wait for assoc disconnect (last) to complete, similar to
SB disconnect.
With this both vdev1 and vdev0 disconnect will be queued at same time, thus
maintain the sequence.
Also optimize the wait time of the assoc vdev in
cm_disconnect_start_req_sync, to include all link disconnect time as well
(DISCONNECT_TIMEOUT * 2 + 5000).
Flush old disconnect only for non-MLO and assoc link, do not flush for link
vdev.
Change-Id: Ibaf4051d6e06a8e8354571e87883ac72b6ac07f0
CRs-Fixed: 3420508
Disconnect only non ML peers in CSA from non-DFS channel to DFS channel,
while keeping all MLO peers connected.
Change-Id: I7e8347cf4692b16b84ffbce4b102dd2f23bb70f0
CRs-Fixed: 3394219
In MLO scenario where start/cac response for partner ML AP vdevs are
processed simultaneously on different CPU cores, the order in which
the vdev sm lock is acquired may lead to deadlock.
To fix add change to have vdev up bitmap and process sync complete
only for those vdevs for which the bitmap is set
Change-Id: I9ca8b192edeb7d491be3a7acff30c2d3545a5417
CRs-Fixed: 3403603
When NDI stop bss is pending in serialization queue and
STA connect is in progress with multiple candidate trying,
NDI stop bss will be timeout and vdev clean up will not happen
if STA connect takes too much time.
Fix by stop next candidate trying if NDI stop bss in
queue.
Change-Id: I29ca38f420586862f294d10041fc1754f8b485ce
CRs-Fixed: 3402121
Add support for generating link specific assoc request/response
and probe response for 2+ mlo links.
Change-Id: Iadd09efeb0b0098baeae25f3b1968826e75dedc4
CRs-Fixed: 3049640
Add mlme_vdev_reconfig_notify callback to notify the ML
reconfig link removal starting after receive the first
ML reconfig link removal IE.
Change-Id: I9ae37b7defc75c97e7bc39e07c9d154e1923aedd
CRs-Fixed: 3380159
Add new roaming invoke source enum CM_ROAMING_LINK_REMOVAL.
That will be used in link removal process to trigger STA
roaming to new AP.
Change-Id: I78cb1fcfce8e11fcca33ce99c80a4d6444ac3fea
CRs-Fixed: 3353004
Driver doesn't sort the AKM properly based on security
to use for the association. This causes lower secure AKM to be
used when AP advertises multiple AKMs.
Choose more secure AKM for association. Below is the new
changed order of Secure AKMs:
1. FT-FILS SHA384
2. FT-FILS SHA256
3. FILS SHA384
3. FILS SHA256
4. WPA3 FT-SUITE B Sha 384
5. WPA3 802.1x Suite B - 192
6. WPA3 802.1x Suite B
5. WPA3 FT-SAE
6. WPA3 SAE EXT Key
7. WPA3 SAE
8. WPA3 OWE
9. WPA3 DPP
10. WPA2 FT-802.1x
11. WPA2 802.1x SHA256
12. WPA2 802.1x
13. WPA2 FT-PSK SHA384
14. WPA2 PSK SHA384
15. WPA2 PSK SHA256
16. WPA2 FT-PSK
17. WPA2 PSK
Change-Id: I18910b56b15624725ad4fc0cdb0b37ff241e82ff
CRs-Fixed: 3400535
When calculate mlo score, partner link congestion score is used wrongly.
Total congestion score after considering both assoc and partner link should
be used.
Change-Id: I6f94fc1bcbfd1adf547dbf519e03524409509260
CRs-Fixed: 3399624
In legacy to MLO roaming case, the link vdev will be
moved from INIT->UP via EV_ROAM event. Similarly, if
the Hand-off fails in host due to host-related handling,
treat the failure as HO-FAILURE and move the link VDEV
SM from UP->INIT directly.
Change-Id: Ia6bfeb958f0302a934d24c9b40fadd4a8f557236
CRs-Fixed: 3389148
When Scan db reaches max size, driver deletes the oldest node,
so chances are that BSS on 1st freq scanned is removed.
This lead to scan for SSID, which will do a scan again on
all freqs, and thus we end up in flushing the entry again.
TO fix this use freq hint to scan for ssid to quickly find the
AP so that required AP remains in scan database as it will
be the latest entry.
Change-Id: I28849ee97ff1f492d372870c362288206c4ec9a5
CRs-Fixed: 3392831
There are two different name with different range of value for
aliasing INI's.
So, it should pick the valid range of value wrt INI name.
Change-Id: I81ece854a2d8b34f232e03c8ab835161d58c56b1
CRs-Fixed: 3355346
Currently, the definition of WMI_ROAM_GET_VENDOR_CONTROL_PARAM_ID
is present at the fw-api level. The host should not be using fw-api
definitions outside the WMI TLV code. To make sure it, Add
host-defined enum vendor_control_roam_param which defines the param
IDs that the host supports.
Change-Id: I0aaba99c1af7c7c50a62f9bc763d0968c3a3a99c
CRs-Fixed: 3366594
The kernel-doc script identified some documentation errors in the
umac/mlme folder, so fix them.
Change-Id: I84617fe2007e51dcb009801ebc6cdf87c0d0a686
CRs-Fixed: 3381478
Add the code logic to save the BSS parameters change count (BPCC)
for critical update feature.
Change-Id: I3fafd44af8661d1dcf5d7bbde84d2729d390a44c
CRs-Fixed: 3324174
In some scenarios, memset function is called after spinlock initialization,
which clears the container holding the spin lock causing the spinlock to
be uninitialized. Fix this by initializing the spinlock after the container
has been cleared with memset().
Change-Id: I87e9844e95e814d8dca25e591a6494516d929c70
CRs-Fixed: 3377971
- Add osif callback api to get scan ie params
- Made few mlo manager api's public
CRs-Fixed: 3288038
Change-Id: I15a764682b8164eb1b66adeff44d7e344f2563c3
As part of VDEV SM history only vdev id is logged.
In multi psoc scenario it's difficult to differentiate vdevs across
psoc as vdevs share same id across psoc.
Hence add change to log psoc id along with vdev id.
CM-PS_0-VD_1: Connection SM PSOC:1 VDEV:2
Change-Id: I83f6b69e1ea308032ad8a58e4c81b74b76a277d3
CRs-Fixed: 3364875
As part of VDEV SM history only vdev id is logged.
In multi psoc scenario it's difficult to differentiate vdevs across
psoc as vdevs share same id across psoc.
Hence add change to log psoc id along with vdev id.
VM-PS_0-VD_1: VDEV SM PSOC:0 VDEV:1
Change-Id: I0bba894a79b3ad9e7ce64ec5219eb7c65767f19b
CRs-Fixed: 3364875
Currently, host driver notifies the last connect failure to upper
layers. But some customer needs the first connect failure response.
So, in this change, cache the first connect failure response in connect
request structure and it retrieves it when all candidates are failed
to connect and notify it to upper layer.
Change-Id: I850c20cdfeb0c8423d074094f97c83599e43b409
CRs-Fixed: 3378788
Currently, driver only sorts the BSSID according to scoring algo.
But some customer need to prioritize the BSSID HINT and filter out
BSSID (except BSSID HINT) which have RSSI value lower than value
defined in INI parameter.
For this, add new INI parameter to configure RSSI value
and check this RSSI value for all BSSID expect BSSID HINT.
Change-Id: Ib942f32878b35cbdb20ba669808f4a5c8820ebd7
CRs-Fixed: 3378781
To support fixed channel SAP in unsafe channels, driver needs
to cache and retrieve SAP start mode i.e. ACS or fixed.
Add a new param is_acs_mode to vdev_mlme_mgmt_ap and APIs to
set and get the same through vdev.
Change-Id: Ib274b95be66e774b15f4687a02ed7fef6bf21056
CRs-Fixed: 3381401
Currently host drops an AP from scan list if host country is set to
US and AP country is non-US. This implementation violates our
standard regulatory scan policy.
To address this issue, introduce a new INI to differentiate
between our standard regulatory policy with others.
Change-Id: Id72f871653e31969c4d1b147cb3c557f90a6c8f6
CRs-Fixed: 3361720
Implement component APIs for existing vdev_mgr
to get bssid in DP component module.
Change-Id: If70832308028ad1965f4960bc2ba9664b7c09452
CRs-Fixed: 3351504
- Replace T2LM array in wlan_t2lm_context structure with established_t2lm
and upcoming_t2lm structures
- Mapping switch time is different for each AP vdevs. Hence, store the
value in vdev_mlme_proto_ap structure.
- Fix a few issues seen in mapping switch time expiry and expected duration
expiry.
Change-Id: Id69badc3f4bf5e5e741691348488369008ffc4e9
CRs-Fixed: 3369279
The current channel list alone is not enough to represent the
capability of the chip or device. Given a channel, in many
cases it may be required to know all the power modes that are
supported by this channel.
Remove wlan_reg_fill_channel_list to use the super channel API
wlan_reg_fill_channel_list_for_pwrmode.
Change-Id: I9645caff236af786b6376608be2aa56a28fe689c
CRs-Fixed: 3357161
Currently, BSS beamformee score is calculated from vht_cap or
eht caps, so for 6 GHz HE capable BSS it will calculated to zero.
Due to this 5 GHz will always get selected compared to 6 GHz BSS with
all other capabilities and conditions same in both BSS as 5 GHz
will have more total candidate score.
Fix this issue by correct calculation of AP beamformer capability
in case of 6 GHz HE BSS.
Change-Id: I0f3285ce1c5c1aeeba624c5371ff0f884ae78c58
CRs-Fixed: 3351991
Changes to handle dynamic link add for non-AP MLD.
Also add change to clear mlo cap for link removal of vdev.
Change-Id: I47e0bb77b7f32296e5745ffd53ce3a34ec35a63a
CRs-Fixed: 3346538
Update MVR handlers and init to setup/use MVR bitmap
depending on bitmap MVR support by FW.
Change-Id: I3a73ddefeae85d8f6b4fc31f9c1f1164fa5346c7
CRs-Fixed: 3355001