diff options
author | Jaehyun Kim <jeik01.kim@samsung.com> | 2023-09-19 21:09:56 +0900 |
---|---|---|
committer | Jaehyun Kim <jeik01.kim@samsung.com> | 2023-09-19 21:09:56 +0900 |
commit | b5c381e812a55442df23d56b499eb62c3f580e38 (patch) | |
tree | 4107d8c952faa0167b704f693038eb7c8e3b8eea | |
parent | 62c1831830ace360cd7eb01e6fcc0503970de273 (diff) | |
download | connman-b5c381e812a55442df23d56b499eb62c3f580e38.tar.gz connman-b5c381e812a55442df23d56b499eb62c3f580e38.tar.bz2 connman-b5c381e812a55442df23d56b499eb62c3f580e38.zip |
Support 6GHz band in wifi roamingtizen_8.0_m2_releaseaccepted/tizen/unified/20230920.161454accepted/tizen/8.0/unified/20231005.094732
Change-Id: I226f1cd43c171ef15f3ab7caff9c429f120e46bd
Signed-off-by: Jaehyun Kim <jeik01.kim@samsung.com>
-rwxr-xr-x | plugins/wifi.c | 29 | ||||
-rwxr-xr-x | src/main.c | 14 | ||||
-rwxr-xr-x | src/main.conf | 3 | ||||
-rwxr-xr-x | src/main_robot.conf | 6 |
4 files changed, 44 insertions, 8 deletions
diff --git a/plugins/wifi.c b/plugins/wifi.c index 34abdec1..f19dd8f3 100755 --- a/plugins/wifi.c +++ b/plugins/wifi.c @@ -102,16 +102,29 @@ * 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; @@ -2152,13 +2165,15 @@ static gboolean need_bss_transition(uint16_t freq, int snr, int strength) * 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; @@ -6833,8 +6848,12 @@ static int wifi_init(void) 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 @@ -129,6 +129,7 @@ static struct { 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, @@ -172,6 +173,7 @@ static struct { .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 }; @@ -272,6 +274,7 @@ static struct { #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 @@ -344,6 +347,7 @@ static const char *supported_options[] = { 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 }; @@ -788,6 +792,13 @@ static void check_tizen_configuration(GKeyFile *config) 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); } @@ -1428,6 +1439,9 @@ int connman_setting_get_int(const char *key) 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 diff --git a/src/main.conf b/src/main.conf index 53174253..656a9a80 100755 --- a/src/main.conf +++ b/src/main.conf @@ -222,11 +222,12 @@ DefaultWifiInterface = wlan0 # 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. diff --git a/src/main_robot.conf b/src/main_robot.conf index cc364d88..2f16e1da 100755 --- a/src/main_robot.conf +++ b/src/main_robot.conf @@ -217,11 +217,13 @@ DefaultWifiInterface = wlan0 # 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. |