]> git.ipfire.org Git - thirdparty/hostap.git/blobdiff - wpa_supplicant/config.h
P2P: Add VHT parameter to P2P operations
[thirdparty/hostap.git] / wpa_supplicant / config.h
index fe29744175d970d938f7a2e05d7c1cd56e2c5b42..8cbeb62862b3720fc74ba569a7b687884e8b2ec0 100644 (file)
@@ -24,6 +24,7 @@
 #define DEFAULT_BSS_EXPIRATION_SCAN_COUNT 2
 #define DEFAULT_MAX_NUM_STA 128
 #define DEFAULT_ACCESS_NETWORK_TYPE 15
+#define DEFAULT_SCAN_CUR_FREQ 0
 
 #include "config_ssid.h"
 #include "wps/wps.h"
@@ -149,12 +150,37 @@ struct wpa_cred {
        char *milenage;
 
        /**
-        * domain - Home service provider FQDN
+        * domain_suffix_match - Constraint for server domain name
+        *
+        * If set, this FQDN is used as a suffix match requirement for the AAA
+        * server certificate in SubjectAltName dNSName element(s). If a
+        * matching dNSName is found, this constraint is met. If no dNSName
+        * values are present, this constraint is matched against SubjetName CN
+        * using same suffix match comparison. Suffix match here means that the
+        * host/domain name is compared one label at a time starting from the
+        * top-level domain and all the labels in @domain_suffix_match shall be
+        * included in the certificate. The certificate may include additional
+        * sub-level labels in addition to the required labels.
+        *
+        * For example, domain_suffix_match=example.com would match
+        * test.example.com but would not match test-example.com.
+        */
+       char *domain_suffix_match;
+
+       /**
+        * domain - Home service provider FQDN(s)
         *
         * This is used to compare against the Domain Name List to figure out
-        * whether the AP is operated by the Home SP.
+        * whether the AP is operated by the Home SP. Multiple domain entries
+        * can be used to configure alternative FQDNs that will be considered
+        * home networks.
         */
-       char *domain;
+       char **domain;
+
+       /**
+        * num_domain - Number of FQDNs in the domain array
+        */
+       size_t num_domain;
 
        /**
         * roaming_consortium - Roaming Consortium OI
@@ -174,6 +200,9 @@ struct wpa_cred {
         */
        size_t roaming_consortium_len;
 
+       u8 required_roaming_consortium[15];
+       size_t required_roaming_consortium_len;
+
        /**
         * eap_method - EAP method to use
         *
@@ -196,6 +225,12 @@ struct wpa_cred {
         * Pre-configured EAP parameters or %NULL.
         */
        char *phase2;
+
+       struct excluded_ssid {
+               u8 ssid[MAX_SSID_LEN];
+               size_t ssid_len;
+       } *excluded_ssid;
+       size_t num_excluded_ssid;
 };
 
 
