wpa_supplicant / hostapd  2.5
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Public Types | Data Fields
wpa_ssid Struct Reference

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_ssidnext
 Next network in global list. More...
 
struct wpa_ssidpnext
 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...
 

Detailed Description

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.

Member Enumeration Documentation

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).

Field Documentation

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.


The documentation for this struct was generated from the following file: