Connected clients may downgrade/upgrade their bandwidth and
send OMN/OMI frame to indicates the same. Firmware sends
PEER_OPER_MODE_CHANGE to host with the received data. Consider
the peer indicated bandwidth also to determine the final
bandwidth to be supported for that peer.
Minimum of new bandwidth(upgrade/downgrade), peer associated
bandwidth and peer indicated bandwidth to be considered while
upgrading/downgrade bw when concurrency comes/gone.
Change-Id: I9a15162df3a46c9cf6c7bc4d861e350349d22201
CRs-Fixed: 3605233
Firmware sends PEER_OPER_MODE_CHANGE event to host in SAP
mode when a connected client indicates upgrade/downgrade
of its bandwidth.
Host needs this data as any further SAP bandwidth
upgrade/downgrade should honor the indicated bandwidth for
that specific peer.
Change-Id: I50fecf670b47c56e3f33b8519fde1d5eaec7523f
CRs-Fixed: 3604716
TSF auto report is a stand alone feature, which can
be used to sync TQM clock and TSF clock, more than
one features depend on it.
Introduce a new build flag WLAN_FEATURE_TSF_AUTO_REPORT
to decouple it from uplink delay feature.
And also introduce trigger source for TSF auto report to
identify different triggers and maintain the enablement
state.
Change-Id: I61005d0ba29e62995aeb88067d18ad48767bd8b5
CRs-Fixed: 3560239
Based on the new requirement, add support for vendor event to
switch the audio transport bearer.
Change-Id: Iff5733c7552674fb84d225d1aef183577105a276
CRs-Fixed: 3585390
Add comments for the fix added to validate security
for 11be connection and Reject partner link based on
security check.
Change-Id: I1b8d5e91e0e07c6c311b8c6ca6427c3fabd6b219
CRs-Fixed: 3605255
For action frames of category non-public userspace expects
source address in frame as MLD address for which change is
introduced using Ie63c09ece7550dfdc69c82ef8b7111251deee33e.
The lim_send_sme_mgmt_frame_ind() API modifies the actual
frame's SA/DA/BSSID fields and copies to buffer malloc'ed.
Processing RRM frame post notifying userspace results in
trying to use modified SA address as peer address which
will result in failure.
As userspace will only receive on the malloc'ed buffer it
is better to do Link-MLD address translation on only that
buffer so that the callers of lim_send_sme_mgmt_frame_ind()
won't have tampered fields.
CRs-Fixed: 3606603
Change-Id: Iaeed8d4467d759cb8e61cd48404b5bc048f18b9a
Include BW_IND_ELEM IE in beacon and ECSA frames while advertising
CSA. This is needed when upgrading the bandwidth to 320 MHz.
Send the ECSA IE with switch count as 1. Use a timer to reset it
after sending the beacon out.
Change-Id: I6c38ef1ce4629b7a67bcbf803c7dbcced05ade33
CRs-Fixed: 3604422
When a concurrent STA moves to a new channel due to CSA from
peer AP, check if 320 MHz SAP needs bandwidth downgrade/upgrade
operation.
Change-Id: Id207f1c37a65c4638359eb7f2294478f13beed73
CRs-Fixed: 3601349
Check if the roamed channels lead to DBS/SBS with existing
320 MHz SAP after handling roam sync indication.
Change-Id: I3c816378f93b505c59da7aa9c4cfcc6352f5dbb3
CRs-Fixed: 3601348
When a STA connect req comes up, check if any of the candidates
cause DBS/SBS with the concurrent 320 MHz SAP and downgrade the
SAP bandwidth to 160 MHz.
Also, consider to downgrade the SAP bandwidth to 160 MHz when
an ML candidate is found as ML candidates need DBS/SBS mostly.
Change-Id: Icf2c9c26bd953d58bc0702302825493c0937a699
CRs-Fixed: 3601344
When a concurrency is gone, SAP ch_width can be upgraded to
320 MHz if it's still valid. Use opportunistic timer to avoid
frequent upgrade/downgrade operations.
Change-Id: I60e19427af2226970f1801dd00b04e1072ebea01
CRs-Fixed: 3601340
Currently, 320 MHz SAP is supported only when the hardware mode
is SMM. When a new concurrency comes up, firmware may have to
configure the hw_mode to split-phy mode(DBS/SBS). Then the
requirement is to downgrade SAP to 160 MHz as split-phy mode
doesn't support 320 MHz.
As part of the downgrade process,
1. Indicate to the connected peers that SAP is going to be
downgraded to 160 MHz via ECSA frame
2. Update ECSA IE to the beacon template with count as 1
3. Indicate the final bandwidth of each peer to firmware
Add infrastructure to support these. Reuse some of the existing
APIs of NSS update and hw_mode update.
Change-Id: Ieb964ddb782a547699890a9dbbc3efdf631149eb
CRs-Fixed: 3601336
Currently, session->ch_width is used to send the current operating
ch_width of the SAP in beacons/probe rsp/assoc rsp. But the
current operating bw may change due to concurrencies. Refine the
current usage to get operating ch_width from vdev mlme priv object
instead of pe_session.
Change-Id: Ie4be6337fcb1902f38ae5cb2db03c5b6af16ee3a
CRs-Fixed: 3600239
Based on the new requirement, add support for vendor command
to switch the audio transport bearer.
Change-Id: I1d3b74c18976b0927ebba228b73af5a10cc67391
CRs-Fixed: 3582788
FW allocates memory for action oui extensions only during
init. But, the driver configures some OUIs to the firmware
during connection. For the firmware to accommodate these
new action OUIs during connect, additional room needs to
be sent to firmware during driver initialization itself.
Add changes to send additional room for 10 extensions during
initialization.
Also, currently host adds the count of host only extensions
also as part of the total extensions sent to the firmware.
This leads to wastage of memory allocated in the firmware.
To fix this, keep a separate counter for host only extensions
and remove these from the total extensions saved before
configuring action OUIs to firmware.
CRs-Fixed: 3605032
Change-Id: Ibac93418a873bab53e1c58bf7c06834e38dfd534
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