wpa_supplicant / hostapd
2.5
|
Network configuration data. More...
#include <config_ssid.h>
Public Types | |
enum | wpas_mode { WPAS_MODE_INFRA = 0, WPAS_MODE_IBSS = 1, WPAS_MODE_AP = 2, WPAS_MODE_P2P_GO = 3, WPAS_MODE_P2P_GROUP_FORMATION = 4, WPAS_MODE_MESH = 5 } |
IEEE 802.11 operation mode (Infrastucture/IBSS) More... | |
Data Fields | |
struct wpa_ssid * | next |
Next network in global list. More... | |
struct wpa_ssid * | pnext |
Next network in per-priority list. More... | |
int | id |
Unique id for the network. More... | |
int | priority |
Priority group. More... | |
u8 * | ssid |
Service set identifier (network name) More... | |
size_t | ssid_len |
Length of the SSID. | |
u8 | bssid [ETH_ALEN] |
BSSID. More... | |
u8 * | bssid_blacklist |
List of inacceptable BSSIDs. | |
size_t | num_bssid_blacklist |
u8 * | bssid_whitelist |
List of acceptable BSSIDs. | |
size_t | num_bssid_whitelist |
int | bssid_set |
Whether BSSID is configured for this network. | |
u8 | go_p2p_dev_addr [ETH_ALEN] |
GO's P2P Device Address or all zeros if not set. | |
u8 | psk [32] |
WPA pre-shared key (256 bits) | |
int | psk_set |
Whether PSK field is configured. | |
char * | passphrase |
WPA ASCII passphrase. More... | |
char * | ext_psk |
PSK/passphrase name in external storage. More... | |
int | mem_only_psk |
Whether to keep PSK/passphrase only in memory. More... | |
int | pairwise_cipher |
Bitfield of allowed pairwise ciphers, WPA_CIPHER_*. | |
int | group_cipher |
Bitfield of allowed group ciphers, WPA_CIPHER_*. | |
int | key_mgmt |
Bitfield of allowed key management protocols. More... | |
int | bg_scan_period |
Background scan period in seconds, 0 to disable, or -1 to indicate no change to default driver configuration. | |
int | proto |
Bitfield of allowed protocols, WPA_PROTO_*. | |
int | auth_alg |
Bitfield of allowed authentication algorithms. More... | |
int | scan_ssid |
Scan this SSID with Probe Requests. More... | |
int | eapol_flags |
Bit field of IEEE 802.1X/EAPOL options (EAPOL_FLAG_*) | |
struct eap_peer_config | eap |
EAP peer configuration for this network. | |
u8 | wep_key [NUM_WEP_KEYS][MAX_WEP_KEY_LEN] |
WEP keys. | |
size_t | wep_key_len [NUM_WEP_KEYS] |
WEP key lengths. | |
int | wep_tx_keyidx |
Default key index for TX frames using WEP. | |
int | proactive_key_caching |
Enable proactive key caching. More... | |
int | mixed_cell |
Whether mixed cells are allowed. More... | |
int | leap |
Number of EAP methods using LEAP. More... | |
int | non_leap |
Number of EAP methods not using LEAP. More... | |
unsigned int | eap_workaround |
EAP workarounds enabled. More... | |
enum wpa_ssid::wpas_mode | mode |
int | disabled |
Whether this network is currently disabled. More... | |
int | disabled_for_connect |
Whether this network was temporarily disabled. More... | |
int | peerkey |
Whether PeerKey handshake for direct links is allowed. More... | |
char * | id_str |
Network identifier string for external scripts. More... | |
int | frequency |
Channel frequency in megahertz (MHz) for IBSS. More... | |
int | fixed_freq |
Use fixed frequency for IBSS. | |
int * | mesh_basic_rates |
BSS Basic rate set for mesh network. | |
int | dot11MeshMaxRetries |
Mesh network plink parameters. | |
int | dot11MeshRetryTimeout |
int | dot11MeshConfirmTimeout |
int | dot11MeshHoldingTimeout |
int | ht40 |
int | vht |
int | wpa_ptk_rekey |
Maximum lifetime for PTK in seconds. More... | |
int * | scan_freq |
Array of frequencies to scan or NULL for all. More... | |
char * | bgscan |
Background scan and roaming parameters or NULL if none. More... | |
int | ignore_broadcast_ssid |
Hide SSID in AP mode. More... | |
int * | freq_list |
Array of allowed frequencies or NULL for all. More... | |
u8 * | p2p_client_list |
List of P2P Clients in a persistent group (GO) More... | |
size_t | num_p2p_clients |
Number of entries in p2p_client_list. | |
struct dl_list | psk_list |
Per-client PSKs (struct psk_list_entry) | |
int | p2p_group |
Network generated as a P2P group (used internally) | |
int | p2p_persistent_group |
Whether this is a persistent group. | |
int | temporary |
Whether this network is temporary and not to be saved. | |
int | export_keys |
Whether keys may be exported. More... | |
int | ap_max_inactivity |
Timeout in seconds to detect STA's inactivity. More... | |
int | dtim_period |
DTIM period in Beacon intervals By default: 2. | |
int | beacon_int |
Beacon interval (default: 100 TU) | |
unsigned int | auth_failures |
Number of consecutive authentication failures. | |
struct os_reltime | disabled_until |
Network block disabled until this time if non-zero. | |
void * | parent_cred |
Pointer to parent wpa_cred entry. More... | |
unsigned int | wps_run |
int | mac_addr |
MAC address policy. More... | |
int | no_auto_peer |
Do not automatically peer with compatible mesh peers. More... | |
Network configuration data.
This structure includes all the configuration variables for a network. This data is included in the per-interface configuration data as an element of the network list, struct wpa_config::ssid. Each network block in the configuration is mapped to a struct wpa_ssid instance.
enum wpa_ssid::wpas_mode |
IEEE 802.11 operation mode (Infrastucture/IBSS)
0 = infrastructure (Managed) mode, i.e., associate with an AP.
1 = IBSS (ad-hoc, peer-to-peer)
2 = AP (access point)
3 = P2P Group Owner (can be set in the configuration file)
4 = P2P Group Formation (used internally; not in configuration files)
5 = Mesh
Note: IBSS can only be used with key_mgmt NONE (plaintext and static WEP) and WPA-PSK (with proto=RSN). In addition, key_mgmt=WPA-NONE (fixed group key TKIP/CCMP) is available for backwards compatibility, but its use is deprecated. WPA-None requires following network block options: proto=WPA, key_mgmt=WPA-NONE, pairwise=NONE, group=TKIP (or CCMP, but not both), and psk must also be set (either directly or using ASCII passphrase).
int wpa_ssid::ap_max_inactivity |
Timeout in seconds to detect STA's inactivity.
This timeout value is used in AP mode to clean up inactive stations. By default: 300 seconds.
int wpa_ssid::auth_alg |
Bitfield of allowed authentication algorithms.
WPA_AUTH_ALG_*
char* wpa_ssid::bgscan |
Background scan and roaming parameters or NULL if none.
This is an optional set of parameters for background scanning and roaming within a network (ESS) in following format: <bgscan module="" name>="">:<module parameters>="">
u8 wpa_ssid::bssid[ETH_ALEN] |
BSSID.
If set, this network block is used only when associating with the AP using the configured BSSID
If this is a persistent P2P group (disabled == 2), this is the GO Device Address.
int wpa_ssid::disabled |
Whether this network is currently disabled.
0 = this network can be used (default). 1 = this network block is disabled (can be enabled through ctrl_iface, e.g., with wpa_cli or wpa_gui). 2 = this network block includes parameters for a persistent P2P group (can be used with P2P ctrl_iface commands)
int wpa_ssid::disabled_for_connect |
Whether this network was temporarily disabled.
This flag is used to reenable all the temporarily disabled networks after either the success or failure of a WPS connection.
unsigned int wpa_ssid::eap_workaround |
EAP workarounds enabled.
wpa_supplicant supports number of "EAP workarounds" to work around interoperability issues with incorrectly behaving authentication servers. This is recommended to be enabled by default because some of the issues are present in large number of authentication servers.
Strict EAP conformance mode can be configured by disabling workarounds with eap_workaround = 0.
int wpa_ssid::export_keys |
Whether keys may be exported.
This attribute will be set when keys are determined through WPS or similar so that they may be exported.
char* wpa_ssid::ext_psk |
PSK/passphrase name in external storage.
If this is set, PSK/passphrase will be fetched from external storage when requesting association with the network.
int* wpa_ssid::freq_list |
Array of allowed frequencies or NULL for all.
This is an optional zero-terminated array of frequencies in megahertz (MHz) to allow for selecting the BSS. If set, scan results that do not match any of the specified frequencies are not considered when selecting a BSS.
int wpa_ssid::frequency |
Channel frequency in megahertz (MHz) for IBSS.
This value is used to configure the initial channel for IBSS (adhoc) networks, e.g., 2412 = IEEE 802.11b/g channel 1. It is ignored in the infrastructure mode. In addition, this value is only used by the station that creates the IBSS. If an IBSS network with the configured SSID is already present, the frequency of the network will be used instead of this configured value.
int wpa_ssid::id |
Unique id for the network.
This identifier is used as a unique identifier for each network block when using the control interface. Each network is allocated an id when it is being created, either when reading the configuration file or when a new network is added through the control interface.
char* wpa_ssid::id_str |
Network identifier string for external scripts.
This value is passed to external ctrl_iface monitors in WPA_EVENT_CONNECTED event and wpa_cli sets this as WPA_ID_STR environment variable for action scripts.
int wpa_ssid::ignore_broadcast_ssid |
Hide SSID in AP mode.
Send empty SSID in beacons and ignore probe request frames that do not specify full SSID, i.e., require stations to know SSID. default: disabled (0) 1 = send empty (length=0) SSID in beacon and ignore probe request for broadcast SSID 2 = clear SSID (ASCII 0), but keep the original length (this may be required with some clients that do not support empty SSID) and ignore probe requests for broadcast SSID
int wpa_ssid::key_mgmt |
Bitfield of allowed key management protocols.
WPA_KEY_MGMT_*
int wpa_ssid::leap |
Number of EAP methods using LEAP.
This field should be set to 1 if LEAP is enabled. This is used to select IEEE 802.11 authentication algorithm.
int wpa_ssid::mac_addr |
MAC address policy.
0 = use permanent MAC address 1 = use random MAC address for each ESS connection 2 = like 1, but maintain OUI (with local admin bit set)
Internally, special value -1 is used to indicate that the parameter was not specified in the configuration (i.e., default behavior is followed).
int wpa_ssid::mem_only_psk |
Whether to keep PSK/passphrase only in memory.
0 = allow psk/passphrase to be stored to the configuration file 1 = do not store psk/passphrase to the configuration file
int wpa_ssid::mixed_cell |
Whether mixed cells are allowed.
This option can be used to configure whether so called mixed cells, i.e., networks that use both plaintext and encryption in the same SSID, are allowed. This is disabled (0) by default. Enable by setting this to 1.
struct wpa_ssid* wpa_ssid::next |
Next network in global list.
This pointer can be used to iterate over all networks. The head of this list is stored in the ssid field of struct wpa_config.
int wpa_ssid::no_auto_peer |
Do not automatically peer with compatible mesh peers.
When unset, the reception of a beacon from a another mesh peer in this MBSS will trigger a peering attempt.
int wpa_ssid::non_leap |
Number of EAP methods not using LEAP.
This field should be set to >0 if any EAP method other than LEAP is enabled. This is used to select IEEE 802.11 authentication algorithm.
u8* wpa_ssid::p2p_client_list |
List of P2P Clients in a persistent group (GO)
This is a list of P2P Clients (P2P Device Address) that have joined the persistent group. This is maintained on the GO for persistent group entries (disabled == 2).
void* wpa_ssid::parent_cred |
Pointer to parent wpa_cred entry.
This pointer can be used to delete temporary networks when a wpa_cred that was used to create them is removed. This pointer should not be dereferences since it may not be updated in all cases.
char* wpa_ssid::passphrase |
WPA ASCII passphrase.
If this is set, psk will be generated using the SSID and passphrase configured for the network. ASCII passphrase must be between 8 and 63 characters (inclusive).
int wpa_ssid::peerkey |
Whether PeerKey handshake for direct links is allowed.
This is only used when both RSN/WPA2 and IEEE 802.11e (QoS) are enabled.
0 = disabled (default) 1 = enabled
struct wpa_ssid* wpa_ssid::pnext |
Next network in per-priority list.
This pointer can be used to iterate over all networks in the same priority class. The heads of these list are stored in the pssid fields of struct wpa_config.
int wpa_ssid::priority |
Priority group.
By default, all networks will get same priority group (0). If some of the networks are more desirable, this field can be used to change the order in which wpa_supplicant goes through the networks when selecting a BSS. The priority groups will be iterated in decreasing priority (i.e., the larger the priority value, the sooner the network is matched against the scan results). Within each priority group, networks will be selected based on security policy, signal strength, etc.
Please note that AP scanning with scan_ssid=1 and ap_scan=2 mode are not using this priority to select the order for scanning. Instead, they try the networks in the order that used in the configuration file.
int wpa_ssid::proactive_key_caching |
Enable proactive key caching.
This field can be used to enable proactive key caching which is also known as opportunistic PMKSA caching for WPA2. This is disabled (0) by default unless default value is changed with the global okc=1 parameter. Enable by setting this to 1.
Proactive key caching is used to make supplicant assume that the APs are using the same PMK and generate PMKSA cache entries without doing RSN pre-authentication. This requires support from the AP side and is normally used with wireless switches that co-locate the authenticator.
Internally, special value -1 is used to indicate that the parameter was not specified in the configuration (i.e., default behavior is followed).
int* wpa_ssid::scan_freq |
Array of frequencies to scan or NULL for all.
This is an optional zero-terminated array of frequencies in megahertz (MHz) to include in scan requests when searching for this network. This can be used to speed up scanning when the network is known to not use all possible channels.
int wpa_ssid::scan_ssid |
Scan this SSID with Probe Requests.
scan_ssid can be used to scan for APs using hidden SSIDs. Note: Many drivers do not support this. ap_mode=2 can be used with such drivers to use hidden SSIDs. Note2: Most nl80211-based drivers do support scan_ssid=1 and that should be used with them instead of ap_scan=2.
u8* wpa_ssid::ssid |
Service set identifier (network name)
This is the SSID for the network. For wireless interfaces, this is used to select which network will be used. If set to NULL (or ssid_len=0), any SSID can be used. For wired interfaces, this must be set to NULL. Note: SSID may contain any characters, even nul (ASCII 0) and as such, this should not be assumed to be a nul terminated string. ssid_len defines how many characters are valid and the ssid field is not guaranteed to be nul terminated.
int wpa_ssid::wpa_ptk_rekey |
Maximum lifetime for PTK in seconds.
This value can be used to enforce rekeying of PTK to mitigate some attacks against TKIP deficiencies.