Maintain connection status when wifi roaming
[platform/upstream/connman.git] / gsupplicant / gsupplicant.h
old mode 100644 (file)
new mode 100755 (executable)
index 220e407..884c92e
@@ -179,6 +179,14 @@ typedef enum {
        G_SUPPLICANT_PEER_GROUP_FAILED,
 } GSupplicantPeerState;
 
+#if defined TIZEN_EXT
+typedef enum {
+       G_SUPPLICANT_INS_PREFERRED_FREQ_UNKNOWN,
+       G_SUPPLICANT_INS_PREFERRED_FREQ_24GHZ,
+       G_SUPPLICANT_INS_PREFERRED_FREQ_5GHZ,
+} GSupplicantINSPreferredFreq;
+#endif
+
 struct _GSupplicantSSID {
 #if defined TIZEN_EXT
        void *ssid;
@@ -217,6 +225,7 @@ struct _GSupplicantSSID {
        const char *phase1;
        const char *pac_file;
        uint16_t ieee80211w;
+       unsigned int keymgmt;
        const char *connector;
        const char *c_sign_key;
        const char *net_access_key;
@@ -271,6 +280,31 @@ struct _GSupplicantP2PServiceParams {
 
 typedef struct _GSupplicantP2PServiceParams GSupplicantP2PServiceParams;
 
+#if defined TIZEN_EXT
+#define WIFI_BSSID_STR_LEN 18
+#define MAC2STR(a) (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5]
+#define MACSTR "%02x:%02x:%02x:%02x:%02x:%02x"
+
+#define WIFI_BSSID_LEN_MAX 6
+
+struct g_connman_bssids {
+       unsigned char bssid[WIFI_BSSID_LEN_MAX];
+       uint16_t strength;
+       uint16_t frequency;
+       uint16_t assoc_reject_cnt;
+       bool is_last_connected;
+       int score_snr;
+#if defined TIZEN_EXT_INS
+       int score_last_connected_bssid;
+       int score_assoc_reject;
+       int score_frequency;
+       int score_strength;
+       int score_est_throughput;
+#endif
+       int ins_score;
+};
+#endif
+
 /* global API */
 typedef void (*GSupplicantCountryCallback) (int result,
                                                const char *alpha2,
@@ -296,13 +330,18 @@ typedef void (*GSupplicantInterfaceCallback) (int result,
 
 #if defined TIZEN_EXT
 typedef void (*GSupplicantMaxSpeedCallback) (int result, int maxspeed,
-                                            uint8_t strength, void *user_data);
+                                            int strength, int snr, void *user_data);
 #endif
 
 void g_supplicant_interface_cancel(GSupplicantInterface *interface);
 
 int g_supplicant_interface_create(const char *ifname, const char *driver,
                                        const char *bridge,
+#ifdef TIZEN_EXT
+                                       unsigned int mac_policy,
+                                       unsigned int preassoc_mac_policy,
+                                       unsigned int random_mac_lifetime,
+#endif /* TIZEN_EXT */
                                        GSupplicantInterfaceCallback callback,
                                                        void *user_data);
 int g_supplicant_interface_remove(GSupplicantInterface *interface,
@@ -357,6 +396,9 @@ int g_supplicant_interface_disconnect(GSupplicantInterface *interface,
                                        GSupplicantInterfaceCallback callback,
                                                        void *user_data);
 
+int g_supplicant_interface_set_bss_expiration_age(GSupplicantInterface *interface,
+                                       unsigned int bss_expiration_age);
+
 int g_supplicant_interface_set_apscan(GSupplicantInterface *interface,
                                                        unsigned int ap_scan);
 
@@ -366,6 +408,24 @@ void *g_supplicant_interface_get_data(GSupplicantInterface *interface);
 const char *g_supplicant_interface_get_ifname(GSupplicantInterface *interface);
 #if defined TIZEN_EXT
 bool g_supplicant_interface_get_is_5_0_ghz_supported(GSupplicantInterface *interface);
+unsigned char *g_supplicant_interface_get_add_network_bssid(GSupplicantInterface *interface);
+
+typedef void (*GSupplicantMacPolicyCallback) (int result, unsigned int policy, void *user_data);
+int g_supplicant_interface_set_mac_policy(GSupplicantInterface *interface,
+                                       GSupplicantMacPolicyCallback callback,
+                                                       unsigned int policy,
+                                                       void *user_data);
+
+int g_supplicant_interface_set_preassoc_mac_policy(GSupplicantInterface *interface,
+                                       GSupplicantMacPolicyCallback callback,
+                                                       unsigned int policy,
+                                                       void *user_data);
+
+typedef void (*GSupplicantRandomMaclifetimeCallback) (int result, unsigned int lifetime, void *user_data);
+int g_supplicant_interface_set_random_mac_lifetime(GSupplicantInterface *interface,
+                                       GSupplicantRandomMaclifetimeCallback callback,
+                                                       unsigned int lifetime,
+                                                       void *user_data);
 #endif
 const char *g_supplicant_interface_get_driver(GSupplicantInterface *interface);
 GSupplicantState g_supplicant_interface_get_state(GSupplicantInterface *interface);
@@ -463,13 +523,35 @@ const char *g_supplicant_network_get_eap(GSupplicantNetwork *network);
 const char *g_supplicant_network_get_identity(GSupplicantNetwork *network);
 const char *g_supplicant_network_get_phase2(GSupplicantNetwork *network);
 unsigned int g_supplicant_network_get_keymgmt(GSupplicantNetwork *network);
+dbus_bool_t g_supplicant_network_get_privacy(GSupplicantNetwork *network);
 void *g_supplicant_network_get_wifi_vsie(GSupplicantNetwork *network);
 const unsigned char *g_supplicant_network_get_countrycode(GSupplicantNetwork
                                                          *network);
+dbus_bool_t g_supplicant_network_is_pmf_required(GSupplicantNetwork *network);
 void *g_supplicant_network_get_bssid_list(GSupplicantNetwork *network);
 GSupplicantPhy_mode g_supplicant_network_get_phy_mode(GSupplicantNetwork *network);
+dbus_bool_t g_supplicant_network_get_transition_mode(GSupplicantNetwork *network);
+const unsigned char *g_supplicant_network_get_transition_mode_bssid(GSupplicantNetwork *network);
+const void *g_supplicant_network_get_transition_mode_ssid(GSupplicantNetwork *network,
+                                                       unsigned int *transition_mode_ssid_len);
+void g_supplicant_network_set_signal(GSupplicantNetwork *network, int signal);
+void g_supplicant_network_set_bss_signal(GSupplicantNetwork *network,
+               int signal, int snr);
+
+void g_supplicant_network_set_last_connected_bssid(GSupplicantNetwork *network, const unsigned char *bssid);
+const unsigned char *g_supplicant_network_get_last_connected_bssid(GSupplicantNetwork *network);
+void g_supplicant_network_update_assoc_reject(GSupplicantInterface *interface,
+               GSupplicantNetwork *network);
+GHashTable *g_supplicant_network_get_assoc_reject_table(GSupplicantNetwork *network);
+GSupplicantNetwork *g_supplicant_interface_get_network(GSupplicantInterface *interface,
+               const char *group);
+GHashTable *g_supplicant_network_clone_assoc_reject_table(GSupplicantNetwork *network);
 #endif
 
+#if defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET
+typedef void (*g_supplicant_eap_callback)(GSupplicantInterface *interface, bool status);
+#endif /* defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET */
+
 struct _GSupplicantCallbacks {
        void (*system_ready) (void);
        void (*system_killed) (void);
@@ -491,6 +573,7 @@ struct _GSupplicantCallbacks {
 #if defined TIZEN_EXT
        void (*system_power_off) (void);
        void (*assoc_failed) (void *user_data);
+       void (*scan_done) (GSupplicantInterface *interface);
 #endif
        void (*sta_authorized) (GSupplicantInterface *interface,
                                        const char *addr);
@@ -513,11 +596,32 @@ struct _GSupplicantCallbacks {
        void (*mesh_peer_connected) (GSupplicantMeshPeer *mesh_peer);
        void (*mesh_peer_disconnected) (GSupplicantMeshPeer *mesh_peer);
 #endif
+
+#if defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET
+       g_supplicant_eap_callback eap;
+#endif /* defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET */
 };
 
 typedef struct _GSupplicantCallbacks GSupplicantCallbacks;
 
+#if defined TIZEN_EXT && defined TIZEN_EXT_INS
+void g_supplicant_set_ins_settings(GSupplicantINSPreferredFreq preferred_freq_bssid,
+               bool last_connected_bssid, bool assoc_reject, bool signal_bssid,
+               unsigned int preferred_freq_bssid_score, unsigned int last_connected_bssid_score,
+               unsigned int assoc_reject_score, int signal_level3_5ghz, int signal_level3_24ghz);
+#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+
+#if defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET
+void g_supplicant_replace_config_file(const char *ifname, const char *config_file);
+void g_supplicant_register_eap_callback(g_supplicant_eap_callback cb);
+void g_supplicant_unregister_eap_callback(void);
+#endif /* defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET */
+
+#if defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET
+int g_supplicant_register(GSupplicantCallbacks *callbacks);
+#else /* defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET */
 int g_supplicant_register(const GSupplicantCallbacks *callbacks);
+#endif /* defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET */
 void g_supplicant_unregister(const GSupplicantCallbacks *callbacks);
 
 static inline