Commit Graph

49 Commits

Author SHA1 Message Date
gaurank kathpalia
e4defd9d16 qcacld-3.0: Add connect and disconnect support in connection manager
Add support for connect and disconnect path
in legacy cld files with respect to connection
manager.

Change-Id: Ia42dd45d943de20d91279c0197b0f17a5c0326eb
CRs-Fixed: 2805807
2020-10-28 15:33:18 -07:00
Abhishek Ambure
595846e6db qcacld-3.0: Add support to enable/disable FILS_DISCV_FRAMES TX
Host adds support to send enable/disable wfa config for FILS_DISCV_FRAMES
to firmware.

Change-Id: I0143b158b5f62b42c0d4c3d8a34a7ec7b1ec994b
CRs-Fixed: 2801144
2020-10-27 10:53:15 -07:00
Abhinav Kumar
94b44452f6 qcacld-3.0: Discard 5G candidates based on RSSI threshold
To discard 5G candidates based on RSSI threshold, Introduce
a new INI "min_rssi_for_2g_to_5g_roam" to configure the RSSI
for High RSSI Trigger.

Min: -120
Max: 0
Default: -70

Change-Id: If4545296ef1b53d18b8ae4abf12d450f5e690240
CRs-Fixed: 2789017
2020-10-20 17:21:29 -07:00
Wu Gao
515ff34742 qcacld-3.0: Fix implicit-fallthrough compile error about connection mgr
Compiling connection mgr by gcc 9.3 will cause many implicit-fallthrough
compile errors.
Fix is to add keyword fallthrough to resolve such compile error.

Change-Id: I02fb3ff12d8cea81ce160b3aec1f590faf83a031
CRs-Fixed: 2798881
2020-10-16 05:01:24 -07:00
Deeksha Gupta
a51999d5fa qcacld-3.0: Enable the Partial scan for roam triggers
Currently the roam scan scheme for each trigger is hardcoded to
either full scan or partial scan followed by full scan. Based on
the new requirement for home scenario,the user space configures
roam scan scheme for various triggers. Add support to send scan
scheme type for indvidual roam triggers enabled from userspace.
The default value of roam scan scheme can be modifed for
below roam triggers:
WMI_ROAM_TRIGGER_REASON_PER,WMI_ROAM_TRIGGER_REASON_BMISS,
WMI_ROAM_TRIGGER_REASON_LOW_RSSI,WMI_ROAM_TRIGGER_REASON_BSS_LOAD,
WMI_ROAM_TRIGGER_REASON_BTM

Change-Id: If8b185897b813afc44af362d31172705ea4d7b5c
CRs-Fixed: 2785233
2020-10-09 06:47:17 -07:00
Pragaspathi Thilagaraj
cd22d076ab qcacld-3.0: Add support to send roam scan scheme for the triggers
Add support to handle the nl80211 attribute -
QCA_ATTR_ROAM_CONTROL_TRIGGERS_SCAN_SCHEME. Send RSO update to
firmware if roam scan scheme value is received via the nl80211
attribute QCA_ATTR_ROAM_CONTROL_TRIGGERS_SCAN_SCHEME over the
QCA_WLAN_VENDOR_ATTR_ROAMING_SUBCMD subcommand.

Change-Id: If21281245097648380990b9218a722691279f598
CRs-Fixed: 2785256
2020-10-09 06:47:13 -07:00
Pragaspathi Thilagaraj
4822851798 qcacld-3.0: Fix RSN not included in FILS connection
When the FILS erp keys are available, the RSN IE is
not included in the assoc request as the function
lim_update_fils_config() returns always if rrk_length is
non zero. Fix this to return only if malloc fails.

Also add additional debugs for RSN IE not included in FILS
authentication frame and remove call to
wlan_cm_update_mlme_fils_connection_info() from
update_profile_fils_info().

Change-Id: I75cc1b04c2fdcbf3e7c55dfac41254a2378233bb
CRs-Fixed: 2789793
2020-10-07 21:42:21 -07:00
Abhishek Ambure
af02d10731 qcacld-3.0: Add support to send wfa test config to FW
User sends wfa test configs to host using vendor command
QCA_NL80211_VENDOR_SUBCMD_WIFI_TEST_CONFIGURATION. Host parses the
vendor command and sends wfa test configs to FW using WMI command
i.e. WMI_WFA_CONFIG_CMDID

