Disable TDLS offchannel if number of connected peers are more than
one.
Also, re-enable offchannel if all peers are disconnected expect one.
With this change, it is possible to increase the limit of max
connected peers which was previously set as one when TDLS
Offchannel is enabled.
Change-Id: Ic0826aa32c8ef805a2df6da6c7506895cdc08a09
CRs-Fixed: 3265868
After SAE full authentication, driver is not including
PMKID derived as part of the SAE authentication to the
AP in association request frame. This causes interopability
issues with some AP, which expects PMKID in association
request frame.
Fill PMKID in association request to SAE AP.
Change-Id: Ic09d653c74fd5c37486e4fa22b5ca9cd85c04743
CRs-Fixed: 3280164
Update offchannel frequency based on peer caps such as
1. If 6 GHz is supported then select the ini preferred 6 GHz channel
frequency if peer also supports the same channel.
2. If 6 GHz is supported and peer doesn't support the ini preffered
channel frequency then select the very first 6 GHz channel which
peer supports as preffered offchannel.
3. If peer doesn't support 6 GHz, then select ini preffered 5 GHz
off channel frequency, given that peer should also support it.
4. If peer doesn support 6 GHz and also doesn't support ini preferred
5 GHz offcahnnel, then select the very first 5 GHz channel it
supports.
Update preffered offchannel Bandwidth such as take minimum of peer
supported max bandwith which is extracted from supported opclass and
max Bw device supports.
Change-Id: I93412774f35280105b22d5ec44895572f9d7aeef
CRs-Fixed: 3266066
Driver will refill rx rates info which has been filled according
to the rateflags obtained from FW. The problem occurs when DP
receives legacy data whereas the rateflags do not contain legacy
bit. This will lead to the GUI displaying non-legacy rates.This
change clears the rate flag to ensure kernel to use legacy rates.
Change-Id: I93f30170b6a4dd742d8c653ef62f82190f1da2ee
CRs-Fixed: 3277906
For single link connection, the number of partner links is set to min
of assoc response ML IE and number of partner links that user configured.
This is not needed for roaming case, as roam sync indication has number
of partner links set.
Change-Id: Ibb46b83a2a88adb81d3d430362c7b1b7a4b6a4c3
CRs-Fixed: 3281779
In STA+SAP concurrency, if the STA is connected in indoor
power, and if the country/channel supports VLP, then bringup
the SAP in VLP. Move the STA to VLP as well.
Restore the power of the STA, when the SAP is disconnected.
Add changes to:
a) Decide the power type for the concurrency during start bss,
stop bss, change channel request calls of the SAP interface.
b) Allow the 6 GHz SCC channel in ACS computation if the channel
supports VLP power or if the channel is indoor and enabled.
Change-Id: I151e2e3e8910a406bb5c1526f4f01715854d173f
CRs-Fixed: 3268100
Currently if SAP is up on 5 GHz DFS/non-DFS channel and country
change happens to world mode where SAP is not allowed on 5 GHz
channels then it moves to a 2.4 GHz channel and saves current
operating frequency band information, now again if a country
change happens SAP tries to move back to the first 5 GHz
active/passive channel.
Sap should come to active channel first. If not available then
it should come on DFS channel, but it shouldn't come up on
passive channel.
To address this issue, add a fix to filter out passive channels.
Change-Id: I32e8a81c2a5d9e785262edbeeef2c879c87f1302
CRs-Fixed: 3277965
Extract MSD capabilities from assoc response from MLD AP
and share the params with FW via peer assoc cmd on all MLO
links.
Change-Id: I301f56c37b6d0d2c56af13eec72d2e452a1508ed
CRs-Fixed: 3271116
Add TPE IE EIRP power parsing support for 6 GHz channels.
1) Currently, is_psd_power flag is derived from current
channel list chan flag which returns true if corresponding
channel supports PSD power. Normally, all 6 GHz channels
support PSD, so this flag is usually set to 1. But, AP
can transmit EIRP power in TPE IE for 6 GHz channels,
thus derive this flag based on tx_power interpretation
field in TPE IE for accurate value.
2) The calculated center freq is passed as argument to
retrieve regulatory power from reg channel list
but this logic works only for PSD. E.g. In case of EIRP,
center freq can be 6125 MHz for oper freq 6115 and BW
40 MHz, and causing reg APIs to return reg power as 0.
Thus, pass operating freq as argument in case of EIRP.
Change-Id: If1ad3870a866592d970adad218e507c9c756f615
CRs-Fixed: 3266393
After vdev creation, self peer is created using mld mac address.
In case of SAE roaming, the auth frame received from supplicant
has link mac address thus it is unable to find peer.
Add api to find mld mac address from link mac address.
Change-Id: Ic01bf4da7b79779efd8b9ea8f1e180291c877593
CRs-Fixed: 3275434
Currently, driver configures PS only for assoc vdev using
__wlan_hdd_cfg80211_set_power_mgmt().
Fix is, driver should configure power save for ML links
as well.
Change-Id: I4b624fce83398781f919a3a1f770aab9b04e1c09
CRs-Fixed: 3271792
For mlo AP, bssid in wmi_roam_synch_event_fixed_param of
WMI_ROAM_SYNCH_EVENT is AP MLD addr, when use it as link addr,
failed to register peer and set peer as connected, so all Tx
are not allowed including EAPOL.
Fix it by getting AP link addr and frequency of each link from
setup_links_param array of WMI_ROAM_SYNCH_EVENT.
Copy link info from roam sync event to connect response before notify
os_if roam complete, os_if will send link info from connect response
to wpa_supplicant, supplicant will use it to add MLO Link KDE(s) into
EAPOL-Key 2/4.
Change-Id: I87833784a4e0b9240725223069c55fb0db3bc88f
CRs-Fixed: 3277878
Hw mode change in progress is set after the set_hw_mode
command is queued in serialization. Its not reset in below
cases:
Active command timeout case, serialization command
cancelled case.
Before connect request is queued, if hw mode change is in
progress, there is 6 secs wait and if there is no hw mode
change response, connection failure. This causes subsequent
connection failures and there is no recovery.
Reset the wait for hw mode change event in serialization
command failure cases.
Change-Id: I716982f06198e9c3495685ddb158044778c4b1ff
CRs-Fixed: 3256424
There are two different name with different range of value for
aliasing INI's. So, it should pick the valid range of value wrt INI
name.
Change-Id: I36b578749567998980b300e5a8daf1acb201cddd
CRs-Fixed: 3269376
Currently rso enable for open and secure connection is handled
incorrectly.
For secure connection roaming should be enabled
after key exchange is complete.
For open connection rso enable is done twice.
Fix is for enabling roam offload for open and secure connection.
Change-Id: I0abde2a6001f176c97e4aa59947260a50c48e6cc
CRs-Fixed: 3271248
Currently if link specific probe response generation fails
STA keeps sending probe requests until proper probe response
is received or join timeout failure. This results in ML
connection failure
Change is to continue with single link ML connection if probe
response generation for link/s by clearing partner link information.
Change-Id: Ia969501a3bdd1ac70e14f3a0eafd0752207b66da
CRs-Fixed: 3238861
Currently, switch_to_rso_stop happens based on the
current state check and the expected state is
RSO_ENABLED/ROAMING_IN_PROGRESS/ROAM_SYNC_IN_PROGRESS.
The thread(e.g. user thread) that is sending rso_stop to
firmware might have got the expected state value when
it has read the state and proceeded with commands needed
to send to firmware. ROAM_SCAN_MODE is one of these commands
and firmware sends a response for the same. The response
gets processed in scheduler thread.
The expected sequence as per the current implementation is,
1. Check the current RSO state and proceed if it's any of
RSO_ENABLED/ROAMING_IN_PROGRESS/ROAM_SYNC_IN_PROGRESS.
2. Send all commands corresponds to switch_to_rso_stop to fw
3. Set the new state to RSO_STOPPED
4. In scheduler thread, get response for
ROAM_SCAN_MODE(one of the commands sent in step2) and
proceed from RSO state RSO_STOPPED
5. scheduler thread sets the state to DEINIT.
But the user thread may get suspended while sending commands
to firmware (step2) and may get resumed after step4. The new
sequence could be,
1. Check the current RSO state and proceed if it's any of
RSO_ENABLED/ROAMING_IN_PROGRESS/ROAM_SYNC_IN_PROGRESS.
2. Send some commands corresponds to switch_to_rso_stop and
thread gets suspended. Assume it has sent ROAM_SCAN_MODE.
3. In scheduler thread, get response for
ROAM_SCAN_MODE(one of the commands sent in step2) and
proceed from RSO state RSO_ENABLED.
4. As part of step-3, scheduler thread moves the state to
RSO_STOPPED and then to RSO_DEINIT.
5. User thread gets resumed and sets the new state
to RSO_STOPPED. This leaves the RSO state in invalid
state even after disconnect.
Set the state to RSO_STOPPED before sending any commands
to firmware. This is to ensure the state is not corrupted by
the scheduler thread.
Change-Id: I4d43508bdee2b33caba28579939fffdebfab121d
CRs-Fixed: 3278047
In SAP+GO concurrency, if move SAP to DFS channel (BW 160 MHz)
and cause MCC with GO, the target will do CAC on SAP, but target
doesn't support MCC with GO when SAP is CAC state.
Fix by checking correct BW of CSA target channel so that correct
DFS flag can be got and if target channel is DFS causing MCC
with other AP interface then reject CSA request.
Change-Id: Ic7821cf62d3b364e4d2ea052dc82d65d18054091
CRs-Fixed: 3275285
There are two different name with different range of value for
aliasing INI's. So, it should pick the valid range of value wrt INI
name.
Change-Id: I89a275500f1e1ad42f2cae534e9f67e1b9e3a4eb
CRs-Fixed: 3268673
Update the cfg HE capabilities to advertise with
user-configured channel width.
Change-Id: Id6a00341bad91edbc0123eb7334b5b83548b2f94
CRs-Fixed: 3271506
Correct the offset for 20 MHz BW only MCS map field in EHT
capability setting for VDEV IEs.
Change-Id: I3654f9a8845728bc1c62aa55d0dbe5aa988a111c
CRs-Fixed: 3271414
An invalid VDEV ID is sent to FW during adapter start after SSR
leading to assertion failure.
Validate return value of start adapter and skip to next adapter
incase of any failure.
Validate the VDEV ID sent in the SMPS params before sending to FW.
Change-Id: I7038fb2c7ecaa5892f5058b5b719767314ec62bf
CRs-Fixed: 3271202
Do not limit the STA supported BW capabilities to BSS
supported BW during the connection if the STA is operating
in testbed mode.
Change-Id: Idad613b7ea28059ab3ca9f474b2b0923cb4d5405
CRs-Fixed: 3271416
EasyMesh agent fails to send measurement request to the client which
supports radio measurement.
When EasyMesh queries sta information, driver should indicate correct
radio measurement capability to EasyMesh. Otherwise EasyMesh overwrites
sta radio measurement capability with incorrect value.
Change-Id: I2b916e006786e049610c577b781dd569f344e7f2
CRs-Fixed: 3272631
Currently cpu cxpc threshold is hardcoded in host driver.
As, Each platform has different threshold for PM QoS and
this threshold needs to be set accordingly.
To address above issue, add new ini to set cpu cxpc threshold.
Change-Id: I34d1e7f836585f3ff5e8d0044c6c224f58e99776
CRs-Fixed: 3263352