Commit Graph

2491 Commits

Author SHA1 Message Date
Azmath Mohammed
842dc538f3 qcacld-3.0: Display control pipes info on WOW ack failure
Display control pipes info on WOW ack failure which helps to
debug issues when full debug history is not available.

Change-Id: I6a84aa01c07831b7109d0741337cae6ac0be2f44
CRs-Fixed: 3246284
2022-07-22 02:43:38 -07:00
Surya Prakash Sivaraj
ba05c22b03 qcacld-3.0: Fix FT-FILS roaming failure
The AP rejects the FILS-IM association request with reason
"Invalid IE format". In the assoc request, two problems are
seen:
    1. The RSN IE has a junk group management cipher suite.
    2. FILS HLP container IE is fragmented, and the fragment
       IE does not immediately follow the HLP container IE.

In the assoc request, the RSN IE encoded in the authentication
is unpacked and the PMKID is replaced with the pmkr1 name
derived at the end of FILS authentication. Currently, the
existing PMKID in the RSN IE is replaced only if the group
management cipher is present. In non-802.11w case, the new
PMKID is appended at the end of existing PMKID, and leads to
improper IE format.

To fix this, replace the existing PMKID whenever PMKID is
present.

To fix invalid HLP container IE format, encode the HLP
container and its fragment IEs together in the assoc request.

Also, inorder to get the pmksa match from the crypto table for
a FT-FILS, fill both ssid and cache ID. Without cache id, the
cached entry is not updated with MDIE.

Change-Id: I654b5527a726eb7872b90fb19a3d97623f3caa68
CRs-Fixed: 3233081
2022-07-21 21:09:18 -07:00
Nirav Shah
05edbb507f qcacld-3.0: Correct description of ratemask_set ini
Correct description of ratemask_set ini for VHT mode
to avoid wrong configuration.

Change-Id: I91b887d8268f8faa0d0c32f90da032d00eaa14f2
CRs-Fixed: 3198950
2022-07-21 11:01:54 -07:00
abhinav kumar
f66512e051 qcacld-3.0: Avoid possible NULL pointer dereference
In target_if_get_roam_vendor_control_param_event_handler,
there are 2 possible NULL pointer dereference issues:

1. Host calls target_if_get_psoc_from_scn_hdl API to get
   psoc object. But as per current logic even if psoc is
   NULL, psoc is dereferenced by passing it as an argument
   to get_wmi_unified_hdl_from_psoc.

2. Host calls get_wmi_unified_hdl_from_psoc API to get
   wmi_handle pointer. But as per current logic even if
   wmi_handle is NULL, wmi_handle is dereferenced by
   passing is as an argument 1 to function
   wmi_extract_roam_vendor_control_param_event.

Fix is to update the sanity check logic for psoc and
wmi_handle pointers to avoid possible NULL pointer
dereference.

Change-Id: I3c3df062b538b05218e729d7bf6806e221073269
CRs-Fixed: 3242435
2022-07-21 05:50:37 -07:00
VIJAY RAJ
702557e085 qcacld-3.0: Roam reason and sub-reason code conversion during diag logging
Wrong value of Roam reason and sub-reason code is sent to
userspace via diag logging.

Convert the value of reason and sub-reason code to qca
specific code before sending it to userspace

Change-Id: Iebdc5f8673e2da6a208a89caca9a742202256bcc
CRs-Fixed: 3236178
2022-07-19 03:33:41 -07:00
Vinod Kumar Pirla
6fad793761 qcacld-3.0: Check dynamic NS offload based on trigger
Currently a userspace request to enable NS offload dynamically
gets rejected if the offloads are in disabled state.

After this change, when a request to enable or disable of NS offloads
is received in the host and if the trigger type is to dynamically update
the NS offloads, then update the dynamic offload configuations and inform
the FW.

