wpa_supplicant / hostapd  2.5
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
wpa_supplicant_i.h
Go to the documentation of this file.
1 
5 #ifndef WPA_SUPPLICANT_I_H
6 #define WPA_SUPPLICANT_I_H
7 
8 #include "utils/list.h"
9 #include "common/defs.h"
10 #include "common/sae.h"
11 #include "common/wpa_ctrl.h"
12 #include "wps/wps_defs.h"
13 #include "config_ssid.h"
14 #include "wmm_ac.h"
15 
16 extern const char *const wpa_supplicant_version;
17 extern const char *const wpa_supplicant_license;
18 #ifndef CONFIG_NO_STDOUT_DEBUG
19 extern const char *const wpa_supplicant_full_license1;
20 extern const char *const wpa_supplicant_full_license2;
21 extern const char *const wpa_supplicant_full_license3;
22 extern const char *const wpa_supplicant_full_license4;
23 extern const char *const wpa_supplicant_full_license5;
24 #endif /* CONFIG_NO_STDOUT_DEBUG */
25 
26 struct wpa_sm;
27 struct wpa_supplicant;
28 struct ibss_rsn;
29 struct scan_info;
30 struct wpa_bss;
31 struct wpa_scan_results;
32 struct hostapd_hw_modes;
34 
35 /*
36  * Forward declarations of private structures used within the ctrl_iface
37  * backends. Other parts of wpa_supplicant do not have access to data stored in
38  * these structures.
39  */
40 struct ctrl_iface_priv;
42 struct wpas_dbus_priv;
43 
48 struct wpa_interface {
57  const char *confname;
58 
66  const char *confanother;
67 
78  const char *ctrl_interface;
79 
84  const char *driver;
85 
96  const char *driver_param;
97 
102  const char *ifname;
103 
113  const char *bridge_ifname;
114 
123  int p2p_mgmt;
124 };
125 
130 struct wpa_params {
136 
142 
150  char *pid_file;
151 
157 
169 
175 
181 
187 
193 
198  const char *wpa_debug_file_path;
199 
205 
211 
221 
231 
240 
241 #ifdef CONFIG_P2P
242 
250 #endif /* CONFIG_P2P */
251 
252 };
253 
255  struct dl_list list;
256  struct wpabuf *query;
257  struct wpabuf *resp;
258 };
259 
260 struct p2p_srv_upnp {
261  struct dl_list list;
262  u8 version;
263  char *service;
264 };
265 
273 struct wpa_global {
274  struct wpa_supplicant *ifaces;
275  struct wpa_params params;
276  struct ctrl_iface_global_priv *ctrl_iface;
277  struct wpas_dbus_priv *dbus;
278  void **drv_priv;
279  size_t drv_count;
280  struct os_time suspend_time;
281  struct p2p_data *p2p;
282  struct wpa_supplicant *p2p_init_wpa_s;
283  struct wpa_supplicant *p2p_group_formation;
284  struct wpa_supplicant *p2p_invite_group;
285  u8 p2p_dev_addr[ETH_ALEN];
286  struct os_reltime p2p_go_wait_client;
287  struct dl_list p2p_srv_bonjour; /* struct p2p_srv_bonjour */
288  struct dl_list p2p_srv_upnp; /* struct p2p_srv_upnp */
289  int p2p_disabled;
290  int cross_connection;
291  struct wpa_freq_range_list p2p_disallow_freq;
292  struct wpa_freq_range_list p2p_go_avoid_freq;
293  enum wpa_conc_pref {
294  WPA_CONC_PREF_NOT_SET,
295  WPA_CONC_PREF_STA,
296  WPA_CONC_PREF_P2P
297  } conc_pref;
298  unsigned int p2p_per_sta_psk:1;
299  unsigned int p2p_fail_on_wps_complete:1;
300  unsigned int p2p_24ghz_social_channels:1;
301  unsigned int pending_p2ps_group:1;
302  unsigned int pending_group_iface_for_p2ps:1;
303 
304 #ifdef CONFIG_WIFI_DISPLAY
305  int wifi_display;
306 #define MAX_WFD_SUBELEMS 10
307  struct wpabuf *wfd_subelem[MAX_WFD_SUBELEMS];
308 #endif /* CONFIG_WIFI_DISPLAY */
309 
310  struct psk_list_entry *add_psk; /* From group formation */
311 };
312 
313 
322 struct wpa_radio {
323  char name[16]; /* from driver_ops get_radio_name() or empty if not
324  * available */
325  unsigned int external_scan_running:1;
326  struct dl_list ifaces; /* struct wpa_supplicant::radio_list entries */
327  struct dl_list work; /* struct wpa_radio_work::list entries */
328 };
329 
335  struct dl_list list;
336  unsigned int freq; /* known frequency (MHz) or 0 for multiple/unknown */
337  const char *type;
338  struct wpa_supplicant *wpa_s;
339  void (*cb)(struct wpa_radio_work *work, int deinit);
340  void *ctx;
341  unsigned int started:1;
342  struct os_reltime time;
343 };
344 
345 int radio_add_work(struct wpa_supplicant *wpa_s, unsigned int freq,
346  const char *type, int next,
347  void (*cb)(struct wpa_radio_work *work, int deinit),
348  void *ctx);
349 void radio_work_done(struct wpa_radio_work *work);
350 void radio_remove_works(struct wpa_supplicant *wpa_s,
351  const char *type, int remove_all);
352 void radio_work_check_next(struct wpa_supplicant *wpa_s);
353 struct wpa_radio_work *
354 radio_work_pending(struct wpa_supplicant *wpa_s, const char *type);
355 
357  unsigned int sme:1;
358  unsigned int bss_removed:1;
359  struct wpa_bss *bss;
360  struct wpa_ssid *ssid;
361 };
362 
363 int wpas_valid_bss_ssid(struct wpa_supplicant *wpa_s, struct wpa_bss *test_bss,
364  struct wpa_ssid *test_ssid);
365 void wpas_connect_work_free(struct wpa_connect_work *cwork);
366 void wpas_connect_work_done(struct wpa_supplicant *wpa_s);
367 
369  unsigned int id;
370  char type[100];
371  unsigned int timeout;
372 };
373 
384 };
385 
386 struct wps_ap_info {
387  u8 bssid[ETH_ALEN];
388  enum wps_ap_info_type {
389  WPS_AP_NOT_SEL_REG,
390  WPS_AP_SEL_REG,
391  WPS_AP_SEL_REG_OUR
392  } type;
393  unsigned int tries;
394  struct os_reltime last_attempt;
395  unsigned int pbc_active;
396  u8 uuid[WPS_UUID_LEN];
397 };
398 
400  u8 ssid[SSID_MAX_LEN];
401  size_t ssid_len;
402 };
403 
404 #define WPA_FREQ_USED_BY_INFRA_STATION BIT(0)
405 #define WPA_FREQ_USED_BY_P2P_CLIENT BIT(1)
406 
408  int freq;
409  unsigned int flags;
410 };
411 
412 #define RRM_NEIGHBOR_REPORT_TIMEOUT 1 /* 1 second for AP to send a report */
413 
414 /*
415  * struct rrm_data - Data used for managing RRM features
416  */
417 struct rrm_data {
418  /* rrm_used - indication regarding the current connection */
419  unsigned int rrm_used:1;
420 
421  /*
422  * notify_neighbor_rep - Callback for notifying report requester
423  */
424  void (*notify_neighbor_rep)(void *ctx, struct wpabuf *neighbor_rep);
425 
426  /*
427  * neighbor_rep_cb_ctx - Callback context
428  * Received in the callback registration, and sent to the callback
429  * function as a parameter.
430  */
431  void *neighbor_rep_cb_ctx;
432 
433  /* next_neighbor_rep_token - Next request's dialog token */
434  u8 next_neighbor_rep_token;
435 };
436 
437 enum wpa_supplicant_test_failure {
438  WPAS_TEST_FAILURE_NONE,
439  WPAS_TEST_FAILURE_SCAN_TRIGGER,
440 };
441 
452  struct wpa_global *global;
453  struct wpa_radio *radio; /* shared radio context */
454  struct dl_list radio_list; /* list head: struct wpa_radio::ifaces */
455  struct wpa_supplicant *parent;
456  struct wpa_supplicant *next;
457  struct l2_packet_data *l2;
458  struct l2_packet_data *l2_br;
459  unsigned char own_addr[ETH_ALEN];
460  unsigned char perm_addr[ETH_ALEN];
461  char ifname[100];
462 #ifdef CONFIG_CTRL_IFACE_DBUS
463  char *dbus_path;
464 #endif /* CONFIG_CTRL_IFACE_DBUS */
465 #ifdef CONFIG_CTRL_IFACE_DBUS_NEW
466  char *dbus_new_path;
467  char *dbus_groupobj_path;
468 #ifdef CONFIG_AP
469  char *preq_notify_peer;
470 #endif /* CONFIG_AP */
471 #endif /* CONFIG_CTRL_IFACE_DBUS_NEW */
472  char bridge_ifname[16];
473 
474  char *confname;
475  char *confanother;
476 
477  struct wpa_config *conf;
478  int countermeasures;
479  struct os_reltime last_michael_mic_error;
480  u8 bssid[ETH_ALEN];
481  u8 pending_bssid[ETH_ALEN]; /* If wpa_state == WPA_ASSOCIATING, this
482  * field contains the target BSSID. */
483  int reassociate; /* reassociation requested */
484  int reassoc_same_bss; /* reassociating to the same bss */
485  int disconnected; /* all connections disabled; i.e., do no reassociate
486  * before this has been cleared */
487  struct wpa_ssid *current_ssid;
488  struct wpa_ssid *last_ssid;
489  struct wpa_bss *current_bss;
490  int ap_ies_from_associnfo;
491  unsigned int assoc_freq;
492 
493  /* Selected configuration (based on Beacon/ProbeResp WPA IE) */
494  int pairwise_cipher;
495  int group_cipher;
496  int key_mgmt;
497  int wpa_proto;
498  int mgmt_group_cipher;
499 
500  void *drv_priv; /* private data used by driver_ops */
501  void *global_drv_priv;
502 
503  u8 *bssid_filter;
504  size_t bssid_filter_count;
505 
506  u8 *disallow_aps_bssid;
507  size_t disallow_aps_bssid_count;
508  struct wpa_ssid_value *disallow_aps_ssid;
509  size_t disallow_aps_ssid_count;
510 
511  enum set_band setband;
512 
513  /* Preferred network for the next connection attempt */
514  struct wpa_ssid *next_ssid;
515 
516  /* previous scan was wildcard when interleaving between
517  * wildcard scans and specific SSID scan when max_ssids=1 */
518  int prev_scan_wildcard;
519  struct wpa_ssid *prev_scan_ssid; /* previously scanned SSID;
520  * NULL = not yet initialized (start
521  * with wildcard SSID)
522  * WILDCARD_SSID_SCAN = wildcard
523  * SSID was used in the previous scan
524  */
525 #define WILDCARD_SSID_SCAN ((struct wpa_ssid *) 1)
526 
527  struct wpa_ssid *prev_sched_ssid; /* last SSID used in sched scan */
528  int sched_scan_timeout;
529  int sched_scan_interval;
530  int first_sched_scan;
531  int sched_scan_timed_out;
532 
533  void (*scan_res_handler)(struct wpa_supplicant *wpa_s,
534  struct wpa_scan_results *scan_res);
535  struct dl_list bss; /* struct wpa_bss::list */
536  struct dl_list bss_id; /* struct wpa_bss::list_id */
537  size_t num_bss;
538  unsigned int bss_update_idx;
539  unsigned int bss_next_id;
540 
541  /*
542  * Pointers to BSS entries in the order they were in the last scan
543  * results.
544  */
545  struct wpa_bss **last_scan_res;
546  unsigned int last_scan_res_used;
547  unsigned int last_scan_res_size;
548  struct os_reltime last_scan;
549 
550  const struct wpa_driver_ops *driver;
551  int interface_removed; /* whether the network interface has been
552  * removed */
553  struct wpa_sm *wpa;
554  struct eapol_sm *eapol;
555 
556  struct ctrl_iface_priv *ctrl_iface;
557 
558  enum wpa_states wpa_state;
559  struct wpa_radio_work *scan_work;
560  int scanning;
561  int sched_scanning;
562  int new_connection;
563 
564  int eapol_received; /* number of EAPOL packets received after the
565  * previous association event */
566 
567  struct scard_data *scard;
568  char imsi[20];
569  int mnc_len;
570 
571  unsigned char last_eapol_src[ETH_ALEN];
572 
573  unsigned int keys_cleared; /* bitfield of key indexes that the driver is
574  * known not to be configured with a key */
575 
576  struct wpa_blacklist *blacklist;
577 
590 
604 
614 
624  } scan_req, last_scan_req;
625  enum wpa_states scan_prev_wpa_state;
626  struct os_reltime scan_trigger_time, scan_start_time;
627  /* Minimum freshness requirement for connection purposes */
628  struct os_reltime scan_min_time;
629  int scan_runs; /* number of scan runs since WPS was started */
630  int *next_scan_freqs;
631  int *manual_scan_freqs;
632  int *manual_sched_scan_freqs;
633  unsigned int manual_scan_passive:1;
634  unsigned int manual_scan_use_id:1;
635  unsigned int manual_scan_only_new:1;
636  unsigned int own_scan_requested:1;
637  unsigned int own_scan_running:1;
638  unsigned int clear_driver_scan_cache:1;
639  unsigned int manual_scan_id;
640  int scan_interval; /* time in sec between scans to find suitable AP */
641  int normal_scans; /* normal scans run before sched_scan */
642  int scan_for_connection; /* whether the scan request was triggered for
643  * finding a connection */
644 #define MAX_SCAN_ID 16
645  int scan_id[MAX_SCAN_ID];
646  unsigned int scan_id_count;
647 
648  struct wpa_ssid_value *ssids_from_scan_req;
649  unsigned int num_ssids_from_scan_req;
650 
651  u64 drv_flags;
652  unsigned int drv_enc;
653  unsigned int drv_smps_modes;
654  unsigned int drv_rrm_flags;
655 
656  /*
657  * A bitmap of supported protocols for probe response offload. See
658  * struct wpa_driver_capa in driver.h
659  */
660  unsigned int probe_resp_offloads;
661 
662  /* extended capabilities supported by the driver */
663  const u8 *extended_capa, *extended_capa_mask;
664  unsigned int extended_capa_len;
665 
666  int max_scan_ssids;
667  int max_sched_scan_ssids;
668  int sched_scan_supported;
669  unsigned int max_match_sets;
670  unsigned int max_remain_on_chan;
671  unsigned int max_stations;
672 
673  int pending_mic_error_report;
674  int pending_mic_error_pairwise;
675  int mic_errors_seen; /* Michael MIC errors with the current PTK */
676 
677  struct wps_context *wps;
678  int wps_success; /* WPS success event received */
679  struct wps_er *wps_er;
680  unsigned int wps_run;
681  struct os_reltime wps_pin_start_time;
682  int blacklist_cleared;
683 
684  struct wpabuf *pending_eapol_rx;
685  struct os_reltime pending_eapol_rx_time;
686  u8 pending_eapol_rx_src[ETH_ALEN];
687  unsigned int last_eapol_matches_bssid:1;
688  unsigned int eap_expected_failure:1;
689  unsigned int reattach:1; /* reassociation to the same BSS requested */
690  unsigned int mac_addr_changed:1;
691  unsigned int added_vif:1;
692 
693  struct os_reltime last_mac_addr_change;
694  int last_mac_addr_style;
695 
696  struct ibss_rsn *ibss_rsn;
697 
698  int set_sta_uapsd;
699  int sta_uapsd;
700  int set_ap_uapsd;
701  int ap_uapsd;
702 
703 #ifdef CONFIG_SME
704  struct {
705  u8 ssid[SSID_MAX_LEN];
706  size_t ssid_len;
707  int freq;
708  u8 assoc_req_ie[200];
709  size_t assoc_req_ie_len;
710  int mfp;
711  int ft_used;
712  u8 mobility_domain[2];
713  u8 *ft_ies;
714  size_t ft_ies_len;
715  u8 prev_bssid[ETH_ALEN];
716  int prev_bssid_set;
717  int auth_alg;
718  int proto;
719 
720  int sa_query_count; /* number of pending SA Query requests;
721  * 0 = no SA Query in progress */
722  int sa_query_timed_out;
723  u8 *sa_query_trans_id; /* buffer of WLAN_SA_QUERY_TR_ID_LEN *
724  * sa_query_count octets of pending
725  * SA Query transaction identifiers */
726  struct os_reltime sa_query_start;
727  struct os_reltime last_unprot_disconnect;
728  enum { HT_SEC_CHAN_UNKNOWN,
729  HT_SEC_CHAN_ABOVE,
730  HT_SEC_CHAN_BELOW } ht_sec_chan;
731  u8 sched_obss_scan;
732  u16 obss_scan_int;
733  u16 bss_max_idle_period;
734 #ifdef CONFIG_SAE
735  struct sae_data sae;
736  struct wpabuf *sae_token;
737  int sae_group_index;
738  unsigned int sae_pmksa_caching:1;
739 #endif /* CONFIG_SAE */
740  } sme;
741 #endif /* CONFIG_SME */
742 
743 #ifdef CONFIG_AP
744  struct hostapd_iface *ap_iface;
745  void (*ap_configured_cb)(void *ctx, void *data);
746  void *ap_configured_cb_ctx;
747  void *ap_configured_cb_data;
748 #endif /* CONFIG_AP */
749 
750  struct hostapd_iface *ifmsh;
751 #ifdef CONFIG_MESH
752  struct mesh_rsn *mesh_rsn;
753  int mesh_if_idx;
754  unsigned int mesh_if_created:1;
755  unsigned int mesh_ht_enabled:1;
756  int mesh_auth_block_duration; /* sec */
757 #endif /* CONFIG_MESH */
758 
759  unsigned int off_channel_freq;
760  struct wpabuf *pending_action_tx;
761  u8 pending_action_src[ETH_ALEN];
762  u8 pending_action_dst[ETH_ALEN];
763  u8 pending_action_bssid[ETH_ALEN];
764  unsigned int pending_action_freq;
765  int pending_action_no_cck;
766  int pending_action_without_roc;
767  unsigned int pending_action_tx_done:1;
768  void (*pending_action_tx_status_cb)(struct wpa_supplicant *wpa_s,
769  unsigned int freq, const u8 *dst,
770  const u8 *src, const u8 *bssid,
771  const u8 *data, size_t data_len,
773  result);
774  unsigned int roc_waiting_drv_freq;
775  int action_tx_wait_time;
776 
777  int p2p_mgmt;
778 
779 #ifdef CONFIG_P2P
780  struct p2p_go_neg_results *go_params;
781  int create_p2p_iface;
782  u8 pending_interface_addr[ETH_ALEN];
783  char pending_interface_name[100];
784  int pending_interface_type;
785  int p2p_group_idx;
786  unsigned int pending_listen_freq;
787  unsigned int pending_listen_duration;
788  enum {
789  NOT_P2P_GROUP_INTERFACE,
790  P2P_GROUP_INTERFACE_PENDING,
791  P2P_GROUP_INTERFACE_GO,
792  P2P_GROUP_INTERFACE_CLIENT
793  } p2p_group_interface;
794  struct p2p_group *p2p_group;
795  int p2p_long_listen; /* remaining time in long Listen state in ms */
796  char p2p_pin[10];
797  int p2p_wps_method;
798  u8 p2p_auth_invite[ETH_ALEN];
799  int p2p_sd_over_ctrl_iface;
800  int p2p_in_provisioning;
801  int p2p_in_invitation;
802  int p2p_invite_go_freq;
803  int pending_invite_ssid_id;
804  int show_group_started;
805  u8 go_dev_addr[ETH_ALEN];
806  int pending_pd_before_join;
807  u8 pending_join_iface_addr[ETH_ALEN];
808  u8 pending_join_dev_addr[ETH_ALEN];
809  int pending_join_wps_method;
810  u8 p2p_join_ssid[SSID_MAX_LEN];
811  size_t p2p_join_ssid_len;
812  int p2p_join_scan_count;
813  int auto_pd_scan_retry;
814  int force_long_sd;
815  u16 pending_pd_config_methods;
816  enum {
817  NORMAL_PD, AUTO_PD_GO_NEG, AUTO_PD_JOIN, AUTO_PD_ASP
818  } pending_pd_use;
819 
820  /*
821  * Whether cross connection is disallowed by the AP to which this
822  * interface is associated (only valid if there is an association).
823  */
824  int cross_connect_disallowed;
825 
826  /*
827  * Whether this P2P group is configured to use cross connection (only
828  * valid if this is P2P GO interface). The actual cross connect packet
829  * forwarding may not be configured depending on the uplink status.
830  */
831  int cross_connect_enabled;
832 
833  /* Whether cross connection forwarding is in use at the moment. */
834  int cross_connect_in_use;
835 
836  /*
837  * Uplink interface name for cross connection
838  */
839  char cross_connect_uplink[100];
840 
841  unsigned int p2p_auto_join:1;
842  unsigned int p2p_auto_pd:1;
843  unsigned int p2p_persistent_group:1;
844  unsigned int p2p_fallback_to_go_neg:1;
845  unsigned int p2p_pd_before_go_neg:1;
846  unsigned int p2p_go_ht40:1;
847  unsigned int p2p_go_vht:1;
848  unsigned int user_initiated_pd:1;
849  unsigned int p2p_go_group_formation_completed:1;
850  unsigned int group_formation_reported:1;
851  unsigned int waiting_presence_resp;
852  int p2p_first_connection_timeout;
853  unsigned int p2p_nfc_tag_enabled:1;
854  unsigned int p2p_peer_oob_pk_hash_known:1;
855  unsigned int p2p_disable_ip_addr_req:1;
856  unsigned int p2ps_method_config_any:1;
857  unsigned int p2p_cli_probe:1;
858  int p2p_persistent_go_freq;
859  int p2p_persistent_id;
860  int p2p_go_intent;
861  int p2p_connect_freq;
862  struct os_reltime p2p_auto_started;
863  struct wpa_ssid *p2p_last_4way_hs_fail;
864  struct wpa_radio_work *p2p_scan_work;
865  struct wpa_radio_work *p2p_listen_work;
866  struct wpa_radio_work *p2p_send_action_work;
867 
868  u16 p2p_oob_dev_pw_id; /* OOB Device Password Id for group formation */
869  struct wpabuf *p2p_oob_dev_pw; /* OOB Device Password for group
870  * formation */
871  u8 p2p_peer_oob_pubkey_hash[WPS_OOB_PUBKEY_HASH_LEN];
872  u8 p2p_ip_addr_info[3 * 4];
873 
874  /* group common frequencies */
875  int *p2p_group_common_freqs;
876  unsigned int p2p_group_common_freqs_num;
877  u8 p2ps_join_addr[ETH_ALEN];
878 #endif /* CONFIG_P2P */
879 
880  struct wpa_ssid *bgscan_ssid;
881  const struct bgscan_ops *bgscan;
882  void *bgscan_priv;
883 
884  const struct autoscan_ops *autoscan;
885  struct wpa_driver_scan_params *autoscan_params;
886  void *autoscan_priv;
887 
888  struct wpa_ssid *connect_without_scan;
889 
890  struct wps_ap_info *wps_ap;
891  size_t num_wps_ap;
892  int wps_ap_iter;
893 
894  int after_wps;
895  int known_wps_freq;
896  unsigned int wps_freq;
897  int wps_fragment_size;
898  int auto_reconnect_disabled;
899 
900  /* Channel preferences for AP/P2P GO use */
901  int best_24_freq;
902  int best_5_freq;
903  int best_overall_freq;
904 
905  struct gas_query *gas;
906 
907 #ifdef CONFIG_INTERWORKING
908  unsigned int fetch_anqp_in_progress:1;
909  unsigned int network_select:1;
910  unsigned int auto_select:1;
911  unsigned int auto_network_select:1;
912  unsigned int interworking_fast_assoc_tried:1;
913  unsigned int fetch_all_anqp:1;
914  unsigned int fetch_osu_info:1;
915  unsigned int fetch_osu_waiting_scan:1;
916  unsigned int fetch_osu_icon_in_progress:1;
917  struct wpa_bss *interworking_gas_bss;
918  unsigned int osu_icon_id;
919  struct osu_provider *osu_prov;
920  size_t osu_prov_count;
921  struct os_reltime osu_icon_fetch_start;
922  unsigned int num_osu_scans;
923  unsigned int num_prov_found;
924 #endif /* CONFIG_INTERWORKING */
925  unsigned int drv_capa_known;
926 
927  struct {
928  struct hostapd_hw_modes *modes;
929  u16 num_modes;
930  u16 flags;
931  } hw;
932  enum local_hw_capab {
933  CAPAB_NO_HT_VHT,
934  CAPAB_HT,
935  CAPAB_HT40,
936  CAPAB_VHT,
937  } hw_capab;
938 #ifdef CONFIG_MACSEC
939  struct ieee802_1x_kay *kay;
940 #endif /* CONFIG_MACSEC */
941 
942  int pno;
943  int pno_sched_pending;
944 
945  /* WLAN_REASON_* reason codes. Negative if locally generated. */
946  int disconnect_reason;
947 
948  struct ext_password_data *ext_pw;
949 
950  struct wpabuf *last_gas_resp, *prev_gas_resp;
951  u8 last_gas_addr[ETH_ALEN], prev_gas_addr[ETH_ALEN];
952  u8 last_gas_dialog_token, prev_gas_dialog_token;
953 
954  unsigned int no_keep_alive:1;
955  unsigned int ext_mgmt_frame_handling:1;
956  unsigned int ext_eapol_frame_io:1;
957  unsigned int wmm_ac_supported:1;
958  unsigned int ext_work_in_progress:1;
959  unsigned int own_disconnect_req:1;
960 
961 #define MAC_ADDR_RAND_SCAN BIT(0)
962 #define MAC_ADDR_RAND_SCHED_SCAN BIT(1)
963 #define MAC_ADDR_RAND_PNO BIT(2)
964 #define MAC_ADDR_RAND_ALL (MAC_ADDR_RAND_SCAN | \
965  MAC_ADDR_RAND_SCHED_SCAN | \
966  MAC_ADDR_RAND_PNO)
967  unsigned int mac_addr_rand_supported;
968  unsigned int mac_addr_rand_enable;
969 
970  /* MAC Address followed by mask (2 * ETH_ALEN) */
971  u8 *mac_addr_scan;
972  u8 *mac_addr_sched_scan;
973  u8 *mac_addr_pno;
974 
975 #ifdef CONFIG_WNM
976  u8 wnm_dialog_token;
977  u8 wnm_reply;
978  u8 wnm_num_neighbor_report;
979  u8 wnm_mode;
980  u16 wnm_dissoc_timer;
981  u8 wnm_bss_termination_duration[12];
982  struct neighbor_report *wnm_neighbor_report_elements;
983  struct os_reltime wnm_cand_valid_until;
984  u8 wnm_cand_from_bss[ETH_ALEN];
985 #endif /* CONFIG_WNM */
986 
987 #ifdef CONFIG_TESTING_GET_GTK
988  u8 last_gtk[32];
989  size_t last_gtk_len;
990 #endif /* CONFIG_TESTING_GET_GTK */
991 
992  unsigned int num_multichan_concurrent;
993  struct wpa_radio_work *connect_work;
994 
995  unsigned int ext_work_id;
996 
997  struct wpabuf *vendor_elem[NUM_VENDOR_ELEM_FRAMES];
998 
999 #ifdef CONFIG_TESTING_OPTIONS
1000  struct l2_packet_data *l2_test;
1001  unsigned int extra_roc_dur;
1002  enum wpa_supplicant_test_failure test_failure;
1003 #endif /* CONFIG_TESTING_OPTIONS */
1004 
1005  struct wmm_ac_assoc_data *wmm_ac_assoc_info;
1006  struct wmm_tspec_element *tspecs[WMM_AC_NUM][TS_DIR_IDX_COUNT];
1007  struct wmm_ac_addts_request *addts_request;
1008  u8 wmm_ac_last_dialog_token;
1009  struct wmm_tspec_element *last_tspecs;
1010  u8 last_tspecs_count;
1011 
1012  struct rrm_data rrm;
1013 
1014 #ifdef CONFIG_FST
1015  struct fst_iface *fst;
1016  const struct wpabuf *fst_ies;
1017  struct wpabuf *received_mb_ies;
1018 #endif /* CONFIG_FST */
1019 };
1020 
1021 
1022 /* wpa_supplicant.c */
1023 void wpa_supplicant_apply_ht_overrides(
1024  struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid,
1025  struct wpa_driver_associate_params *params);
1026 void wpa_supplicant_apply_vht_overrides(
1027  struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid,
1028  struct wpa_driver_associate_params *params);
1029 
1030 int wpa_set_wep_keys(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid);
1031 int wpa_supplicant_set_wpa_none_key(struct wpa_supplicant *wpa_s,
1032  struct wpa_ssid *ssid);
1033 
1035 
1036 const char * wpa_supplicant_state_txt(enum wpa_states state);
1037 int wpa_supplicant_update_mac_addr(struct wpa_supplicant *wpa_s);
1038 int wpa_supplicant_driver_init(struct wpa_supplicant *wpa_s);
1039 int wpa_supplicant_set_suites(struct wpa_supplicant *wpa_s,
1040  struct wpa_bss *bss, struct wpa_ssid *ssid,
1041  u8 *wpa_ie, size_t *wpa_ie_len);
1042 void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,
1043  struct wpa_bss *bss,
1044  struct wpa_ssid *ssid);
1046  struct wpa_ssid *ssid);
1047 void wpa_supplicant_initiate_eapol(struct wpa_supplicant *wpa_s);
1048 void wpa_clear_keys(struct wpa_supplicant *wpa_s, const u8 *addr);
1050  int sec, int usec);
1051 void wpa_supplicant_reinit_autoscan(struct wpa_supplicant *wpa_s);
1052 void wpa_supplicant_set_state(struct wpa_supplicant *wpa_s,
1053  enum wpa_states state);
1054 struct wpa_ssid * wpa_supplicant_get_ssid(struct wpa_supplicant *wpa_s);
1055 const char * wpa_supplicant_get_eap_mode(struct wpa_supplicant *wpa_s);
1058  int reason_code);
1059 
1061  struct wpa_ssid *ssid);
1063  struct wpa_ssid *ssid);
1065  struct wpa_ssid *ssid);
1067  const char *pkcs11_engine_path,
1068  const char *pkcs11_module_path);
1069 int wpa_supplicant_set_ap_scan(struct wpa_supplicant *wpa_s,
1070  int ap_scan);
1072  unsigned int expire_age);
1074  unsigned int expire_count);
1076  int scan_interval);
1077 int wpa_supplicant_set_debug_params(struct wpa_global *global,
1078  int debug_level, int debug_timestamp,
1079  int debug_show_keys);
1080 void free_hw_features(struct wpa_supplicant *wpa_s);
1081 
1082 void wpa_show_license(void);
1083 
1084 struct wpa_supplicant * wpa_supplicant_add_iface(struct wpa_global *global,
1085  struct wpa_interface *iface,
1086  struct wpa_supplicant *parent);
1087 int wpa_supplicant_remove_iface(struct wpa_global *global,
1088  struct wpa_supplicant *wpa_s,
1089  int terminate);
1090 struct wpa_supplicant * wpa_supplicant_get_iface(struct wpa_global *global,
1091  const char *ifname);
1092 struct wpa_global * wpa_supplicant_init(struct wpa_params *params);
1093 int wpa_supplicant_run(struct wpa_global *global);
1094 void wpa_supplicant_deinit(struct wpa_global *global);
1095 
1096 int wpa_supplicant_scard_init(struct wpa_supplicant *wpa_s,
1097  struct wpa_ssid *ssid);
1098 void wpa_supplicant_terminate_proc(struct wpa_global *global);
1099 void wpa_supplicant_rx_eapol(void *ctx, const u8 *src_addr,
1100  const u8 *buf, size_t len);
1101 void wpa_supplicant_update_config(struct wpa_supplicant *wpa_s);
1102 void wpa_supplicant_clear_status(struct wpa_supplicant *wpa_s);
1103 void wpas_connection_failed(struct wpa_supplicant *wpa_s, const u8 *bssid);
1104 int wpas_driver_bss_selection(struct wpa_supplicant *wpa_s);
1105 int wpas_is_p2p_prioritized(struct wpa_supplicant *wpa_s);
1106 void wpas_auth_failed(struct wpa_supplicant *wpa_s, char *reason);
1107 void wpas_clear_temp_disabled(struct wpa_supplicant *wpa_s,
1108  struct wpa_ssid *ssid, int clear_failures);
1109 int disallowed_bssid(struct wpa_supplicant *wpa_s, const u8 *bssid);
1110 int disallowed_ssid(struct wpa_supplicant *wpa_s, const u8 *ssid,
1111  size_t ssid_len);
1112 void wpas_request_connection(struct wpa_supplicant *wpa_s);
1113 int wpas_build_ext_capab(struct wpa_supplicant *wpa_s, u8 *buf, size_t buflen);
1114 int wpas_update_random_addr(struct wpa_supplicant *wpa_s, int style);
1115 int wpas_update_random_addr_disassoc(struct wpa_supplicant *wpa_s);
1116 void add_freq(int *freqs, int *num_freqs, int freq);
1117 
1118 void wpas_rrm_reset(struct wpa_supplicant *wpa_s);
1119 void wpas_rrm_process_neighbor_rep(struct wpa_supplicant *wpa_s,
1120  const u8 *report, size_t report_len);
1122  const struct wpa_ssid *ssid,
1123  void (*cb)(void *ctx,
1124  struct wpabuf *neighbor_rep),
1125  void *cb_ctx);
1126 void wpas_rrm_handle_link_measurement_request(struct wpa_supplicant *wpa_s,
1127  const u8 *src,
1128  const u8 *frame, size_t len,
1129  int rssi);
1130 
1142  struct wpa_ssid *ssid,
1143  const char *field,
1144  const char *value);
1145 
1146 void ibss_mesh_setup_freq(struct wpa_supplicant *wpa_s,
1147  const struct wpa_ssid *ssid,
1148  struct hostapd_freq_params *freq);
1149 
1150 /* events.c */
1151 void wpa_supplicant_mark_disassoc(struct wpa_supplicant *wpa_s);
1152 int wpa_supplicant_connect(struct wpa_supplicant *wpa_s,
1153  struct wpa_bss *selected,
1154  struct wpa_ssid *ssid);
1155 void wpa_supplicant_stop_countermeasures(void *eloop_ctx, void *sock_ctx);
1156 void wpa_supplicant_delayed_mic_error_report(void *eloop_ctx, void *sock_ctx);
1157 void wnm_bss_keep_alive_deinit(struct wpa_supplicant *wpa_s);
1158 int wpa_supplicant_fast_associate(struct wpa_supplicant *wpa_s);
1159 struct wpa_bss * wpa_supplicant_pick_network(struct wpa_supplicant *wpa_s,
1160  struct wpa_ssid **selected_ssid);
1161 
1162 /* eap_register.c */
1163 int eap_register_methods(void);
1164 
1170 static inline int network_is_persistent_group(struct wpa_ssid *ssid)
1171 {
1172  return ssid->disabled == 2 && ssid->p2p_persistent_group;
1173 }
1174 
1175 int wpas_network_disabled(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid);
1176 int wpas_get_ssid_pmf(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid);
1177 
1178 int wpas_init_ext_pw(struct wpa_supplicant *wpa_s);
1179 
1180 void dump_freq_data(struct wpa_supplicant *wpa_s, const char *title,
1181  struct wpa_used_freq_data *freqs_data,
1182  unsigned int len);
1183 
1184 int get_shared_radio_freqs_data(struct wpa_supplicant *wpa_s,
1185  struct wpa_used_freq_data *freqs_data,
1186  unsigned int len);
1187 int get_shared_radio_freqs(struct wpa_supplicant *wpa_s,
1188  int *freq_array, unsigned int len);
1189 
1190 void wpas_network_reenabled(void *eloop_ctx, void *timeout_ctx);
1191 
1192 #ifdef CONFIG_FST
1193 
1194 struct fst_wpa_obj;
1195 
1196 void fst_wpa_supplicant_fill_iface_obj(struct wpa_supplicant *wpa_s,
1197  struct fst_wpa_obj *iface_obj);
1198 
1199 #endif /* CONFIG_FST */
1200 
1201 #endif /* WPA_SUPPLICANT_I_H */
int p2p_persistent_group
Whether this is a persistent group.
Definition: config_ssid.h:580
Definition: wpa_supplicant_i.h:254
void wpa_supplicant_disable_network(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid)
Mark a configured network as disabled.
Definition: wpa_supplicant.c:2598
char * override_ctrl_interface
Optional ctrl_interface override.
Definition: wpa_supplicant_i.h:230
Definition: wpa_supplicant_i.h:356
void wpa_supplicant_rx_eapol(void *ctx, const u8 *src_addr, const u8 *buf, size_t len)
Deliver a received EAPOL frame to wpa_supplicant.
Definition: wpa_priv.c:1001
Definition: wnm_sta.h:20
int wait_for_monitor
Wait for a monitor program before starting.
Definition: wpa_supplicant_i.h:141
Initial scan request.
Definition: wpa_supplicant_i.h:613
Wi-Fi Protected Setup - message definitions.
Definition: ctrl_iface_named_pipe.c:548
const char * wpa_supplicant_get_eap_mode(struct wpa_supplicant *wpa_s)
Get the current EAP mode.
Definition: wpa_supplicant.c:4715
Definition: os.h:17
Normal scan request.
Definition: wpa_supplicant_i.h:603
Manual scan request.
Definition: wpa_supplicant_i.h:623
void wpas_request_connection(struct wpa_supplicant *wpa_s)
Request a new connection.
Definition: wpa_supplicant.c:5491
Radio work item.
Definition: wpa_supplicant_i.h:334
Definition: wpa_supplicant_i.h:417
wpa_supplicant/hostapd control interface library
hostapd per-interface data structure
Definition: hostapd.h:291
const char * driver_param
Driver interface parameters.
Definition: wpa_supplicant_i.h:96
Simultaneous authentication of equals.
Definition: wpa_supplicant_i.h:368
WPA Supplicant / Network configuration structures.
int wpa_supplicant_set_bss_expiration_age(struct wpa_supplicant *wpa_s, unsigned int expire_age)
Set BSS entry expiration age.
Definition: wpa_supplicant.c:2824
char * conf_p2p_dev
Configuration file used to hold the P2P Device configuration parameters.
Definition: wpa_supplicant_i.h:249
Definition: autoscan.h:10
void wpa_supplicant_deinit(struct wpa_global *global)
Deinitialize wpa_supplicant.
Definition: wpa_supplicant.c:4964
int wpa_debug_syslog
Enable log output through syslog.
Definition: wpa_supplicant_i.h:204
WPA Supplicant - Common definitions.
Scan parameters Data for struct wpa_driver_ops::scan2().
Definition: driver.h:306
int wpa_supplicant_reload_configuration(struct wpa_supplicant *wpa_s)
Reload configuration data.
Definition: wpa_supplicant.c:877
Definition: wps_er.h:72
char * ctrl_interface
Global ctrl_iface path/parameter.
Definition: wpa_supplicant_i.h:180
Definition: bgscan.h:11
Definition: wpabuf.h:16
void wpa_supplicant_req_auth_timeout(struct wpa_supplicant *wpa_s, int sec, int usec)
Schedule a timeout for authentication.
Definition: wpa_supplicant.c:213
Internal, global data for all wpa_supplicant interfaces.
Definition: wpa_supplicant_i.h:273
const char * ctrl_interface
Control interface parameter.
Definition: wpa_supplicant_i.h:78
const char * driver
Driver interface name, or NULL to use the default driver.
Definition: wpa_supplicant_i.h:84
char * override_driver
Optional driver parameter override.
Definition: wpa_supplicant_i.h:220
int wpa_supplicant_set_scan_interval(struct wpa_supplicant *wpa_s, int scan_interval)
Set scan interval.
Definition: wpa_supplicant.c:2870
int wpa_supplicant_driver_init(struct wpa_supplicant *wpa_s)
Initialize driver interface parameters.
Definition: wpa_supplicant.c:3276
wpa_supplicant configuration data
Definition: config.h:367
wpa_states
wpa_supplicant state
Definition: defs.h:161
int wpa_supplicant_set_bss_expiration_count(struct wpa_supplicant *wpa_s, unsigned int expire_count)
Set BSS entry expiration scan count.
Definition: wpa_supplicant.c:2847
ADDTS Request Information.
Definition: wmm_ac.h:90
void wpa_supplicant_set_state(struct wpa_supplicant *wpa_s, enum wpa_states state)
Set current connection state.
Definition: wpa_supplicant.c:708
Definition: blacklist.h:8
void wpa_supplicant_cancel_auth_timeout(struct wpa_supplicant *wpa_s)
Cancel authentication timeout.
Definition: wpa_supplicant.c:235
Definition: common.h:501
struct wpa_ssid * wpa_supplicant_get_ssid(struct wpa_supplicant *wpa_s)
Get a pointer to the current network structure.
Definition: wpa_supplicant.c:2933
const char * bridge_ifname
Optional bridge interface name.
Definition: wpa_supplicant_i.h:113
char * entropy_file
Optional entropy file.
Definition: wpa_supplicant_i.h:239
Internal GAS query data.
Definition: gas_query.c:54
Definition: l2_packet_freebsd.c:32
Definition: ieee802_1x_kay.h:88
int wpa_debug_timestamp
Whether to include timestamp in debug messages.
Definition: wpa_supplicant_i.h:174
Definition: os.h:22
Doubly-linked list.
Definition: sae.h:40
int wpa_debug_tracing
Enable log output through Linux tracing.
Definition: wpa_supplicant_i.h:210
P2P module data (internal to P2P module)
Definition: p2p_i.h:177
int extra_blacklist_count
Sum of blacklist counts after last connection.
Definition: wpa_supplicant_i.h:589
Supported hardware mode information.
Definition: driver.h:132
Definition: mesh_rsn.h:8
Definition: wpa_supplicant_i.h:379
Doubly-linked list.
Definition: list.h:12
void wpa_supplicant_associate(struct wpa_supplicant *wpa_s, struct wpa_bss *bss, struct wpa_ssid *ssid)
Request association.
Definition: wpa_supplicant.c:1579
int wpas_rrm_send_neighbor_rep_request(struct wpa_supplicant *wpa_s, const struct wpa_ssid *ssid, void(*cb)(void *ctx, struct wpabuf *neighbor_rep), void *cb_ctx)
Request a neighbor report from our AP.
Definition: wpa_supplicant.c:5706
Association parameters Data for struct wpa_driver_ops::associate().
Definition: driver.h:578
const char * confname
Configuration name (file or profile) name.
Definition: wpa_supplicant_i.h:57
int wpa_supplicant_scard_init(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid)
Initialize SIM/USIM access with PC/SC.
Definition: events.c:381
Definition: wpa_supplicant_i.h:386
Definition: ext_password.c:26
offchannel_send_action_result
Result of offchannel send Action frame.
Definition: wpa_supplicant_i.h:378
const char * confanother
Additional configuration name (file or profile) name.
Definition: wpa_supplicant_i.h:66
struct wpa_global * wpa_supplicant_init(struct wpa_params *params)
Initialize wpa_supplicant.
Definition: wpa_supplicant.c:4798
Driver interface API definition.
Definition: driver.h:1746
WMM Admission Control Association Data.
Definition: wmm_ac.h:32
const char * wpa_supplicant_state_txt(enum wpa_states state)
Get the connection state name as a text string.
Definition: wpa_supplicant.c:591
P2P Group Owner Negotiation results.
Definition: p2p.h:85
Definition: pcsc_funcs.c:106
BSS table.
Definition: bss.h:52
Parameters for wpa_supplicant_add_iface()
Definition: wpa_supplicant_i.h:48
char * pid_file
Path to a PID (process ID) file.
Definition: wpa_supplicant_i.h:150
int wpa_supplicant_set_debug_params(struct wpa_global *global, int debug_level, int debug_timestamp, int debug_show_keys)
Set global debug params.
Definition: wpa_supplicant.c:2894
Definition: dbus_common_i.h:12
u8 * ssid
Service set identifier (network name)
Definition: config_ssid.h:115
Wi-Fi Multimedia Admission Control (WMM-AC) Copyright(c) 2014, Intel Mobile Communication GmbH...
void radio_work_done(struct wpa_radio_work *work)
Indicate that a radio work item has been completed.
Definition: wpa_supplicant.c:4096
Scan results.
Definition: driver.h:277
Definition: config_ssid.h:36
int wpa_supplicant_ctrl_iface_ctrl_rsp_handle(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid, const char *field, const char *value)
Handle a control response.
Definition: wpa_supplicant.c:5208
Definition: wpa_supplicant_i.h:380
int wpa_supplicant_remove_iface(struct wpa_global *global, struct wpa_supplicant *wpa_s, int terminate)
Remove a network interface.
Definition: wpa_supplicant.c:4658
struct wpa_supplicant * wpa_supplicant_add_iface(struct wpa_global *global, struct wpa_interface *iface, struct wpa_supplicant *parent)
Add a new network interface.
Definition: wpa_supplicant.c:4575
int daemonize
Run wpa_supplicant in the background.
Definition: wpa_supplicant_i.h:135
int eap_register_methods(void)
Register statically linked EAP methods.
Definition: eap_register.c:20
Internal data for EAPOL state machines.
Definition: eapol_supp_sm.c:28
Internal data for wpa_supplicant interface.
Definition: wpa_supplicant_i.h:451
void wpa_supplicant_deauthenticate(struct wpa_supplicant *wpa_s, int reason_code)
Deauthenticate the current connection.
Definition: wpa_supplicant.c:2484
Definition: ieee802_11_defs.h:957
void wpa_supplicant_enable_network(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid)
Mark a configured network as enabled.
Definition: wpa_supplicant.c:2564
Definition: hs20_supplicant.c:43
Channel parameters.
Definition: driver.h:510
void wpa_supplicant_initiate_eapol(struct wpa_supplicant *wpa_s)
Configure EAPOL state machine.
Definition: wpa_supplicant.c:250
int wpas_set_pkcs11_engine_and_module_path(struct wpa_supplicant *wpa_s, const char *pkcs11_engine_path, const char *pkcs11_module_path)
Set PKCS #11 engine and module path.
Definition: wpa_supplicant.c:2735
Internal data for per-radio information.
Definition: wpa_supplicant_i.h:322
Internal WPA state machine data.
Definition: wpa_i.h:18
Internal P2P module per-group data.
Definition: p2p_group.c:31
const char * wpa_debug_file_path
Path of debug file or NULL to use stdout.
Definition: wpa_supplicant_i.h:198
void wpa_clear_keys(struct wpa_supplicant *wpa_s, const u8 *addr)
Clear keys configured for the driver.
Definition: wpa_supplicant.c:555
void wpa_supplicant_select_network(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid)
Attempt association with a network.
Definition: wpa_supplicant.c:2651
int p2p_mgmt
Interface used for P2P management (P2P Device operations)
Definition: wpa_supplicant_i.h:123
char * ctrl_interface_group
Global ctrl_iface group.
Definition: wpa_supplicant_i.h:186
int radio_add_work(struct wpa_supplicant *wpa_s, unsigned int freq, const char *type, int next, void(*cb)(struct wpa_radio_work *work, int deinit), void *ctx)
Add a radio work item.
Definition: wpa_supplicant.c:4056
int wpa_debug_level
Debugging verbosity level (e.g., MSG_INFO)
Definition: wpa_supplicant_i.h:156
int wpa_supplicant_run(struct wpa_global *global)
Run the wpa_supplicant main event loop.
Definition: wpa_supplicant.c:4933
Parameters for wpa_supplicant_init()
Definition: wpa_supplicant_i.h:130
int wpa_supplicant_set_ap_scan(struct wpa_supplicant *wpa_s, int ap_scan)
Set AP scan mode for interface.
Definition: wpa_supplicant.c:2784
int wpa_supplicant_set_suites(struct wpa_supplicant *wpa_s, struct wpa_bss *bss, struct wpa_ssid *ssid, u8 *wpa_ie, size_t *wpa_ie_len)
Set authentication and encryption parameters.
Definition: wpa_supplicant.c:1027
Network configuration data.
Definition: config_ssid.h:52
const char * ifname
Interface name.
Definition: wpa_supplicant_i.h:102
Definition: wpa_supplicant_i.h:407
Definition: wpa_supplicant_i.h:260
int wpa_debug_show_keys
Whether keying material is included in debug.
Definition: wpa_supplicant_i.h:168
Definition: wpa_supplicant_i.h:382
void wpa_supplicant_set_non_wpa_policy(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid)
Set WPA parameters to non-WPA mode.
Definition: wpa_supplicant.c:336
Long term WPS context data.
Definition: wps.h:623
Definition: wpa_supplicant_i.h:399
int dbus_ctrl_interface
Enable the DBus control interface.
Definition: wpa_supplicant_i.h:192
Definition: ibss_rsn.h:42
int disabled
Whether this network is currently disabled.
Definition: config_ssid.h:402
struct wpa_supplicant * wpa_supplicant_get_iface(struct wpa_global *global, const char *ifname)
Get a new network interface.
Definition: wpa_supplicant.c:4738
Definition: ctrl_iface_named_pipe.c:72
scan_req_type
Type of the scan request.
Definition: wpa_supplicant_i.h:595