LL_LT_SAP does not support SCC, so to avoid this, reject initial
STA connection and CSA on LL_LT_SAP frequency if STA receives CSA
on LL_LT_SAP frequency.
Change-Id: Iaa4546bbbc242aa8fc9580d1a8a2728b197457d0
CRs-Fixed: 3654643
When SCC_MCC switch mode is configured as:
QDF_MCC_TO_SCC_SWITCH_WITH_FAVORITE_CHANNEL, then when
concurrent STA is disconnected, don't move SAP to user
configured frequency even if the SAP is currently on
different band as the user configured frequency band.
Change-Id: I287fdf51bba2ca98bf6048694c03fafc114340da
CRs-Fixed: 3645514
wlan_objmgr_get_vdev_by_id_from_psoc() may return NULL vdev pointer,
add check to avoid access NULL vdev pointer.
This is to fix reported issue by static analyze.
Change-Id: I5d9619e1d0a04bbb68069dde78859a6570e97aaf
CRs-Fixed: 3654411
Add new dot11mode in MLME and update the utility functions to
derive the dot11mode based on the INI config and AP dot11 mode.
Change-Id: Ic53ab0cdd94dce75d6928270bc8bf4f8539ac96f
CRs-Fixed: 3653767
When LL_LT_SAP is running, MCC lite needs to run in the hal-phy,
since MCC lite does not support cfr capture, do not allow cfr
capture if LL_LT_SAP vdev is present.
Change-Id: I7e9457f4f8c899b3c5a547429eff898bdd602a28
CRs-Fixed: 3653718
When LL_LT_SAP is running, MCC lite needs to run in the hal-phy,
since MCC lite does not support dynamic chainmask update, do not
update chainmask if LL_LT_SAP vdev is present.
Change-Id: Ia7c38fbce88f0a236d96bfc21ae3206e88d0b323
CRs-Fixed: 3653697
Currently host driver does not update the state of the bearer
switch state machine when userspace changes the bearer, which
results in out of sync state of the bearer currently in use.
To address above issue, update the state of the bearer switch
state machine if user space changes the bearer.
Change-Id: Id71cfdf320a11665707a367b13ea932155af0413
CRs-Fixed: 3649793
With this change - I9f8b4186753ec9d446399be9e1cfc03a63a17391
code to fill flexible TWT feature info in twt_feature_set
was removed, as a result host fails to update flexible TWT
feature to fw as part of feature set query.
To address this issue, bring back the code to fill
flexible TWT feature info in to twt_feature_set.
Change-Id: Ia669992c92a02a909d5b64925b903bdef7fc1baa
CRs-Fixed: 3594895
To trigger wide band scan in case of 320 MHz initial connection,
Host should use value of cen320_freq at the time of initial
connection.
Fix is to use value of cen320_freq present in struct
mlme_priv->connect_info.assoc_chan_info.cen320_freq.
Change-Id: Ia6b823e88d50a33259621a0cd564ae9fa06ced13
CRs-Fixed: 3651649
Since dp vdev will be free from soc->vdev_id_map[i]
in the sme_vdev_delete->cdp_vdev_detach, we should
detach dp vdev from mlo_dev_ctx before that to avoid
access with NULL pointer issue.
Change-Id: If5ab12ae606a09ae95006bb84a75d16b34f68e29
CRs-Fixed: 3654103
If ICMP is a fragment frame, the first fragment is routed to FW.
Other parts are routed to HW directly. This will lead fragment
out of order and some Network stack can't reassemble it. This
change is aimed to keep the ICMP notify FW logic, but route
the last fragment to FW, then the order can be kept.
CRs-Fixed: 3641824
Change-Id: If3e83943126a974d79f18824ff66b209cc4edd39
Fix API to check if freq will lead to SBS/DBS, also use
vdev id to avoid the decision making using the self vdev during
vdev restart.
Change-Id: I4c6920883031a8e926b224841cfea710b6d82da7
CRs-Fixed: 3653755
GET_MAX_BANDWIDTH return incorrect value after set bandwidth
to 20 MHz and roaming, since bonding is disable when set max
bandwidth to 20 MHz.
If we set restore flag as true, bonding mode will update from
INI, and channel bandwidth will update while roam to bandwidth
higher than 20 MHz.
Change-Id: Ic0c65b1d0ab56e5840e03defa839e06321b702b8
CRs-Fixed: 3615778
There could be a delay in detection of link down and the driver
recovery getting triggered, this can result in the different
raceconditions between the userspace and driver, one such case
is that userspace issued IFF_DOWN when the driver is trying to
send the scan done notification.
The scandone is dropped in the driver resulting in the corresponding
scan getting rejected.
Fix is to initiate soc recovery cleanup freeing up pending active
commands, completing the pending scan requests in the driver as soon
as the driver detects link down.
CRs-Fixed: 3648073
Change-Id: Ib3091ce9062dfada730617dfcd697e20c34a85cd
After association, host sends deauth frames without link agnostic
flag, therefore the deauth frames queued on the inactive link
gets discarded. Host sends management frames with link agnostic
flag only if the VDEV is in UP state. Whereas, during userspace
triggered deauth, the VDEV will be in SUSPEND state. Therefore,
host doesn't set the link agnostic flag.
To fix this, send the management frames with link agnostic flag
whenever the VDEV is active(UP or SUSPEND).
Change-Id: I1a68c53be9c8846a0a0e2e2fc0246e9b49cdc421
CRs-Fixed: 3650329
Use default link info is incorrect for mlo link.
Fetch link info by link id and update the bss rate flag.
Change-Id: I72a6747308b9873e18ea2bcb1b95cb915e668970
CRs-Fixed: 3643925
Currently in API hdd_check_for_objmgr_peer_leaks, acquired vdev
lock and in this API calling wlan_objmgr_vdev_peer_detach which
again trying to acquire vdev lock leads to dead lock.
This scenario hits when disable CONFIG_LEAK_DETECTION flag and
observed while SSR.
To fix this race condition, delete vdev lock in
hdd_check_for_objmgr_peer_leaks.
Change-Id: I325979a22a8042dcf71bdaf19c1ba870917f8b60
CRs-Fixed: 3641544
Add cfg to disable puncture in US LPI mode per FCC requirement,
set to false by default.
Change-Id: Id01f952b2a74ad64216a66d2d292166211440c4b
CRs-Fixed: 3649640
When STA follow AP CSA switch channel to 20 MHz only, different state
eLIM_CHANNEL_SWITCH_PRIMARY_ONLY is set, different function
lim_switch_primary_channel is called, old puncture bitmap isn't reset,
just sent to F/W, F/W will assert.
To fix it, update puncture bitmap in lim_switch_primary_channel for
switching to 20 MHz case.
Change-Id: Icfcfdd181566276c962802458a352974bac92911
CRs-Fixed: 3652939
To avoid race between CSA and set BW, check if BW upgrade is
still required after set bandwidth command become active.
If any connection is in progress, restart the timer again.
Change-Id: I049dbcbc1d30fba8f38250b05f5f62e8c230234c
CRs-Fixed: 3652085
Currently, assoc response is cached when initial connection
happens on assoc link and same is used to initiate connect
on other links. Similarly, reassoc rsp is cached in case of
OWE roaming to continue connect on other links post EAPOL
handshake.
When DUT roams to 3-link AP and if link switch happens
post roaming, link switch always picks the cached assoc rsp as
it's available. But link-switch after roaming is supposed to
pick reassoc response.
Free the cached assoc response to avoid picking it post
roaming.
Change-Id: I0f316dc9259c597012e18e7c7af5e454df6651d1
CRs-Fixed: 3646555
Driver tries next candidate during connection if current
candidate fails in the join procedure. For each candidate
the number of partner links for that candidate is updated in
connect req params, but this won't update if the candidate
is not ML capable or is SLO.
If the previous candidate is MLO (MLMR or MLSR) which failed
in join and if the next candidate is SLO then the number of
partner links is not updated and will be non-zero for SLO
candidate which is invalid. This leads to going for partner
VDEV connect but with different MLD address than assoc VDEV
which is undesirable.
Always update the number of partner links on each candidate.
Change-Id: Id8147572706ee6a3055e68672aad04eaed4cf43a
CRs-Fixed: 3648252
Based on new requirement update policy manager PCL tables for
below LL_LT_SAP concurrencies:
1. LL_LT_SAP + STA + SAP
2. LL_LT_SAP + SAP + SAP
3. LL_LT_SAP + STA + P2P GO
4. LL_LT_SAP + P2P GO + SAP
5. LL_LT_SAP + P2P GO + P2P GO
6. LL_LT_SAP + STA + P2P CLIENT
7. LL_LT_SAP + P2P GO + P2P CLIENT
8. LL_LT_SAP + STA + STA
9. LL_LT_SAP + P2P_CLIENT + SAP
Change-Id: I8a01b88fc89dc18d1740ccf5fe0f8751e2980535
CRs-Fixed: 3647137
For dump_station command, host driver does not take the PCIe
reference before it sends the command over qmi, which may result
in unexpected behaviour at FW if runtime suspend happens in the
processing of this command as runtime suspend will put PCIe also
in suspend.
In current scenario there is a race condition where host receives
dump_stats command when runtime suspend is in progress and it sends
this command to FW over qmi without taking PCIe reference.
Since host does not take the PCIe reference in this case, PCIe also
goes into suspend state which results in unexpected behavior in FW.
Change-Id: I54689d2c00f6a58fec0040953e4ba1ac734805c6
CRs-Fixed: 3651489
When STA is connected with some AP and that AP has send
RRM request to connected STA. The connected STA will start
RRM scan. During RRM scan, STA may miss beacon while doing
scan as it goes to foreign channel for scan and then comes
back to home channel. Now if LL_LT_SAP is present, it will
do scan in TWT interval. It will be overhead to handle
LL_LT_SAP + STA + Scan in firmware.
For now, reject rrm request if LL_LT_SAP is present.
Enable back later if required
Change-Id: I010b2b3289d80bfd9b0b6340fc6dda17044b06b0
CRs-Fixed: 3647800
Host semd wmi as following order after CSA received/vdev restart and
before vdev up, old puncture bitmap mismatched with new phy mode lead to
F/W assert.
1. WMI PEER PHY MODE
2. WMI PEER PUNCTURE BITMAP and BW
To fix it, swap order as following
1. WMI PEER PUNCTURE BITMAP and BW
2. WMI PEER PHY MODE
Change-Id: I1ae3e5093cb45520be0f50ffb31fa7386201340b
CRs-Fixed: 3650797
When SAE roaming happens, the preauth event BSSID is used to
trigger external authentication to userspace and frame exchange
also happens with this BSSID. But while caching the info
corresponding to this frames, the current connected AP bssid is
used. This causes failure while fetching the cached entries.
Use correct BSSID to fetch the cached SAE authentication frames
for MLO SAE roaming. Enhance the error logs in some cases.
Update the driver authentication logs also to print the auth info.
Change-Id: Idd21f40cf0802879e83c10d91956662733b74666
CRs-Fixed: 3644706
Currently host driver does not set freq_list to memzero in
ll_lt_sap_get_valid_freq api which may contain some invalid values
which leads to unexpected issues in channel selection.
To address this issue, initialize freq_list with memzero
in ll_lt_sap_get_valid_freq API.
Change-Id: I2f0e7fef6c5ece88b2714b4a90bc169c8bbb75cc
CRs-Fixed: 3647070
In the driver, the default value for signal_average is defined
in the macro WLAN_HDD_TGT_NOISE_FLOOR_DBM. Update its value from
-96dBm to -128dBm.
Change-Id: Ifd1d7233e36b1a74e5432fc9e20ce0f6a7799357
CRs-Fixed: 3650550
In api wlan_connectivity_sta_info_event(),and in
connectivity_mgmt_event() the band information, link self mac
address is populated from the MLO mgr link info structure. But
MLO mgr link info is updated when we receive unicast probe
request from the AP. But we don't send unicast probe request to
MBSSID non-TX BSS and we could receive beacon from TX BSSID. This
causes the advertised links band information not getting logged
for the assoc request frame connectivity log and STA information
event doesn't have the self link addresses.
Populate MLO mgr link info before sending Join confirm during
MBSSID connect for non-TX BSSID. Introduce a new api
lim_populate_partner_link_chan_info_for_mbssid(), to populate
the link info from join request.
Change-Id: I6148a8a9b9bf15de65e7640f39456dade2e8987f
CRs-Fixed: 3647725
Root cause:
1. When connect to 2 link AP1 completed, will save assoc rsp in
mlo_dev_ctx->sta_ctx->assoc_rsp by mlo_sta_link_connect_notify.
2. When roam to another 3 link AP2 completed, reassoc rsp isn’t saved in
mlo_dev_ctx->sta_ctx->assoc_rsp.
3. When link switch happens and need gen link assoc rsp, still use
mlo_get_assoc_rsp to get mlo_dev_ctx->sta_ctx->assoc_rsp as AP2’s
reassoc rsp, so failed to find right per-sta profile in assoc_rsp.
To fix it, when roam to AP2 completed, save reassoc rsp in
mlo_dev_ctx->sta_ctx->assoc_rsp by mlo_roam_copy_reassoc_rsp without
checking whether AUTH/EAPOL finished. replace old initial connected AP’s
assoc rsp.
Change-Id: I6873ba090dd85ad919541d10acbdd6599fc9675c
CRs-Fixed: 3650574
Issue is Host always sends btm_offload bitmap as 1 via RSO
STOP command during disconnection. If host configures BTM
enable with flag value as 1 during disconnection and try to
enable back with flag value 0x1c1, FW will never honor it
since previous configuration is not disabled while
disconnection.
FW expects BTM offload enable only as part of supplicant
disabled-roam and btm_offload bitmap to be cleared (= 0)
in RSO STOP during disconnection.
Fix is to set btm_offload bitmap as 1 only while processing
RSO STOP with roam reason REASON_SUPPLICANT_DISABLED_ROAMING.
CRs-Fixed: 3650261
Change-Id: Idc23497331b4b49e485e5d1d3ab5e46207680829
Currently host driver does not wait for uptree operations in dsc
before it starts vdev transitios, which may lead to memory domain
mismatch.
For example, if modules are closed because of idle shutdown, memory
domain in host driver will be init domain and at that time if some
psoc ops starts, memory allocated as part of this ops will be
allocated in init domain and if at the same time if vdev up starts
which will trigger the vdev trans and will start the modules and change
the memory domain to active domain, now when the memory allocated as
part of psoc operation is released on psoc ops completion will be
released in the active domain which leads the memory domain mismatch.
In current issue, host driver closes the modules because of idle
shutdown and changes the memory domain to init domain, now host driver
receives get features vendor command and starts psoc operation which
allocates memory in init domain, while this psoc operation is still in
progress, host driver receives interface create which starts vdev
operation and changes the memory domain to active domain as part of
start modules. Now, when ongoing psoc operation completes, it
releases the momory in active domain, which results in memory
domain mismatch.
To fix this issue, before starting vdev transition, add wait for uptree
operations in dsc tree, which includes wait for psoc operations and
driver operations as this issue is possible with the driver operations
as well.
Change-Id: I2cf395ebb94cafca728926a6617fdc34a073755a
CRs-Fixed: 3621530
Add NULL check for pm_ctx pointer to avoid NULL pointer deference
in function policy_mgr_pcl_modification_for_sap().
Change-Id: Ibc32e5dace8eddd1b88775af6ce76ae62fc76a1e
CRs-Fixed: 3626754
For the MLO SAP setup connection with legacy STA case,
the DA of the 2/4 or 4/4 EAPOL is possible with bssid
address(link address) not adapter address(mld address),
and we should not drop them inside driver.
So add this change to allow EAPOL to be delivered with
DA is equal to link address or mld address.
Change-Id: I629d24190a4fdef2ef6b3eddd76a345735ec0ff7
CRs-Fixed: 3650022