Change-Id: I5aa0bc8b0a0064828b48368e47d53a5ad5e7ff2f
CRs-Fixed: 2772013
2020-10-06 04:10:51 -07:00
gaurank kathpalia
7e46479450 qcacld-3.0: Add vdev id in RSO stop commands
Add vdev id in RSO stop commands to make sure that command is sent
for proper vdev. Also add vdev id in all RSO commands logs

Change-Id: Iefa1e8ba177a64e141726ebaef15b250446a0af2
CRs-Fixed: 2789615
2020-10-01 23:58:26 -07:00
hqu
8bd89b11dd qcacld-3.0: Send roam scan_mode/deauth/idle/trigger when rso enabled
In the process of rso update config, need to send roam
scan_mode/deauth/idle/trigger commands when rso enabled.

Another fix is to call csr_cm_roam_scan_offload_fill_rso_configs()
with ROAM_SCAN_OFFLOAD_STOP in wlan_cm_roam_fill_stop_req().

Change-Id: Ibcc2ab5d7da1bf838b386e0e1e486cd43072225a
CRs-Fixed: 2779549
2020-09-22 07:59:17 -07:00
Abhishek Singh
5cdd743c84 qcacld-3.0: Move rso tx ops to psoc from vdev
Move rso tx ops to psoc from vdev.

Change-Id: Icd0a8aef8ecc7ef097b2239d05c6e21ea36b8216
CRs-Fixed: 2779294
2020-09-18 07:29:57 -07:00
Pragaspathi Thilagaraj
f175b03bea qcacld-3.0: Fix invalid pcl weight for 2G channels in 6G sta connection
When band mask for connected STA is 7(connected in 6GHz), the weight
of 2.4Ghz channels is sent as 1(weight of non-pcl channels). This
allows firmware to roam to 2.4Ghz AP with dual sta roaming enabled.

For 6Ghz connection, set 2.4Ghz channels weight to 0 to disallow fw
roaming.

Change-Id: I9581c51a827e6fa6ac186b531639ce4835ba0faa
CRs-Fixed: 2775276
2020-09-18 02:06:47 -07:00
Abhinav Kumar
33fdd1fac0 qcacld-3.0: Remove unused roam ini gRoamBeaconRssiWeight
Currently, gRoamBeaconRssiWeight is not used in HOST or
FW.

Remove unused roam ini param gRoamBeaconRssiWeight.

Change-Id: Ida6ddb8ca5805f819c4d3f7e6ed96c705fa6594f
CRs-Fixed: 2767533
2020-09-16 04:51:26 -07:00
Abhinav Kumar
7ac893f2af qcacld-3.0: Add a new INI bg_rssi_threshold
FW triggers roaming based on the RSSI score of AP(s) available
after background scan. Currently, the host does not configure
the value of bg_rssi_threshold RSSI. This results in ping-pong
roaming after background scan, even though candidate AP
RSSI is not better than 5dbm than connected AP.

Fix is to configure the value of bg_rssi_threshold via new
INI "bg_rssi_threshold" and configuring default value of
INI as 5dB.

Min: 0
Max: 100
Default: 5

Change-Id: Ib710e294c8b33ff4903d41453e3b55f02daf53ae
CRs-Fixed: 2763962
2020-09-15 07:19:33 -07:00
Abhishek Ambure
2813eaa802 qcacld-3.0: Add support for SAE-PK roam scoring
SAE Public Key (SAE-PK) authentication is an extension of SAE. Host adds
support for SAE-PK APs roam score which host uses to select AP for initial
connection and roaming.

Change-Id: Id8c420950bb8c1d11db5a26aa860e280bcb672d1
CRs-Fixed: 2769372
2020-09-15 04:59:24 -07:00
Pragaspathi Thilagaraj
86c2433d79 qcacld-3.0: Add additional debugs for roam scan offload commands
Add additional debugs in wmi for roam scan offload mode command
TLVs.
Also add changes to fill scan parameters for Roam scan offload
mode command start scan fixed param.

Change-Id: I9610d54a1f331c5f9910d44b11c5841e034036b8
CRs-Fixed: 2770713
2020-09-07 18:51:13 -07:00
Jianmin Zhu
e7c9718446 qcacld-3.0: Add 3 ini for data rssi check when roaming
3 ini:
roam_data_rssi_threshold_triggers
roam_data_rssi_threshold
rx_data_inactivity_time
If there's rx activity during latest rx_data_inactivity_time
and avg of data_rssi is better than roam_data_rssi_threshold, then
suppress roaming triggered by roam_data_rssi_threshold_triggers: low
RSSI or bg scan.

