diff options
Diffstat (limited to 'include/net/cfg80211.h')
| -rw-r--r-- | include/net/cfg80211.h | 42 | 
1 files changed, 42 insertions, 0 deletions
| diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index b083e6cbae8c..f12fa5245a45 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h @@ -649,6 +649,7 @@ struct survey_info {   * @wep_keys: static WEP keys, if not NULL points to an array of   *	CFG80211_MAX_WEP_KEYS WEP keys   * @wep_tx_key: key index (0..3) of the default TX static WEP key + * @psk: PSK (for devices supporting 4-way-handshake offload)   */  struct cfg80211_crypto_settings {  	u32 wpa_versions; @@ -662,6 +663,7 @@ struct cfg80211_crypto_settings {  	bool control_port_no_encrypt;  	struct key_params *wep_keys;  	int wep_tx_key; +	const u8 *psk;  };  /** @@ -1441,6 +1443,9 @@ struct mesh_config {   * @mcast_rate: multicat rate for Mesh Node [6Mbps is the default for 802.11a]   * @basic_rates: basic rates to use when creating the mesh   * @beacon_rate: bitrate to be used for beacons + * @userspace_handles_dfs: whether user space controls DFS operation, i.e. + *	changes the channel when a radar is detected. This is required + *	to operate on DFS channels.   *   * These parameters are fixed when the mesh is created.   */ @@ -1462,6 +1467,7 @@ struct mesh_setup {  	int mcast_rate[NUM_NL80211_BANDS];  	u32 basic_rates;  	struct cfg80211_bitrate_mask beacon_rate; +	bool userspace_handles_dfs;  };  /** @@ -2106,6 +2112,8 @@ struct cfg80211_bss_selection {   * @fils_erp_rrk: ERP re-authentication Root Key (rRK) used to derive additional   *	keys in FILS or %NULL if not specified.   * @fils_erp_rrk_len: Length of @fils_erp_rrk in octets. + * @want_1x: indicates user-space supports and wants to use 802.1X driver + *	offload of 4-way handshake.   */  struct cfg80211_connect_params {  	struct ieee80211_channel *channel; @@ -2138,6 +2146,7 @@ struct cfg80211_connect_params {  	u16 fils_erp_next_seq_num;  	const u8 *fils_erp_rrk;  	size_t fils_erp_rrk_len; +	bool want_1x;  };  /** @@ -2560,6 +2569,23 @@ struct cfg80211_nan_func {  };  /** + * struct cfg80211_pmk_conf - PMK configuration + * + * @aa: authenticator address + * @pmk_len: PMK length in bytes. + * @pmk: the PMK material + * @pmk_r0_name: PMK-R0 Name. NULL if not applicable (i.e., the PMK + *	is not PMK-R0). When pmk_r0_name is not NULL, the pmk field + *	holds PMK-R0. + */ +struct cfg80211_pmk_conf { +	const u8 *aa; +	u8 pmk_len; +	const u8 *pmk; +	const u8 *pmk_r0_name; +}; + +/**   * struct cfg80211_ops - backend description for wireless configuration   *   * This struct is registered by fullmac card drivers and/or wireless stacks @@ -2875,6 +2901,13 @@ struct cfg80211_nan_func {   *	All other parameters must be ignored.   *   * @set_multicast_to_unicast: configure multicast to unicast conversion for BSS + * + * @set_pmk: configure the PMK to be used for offloaded 802.1X 4-Way handshake. + *	If not deleted through @del_pmk the PMK remains valid until disconnect + *	upon which the driver should clear it. + *	(invoked with the wireless_dev mutex held) + * @del_pmk: delete the previously configured PMK for the given authenticator. + *	(invoked with the wireless_dev mutex held)   */  struct cfg80211_ops {  	int	(*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow); @@ -3163,6 +3196,11 @@ struct cfg80211_ops {  	int	(*set_multicast_to_unicast)(struct wiphy *wiphy,  					    struct net_device *dev,  					    const bool enabled); + +	int	(*set_pmk)(struct wiphy *wiphy, struct net_device *dev, +			   const struct cfg80211_pmk_conf *conf); +	int	(*del_pmk)(struct wiphy *wiphy, struct net_device *dev, +			   const u8 *aa);  };  /* @@ -5403,6 +5441,9 @@ cfg80211_connect_timeout(struct net_device *dev, const u8 *bssid,   * @req_ie_len: association request IEs length   * @resp_ie: association response IEs (may be %NULL)   * @resp_ie_len: assoc response IEs length + * @authorized: true if the 802.1X authentication was done by the driver or is + *	not needed (e.g., when Fast Transition protocol was used), false + *	otherwise. Ignored for networks that don't use 802.1X authentication.   */  struct cfg80211_roam_info {  	struct ieee80211_channel *channel; @@ -5412,6 +5453,7 @@ struct cfg80211_roam_info {  	size_t req_ie_len;  	const u8 *resp_ie;  	size_t resp_ie_len; +	bool authorized;  };  /** |