config_ssid.h revision fb79edc9df1f20461e90e478363d207348213d35
18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/* 28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * WPA Supplicant / Network configuration structures 3391c59f0632df8db1c325da1d31d479b2eedce45Dmitry Shmidt * Copyright (c) 2003-2013, Jouni Malinen <j@w1.fi> 48d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 5c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * This software may be distributed under the terms of the BSD license. 6c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * See README for more details. 78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifndef CONFIG_SSID_H 108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define CONFIG_SSID_H 118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "common/defs.h" 13391c59f0632df8db1c325da1d31d479b2eedce45Dmitry Shmidt#include "utils/list.h" 148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#include "eap_peer/eap_config.h" 158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define MAX_SSID_LEN 32 178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define DEFAULT_EAP_WORKAROUND ((unsigned int) -1) 208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define DEFAULT_EAPOL_FLAGS (EAPOL_FLAG_REQUIRE_KEY_UNICAST | \ 218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt EAPOL_FLAG_REQUIRE_KEY_BROADCAST) 228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define DEFAULT_PROTO (WPA_PROTO_WPA | WPA_PROTO_RSN) 238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define DEFAULT_KEY_MGMT (WPA_KEY_MGMT_PSK | WPA_KEY_MGMT_IEEE8021X) 248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define DEFAULT_PAIRWISE (WPA_CIPHER_CCMP | WPA_CIPHER_TKIP) 258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define DEFAULT_GROUP (WPA_CIPHER_CCMP | WPA_CIPHER_TKIP | \ 268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt WPA_CIPHER_WEP104 | WPA_CIPHER_WEP40) 278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define DEFAULT_FRAGMENT_SIZE 1398 288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 2904949598a23f501be6eec21697465fd46a28840aDmitry Shmidt#define DEFAULT_BG_SCAN_PERIOD -1 30c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt#define DEFAULT_DISABLE_HT 0 31c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt#define DEFAULT_DISABLE_HT40 0 32a54fa5fb807eaeff45464139b5a7759f060cec68Dmitry Shmidt#define DEFAULT_DISABLE_SGI 0 33c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt#define DEFAULT_DISABLE_MAX_AMSDU -1 /* no change */ 34c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt#define DEFAULT_AMPDU_FACTOR -1 /* no change */ 35c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt#define DEFAULT_AMPDU_DENSITY -1 /* no change */ 36c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt 37391c59f0632df8db1c325da1d31d479b2eedce45Dmitry Shmidtstruct psk_list_entry { 38391c59f0632df8db1c325da1d31d479b2eedce45Dmitry Shmidt struct dl_list list; 39391c59f0632df8db1c325da1d31d479b2eedce45Dmitry Shmidt u8 addr[ETH_ALEN]; 40391c59f0632df8db1c325da1d31d479b2eedce45Dmitry Shmidt u8 psk[32]; 41391c59f0632df8db1c325da1d31d479b2eedce45Dmitry Shmidt u8 p2p; 42391c59f0632df8db1c325da1d31d479b2eedce45Dmitry Shmidt}; 43391c59f0632df8db1c325da1d31d479b2eedce45Dmitry Shmidt 448d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt/** 458d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * struct wpa_ssid - Network configuration data 468d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 478d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This structure includes all the configuration variables for a network. This 488d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * data is included in the per-interface configuration data as an element of 498d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * the network list, struct wpa_config::ssid. Each network block in the 508d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * configuration is mapped to a struct wpa_ssid instance. 518d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 528d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtstruct wpa_ssid { 538d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 548d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * next - Next network in global list 558d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 568d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This pointer can be used to iterate over all networks. The head of 578d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * this list is stored in the ssid field of struct wpa_config. 588d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 598d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt struct wpa_ssid *next; 608d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 618d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 628d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * pnext - Next network in per-priority list 638d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 648d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This pointer can be used to iterate over all networks in the same 658d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * priority class. The heads of these list are stored in the pssid 668d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * fields of struct wpa_config. 678d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 688d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt struct wpa_ssid *pnext; 698d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 708d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 718d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * id - Unique id for the network 728d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 738d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This identifier is used as a unique identifier for each network 748d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * block when using the control interface. Each network is allocated an 758d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * id when it is being created, either when reading the configuration 768d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * file or when a new network is added through the control interface. 778d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 788d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int id; 798d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 808d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 818d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * priority - Priority group 828d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 838d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * By default, all networks will get same priority group (0). If some 848d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * of the networks are more desirable, this field can be used to change 858d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * the order in which wpa_supplicant goes through the networks when 868d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * selecting a BSS. The priority groups will be iterated in decreasing 878d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * priority (i.e., the larger the priority value, the sooner the 888d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * network is matched against the scan results). Within each priority 898d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * group, networks will be selected based on security policy, signal 908d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * strength, etc. 918d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 928d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Please note that AP scanning with scan_ssid=1 and ap_scan=2 mode are 938d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * not using this priority to select the order for scanning. Instead, 948d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * they try the networks in the order that used in the configuration 958d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * file. 968d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 978d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int priority; 988d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 998d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 1008d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * ssid - Service set identifier (network name) 1018d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 1028d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This is the SSID for the network. For wireless interfaces, this is 1038d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * used to select which network will be used. If set to %NULL (or 1048d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * ssid_len=0), any SSID can be used. For wired interfaces, this must 1058d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * be set to %NULL. Note: SSID may contain any characters, even nul 1068d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * (ASCII 0) and as such, this should not be assumed to be a nul 1078d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * terminated string. ssid_len defines how many characters are valid 1088d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * and the ssid field is not guaranteed to be nul terminated. 1098d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 1108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt u8 *ssid; 1118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 1128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 1138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * ssid_len - Length of the SSID 1148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 1158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt size_t ssid_len; 1168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 1178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 1188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * bssid - BSSID 1198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 1208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * If set, this network block is used only when associating with the AP 1218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * using the configured BSSID 1228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 1238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * If this is a persistent P2P group (disabled == 2), this is the GO 1248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Device Address. 1258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 1268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt u8 bssid[ETH_ALEN]; 1278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 1288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 1298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * bssid_set - Whether BSSID is configured for this network 1308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 1318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int bssid_set; 1328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 1338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 1345460547a121207cf7a99eac45e05fcdd83be3161Dmitry Shmidt * go_p2p_dev_addr - GO's P2P Device Address or all zeros if not set 1355460547a121207cf7a99eac45e05fcdd83be3161Dmitry Shmidt */ 1365460547a121207cf7a99eac45e05fcdd83be3161Dmitry Shmidt u8 go_p2p_dev_addr[ETH_ALEN]; 1375460547a121207cf7a99eac45e05fcdd83be3161Dmitry Shmidt 1385460547a121207cf7a99eac45e05fcdd83be3161Dmitry Shmidt /** 1398d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * psk - WPA pre-shared key (256 bits) 1408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 1418d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt u8 psk[32]; 1428d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 1438d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 1448d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * psk_set - Whether PSK field is configured 1458d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 1468d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int psk_set; 1478d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 1488d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 1498d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * passphrase - WPA ASCII passphrase 1508d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 1518d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * If this is set, psk will be generated using the SSID and passphrase 1528d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * configured for the network. ASCII passphrase must be between 8 and 1538d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 63 characters (inclusive). 1548d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 1558d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt char *passphrase; 1568d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 1578d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 15861d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt * ext_psk - PSK/passphrase name in external storage 15961d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt * 16061d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt * If this is set, PSK/passphrase will be fetched from external storage 16161d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt * when requesting association with the network. 16261d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt */ 16361d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt char *ext_psk; 16461d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt 16561d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt /** 1668d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * pairwise_cipher - Bitfield of allowed pairwise ciphers, WPA_CIPHER_* 1678d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 1688d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int pairwise_cipher; 1698d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 1708d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 1718d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * group_cipher - Bitfield of allowed group ciphers, WPA_CIPHER_* 1728d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 1738d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int group_cipher; 1748d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 1758d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 1768d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * key_mgmt - Bitfield of allowed key management protocols 1778d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 1788d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * WPA_KEY_MGMT_* 1798d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 1808d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int key_mgmt; 1818d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 1828d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 18304949598a23f501be6eec21697465fd46a28840aDmitry Shmidt * bg_scan_period - Background scan period in seconds, 0 to disable, or 18404949598a23f501be6eec21697465fd46a28840aDmitry Shmidt * -1 to indicate no change to default driver configuration 18504949598a23f501be6eec21697465fd46a28840aDmitry Shmidt */ 18604949598a23f501be6eec21697465fd46a28840aDmitry Shmidt int bg_scan_period; 18704949598a23f501be6eec21697465fd46a28840aDmitry Shmidt 18804949598a23f501be6eec21697465fd46a28840aDmitry Shmidt /** 1898d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * proto - Bitfield of allowed protocols, WPA_PROTO_* 1908d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 1918d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int proto; 1928d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 1938d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 1948d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * auth_alg - Bitfield of allowed authentication algorithms 1958d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 1968d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * WPA_AUTH_ALG_* 1978d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 1988d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int auth_alg; 1998d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 2008d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 2018d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * scan_ssid - Scan this SSID with Probe Requests 2028d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 2038d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * scan_ssid can be used to scan for APs using hidden SSIDs. 2048d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Note: Many drivers do not support this. ap_mode=2 can be used with 2058d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * such drivers to use hidden SSIDs. 2068d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 2078d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int scan_ssid; 2088d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 2098d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef IEEE8021X_EAPOL 2108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define EAPOL_FLAG_REQUIRE_KEY_UNICAST BIT(0) 2118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define EAPOL_FLAG_REQUIRE_KEY_BROADCAST BIT(1) 2128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 2138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * eapol_flags - Bit field of IEEE 802.1X/EAPOL options (EAPOL_FLAG_*) 2148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 2158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int eapol_flags; 2168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 2178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 2188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * eap - EAP peer configuration for this network 2198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 2208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt struct eap_peer_config eap; 2218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* IEEE8021X_EAPOL */ 2228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 2238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define NUM_WEP_KEYS 4 2248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#define MAX_WEP_KEY_LEN 16 2258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 2268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * wep_key - WEP keys 2278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 2288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt u8 wep_key[NUM_WEP_KEYS][MAX_WEP_KEY_LEN]; 2298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 2308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 2318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * wep_key_len - WEP key lengths 2328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 2338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt size_t wep_key_len[NUM_WEP_KEYS]; 2348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 2358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 2368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * wep_tx_keyidx - Default key index for TX frames using WEP 2378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 2388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int wep_tx_keyidx; 2398d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 2408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 2418d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * proactive_key_caching - Enable proactive key caching 2428d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 2438d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This field can be used to enable proactive key caching which is also 2448d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * known as opportunistic PMKSA caching for WPA2. This is disabled (0) 245d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt * by default unless default value is changed with the global okc=1 246d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt * parameter. Enable by setting this to 1. 2478d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 2488d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Proactive key caching is used to make supplicant assume that the APs 2498d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * are using the same PMK and generate PMKSA cache entries without 2508d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * doing RSN pre-authentication. This requires support from the AP side 2518d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * and is normally used with wireless switches that co-locate the 2528d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * authenticator. 253d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt * 254d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt * Internally, special value -1 is used to indicate that the parameter 255d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt * was not specified in the configuration (i.e., default behavior is 256d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt * followed). 2578d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 2588d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int proactive_key_caching; 2598d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 2608d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 2618d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * mixed_cell - Whether mixed cells are allowed 2628d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 2638d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This option can be used to configure whether so called mixed cells, 2648d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * i.e., networks that use both plaintext and encryption in the same 2658d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * SSID, are allowed. This is disabled (0) by default. Enable by 2668d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * setting this to 1. 2678d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 2688d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int mixed_cell; 2698d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 2708d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef IEEE8021X_EAPOL 2718d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 2728d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 2738d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * leap - Number of EAP methods using LEAP 2748d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 2758d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This field should be set to 1 if LEAP is enabled. This is used to 2768d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * select IEEE 802.11 authentication algorithm. 2778d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 2788d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int leap; 2798d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 2808d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 2818d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * non_leap - Number of EAP methods not using LEAP 2828d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 2838d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This field should be set to >0 if any EAP method other than LEAP is 2848d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * enabled. This is used to select IEEE 802.11 authentication 2858d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * algorithm. 2868d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 2878d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int non_leap; 2888d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 2898d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 2908d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * eap_workaround - EAP workarounds enabled 2918d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 2928d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * wpa_supplicant supports number of "EAP workarounds" to work around 2938d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * interoperability issues with incorrectly behaving authentication 2948d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * servers. This is recommended to be enabled by default because some 2958d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * of the issues are present in large number of authentication servers. 2968d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 2978d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * Strict EAP conformance mode can be configured by disabling 2988d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * workarounds with eap_workaround = 0. 2998d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 3008d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt unsigned int eap_workaround; 3018d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 3028d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* IEEE8021X_EAPOL */ 3038d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 3048d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 3058d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * mode - IEEE 802.11 operation mode (Infrastucture/IBSS) 3068d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 3078d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 0 = infrastructure (Managed) mode, i.e., associate with an AP. 3088d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 3098d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 1 = IBSS (ad-hoc, peer-to-peer) 3108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 3118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 2 = AP (access point) 3128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 3138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 3 = P2P Group Owner (can be set in the configuration file) 3148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 3158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 4 = P2P Group Formation (used internally; not in configuration 3168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * files) 3178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 318fb79edc9df1f20461e90e478363d207348213d35Dmitry Shmidt * Note: IBSS can only be used with key_mgmt NONE (plaintext and static 319fb79edc9df1f20461e90e478363d207348213d35Dmitry Shmidt * WEP) and WPA-PSK (with proto=RSN). In addition, key_mgmt=WPA-NONE 320fb79edc9df1f20461e90e478363d207348213d35Dmitry Shmidt * (fixed group key TKIP/CCMP) is available for backwards compatibility, 321fb79edc9df1f20461e90e478363d207348213d35Dmitry Shmidt * but its use is deprecated. WPA-None requires following network block 322fb79edc9df1f20461e90e478363d207348213d35Dmitry Shmidt * options: proto=WPA, key_mgmt=WPA-NONE, pairwise=NONE, group=TKIP (or 323fb79edc9df1f20461e90e478363d207348213d35Dmitry Shmidt * CCMP, but not both), and psk must also be set (either directly or 324fb79edc9df1f20461e90e478363d207348213d35Dmitry Shmidt * using ASCII passphrase). 3258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 3268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt enum wpas_mode { 3278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt WPAS_MODE_INFRA = 0, 3288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt WPAS_MODE_IBSS = 1, 3298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt WPAS_MODE_AP = 2, 3308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt WPAS_MODE_P2P_GO = 3, 3318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt WPAS_MODE_P2P_GROUP_FORMATION = 4, 3328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt } mode; 3338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 3348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 3358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * disabled - Whether this network is currently disabled 3368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 3378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 0 = this network can be used (default). 3388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 1 = this network block is disabled (can be enabled through 3398d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * ctrl_iface, e.g., with wpa_cli or wpa_gui). 3408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 2 = this network block includes parameters for a persistent P2P 3418d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * group (can be used with P2P ctrl_iface commands) 3428d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 3438d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int disabled; 3448d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 3458d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 346d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt * disabled_for_connect - Whether this network was temporarily disabled 347d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt * 348d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt * This flag is used to reenable all the temporarily disabled networks 349d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt * after either the success or failure of a WPS connection. 350d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt */ 351d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt int disabled_for_connect; 352d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt 353d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt /** 3548d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * peerkey - Whether PeerKey handshake for direct links is allowed 3558d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 3568d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This is only used when both RSN/WPA2 and IEEE 802.11e (QoS) are 3578d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * enabled. 3588d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 3598d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 0 = disabled (default) 3608d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 1 = enabled 3618d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 3628d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int peerkey; 3638d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 3648d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 3658d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * id_str - Network identifier string for external scripts 3668d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 3678d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This value is passed to external ctrl_iface monitors in 3688d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * WPA_EVENT_CONNECTED event and wpa_cli sets this as WPA_ID_STR 3698d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * environment variable for action scripts. 3708d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 3718d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt char *id_str; 3728d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 3738d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#ifdef CONFIG_IEEE80211W 3748d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 3758d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * ieee80211w - Whether management frame protection is enabled 3768d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 3778d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This value is used to configure policy for management frame 3788d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * protection (IEEE 802.11w). 0 = disabled, 1 = optional, 2 = required. 379d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt * This is disabled by default unless the default value has been changed 380d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt * with the global pmf=1/2 parameter. 381d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt * 382d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt * Internally, special value 3 is used to indicate that the parameter 383d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt * was not specified in the configuration (i.e., default behavior is 384d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt * followed). 3858d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 3868d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt enum mfp_options ieee80211w; 3878d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* CONFIG_IEEE80211W */ 3888d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 3898d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 3908d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * frequency - Channel frequency in megahertz (MHz) for IBSS 3918d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 3928d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This value is used to configure the initial channel for IBSS (adhoc) 3938d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * networks, e.g., 2412 = IEEE 802.11b/g channel 1. It is ignored in 3948d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * the infrastructure mode. In addition, this value is only used by the 3958d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * station that creates the IBSS. If an IBSS network with the 3968d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * configured SSID is already present, the frequency of the network 3978d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * will be used instead of this configured value. 3988d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 3998d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int frequency; 4008d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 40161d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt int ht40; 40261d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt 40368d0e3ed07847339aedfac8e02f50db68c702e52Dmitry Shmidt int vht; 40468d0e3ed07847339aedfac8e02f50db68c702e52Dmitry Shmidt 4058d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 4068d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * wpa_ptk_rekey - Maximum lifetime for PTK in seconds 4078d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 4088d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This value can be used to enforce rekeying of PTK to mitigate some 4098d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * attacks against TKIP deficiencies. 4108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 4118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int wpa_ptk_rekey; 4128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 4138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 4148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * scan_freq - Array of frequencies to scan or %NULL for all 4158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 4168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This is an optional zero-terminated array of frequencies in 4178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * megahertz (MHz) to include in scan requests when searching for this 4188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * network. This can be used to speed up scanning when the network is 4198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * known to not use all possible channels. 4208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 4218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int *scan_freq; 4228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 4238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 4248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * bgscan - Background scan and roaming parameters or %NULL if none 4258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 4268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This is an optional set of parameters for background scanning and 4278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * roaming within a network (ESS) in following format: 4288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * <bgscan module name>:<module parameters> 4298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 4308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt char *bgscan; 4318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 4328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 43304949598a23f501be6eec21697465fd46a28840aDmitry Shmidt * ignore_broadcast_ssid - Hide SSID in AP mode 43404949598a23f501be6eec21697465fd46a28840aDmitry Shmidt * 43504949598a23f501be6eec21697465fd46a28840aDmitry Shmidt * Send empty SSID in beacons and ignore probe request frames that do 43604949598a23f501be6eec21697465fd46a28840aDmitry Shmidt * not specify full SSID, i.e., require stations to know SSID. 43704949598a23f501be6eec21697465fd46a28840aDmitry Shmidt * default: disabled (0) 43804949598a23f501be6eec21697465fd46a28840aDmitry Shmidt * 1 = send empty (length=0) SSID in beacon and ignore probe request 43904949598a23f501be6eec21697465fd46a28840aDmitry Shmidt * for broadcast SSID 44004949598a23f501be6eec21697465fd46a28840aDmitry Shmidt * 2 = clear SSID (ASCII 0), but keep the original length (this may be 44104949598a23f501be6eec21697465fd46a28840aDmitry Shmidt * required with some clients that do not support empty SSID) and 44204949598a23f501be6eec21697465fd46a28840aDmitry Shmidt * ignore probe requests for broadcast SSID 44304949598a23f501be6eec21697465fd46a28840aDmitry Shmidt */ 44404949598a23f501be6eec21697465fd46a28840aDmitry Shmidt int ignore_broadcast_ssid; 44504949598a23f501be6eec21697465fd46a28840aDmitry Shmidt 44604949598a23f501be6eec21697465fd46a28840aDmitry Shmidt /** 4478d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * freq_list - Array of allowed frequencies or %NULL for all 4488d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 4498d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This is an optional zero-terminated array of frequencies in 4508d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * megahertz (MHz) to allow for selecting the BSS. If set, scan results 4518d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * that do not match any of the specified frequencies are not 4528d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * considered when selecting a BSS. 4538d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 4548d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int *freq_list; 4558d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 4568d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 4571f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * p2p_client_list - List of P2P Clients in a persistent group (GO) 4581f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * 4591f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * This is a list of P2P Clients (P2P Device Address) that have joined 4601f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * the persistent group. This is maintained on the GO for persistent 4611f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * group entries (disabled == 2). 4621f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt */ 4631f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt u8 *p2p_client_list; 4641f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 4651f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt /** 4661f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt * num_p2p_clients - Number of entries in p2p_client_list 4671f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt */ 4681f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt size_t num_p2p_clients; 4691f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt 47061d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt#ifndef P2P_MAX_STORED_CLIENTS 47161d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt#define P2P_MAX_STORED_CLIENTS 100 47261d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt#endif /* P2P_MAX_STORED_CLIENTS */ 47361d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt 4741f69aa52ea2e0a73ac502565df8c666ee49cab6aDmitry Shmidt /** 475391c59f0632df8db1c325da1d31d479b2eedce45Dmitry Shmidt * psk_list - Per-client PSKs (struct psk_list_entry) 476391c59f0632df8db1c325da1d31d479b2eedce45Dmitry Shmidt */ 477391c59f0632df8db1c325da1d31d479b2eedce45Dmitry Shmidt struct dl_list psk_list; 478391c59f0632df8db1c325da1d31d479b2eedce45Dmitry Shmidt 479391c59f0632df8db1c325da1d31d479b2eedce45Dmitry Shmidt /** 4808d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * p2p_group - Network generated as a P2P group (used internally) 4818d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 4828d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int p2p_group; 4838d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 4848d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 4858d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * p2p_persistent_group - Whether this is a persistent group 4868d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 4878d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int p2p_persistent_group; 4888d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 4898d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 4908d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * temporary - Whether this network is temporary and not to be saved 4918d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 4928d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int temporary; 4938d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 4948d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt /** 4958d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * export_keys - Whether keys may be exported 4968d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * 4978d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * This attribute will be set when keys are determined through 4988d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt * WPS or similar so that they may be exported. 4998d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt */ 5008d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt int export_keys; 501c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt 502c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt#ifdef CONFIG_HT_OVERRIDES 503c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt /** 504c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * disable_ht - Disable HT (IEEE 802.11n) for this network 505c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * 506c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * By default, use it if it is available, but this can be configured 507c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * to 1 to have it disabled. 508c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt */ 509c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt int disable_ht; 510c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt 511c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt /** 512c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * disable_ht40 - Disable HT40 for this network 513c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * 514c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * By default, use it if it is available, but this can be configured 515c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * to 1 to have it disabled. 516c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt */ 517c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt int disable_ht40; 518c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt 519c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt /** 520a54fa5fb807eaeff45464139b5a7759f060cec68Dmitry Shmidt * disable_sgi - Disable SGI (Short Guard Interval) for this network 521a54fa5fb807eaeff45464139b5a7759f060cec68Dmitry Shmidt * 522a54fa5fb807eaeff45464139b5a7759f060cec68Dmitry Shmidt * By default, use it if it is available, but this can be configured 523a54fa5fb807eaeff45464139b5a7759f060cec68Dmitry Shmidt * to 1 to have it disabled. 524a54fa5fb807eaeff45464139b5a7759f060cec68Dmitry Shmidt */ 525a54fa5fb807eaeff45464139b5a7759f060cec68Dmitry Shmidt int disable_sgi; 526a54fa5fb807eaeff45464139b5a7759f060cec68Dmitry Shmidt 527a54fa5fb807eaeff45464139b5a7759f060cec68Dmitry Shmidt /** 528c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * disable_max_amsdu - Disable MAX A-MSDU 529c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * 530c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * A-MDSU will be 3839 bytes when disabled, or 7935 531c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * when enabled (assuming it is otherwise supported) 532c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * -1 (default) means do not apply any settings to the kernel. 533c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt */ 534c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt int disable_max_amsdu; 535c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt 536c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt /** 537c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * ampdu_factor - Maximum A-MPDU Length Exponent 538c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * 539c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * Value: 0-3, see 7.3.2.56.3 in IEEE Std 802.11n-2009. 540c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt */ 541c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt int ampdu_factor; 542c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt 543c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt /** 544c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * ampdu_density - Minimum A-MPDU Start Spacing 545c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * 546c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * Value: 0-7, see 7.3.2.56.3 in IEEE Std 802.11n-2009. 547c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt */ 548c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt int ampdu_density; 549c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt 550c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt /** 551c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * ht_mcs - Allowed HT-MCS rates, in ASCII hex: ffff0000... 552c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * 553c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt * By default (empty string): Use whatever the OS has configured. 554c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt */ 555c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt char *ht_mcs; 556c5ec7f57ead87efa365800228aa0b09a12d9e6c4Dmitry Shmidt#endif /* CONFIG_HT_OVERRIDES */ 55704949598a23f501be6eec21697465fd46a28840aDmitry Shmidt 5582f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt#ifdef CONFIG_VHT_OVERRIDES 5592f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt /** 5602f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt * disable_vht - Disable VHT (IEEE 802.11ac) for this network 5612f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt * 5622f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt * By default, use it if it is available, but this can be configured 5632f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt * to 1 to have it disabled. 5642f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt */ 5652f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt int disable_vht; 5662f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt 5672f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt /** 5682f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt * vht_capa - VHT capabilities to use 5692f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt */ 5702f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt unsigned int vht_capa; 5712f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt 5722f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt /** 5732f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt * vht_capa_mask - mask for VHT capabilities 5742f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt */ 5752f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt unsigned int vht_capa_mask; 5762f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt 5772f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt int vht_rx_mcs_nss_1, vht_rx_mcs_nss_2, 5782f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt vht_rx_mcs_nss_3, vht_rx_mcs_nss_4, 5792f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt vht_rx_mcs_nss_5, vht_rx_mcs_nss_6, 5802f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt vht_rx_mcs_nss_7, vht_rx_mcs_nss_8; 5812f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt int vht_tx_mcs_nss_1, vht_tx_mcs_nss_2, 5822f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt vht_tx_mcs_nss_3, vht_tx_mcs_nss_4, 5832f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt vht_tx_mcs_nss_5, vht_tx_mcs_nss_6, 5842f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt vht_tx_mcs_nss_7, vht_tx_mcs_nss_8; 5852f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt#endif /* CONFIG_VHT_OVERRIDES */ 5862f023193a0fd630eb82ce6381b80911ad5a3462fDmitry Shmidt 58704949598a23f501be6eec21697465fd46a28840aDmitry Shmidt /** 58804949598a23f501be6eec21697465fd46a28840aDmitry Shmidt * ap_max_inactivity - Timeout in seconds to detect STA's inactivity 58904949598a23f501be6eec21697465fd46a28840aDmitry Shmidt * 59004949598a23f501be6eec21697465fd46a28840aDmitry Shmidt * This timeout value is used in AP mode to clean up inactive stations. 59104949598a23f501be6eec21697465fd46a28840aDmitry Shmidt * By default: 300 seconds. 59204949598a23f501be6eec21697465fd46a28840aDmitry Shmidt */ 59304949598a23f501be6eec21697465fd46a28840aDmitry Shmidt int ap_max_inactivity; 59404949598a23f501be6eec21697465fd46a28840aDmitry Shmidt 59504949598a23f501be6eec21697465fd46a28840aDmitry Shmidt /** 59604949598a23f501be6eec21697465fd46a28840aDmitry Shmidt * dtim_period - DTIM period in Beacon intervals 59704949598a23f501be6eec21697465fd46a28840aDmitry Shmidt * By default: 2 59804949598a23f501be6eec21697465fd46a28840aDmitry Shmidt */ 59904949598a23f501be6eec21697465fd46a28840aDmitry Shmidt int dtim_period; 60061d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt 60161d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt /** 6027a5e50a0554bee77a9da492ea3d86f46147f1671Dmitry Shmidt * beacon_int - Beacon interval (default: 100 TU) 6037a5e50a0554bee77a9da492ea3d86f46147f1671Dmitry Shmidt */ 6047a5e50a0554bee77a9da492ea3d86f46147f1671Dmitry Shmidt int beacon_int; 6057a5e50a0554bee77a9da492ea3d86f46147f1671Dmitry Shmidt 6067a5e50a0554bee77a9da492ea3d86f46147f1671Dmitry Shmidt /** 60761d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt * auth_failures - Number of consecutive authentication failures 60861d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt */ 60961d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt unsigned int auth_failures; 61061d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt 61161d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt /** 61261d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt * disabled_until - Network block disabled until this time if non-zero 61361d9df3e62aaa0e87ad05452fcb95142159a17b6Dmitry Shmidt */ 614fb79edc9df1f20461e90e478363d207348213d35Dmitry Shmidt struct os_reltime disabled_until; 615d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt 616d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt /** 617d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt * parent_cred - Pointer to parent wpa_cred entry 618d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt * 619d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt * This pointer can be used to delete temporary networks when a wpa_cred 620d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt * that was used to create them is removed. This pointer should not be 621d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt * dereferences since it may not be updated in all cases. 622d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt */ 623d5e4923d04122f81300fa68fb07d64ede28fd44dDmitry Shmidt void *parent_cred; 6248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}; 6258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt 6268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#endif /* CONFIG_SSID_H */ 627