diff options
author | Juuso Oikarinen <juuso.oikarinen@nokia.com> | 2010-03-23 03:02:33 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-03-24 16:02:37 -0400 |
commit | d6dc1a386358979e12366d1f35eeb68fc181e101 (patch) | |
tree | 4b65ba21328d6984d008b62795dd60d99c350632 /include/net/cfg80211.h | |
parent | 921ca03c8f8e982f27fc406bc301caf2196b99f7 (diff) |
cfg80211: Add connection quality monitoring support to nl80211
Add support for basic configuration of a connection quality monitoring to the
nl80211 interface, and basic support for notifying about triggered monitoring
events.
Via this interface a user-space connection manager may configure and receive
pre-warning events of deteriorating WLAN connection quality, and start
preparing for roaming in advance, before the connection is already lost.
An example usage of such a trigger is starting scanning for nearby AP's in
an attempt to find one with better connection quality, and associate to it
before the connection characteristics of the existing connection become too bad
or the association is even lost, leading in a prolonged delay in connectivity.
The interface currently supports only RSSI, but it could be later extended
to include other parameters, such as signal-to-noise ratio, if need for that
arises.
Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/net/cfg80211.h')
-rw-r--r-- | include/net/cfg80211.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 3d134a1fb96b..868cfd3b9724 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
@@ -1007,6 +1007,7 @@ struct cfg80211_pmksa { | |||
1007 | * RSN IE. It allows for faster roaming between WPA2 BSSIDs. | 1007 | * RSN IE. It allows for faster roaming between WPA2 BSSIDs. |
1008 | * @del_pmksa: Delete a cached PMKID. | 1008 | * @del_pmksa: Delete a cached PMKID. |
1009 | * @flush_pmksa: Flush all cached PMKIDs. | 1009 | * @flush_pmksa: Flush all cached PMKIDs. |
1010 | * @set_cqm_rssi_config: Configure connection quality monitor RSSI threshold. | ||
1010 | * | 1011 | * |
1011 | */ | 1012 | */ |
1012 | struct cfg80211_ops { | 1013 | struct cfg80211_ops { |
@@ -1152,6 +1153,10 @@ struct cfg80211_ops { | |||
1152 | 1153 | ||
1153 | int (*set_power_mgmt)(struct wiphy *wiphy, struct net_device *dev, | 1154 | int (*set_power_mgmt)(struct wiphy *wiphy, struct net_device *dev, |
1154 | bool enabled, int timeout); | 1155 | bool enabled, int timeout); |
1156 | |||
1157 | int (*set_cqm_rssi_config)(struct wiphy *wiphy, | ||
1158 | struct net_device *dev, | ||
1159 | s32 rssi_thold, u32 rssi_hyst); | ||
1155 | }; | 1160 | }; |
1156 | 1161 | ||
1157 | /* | 1162 | /* |
@@ -2337,4 +2342,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, | 2342 | void cfg80211_action_tx_status(struct net_device *dev, u64 cookie, |
2338 | const u8 *buf, size_t len, bool ack, gfp_t gfp); | 2343 | const u8 *buf, size_t len, bool ack, gfp_t gfp); |
2339 | 2344 | ||
2345 | |||
2346 | /** | ||
2347 | * cfg80211_cqm_rssi_notify - connection quality monitoring rssi event | ||
2348 | * @dev: network device | ||
2349 | * @rssi_event: the triggered RSSI event | ||
2350 | * @gfp: context flags | ||
2351 | * | ||
2352 | * This function is called when a configured connection quality monitoring | ||
2353 | * rssi threshold reached event occurs. | ||
2354 | */ | ||
2355 | void cfg80211_cqm_rssi_notify(struct net_device *dev, | ||
2356 | enum nl80211_cqm_rssi_threshold_event rssi_event, | ||
2357 | gfp_t gfp); | ||
2358 | |||
2340 | #endif /* __NET_CFG80211_H */ | 2359 | #endif /* __NET_CFG80211_H */ |