Move MLO STA-SAP concurreny handling to Policy Mgr which
is present in CSR currently.
Also, Move MLO STA-STA concurreny handling to Policy Mgr
which was part of If Mgr currently.
Change-Id: I2b8de17c3d31b43ff1f6b81a7de07b88888d7fb5
CRs-Fixed: 3153393
In the api cm_roam_scan_info_event(), only for partial
roam scan the frequencies are logged in logcat. For full scan,
the expectation is to print the frequency count as the number
of characters for scanning all frequencies exceed 255.
Enable Roam full scan logging in api cm_roam_scan_info_event()
Change-Id: Ib644a4e8d85e434e8b826c7656cda1251134c4fa
CRs-Fixed: 3131791
Send kernel timestamp to userspace via a
new vendor attribute
QCA_WLAN_VENDOR_ATTR_DIAG_KERNEL_TIMESTAMP.
Change-Id: I085a1f140b5036895249723f6a5b34b18d9aa574
CRs-Fixed: 3146742
Current policy_mgr_is_hw_dbs_capable() will check both DBS HW mode
and WMI_SERVICE_DUAL_BAND_SIMULTANEOUS_SUPPORT service bit, while
DP expect to check HW mode only.
Use policy_mgr_find_if_hwlist_has_dbs() for DP DBS check.
Change-Id: I9e69e5754ef4ea522f50e2e27380e5b5d08532b3
CRs-Fixed: 3140385
SAP sets up on 5180/20Mhz, freq 5180 becomes unsafe, channel
switch from 5180/20Mhz to 5200/20Mhz. Then STA connects to
5180, channel switch from 5200/20Mhz to 5180/80Mhz because of
CONCURRENT_STA_CHANGED_CHANNEL. Then STA is disconnect and
causes channel witch from 5180/80Mhz to 5200/80Mhz. This overlaps
the unsafe channel.
To resovle this issue, check the unsafe channels when csa reason
is unsafe channel.
Change-Id: I476d3a0b998e3bdceda6e388329158a7ec95c63b
CRs-Fixed: 3136637
wlan0 on 5180, wlan2 on 5180, wlan1 on 2462. wlan1 conf file
has ACS “freqlist=2457-2472,5180-5945”.
When LTE unsafe event comes, it marks 2457, 2462, 5180 unsafe,
wlan0 changes channel to 5200. wlan1 has no available 2G channels.
It selects 5G channel 5200. But 5G has two vdevs already, then
Concurrency check failed - drv doesn’t support 3 home channel.
wlan1 keep active on 2457, but driver doesn't continue to check
wlan2's channel and do CSA to safe channel.
Fix by checking the wlan1's CSA status and if status is failure
then do unsafe channel check for 3rd wlan2.
Change-Id: I28e9397436780cf47e57a47482b729a42fb728f0
CRs-Fixed: 3136773
In function wlan_hdd_populate_weigh_pcl weight is populated
to 0 only if weighed_valid_list is 0 otherwise weight of
non-pcl entries will be populated as 20 less than weight
of last pcl entry but weighed_valid_list is set to 1 in
policy_mgr_get_valid_chan_weights. So, non-pcl entries
are also sent to upper layer.
Fix is to change weighed_valid_list to 0,
if there is existing p2p connection.
Change-Id: Ic0d86021c00fd95e5bc20eeabea56e2a69658599
CRs-Fixed: 3140467
Per requirement, some user cases don't permit multi SAP started on
the same band even if SCC is used, add INI to support the requirement.
Change-Id: Icf015761a5440171bd81424fac74af9b1433cd94
CRs-Fixed: 3136335
Currently found variable, break and if statements are used to
check SBS hw support which may result in adding extra memory and
machine inctructions.
Fix is to avoid using inessential variables and conditions.
Change-Id: I91e4e3e66cdfdecbc6bbecf0d30b2f9d709497f0
CRs-Fixed: 3137253
Currently driver advertizes the STA+STA feature in the
get supported feature without checking the FW support.
Advertize this feature only when FW supports it.
CRs-Fixed: 3123324
Change-Id: Icd6a9d2ce93eeeca8962d2c8765930986431d71f
If all the partner links are in quiet status, do not send force inactivity
on the link.
Change-Id: Icf5356f9d05e871dcf602e2382a1d150dd057aed
CRs-Fixed: 3101961
Currently, host allow maximum 3 concurrent connection.
Change the maximum concurrent connection to 4 to allow
MLO STA + NAN + NDP combination.
Change-Id: I82b8b018488f2f85e4d5431b8b23b1dd90a844b9
CRs-Fixed: 3119918
Remove Rate limited for logs in policy_mgr_init_sbs_fw_config()
when updating FWconfig bits.
This function is called at the time initialization and will only
be called once when Fw config Bits are updated with SBS
capabilities.
Change-Id: I68c7d76f85f12d220f85a46dca78ad8463bb5576
CRs-Fixed: 3116571
Check mandatory freq for SAP only if STA is present.
Also allow SAP on a freq which can lead to SBS with STA freq and is
in mandatory freq list, if gWlanMccToSccSwitchMode is set to
QDF_MCC_TO_SCC_SWITCH_WITH_FAVORITE_CHANNEL.
Allow ML SAP (SAP+SAP) on valid channels if gWlanMccToSccSwitchMode
is QDF_MCC_TO_SCC_SWITCH_WITH_FAVORITE_CHANNEL.
As QDF_MCC_TO_SCC_SWITCH_WITH_FAVORITE_CHANNEL is only valid for
STA+SAP case.
So if STA is not present skip the mandatory freq and allow ML SAP
on original freq.
Change-Id: I6e8cbc7f944b2fa99c1449c288b9593cc4ad9454
CRs-Fixed: 3114208
Check whether the two connections are on the same mac with
policy_mgr_are_2_freq_on_same_mac().
Change-Id: I480a344386d22aa2a210b6b4663f68998d9af8b1
CRs-Fixed: 3103087
Avoid printing of mac range in freq on same MAC APIs
(policy_mgr_are_2_freq_on_same_mac and
policy_mgr_are_3_freq_on_same_mac), and rate limit
other logs to avoid flooding of same info.
Change-Id: Ia6c3b2a71f81066e55b0200c6286939e146125b0
CRs-Fixed: 3111452
Treat MLO STA as a single entity in roam processing:
only process roam related requests on assoc vdev.
Change-Id: Ida9665771e00236c491f58dc764cc6e470dcb6df
CRs-Fixed: 3104659
Rename Legacy to non ML STA and MLO to ML STA in
if_mgr_handle_ml_sta_link_concurrency and related function.
Move if_mgr_get_ml_and_non_ml_sta_count to policy manager
util API. So that it can be used by other modules.
Change-Id: I61260ddf1c6008d8601efaac8d0e9e768e253499
CRs-Fixed: 3105269
As in SBS ML STA, both links are on 5Ghz, reject the 5Ghz
non-ML STA connection, to avoid enabling same band roaming on
both STA.
Also do not allow the SBS ML STA, if a non-ML STA is present
on 5Ghz.
Allow it only if primary interface is set OR dual STA roaming
is disabled.
Change-Id: I20a23ed3b4d87c9acac5417a6f2d484fc80f47d6
CRs-Fixed: 3103246
In force SCC logic if 6Ghz freq is not allowed on the SAP interface
get the low 5Ghz freq for SBS scenario as we have 2 5Ghz freqs present
in this case.
Change-Id: I0783e5cf2825ee4f10549826b6dd71677976e6c3
CRs-Fixed: 3103876
When STA+SAP concurrency, sta roaming pcl will remove all channels of SAP
band except scc channel to avoid mcc.
When SAP stopped, STA roaming pcl isn't updated for wrong vdev id is used,
so can't roam to all channels of old SAP band except scc channel to avoid
mcc.
Change-Id: I35adb55ac155e4c84f858f16796dbec12589ab2f
CRs-Fixed: 3102601
A MLO with 1 link not active will lead to HW mode as SMM instead
of SBS, so check and see if SBS MLO is present and take
decision as per it.
Change-Id: Ide487d56d6375892b91ab615b9ad314dba2c9991
CRs-Fixed: 3102349
In dual sta case, while vdev0 roaming, vdev1 tried to connect and
stop vdev0 roam. in lim_process_assoc_rsp_frame,
lim_is_roam_synch_in_progress return false, hdr is parsed as invalid
addr, assert when access hdr->sa.
Change-Id: I917dc064dbca5600fe3586ec08103fa62a1348ee
CRs-Fixed: 3100427
As requirement, concurrent mode, station 5G/2G scan need stop when
AP connected by peer station.
Condition:
STA + AP 5G (connected) + AP 2.4G skip 5G scan
STA + AP 5G (connected) skip 5G scan
STA + AP 2.4G (connected && 2.4G only) skip 2.4G scan
Others concurrency skip none
Add API policy_mgr_scan_trim_chnls_for_connected_ap() to check if
need trim scan channel list. Which channel list need be trimmed.
Change-Id: I21da69fad617a6f342b9d902bf5b9d326ee1e11c
CRs-Fixed: 3075065
Fix policy_mgr_current_concurrency_is_scc() and
policy_mgr_current_concurrency_is_mcc() API for
3 port to consider mac_id.
Change-Id: I076e19d85f495d27b940c3cb6b3f3b1383d9b5e9
CRs-Fixed: 3093760
Handle SAP + MLO_STA concurrency after MLO connect, by disabling
one of the SBS link if 2.4Ghz SAP is present.
Also if roam happen to non SBS MLO remove the disable restriction
of MLO.
Change-Id: I7d9503a01bb23cd06808b46c090f0dee39c96af6
CRs-Fixed: 3096310
To support 4 SAP concurrency on sdxlemur, they must work with mode
SAP+SAP(2g/SCC) & SAP+SAP(5g/SCC) or SAP+SAP(2g/SCC) & SAP+SAP(6g/SCC).
Add separate fourth_connection_pcl_dbs_table for mobile route devices,
adding 4 SAP cases, and modify policy manager to get pcl index when 4th
SAP being started.
Change-Id: I919fa6fa0bbacbe1be0d22ed2ffc9e322b6343e9
CRs-Fixed: 3092568
Handle SAP and MLO STA concurrency such as:
1) If MLO STA is present with both links
in 5/6 Ghz then SAP comes up on 2.4 Ghz,
then Disable one of the links.
2) If there is channel switch for sap from
2.4 ghz to 5 ghz, then enable both the
links as they were disabled by previous
operations when sap was on 2.4 ghz.
3) If MLO STA is present with both links in
5/6 Ghz and SAP, which was present on
2.4 ghz, stops then renable both the as
one of the links were disabled because
of sap on 2.4 ghz.
Also, in case where MLO STA roamed from
5 + 6 link to 2.4 + 5/6 link force scc
will happen and the disabled link has
to be enabled.
Both links should only be enabled if mlo
sta has more than one links.
Change-Id: I0fd0093b20336ae32325981589c399b44a44b64e
CRs-Fixed: 3092202
Optimize excessive SBS prints in policy_mgr_are_sbs_chan and
policy_mgr_is_cur_freq_range_sbs.
Change-Id: I379f3b1b050e08f6d76a7e657067ae66fe45c93c
CRs-Fixed: 3094259
Handle MLO STA + Legacy STA concurrencies such that:
1) Don't disable any link if STA form SCC with any of the
link.
2) Disable the link on the same MAC which can cause MCC.
a) On non-SBS devices disable the ML link on the same
band as STA, As the same band means the same MAC
in non-SBS mode.
b) On SBS devices, disable the ML link on the same MAC:
- If STA freq is 2.4Ghz disable the 2.4Ghz link.
If a 2.4Ghz link is not present, disable any of the
5/6Ghz links (FW to decide the link depending on
SBS mode, low share or high share).
- If STA freq is 5Ghz and can lead to SBS with on of
the link, disable the non-SBS link (link which will
remain on the same MAC).
- If STA freq is 5Ghz and cannot lead to SBS with
one of the links, disable the link on the same MAC/
band.
e.g:
STA freq: STA ML combo: NON SBS Action: SBS Action:
------------------------------------------------------------------
2Ghz 2Ghz+5/6Ghz Disable 2Ghz Disable 2Ghz
5Ghz 2Ghz+5/6Ghz Disable 5Ghz Disable 2.4Ghz
if both 5Ghz lead
to SBS, else
disable 5Ghz
5Ghz(lower) 5Ghz+6Ghz Disable 5Ghz Disable 5Ghz
5Ghz(higher) 5Ghz+6Ghz Disable 5Ghz Disable 6Ghz
2Ghz 5Ghz+6Ghz Disable Any Disable Any
Change-Id: Ie8ca51b5e108c1cfce1a02fc97f4849c617216b7
CRs-Fixed: 3090333
Fix filling of the SBS range, in current freq range.
And Add is current mode SBS in required APIs.
Change-Id: Ief334aa236ad18512ac5d8cf80b3a2d13d77529a
CRs-Fixed: 3093159
Dump SBS range while checking for SBS mode in
policy_mgr_are_3_freq_on_same_mac and
policy_mgr_are_2_freq_on_same_mac
Change-Id: Ic8e6a49d60dcc82746a2b3e392576399dd1ad417
CRs-Fixed: 3092338
policy_mgr_dump_sbs_freq_range is flooding the logs with
SBS range, instead print it once when we check for
SCC channel.
Change-Id: I60e17f6fed3d0973f29d5225458a392021e482f7
CRs-Fixed: 3091231
The [-Werror,-Wformat] compiler option is enabled,
Format specifies type does not match the argument
type.
Fix the compiler errors that format specifies type
does not match the argument type.
Change-Id: I66c4834693c41217f1263e8d23e9e291f7045c55
CRs-Fixed: 3089460
Currently, the host does not check STA+STA concurrency
before sending VDEV/PDEV level PCL command to FW.
1. In case of STA Standalone connection, Host should send
PDEV level PCL commands to FW and marks all channels in PCL
as allowed.
2. In the case of STA + STA connection in MCC/SCC, Host
should send PDEV level PCL command for primary vdev id and
mark all channels in PCL as allowed.
3. In case of STA + STA connection in DBS, Host should
send VDEV level PCL command for both vdev id and via PCL
list host should make sure band is restricted to maintain
only DBS.
4. Initially STA + STA connection in DBS and then one STA
got disconnected. In this case, After disconnection Host
should send PDEV level PCL command for connected vdev id
and mark all channels in PCL as allowed.
Change-Id: I59cf5dfd1bf8fb26e360a8b0b5456fe05037376a
CRs-Fixed: 3084156
If MLO STA is present, allow further STA connections to all
available bands/channels irrespective of existing STA
connection band.
Change-Id: Ic7da10b2e74645b73c579b38f43bb7e3105b6f55
CRs-Fixed: 3088656
When connect from wpa_supplicant and roam from F/W happens at same
time, supplicant hold cm cm_req_lock and wait rsp from scheduler
thread, sheduler thread is blocked to wait for cm_req_lock.
Change-Id: I6b9010972d29be9a32d3b85ee72891ed62b50801
CRs-Fixed: 3087169
In HW mode transition event for mac_freq_mapping,
fw sends pdev id for identifying mac in following
format:
WMI_PDEV_ID_1ST 1 /* first pdev (pdev 0) */
WMI_PDEV_ID_2ND 2 /* second pdev (pdev 1) */
WMI_PDEV_ID_3RD 3 /* third pdev (pdev 2) */
Covert these PDEV_ID to the ones used in policy manager
used for filling current mac frequencies
Change-Id: I745de0278b1ddf627062163364b684745df5e4e7
CRs-Fixed: 3083289
STA + STA DBS roaming rules are:
1. Roaming will be enabled on both interfaces.
2. Roaming bands are restricted to maintain only DBS.
While STA2 connection, the host sets VDEV level PCL for
vdev1 after association completion only and initializes
roam band mask after the 4-way handshake. So, when sending
PCL to FW value of roam band mask is 0, the host cannot
filter different band channels from STA2's PCL list.
This allows STA2 to roam to the different bands and violate
rule 2.
Fix is to make sure roaming bands are restricted to maintain
only DBS.
Change-Id: I1c9d2edb34f59e00c2fd14ea7894c324f9c64047
CRs-Fixed: 3075106
When vdev0 STA roamed to another channel, vdev1 SAP CSA for SCC
when ROAM_SYNCH_IN_PROG, will disable roam, but no RSO stop to F/W,
F/W RSO isn't disabled, but host vdev0 will enter RSO_STOPPED, host
F/W RSO state out of sync.
If vdev0 STA next roam sync come soon, it won't be handled for host
RSO_STOPPED, neither roam sync complete nor disconnect will happen,
F/W will asert after wait roam sync complete timeout.
To fix it, Only do SAP CSA check after roam complete and RSO
reenabled, can avoid host F/W RSO state out of sync issue.
Change-Id: I77ccf30cac38f62c6ef8330c6da00364249b242e
CRs-Fixed: 3076935
If p2p go+go concurrency exist and g_enable_go_force_scc ini sets
to 2(liberal mode) then 1st p2p go channel should move to 2nd
p2p go channel after set key. Again, when user initiates CSA to
one p2p go then the force SCC doesn't happen to other p2p go.
But the expectation is all p2p go should move to same channel
which is initiated by user.
As part of fix, move all p2p go to same channel when user
initiates.
Change-Id: I1664e5a7d545d29c32b94e8e4831c71a9cc0ae23
CRs-Fixed: 3064245
In case of STA+SAP, ingress qdisc filters are getting
configured on both STA and SAP interface which is
causing GRO to be disabled.
Check for ingress qdisc to enable/disable GRO only in
case of stanalone STA and not do this in case of
concurrency.
Change-Id: I3542930c7b14d72e267378dd4687ee9721eed4ed
CRs-Fixed: 3062195
Currently driver QCA_WLAN_VENDOR_ATTR_DIAG_BTM_TARGET_BSSID uses
instead of QCA_WLAN_VENDOR_ATTR_DIAG_BTM_TARGET_BSSID attribute
in the BTM response event. This causes the target bssid field to
be missed in BTM response print.
The WTC BTM response event is not queued when reason code is
non-zero.
Use QCA_WLAN_VENDOR_ATTR_DIAG_BTM_TARGET_BSSID attribute.
And queue the WTC btm response event.
Change-Id: Id713bfeda20c43148e95630f5c6e925b80418ca3
CRs-Fixed: 3071242
FW sends lower band end frequency filter in service ready
ext2 event.
Frequency Info for every supported mode gets updated in
wma_update_hw_mode_list when service ready ext evt is
received.
Although, FW sends lower band end frequency filter in
service ready ext2 event.
So, update SBS Frequency Info when Service ready ext2 evt is
received.
Change-Id: Iefe1e601bffaba877979e7ce42a32763b61293c2
CRs-Fixed: 3073649