[rdkb][eagle] add wpa_psk_file operate

[Description]
Add wpa_psk_file operate

[Release-log]

diff --git a/src/logan_wifi/wifi_hal.c b/src/logan_wifi/wifi_hal.c
index e46afc6..37a2226 100644
--- a/src/logan_wifi/wifi_hal.c
+++ b/src/logan_wifi/wifi_hal.c
@@ -1197,68 +1197,80 @@
 static void
 wifi_PrepareDefaultHostapdConfigs(void)
 {
-    int radio_idx;
-    int bss_idx;
-    int ap_idx;
-    int band_idx;
-    char buf[MAX_BUF_SIZE] = {0};
-    char config_file[MAX_BUF_SIZE] = {0};
-    char ssid[MAX_BUF_SIZE] = {0};
-    char interface[32] = {0};
-    char ret_buf[MAX_BUF_SIZE] = {0};
-    struct params params[2];
+	int radio_idx;
+	int bss_idx;
+	int ap_idx;
+	int band_idx;
+	char buf[MAX_BUF_SIZE] = {0};
+	char config_file[MAX_BUF_SIZE] = {0};
+	char ssid[MAX_BUF_SIZE] = {0};
+	char interface[32] = {0};
+	char ret_buf[MAX_BUF_SIZE] = {0};
+	char psk_file[64] = {0};
+	struct params params[3];
 
-    WIFI_ENTRY_EXIT_DEBUG("Inside %s:%d\n",__func__, __LINE__);
-    for (radio_idx = 0; radio_idx < MAX_NUM_RADIOS; radio_idx++) {
-        band_idx = radio_index_to_band(radio_idx);
-        if (band_idx < 0) {
-            break;
-        }
-        for (bss_idx = 0; bss_idx < 5; bss_idx++) {
-            ap_idx = array_index_to_vap_index(radio_idx, bss_idx);
+	WIFI_ENTRY_EXIT_DEBUG("Inside %s:%d\n",__func__, __LINE__);
+	for (radio_idx = 0; radio_idx < MAX_NUM_RADIOS; radio_idx++) {
+		band_idx = radio_index_to_band(radio_idx);
+		if (band_idx < 0) {
+		break;
+		}
+		for (bss_idx = 0; bss_idx < 5; bss_idx++) {
+		ap_idx = array_index_to_vap_index(radio_idx, bss_idx);
+
+		snprintf(config_file, sizeof(config_file), "%s%d.conf", CONFIG_PREFIX, ap_idx);
+		snprintf(buf, sizeof(buf), "cp /etc/hostapd-%s.conf %s", wifi_band_str[band_idx], config_file);
+		_syscmd(buf, ret_buf, sizeof(ret_buf));
 
-            snprintf(config_file, sizeof(config_file), "%s%d.conf", CONFIG_PREFIX, ap_idx);
-            snprintf(buf, sizeof(buf), "cp /etc/hostapd-%s.conf %s", wifi_band_str[band_idx], config_file);
-            _syscmd(buf, ret_buf, sizeof(ret_buf));
+		if (bss_idx == 0) {
+			snprintf(ssid, sizeof(ssid), "%s", default_ssid[radio_idx]);
+			snprintf(interface, sizeof(interface), "%s", main_prefix[radio_idx]);
+		} else {
+			snprintf(ssid, sizeof(ssid), "%s_%d", default_ssid[radio_idx], bss_idx);
+			snprintf(interface, sizeof(interface), "%s%d", ext_prefix[radio_idx], bss_idx);
+		}
 
-            if (bss_idx == 0) {
-                snprintf(ssid, sizeof(ssid), "%s", default_ssid[radio_idx]);
-                snprintf(interface, sizeof(interface), "%s", main_prefix[radio_idx]);
-            } else {
-                snprintf(ssid, sizeof(ssid), "%s_%d", default_ssid[radio_idx], bss_idx);
-                snprintf(interface, sizeof(interface), "%s%d", ext_prefix[radio_idx], bss_idx);
-            }
+		/* fix wpa_psk_file path */
+		snprintf(psk_file, sizeof(psk_file), "\\/nvram\\/hostapd%d.psk", ap_idx);
 
-            params[0].name = "ssid";
-            params[0].value = ssid;
-            params[1].name = "interface";
-            params[1].value = interface;
+		params[0].name = "ssid";
+		params[0].value = ssid;
+		params[1].name = "interface";
+		params[1].value = interface;
+		params[2].name = "wpa_psk_file";
+		params[2].value = psk_file;
 
-            wifi_hostapdWrite(config_file, params, 2);
-        }
-    }
-    WIFI_ENTRY_EXIT_DEBUG("Exiting %s:%d\n",__func__, __LINE__);
+		wifi_hostapdWrite(config_file, params, 3);
+		}
+	}
+	WIFI_ENTRY_EXIT_DEBUG("Exiting %s:%d\n",__func__, __LINE__);
 }
 
 static void
 wifiBringUpInterfacesForRadio(int radio_idx)
 {
-    int bss_idx;
-    int ap_idx;
-    int band_idx;
-    char cmd[MAX_CMD_SIZE] = {0};
-    char config_file[MAX_BUF_SIZE] = {0};
-    char ret_buf[MAX_BUF_SIZE] = {0};
+	int bss_idx;
+	int ap_idx;
+	int band_idx;
+	char cmd[MAX_CMD_SIZE] = {0};
+	char config_file[MAX_BUF_SIZE] = {0};
+	char ret_buf[MAX_BUF_SIZE] = {0};
 	char inf_name[IF_NAME_SIZE] = {0};
 
     WIFI_ENTRY_EXIT_DEBUG("Inside %s:%d\n",__func__, __LINE__);
 
+	for (bss_idx = 0; bss_idx < 5; bss_idx++) {
+		ap_idx = array_index_to_vap_index(radio_idx, bss_idx);
+
+		snprintf(cmd, sizeof(cmd), "touch %s%d.psk", PSK_FILE, ap_idx);
+		_syscmd(cmd, ret_buf, sizeof(ret_buf));
+
-    for (bss_idx = 0; bss_idx < 5; bss_idx++) {
-        ap_idx = array_index_to_vap_index(radio_idx, bss_idx);
+		memset(cmd, 0, MAX_CMD_SIZE);
+		memset(ret_buf, 0, MAX_BUF_SIZE);
 
-        snprintf(config_file, sizeof(config_file), "%s%d.conf", CONFIG_PREFIX, ap_idx);
-        snprintf(cmd, sizeof(cmd), "hostapd_cli -i global raw ADD bss_config=phy%d:%s", radio_idx, config_file);
-        _syscmd(cmd, ret_buf, sizeof(ret_buf));
+		snprintf(config_file, sizeof(config_file), "%s%d.conf", CONFIG_PREFIX, ap_idx);
+		snprintf(cmd, sizeof(cmd), "hostapd_cli -i global raw ADD bss_config=phy%d:%s", radio_idx, config_file);
+		_syscmd(cmd, ret_buf, sizeof(ret_buf));
 
 		wifi_GetInterfaceName(ap_idx, inf_name);
 
@@ -1268,8 +1280,8 @@
 		/* fix vap-status file */
 		snprintf(cmd, sizeof(cmd), "sed -i \"s/^%s=.*/%s=1/\" %s", inf_name, inf_name, VAP_STATUS_FILE);
 		_syscmd(cmd, ret_buf, sizeof(ret_buf));
-    }
-    WIFI_ENTRY_EXIT_DEBUG("Exiting %s:%d\n",__func__, __LINE__);
+	}
+	WIFI_ENTRY_EXIT_DEBUG("Exiting %s:%d\n",__func__, __LINE__);
 }
 
 static void