Change-Id: I5b41c4119e61392b50e52ab8ccb8650e5758f3b3
CRs-Fixed: 2768053
2020-09-07 03:17:49 -07:00
Abhishek Singh
8d182461d5 qcacld-3.0: Fix whunt reassoc TC with ROAM_OFFLOAD_V1
Fix whunt reassoc TC with ROAM_OFFLOAD_V1.

Change-Id: I020b9c7f5a0da8ae8cf17e875bf1f40db240ca0c
CRs-Fixed: 2769761
2020-09-04 11:42:05 -07:00
Pragaspathi Thilagaraj
36907e74d5 qcacld-3.0: Add changes to send WMI_CHAN_LIST_CMD in connection mgr
Add changes to send WMI_CHAN_LIST_CMD in connection mgr

Change-Id: I79f96c400314be4e8a0b1aad5ecfe04e638d552d
CRs-Fixed: 2768812
2020-09-03 19:27:30 -07:00
gaurank kathpalia
cb27dfd2e4 qcacld-3.0: Add support for sme_abort_roaming for ROAM_OFFLOAD_V1
Adds support for sme_abort_roaming for ROAM_OFFLOAD_V1.
Also fix compilation error for ROAM_OFFLOAD_V1.

Change-Id: I06247b1118b7dee32ff392b247e2e08e32dbaf9f
CRs-Fixed: 2768397
2020-09-03 15:24:56 -07:00
Pragaspathi Thilagaraj
170c20e443 qcacld-3.0: Add support for roam scan mode command in connection mgr
Add changes to send roam scan mode over RSO start/stop/update_cfg
from connection manager. Update the roaming params and roam scan
params to new structure.

Refine send_roam_scan_offload_mode_cmd_tlv().

Change-Id: I6adce2e8a24ece93a079032d0e66760393fcdccd
CRs-Fixed: 2766023
2020-09-01 18:14:21 -07:00
Pragaspathi Thilagaraj
2d1baa7548 qcacld-3.0: Fix NULL pointer dereference of mlme_priv
Fix NULL pointer dereference of mlme_priv while using
the macro GET_CM_ROAM_TX_OPS_FROM_VDEV. Also replace this
macro GET_CM_ROAM_TX_OPS_FROM_VDEV with inline function to comply
with the linux coding style “Generally, inline functions are
preferable to macros resembling functions”

Change-Id: Ifc9ba37e3d260b027ba79457f00382374f3b78ac
CRs-Fixed: 2764891
2020-08-31 20:02:06 -07:00
wadesong
65e8c1c219 qcacld-3.0: Fix a race condition in roaming module
A race condition can happen when roaming state machine
transition takes place in the following sequence:

  1) FW indicates 'roam_synch' event to driver, and driver in
     turn, advances its roaming state machine to
     'WLAN_ROAM_SYNCH_IN_PROG', in wlan scheduler context;
  2) HDD layer starts to do 'disconnect'(could be due to NUD
     failure), and thus needs to stop roaming scan offload in
     the following sequence:

     2.1) Post a RSO stop cmd to FW, via the scheduler thread;
     2.2) Advance the roaming state machine to a new state of
          'WLAN_ROAM_RSO_STOPPED';
     2.3) Check if:
          >> the roaming state machine is still in a state of
	     'WLAN_ROAM_SYNCH_IN_PROG'
	  >> the neighbor roaming state is in any of the states
	     below:
	        eCSR_NEIGHBOR_ROAM_STATE_REASSOCIATING;
		eCSR_NEIGHBOR_ROAM_STATE_PREAUTHENTICATING;
		eCSR_NEIGHBOR_ROAM_STATE_PREAUTH_DONE;

	  Here, if any of the conditions becomes true, then
	  HDD will wait for 4 sec to let the roam_synch handler
	  finish its job, otherwise the wait will not happen.
     2.4) Disconnect the current vdev and advance the roaming
          state machine to 'WLAN_ROAM_DEINIT';