Change-Id: Ifb4a1d37b5f2e6c89d043b00f9cc0aaf426d870e
CRs-Fixed: 3237980
2022-07-19 01:35:44 -07:00
Gururaj Pandurangi
9605f2337c qcacld-3.0: Add host fixes related to EMLSR association
Add following host fixes related to EMLSR association.
1) Use phy cap get macro to extract EMLSR hw mode id.
2) Add logic to send EMLSR cap flag during vdev start.
3) Add logic to copy EML caps from assoc link common
info subfield to MLO peer assoc struct in order to
share EML caps to FW on both links via peer assoc.
4) Add checks to update EMLSR cap flag only if both
STA and AP support and advertise EMLSR mode.
5) Send EMLMR support flag along with EMLSR support
flag to FW as part of vdev set IE cmd for roaming
scenarios. Also, update common info length when EML
caps are present.

Change-Id: Ied2570d498a43adadd93899d4fdbe023d320676b
CRs-Fixed: 3235059
2022-07-18 23:36:09 -07:00
VIJAY RAJ
bcf0e588e7 qcacld-3.0: Incorrect bssid value during Roam Result logging
In the cm_roam_result_info_event() api, for roam result the
current AP bssid is sent instead of candidate AP.

Correct this to send candidate AP bssid during roam result
logging.

Change-Id: I4b1d4634faa3fbf3e7b32af8c13d4b444d26c505
CRs-Fixed: 3237021
2022-07-18 17:44:18 -07:00
Jyoti Kumari
893081ff9e qcacld-3.0: Start SAP on valid BW when no other interface is up
When SAP tries to come on 2.4 GHz channel with 40 MHz bandwidth
then it should start on same bandwidth if no other interface is
up. But currently SAP is getting switch from 40 MHz to 20 MHz
even in standalone case.

As a part of fix, check any other vdev is present on same mac or
not. If it's not present then start SAP on given bandwidth

Change-Id: Id9625a3dfaec34480f86b7ca1459ea33c32299fe
CRs-Fixed: 3226558
2022-07-18 17:44:12 -07:00
Amit Mehta
8c142b3f4d qcacld-3.0: Add change to set high vote level
Add change in bus bandwidth to set set high bus vote
level into DP component introduced by change to
skip special frame rate info update.
Change: Ie8989dde506c654525099f9d154abe93162a0bac

Change-Id: Ib0a2241ac63536fe885c89715d70c778af444f2d
CRs-Fixed: 3245764
2022-07-18 14:20:07 -07:00
Amit Mehta
08f5a4c814 qcacld-3.0: Move Enable detection of data stall events to DP component
Move change: Id4fd7f10f0806a39c5bdb7b8c097c26894dc5340
Enable detection of data stall events to DP component

Change-Id: I9eab2f29739cd0159f202a3a95f4a4baa70cb47d
CRs-Fixed: 3230891
2022-07-18 14:20:01 -07:00
Amit Mehta
95806ea1ee qcacld-3.0: HDD changes to incorporate new DP component
HDD changes to incorporate new DP component

Changes were backed out because of association issue
introduced by MLO adapter to DP interface mapping issue
and to avoid any further regression.
Re-introduce changes after performing complete sanity to
vet out any regression which might be introduced by these changes.

Change-Id: I058b9121c8490e9b0906421a35e01c55a1a7c25a
CRs-Fixed: 3198619
2022-07-18 03:17:02 -07:00
Yu Wang
85e898d01a qcacld-3.0: add ini to extend ITO value under WoWLAN mode
Some APs sometimes don't honor Qos null frames under WoWLAN
mode if station's ITO is too small. Introduce a new ini
gActionOUIExtendWowITO to specify AP OUIs which exhibit
this behavior. When connected to such an AP, the station's
ITO value will be extended when in WoWLAN mode.

Change-Id: I41ade7e6a6f5ca8d9b2aac2ae25427ca7fa8fe6b
CRs-Fixed: 3238200
2022-07-18 01:03:51 -07:00
Aditya Kodukula
2d9a20e46f qcacld-3.0: Add infra to support DBAM feature
Add infra to support Dedicated Bluetooth Antenna Mode (DBAM)
feature. It is used to switch between dedicated antenna for
BT and shared antenna for WLAN and BT.

Change-Id: I20b08a2fd446da4e3c17813aa64e368750286114
CRs-Fixed: 3239896
2022-07-17 23:12:16 -07:00
Liangwei Dong
42b30770a5 qcacld-3.0: Fix SBS list freq list missing in PCL
sbs_num contains the sbs_freqs array size. Do not clear it
to 0 before call get_sbs_chlist API. Otherwise the size_of_sbs
will be 0 and can't add sbs freq to list.

