Currently host start processing rrm request frame with
source mac address (pHdr->sa) present in frame. But in
case of MLO connection, pHdr->sa address is referred to
MLD address and if host sends response frame with MLD
address to FW, FW discard/drop it.
Fix is to make sure driver should use link address
(pe_session->bssId) to process rrm request
and use same address to send response frame to FW/AP.
Change-Id: Ibffcaf6ca1341f3e22c9cba09f09c99cdc4fd5cd
CRs-Fixed: 3598628
Every adapter takes ~300ms to stop. For 4 adapters, totally 500ms is
not enough. To ensure all adapters stopped, increase sleep time to
1.5s.
Change-Id: I56ecb99519bf7834dd5e00986d847643612936c9
CRs-Fixed: 3604933
STA+GO concurrency and MCC mode case, DUT received lots of probe
request in short time on STA role channel, and host always send back
probe rsponse on GO channel, this caused FW TX failed due to current
channel is for STA, then FW has no chance to handle msg buffer in
time, buffer exhausted and crash.
To fix this, the probe request from STA role channel should be
ignored, and just respond the request from AP role channel.
Change-Id: I74a569c156b0ad7a14a32f7e0f0bfd58379e9f35
CRs-Fixed: 3564384
If user configure to not use 40 MHz in 2.4 GHz, then avoid setting
40 MHz capability and use cb mode as
WNI_CFG_CHANNEL_BONDING_MODE_DISABLE for 2.4 GHz.
Change-Id: I4e9153e211e02f6b959e16dad4573c2b490cb215
CRs-Fixed: 3584510
SAP operating bandwidth may get updated due to concurrencies.
This might be temporary and SAP moves back to its original
bandwidth once concurrency is gone. So, add set and get APIs
to maintain the SAP current operating bandwidth.
These can be used during/after bandwidth update operations.
Change-Id: I386ad20bcbd0902672a890bde510ecc50e58512b
CRs-Fixed: 3600223
Currently, kernel invoke the regdomain notifier to host driver using
registered callback, if kernel call this callback after idle shutdown,
will send CURRENT_COUNTRY to F/W after WOW ENABLE cmd.
To fix it, add driver status check when handle regdomain notifier.
Change-Id: I718f46b9cb02bd885ecc19684a6af9a26bd9410f
CRs-Fixed: 3602098
BW_IND_ELEM is needed to indicate updated bandwidth to peers
through ECSA frame/along with CSA IE in beacon. Add the IE
in ECSA frame structure and beacon structures.
Generate corresponding APIs with the help of frame parser.
Change-Id: Ia38d40050f945136bd01313bd3e17011b256afad
CRs-Fixed: 3604384
Add an API to loop through all existing connections and check if
the new connection frequency causes DBS/SBS.
Change-Id: Ib7929fc969cd04a26e082f6f9a3acf991befcc5d
CRs-Fixed: 3600235
If disconnection event is for link switch, do not trigger SAP
force SCC check. And if link switch is in progress, skip
the force SCC workqueue.
And if link is in middle of switching, do not run link force logic.
Change-Id: I4a8bf59ff16dca2caf560eb36e1bc58f7d6a919b
CRs-Fixed: 3590814
Currently mutex is being called while taking rcu read lock
which is resulting in "sleeping function called from invalid context"
warning as mutex is not allowed while holding rcu_read_lock.
To fix the issue replace rcu lock with rtnl lock.
CRs-Fixed: 3600635
Change-Id: I41aa27094ef58363eeda4bdb15f23d312e7bac37
From the kernel, it is expected to hold the mutex lock while
channel switch notify. Currently it is not done hence kernel
is asserting while channel switch notify.
To avoid kernel assert, hold mutex lock before driver
invokes channel switch notify.
CRs-Fixed: 3598047
Change-Id: I8838aa07bc12c317c494ad7e17116d090582944a
1. Upper layer sends QCA_WLAN_VENDOR_ATTR_LINK_STATE_CONTROL_MODE
vendor command to configure control mode in host/fw.
2. Host receives GET_ML_LINK_STATE driver command to return
control mode (configured at step 1) to upper layer.
Host should reply as a response of GET_ML_LINK_STATE with same
value of control mode configured at step 1 to upper layer.
Change-Id: I6ae82c2a1c0e4ff13cea678bf27916a3cda8ad81
CRs-Fixed: 3595730
Currently mlo sta context is accessed without null
check in mlo api's.
Add null check for mlo sta context in mlo_check_if_all_links_up
and mlo_check_if_all_vdev_up api's.
CRs-Fixed: 3601823
Change-Id: Iea3f1daf1d9aef40efdff21a02e8a3c23494bfad
The API wlansap_get_valid_freq was used to get new SAP channel
when country code changed from world mode to non world mode.
In STA+SAP concurrency case, SAP may be force SCC to STA channel
or the other band's channel. And If STA is disconnected, normally
the SAP should move back to original channel frequency on 5 GHz or
6 GHz. But in current code the API wlansap_get_valid_freq will
still be invoked to get new SAP channel based on PCL after STA
is disconnected. It is not expected.
Fix by add new master_ch_list_updated flag to indicate
the master channel list has been changed from 2.4 GHz only to
2.4 GHz + 5/6 GHz and based on the flag to invoke
wlansap_get_valid_freq to get new SAP channel.
The move back to original channel has been handled by
policy_mgr_is_sap_restart_required_after_sta_disconnect.
Change-Id: I33b7a4cda3b45221b45e2aec85069477d0999d4e
CRs-Fixed: 3596546
Currently, if FW advertises more than three HW modes, host
returns error as the current max is 3. Need to increase value
to 4 to support aux eMLSR single and aux eMLSR split modes.
In addition, add path to handle aux caps when advertised from FW.
Change-Id: I4ee873951952c5b1abd31e9e28084d32eda782bd
CRs-Fixed: 3599089
If link switch connection fails due to any reason the netdev
queues are stopped which leads to NUD failure and finally results
in connection teardown.
As we have one non-transitioning link for data transmission
in case of link switch, don't disable the netdev queues.
CRs-Fixed: 3599028
Change-Id: I4555ca3705950ce874b90f8a6e8cc5a50ea92793
Older versions of kernel (<5.12) support the interface creation
through vendor command. But newer versions of kernel (>5.12) expect
the NDI interface creation to happen in two phases due to RTNL lock
removal for the vendor commands.
1. Create an interface through add_virtual_intf in STA mode
2. Change the mode to NDI through vendor command.
Currently, if NDI start fails due to some reason (like vdev creation
unsuccessful), then driver tries to close the adapter for newer kernel
version (>=5.12) as well which causes crash in driver.
For kernel version (>=5.12), userspace handles the interface deletion,
so, close the adapter only when userspace provides the interface delete
cmd.
So, to fix this for the new kernel version, do not close the adapter
Change-Id: Ia11405823cf264eb3f2d81f67571c9e6e2fbff69
CRs-Fixed: 3601352
Currently if CAC in progress, it prevent SAP restart happen, if there
is some event like set band command come during CAC wait time, it is
not possible to restart SAP even after CAC END.
Change I54663bdd887e3d591d7fd9ee7ce76572b1ef21f7 moved
check_concurrent_intf to SAP interface manager, which will not invoke
when CAC END, so add policy_mgr_check_concurrent_intf_and_restart_sap
in sap_cac_end_notify().
Change-Id: Ida370804d0c7145b750c9dad5c169b74f9c37cd6
CRs-Fixed: 3586509
When vdev station stats are requested on mlo standby link,
report default values for RSSI and Chain Signal RSSI.
Change-Id: I596471d5c51ae5c1ca8e5d7afb72fafce7039176
CRs-Fixed: 3601662
Currently, host disables eMLSR by sending INACTIVE_NUM cmd to
firmware when eMLSR is active. Host sends FORCE_ACTIVE cmd with
both the links to re-enable eMLSR when eMLSR enable vendor command
is received from userspace.
But recent changes in MLO link management and policy mgr expect
a NO_FORCE when a legacy connection(e.g. NAN here) is gone.
Send NO_FORCE upon NAN disable inorder to adhere to the
new link management changes.
Change-Id: I6ff2c9f102c21b437a18310b9406ae3c990d3d17
CRs-Fixed: 3591684
Currently, if the AP advertises both Local and Regulatory
TPE IEs in the beacons, STA uses an INI to choose one over
the other. Vendor ask is to change this logic and allow STA
to use the minimum of the two TPE power limits. Also,
deprecate the INI that sets the preference between local
and regulatory TPE IEs.
CRs-Fixed: 3574510
Change-Id: Ibf19020d59621efa72cf290ef34c825fdb50e3e7
After roaming to 3 link AP, update the MLO manager with the
self link address received from the roam synch indication.
Change-Id: I6258abe7bb9e140307c30fee8701ef12a618d9f1
CRs-Fixed: 3591487
Support wpa_cli driver GET_MAX_BW with link_id and bandwidth.
Support get all MLO 2links link id and bandwidth.
Change-Id: I304b581fa06db23281422cafeecd0f6a868eee14
CRs-Fixed: 3544825
Currently host driver is using roam_sync state to update the
roam count in connection info structure. Connection manager
clears this roam sync state before it host invokes the save
bss info API where it actually updates the roam count in
connection info structure, this leads to the incorrect information
update in connection info structure.
To address the above issue, use the is_reassoc state from connect
response structure in save bss info API.
Change-Id: I0d35f04b7e2492fe96a23edefc0caf002acb6537
CRs-Fixed: 3591711
lim_check_oui_and_update_session call location is changed by
Change-Id: Ib99072c36b72859cb1f8a4336f8aa7f696cb7d02.
session->nss is initialized in lim_check_oui_and_update_session,
it should be called before lim_extract_ap_capability->
lim_check_is_he_mcs_valid, or he capable of session is disabled,
he cases will fail.
To fix it, lim_check_oui_and_update_session call location is changed back
to follow lim_join_req_update_ht_vht_caps.
Add new function lim_disable_bformee_for_iot to handle IoT issue,
since it need get channel width of session, let it be called after
lim_extract_ap_capability.
Change-Id: Ice1d86b3f6711a116b94cd139aae87f249c554d4
CRs-Fixed: 3600303
Add a sanity check for validating vdev_id in the function
sme_set_wlm_latency_level. If Invalid vdev_id is passed down
it might lead to an assert in firmware.
Change-Id: Ie410d2655a607628b0741c9efd1fbfaa00c5dc78
CRs-Fixed: 3599133
Currently, CONFIG_TSPEC_TSID is used as handle to
add and delete TSPEC requests. The tsid sent by
upper layer is same as handle because there is
no separate param for handle, so host always rejects
to add new TSPEC request because already one request
is registered with same handle.
To avoid the issue host can internally modify
handle and can add request with modified handler.
During DEL TSPEC Provided ts_id can be used to
delete the entry.
Change-Id: I6d1231bc6516d2642739d5d1011c847b32472160
CRs-Fixed: 3580003
Add support for STA info logging via api
wlan_connectivity_sta_info_event()
STA info logs is sent immediately after the
connect request initiated from userspace.
Change-Id: I92c42c9ca27f90acae23452e8fba1f2b20396214
CRs-Fixed: 3597543
When wpa_supplicant adds tdls peer during sta disconnecting,
scheduler thread clear MLO flag of vdev0, in wlan_key_get_link_vdev,
wlan_vdev_mlme_is_mlo_vdev(vdev0) return true, in
wlan_key_put_link_vdev, wlan_vdev_mlme_is_mlo_vdev(vdev0) return false,
WLAN_OSIF_TDLS_ID vdev ref count is released in both
wlan_key_get_link_vdev and wlan_key_put_link_vdev, while
WLAN_MLO_MGR_ID vdev ref count isn't released, assert will happen.
To fix it, add check in os_if, if vdev not up, reject tdls add peer to
avoid such race condition issue.
Change-Id: I851b269ee4a5649fe76cfa1fc6762b6ca41b0884
CRs-Fixed: 3598336