X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=wpa_supplicant%2Fwpa_supplicant_i.h;h=66f544e3a966e22fcf863f9f958995df5fee678b;hb=HEAD;hp=84d642cf671ec5d775e43ab4b9c868127d512577;hpb=17a4734dc4d28ef070dfa227b422ed84794f48c5;p=libeap.git diff --git a/wpa_supplicant/wpa_supplicant_i.h b/wpa_supplicant/wpa_supplicant_i.h index 84d642c..66f544e 100644 --- a/wpa_supplicant/wpa_supplicant_i.h +++ b/wpa_supplicant/wpa_supplicant_i.h @@ -33,6 +33,7 @@ struct wpa_supplicant; struct ibss_rsn; struct scan_info; struct wpa_bss; +struct wpa_scan_results; /* * Forward declarations of private structures used within the ctrl_iface @@ -181,6 +182,18 @@ struct wpa_params { char *override_ctrl_interface; }; +struct p2p_srv_bonjour { + struct dl_list list; + struct wpabuf *query; + struct wpabuf *resp; +}; + +struct p2p_srv_upnp { + struct dl_list list; + u8 version; + char *service; +}; + /** * struct wpa_global - Internal, global data for all %wpa_supplicant interfaces * @@ -195,6 +208,13 @@ struct wpa_global { void **drv_priv; size_t drv_count; struct os_time suspend_time; + struct p2p_data *p2p; + struct wpa_supplicant *p2p_group_formation; + u8 p2p_dev_addr[ETH_ALEN]; + struct dl_list p2p_srv_bonjour; /* struct p2p_srv_bonjour */ + struct dl_list p2p_srv_upnp; /* struct p2p_srv_upnp */ + int p2p_disabled; + int cross_connection; }; @@ -283,6 +303,10 @@ struct wpa_client_mlme { size_t ft_ies_len; #endif /* CONFIG_IEEE80211R */ + void (*public_action_cb)(void *ctx, const u8 *buf, size_t len, + int freq); + void *public_action_cb_ctx; + #else /* CONFIG_CLIENT_MLME */ int dummy; /* to keep MSVC happy */ #endif /* CONFIG_CLIENT_MLME */ @@ -298,6 +322,7 @@ struct wpa_client_mlme { */ struct wpa_supplicant { struct wpa_global *global; + struct wpa_supplicant *parent; struct wpa_supplicant *next; struct l2_packet_data *l2; struct l2_packet_data *l2_br; @@ -343,6 +368,8 @@ struct wpa_supplicant { */ #define WILDCARD_SSID_SCAN ((struct wpa_ssid *) 1) + void (*scan_res_handler)(struct wpa_supplicant *wpa_s, + struct wpa_scan_results *scan_res); struct dl_list bss; /* struct wpa_bss::list */ struct dl_list bss_id; /* struct wpa_bss::list_id */ size_t num_bss; @@ -375,15 +402,13 @@ struct wpa_supplicant { int scan_req; /* manual scan request; this forces a scan even if there * are no enabled networks in the configuration */ - int scan_res_tried; /* whether ap_scan=1 mode has tried to fetch scan - * results without a new scan request; this is used - * to speed up the first association if the driver - * has already available scan results. */ int scan_runs; /* number of scan runs since WPS was started */ struct wpa_client_mlme mlme; unsigned int drv_flags; int max_scan_ssids; + unsigned int max_remain_on_chan; + unsigned int max_stations; int pending_mic_error_report; int pending_mic_error_pairwise; @@ -400,12 +425,17 @@ struct wpa_supplicant { struct ibss_rsn *ibss_rsn; + int set_sta_uapsd; + int sta_uapsd; + int set_ap_uapsd; + int ap_uapsd; + #ifdef CONFIG_SME struct { u8 ssid[32]; size_t ssid_len; int freq; - u8 assoc_req_ie[80]; + u8 assoc_req_ie[200]; size_t assoc_req_ie_len; int mfp; int ft_used; @@ -420,14 +450,82 @@ struct wpa_supplicant { #ifdef CONFIG_AP struct hostapd_iface *ap_iface; + void (*ap_configured_cb)(void *ctx, void *data); + void *ap_configured_cb_ctx; + void *ap_configured_cb_data; #endif /* CONFIG_AP */ +#ifdef CONFIG_P2P + struct p2p_go_neg_results *go_params; + int create_p2p_iface; + u8 pending_interface_addr[ETH_ALEN]; + char pending_interface_name[IFNAMSIZ]; + int pending_interface_type; + int p2p_group_idx; + unsigned int off_channel_freq; + struct wpabuf *pending_action_tx; + u8 pending_action_src[ETH_ALEN]; + u8 pending_action_dst[ETH_ALEN]; + u8 pending_action_bssid[ETH_ALEN]; + unsigned int pending_action_freq; + int pending_action_without_roc; + unsigned int pending_listen_freq; + unsigned int pending_listen_duration; + enum { + NOT_P2P_GROUP_INTERFACE, + P2P_GROUP_INTERFACE_PENDING, + P2P_GROUP_INTERFACE_GO, + P2P_GROUP_INTERFACE_CLIENT + } p2p_group_interface; + struct p2p_group *p2p_group; + int p2p_long_listen; + char p2p_pin[10]; + int p2p_wps_method; + u8 p2p_auth_invite[ETH_ALEN]; + int p2p_sd_over_ctrl_iface; + int p2p_in_provisioning; + int pending_invite_ssid_id; + int show_group_started; + u8 go_dev_addr[ETH_ALEN]; + int pending_pd_before_join; + u8 pending_join_iface_addr[ETH_ALEN]; + u8 pending_join_dev_addr[ETH_ALEN]; + int pending_join_wps_method; + unsigned int roc_waiting_drv_freq; + int force_long_sd; + + /* + * Whether cross connection is disallowed by the AP to which this + * interface is associated (only valid if there is an association). + */ + int cross_connect_disallowed; + + /* + * Whether this P2P group is configured to use cross connection (only + * valid if this is P2P GO interface). The actual cross connect packet + * forwarding may not be configured depending on the uplink status. + */ + int cross_connect_enabled; + + /* Whether cross connection forwarding is in use at the moment. */ + int cross_connect_in_use; + + /* + * Uplink interface name for cross connection + */ + char cross_connect_uplink[100]; +#endif /* CONFIG_P2P */ + struct wpa_ssid *bgscan_ssid; const struct bgscan_ops *bgscan; void *bgscan_priv; + int connect_without_scan; + int after_wps; unsigned int wps_freq; + int wps_fragment_size; + int auto_reconnect_disabled; }; @@ -488,6 +586,10 @@ int wpa_supplicant_scard_init(struct wpa_supplicant *wpa_s, void wpa_supplicant_terminate_proc(struct wpa_global *global); void wpa_supplicant_rx_eapol(void *ctx, const u8 *src_addr, const u8 *buf, size_t len); +enum wpa_key_mgmt key_mgmt2driver(int key_mgmt); +enum wpa_cipher cipher_suite2driver(int cipher); +void wpa_supplicant_update_config(struct wpa_supplicant *wpa_s); +void wpa_supplicant_clear_status(struct wpa_supplicant *wpa_s); /* events.c */ void wpa_supplicant_mark_disassoc(struct wpa_supplicant *wpa_s);