Change-Id: I318edd12978f73e9f75ab5298c36ceec57c5df6d
CRs-Fixed: 3243780
2022-07-15 20:49:08 -07:00
Vulupala Shashank Reddy
487a76179b qcacld-3.0: Fix vdev reference count in packet capture
In pkt_capture_datapkt_process and pkt_capture_mgmt_rx_data_cb
pkt_capture_vdev_put_ref is missing in error case, because of
which vdev ref count is not becoming zero when vdev is down.

Add pkt_capture_vdev_put_ref in all the error cases.

Change-Id: I55353356f059a367d57c64625f404e3940235be1
CRs-Fixed: 3228599
2022-07-15 11:51:24 -07:00
Sai Pavan Akhil Remella
46a85a4bfc qcacld-3.0: Fix invalid tx power in iw dev
Host driver rate limits successive get_txpower
calls within 3 seconds, and sends cached stats
from the hdd_stats. However, max_tx_power is
not updated in the hdd_stats. Therefore,
the cached tx power is always 0 dBm.

Also, the hdd_stats would be only updated when
CP stats are received from the firmware for
get_station/dump_station calls. get_station is not
periodically queried for SAP interface from the
framework. Therefore, tx power for SAP interface will
always be 0 even if hdd_stats gets updated.

To fix this, instead of hdd_stats, return the
max tx power from the pdev stats cached on the pdev.

Change-Id: I0c8d8baab790c7344bd8913158f8eda63736474e
CRs-Fixed: 3230649
2022-07-15 02:55:36 -07:00
Pragaspathi Thilagaraj
832fee1036 qcacld-3.0: Refine PASN peer delete all & pasn auth status path
Refine PASN peer delete all path, to post message to
scheduler thread to process the peer delete all
message for PASN peers. Handle response timeout in WMA.
Resume vdev deletion after removing pasn peers

Add vendor command support to parse below vendor commands:
QCA_NL80211_VENDOR_SUBCMD_PASN
QCA_NL80211_VENDOR_SUBCMD_SECURE_RANGING_CONTEXT

Send install key command to firmware to install the
PTK upon receiving
QCA_NL80211_VENDOR_SUBCMD_SECURE_RANGING_CONTEXT
vendor command. If LTF keyseed is also received,
send the LTF keyseed to firmware.

Sent PASN auth status to firmware upon receiving
QCA_NL80211_VENDOR_SUBCMD_PASN command.

Change-Id: Idc9c69f7288b0774cc6d9bdcfed13ba3684bbc72
CRs-Fixed: 3231205
2022-07-14 04:12:30 -07:00
Roopavathi Lingampalli
7cc8f0ad6b qcacld-3.0: Fix disconnect for NUD failure just after roaming
Move Change Ia3a9e989ea16443fa157834ef9d4ceb247f82e24 to
DP component
Change-Id: I596abc5662daba0a1d17e195bcb3ccf5fac1a7d4
CRs-Fixed: 3236310
2022-07-13 00:21:52 -07:00
Aravind Kishore Sukla
d7823c2688 qcacld-3.0: Initialize bssid variable
Uninitialized variables in pkt_capture_process_tx_data()
and pkt_capture_callback() may lead to Unpredictable behaviour.

Initialize corresponding bssid variables to avoid it.

Change-Id: I1ca6e7e04c8920111414a83c29cb61883b72370c
CRs-Fixed: 3241885
2022-07-12 18:55:06 -07:00
abhinav kumar
6971eebe61 qcacld-3.0: Process CP stats response while roaming
Scenarios are:
1. Host receives ROAM_START from firmware
2. Host receives EAPOL M1 from AP, host forwarded
   it to supplicant and supplicant buffered it (with
   timer 100 msec) to process it after association
   completion.
3. Host starts processing CP stats request, which
   holds RTNL kernel lock
4. Host starts a CP_STATS_WAIT_TIME_STAT (800 msec)
   timer and sends WMI_REQUEST_STATS_CMDID to FW.
   So cp stats are holding the RTNL lock.
5. In waiting state host/FW completed roaming within
   a few milliseconds. Host Call roamed indication
   to the kernel. Kernel post it to the Work queue
   to indicate this to the supplicant. The Work
   queue requires the RTNL lock to send the
   indication to the supplicant.
