aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/cfg80211.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/cfg80211.h')
-rw-r--r--include/net/cfg80211.h47
1 files changed, 44 insertions, 3 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 3d134a1fb96b..b44a2e5321a3 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -511,6 +511,7 @@ struct mpath_info {
511 * @basic_rates: basic rates in IEEE 802.11 format 511 * @basic_rates: basic rates in IEEE 802.11 format
512 * (or NULL for no change) 512 * (or NULL for no change)
513 * @basic_rates_len: number of basic rates 513 * @basic_rates_len: number of basic rates
514 * @ap_isolate: do not forward packets between connected stations
514 */ 515 */
515struct bss_parameters { 516struct bss_parameters {
516 int use_cts_prot; 517 int use_cts_prot;
@@ -518,6 +519,7 @@ struct bss_parameters {
518 int use_short_slot_time; 519 int use_short_slot_time;
519 u8 *basic_rates; 520 u8 *basic_rates;
520 u8 basic_rates_len; 521 u8 basic_rates_len;
522 int ap_isolate;
521}; 523};
522 524
523struct mesh_config { 525struct mesh_config {
@@ -704,6 +706,10 @@ struct cfg80211_crypto_settings {
704 * @key_len: length of WEP key for shared key authentication 706 * @key_len: length of WEP key for shared key authentication
705 * @key_idx: index of WEP key for shared key authentication 707 * @key_idx: index of WEP key for shared key authentication
706 * @key: WEP key for shared key authentication 708 * @key: WEP key for shared key authentication
709 * @local_state_change: This is a request for a local state only, i.e., no
710 * Authentication frame is to be transmitted and authentication state is
711 * to be changed without having to wait for a response from the peer STA
712 * (AP).
707 */ 713 */
708struct cfg80211_auth_request { 714struct cfg80211_auth_request {
709 struct cfg80211_bss *bss; 715 struct cfg80211_bss *bss;
@@ -712,6 +718,7 @@ struct cfg80211_auth_request {
712 enum nl80211_auth_type auth_type; 718 enum nl80211_auth_type auth_type;
713 const u8 *key; 719 const u8 *key;
714 u8 key_len, key_idx; 720 u8 key_len, key_idx;
721 bool local_state_change;
715}; 722};
716 723
717/** 724/**
@@ -744,12 +751,15 @@ struct cfg80211_assoc_request {
744 * @ie: Extra IEs to add to Deauthentication frame or %NULL 751 * @ie: Extra IEs to add to Deauthentication frame or %NULL
745 * @ie_len: Length of ie buffer in octets 752 * @ie_len: Length of ie buffer in octets
746 * @reason_code: The reason code for the deauthentication 753 * @reason_code: The reason code for the deauthentication
754 * @local_state_change: This is a request for a local state only, i.e., no
755 * Deauthentication frame is to be transmitted.
747 */ 756 */
748struct cfg80211_deauth_request { 757struct cfg80211_deauth_request {
749 struct cfg80211_bss *bss; 758 struct cfg80211_bss *bss;
750 const u8 *ie; 759 const u8 *ie;
751 size_t ie_len; 760 size_t ie_len;
752 u16 reason_code; 761 u16 reason_code;
762 bool local_state_change;
753}; 763};
754 764
755/** 765/**
@@ -762,12 +772,15 @@ struct cfg80211_deauth_request {
762 * @ie: Extra IEs to add to Disassociation frame or %NULL 772 * @ie: Extra IEs to add to Disassociation frame or %NULL
763 * @ie_len: Length of ie buffer in octets 773 * @ie_len: Length of ie buffer in octets
764 * @reason_code: The reason code for the disassociation 774 * @reason_code: The reason code for the disassociation
775 * @local_state_change: This is a request for a local state only, i.e., no
776 * Disassociation frame is to be transmitted.
765 */ 777 */
766struct cfg80211_disassoc_request { 778struct cfg80211_disassoc_request {
767 struct cfg80211_bss *bss; 779 struct cfg80211_bss *bss;
768 const u8 *ie; 780 const u8 *ie;
769 size_t ie_len; 781 size_t ie_len;
770 u16 reason_code; 782 u16 reason_code;
783 bool local_state_change;
771}; 784};
772 785
773/** 786/**
@@ -953,7 +966,11 @@ struct cfg80211_pmksa {
953 * 966 *
954 * @set_txq_params: Set TX queue parameters 967 * @set_txq_params: Set TX queue parameters
955 * 968 *
956 * @set_channel: Set channel 969 * @set_channel: Set channel for a given wireless interface. Some devices
970 * may support multi-channel operation (by channel hopping) so cfg80211
971 * doesn't verify much. Note, however, that the passed netdev may be
972 * %NULL as well if the user requested changing the channel for the
973 * device itself, or for a monitor interface.
957 * 974 *
958 * @scan: Request to do a scan. If returning zero, the scan request is given 975 * @scan: Request to do a scan. If returning zero, the scan request is given
959 * the driver, and will be valid until passed to cfg80211_scan_done(). 976 * the driver, and will be valid until passed to cfg80211_scan_done().
@@ -1007,6 +1024,9 @@ struct cfg80211_pmksa {
1007 * RSN IE. It allows for faster roaming between WPA2 BSSIDs. 1024 * RSN IE. It allows for faster roaming between WPA2 BSSIDs.
1008 * @del_pmksa: Delete a cached PMKID. 1025 * @del_pmksa: Delete a cached PMKID.
1009 * @flush_pmksa: Flush all cached PMKIDs. 1026 * @flush_pmksa: Flush all cached PMKIDs.
1027 * @set_power_mgmt: Configure WLAN power management. A timeout value of -1
1028 * allows the driver to adjust the dynamic ps timeout value.
1029 * @set_cqm_rssi_config: Configure connection quality monitor RSSI threshold.
1010 * 1030 *
1011 */ 1031 */
1012struct cfg80211_ops { 1032struct cfg80211_ops {
@@ -1079,7 +1099,7 @@ struct cfg80211_ops {
1079 int (*set_txq_params)(struct wiphy *wiphy, 1099 int (*set_txq_params)(struct wiphy *wiphy,
1080 struct ieee80211_txq_params *params); 1100 struct ieee80211_txq_params *params);
1081 1101
1082 int (*set_channel)(struct wiphy *wiphy, 1102 int (*set_channel)(struct wiphy *wiphy, struct net_device *dev,
1083 struct ieee80211_channel *chan, 1103 struct ieee80211_channel *chan,
1084 enum nl80211_channel_type channel_type); 1104 enum nl80211_channel_type channel_type);
1085 1105
@@ -1152,6 +1172,10 @@ struct cfg80211_ops {
1152 1172
1153 int (*set_power_mgmt)(struct wiphy *wiphy, struct net_device *dev, 1173 int (*set_power_mgmt)(struct wiphy *wiphy, struct net_device *dev,
1154 bool enabled, int timeout); 1174 bool enabled, int timeout);
1175
1176 int (*set_cqm_rssi_config)(struct wiphy *wiphy,
1177 struct net_device *dev,
1178 s32 rssi_thold, u32 rssi_hyst);
1155}; 1179};
1156 1180
1157/* 1181/*
@@ -1441,6 +1465,8 @@ struct cfg80211_cached_keys;
1441 * @list: (private) Used to collect the interfaces 1465 * @list: (private) Used to collect the interfaces
1442 * @netdev: (private) Used to reference back to the netdev 1466 * @netdev: (private) Used to reference back to the netdev
1443 * @current_bss: (private) Used by the internal configuration code 1467 * @current_bss: (private) Used by the internal configuration code
1468 * @channel: (private) Used by the internal configuration code to track
1469 * user-set AP, monitor and WDS channels for wireless extensions
1444 * @bssid: (private) Used by the internal configuration code 1470 * @bssid: (private) Used by the internal configuration code
1445 * @ssid: (private) Used by the internal configuration code 1471 * @ssid: (private) Used by the internal configuration code
1446 * @ssid_len: (private) Used by the internal configuration code 1472 * @ssid_len: (private) Used by the internal configuration code
@@ -1487,6 +1513,7 @@ struct wireless_dev {
1487 struct cfg80211_internal_bss *authtry_bsses[MAX_AUTH_BSSES]; 1513 struct cfg80211_internal_bss *authtry_bsses[MAX_AUTH_BSSES];
1488 struct cfg80211_internal_bss *auth_bsses[MAX_AUTH_BSSES]; 1514 struct cfg80211_internal_bss *auth_bsses[MAX_AUTH_BSSES];
1489 struct cfg80211_internal_bss *current_bss; /* associated / joined */ 1515 struct cfg80211_internal_bss *current_bss; /* associated / joined */
1516 struct ieee80211_channel *channel;
1490 1517
1491 bool ps; 1518 bool ps;
1492 int ps_timeout; 1519 int ps_timeout;
@@ -1627,7 +1654,7 @@ struct ieee80211_radiotap_iterator {
1627 const struct ieee80211_radiotap_namespace *current_namespace; 1654 const struct ieee80211_radiotap_namespace *current_namespace;
1628 1655
1629 unsigned char *_arg, *_next_ns_data; 1656 unsigned char *_arg, *_next_ns_data;
1630 uint32_t *_next_bitmap; 1657 __le32 *_next_bitmap;
1631 1658
1632 unsigned char *this_arg; 1659 unsigned char *this_arg;
1633 int this_arg_index; 1660 int this_arg_index;
@@ -2337,4 +2364,18 @@ bool cfg80211_rx_action(struct net_device *dev, int freq, const u8 *buf,
2337void cfg80211_action_tx_status(struct net_device *dev, u64 cookie, 2364void cfg80211_action_tx_status(struct net_device *dev, u64 cookie,
2338 const u8 *buf, size_t len, bool ack, gfp_t gfp); 2365 const u8 *buf, size_t len, bool ack, gfp_t gfp);
2339 2366
2367
2368/**
2369 * cfg80211_cqm_rssi_notify - connection quality monitoring rssi event
2370 * @dev: network device
2371 * @rssi_event: the triggered RSSI event
2372 * @gfp: context flags
2373 *
2374 * This function is called when a configured connection quality monitoring
2375 * rssi threshold reached event occurs.
2376 */
2377void cfg80211_cqm_rssi_notify(struct net_device *dev,
2378 enum nl80211_cqm_rssi_threshold_event rssi_event,
2379 gfp_t gfp);
2380
2340#endif /* __NET_CFG80211_H */ 2381#endif /* __NET_CFG80211_H */