Maintain connection status when wifi roaming
[platform/upstream/connman.git] / gsupplicant / gsupplicant.h
old mode 100644 (file)
new mode 100755 (executable)
index 155f846..884c92e
@@ -71,6 +71,8 @@ extern "C" {
 #define G_SUPPLICANT_KEYMGMT_WPS               (1 << 9)
 #if defined TIZEN_EXT
 #define G_SUPPLICANT_KEYMGMT_SAE               (1 << 10)
+#define G_SUPPLICANT_KEYMGMT_OWE               (1 << 22)
+#define G_SUPPLICANT_KEYMGMT_DPP               (1 << 23)
 #endif
 
 #define G_SUPPLICANT_PROTO_WPA         (1 << 0)
@@ -123,6 +125,8 @@ typedef enum {
        G_SUPPLICANT_SECURITY_FT_PSK,
        G_SUPPLICANT_SECURITY_FT_IEEE8021X,
        G_SUPPLICANT_SECURITY_SAE,
+       G_SUPPLICANT_SECURITY_OWE,
+       G_SUPPLICANT_SECURITY_DPP,
 #endif
 } GSupplicantSecurity;
 
@@ -175,11 +179,13 @@ typedef enum {
        G_SUPPLICANT_PEER_GROUP_FAILED,
 } GSupplicantPeerState;
 
-enum GSupplicantAPHiddenSSID {
-       G_SUPPLICANT_AP_NO_SSID_HIDING,
-       G_SUPPLICANT_AP_HIDDEN_SSID_ZERO_LEN,
-       G_SUPPLICANT_AP_HIDDEN_SSID_ZERO_CONTENTS,
-};
+#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
@@ -211,7 +217,6 @@ struct _GSupplicantSSID {
        dbus_bool_t use_wps;
        const char *pin_wps;
        const char *bgscan;
-       int ignore_broadcast_ssid;
 #if defined TIZEN_EXT
        unsigned char *bssid;
        unsigned int bssid_for_connect_len;
@@ -220,6 +225,10 @@ 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;
 #endif
 };
 
@@ -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,
@@ -295,14 +329,19 @@ typedef void (*GSupplicantInterfaceCallback) (int result,
                                                        void *user_data);
 
 #if defined TIZEN_EXT
-typedef void (*GSupplicantMaxSpeedCallback) (int result,
-                                       int maxspeed, void *user_data);
+typedef void (*GSupplicantMaxSpeedCallback) (int result, int maxspeed,
+                                            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,9 +573,12 @@ struct _GSupplicantCallbacks {
 #if defined TIZEN_EXT
        void (*system_power_off) (void);
        void (*assoc_failed) (void *user_data);
+       void (*scan_done) (GSupplicantInterface *interface);
 #endif
-       void (*add_station) (const char *mac);
-       void (*remove_station) (const char *mac);
+       void (*sta_authorized) (GSupplicantInterface *interface,
+                                       const char *addr);
+       void (*sta_deauthorized) (GSupplicantInterface *interface,
+                                       const char *addr);
        void (*peer_found) (GSupplicantPeer *peer);
        void (*peer_lost) (GSupplicantPeer *peer);
        void (*peer_changed) (GSupplicantPeer *peer,
@@ -511,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