6. Now Kernel is waiting on the RTNL lock taken by
   the CP stats request which is waiting for the CP
   stats response (WMI_UPDATE_STATS_EVENTID).
7. Host receives CP stats response but the host is
   unable to handle it with the below reason.
8. Timed out happens for WMI_UPDATE_STATS_EVENTID,
   then Kernel takes RTNL lock to indicate
   association/roam completion status to the
   supplicant.
9. As Kernel is sending association indication
   after CP_STATS_WAIT_TIME_STAT (800 msec), by
   this time supplicant deleted buffered EAPOL
   first frame, this results in DUT failing to
   initiate the 4-WAY handshake.
10. Finally AP sends the Deauthentication frame
    to DUT.

Reason for unable to process CP stats response :
As per the current design, While processing Roaming,
the host deletes the old peer and creates a new peer
for roamed AP. If the Host receives cp stats response
after peer delete due to roaming, the host is unable
to stop waiting for timer CP_STATS_WAIT_TIME_STAT
and fails to release RTNL kernel lock till timeout.
After time out only, Kernel can take RTNL lock to
indicate association/roam completion status to the
supplicant.

Fix is to stop the wait timer CP_STATS_WAIT_TIME_STAT
and release RTNL kernel lock even in case peer has
deleted by HOST for which CP stats request sent.

Change-Id: Ie5b5275da10a06da50b2fbb8ab206b78f2c64d6a
CRs-Fixed: 3234063
2022-07-12 17:18:23 -07:00
Amruta Kulkarni
fca6448671 qcacld-3.0: Add runtime pm lock during roaming
Acquire the runtime pm lock when roam sync event is received
and release after roam sync complete is sent.

Change-Id: Ic56d353dd343f5fcbc228a8d7251e047177b9a9b
CRs-Fixed: 3238723
2022-07-12 02:30:28 -07:00
Jayachandran Sreekumaran
e728680f11 qcacld-3.0: Add spatial reuse feature support
Add SAP mode support for non-srg spatial reuse.

Change-Id: Ic575eefd0d36b6750d826c9bccbd53f07ae9ea75
CRs-Fixed: 3213404
2022-07-11 23:12:40 -07:00
Yeshwanth Sriram Guntuka
6529648bf3 qcacld-3.0: Move TC based dynamic GRO logic to DP component
Move TC based dynamic GRO logic to DP component.

Change-Id: I3c6658e8f19a71e548c77ff6fd637148925008d7
CRs-Fixed: 3219451
2022-07-11 13:04:51 -07:00
VIJAY RAJ
a5488c0b6b qcacld-3.0: TX status conversion for mgmt frame during diag logging
Wrong value of tx status sent to supplicant for MGMT frame
via diag logging.

Convert the tx status value to enum diag_tx_status specific value.

Change-Id: Iba6d8011280d41a874509d2a1b4fed9a16ee585c
CRs-Fixed: 3236363
2022-07-10 05:07:27 -07:00
Pragaspathi Thilagaraj
da71bc9d01 qcacld-3.0: Delete all PASN peers before vdev delete
Delete all PASN peers before vdev delete

Change-Id: I125c62680179ae9ba466c8e26573d82680f6e9d3
CRs-Fixed: 3170778
2022-07-07 17:46:40 -07:00
Pragaspathi Thilagaraj
e33def8324 qcacld-3.0: Add support to create ranging peer
Add support to send ranging peer create command from WMA

Change-Id: I67966983b157efaecaad7209b679483f010e84a5
CRs-Fixed: 3150075
2022-07-07 17:46:28 -07:00
Utkarsh Bhatnagar
57f0e9e475 qcacld-3.0: Use freq to process Tdls peer supported chans
With introduction of TDLS on 6 GHz, some of the channels
that peer can support will be same for 6 GHz band other
bands. So, extract frequency by using peer supported
operating class and supported channel list which can
be used for further processing.
If channel numbers are used then the duplicate channel
numbers are removed which may lead to skipping 6 GHz
supported channels.

