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
When FEATURE_WLAN_MCC_TO_SCC_SWITCH is not enabled, a compilation
error is observed due to the fact that the stub implementation of
policy_mgr_change_sap_channel_with_csa() does not return QDF_STATUS,
so add an appropriate return statement.
Change-Id: I568289cc825adffa3fbcbab2419e093dc5c44cfa
CRs-Fixed: 3498278
Currently center frequency pass to API to check unsafe channel is
not correct set for bandwidth greater than 80 MHz. It lead to
unexpected shrink bandwidth.
For channel bandwidth greater than 80 MHz, center frequency should
set to mhz_freq_seg1 instead of mhz_freq_seg0.
Change-Id: I278590cd128b4760e35f4ea5921a6ed687dc1308
CRs-Fixed: 3466845
When user space use "iw dev" to get tx power info,
driver send WMI_REQUEST_STATS_CMDID to fw,
fw update tx power info with two events, usually we
parse the last event, and maybe get invalid value.
Filter invalid value for each event, and get valid
tx power value from the mac which the AP/STA mode work.
Change-Id: I2411bb87e03fe385759852b028819e19a055b7f3
CRs-Fixed: 3474361
Currently, host driver disables eMLSR STA link when a SAP is
coming UP. Once the SAP is UP, host driver evaluates the current
concurrencies and re-enables the link if it can. This allows the
driver to bring UP disabled link(if any) as the SAP would do SCC
with one of the ML-STA links. But this is not applicable for
eMLSR STA. No other concurrency can co-exist with eMLSR STA
currently. So, one link has to be force-disabled always to let
the firmware not enter into eMLSR mode.
So, don't allow the validation of current concurrencies in
policy_mgr_handle_sap_cli_go_ml_sta_up_csa() eMLSR API
policy_mgr_handle_emlsr_sta_concurrency() takes care of
eMLSR concurrencies.
Change-Id: I78a15447a8ea5a3a98146d9c9b577095bb8496de
CRs-Fixed: 3492030
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
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
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
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
When MLO STA is supported in MDM, driver needs to
use the new PCL table for 4th connection.
Move the existing PCL table under macro MDM_PLATFORM
to support this.
Change-Id: I494e7a8d6ecc0a550027ff7f64de5deb11b987a9
CRs-Fixed: 3467738
Allow a maximum of one ML SAP instance at a time and restrict any
other ML SAP start. The existing code allows secondary ML SAP to
come up if no other concurrent connections are present.
Add the condition to check only SAP mode in the policy manager list
so that other opmodes are not considered.
Allow new ML SAP instance only if no other ML SAP instance exists.
Change-Id: I3ea08b2c8de92f84e288e078a19cac0da261e69e
CRs-Fixed: 3460774
eMLSR + NAN concurrency is not supported currently, so handle it
as mentioned below
1. eMLSR+NAN: If NAN is coming up when eMLSR is active, disable
one ML link so that eMLSR gets disabled.
2. NAN+eMLSR: If eMLSR is coming up when NAN is already enabled,
disable one link so that eMLSR doesn't get enabled.
Also, cleanup the APIs to carry a generic flag to indicate that
a concurrent connection is coming up instead of mode specific flag
as there is no dependency on modes to handle concurrency.
Change-Id: I625f8b18f9d7e991922d22af53f3e8743a3727bd
CRs-Fixed: 3443900
Rename policy_mgr_is_sap_allowed_on_indoor() to
policy_mgr_is_sap_go_interface_allowed_on_indoor() since
it is common between SAP and GO. Cleanup the API as well.
Change-Id: I8380bd81c5050e9f12c00fff830455f14135c2b4
CRs-Fixed: 3423703