In a corner case, race condition can happen in the following
sequence:

 >> thread 1), which executes in wlan scheduler context, starts
    to run first, and thus roaming state machine advances to
    'WLAN_ROAM_SYNCH_IN_PROG', but then gets preempted before
    starting to parse the assoc resp frame attached in the
    roam_synch event;
 >> thread 2) starts to run and posts RSO stop cmd, but the req
    msg cannot be handled right away due to scheduler thread
    is actively running with other tasks, so it gets queued at
    step 2.1);
 >> thread 2) continues to run, and simply advances the roaming
    state machine to 'WLAN_ROAM_RSO_STOPPED' at 2.2), and then
    it will find out none of the conditions listed in 2.3) is
    true, so it choses NOT to wait for 'roam_synch' handler to
    finish;
 >> thread 2) reaches to step 2.4) without waiting at 2.3), and
    roaming state machine advances to 'WLAN_ROAM_DEINIT';
 >> thread 1) continues to run and starts to parse the assoc
    resp frame indicated by FW, and finds that the roaming state
    machine NOT in 'WLAN_ROAM_SYNCH_IN_PROG', and thus goes to
    the wrong way to treat the buffer in a different manner,
    causing a invalid pointer access here.

Fix the racing condition by checking if the roaming state machine
is in 'WLAN_ROAM_SYNCH_IN_PROG' before advancing the same to
'WLAN_ROAM_RSO_STOPPED' in function wlan_hdd_wait_for_roaming().

Change-Id: I202ccb371e9e70a76ef35938c700b60c91b7d3cb
CRs-Fixed: 2761880
2020-08-31 17:21:10 -07:00
hqu
28418b167b qcacld-3.0: Move rso related process to connection manager [PART 8]
Move below two changes from legacy to connection manager:
'Change-Id: If3bb344ec7058d4149d0064975d7c91f213fd105',
'Change-Id: I39a84d06b9c696179da1b854985a23b874a399c5'

Change-Id: I33921497d966f08a0ca476a373cfe6527888ca39
CRs-Fixed: 2765469
2020-08-29 12:24:56 +05:30
gaurank kathpalia
0ea2611649 qcacld-3.0: Add RSO logic to send roam trigger from target if
Add RSO logic to send roam trigger from target if along with
some optimization to move old logic in ROAM_OFFLOAD_V1.

Change-Id: I38e7fb4f8873328097df7e3a25d6c709f8d69b33
CRs-Fixed: 2765155
2020-08-28 23:31:08 -07:00
Pragaspathi Thilagaraj
eec05fff64 qcacld-3.0: Add support to send RSSI_CHANGE_THRESHOLD
Add support to send WMI_RSSI_CHANGE_THRESHOLD command to firmware
in connection manager.

Change-Id: I97d4b8f8fc0e938ede0e61d44eb8ffbcbb0fb4ff
CRs-Fixed: 2761043
2020-08-25 05:41:15 -07:00
Pragaspathi Thilagaraj
9c8821e63c qcacld-3.0: Add changes to define roam scan mode commmand structures
Add changes to define structure to hold the WMI_ROAM_SCAN_MODE
command related parameters.
Also added minor cleanup changes.

Change-Id: I24ef18e05de8dd05ee437e440651ea9ab0731e46
CRs-Fixed: 2758316
2020-08-23 17:37:32 -07:00
hqu
f996a7c696 qcacld-3.0: Move rso related process to connection manager [PART 7]
Add new code to implement below functions for connection manager
roam part:
Filling below WMI cmd parameters related process:
WMI_ROAM_CONFIGURE_MAWC_CMDID
WMI_ROAM_BSS_LOAD_CONFIG_CMDID

Rename file wlan_cm_roam_public_srtuct.h name to
wlan_cm_roam_public_struct.h

Change-Id: I64d54bb78b71dadc49d119b9083658347cc4f807
CRs-Fixed: 2758130
2020-08-20 15:42:04 -07:00
hqu
75feb60ade qcacld-3.0: Move rso related process to connection manager [PART 6]
Add new code to implement below functions for connection manager
roam part:
And below two RSO command related process:
ROAM_SCAN_OFFLOAD_STOP
ROAM_SCAN_OFFLOAD_UPDATE_CFG

Change-Id: I378b969ddae77fff49ad1d4d8ce21764b292e5ac
CRs-Fixed: 2753011
2020-08-14 04:12:14 -07:00
Kiran Kumar Lokere
09d979b3d1 qcacld-3.0: Use ROAM_11KV_CTRL cmd to enable/disable FW roaming
Use ROAM_11KV_CTRL WMI vdev command to enable/disable the roaming
functionality in FW.