Change-Id: Ic6838d05c3dab5a0cc17483890b83805e076684c
CRs-Fixed: 3233999
2022-07-07 17:46:21 -07:00
Jianmin Zhu
ab5022192c qcacld-3.0: Fix issue uapsd AC is 0 when set enable_twt 0
After WLAN_TWT_CONV_SUPPORTED enabled, TWT variables are moved from
COMP_MLME to COMP_TWT, APIs are updated too, hdd_update_tgt_twt_cap
just intersects enable_twt and twt_requestor of COMP_TWT instead of
COMP_MLME, legacy variable mlme_cfg->he_caps.dot11_he_cap.twt_request
isn't controlled by ini enable_twt now.

Change-Id: I71bb09704fd96591f37019ebbb77733cff04af25
CRs-Fixed: 3229121
2022-07-07 14:24:16 -07:00
Rahul Gusain
d7b141370b qcacld-3.0: Add null peer check before releasing the peer
Currently in driver, for non-DBS hw mode, null peer is released in the
function ndi_remove_and_update_primary_connection. This causes null
pointer deferencing.

To fix this, add null peer check before releasing the peer.

CRs-Fixed: 3184390
Change-Id: Ia895c8487082e0fac6e7df63d3694fa3e152b355
2022-07-05 19:52:39 -07:00
VIJAY RAJ
e96efd0496 qcacld-3.0: Send BTM and EAPOL event logs through netlink
BTM and EAPOL events are sent through the vendor event to
the supplicant

Modify the BTM and EAPOL event log flow through the diag
event to the supplicant in order to maintain single
logging infrastructure

Change-Id: I1e21d1192be059cc48189bc57aacbc314d5297bc
CRs-Fixed: 3219065
2022-07-05 12:40:30 -07:00
VIJAY RAJ
8d4332bc1b qcacld-3.0: Send Roam Diag event logs through netlink
Roam Diag logs are sent through the vendor event to the supplicant.

Modify the Roam Scan start and Roam Candidate log flow through
the diag event to the supplicant in order to maintain single
logging infrastructure.

Change-Id: Idd85b46f72a481aa99e243c81952010d2779afaf
CRs-Fixed: 3218639
2022-07-05 12:40:24 -07:00
Utkarsh Bhatnagar
fa29fba7e4 qcacld-3.0: Use freq instead of chan num for TDLS pref offchannel
Use frequency instead of chan num for processing TDLS offchannel
req for preferred offchannel.
Since, after introduction of TDLS on 6 GHz band it is better to
process offchannel in frequency instead of channel numbers as
some of the channel numbers are repeated for 6 GHz.

Change-Id: Icd7084b9f3c407ad0ad104b7f0d2230e31e0b10d
CRs-Fixed: 3234920
2022-07-05 03:18:45 -07:00
Dundi Raviteja
a258f3cd42 qcacld-3.0: Clean up code under PRE_CAC_COMP flag
pre cac componentization is done, so clean up
code under PRE_CAC_COMP flag.

Change-Id: I6465bce9fc883797f42358aaeb8dabf70e449cde
CRs-Fixed: 3232820
2022-07-04 11:52:02 -07:00
VIJAY RAJ
f327e23c86 qcacld-3.0: Optimize logs in wlan_connectivity_mgmt_event
In api wlan_connectivity_mgmt_event(), the connecting status
is checked for every instance of wlan_connectivity_mgmt_event
resulting in excessive printing of wlan_cm_is_vdev_connecting
logs.

Add check to verify connection status for STA/CLI mode which
results in trimming of wlan_cm_is_vdev_connecting() logs.

Change-Id: I33d8d91e58a38b8998183e20bbf455ff94855c6d
CRs-Fixed: 3211801
2022-07-04 11:51:57 -07:00
Surya Prakash Sivaraj
c01e68f5b4 qcacld-3.0: Send RSO update after set key failure
In multiple AKM suite roaming scenario, if the STA is
roaming from WPA3 to WPA2 AKM suite, during the roam sync the
rso config will have the PMK of previous WPA3 connection. The
RSO start for the new connection would plumb the PMK of WPA3 to
the FW. After the RSO is enabled, set_key from userspace will
update the proper PMK of the current WPA2 to the FW via
RSO Update.

