* Weak : -77 ~ -82
* Very weak : -83 ~ -88
* No signal : -89 ~
+ *
+ * Wi-Fi Signal Strength (for 6G (dB))
+ *
+ * Excellent : ~ -72
+ * Good : -73 ~ -77
+ * Weak : -78 ~ -82
+ * Very weak : -83 ~ -88
+ * No signal : -89 ~
*/
+#define RSSI_LEVEL_2_6G -78
#define RSSI_LEVEL_2_5G -77
#define RSSI_LEVEL_2_2_4G -75
+#define RSSI_LEVEL_3_6G -73
#define RSSI_LEVEL_3_5G -68
#define RSSI_LEVEL_3_2_4G -64
#define ROAM_SCAN_INTERVAL 60 /* 60 seconds */
+#define FREQUENCY_5G_BASE 5000
+#define FREQUENCY_6G_BASE 5925
static int min_snr = 0;
static int min_rssi_2_4GHz = 0;
static int min_rssi_5GHz = 0;
+static int min_rssi_6GHz = 0;
#endif
static struct connman_technology *wifi_technology = NULL;
* If the currently connected AP matches the following conditions,
* scan for BSS transition is started.
* - SNR is less than min_snr or RSSI is less than
- * min_rssi_2_4GHz or min_rssi_5GHz.
+ * min_rssi_2_4GHz, min_rssi_5GHz or min_rssi_6GHz.
*/
if (min_snr != 0 && snr != 0 && snr < min_snr)
return TRUE;
- else if (freq > 4000 && signal <= min_rssi_5GHz)
+ else if (freq > FREQUENCY_6G_BASE && signal <= min_rssi_6GHz)
+ return TRUE;
+ else if (freq > FREQUENCY_5G_BASE && signal <= min_rssi_5GHz)
return TRUE;
- else if (freq < 4000 && signal <= min_rssi_2_4GHz)
+ else if (signal <= min_rssi_2_4GHz)
return TRUE;
return FALSE;
if (min_rssi_5GHz >= 0)
min_rssi_5GHz = RSSI_LEVEL_2_5G;
- DBG("Min SNR: %d, Min RSSI: %d(2.4GHz), %d(5GHz)",
- min_snr, min_rssi_2_4GHz, min_rssi_5GHz);
+ min_rssi_6GHz = connman_setting_get_int("WifiRoamingMinRSSI_6GHz");
+ if (min_rssi_6GHz >= 0)
+ min_rssi_6GHz = RSSI_LEVEL_2_6G;
+
+ DBG("Min SNR: %d, Min RSSI: %d(2.4GHz), %d(5GHz), %d(6GHz)",
+ min_snr, min_rssi_2_4GHz, min_rssi_5GHz, min_rssi_6GHz);
#endif
int wifi_roam_min_snr;
int wifi_roam_min_rssi_2_4GHz;
int wifi_roam_min_rssi_5GHz;
+ int wifi_roam_min_rssi_6GHz;
#endif
} connman_settings = {
.bg_scan = true,
.wifi_roam_min_snr = 0,
.wifi_roam_min_rssi_2_4GHz = 0,
.wifi_roam_min_rssi_5GHz = 0,
+ .wifi_roam_min_rssi_6GHz = 0,
#endif
};
#define CONF_WIFI_ROAM_MIN_SNR "WifiRoamingMinSNR"
#define CONF_WIFI_ROAM_MIN_RSSI_2_4 "WifiRoamingMinRSSI_2_4GHz"
#define CONF_WIFI_ROAM_MIN_RSSI_5 "WifiRoamingMinRSSI_5GHz"
+#define CONF_WIFI_ROAM_MIN_RSSI_6 "WifiRoamingMinRSSI_6GHz"
#endif
#if defined TIZEN_EXT
CONF_WIFI_ROAM_MIN_SNR,
CONF_WIFI_ROAM_MIN_RSSI_2_4,
CONF_WIFI_ROAM_MIN_RSSI_5,
+ CONF_WIFI_ROAM_MIN_RSSI_6,
#endif
NULL
};
g_clear_error(&error);
+ integer = g_key_file_get_integer(config, "General",
+ CONF_WIFI_ROAM_MIN_RSSI_6, &error);
+ if (!error)
+ connman_settings.wifi_roam_min_rssi_6GHz = integer;
+
+ g_clear_error(&error);
+
check_tizen_ins_configuration(config);
}
if (g_str_equal(key, CONF_WIFI_ROAM_MIN_RSSI_5))
return connman_settings.wifi_roam_min_rssi_5GHz;
+ if (g_str_equal(key, CONF_WIFI_ROAM_MIN_RSSI_6))
+ return connman_settings.wifi_roam_min_rssi_6GHz;
+
return 0;
}
#endif
# Determine if the SNR and signal have weakened
# based on the following conditions.
# - SNR is less than WifiRoamingMinSNR or RSSI is less than
-# WifiRoamingMinRSSI_2_4GHz or WifiRoamingMinRSSI_5GHz.
+# WifiRoamingMinRSSI_2_4GHz, WifiRoamingMinRSSI_5GHz or WifiRoamingMinRSSI_6GHz.
# - If the WifiRoamingMinSNR value is 0, the SNR check will be skipped.
WifiRoamingMinSNR = 20
WifiRoamingMinRSSI_2_4GHz = -75
WifiRoamingMinRSSI_5GHz = -77
+WifiRoamingMinRSSI_6GHz = -78
[INS]
# INS(Intelligent Network Selection) configuration: BSSID Selection.
# Determine if the SNR and signal have weakened
# based on the following conditions.
-# - SNR is less than WifiRoamingMinSNR or RSSI level is less than
-# WifiRoamingMinRSSI_2_4GHz or WifiRoamingMinRSSI_5GHz.
+# - SNR is less than WifiRoamingMinSNR or RSSI is less than
+# WifiRoamingMinRSSI_2_4GHz, WifiRoamingMinRSSI_5GHz or WifiRoamingMinRSSI_6GHz.
+# - If the WifiRoamingMinSNR value is 0, the SNR check will be skipped.
WifiRoamingMinSNR = 20
WifiRoamingMinRSSI_2_4GHz = -75
WifiRoamingMinRSSI_5GHz = -77
+WifiRoamingMinRSSI_6GHz = -78
[INS]
# INS(Intelligent Network Selection) configuration: BSSID Selection.