Change-Id: If3bb344ec7058d4149d0064975d7c91f213fd105
CRs-Fixed: 2727671
2020-08-11 11:52:40 -07:00
hqu
e6dec862e4 qcacld-3.0: Move rso related process to connection manager [PART 5]
Add new code to implement below functions for connection manager
roam part:
Filling below WMI cmd parameters related process:
WMI_11K_OFFLOAD_REPORT_CMDID
WMI_ROAM_DEAUTH_CONFIG_CMDID
WMI_ROAM_IDLE_CONFIG_CMDID

Change-Id: I346b921a6f378e7c4d8860acd7c3bec45a0b9d3a
CRs-Fixed: 2749430
2020-08-06 16:39:57 -07:00
Abhinav Kumar
247596b04b qcacld-3.0: Send value of INI "roam_score_delta" to FW
As per requirement, send a value of an INI "roam_score_delta" to FW
through WMI_ROAM_ENABLE_DISABLE_TRIGGER_REASON_CMDID.

Change-Id: I9a2087f83c2eb95338d440dc901bd8aa246f7e5f
CRs-Fixed: 2740552
2020-08-06 06:34:40 -07:00
hqu
ed6c27c858 qcacld-3.0: Move rso related process to connection manager [PART 4]
Add new code to implement below functions for connection manager
roam part:

Filling below WMI cmd parameters related process:
WMI_ROAM_BTM_CONFIG_CMDID
WMI_ROAM_SCAN_STOP_CMD
WMI_ROAM_PER_CONFIG_CMDID

And RSO command:
ROAM_SCAN_OFFLOAD_RESTART

Change-Id: I18480941980a55957abd48e0329fe4ef213a1243
CRs-Fixed: 2747578
2020-08-05 04:24:03 -07:00
Pragaspathi Thilagaraj
68d572daa3 qcacld-3.0: Add connection manager RSO init/deinit support
Add connection manager changes to send roam scan offload init
deinit. Add new enum roam_offload_init_flags to fill the roam
init/deinit flags, 4-way handshake offload, bmiss skip full scan
flags at connection manager instead of getting the ini and filling
at target if.

Change-Id: I558e868efd341b508d3df76c8d6ab90eac512432
CRs-Fixed: 2745585
2020-08-01 21:08:44 -07:00
hqu
bc1e6476b7 qcacld-3.0: Move rso related process to connection manager [PART 3]
Add new code to implement below functions for connection manager
roam part:

Propagate 'Change-Id: I49d64671f74b86c516d286c4b2aad69eda744b52'
Filling below WMI cmd parameters related process:
WMI_ROAM_AP_PROFILE
WMI_ROAM_FILTER_CMDID

Change-Id: I4870c69a0e0ca1e8cad734a591f09e402b7a32fa
CRs-Fixed: 2745468
2020-08-01 11:02:13 -07:00
Abhinav Kumar
631f7d15a1 qcacld-3.0: Print info related to WTC BTM roaming
Print info related to WTC BTM roaming coming via
wmi_roam_trigger_reason_tlv_param.

Print timestamp, which indicates the time when btm response is sent
to AP, coming via wmi_roam_btm_response_info_tlv_param to HOST.

Change-Id: I2c408527739e1e2831015dd7b959ab17299abf6b
CRs-Fixed: 2740597
2020-07-31 12:02:25 -07:00
nakul kachhwaha
dcd3e2a624 qcacld-3.0: Add weightage to valid non-pcl channels
In scenarios where p2p is going to be the first connection,
while performing group negotiation, pass up the allowed non-pcl
channels with valid weight so that supplicant can include these
channels as well during negotiation.
Passing interface mode to policy_mgr_get_valid_chan_weights and
populating the channel list based on policy_mgr_is_concurrency_allowed
api for the given mode and assign WEIGHT_OF_NON_PCL_CHANNELS for all
allowed channels.