Due to a race condition, the set_key from userspace can reach
driver before the RSO start is sent to the FW. In this case,
the RSO update(due to set_key) will fail. Therefore, the FW
will keep the WPA3 PMK(in RSO start) as the final PMK for
the WPA2 connection, leading to roam failures.
To fix this, if the set_key for the connected bssid is
received during Roam sync in progress, then mark the
set_key rejection in vdev and send RSO update to the
FW after RSO gets enabled.

Change-Id: Ibb5a4929212e6c2ccabf39136962d3a8e606ece9
CRs-Fixed: 3212800
2022-06-30 12:50:42 -07:00
Surya Prakash Sivaraj
381bb0f03a qcacld-3.0: Allow same band alternate channel for SAP
Allow the policy manager to select an alternate channel
on the same band if the SAP has no concurrent interfaces.

Change-Id: Ibd358018b0e9d631dbf61b42069a117870b5af44
CRs-Fixed: 3230881
2022-06-30 10:54:05 -07:00
Utkarsh Bhatnagar
4d9e51e8a7 qcacld-3.0: Allow TDLS connection in wideband only if fw supports
Irrespective of 6 GHz, wideband can be supported.
So, Allow TDLS connection in wideband only if FW supports TDLS
on 6Ghz.
If Fw doesn't support wideband then restrict the TDLS connection
BW to APs Bw.

Change-Id: If726233f381921a8eda25ac7a2705942db79d410
CRs-Fixed: 3223760
2022-06-30 10:53:58 -07:00
abhinav kumar
85c8c8c9b8 qcacld-3.0: Allow Host to process ROAM_CONTROL_ENABLE vendor cmd
Allow Host to process ROAM_CONTROL_ENABLE vendor command
irrespective of WLAN_VENDOR_HANDOFF_CONTROL feature flag.

Change-Id: I1fb1b231a4273013bacd35e38436c12ae6566b1d
CRs-Fixed: 3230968
2022-06-30 03:06:03 -07:00
VIJAY RAJ
ee9e38f2b0 qcacld-3.0: Send Connectivity diag event through netlink
Connectivity logs are sent through the vendor event to the
supplicant.

Modify the connectivity log flow through the diag event to
the supplicant in order to maintain single logging infrastructure.

Change-Id: Id5429349e00c16c23b76894744fef404b2266e9e
CRs-Fixed: 3218152
2022-06-29 15:46:26 -07:00
VIJAY RAJ
7b37f88e1d qcacld-3.0: Incorrect throughput value in Connectivity logging
In the api cm_roam_candidate_info_event(), the value of
throughput is sent in Mbps whereas throughput is expected
in Kbps

Correct this by converting the throughput to Kbps instead of
sending it in Mbps.

Change-Id: I0fe95efc3a02d43187ff2c0423813529687c2ee9
CRs-Fixed: 3224754
2022-06-29 09:32:30 -07:00
Utkarsh Bhatnagar
50885ab717 qcacld-3.0: Add support for TDLS offchannel
Add support for TDLS offchannel changes required
for supporting TDLS offchannel on 6 GHz band.

Change-Id: Ie150ff7e5a8237dab445ccb0ab6a4959a7c7fbf0
CRs-Fixed: 3223640
2022-06-29 04:31:05 -07:00
Liangwei Dong
d6e9616054 qcacld-3.0: Add radio combination matrix vendor command support
Create radio combination matrix list from target mac phy information.
Return the supported radio matrix to apps by vendor command
QCA_NL80211_VENDOR_SUBCMD_GET_RADIO_COMBINATION_MATRIX.

Change-Id: I9732eadf10e8634336dbdac21e10f60e81cbaca6
CRs-Fixed: 3214050
2022-06-28 15:37:25 -07:00
Srinivas Dasari
db79080a21 qcacld-3.0: Add support to update ch_width of peer to DP
When the STA connects to a peer, max supported ch_width is
calculated and configured to firmware. This is calculated from
self and peer capability in case of STA/SAP. Cache this in
peer object. Currently, data path module isn't aware of the final
ch_width configured.
Fetch the phymode and covert it to the DP expected ch_width
format. Update the ch_width to DP.
phymode of NDI peers is not maintained in host. So, get the NDI
self phymode and update to DP.