@@ -214,6 +249,7 @@ struct wpa_cred {
 #define CFG_CHANGED_P2P_OPER_CHANNEL BIT(12)
 #define CFG_CHANGED_P2P_PREF_CHAN BIT(13)
 #define CFG_CHANGED_EXT_PW_BACKEND BIT(14)
+#define CFG_CHANGED_NFC_PASSWORD_TOKEN BIT(15)
 
 /**
  * struct wpa_config - wpa_supplicant configuration data
@@ -416,6 +452,11 @@ struct wpa_config {
         */
        char *pcsc_pin;
 
+       /**
+        * external_sim - Use external processing for SIM/USIM operations
+        */
+       int external_sim;
+
        /**
         * driver_param - Driver interface parameters
         *
@@ -564,6 +605,9 @@ struct wpa_config {
        int p2p_intra_bss;
        unsigned int num_p2p_pref_chan;
        struct p2p_channel *p2p_pref_chan;
+       struct wpa_freq_range_list p2p_no_go_freq;
+       int p2p_add_cli_chan;
+       int p2p_ignore_shared_freq;
 
        struct wpabuf *wps_vendor_ext_m1;
 
@@ -636,6 +680,22 @@ struct wpa_config {
         */
        unsigned int max_num_sta;
 
+       /**
+        * freq_list - Array of allowed scan frequencies or %NULL for all
+        *
+        * This is an optional zero-terminated array of frequencies in
+        * megahertz (MHz) to allow for narrowing scanning range.
+        */
+       int *freq_list;
+
+       /**
+        * scan_cur_freq - Whether to scan only the current channel
+        *
+        * If true, attempt to scan only the current channel if any other
+        * VIFs on this radio are already associated on a particular channel.
+        */
+       int scan_cur_freq;
+
        /**
         * changed_parameters - Bitmap of changed parameters since last update
         */
@@ -699,6 +759,15 @@ struct wpa_config {
         */
        char *autoscan;
 
+       /**
+        * wps_nfc_pw_from_config - NFC Device Password was read from config
+        *
+        * This parameter can be determined whether the NFC Device Password was
+        * included in the configuration (1) or generated dynamically (0). Only
+        * the former case is re-written back to the configuration file.
+        */
+       int wps_nfc_pw_from_config;
+
        /**
         * wps_nfc_dev_pw_id - NFC Device Password ID for password token
         */
@@ -710,12 +779,12 @@ struct wpa_config {
        struct wpabuf *wps_nfc_dh_pubkey;
 
        /**
-        * wps_nfc_dh_pubkey - NFC DH Private Key for password token
+        * wps_nfc_dh_privkey - NFC DH Private Key for password token
         */
        struct wpabuf *wps_nfc_dh_privkey;
 
        /**
-        * wps_nfc_dh_pubkey - NFC Device Password for password token
+        * wps_nfc_dev_pw - NFC Device Password for password token
         */
        struct wpabuf *wps_nfc_dev_pw;
 
@@ -758,10 +827,100 @@ struct wpa_config {
         */
        int p2p_go_ht40;
 
+       /**
+        * p2p_go_vht - Default mode for VHT enable when operating as GO
+        *
+        * This will take effect for p2p_group_add, p2p_connect, and p2p_invite.
+        * Note that regulatory constraints and driver capabilities are
+        * consulted anyway, so setting it to 1 can't do real harm.
+        * By default: 0 (disabled)
+        */
+       int p2p_go_vht;
+
        /**
         * p2p_disabled - Whether P2P operations are disabled for this interface
         */
        int p2p_disabled;
+
+       /**
+        * p2p_no_group_iface - Whether group interfaces can be used
+        *
+        * By default, wpa_supplicant will create a separate interface for P2P
+        * group operations if the driver supports this. This functionality can
+        * be disabled by setting this parameter to 1. In that case, the same
+        * interface that was used for the P2P management operations is used
+        * also for the group operation.
+        */
+       int p2p_no_group_iface;
+
+       /**
+        * okc - Whether to enable opportunistic key caching by default
+        *
+        * By default, OKC is disabled unless enabled by the per-network
+        * proactive_key_caching=1 parameter. okc=1 can be used to change this
+        * default behavior.
+        */
+       int okc;
+
+       /**
+        * pmf - Whether to enable/require PMF by default
+        *
+        * By default, PMF is disabled unless enabled by the per-network
+        * ieee80211w=1 or ieee80211w=2 parameter. pmf=1/2 can be used to change
+        * this default behavior.
+        */
+       enum mfp_options pmf;
+
+       /**
+        * sae_groups - Preference list of enabled groups for SAE
+        *
+        * By default (if this parameter is not set), the mandatory group 19
+        * (ECC group defined over a 256-bit prime order field) is preferred,
+        * but other groups are also enabled. If this parameter is set, the
+        * groups will be tried in the indicated order.
+        */
+       int *sae_groups;
+
+       /**
+        * dtim_period - Default DTIM period in Beacon intervals
+        *
+        * This parameter can be used to set the default value for network
+        * blocks that do not specify dtim_period.
+        */
+       int dtim_period;
+
+       /**
+        * beacon_int - Default Beacon interval in TU
+        *
+        * This parameter can be used to set the default value for network
+        * blocks that do not specify beacon_int.
+        */
+       int beacon_int;
+
+       /**
+        * ap_vendor_elements: Vendor specific elements for Beacon/ProbeResp
+        *
+        * This parameter can be used to define additional vendor specific
+        * elements for Beacon and Probe Response frames in AP/P2P GO mode. The
+        * format for these element(s) is a hexdump of the raw information
+        * elements (id+len+payload for one or more elements).
+        */
+       struct wpabuf *ap_vendor_elements;
+
+       /**
+        * ignore_old_scan_res - Ignore scan results older than request
+        *
+        * The driver may have a cache of scan results that makes it return
+        * information that is older than our scan trigger. This parameter can
+        * be used to configure such old information to be ignored instead of
+        * allowing it to update the internal BSS table.
+        */
+       int ignore_old_scan_res;
+
+       /**
+        * sched_scan_interval -  schedule scan interval
+        */
+       unsigned int sched_scan_interval;
 };
 
 
@@ -820,6 +979,7 @@ int wpa_config_process_global(struct wpa_config *config, char *pos, int line);
  * wpa_config_read - Read and parse configuration database
  * @name: Name of the configuration (e.g., path and file name for the
  * configuration file)
+ * @cfgp: Pointer to previously allocated configuration data or %NULL if none
  * Returns: Pointer to allocated configuration data or %NULL on failure
  *
  * This function reads configuration data, parses its contents, and allocates
@@ -828,7 +988,7 @@ int wpa_config_process_global(struct wpa_config *config, char *pos, int line);
  *
  * Each configuration backend needs to implement this function.
  */
-struct wpa_config * wpa_config_read(const char *name);
+struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp);
 
 /**
  * wpa_config_write - Write or update configuration data