Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 42eff2c4 authored by Abhinav Kumar's avatar Abhinav Kumar Committed by snandini
Browse files

qcacmn: 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: I03c4707fc9fe60c3a8e3ec5ee00eca230a8c9f0b
CRs-Fixed: 2809308
parent a6ccfb86
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -443,8 +443,11 @@ struct scoring_param {
#define IDLE_ROAM_TRIGGER 0
#define BTM_ROAM_TRIGGER  1

#define NUM_OF_ROAM_MIN_RSSI 3

#define DEAUTH_MIN_RSSI 0
#define BMISS_MIN_RSSI  1
#define MIN_RSSI_2G_TO_5G_ROAM 2

/**
 * enum roam_trigger_reason - Reason for triggering roam
@@ -531,7 +534,7 @@ struct ap_profile_params {
	uint8_t vdev_id;
	struct ap_profile profile;
	struct scoring_param param;
	struct roam_trigger_min_rssi min_rssi_params[NUM_OF_ROAM_TRIGGERS];
	struct roam_trigger_min_rssi min_rssi_params[NUM_OF_ROAM_MIN_RSSI];
	struct roam_trigger_score_delta score_delta_param[NUM_OF_ROAM_TRIGGERS];
};

+14 −2
Original line number Diff line number Diff line
@@ -1562,7 +1562,7 @@ send_roam_scan_offload_ap_profile_cmd_tlv(wmi_unified_t wmi_handle,
	len += WMI_TLV_HDR_SIZE;
	len += NUM_OF_ROAM_TRIGGERS * sizeof(*score_delta_param);
	len += WMI_TLV_HDR_SIZE;
	len += NUM_OF_ROAM_TRIGGERS * sizeof(*min_rssi_param);
	len += NUM_OF_ROAM_MIN_RSSI * sizeof(*min_rssi_param);
	buf = wmi_buf_alloc(wmi_handle, len);
	if (!buf) {
		return QDF_STATUS_E_NOMEM;
@@ -1755,7 +1755,7 @@ send_roam_scan_offload_ap_profile_cmd_tlv(wmi_unified_t wmi_handle,

	buf_ptr += sizeof(*score_delta_param);
	WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_STRUC,
		       (NUM_OF_ROAM_TRIGGERS * sizeof(*min_rssi_param)));
		       (NUM_OF_ROAM_MIN_RSSI * sizeof(*min_rssi_param)));
	buf_ptr += WMI_TLV_HDR_SIZE;

	min_rssi_param = (wmi_roam_cnd_min_rssi_param *)buf_ptr;
@@ -1781,6 +1781,18 @@ send_roam_scan_offload_ap_profile_cmd_tlv(wmi_unified_t wmi_handle,
	min_rssi_param->candidate_min_rssi =
		ap_profile->min_rssi_params[BMISS_MIN_RSSI].min_rssi;

	buf_ptr += sizeof(*min_rssi_param);
	min_rssi_param = (wmi_roam_cnd_min_rssi_param *)buf_ptr;
	WMITLV_SET_HDR(&min_rssi_param->tlv_header,
		       WMITLV_TAG_STRUC_wmi_roam_cnd_min_rssi_param,
		       WMITLV_GET_STRUCT_TLVLEN(wmi_roam_cnd_min_rssi_param));
	trig_reason =
		ap_profile->min_rssi_params[MIN_RSSI_2G_TO_5G_ROAM].trigger_reason;
	min_rssi_param->roam_trigger_reason =
		convert_roam_trigger_reason(trig_reason);
	min_rssi_param->candidate_min_rssi =
		ap_profile->min_rssi_params[MIN_RSSI_2G_TO_5G_ROAM].min_rssi;

	wmi_mtrace(WMI_ROAM_AP_PROFILE, NO_SESSION, 0);
	status = wmi_unified_cmd_send(wmi_handle, buf,
				      len, WMI_ROAM_AP_PROFILE);