diff options
author | Jouni Malinen <jouni@qca.qualcomm.com> | 2011-08-10 16:54:35 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-08-12 13:45:04 -0400 |
commit | 5fb628e9105eef6796789b1ae93289e1566ccdf0 (patch) | |
tree | 3d1e9eef06be596bdd0ab936b8527202afac42e7 /include/net/cfg80211.h | |
parent | 32e9de846be885444358b67267f837088c05e0c2 (diff) |
nl80211/cfg80211: Add crypto settings into NEW_BEACON
This removes need from drivers to parse the beacon tail/head data
to figure out what crypto settings are to be used in AP mode in case
the Beacon and Probe Response frames are fully constructed in the
driver/firmware.
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/net/cfg80211.h')
-rw-r--r-- | include/net/cfg80211.h | 66 |
1 files changed, 36 insertions, 30 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 9ee93e7f0e31..6fcd0bf4dc62 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -334,6 +334,36 @@ struct survey_info { | |||
334 | }; | 334 | }; |
335 | 335 | ||
336 | /** | 336 | /** |
337 | * struct cfg80211_crypto_settings - Crypto settings | ||
338 | * @wpa_versions: indicates which, if any, WPA versions are enabled | ||
339 | * (from enum nl80211_wpa_versions) | ||
340 | * @cipher_group: group key cipher suite (or 0 if unset) | ||
341 | * @n_ciphers_pairwise: number of AP supported unicast ciphers | ||
342 | * @ciphers_pairwise: unicast key cipher suites | ||
343 | * @n_akm_suites: number of AKM suites | ||
344 | * @akm_suites: AKM suites | ||
345 | * @control_port: Whether user space controls IEEE 802.1X port, i.e., | ||
346 | * sets/clears %NL80211_STA_FLAG_AUTHORIZED. If true, the driver is | ||
347 | * required to assume that the port is unauthorized until authorized by | ||
348 | * user space. Otherwise, port is marked authorized by default. | ||
349 | * @control_port_ethertype: the control port protocol that should be | ||
350 | * allowed through even on unauthorized ports | ||
351 | * @control_port_no_encrypt: TRUE to prevent encryption of control port | ||
352 | * protocol frames. | ||
353 | */ | ||
354 | struct cfg80211_crypto_settings { | ||
355 | u32 wpa_versions; | ||
356 | u32 cipher_group; | ||
357 | int n_ciphers_pairwise; | ||
358 | u32 ciphers_pairwise[NL80211_MAX_NR_CIPHER_SUITES]; | ||
359 | int n_akm_suites; | ||
360 | u32 akm_suites[NL80211_MAX_NR_AKM_SUITES]; | ||
361 | bool control_port; | ||
362 | __be16 control_port_ethertype; | ||
363 | bool control_port_no_encrypt; | ||
364 | }; | ||
365 | |||
366 | /** | ||
337 | * struct beacon_parameters - beacon parameters | 367 | * struct beacon_parameters - beacon parameters |
338 | * | 368 | * |
339 | * Used to configure the beacon for an interface. | 369 | * Used to configure the beacon for an interface. |
@@ -350,6 +380,9 @@ struct survey_info { | |||
350 | * user space) | 380 | * user space) |
351 | * @ssid_len: length of @ssid | 381 | * @ssid_len: length of @ssid |
352 | * @hidden_ssid: whether to hide the SSID in Beacon/Probe Response frames | 382 | * @hidden_ssid: whether to hide the SSID in Beacon/Probe Response frames |
383 | * @crypto: crypto settings | ||
384 | * @privacy: the BSS uses privacy | ||
385 | * @auth_type: Authentication type (algorithm) | ||
353 | */ | 386 | */ |
354 | struct beacon_parameters { | 387 | struct beacon_parameters { |
355 | u8 *head, *tail; | 388 | u8 *head, *tail; |
@@ -358,6 +391,9 @@ struct beacon_parameters { | |||
358 | const u8 *ssid; | 391 | const u8 *ssid; |
359 | size_t ssid_len; | 392 | size_t ssid_len; |
360 | enum nl80211_hidden_ssid hidden_ssid; | 393 | enum nl80211_hidden_ssid hidden_ssid; |
394 | struct cfg80211_crypto_settings crypto; | ||
395 | bool privacy; | ||
396 | enum nl80211_auth_type auth_type; | ||
361 | }; | 397 | }; |
362 | 398 | ||
363 | /** | 399 | /** |
@@ -913,36 +949,6 @@ const u8 *ieee80211_bss_get_ie(struct cfg80211_bss *bss, u8 ie); | |||
913 | 949 | ||
914 | 950 | ||
915 | /** | 951 | /** |
916 | * struct cfg80211_crypto_settings - Crypto settings | ||
917 | * @wpa_versions: indicates which, if any, WPA versions are enabled | ||
918 | * (from enum nl80211_wpa_versions) | ||
919 | * @cipher_group: group key cipher suite (or 0 if unset) | ||
920 | * @n_ciphers_pairwise: number of AP supported unicast ciphers | ||
921 | * @ciphers_pairwise: unicast key cipher suites | ||
922 | * @n_akm_suites: number of AKM suites | ||
923 | * @akm_suites: AKM suites | ||
924 | * @control_port: Whether user space controls IEEE 802.1X port, i.e., | ||
925 | * sets/clears %NL80211_STA_FLAG_AUTHORIZED. If true, the driver is | ||
926 | * required to assume that the port is unauthorized until authorized by | ||
927 | * user space. Otherwise, port is marked authorized by default. | ||
928 | * @control_port_ethertype: the control port protocol that should be | ||
929 | * allowed through even on unauthorized ports | ||
930 | * @control_port_no_encrypt: TRUE to prevent encryption of control port | ||
931 | * protocol frames. | ||
932 | */ | ||
933 | struct cfg80211_crypto_settings { | ||
934 | u32 wpa_versions; | ||
935 | u32 cipher_group; | ||
936 | int n_ciphers_pairwise; | ||
937 | u32 ciphers_pairwise[NL80211_MAX_NR_CIPHER_SUITES]; | ||
938 | int n_akm_suites; | ||
939 | u32 akm_suites[NL80211_MAX_NR_AKM_SUITES]; | ||
940 | bool control_port; | ||
941 | __be16 control_port_ethertype; | ||
942 | bool control_port_no_encrypt; | ||
943 | }; | ||
944 | |||
945 | /** | ||
946 | * struct cfg80211_auth_request - Authentication request data | 952 | * struct cfg80211_auth_request - Authentication request data |
947 | * | 953 | * |
948 | * This structure provides information needed to complete IEEE 802.11 | 954 | * This structure provides information needed to complete IEEE 802.11 |