diff options
Diffstat (limited to 'include/net/cfg80211.h')
-rw-r--r-- | include/net/cfg80211.h | 47 |
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 | */ |
515 | struct bss_parameters { | 516 | struct 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 | ||
523 | struct mesh_config { | 525 | struct 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 | */ |
708 | struct cfg80211_auth_request { | 714 | struct 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 | */ |
748 | struct cfg80211_deauth_request { | 757 | struct 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 | */ |
766 | struct cfg80211_disassoc_request { | 778 | struct 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 | */ |
1012 | struct cfg80211_ops { | 1032 | struct 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, | |||
2337 | void cfg80211_action_tx_status(struct net_device *dev, u64 cookie, | 2364 | void 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 | */ | ||
2377 | void 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 */ |