Currently, unsafe channels are avoided when SAP restart happens.
If WMI_COEX_FIX_CHANNEL_CAPABILITIES is advertised by firmware
and if the SAP is started in a fixed channel, don't restart even
if the current operating channel is unsafe.
Change-Id: I5f7d632bcc00a1b5351dad64aca0ce16f1057537
CRs-Fixed: 3381394
Introduce diag logging support for Neighbor report and
beacon report via event id EVENT_WLAN_NBR_RPT and
EVENT_WLAN_BCN_RPT.
For Neighbor report token, ssid, report number, frequency
list and frequency is sent. For Beacon report token, mode,
operating class, channel, duration, request_mode and report
number is sent.
Change-Id: I7ef407fa729e608ad0a7036f024acbf8b5180181
CRs-Fixed: 3370758
1. If CSA failed for last CSA in progress, can't stop SAP, SAP stop and
SAP CSA concurrency may lead to assert.
2. When access global var like pm_conc_connection_list, always need add
lock protection.
3. During CSA in progress, NAN CSA don't block current thread, just
return.
4. When SAP CSA completed, need check whether need CSA again for NAN
started during CSA.
Change-Id: I076ecad7395a265bbe83aaf97617a9a8b6c8b41a
CRs-Fixed: 3357265
Currently some channel list modifications for SAP and P2P GO mode
are present in policy_mgr_get_channel_list, whereas separate APIs for
SAP and P2P GO specific channel list modification are present, hence
keep all the mode specific channel list modifications in respective
APIs.
Change-Id: I393fbad12f29c761c1158fc5eb4ba0ebd6a660b6
CRs-Fixed: 3321108
Add channel tx max power factor to existing ACS channel weight logic,
so if AFC available can automatically select Standard Power channel
which has higher 6 GHz tx power and better performance.
Add SAP best channel selection callback when AFC triggered DCS,
DCS module will invoke this callback and dynamic switch to best
channel/bandwidth if possible.
Change-Id: I300057c2b11d0b818f4e20ba51d6ab9b82f6a3ff
CRs-Fixed: 3204199
When vdev_mac_entry is NULL, update the hw mode index as well
to avoid mismatch between host and target.
Change-Id: I67bd91af8c72dcc468c128e266e7074308de04c0
CRs-Fixed: 3342565
Host driver tries to fetch info of disabled ML links from
pm_disabled_ml_links by passing arrays to fill vdev_id_list,
freq_list and ml_idx list. Disabled + enabled links together can't be
more than MAX_NUMBER_OF_CONC_CONNECTIONS from functionality perspective.
But static analyzer tool complains that there are chances for out of
bound access of the given arrays while filling the indexes. Add checks to
avoid any such possible out bound access.
Change-Id: Icff77f9700c782f05e10c1d0aee8e1f238b0cc94
CRs-Fixed: 3344532
Clean up code for sme_get_valid_channels() and
sme_get_roam_intra_band() apis and
replace it with ucfg api.
Change-Id: Ic2f07e2193186d1e1ac81f6e5909417c10ab9c89
CRs-Fixed: 3335898
If sta connect to an AP at 5 GHz DFS channel, P2P-GO open and would
scc on the same channel. We don't expect filter out the DFS channel
from PCL list.
Change-Id: Idd8707d7aea908d17d720b54c0228a131cf17fcd
CRs-Fixed: 3345700
The mandatory channel policy was created for STA + SAP 2 vdev concurrency
case. For MLO STA (2+5/6) + SAP 3 vdev concurrency case, use general
force SCC logic until the requirement is updated in this case.
Change-Id: Ifca16824d53f272adc5b6ff763c1b4cc08af6a2f
CRs-Fixed: 3347722
When dual sta connected as SBS mode instead of dbs mode, driver didn't set
pcl per vdev, so dual sta had same PCL in firmware, MCC may happened after
roaming.
Fix:
1. Host pass roaming MCC disallow flag to F/W by checking primary vdev id.
2. For platform SBS supported, when doing dbs or sbs, send PCL from table
to F/W directly, allow SCC and SBS<->DBS roaming, don't limit to intra
band, only avoid mcc case if no primary vdev.
3. Use policy_mgr_concurrent_sta_on_different_mac to replace
policy_mgr_concurrent_sta_doing_dbs, add logic to consider SBS when set
PCL to F/W.
4. Change dual sta PCL table to remove mcc channels.
5. When STA channel switch, also update PCL to F/W.
6. For roaming case, do vdev level PCL update for all sta after connection
update in policy mgr, or wrong PCL is got.
Change-Id: I631c84c96da2bba4011b69e4c076db174205c874
CRs-Fixed: 3336768
While SAP doing CSA, NAN enabled, SAP tries to do CSA to force SCC with
NAN in scheduler thread, since last CSA in progress, scheduler thread is
blocked to wait last CSA finished, CSA timer can't be handled in scheduler
thread any more, last CSA can't finish, deadlock happens until timeout.
To fix it, let SAP force scc with NAN logic run in work thread instead of
scheduler thread.
Change-Id: Icb774ffcfc70f279ba3b18b3c5cd4a169180e99b
CRs-Fixed: 3344905
In current design of sta+sap scc on indoor channels, the NO_IR
flag of all the indoor channels are removed during init.
Then, based on the operations on the SAP interface, the
SAP concurrency will be decided in host driver.
However, some userspace p2p applications, do not query the
pcl list from driver, therefore standalone P2P GO are sometimes
brought up in indoor channels.
To fix this:
1. Upon STA connect: Remove the NO_IR flags only from the
indoor channels to which the STA is connected.
2. Upon STA disconnect: Add the NO_IR flag back to the
disconnected channel.
3. Upon STA roam/csa:
a) Add the NO_IR to the new channel if it is indoor.
b) Remove the NO_IR of the previously connected channel
once the SAP/GO(if present) moves out of the indoor channel.
4. The NO_IR flags should be removed for all the bonded channels
on which the STA is active.
5. In indoor concurrency cases, add logic in the SAP start to
limit the channel width with the STA interface bandwidth. Since,
only the bonded channels are active channels.
Change-Id: Ib0b30e1f17d0eb944c72b26bb679bf7447b9032f
CRs-Fixed: 3296208
Pcl len is always 0 if existing interface is not LL SAP.
As part of fix, return original pcl len if LL SAP is not present.
Change-Id: I51b308483364f40da03f6f9f4daea1a1f3b72019
CRs-Fixed: 3342540
Currently probe request is sent every 200ms during join timeout
this can lead to 16+ probe req, send during join time.
Change logic to send max 5 probe req during join time,
if candidate freq can lead to MCC concurrency scenario.
Change-Id: I7956771e2cf6724754f59c6db5b07fb45426ae41
CRs-Fixed: 3338329
In 11be capable configuration, for connection attempt
to MLO AP from non-MLO type vdev, downgrade to 11ax
mode association for that vdev.
User can still connect in ML mode from MLO type vdev.
Change-Id: I1e7cf940a778a20f2f4d5d24283ffb6aae52781b
CRs-Fixed: 3312163
In policy_mgr_get_index_for_ml_sta_sap_hwmode_sbs,
if SBS supported, at least one share type should be
supported.
Fix the missing check of Low share SBS.
Change-Id: I9ab848bab9ae8eb5c9d4bb85022b83be92e4c1e9
CRs-Fixed: 3338956
In SBS disabled, STA connects to MLO AP, then start P2P GO on 2.4 GHz.
The non SBS 3rd connection PCL table doesn't support such combination
and P2P GO start is failed.
Fix by add P2P GC/GO valid PCL type for PM_STA_STA_DBS_2x2
Change-Id: I8d36a11ca0005a25d17187100124e355fcb945ca
CRs-Fixed: 3334208
Kernel doc mismatch in policy_mgr_are_sbs_chan(). Correct it
by adding proper argument.
Change-Id: Ic72659df96bac1f98323ec7a9d339d0a975434a0
CRs-Fixed: 3336165
Policy manager restricts concurrent ML SAP and ML STA
operation in existing rules.
Allow atmost one ML SAP to exist and disallow any secondary
ML SAP start BSS.
Allow ML STA even if ML SAP is present, as only one ML SAP
is allowed, remove the code check for is ML SAP while checking
concurrency rules for ML STA.
Change-Id: Icced604c1685eaf00452b240d816fdd8bc2a97d2
CRs-Fixed: 3331402
If ml sta is not "connected" state, no need to do link state handling.
After disconnected, target will clear the force active/inactive state
and host will remove the connection entry finally.
After roaming done, active/inactive will be re-calculated.
Change-Id: Ic9ba3e3ef704b3dcdd8185e9b0864a9cbac000c7
CRs-Fixed: 3322063
With 11be mlo, the number of open station interfaces is 3.
Modify the check in policy manager api for the same.
CRs-Fixed: 3320739
Change-Id: I89166ebdf1559cde6f77f5a5c535e5f2e81eefc5
Currently, roaming is disabled with requestor "RSO_CONNECT_START"
on the STA when concurrent P2P-client is connected .
It's re-enabled once the P2P-client is disconnected but with
requestor RSO_INVALID_REQUESTOR. Roaming module still doesn't
re-enable roaming as it expects roam-enable command from the
requestors(i.e. RSO_CONNECT_START in this case) which disabled
roaming.
Pass right requestor to re-enable roaming.
Change-Id: Icb3deeed788ca248391b4b84288229aea2bdb8c2
CRs-Fixed: 3330219
For MLO STA+SAP case, mlo link maybe in inactive state after
connected and the hw mode maybe not updated, check MCC/SCC by
policy_mgr_are_2_freq_on_same_mac may not match MCC/SCC state
after the link is activated by target later. So to check frequency
match or not to decide SAP do force SCC or not if MLO STA 2 links
are present.
Change-Id: I614e6879cf4f9614b979fc3c78f87b76fc6c7c16
CRs-Fixed: 3313043
If existing STA+STA is MLO STA, the current HW mode is not
reliable because the STA link maybe inactive. HW mode may
change if MLO STA becomes active.
Add special handling to this case by checking MAC frequency
range to decide DBS or SBS.
Change-Id: I4d3728965d2f687805535abb0716bb1b58e1c51d
CRs-Fixed: 3328517
In concurrency case: GO on 5180 MHz, SAP on 5765 MHz,
MLO STA vdev 0 5180 MHz, MLO STA vdev 1 2462 MHz.
When the MLO STA is up and driver does force SCC on
SAP, the get PCL is failed because the GO vdev,
MLO STA vdev 0 and vdev 1 are all non-SBS channels
between each other. Driver doesn't handle the case in
policy_mgr_get_index_for_ml_sta_sap_sbs if current
hw mode is SBS. This case can happen the mlo sta link
vdev is inactive after get connected.
To fix it add new API:
policy_mgr_get_index_for_ml_sta_sap_hwmode_sbs to
handle it. It will return the correct PCL index
to avoid 3 home channels on same mac.
Change-Id: Ia16f8a391b34fc15287a93590b2c119d58250e20
CRs-Fixed: 3326358
Don't allow ML links to form MCC, if second
ML link is trying to form MCC then send disable
to FW and FW will decide which link to be disabled
to avoid MCC. Similarly if any SAP/P2P link disables
then ML STA link shouldn't enable back if it can cause
MCC with existing ML link.
Change-Id: I9bd8e257ad3fc3ee54d9e9d79c66962469b0b827
CRs-Fixed: 3313944
For eMLSR mode, the lower 27 bits of hw_mode_config_type
are HW mode and higher 5 bits are MLO Cap flag.
To update MAC frequency info correctly, get hw mode type
for eMLSR by macro WMI_BECAP_PHY_GET_HW_MODE_CFG().
Change-Id: I18a0afb26985b6ccda091fa1564713af0260353f
CRs-Fixed: 3314401
With MACRO FEATURE_WLAN_CH_AVOID_EXT enabled,
"restriction_mask" can only be checked if
coex_unsafe_chan_nb_user_prefer = 1. If the INI
coex_unsafe_chan_nb_user_prefer = 0, do not need to check
"restriction_mask". It will remain uninitialized 0.
Change-Id: If7bd1223ee3779b72fadb40e622f682db03f4ea5
CRs-Fixed: 3287634
Currently CH_WIDTH_MAX is set as default BW when sap do restart,
then apply some checking rules to get the final BW. It's possible
the final BW is greater than sap original BW. But a greater BW
isn't expected in some use cases where greater BW may introduce
some unexpected issues.
Add INI to configure sap original BW as default BW when do sap
restart as required.
Change-Id: Ie274a3eea73c2af9424a8b9ce21bee34eeaaef2e
CRs-Fixed: 3315486
Add check for QDF_MCC_TO_SCC_SWITCH_WITH_FAVORITE_CHANNEL while
getting the sap mandatory frequency.
Change-Id: Ia1dfdfb0818ed94620295e3f4046fbe16b5a92d8
CRs-Fixed: 3301096
As part upgrading legacy APIs with 6 GHz power APIs
Replace all occurrences of
wlan_reg_is_passive_or_disable_for_freq API with new API
wlan_reg_is_passive_or_disable_for_pwrmode.
Change-Id: If8429146e3e4e4cb25505de9855671dca2eb6474
CRs-Fixed: 3306631
Check for 6 GHz channel for SCC was not there due to which,
6 GHz + 5 GHz(DFS) MCC was happening even if we are forcing SCC.
Change-Id: Iac02b1990ffa91a5b0688d6976bc38cbbd10acfb
CRs-Fixed: 3301115
If there is existing interface STA/GC/SAP/GO/ML STA and
low latency SAP tries to come then allow only if below
condition satisfies
1. DBS hw_mode: Allow if existing interface is on 2.4 GHz
channel otherwise reject.
2. SBS hw_mode: Allow if existing interface channel and low
latency SAP channel are mutually exclusive.
Change-Id: I67a883b89f63fa581379cb303da6c11b43e65912
CRs-Fixed: 3296640
SAP MCC with ML STA link is not preferred since SAP is only
allowed off channel for max 32 ms.
If All ML STA are 5/6 GHz band, force SCC will not happen
for 2 GHz only SAP. Inactive one link if both ML STA are on non
2 GHz band.
Change-Id: I3450a0e66e583320cb91cd549317a197e5d1e039
CRs-Fixed: 3307863
In hw mode change offload case, frequency of the connections
in table pm_conc_connection_list may be updated later than the
mac frequency info which is updated when processing hw mode
transition event, then the current concurrency combination
dump here which is inferred from mac frequency info and
pm_conc_connection_list may be wrong.
To avoid confusion, replace concurrency combination dump with
current connection status dump when processing hw mode
transition event.
Change-Id: I0d8db410b3db3aa4b35c27f227bc68f5852a86d3
CRs-Fixed: 3315452
Add new entry in the enum qca_conn_diag_log_event_type in
order to support EAPOL start packet.
Change-Id: I540ef257ee9425eef016302648844ebf01647372
CRs-Fixed: 3314689
Add a support to check if low latency SAP is present on 5 GHz
channel then do not allow SAP/GO to come up on 5 GHz for
both gaming and lossless audio profile.
Change-Id: Ibb9e3365522beec541f70c6c45b8cb68405fd3bc
CRs-Fixed: 3294748
Add a support to check if low latency SAP is present on 5 GHz
channel then do not allow STA/GC to connect on 5 GHz for
both gaming and lossless audio profile.
Change-Id: I8e1c62dfea3c27306e338392448f5cc6eed912aa
CRs-Fixed: 3302763
Low latency SAP is supported on DBS and SBS hw and it can come
up on below two profile
a. Gaming
b. Lossless Audio
DBS: Allow only 2.4 GHz channel for both gaming and lossless
audio profile
SBS: Allow non low latency SAP 5 GHz channel which are mutually
exclusive for both gaming and lossless audio profile.
Check whether low latency sap is present or not. If it's present
then get the frequency to validate the concurrency with other
interface.
Change-Id: I39715a01e63de612448d4d0f230e6ccb71b76b15
CRs-Fixed: 3294596
Add INI g11be_oui_allow_list to config 802.11be AP oui which
is allowed to get connected in 802.11be mode.
If the INI is empty, all the ap are allowed to get connected
in 802.11be mode. If INI is set to "ffffff 00 01", then STA
is not allowed to connect to any AP in 802.11be mode.
Change-Id: I98e545ba909c1746237a20c365f8297f16fe666f
CRs-Fixed: 3304021
Add below two enhancements for SAP
1. Spatial Reuse enabled in single MAC concurrency
2. Set bit HESIGA_Spatial_reuse_value15_allowed in SRP IE
Change-Id: Id2d3d04ae1b3b9a2e6d84f30749b577bc7b79061
CRs-Fixed: 3305447
Currently the AKM information is sent as uint16_t variable
this leads to truncation of 1byte in connecting event of
advanced connectivity logging.
Update the AKM data type from uint16_t to uint32_t.
Change-Id: Ibe359636cb32b66ed99ee8ccb8ce33299908325b
CRs-Fixed: 3307515