qcacmn: Changes for PER based roaming
DUT should be able to roam to a better access point if current AP is having congestion/packet error. This roam also devise a new selection logic for candidate selection which considers channel congestion and AP capabilities. Change-Id: I6cffbf0de059a218e971be32fbdc1a0092ceea9d CRs-Fixed: 1090934
This commit is contained in:
@@ -854,6 +854,16 @@ QDF_STATUS wmi_unified_roam_scan_offload_rssi_change_cmd(void *wmi_hdl,
|
||||
uint32_t bcn_rssi_weight,
|
||||
uint32_t hirssi_delay_btw_scans);
|
||||
|
||||
/**
|
||||
* wmi_unified_set_per_roam_config() - set PER roam config in FW
|
||||
* @wmi_hdl: wmi handle
|
||||
* @req_buf: per roam config request buffer
|
||||
*
|
||||
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
|
||||
*/
|
||||
QDF_STATUS wmi_unified_set_per_roam_config(void *wmi_hdl,
|
||||
struct wmi_per_roam_config_req *req_buf);
|
||||
|
||||
QDF_STATUS wmi_unified_get_buf_extscan_hotlist_cmd(void *wmi_hdl,
|
||||
struct ext_scan_setbssi_hotlist_params *
|
||||
photlist, int *buf_len);
|
||||
|
@@ -6949,6 +6949,45 @@ struct wmi_adaptive_dwelltime_params {
|
||||
uint8_t wifi_act_threshold;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wmi_per_roam_config - per based roaming parameters
|
||||
* @enable: if PER based roaming is enabled/disabled
|
||||
* @tx_high_rate_thresh: high rate threshold at which PER based
|
||||
* roam will stop in tx path
|
||||
* @rx_high_rate_thresh: high rate threshold at which PER based
|
||||
* roam will stop in rx path
|
||||
* @tx_low_rate_thresh: rate below which traffic will be considered
|
||||
* for PER based roaming in Tx path
|
||||
* @rx_low_rate_thresh: rate below which traffic will be considered
|
||||
* for PER based roaming in Tx path
|
||||
* @tx_rate_thresh_percnt: % above which when traffic is below low_rate_thresh
|
||||
* will be considered for PER based scan in tx path
|
||||
* @rx_rate_thresh_percnt: % above which when traffic is below low_rate_thresh
|
||||
* will be considered for PER based scan in rx path
|
||||
* @per_rest_time: time for which PER based roam will wait once it
|
||||
* issues a roam scan.
|
||||
*/
|
||||
struct wmi_per_roam_config {
|
||||
uint32_t enable;
|
||||
uint32_t tx_high_rate_thresh;
|
||||
uint32_t rx_high_rate_thresh;
|
||||
uint32_t tx_low_rate_thresh;
|
||||
uint32_t rx_low_rate_thresh;
|
||||
uint32_t tx_rate_thresh_percnt;
|
||||
uint32_t rx_rate_thresh_percnt;
|
||||
uint32_t per_rest_time;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wmi_per_roam_config_req: PER based roaming config request
|
||||
* @vdev_id: vdev id on which config needs to be set
|
||||
* @per_config: PER config
|
||||
*/
|
||||
struct wmi_per_roam_config_req {
|
||||
uint8_t vdev_id;
|
||||
struct wmi_per_roam_config per_config;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wmi_fw_dump_seg_req - individual segment details
|
||||
* @seg_id - segment id.
|
||||
|
@@ -720,6 +720,9 @@ QDF_STATUS (*send_roam_scan_offload_rssi_change_cmd)(wmi_unified_t wmi_handle,
|
||||
uint32_t bcn_rssi_weight,
|
||||
uint32_t hirssi_delay_btw_scans);
|
||||
|
||||
QDF_STATUS (*send_per_roam_config_cmd)(wmi_unified_t wmi_handle,
|
||||
struct wmi_per_roam_config_req *req_buf);
|
||||
|
||||
QDF_STATUS (*send_get_buf_extscan_hotlist_cmd)(wmi_unified_t wmi_handle,
|
||||
struct ext_scan_setbssi_hotlist_params *
|
||||
photlist, int *buf_len);
|
||||
|
Reference in New Issue
Block a user