hostapd
ap_config.h
1 /*
2  * hostapd / Configuration definitions and helpers functions
3  * Copyright (c) 2003-2015, Jouni Malinen <j@w1.fi>
4  *
5  * This software may be distributed under the terms of the BSD license.
6  * See README for more details.
7  */
8 
9 #ifndef HOSTAPD_CONFIG_H
10 #define HOSTAPD_CONFIG_H
11 
12 #include "common/defs.h"
13 #include "utils/list.h"
14 #include "ip_addr.h"
15 #include "common/wpa_common.h"
16 #include "common/ieee802_11_defs.h"
17 #include "common/ieee802_11_common.h"
18 #include "wps/wps.h"
19 #include "fst/fst.h"
20 #include "vlan.h"
21 
25 struct mesh_conf {
26  u8 meshid[32];
27  u8 meshid_len;
28  /* Active Path Selection Protocol Identifier */
29  u8 mesh_pp_id;
30  /* Active Path Selection Metric Identifier */
31  u8 mesh_pm_id;
32  /* Congestion Control Mode Identifier */
33  u8 mesh_cc_id;
34  /* Synchronization Protocol Identifier */
35  u8 mesh_sp_id;
36  /* Authentication Protocol Identifier */
37  u8 mesh_auth_id;
38  u8 *rsn_ie;
39  int rsn_ie_len;
40 #define MESH_CONF_SEC_NONE BIT(0)
41 #define MESH_CONF_SEC_AUTH BIT(1)
42 #define MESH_CONF_SEC_AMPE BIT(2)
43  unsigned int security;
44  enum mfp_options ieee80211w;
45  unsigned int pairwise_cipher;
46  unsigned int group_cipher;
47  unsigned int mgmt_group_cipher;
48  int dot11MeshMaxRetries;
49  int dot11MeshRetryTimeout; /* msec */
50  int dot11MeshConfirmTimeout; /* msec */
51  int dot11MeshHoldingTimeout; /* msec */
52 };
53 
54 #define MAX_STA_COUNT 2007
55 #define MAX_VLAN_ID 4094
56 
57 typedef u8 macaddr[ETH_ALEN];
58 
59 struct mac_acl_entry {
60  macaddr addr;
61  struct vlan_description vlan_id;
62 };
63 
65 struct ft_remote_r0kh;
66 struct ft_remote_r1kh;
67 
68 #define NUM_WEP_KEYS 4
70  u8 idx;
71  u8 *key[NUM_WEP_KEYS];
72  size_t len[NUM_WEP_KEYS];
73  int keys_set;
74  size_t default_len; /* key length used for dynamic key generation */
75 };
76 
77 typedef enum hostap_security_policy {
78  SECURITY_PLAINTEXT = 0,
79  SECURITY_STATIC_WEP = 1,
80  SECURITY_IEEE_802_1X = 2,
81  SECURITY_WPA_PSK = 3,
82  SECURITY_WPA = 4,
83  SECURITY_OSEN = 5
84 } secpolicy;
85 
86 struct hostapd_ssid {
87  u8 ssid[SSID_MAX_LEN];
88  size_t ssid_len;
89  unsigned int ssid_set:1;
90  unsigned int utf8_ssid:1;
91  unsigned int wpa_passphrase_set:1;
92  unsigned int wpa_psk_set:1;
93 
94  char vlan[IFNAMSIZ + 1];
95  secpolicy security_policy;
96 
97  struct hostapd_wpa_psk *wpa_psk;
98  char *wpa_passphrase;
99  char *wpa_psk_file;
100 
101  struct hostapd_wep_keys wep;
102 
103 #define DYNAMIC_VLAN_DISABLED 0
104 #define DYNAMIC_VLAN_OPTIONAL 1
105 #define DYNAMIC_VLAN_REQUIRED 2
106  int dynamic_vlan;
107 #define DYNAMIC_VLAN_NAMING_WITHOUT_DEVICE 0
108 #define DYNAMIC_VLAN_NAMING_WITH_DEVICE 1
109 #define DYNAMIC_VLAN_NAMING_END 2
110  int vlan_naming;
111  int per_sta_vif;
112 #ifdef CONFIG_FULL_DYNAMIC_VLAN
113  char *vlan_tagged_interface;
114 #endif /* CONFIG_FULL_DYNAMIC_VLAN */
115 };
116 
117 
118 #define VLAN_ID_WILDCARD -1
119 
120 struct hostapd_vlan {
121  struct hostapd_vlan *next;
122  int vlan_id; /* VLAN ID or -1 (VLAN_ID_WILDCARD) for wildcard entry */
123  struct vlan_description vlan_desc;
124  char ifname[IFNAMSIZ + 1];
125  int configured;
126  int dynamic_vlan;
127 #ifdef CONFIG_FULL_DYNAMIC_VLAN
128 
129 #define DVLAN_CLEAN_WLAN_PORT 0x8
130  int clean;
131 #endif /* CONFIG_FULL_DYNAMIC_VLAN */
132 };
133 
134 #define PMK_LEN 32
135 #define MIN_PASSPHRASE_LEN 8
136 #define MAX_PASSPHRASE_LEN 63
138  struct hostapd_sta_wpa_psk_short *next;
139  unsigned int is_passphrase:1;
140  u8 psk[PMK_LEN];
141  char passphrase[MAX_PASSPHRASE_LEN + 1];
142  int ref; /* (number of references held) - 1 */
143 };
144 
146  struct hostapd_wpa_psk *next;
147  int group;
148  u8 psk[PMK_LEN];
149  u8 addr[ETH_ALEN];
150  u8 p2p_dev_addr[ETH_ALEN];
151 };
152 
154  struct hostapd_eap_user *next;
155  u8 *identity;
156  size_t identity_len;
157  struct {
158  int vendor;
159  u32 method;
160  } methods[EAP_MAX_METHODS];
161  u8 *password;
162  size_t password_len;
163  int phase2;
164  int force_version;
165  unsigned int wildcard_prefix:1;
166  unsigned int password_hash:1; /* whether password is hashed with
167  * nt_password_hash() */
168  unsigned int remediation:1;
169  unsigned int macacl:1;
170  int ttls_auth; /* EAP_TTLS_AUTH_* bitfield */
171  struct hostapd_radius_attr *accept_attr;
172 };
173 
175  u8 type;
176  struct wpabuf *val;
177  struct hostapd_radius_attr *next;
178 };
179 
180 
181 #define NUM_TX_QUEUES 4
182 
184  int aifs;
185  int cwmin;
186  int cwmax;
187  int burst; /* maximum burst time in 0.1 ms, i.e., 10 = 1 ms */
188 };
189 
190 
191 #define MAX_ROAMING_CONSORTIUM_LEN 15
192 
194  u8 len;
195  u8 oi[MAX_ROAMING_CONSORTIUM_LEN];
196 };
197 
199  u8 lang[3];
200  u8 name_len;
201  u8 name[252];
202 };
203 
204 #define MAX_NAI_REALMS 10
205 #define MAX_NAI_REALMLEN 255
206 #define MAX_NAI_EAP_METHODS 5
207 #define MAX_NAI_AUTH_TYPES 4
209  u8 encoding;
210  char realm_buf[MAX_NAI_REALMLEN + 1];
211  char *realm[MAX_NAI_REALMS];
212  u8 eap_method_count;
214  u8 eap_method;
215  u8 num_auths;
216  u8 auth_id[MAX_NAI_AUTH_TYPES];
217  u8 auth_val[MAX_NAI_AUTH_TYPES];
218  } eap_method[MAX_NAI_EAP_METHODS];
219 };
220 
221 struct anqp_element {
222  struct dl_list list;
223  u16 infoid;
224  struct wpabuf *payload;
225 };
226 
227 struct fils_realm {
228  struct dl_list list;
229  u8 hash[2];
230  char realm[];
231 };
232 
233 
238  char iface[IFNAMSIZ + 1];
239  char bridge[IFNAMSIZ + 1];
240  char vlan_bridge[IFNAMSIZ + 1];
241  char wds_bridge[IFNAMSIZ + 1];
242 
243  enum hostapd_logger_level logger_syslog_level, logger_stdout_level;
244 
245  unsigned int logger_syslog; /* module bitfield */
246  unsigned int logger_stdout; /* module bitfield */
247 
248  int max_num_sta; /* maximum number of STAs in station table */
249 
250  int dtim_period;
251  int bss_load_update_period;
252 
253  int ieee802_1x; /* use IEEE 802.1X */
254  int eapol_version;
255  int eap_server; /* Use internal EAP server instead of external
256  * RADIUS server */
257  struct hostapd_eap_user *eap_user;
258  char *eap_user_sqlite;
259  char *eap_sim_db;
260  unsigned int eap_sim_db_timeout;
261  int eap_server_erp; /* Whether ERP is enabled on internal EAP server */
262  struct hostapd_ip_addr own_ip_addr;
263  char *nas_identifier;
264  struct hostapd_radius_servers *radius;
265  int acct_interim_interval;
266  int radius_request_cui;
267  struct hostapd_radius_attr *radius_auth_req_attr;
268  struct hostapd_radius_attr *radius_acct_req_attr;
269  int radius_das_port;
270  unsigned int radius_das_time_window;
271  int radius_das_require_event_timestamp;
272  int radius_das_require_message_authenticator;
273  struct hostapd_ip_addr radius_das_client_addr;
274  u8 *radius_das_shared_secret;
275  size_t radius_das_shared_secret_len;
276 
277  struct hostapd_ssid ssid;
278 
279  char *eap_req_id_text; /* optional displayable message sent with
280  * EAP Request-Identity */
281  size_t eap_req_id_text_len;
282  int eapol_key_index_workaround;
283 
284  size_t default_wep_key_len;
285  int individual_wep_key_len;
286  int wep_rekeying_period;
287  int broadcast_key_idx_min, broadcast_key_idx_max;
288  int eap_reauth_period;
289  int erp_send_reauth_start;
290  char *erp_domain;
291 
292  int ieee802_11f; /* use IEEE 802.11f (IAPP) */
293  char iapp_iface[IFNAMSIZ + 1]; /* interface used with IAPP broadcast
294  * frames */
295 
296  enum macaddr_acl {
297  ACCEPT_UNLESS_DENIED = 0,
298  DENY_UNLESS_ACCEPTED = 1,
299  USE_EXTERNAL_RADIUS_AUTH = 2
300  } macaddr_acl;
301  struct mac_acl_entry *accept_mac;
302  int num_accept_mac;
303  struct mac_acl_entry *deny_mac;
304  int num_deny_mac;
305  int wds_sta;
306  int isolate;
307  int start_disabled;
308 
309  int auth_algs; /* bitfield of allowed IEEE 802.11 authentication
310  * algorithms, WPA_AUTH_ALG_{OPEN,SHARED,LEAP} */
311 
312  int wpa; /* bitfield of WPA_PROTO_WPA, WPA_PROTO_RSN */
313  int wpa_key_mgmt;
314 #ifdef CONFIG_IEEE80211W
315  enum mfp_options ieee80211w;
316  int group_mgmt_cipher;
317  /* dot11AssociationSAQueryMaximumTimeout (in TUs) */
318  unsigned int assoc_sa_query_max_timeout;
319  /* dot11AssociationSAQueryRetryTimeout (in TUs) */
320  int assoc_sa_query_retry_timeout;
321 #endif /* CONFIG_IEEE80211W */
322  enum {
323  PSK_RADIUS_IGNORED = 0,
324  PSK_RADIUS_ACCEPTED = 1,
325  PSK_RADIUS_REQUIRED = 2
326  } wpa_psk_radius;
327  int wpa_pairwise;
328  int wpa_group;
329  int wpa_group_rekey;
330  int wpa_strict_rekey;
331  int wpa_gmk_rekey;
332  int wpa_ptk_rekey;
333  int rsn_pairwise;
334  int rsn_preauth;
335  char *rsn_preauth_interfaces;
336  int peerkey;
337 
338 #ifdef CONFIG_IEEE80211R_AP
339  /* IEEE 802.11r - Fast BSS Transition */
340  u8 mobility_domain[MOBILITY_DOMAIN_ID_LEN];
341  u8 r1_key_holder[FT_R1KH_ID_LEN];
342  u32 r0_key_lifetime;
343  u32 reassociation_deadline;
344  struct ft_remote_r0kh *r0kh_list;
345  struct ft_remote_r1kh *r1kh_list;
346  int pmk_r1_push;
347  int ft_over_ds;
348  int ft_psk_generate_local;
349 #endif /* CONFIG_IEEE80211R_AP */
350 
351  char *ctrl_interface; /* directory for UNIX domain sockets */
352 #ifndef CONFIG_NATIVE_WINDOWS
353  gid_t ctrl_interface_gid;
354 #endif /* CONFIG_NATIVE_WINDOWS */
355  int ctrl_interface_gid_set;
356 
357  char *ca_cert;
358  char *server_cert;
359  char *private_key;
360  char *private_key_passwd;
361  int check_crl;
362  unsigned int tls_session_lifetime;
363  char *ocsp_stapling_response;
364  char *ocsp_stapling_response_multi;
365  char *dh_file;
366  char *openssl_ciphers;
367  u8 *pac_opaque_encr_key;
368  u8 *eap_fast_a_id;
369  size_t eap_fast_a_id_len;
370  char *eap_fast_a_id_info;
371  int eap_fast_prov;
372  int pac_key_lifetime;
373  int pac_key_refresh_time;
374  int eap_sim_aka_result_ind;
375  int tnc;
376  int fragment_size;
377  u16 pwd_group;
378 
379  char *radius_server_clients;
380  int radius_server_auth_port;
381  int radius_server_acct_port;
382  int radius_server_ipv6;
383 
384  int use_pae_group_addr; /* Whether to send EAPOL frames to PAE group
385  * address instead of individual address
386  * (for driver_wired.c).
387  */
388 
389  int ap_max_inactivity;
390  int ignore_broadcast_ssid;
391  int no_probe_resp_if_max_sta;
392 
393  int wmm_enabled;
394  int wmm_uapsd;
395 
396  struct hostapd_vlan *vlan;
397 
398  macaddr bssid;
399 
400  /*
401  * Maximum listen interval that STAs can use when associating with this
402  * BSS. If a STA tries to use larger value, the association will be
403  * denied with status code 51.
404  */
405  u16 max_listen_interval;
406 
407  int disable_pmksa_caching;
408  int okc; /* Opportunistic Key Caching */
409 
410  int wps_state;
411 #ifdef CONFIG_WPS
412  int wps_independent;
413  int ap_setup_locked;
414  u8 uuid[16];
415  char *wps_pin_requests;
416  char *device_name;
417  char *manufacturer;
418  char *model_name;
419  char *model_number;
420  char *serial_number;
421  u8 device_type[WPS_DEV_TYPE_LEN];
422  char *config_methods;
423  u8 os_version[4];
424  char *ap_pin;
425  int skip_cred_build;
426  u8 *extra_cred;
427  size_t extra_cred_len;
428  int wps_cred_processing;
429  int force_per_enrollee_psk;
430  u8 *ap_settings;
431  size_t ap_settings_len;
432  char *upnp_iface;
433  char *friendly_name;
434  char *manufacturer_url;
435  char *model_description;
436  char *model_url;
437  char *upc;
438  struct wpabuf *wps_vendor_ext[MAX_WPS_VENDOR_EXTENSIONS];
439  int wps_nfc_pw_from_config;
440  int wps_nfc_dev_pw_id;
441  struct wpabuf *wps_nfc_dh_pubkey;
442  struct wpabuf *wps_nfc_dh_privkey;
443  struct wpabuf *wps_nfc_dev_pw;
444 #endif /* CONFIG_WPS */
445  int pbc_in_m1;
446  char *server_id;
447 
448 #define P2P_ENABLED BIT(0)
449 #define P2P_GROUP_OWNER BIT(1)
450 #define P2P_GROUP_FORMATION BIT(2)
451 #define P2P_MANAGE BIT(3)
452 #define P2P_ALLOW_CROSS_CONNECTION BIT(4)
453  int p2p;
454 #ifdef CONFIG_P2P
455  u8 ip_addr_go[4];
456  u8 ip_addr_mask[4];
457  u8 ip_addr_start[4];
458  u8 ip_addr_end[4];
459 #endif /* CONFIG_P2P */
460 
461  int disassoc_low_ack;
462  int skip_inactivity_poll;
463 
464 #define TDLS_PROHIBIT BIT(0)
465 #define TDLS_PROHIBIT_CHAN_SWITCH BIT(1)
466  int tdls;
467  int disable_11n;
468  int disable_11ac;
469 
470  /* IEEE 802.11v */
471  int time_advertisement;
472  char *time_zone;
473  int wnm_sleep_mode;
474  int bss_transition;
475 
476  /* IEEE 802.11u - Interworking */
477  int interworking;
478  int access_network_type;
479  int internet;
480  int asra;
481  int esr;
482  int uesa;
483  int venue_info_set;
484  u8 venue_group;
485  u8 venue_type;
486  u8 hessid[ETH_ALEN];
487 
488  /* IEEE 802.11u - Roaming Consortium list */
489  unsigned int roaming_consortium_count;
490  struct hostapd_roaming_consortium *roaming_consortium;
491 
492  /* IEEE 802.11u - Venue Name duples */
493  unsigned int venue_name_count;
494  struct hostapd_lang_string *venue_name;
495 
496  /* IEEE 802.11u - Network Authentication Type */
497  u8 *network_auth_type;
498  size_t network_auth_type_len;
499 
500  /* IEEE 802.11u - IP Address Type Availability */
501  u8 ipaddr_type_availability;
502  u8 ipaddr_type_configured;
503 
504  /* IEEE 802.11u - 3GPP Cellular Network */
505  u8 *anqp_3gpp_cell_net;
506  size_t anqp_3gpp_cell_net_len;
507 
508  /* IEEE 802.11u - Domain Name */
509  u8 *domain_name;
510  size_t domain_name_len;
511 
512  unsigned int nai_realm_count;
513  struct hostapd_nai_realm_data *nai_realm_data;
514 
515  struct dl_list anqp_elem; /* list of struct anqp_element */
516 
517  u16 gas_comeback_delay;
518  size_t gas_frag_limit;
519  int gas_address3;
520 
521  u8 qos_map_set[16 + 2 * 21];
522  unsigned int qos_map_set_len;
523 
524  int osen;
525  int proxy_arp;
526  int na_mcast_to_ucast;
527 #ifdef CONFIG_HS20
528  int hs20;
529  int disable_dgaf;
530  u16 anqp_domain_id;
531  unsigned int hs20_oper_friendly_name_count;
532  struct hostapd_lang_string *hs20_oper_friendly_name;
533  u8 *hs20_wan_metrics;
534  u8 *hs20_connection_capability;
535  size_t hs20_connection_capability_len;
536  u8 *hs20_operating_class;
537  u8 hs20_operating_class_len;
538  struct hs20_icon {
539  u16 width;
540  u16 height;
541  char language[3];
542  char type[256];
543  char name[256];
544  char file[256];
545  } *hs20_icons;
546  size_t hs20_icons_count;
547  u8 osu_ssid[SSID_MAX_LEN];
548  size_t osu_ssid_len;
549  struct hs20_osu_provider {
550  unsigned int friendly_name_count;
551  struct hostapd_lang_string *friendly_name;
552  char *server_uri;
553  int *method_list;
554  char **icons;
555  size_t icons_count;
556  char *osu_nai;
557  unsigned int service_desc_count;
558  struct hostapd_lang_string *service_desc;
559  } *hs20_osu_providers, *last_osu;
560  size_t hs20_osu_providers_count;
561  unsigned int hs20_deauth_req_timeout;
562  char *subscr_remediation_url;
563  u8 subscr_remediation_method;
564 #endif /* CONFIG_HS20 */
565 
566  u8 wps_rf_bands; /* RF bands for WPS (WPS_RF_*) */
567 
568 #ifdef CONFIG_RADIUS_TEST
569  char *dump_msk_file;
570 #endif /* CONFIG_RADIUS_TEST */
571 
572  struct wpabuf *vendor_elements;
573  struct wpabuf *assocresp_elements;
574 
575  unsigned int sae_anti_clogging_threshold;
576  int *sae_groups;
577 
578  char *wowlan_triggers; /* Wake-on-WLAN triggers */
579 
580 #ifdef CONFIG_TESTING_OPTIONS
581  u8 bss_load_test[5];
582  u8 bss_load_test_set;
583  struct wpabuf *own_ie_override;
584 #endif /* CONFIG_TESTING_OPTIONS */
585 
586 #define MESH_ENABLED BIT(0)
587  int mesh;
588 
589  u8 radio_measurements[RRM_CAPABILITIES_IE_LEN];
590 
591  int vendor_vht;
592  int use_sta_nsts;
593 
594  char *no_probe_resp_if_seen_on;
595  char *no_auth_if_seen_on;
596 
597  int pbss;
598 
599 #ifdef CONFIG_MBO
600  int mbo_enabled;
601 #endif /* CONFIG_MBO */
602 
603  int ftm_responder;
604  int ftm_initiator;
605 
606 #ifdef CONFIG_FILS
607  u8 fils_cache_id[FILS_CACHE_ID_LEN];
608  int fils_cache_id_set;
609  struct dl_list fils_realms; /* list of struct fils_realm */
610 #endif /* CONFIG_FILS */
611 
612  int multicast_to_unicast;
613 };
614 
615 
620  struct hostapd_bss_config **bss, *last_bss;
621  size_t num_bss;
622 
623  u16 beacon_int;
624  int rts_threshold;
625  int fragm_threshold;
626  u8 send_probe_response;
627  u8 channel;
628  u8 acs;
629  struct wpa_freq_range_list acs_ch_list;
630  enum hostapd_hw_mode hw_mode; /* HOSTAPD_MODE_IEEE80211A, .. */
631  enum {
632  LONG_PREAMBLE = 0,
633  SHORT_PREAMBLE = 1
634  } preamble;
635 
636  int *supported_rates;
637  int *basic_rates;
638  unsigned int beacon_rate;
639  enum beacon_rate_type rate_type;
640 
641  const struct wpa_driver_ops *driver;
642  char *driver_params;
643 
644  int ap_table_max_size;
645  int ap_table_expiration_time;
646 
647  unsigned int track_sta_max_num;
648  unsigned int track_sta_max_age;
649 
650  char country[3]; /* first two octets: country code as described in
651  * ISO/IEC 3166-1. Third octet:
652  * ' ' (ascii 32): all environments
653  * 'O': Outdoor environemnt only
654  * 'I': Indoor environment only
655  */
656 
657  int ieee80211d;
658 
659  int ieee80211h; /* DFS */
660 
661  /*
662  * Local power constraint is an octet encoded as an unsigned integer in
663  * units of decibels. Invalid value -1 indicates that Power Constraint
664  * element will not be added.
665  */
666  int local_pwr_constraint;
667 
668  /* Control Spectrum Management bit */
669  int spectrum_mgmt_required;
670 
671  struct hostapd_tx_queue_params tx_queue[NUM_TX_QUEUES];
672 
673  /*
674  * WMM AC parameters, in same order as 802.1D, i.e.
675  * 0 = BE (best effort)
676  * 1 = BK (background)
677  * 2 = VI (video)
678  * 3 = VO (voice)
679  */
680  struct hostapd_wmm_ac_params wmm_ac_params[4];
681 
682  int ht_op_mode_fixed;
683  u16 ht_capab;
684  int ieee80211n;
685  int secondary_channel;
686  int no_pri_sec_switch;
687  int require_ht;
688  int obss_interval;
689  u32 vht_capab;
690  int ieee80211ac;
691  int require_vht;
692  u8 vht_oper_chwidth;
693  u8 vht_oper_centr_freq_seg0_idx;
694  u8 vht_oper_centr_freq_seg1_idx;
695 
696  /* Use driver-generated interface addresses when adding multiple BSSs */
697  u8 use_driver_iface_addr;
698 
699 #ifdef CONFIG_FST
700  struct fst_iface_cfg fst_cfg;
701 #endif /* CONFIG_FST */
702 
703 #ifdef CONFIG_P2P
704  u8 p2p_go_ctwindow;
705 #endif /* CONFIG_P2P */
706 
707 #ifdef CONFIG_TESTING_OPTIONS
708  double ignore_probe_probability;
709  double ignore_auth_probability;
710  double ignore_assoc_probability;
711  double ignore_reassoc_probability;
712  double corrupt_gtk_rekey_mic_probability;
713  int ecsa_ie_only;
714 #endif /* CONFIG_TESTING_OPTIONS */
715 
716 #ifdef CONFIG_ACS
717  unsigned int acs_num_scans;
718  struct acs_bias {
719  int channel;
720  double bias;
721  } *acs_chan_bias;
722  unsigned int num_acs_chan_bias;
723 #endif /* CONFIG_ACS */
724 
725  struct wpabuf *lci;
726  struct wpabuf *civic;
727  int stationary_ap;
728 };
729 
730 
731 int hostapd_mac_comp(const void *a, const void *b);
732 struct hostapd_config * hostapd_config_defaults(void);
733 void hostapd_config_defaults_bss(struct hostapd_bss_config *bss);
734 void hostapd_config_free_eap_user(struct hostapd_eap_user *user);
735 void hostapd_config_free_eap_users(struct hostapd_eap_user *user);
736 void hostapd_config_clear_wpa_psk(struct hostapd_wpa_psk **p);
737 void hostapd_config_free_bss(struct hostapd_bss_config *conf);
738 void hostapd_config_free(struct hostapd_config *conf);
739 int hostapd_maclist_found(struct mac_acl_entry *list, int num_entries,
740  const u8 *addr, struct vlan_description *vlan_id);
741 int hostapd_rate_found(int *list, int rate);
742 const u8 * hostapd_get_psk(const struct hostapd_bss_config *conf,
743  const u8 *addr, const u8 *p2p_dev_addr,
744  const u8 *prev_psk);
745 int hostapd_setup_wpa_psk(struct hostapd_bss_config *conf);
746 int hostapd_vlan_valid(struct hostapd_vlan *vlan,
747  struct vlan_description *vlan_desc);
748 const char * hostapd_get_vlan_id_ifname(struct hostapd_vlan *vlan,
749  int vlan_id);
750 struct hostapd_radius_attr *
751 hostapd_config_get_radius_attr(struct hostapd_radius_attr *attr, u8 type);
752 int hostapd_config_check(struct hostapd_config *conf, int full_config);
753 void hostapd_set_security_params(struct hostapd_bss_config *bss,
754  int full_config);
755 
756 #endif /* HOSTAPD_CONFIG_H */
Definition: ap_config.h:145
Definition: ap_config.h:208
struct hostapd_radius_servers - RADIUS servers for RADIUS client
Definition: radius_client.h:120
Definition: vlan.h:14
Definition: ap_config.h:227
Definition: ip_addr.h:12
Definition: ap_config.h:69
Definition: ap_config.h:174
Definition: wpabuf.h:20
Definition: ap_config.h:120
Definition: eap.h:25
Definition: ap_config.h:137
Definition: common.h:519
Definition: ap_config.h:221
Definition: ap_config.h:86
Definition: driver.h:955
struct dl_list - Doubly-linked list
Definition: list.h:15
Definition: wpa_auth.h:130
Definition: wpa_auth.h:121
struct wpa_driver_ops - Driver interface API definition
Definition: driver.h:1843
Definition: ap_config.h:59
struct hostapd_bss_config - Per-BSS configuration
Definition: ap_config.h:237
Definition: ap_config.h:183
Definition: ap_config.h:198
Definition: ieee802_11_common.h:138
Definition: ap_config.h:193
mesh_conf - local MBSS state and settings
Definition: ap_config.h:25
Definition: ap_config.h:153
Definition: wpa_auth_i.h:152
struct hostapd_config - Per-radio interface configuration
Definition: ap_config.h:619
struct eap_method - EAP method interface This structure defines the EAP method interface.
Definition: eap_i.h:64