diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/ieee80211.h | 2 | ||||
-rw-r--r-- | include/linux/nl80211.h | 11 | ||||
-rw-r--r-- | include/net/cfg80211.h | 28 |
3 files changed, 41 insertions, 0 deletions
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index afa8e0ac27a7..d9724a28c0c2 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h | |||
@@ -1266,6 +1266,8 @@ enum ieee80211_sa_query_action { | |||
1266 | 1266 | ||
1267 | #define WLAN_MAX_KEY_LEN 32 | 1267 | #define WLAN_MAX_KEY_LEN 32 |
1268 | 1268 | ||
1269 | #define WLAN_PMKID_LEN 16 | ||
1270 | |||
1269 | /** | 1271 | /** |
1270 | * ieee80211_get_qos_ctl - get pointer to qos control bytes | 1272 | * ieee80211_get_qos_ctl - get pointer to qos control bytes |
1271 | * @hdr: the frame | 1273 | * @hdr: the frame |
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h index 45db17f81aa3..da8ea2e19273 100644 --- a/include/linux/nl80211.h +++ b/include/linux/nl80211.h | |||
@@ -349,6 +349,10 @@ enum nl80211_commands { | |||
349 | NL80211_CMD_GET_SURVEY, | 349 | NL80211_CMD_GET_SURVEY, |
350 | NL80211_CMD_NEW_SURVEY_RESULTS, | 350 | NL80211_CMD_NEW_SURVEY_RESULTS, |
351 | 351 | ||
352 | NL80211_CMD_SET_PMKSA, | ||
353 | NL80211_CMD_DEL_PMKSA, | ||
354 | NL80211_CMD_FLUSH_PMKSA, | ||
355 | |||
352 | /* add new commands above here */ | 356 | /* add new commands above here */ |
353 | 357 | ||
354 | /* used to define NL80211_CMD_MAX below */ | 358 | /* used to define NL80211_CMD_MAX below */ |
@@ -598,6 +602,10 @@ enum nl80211_commands { | |||
598 | * the survey response for %NL80211_CMD_GET_SURVEY, nested attribute | 602 | * the survey response for %NL80211_CMD_GET_SURVEY, nested attribute |
599 | * containing info as possible, see &enum survey_info. | 603 | * containing info as possible, see &enum survey_info. |
600 | * | 604 | * |
605 | * @NL80211_ATTR_PMKID: PMK material for PMKSA caching. | ||
606 | * @NL80211_ATTR_MAX_NUM_PMKIDS: maximum number of PMKIDs a firmware can | ||
607 | * cache, a wiphy attribute. | ||
608 | * | ||
601 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 609 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
602 | * @__NL80211_ATTR_AFTER_LAST: internal use | 610 | * @__NL80211_ATTR_AFTER_LAST: internal use |
603 | */ | 611 | */ |
@@ -732,6 +740,9 @@ enum nl80211_attrs { | |||
732 | 740 | ||
733 | NL80211_ATTR_SURVEY_INFO, | 741 | NL80211_ATTR_SURVEY_INFO, |
734 | 742 | ||
743 | NL80211_ATTR_PMKID, | ||
744 | NL80211_ATTR_MAX_NUM_PMKIDS, | ||
745 | |||
735 | /* add attributes here, update the policy in nl80211.c */ | 746 | /* add attributes here, update the policy in nl80211.c */ |
736 | 747 | ||
737 | __NL80211_ATTR_AFTER_LAST, | 748 | __NL80211_ATTR_AFTER_LAST, |
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index a6492e9bca97..0884b9a0f778 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -871,6 +871,19 @@ struct cfg80211_bitrate_mask { | |||
871 | u32 fixed; /* fixed bitrate, 0 == not fixed */ | 871 | u32 fixed; /* fixed bitrate, 0 == not fixed */ |
872 | u32 maxrate; /* in kbps, 0 == no limit */ | 872 | u32 maxrate; /* in kbps, 0 == no limit */ |
873 | }; | 873 | }; |
874 | /** | ||
875 | * struct cfg80211_pmksa - PMK Security Association | ||
876 | * | ||
877 | * This structure is passed to the set/del_pmksa() method for PMKSA | ||
878 | * caching. | ||
879 | * | ||
880 | * @bssid: The AP's BSSID. | ||
881 | * @pmkid: The PMK material itself. | ||
882 | */ | ||
883 | struct cfg80211_pmksa { | ||
884 | u8 *bssid; | ||
885 | u8 *pmkid; | ||
886 | }; | ||
874 | 887 | ||
875 | /** | 888 | /** |
876 | * struct cfg80211_ops - backend description for wireless configuration | 889 | * struct cfg80211_ops - backend description for wireless configuration |
@@ -976,6 +989,13 @@ struct cfg80211_bitrate_mask { | |||
976 | * @dump_survey: get site survey information. | 989 | * @dump_survey: get site survey information. |
977 | * | 990 | * |
978 | * @testmode_cmd: run a test mode command | 991 | * @testmode_cmd: run a test mode command |
992 | * | ||
993 | * @set_pmksa: Cache a PMKID for a BSSID. This is mostly useful for fullmac | ||
994 | * devices running firmwares capable of generating the (re) association | ||
995 | * RSN IE. It allows for faster roaming between WPA2 BSSIDs. | ||
996 | * @del_pmksa: Delete a cached PMKID. | ||
997 | * @flush_pmksa: Flush all cached PMKIDs. | ||
998 | * | ||
979 | */ | 999 | */ |
980 | struct cfg80211_ops { | 1000 | struct cfg80211_ops { |
981 | int (*suspend)(struct wiphy *wiphy); | 1001 | int (*suspend)(struct wiphy *wiphy); |
@@ -1097,6 +1117,12 @@ struct cfg80211_ops { | |||
1097 | int (*dump_survey)(struct wiphy *wiphy, struct net_device *netdev, | 1117 | int (*dump_survey)(struct wiphy *wiphy, struct net_device *netdev, |
1098 | int idx, struct survey_info *info); | 1118 | int idx, struct survey_info *info); |
1099 | 1119 | ||
1120 | int (*set_pmksa)(struct wiphy *wiphy, struct net_device *netdev, | ||
1121 | struct cfg80211_pmksa *pmksa); | ||
1122 | int (*del_pmksa)(struct wiphy *wiphy, struct net_device *netdev, | ||
1123 | struct cfg80211_pmksa *pmksa); | ||
1124 | int (*flush_pmksa)(struct wiphy *wiphy, struct net_device *netdev); | ||
1125 | |||
1100 | /* some temporary stuff to finish wext */ | 1126 | /* some temporary stuff to finish wext */ |
1101 | int (*set_power_mgmt)(struct wiphy *wiphy, struct net_device *dev, | 1127 | int (*set_power_mgmt)(struct wiphy *wiphy, struct net_device *dev, |
1102 | bool enabled, int timeout); | 1128 | bool enabled, int timeout); |
@@ -1195,6 +1221,8 @@ struct wiphy { | |||
1195 | char fw_version[ETHTOOL_BUSINFO_LEN]; | 1221 | char fw_version[ETHTOOL_BUSINFO_LEN]; |
1196 | u32 hw_version; | 1222 | u32 hw_version; |
1197 | 1223 | ||
1224 | u8 max_num_pmkids; | ||
1225 | |||
1198 | /* If multiple wiphys are registered and you're handed e.g. | 1226 | /* If multiple wiphys are registered and you're handed e.g. |
1199 | * a regular netdev with assigned ieee80211_ptr, you won't | 1227 | * a regular netdev with assigned ieee80211_ptr, you won't |
1200 | * know whether it points to a wiphy your driver has registered | 1228 | * know whether it points to a wiphy your driver has registered |