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
这个提交包含在:
Kapil Gupta
2017-02-24 15:50:03 +05:30
提交者 qcabuildsw
父节点 4def31691f
当前提交 f6eb731669
修改 3 个文件,包含 52 行新增0 行删除

查看文件

@@ -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);