qcacld-3.0: Support roam invoke request in connection manager

Add change to support roam invoke request in connection manager

Change-Id: I87bd39263c7c210fa87250aca59ef5f2f89d4c67
CRs-Fixed: 2869211
This commit is contained in:
Amruta Kulkarni
2021-02-08 11:07:39 -08:00
committed by snandini
parent c478f447ff
commit e4df806aa6
33 changed files with 677 additions and 145 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2013-2020, The Linux Foundation. All rights reserved.
* Copyright (c) 2013-2021, The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -169,7 +169,6 @@ QDF_STATUS wmi_unified_roam_synch_complete_cmd(wmi_unified_t wmi_handle,
* wmi_unified__roam_invoke_cmd() - send roam invoke command to fw.
* @wmi_handle: wmi handle
* @roaminvoke: roam invoke command
* @ch_hz: channel
*
* Send roam invoke command to fw for fastreassoc.
*
@@ -177,8 +176,7 @@ QDF_STATUS wmi_unified_roam_synch_complete_cmd(wmi_unified_t wmi_handle,
*/
QDF_STATUS
wmi_unified_roam_invoke_cmd(wmi_unified_t wmi_handle,
struct wmi_roam_invoke_cmd *roaminvoke,
uint32_t ch_hz);
struct roam_invoke_req *roaminvoke);
/**
* wmi_unified_set_roam_triggers() - send roam trigger bitmap

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2013-2020, The Linux Foundation. All rights reserved.
* Copyright (c) 2013-2021, The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -107,26 +107,6 @@ struct plm_req_params {
bool enable;
};
/**
* struct wmi_roam_invoke_cmd - roam invoke command
* @vdev_id: vdev id
* @bssid: mac address
* @channel: channel
* @frame_len: frame length, includs mac header, fixed params and ies
* @frame_buf: buffer contaning probe response or beacon
* @is_same_bssid: flag to indicate if roaming is requested for same bssid
* @forced_roaming: Roam to any bssid in any ch (here bssid & ch is not given)
*/
struct wmi_roam_invoke_cmd {
uint32_t vdev_id;
uint8_t bssid[QDF_MAC_ADDR_SIZE];
uint32_t channel;
uint32_t frame_len;
uint8_t *frame_buf;
uint8_t is_same_bssid;
bool forced_roaming;
};
/**
* struct wmi_limit_off_chan_param - limit off channel parameters
* @vdev_id: vdev id

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2013-2020, The Linux Foundation. All rights reserved.
* Copyright (c) 2013-2021, The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -133,13 +133,11 @@ QDF_STATUS wmi_unified_roam_synch_complete_cmd(wmi_unified_t wmi_handle,
}
QDF_STATUS wmi_unified_roam_invoke_cmd(wmi_unified_t wmi_handle,
struct wmi_roam_invoke_cmd *roaminvoke,
uint32_t ch_hz)
struct roam_invoke_req *roaminvoke)
{
if (wmi_handle->ops->send_roam_invoke_cmd)
return wmi_handle->ops->send_roam_invoke_cmd(wmi_handle,
roaminvoke,
ch_hz);
roaminvoke);
return QDF_STATUS_E_FAILURE;
}

View File

@@ -912,8 +912,7 @@ send_process_roam_synch_complete_cmd_tlv(wmi_unified_t wmi_handle,
* Return: CDF STATUS
*/
static QDF_STATUS send_roam_invoke_cmd_tlv(wmi_unified_t wmi_handle,
struct wmi_roam_invoke_cmd *roaminvoke,
uint32_t ch_hz)
struct roam_invoke_req *roaminvoke)
{
wmi_roam_invoke_cmd_fixed_param *cmd;
wmi_buf_t wmi_buf;
@@ -970,12 +969,12 @@ static QDF_STATUS send_roam_invoke_cmd_tlv(wmi_unified_t wmi_handle,
WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_UINT32,
(sizeof(u_int32_t)));
channel_list = (uint32_t *)(buf_ptr + WMI_TLV_HDR_SIZE);
*channel_list = ch_hz;
*channel_list = roaminvoke->ch_freq;
buf_ptr += sizeof(uint32_t) + WMI_TLV_HDR_SIZE;
WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_FIXED_STRUC,
(sizeof(wmi_mac_addr)));
bssid_list = (wmi_mac_addr *)(buf_ptr + WMI_TLV_HDR_SIZE);
WMI_CHAR_ARRAY_TO_MAC_ADDR(roaminvoke->bssid, bssid_list);
WMI_CHAR_ARRAY_TO_MAC_ADDR(roaminvoke->target_bssid.bytes, bssid_list);
/* move to next tlv i.e. bcn_prb_buf_list */
buf_ptr += WMI_TLV_HDR_SIZE + sizeof(wmi_mac_addr);
@@ -999,10 +998,10 @@ static QDF_STATUS send_roam_invoke_cmd_tlv(wmi_unified_t wmi_handle,
roaminvoke->frame_buf,
roaminvoke->frame_len);
wmi_debug("flag:%d, MODE:%d, ap:%d, dly:%d, n_ch:%d, n_bssid:%d, ch:%d, is_same_bss:%d",
wmi_debug("flag:%d, MODE:%d, ap:%d, dly:%d, n_ch:%d, n_bssid:%d, ch_freq:%d, is_same_bss:%d",
cmd->flags, cmd->roam_scan_mode,
cmd->roam_ap_sel_mode, cmd->roam_delay,
cmd->num_chan, cmd->num_bssid, ch_hz,
cmd->num_chan, cmd->num_bssid, roaminvoke->ch_freq,
roaminvoke->is_same_bssid);
wmi_mtrace(WMI_ROAM_INVOKE_CMDID, cmd->vdev_id, 0);