Change-Id: I25993053ae1f129c8fc9a352a05c788451060b2d
CRs-Fixed: 3227453
2022-06-28 15:37:19 -07:00
Jianmin Zhu
71d3e7c17c qcacld-3.0: Fix peer unmap failure due to invalid roam scan mode value
When supplicant disables firmware roam, RSO stop command with
roam scan mode value 4 is sent to firmware and this value 4
indicates the firmare to enable only Forced roam trigger(roam
invoke command from host). But before
ROAM_DEINIT(WMI_VDEV_PARAM_ROAM_FW_OFFLOAD with value zero) is
posted to firmware, the roam scan mode should be 0 or else there
could be potential peer unmap failures if firmware has already
started roam and disconnect is triggered from north bound or from
peer.
To avoid this, in the roam offload state machine handle the state
switch from RSO stopped to deinit if supplicant disabled roaming
flag is set and send RSO stop with roam scan mode value 0 to
firmware.

Change-Id: I6ff39f43bd75c95ed03c357a5602e25a5a0ffd92
CRs-Fixed: 3229082
2022-06-27 05:28:50 -07:00
Liangwei Dong
5205b3d19a qcacld-3.0: Fix start on DFS failure for auto GO
From Auto P2P GO DFS requirement, if GO force SCC strict
enable and sta_sap_scc_on_dfs_chan ini enabled, allow
Autonomous GO starts on DFS.
Fix it by allow GO on DFS such configuration.

Change-Id: Ia4c5b1c7889f5c3115e4e05ac7f051673bbb2b81
CRs-Fixed: 3228456
2022-06-27 03:48:42 -07:00
Gururaj Pandurangi
1fd34c640f qcacld-3.0: Add logic to share 11BE mode selection with FW
Add checks to see if STA supports eMLSR mode and also
vendor command selection. If both support eMLSR, then set
eMLSR support bit. This value is shared with FW via
wmi_vdev_set_ie.

Change-Id: I9ea3bebfcaf90bb83d8811924afd8805530e40dc
CRs-Fixed: 3220949
2022-06-26 05:18:01 -07:00
Gururaj Pandurangi
61dfd77555 qcacld-3.0: Handle eMLSR STA concurrencies in policy mgr
Handle the following the eMLSR STA concurrency scenarios

1) eMLSR STA + SAP/P2P GO/NAN - Send a force disable link request to
FW on any one of the eMLSR links. FW will decide which link to disable.
2) eMLSR STA + STA/P2P Client - Send a force disable link request to
FW on any one of the eMLSR links. FW will decide which link to disable.
This action happens before vdev start of the new connection request.
3) eMLSR STA + TDLS - TDLS connection is not allowed since eMLSR STA is
given higher priority.
4) If there is already an existing connection, then eMLSR is not allowed.

Once the other connection goes down, the disabled eMLSR link is restored.
The concurrency handling API is invoked from corresponding interface
manager APIs.

Change-Id: Ib7d5da5dcb8eb3ea16c6e50c8fcadc20972d7d05
CRs-Fixed: 3185078
2022-06-26 05:17:55 -07:00
Utkarsh Bhatnagar
5b8626946b qcacld-3.0: Allow TDLS connection on 6GHz only if fw supports
Allow TDLS connection on 6GHz only if FW supports TDLS on 6GHz.

Change-Id: I663bd6d73235664c21029d8956f465da5a5b39c6
CRs-Fixed: 3223677
2022-06-25 03:03:20 -07:00
abhinav kumar
b2c27b3103 qcacld-3.0: Handle vendor control command and event
WMI_ROAM_GET_VENDOR_CONTROL_PARAM_CMDID: Add support
for a new roam command to get vendor control parameters
from FW. Host needs to send proper param ID in command
(from enum WMI_ROAM_GET_VENDOR_CONTROL_PARAM_ID)
to get corresponding INI value from FW.

WMI_ROAM_GET_VENDOR_CONTROL_PARAM_EVENTID:
Add support for a new roam event to get param value
from FW. FW sends this event upon receiving
WMI_ROAM_GET_VENDOR_CONTROL_PARAM_CMDID command.

Change-Id: I03679bcf359a0f425aab7b9ea1c3cb6d84fbb0ca
CRs-Fixed: 3225160
2022-06-25 01:08:39 -07:00