Change-Id: I8ff08163e6490642f9c2ebd9ca08f1275a2bb1b8
CRs-Fixed: 2734756
2020-07-31 07:43:28 -07:00
Pragaspathi Thilagaraj
5fb48b5750 qcacld-3.0: Connection manager add ucfg API for sme roam operations
Add changes to handle north bound roaming operations/
configurations in connection manager. Add equivalent connection
manager api for userspace triggered roaming operations & driver
internally triggered roaming offload operations:
sme_enable_roaming() - ucfg_cm_rso_init_deinit : Driver
internally triggered
sme_config_fast_roaming() - ucfg_user_space_enable_disable_rso:
Userspace triggered
sme_start_roaming() - ucfg_cm_enable_rso() - Driver internally
triggered
sme_stop_roaming() - ucfg_cm_disable_rso() - Driver internally
triggered
sme_abort_roam_scan() - ucfg_user_space_abort_roam_scan() -User
space triggered

Change-Id: I65130f69f2afff61b9ef7334ec365d3ce7519930
CRs-Fixed: 2741055
2020-07-27 12:03:11 -07:00
Pragaspathi Thilagaraj
0cc9327e43 qcacld-3.0: Validate pcl_req in wlan_cm_roam_send_set_vdev_pcl()
In wlan_cm_roam_send_set_vdev_pcl(), pcl_req intially checked
for NULL can be dereferenced later.

Validate pcl_req and return error if pcl_req is NULL.

Change-Id: Iccc4e09c636d2643c319a1767bf8f673d6d36a80
CRs-Fixed: 2734082
2020-07-26 02:07:59 -07:00
hqu
f36840cce8 qcacld-3.0: Move rso related process to connection manager [PART 2]
Add new code to implement below functions for connection manager
roam part:
WLAN_ROAMING_IN_PROG/WLAN_ROAM_SYNCH_IN_PROG related handler.
Filling below WMI cmd parameters related process:
WMI_VDEV_PARAM_BMISS_FIRST_BCNT
WMI_VDEV_PARAM_BMISS_FINAL_BCNT
WMI_VDEV_PARAM_ENABLE_DISABLE_ROAM_REASON_VSIE
WMI_ROAM_ENABLE_DISABLE_TRIGGER_REASON_CMDID
WMI_ROAM_SCAN_PERIOD

Change-Id: I28439393a57c72012f9de51f24050f95366294bc
CRs-Fixed: 2738353
2020-07-23 06:59:59 -07:00
Huashan Qu
7277418aa5 qcacld-3.0: Move rso related process to connection manager [PART 1]
Add macro ROAM_OFFLOAD_V1 for new code and implement below functions
for connection manager roam part:

csr_handle_roam_state_change() roam offload state related handler.
Filling WMI_ROAM_SCAN_RSSI_THRESHOLD cmd parameters related process.

Change-Id: I0351155ca5a3d68ade6568c7527c5708582ccf1a
CRs-Fixed: 2730826
2020-07-18 18:13:31 -07:00
Abhinav Kumar
c871ecddbd qcacld-3.0: Send roam triggers from vendor cmd to firmware
Userspace can configure different roam control params as
defined in qca_vendor_attr_roam_control through the roam subcmd
QCA_NL80211_VENDOR_SUBCMD_ROAM and the below attributes:
QCA_ATTR_ROAM_CONTROL_SCAN_FREQ_SCHEME
QCA_ATTR_ROAM_CONTROL_CONNECTED_RSSI_THRESHOLD
QCA_ATTR_ROAM_CONTROL_CANDIDATE_RSSI_THRESHOLD
QCA_ATTR_ROAM_CONTROL_USER_REASON

Send value of above attribute to fw through command
WMI_ROAM_ENABLE_DISABLE_TRIGGER_REASON_CMDID for trigger
reason WMI_ROAM_TRIGGER_REASON_BTM_WTC.

Change-Id: I17502eebab56652192164144b7ebdadb32033117
CRs-Fixed: 2729119
2020-07-16 20:05:12 -07:00
Abhinav Kumar
87a292e54a qcacld-3.0: Print BTM RSP and initial roam info in kmsg
The event WMI_ROAM_STATS_EVENTID is received after
every roam, once the roam synch complete is sent by the host.
This event contains details regarding the btm response.

This helps in debugging/understanding the scenario when roam
failure happens.

Print the info received related to btm rsp and roam initial
info into kmsg.

Change-Id: Icb2058eed5df3265018b3c53548d123f3a4faf4f
CRs-Fixed: 2728267
2020-07-16 20:05:07 -07:00
Lincoln Tran
1de7a9a643 qcacld-3.0: Update band_capability INI to use bitmap
The band_capability field is used in other places to be
a bitmap over reg_wifi_band. Update the field in wma_tgt_cfg and
wlan_mlme_generic to take the same bitmap for consistency.
Update all references to these fields to expect a bitmap as well.

