Populate policy_mgr_restrict_sap_on_unsafe_chan() to check whether need
check coex unsafe channel when SAP start on fixed channel, only
restriction_mask from user space configure set SAP bit requires to check
unsafe channel when SAP start on fixed channel. If ACS enable, SAP should
check unsafe channel unless above restriction_mask from user space
configure not set SAP bit.
This change is to change back behavior which changed by Change-Id
I4ccf887655066da6d6b50715f631dde6edfda598, and adjust Change-Id
Ie3947058d8854823a718b833ec788c5c8a14b903 after this change.
Change-Id: If8d26fa7cfdd4ffa44dd2009b4d6939f3d4c49b2
CRs-Fixed: 3525515
With force link inactive cmd rsp, FW will always send a current
active/inactive link bitmap. Host will select one link from current
inactive bitmap, and update the policy mgr table. But FW can
still switch the active/inactive between the links in force num bitmap.
When SAP coming up on same MAC and MCC with the dynamic inactive link,
host will send force inactive the link to FW. Then FW will not try
to active the link even in dynamic mode.
Change-Id: Ib4e438ca4c8e6945b3d7db42cd92d0393fcc1fc9
CRs-Fixed: 3564737
In 4 AP case: 2 AP on 2412, 1 AP on 5805. The 4th AP is starting
on 5180, but the current PCL PM_SCC_ON_5_5G_SCC_ON_24G contains 5180
and force SCC not happen.
Fix by change PCL to contain SCC channel only - PM_SCC_ON_5_SCC_ON_24.
Change-Id: I69923fa5b84c2178f0179fcc54d5f5aa6d77d016
CRs-Fixed: 3556240
Currently if STA+SAP SCC on a 6 GHz channel is present and
host received SET_FCC_CHANNEL 0 command then host disables
all 6 GHz channels except for STA connected channel. If
SAP's bandwidth is greater than 20 MHz then kernel sends
stop_ap as SAP bonded channels are disabled.
To address this issue, do CSA to a non 6 GHz frequency.
Change-Id: I89edf3c862c5b02f0eb5865428bdbb0d43d07f85
CRs-Fixed: 3563476
When MLO AP start, lim_create_peer_idxpool_legacy isn't called, so
gpLimPeerIdxpool in pe session keeps NULL. When AP do channel switch,
MLO concurrency check failed for current AP not ignored, AP MLO flag is
cleared. When Ref sta disconnect, access gpLimPeerIdxpool to free peer
id, assert happens.
To fix it, when AP restart, ignore current AP when check MLO concurrency.
Change-Id: I3625dcd4f8c1a5020588311706faa1eb70ae8e9d
CRs-Fixed: 3548564
Initially, if hotspot starts in world mode, it can come up in
2.4 GHz only. Later, the correct regulatory domain gets configured
in the host driver.
Even if this new reg domain supports higher bands and better channels,
the SAP will not be able to move since the ACS list configured
initially is for world mode(only 2.4 GHz channels).
To fix this, after the initial ACS userspace will configure the
ACS channels as per the band preference. Upon new country change,
the host driver will use this updated list to switch to a higher/
better band.
Change-Id: I60524e60798df656b86cbd883a31b00ccd210bc6
CRs-Fixed: 3453679
Currently in driver while using QDF_MAC_ADDR_FMT to print mac
address, the mac address reference provided to QDF_MAC_ADDR_REF is
incorrect in some cases. Fix all such instances.
Change-Id: Ib5d84b01542ebf04ee7d23fb65305036651a6a45
CRs-Fixed: 3556409
When STA 5GL + SAP 5GH in SBS mode, P2P Go start on 2 GHz, STA and
P2P Go are MCC in same MAC 0, so PCL index is PM_STA_P2P_GO_MCC_24_5_1x1,
when try to switch SAP channel to avoid MCC, PCL got is none, so SAP
failed to restart and stopped.
To fix it, for 2 ports like PM_STA_P2P_GO_MCC_24_5_1x1, when start/restart
SAP, change PCL to PM_SCC_ON_5_SCC_ON_24, allow it SCC with STA or P2P Go.
Change-Id: I7f05c1f430c6fd89a5055781604588366870e4f0
CRs-Fixed: 3561049
Prevent DFS-to-NON-DFS CSA, if the chosen candidate
frequency is passive or if the SAP is not 6 GHz capable.
Instead, select a non-dfs channel from PCL and move the
SAP. Later, the SAP will be re-oriented to SCC if there
is interference.
Change-Id: I954a5e810639fe41b9b4e16bd84a93c24a7b03e6
CRs-Fixed: 3550941
Notify connection state change event to policy mgr
to change force link mode accordingly.
Change-Id: I2da0f453ee1af67c95346f2dc23e9e757aa491b6
CRs-Fixed: 3525191
Add APIs to handle force link active/inactive by link id
bitmap. For N-link mlo STA (N > 2), some link may have no
vdev attached, we have to use link id bitmap to do force
active/inactive.
If the service WMI_SERVICE_N_LINK_MLO_SUPPORT is not enabled,
vdev based handler will be invoked.
Change-Id: I1c48a7227185923a38f3e2b75f1274df9a186437
CRs-Fixed: 3525174
Currently only store and delete self SAP connection information when
get PCL for mode SAP, if there is other SAP doing SCC with it, the PCL
list may only have SCC channels, but if the SCC channel has unsafe
channel within bandwidth, it cannot move to other safe channel which
has bigger bandwidth.
For example, AP1+AP2 on channel 5240(BW 80 MHz) and AP3 is on channel
2462, COEX AVOID event come and both 5180 and 2462 become unsafe, when
AP1 is going to switch channel it will get PCL list only have 5240, so
it cannot move home channel but just shrink bandwidth to avoid unsafe
channels.
Fix it by also store and delete other SAP connection information SCC
with current SAP if get PCL from get safe SAP channel path:
wlansap_get_safe_channel_from_pcl_and_acs_range().
Change-Id: Ia52c6ac221293036f65173f38cf4b8436629492a
CRs-Fixed: 3534131
Currently policy mgr api policy_mgr_convert_device_mode_to_qdf_type
accepts only QDF_OPMODE as an argument and converts it to
policy_mgr_con_mode. Also, name of this api does not reflect
the task this is doing.
With the new SAP mode for low latency low throughput SAP,
to convert the QDF_OPMODE to policy_mgr_con_mode, host driver
needs to know if it is ll_lt_sap or normal sap. To get this
information, update policy_mgr_convert_device_mode_to_qdf_type
api to accept the psoc and vdev id as parameters. Also, rename
this api to reflect the task this api is doing.
Change-Id: Idcf1321038ba4852d2aa3d8157b558423a738765
CRs-Fixed: 3524247
When STA/CLI is disconnecting or roaming, the policy mgr
connection table may include a channel which is not final
channel after disconnecting/roaming. Force SCC logic may
use old channel of STA/CLI to compute target channel,
that may not be correct when STA/CLI channel is updated later.
Fix by checking any STA/CLI in transition state to skip
the force SCC.
Change-Id: Ia261b40e4b964025bc3dc22151c2ca0708b543b1
CRs-Fixed: 3543895
If precac interface is in the middle of CAC, do not
entertain any CSA request coming as part of userspace/
country change/unsafe channel handling. Processing the
Channel change request in middle of CAC leads to teardown
of the SAP as SAP is in SAP_STOPPED state.
This leads to pre-cac failure.
To fix this, prevent CSA while CAC and once CAC is finished,
check the sanity of the operating channel based on
unsafe/disable channel list and move it to a valid channel.
Change-Id: I2757753a2a13bdaef60f9b9a46fcd569ddb7306c
CRs-Fixed: 3505593
In NAN+eMLSR concurrency, when NAN is already present
and if eMLSR comes. Host disables(by sending
MLO_LINK_FORCE_MODE_INACTIVE_NUM) one link only after
both vdev up. But there is a race condition where
firmware enters to emlsr mode just after link vdev up
and host sends the disable command after
WMI_VDEV_INSTALL_KEY_CMDID. This causes inconsistency
in firmware eMLSR state machine. Firmware asserts as
other mac is occupied by NAN and eMLSR module tries to
change the hw mode to eMLSR mode. Both mac's should be
free/available for eMLSR STA operation when firmware
tries to switch hw mode to eMLSR.
As part of fix, Host to send mlo_force_link_inactive=1
in peer assoc command of link vdev to indicate firmware
not to enter in eMLSR mode. Host shall disable one link
as part of concurrency evaluation post connection anyway.
Once the concurrency is gone, host to enable both links
to let firmware enter into eMLSR hw_mode.
Change-Id: I0ee141b51868a3c5c5d9ff6cf1bd3765bc450fa4
CRs-Fixed: 3527911
Convert link id bitmap to vdev bitmap and update policy mgr
connection table.
Record the current force link command state to mlo context.
Change-Id: I0b28222de10a9493a153ee00189b87e4275a4231
CRs-Fixed: 3515467
Currently, RSO is stopped and PCL is updated to firmware when
SAP stop happens. But this causes inconsistency in roam sync
handling if roaming is in progress. As host driver RSO state moves
to STOPPED, host doesn't send ROAM_SYNC_COMPLETE though
ROAM_SYNC_IND is processed successfully. Firmware waits
for 6 seconds and asserts as it hasn't received either
ROAM_SYNC_COMPLETE or ROAM_ABORT(RSO_STOP).
So, don't stop RSO and avoid PCL updation when roaming is
in progress in SAP stop case. PCL gets updated to firmware
post roaming anyway. Same is applicable for SAP start also.
Change-Id: I9a6c4579d9cfab9041ee76739705d4db5a40192d
CRs-Fixed: 3518876
Remove only 6 GHz using policy_mgr_is_6G_chan_valid_for_ll_sap()
if WLAN_FEATURE_LL_LT_SAP_6G_SUPPORT is not defined.
Change-Id: I828c61adf3c88c2a5100fff603a007d8a6c85a88
CRs-Fixed: 3532992
MLO sta + 2nd sta case, 2nd sta got pcl type: PM_NONE, total pcl
freq num 0, but dual sta follow pcl strictly, so PCL 0 is sent to F/W,
failed to roam to any freq.
To fix it, for PM_NONE and PCL freq num 0 case, don't follow pcl strictly,
send all valid freq as PCL to F/W.
Change-Id: Ie3529fd85dcfcfd3cc44ed6c25fc8fefe7a6c769
CRs-Fixed: 3534201
Currently host driver does not allow NAN+SAP SCC on unsafe channel.
With this change add support to allow NAN+SAP SCC on unsafe channel
if g_nan_sap_scc_on_lte_coex_chan ini is enabled.
Change-Id: Iccc37f28d8523cd335cce5fcfb0293f3f8cc8959
CRs-Fixed: 3531489
Currently, PCL returns all 5 GHz channel and SCC channel for SAP
when an ML-STA is present. But this may lead to a case
where the CSA request might be for a DFS channel which needs CAC.
This needs a dedicated mac and ML-STA can't move to MLMR in such
cases. When firmware attempts to move STA to MLMR from MLSR,
firmware asserts as the other mac is occupied by DFS SAP for
CAC operation.
So, allow CSA to a DFS channel only if the channel is present in
PCL list as it covers the supported channel list anyway. Fix
policy mgr table entries also by allowing SCC channels only.
Change-Id: I079fa6beea97fcd7c926ad4bd2bf928a0442d146
CRs-Fixed: 3484572
1.Host receives QCA_NL80211_VENDOR_SUBCMD_MLO_LINK_STATE
vendor cmd.
2.Parse new attribute
QCA_WLAN_VENDOR_ATTR_LINK_STATE_CONTROL_MODE.
3.Restore mlo link(s) state as per driver.
Change-Id: I79327618a007cd1f50ca1eafcb3633bcbac2e13f
CRs-Fixed: 3529507
1. Host receives QCA_NL80211_VENDOR_SUBCMD_MLO_LINK_STATE
vendor command.
2. parse the new attribute
QCA_WLAN_VENDOR_ATTR_LINK_STATE_MIXED_MODE_ACTIVE_NUM_LINKS
and get the number of MLO links to operate in the active state.
3. If any of the links is in an inactive state due to concurrency,
we need to reject the request.
4. Host sends to FW via WMI command WMI_MLO_LINK_SET_ACTIVE_CMDID
via the below WMI attributes with mode
WMI_MLO_LINK_FORCE_ACTIVE_LINK_NUM and set the wmi flag
control_flags to indicate if FW need to use force link number
instead of force link bitmap.
Change-Id: I7596c4815630563cbc419e0e9df28f1330775334
CRs-Fixed: 3529488
1.Host receives QCA_NL80211_VENDOR_SUBCMD_MLO_LINK_STATE
vendor command.
2.Parse the new attribute
QCA_WLAN_VENDOR_ATTR_LINK_STATE_CONFIG and get the
link and corresponding link state.
3.Send it to FW via WMI command
WMI_MLO_LINK_SET_ACTIVE_CMDID
Change-Id: I78a055f4a9fb60ccce106f9e4761fbf6d4d2f262
CRs-Fixed: 3529456
Currently policy_mgr_modify_sap_pcl_for_6G_channels() only find the
first STA or P2P-CLI, then check its channel is 6 GHz or not,
It will lead to different behavior if there is MLO STA which has one
link connected on 6 GHz, sometime PCL modify for 6 GHz channels,
sometime not.
Change to find first 6 GHz STA or P2P-CLI, only if has, continue to
do 6 GHz channels modify.
Change-Id: I96d01ded297fb900f0ea715b75cbdadb9faade3d
CRs-Fixed: 3526650
Currently, host driver does not allow NDP formation if two STA is
in connected state. But driver should not allow NAN enable in first
if two STA is in connected state as STA + STA + NAN concurrency is
not allowed.
So, to fix this issue, add check for STA + STA concurrency in NAN
pre-enable in which NAN will drop if two STA + STA is present.
Change-Id: I6e6baa386d50b2903118660f10cc98ffcba60705
CRs-Fixed: 3481148
If MLO STA connect with one 5 GHz low link and another 6 GHz (non-PSC)
link, and start 2 SAP on 5 GHz band, one SAP will start on 5 GHz low
channel doing SCC, another SAP will not start on 6 GHz (non-PSC)
channel and start on 5 GHz high doing MCC.
Add one PCL type which add SCC on 5 GHz low channel to
PM_SCC_ON_5G_HIGH_5G_HIGH_PLUS_SHARED_2G for this case, so that last
SAP can start on 5 GHz low channel doing SCC.
Change-Id: I4312873c159ac14652990c7c1079c13476dcd383
CRs-Fixed: 3508539
With this change add two helper APIs to check if the input
concurrency mode is SAP mode and to check if the input mode
concurrency mode represents beaconing mode.
Change-Id: Iccc82fccf20e43f600efbb4a83c00d51f1d2cd14
CRs-Fixed: 3521665
Based on requirement a new concurrency mode PM_LL_LT_SAP is
added, add corresponding pcl table entries for LL_LT_SAP.
Change-Id: I12bf51547984c714499f7f0f35581251306e1a84
CRs-Fixed: 3514184
2 SAP start ACS but different channel range at almost
same time. First SAP selected and started on DFS channel
5260, second SAP select and start on MCC channel of 5180,
policy_mgr_allow_concurrency in
__wlan_hdd_cfg80211_start_ap check fail and abort the second
SAP start because of MCC not allowed for DFS channel SAP.
Refine the logic in API policy_mgr_is_ap_ap_mcc_allow
to cover this case, try to override 2nd SAP channel
to avoid start failure.
Change-Id: Ie483e1fc68f73ce87d14f647ee6fe27b015b5a79
CRs-Fixed: 3512135
Add support to force power save on all the active MLO links
for a defined number of beacon periods. Force power save
allows the firmware to suspend STA links for X beacon
periods and remain asleep even if the AP advertises TIM as
opposed to regular power save mode where STA links wake up
if the AP indicates that it has buffered data to send.
Change-Id: I98251f84edeebc462703cb2ad7d9ef3f73b460a4
CRs-Fixed: 3507781
The policy manager API to fetch hardware mode capabilities
from hardware mode index is not using the get EMLSR mode API
and thus throws an error message whenever the device is in
EMLSR mode. This is resulting in excessive logging. Thus,
add the get EMLSR hardware mode check to avoid the flooding
of logs.
Change-Id: I1a84b5038eafde5aa08d2c19c923c61ee6558b45
CRs-Fixed: 3498843
Previously 4 SAP PCL table only check 3 SAP in DBS mode,
it is not applicable if SBS mode available, for example if SAP1/SAP2
on channel 5805 and SAP3 on channel 5220 in SBS mode, if SAP4 start
on channel 2.4 GHz, it will be rejected.
Move policy_mgr_get_index_for_3_given_freq_dbs() and
policy_mgr_get_index_for_3_given_freq_sbs() out of macro
WLAN_FEATURE_11BE_MLO, so it can be reused by 4 SAP case.
Use above APIs to get common four connection PCL table index
and remove exist four SAP connection PCL index.
Change-Id: I7a8a3e6736feaae139e2c81050f00b2078df371e
CRs-Fixed: 3500354
After ML STA link state changes, the connection table will
be updated. So defer the force SCC a few second to use
updated table to do force SCC.
Change-Id: I453b1a8d2707bb635f7c1d8d5b397811bf3b4f7b
CRs-Fixed: 3502411
Currently if AP+AP SCC on 5 GHz, next AP prefer on 2.4 GHz,
If SBS mode support, next AP can prefer also on SBS channels
and other MCC/SCC channels.
Change-Id: I3e44fd381527cae24aeff14f9158621f14a278b3
CRs-Fixed: 3499268
Currently roam pcl is updated after roam, connection and CSA.
Pdev current channel list is updated for many other scenarios,
but roam pcl is not modified accordingly.
To address this issue, update roam pcl every time after computing
pdev current channel list.
Change-Id: Ie86d5592255419de8f4040a3206d275ef926cf03
CRs-Fixed: 3481026
Currently host disables 6 GHz band when set_fcc_channel cmd
is received hence existing STA/P2P client 6 GHz connections
get disabled.
Add changes to keep existing STA/P2P client 6 GHz connections
intact and also keep SAP up on 6 GHz if STA+SAP SCC on 6 GHz
channel was present before receiving this command. Disable all
other 6 GHz operations.
Change-Id: I95c094e1b344d430a288b6f613842efe6e576e25
CRs-Fixed: 3495006
When SAP is on 5 GHz or 6 GHz channel other than the user
configured frequency due to concurrency and concurrent STA has
disconnected, then SAP doesn't move back to the user configured
frequency when MCC to SCC Switch mode is 4
(QDF_MCC_TO_SCC_SWITCH_WITH_FAVORITE_CHANNEL). SAP has to move
to the user configured frequency irrespective of the current
operating band.
Move the SAP to user configured frequency when SAP is standalone
after STA disconnection.
Change-Id: I3fb78cbd949c0e2ec7c393208569956dbcdd067a
CRs-Fixed: 3509288
Currently, eMLSR concurrency API considers both the links to
decide whether to allow or disallow the command while
force-enabling links. But one link might have got disabled to
handle some concurrency and might not be present in the
policy mgr table. Driver has to consider the links that are
present in policy mgr to allow/disallow link-enable command
when an eMLSR connection is present along with other concurrency.
Also, user might try to force-enable the disabled link. Allow
that only if eMLSR concurrency is not present.
Change-Id: I0a68059b7d16629016b3c40dbc0345523d46ef21
CRs-Fixed: 3500106
Currently, to switch links from link A to link B, Host sends
two back-to-back WMI commands to FW, by setting link B force
active and link A force inactive respectively with force
mode MLO_LINK_FORCE_MODE_ACTIVE/MLO_LINK_FORCE_MODE_INACTIVE
but if association is in EMLSR mode, FW considers the first
WMI to set link B active (when link A is already set active)
to be a trigger to enter EMLSR mode and sends OMN frame as
part of it. To avoid this, Host has to send a single WMI
with force mode MLO_LINK_FORCE_MODE_ACTIVE_INACTIVE and
include both active and inactive vdev bitmaps within the
same command to clearly indicate the link switch.
Change-Id: Iae58fedc800c891625d737daf238fa476382f4a1
CRs-Fixed: 3487826
Current hw mode is SBS low share. STA 5180, SAP 1 2412,
SAP 2 5745, but SAP 1 is 2 GHz only, can't move to STA 5180,
SAP 2 is SBS with STA, policy_mgr_are_2_freq_on_same_mac
return false for 5745 and 5180 and finally function
policy_mgr_is_restart_sap_required return false, no force
SCC on SAP 2.
Add mcc connection count check for SAP2, if SAP 2 channel
is different from all of existing 2 or more connections, then
try to force SCC on SAP 2.
Change-Id: I7029fd3ec0b8e0ae4543edd9667daa1f87802a7a
CRs-Fixed: 3497431
Current SAP does not support MCC and for low latency SAP,
host driver needs to support MCC.
To support MCC with SAP, add new concurrency mode for low
latency low throughput SAP as PM_LL_LT_SAP_MODE.
CRs-Fixed: 3469425
Change-Id: Ifb4b2db3bf3c2b433324580fde32d1673df5ae67
The policy manager API to update hardware mode list is
invoked before the host can extract EMLSR capabilities
from the target via service ready extended event. Thus,
invoke the policy manager API again through SBS
frequency update API to set the EMLSR capabilities in
the host.
Change-Id: I4d71b983ddb4b09e2010d24f0af0c26e2077cbd7
CRs-Fixed: 3417254
SAP 1 is started on 5 GHz 5180, SAP 2 is started on 5 GHz 5745.
ML STA 2 GHz 2437 + 6 GHz 6275 is up. SAP 1 is moved to 2 GHz 2437,
SAP 2 is not moved to 2 GHz 2437 because the SAP2 PCL is PM_SCC_ON_5_CH_5G
which have no 2.4 GHz scc channel. STA+SAP+SAP SCC is allowed
in same mac, but MCC is not supported.
Fix by:
1. Change PCL to include SCC channel in 4th pcl table for SAP/GO.
2. Add API policy_mgr_modify_sap_go_4th_conc_disallow to filter
out the channels which not supported in same mac based on
current concurrency combinations.
Change-Id: Ieb482076d961234d3987b2daebab4c407ee0b7f5
CRs-Fixed: 3479297