Added support of WPA3-SAE security mode.
[platform/upstream/connman.git] / src / network.c
index c5b5c97..4a53bba 100755 (executable)
  */
 #define RS_REFRESH_TIMEOUT     3
 
-#if defined TIZEN_EXT
-#define WIFI_ENCYPTION_MODE_LEN_MAX 6
-#define WIFI_BSSID_LEN_MAX 6
-#endif
-
 /*
  * As per RFC 4861, a host should transmit up to MAX_RTR_SOLICITATIONS(3)
  * Router Solicitation messages, each separated by at least
@@ -108,6 +103,7 @@ struct connman_network {
                char encryption_mode[WIFI_ENCYPTION_MODE_LEN_MAX];
                unsigned char bssid[WIFI_BSSID_LEN_MAX];
                unsigned int maxrate;
+               int maxspeed;
                bool isHS20AP;
                unsigned int keymgmt;
                char *keymgmt_type;
@@ -121,6 +117,8 @@ struct connman_network {
                char *phase1;
                unsigned char country_code[WIFI_COUNTRY_CODE_LEN];
                GSList *bssid_list;
+               ieee80211_modes_e phy_mode;
+               connection_mode_e connection_mode;
 #endif
        } wifi;
 
@@ -1972,6 +1970,24 @@ unsigned char *connman_network_get_bssid(struct connman_network *network)
        return (unsigned char *)network->wifi.bssid;
 }
 
+int connman_network_set_maxspeed(struct connman_network *network,
+                                int maxspeed)
+{
+       network->wifi.maxspeed = maxspeed;
+        return 0;
+}
+
+int connman_network_get_maxspeed(struct connman_network *network)
+{
+       if (!network->driver)
+               return 0;
+
+       if (network->connected)
+               return network->wifi.maxspeed;
+
+       return 0;
+}
+
 int connman_network_set_maxrate(struct connman_network *network,
                                unsigned int maxrate)
 {
@@ -2105,11 +2121,40 @@ unsigned char *connman_network_get_countrycode(struct connman_network *network)
 int connman_network_set_bssid_list(struct connman_network *network,
                                        GSList *bssids)
 {
+       g_slist_free_full(network->wifi.bssid_list, g_free);
        network->wifi.bssid_list = bssids;
 
        return 0;
 }
 
+int connman_network_set_phy_mode(struct connman_network *network,
+                                   ieee80211_modes_e mode)
+{
+       DBG("network %p phy mode %d", network, mode);
+       network->wifi.phy_mode = mode;
+
+       return 0;
+}
+
+ieee80211_modes_e connman_network_get_phy_mode(struct connman_network *network)
+{
+       return network->wifi.phy_mode;
+}
+
+int connman_network_set_connection_mode(struct connman_network *network,
+                                   connection_mode_e mode)
+{
+       DBG("network %p connection mode %d", network, mode);
+       network->wifi.connection_mode = mode;
+
+       return 0;
+}
+
+connection_mode_e connman_network_get_connection_mode(struct connman_network *network)
+{
+       return network->wifi.connection_mode;
+}
+
 void *connman_network_get_bssid_list(struct connman_network *network)
 {
        return network->wifi.bssid_list;
@@ -2439,6 +2484,7 @@ bool connman_network_get_bool(struct connman_network *network,
  */
 void connman_network_set_vsie_list(struct connman_network *network, GSList *vsie_list)
 {
+       g_slist_free_full(network->wifi.vsie_list, g_free);
        network->wifi.vsie_list = vsie_list;
 }