Change-Id: I8abd697e2fbe02b4eadd32f3027bef7408bac2a0
CRs-fixed: 2726710
2020-07-15 01:46:30 -07:00
Pragaspathi Thilagaraj
eb128b5dfe qcacld-3.0: Add roam offload state machine changes
Add changes to handle transition to the 2 new states:
1. Roaming in progress: Switch to this state when roam
start notification is received from firmware.
2. Roam Synch in progress: Switch to this from RSO
STARTED state if roam synch indication event is received
from firmware. Change to this state is also allowed in
RSO STOPPED state if supplicant disabled roaming on that
vdev - to allow roam invoke to be processed.

Also query the state machine to get the roaming status instead
of using discrete flags at various layers. Clean the redundant
roaming in progress, roam synch related flags.

Change-Id: Ide20a30d9d8c20a96d8bba70367b51b8643cae09
CRs-Fixed: 2725443
2020-07-10 13:42:21 -07:00
Pragaspathi Thilagaraj
65c1c28045 qcacld-3.0: Add initial roam offload state changes
Rename the existing roam offload states to include
WLAN_ prefix. Add 2 new states:
WLAN_ROAMING_IN_PROG - Roaming has started at firmware, this is
                       after candidate selection at firmware.

WLAN_ROAM_SYNCH_IN_PROG - State after handoff is complete at
                          firmware.

Also move the roam_offload_state enum to connection manager.

Change-Id: Ib1f38d200393849253893113172cdfc69e381fb3
CRs-Fixed: 2725387
2020-07-09 03:03:39 -07:00
Pragaspathi Thilagaraj
750e889d9e qcacld-3.0: Send vdev pcl command when STA + STA roaming is active
Send Vdev pcl command on both connected STA vdev when sta+sta
roaming is enabled. Handle below cases:
1. When 1st STA is connected send PDEV pcl command for the
first sta. Set pcl_vdev_cmd_active false.
2. When 2nd STA comes up, Set pcl_vdev_cmd_active to true,
send vdev PCL for 1st sta before enabling roaming(disabled
as part of the connect on 2nd STA).
3. For second STA force dbs connection when
enable_dual_sta_roam_offload ini is enabled. Set the channels
of the 1st connected STA band as invalid and remove these
channels from the scan filter.
4. On disconnection of 2nd STA connection, clear the vdev
PCL sent for 1st STA and then send PDEV pcl command.

Also make changes to send set PCL command after roam init
is done before RSO start is done at firmware to avoid assert.
Post set pcl command from sme/csr through lim/wma/wmi to avoid
the above condition.
Disable roaming on the vdev before sending set PCL command to
avoid roaming on undesirable band & channels.

Change-Id: I6bd869015b7248fe5c5c90b6e2fa0174995be197
CRs-Fixed: 2725360
2020-07-07 16:23:06 -07:00
Pragaspathi Thilagaraj
6b525a4f72 qcacld-3.0: Add support to compile connection manager STA+STA roam API
Enable compilation of the connection manager roam files with
Kbuild changes.
Add new API to store and retrieve the firmware scan channels at
mlme. Also add initial support to post SET_PCL command through
lim, so that it is not sent before ROAM init command.

Add changes to restrict connection of the 2nd STA to
channels on the other band of the 1st STA connected band.
This is done by filling only the allowed band channels in
the scan filters for the 2nd STA connection. If only
1 STA is active, it is allowed to connect on any band.

Add header gaurds for missed header files:
wlan_cm_tgt_if_tx_api.h
target_if_cm_roam_offload.h

Change-Id: Id2bce12b9663ed635ea46164169b088461aab870
CRs-Fixed: 2720341
2020-07-07 07:24:47 -07:00
Pragaspathi Thilagaraj
40339f25aa qcacld-3.0: Add support for send vdev pcl command api
Add new connection manager API to send vdev pcl command for
sta + sta roaming per vdev. For vdev pcl command, the weight of
the 1st sta connected band will be set to 0.
Add connection manager roam API files for TX ops,
connection manager target if wrapper to send the vdev
pcl command to wmi. Introduce new API to get dual sta
roaming support and save it in cm roam public struct.

Change-Id: I56a7475b0b9865e969917ec05a117f206f198111
CRs-Fixed: 2712346
2020-07-01 18:06:05 -07:00