diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/nl80211.h | 46 | ||||
-rw-r--r-- | include/net/cfg80211.h | 19 |
2 files changed, 65 insertions, 0 deletions
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h index 28ba20fda3e2..89947597b9ce 100644 --- a/include/linux/nl80211.h +++ b/include/linux/nl80211.h | |||
@@ -323,6 +323,12 @@ | |||
323 | * the TX command and %NL80211_ATTR_FRAME includes the contents of the | 323 | * the TX command and %NL80211_ATTR_FRAME includes the contents of the |
324 | * frame. %NL80211_ATTR_ACK flag is included if the recipient acknowledged | 324 | * frame. %NL80211_ATTR_ACK flag is included if the recipient acknowledged |
325 | * the frame. | 325 | * the frame. |
326 | * @NL80211_CMD_SET_CQM: Connection quality monitor configuration. This command | ||
327 | * is used to configure connection quality monitoring notification trigger | ||
328 | * levels. | ||
329 | * @NL80211_CMD_NOTIFY_CQM: Connection quality monitor notification. This | ||
330 | * command is used as an event to indicate the that a trigger level was | ||
331 | * reached. | ||
326 | * | 332 | * |
327 | * @NL80211_CMD_MAX: highest used command number | 333 | * @NL80211_CMD_MAX: highest used command number |
328 | * @__NL80211_CMD_AFTER_LAST: internal use | 334 | * @__NL80211_CMD_AFTER_LAST: internal use |
@@ -419,6 +425,9 @@ enum nl80211_commands { | |||
419 | NL80211_CMD_SET_POWER_SAVE, | 425 | NL80211_CMD_SET_POWER_SAVE, |
420 | NL80211_CMD_GET_POWER_SAVE, | 426 | NL80211_CMD_GET_POWER_SAVE, |
421 | 427 | ||
428 | NL80211_CMD_SET_CQM, | ||
429 | NL80211_CMD_NOTIFY_CQM, | ||
430 | |||
422 | /* add new commands above here */ | 431 | /* add new commands above here */ |
423 | 432 | ||
424 | /* used to define NL80211_CMD_MAX below */ | 433 | /* used to define NL80211_CMD_MAX below */ |
@@ -691,6 +700,9 @@ enum nl80211_commands { | |||
691 | * @NL80211_ATTR_ACK: Flag attribute indicating that the frame was | 700 | * @NL80211_ATTR_ACK: Flag attribute indicating that the frame was |
692 | * acknowledged by the recipient. | 701 | * acknowledged by the recipient. |
693 | * | 702 | * |
703 | * @NL80211_ATTR_CQM: connection quality monitor configuration in a | ||
704 | * nested attribute with %NL80211_ATTR_CQM_* sub-attributes. | ||
705 | * | ||
694 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 706 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
695 | * @__NL80211_ATTR_AFTER_LAST: internal use | 707 | * @__NL80211_ATTR_AFTER_LAST: internal use |
696 | */ | 708 | */ |
@@ -842,6 +854,8 @@ enum nl80211_attrs { | |||
842 | 854 | ||
843 | NL80211_ATTR_PS_STATE, | 855 | NL80211_ATTR_PS_STATE, |
844 | 856 | ||
857 | NL80211_ATTR_CQM, | ||
858 | |||
845 | /* add attributes here, update the policy in nl80211.c */ | 859 | /* add attributes here, update the policy in nl80211.c */ |
846 | 860 | ||
847 | __NL80211_ATTR_AFTER_LAST, | 861 | __NL80211_ATTR_AFTER_LAST, |
@@ -1583,4 +1597,36 @@ enum nl80211_ps_state { | |||
1583 | NL80211_PS_ENABLED, | 1597 | NL80211_PS_ENABLED, |
1584 | }; | 1598 | }; |
1585 | 1599 | ||
1600 | /** | ||
1601 | * enum nl80211_attr_cqm - connection quality monitor attributes | ||
1602 | * @__NL80211_ATTR_CQM_INVALID: invalid | ||
1603 | * @NL80211_ATTR_CQM_RSSI_THOLD: RSSI threshold in dBm (zero to disable) | ||
1604 | * @NL80211_ATTR_CQM_RSSI_HYST: RSSI hysteresis in dBm | ||
1605 | * @NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT: RSSI threshold event | ||
1606 | * @__NL80211_ATTR_CQM_AFTER_LAST: internal | ||
1607 | * @NL80211_ATTR_CQM_MAX: highest key attribute | ||
1608 | */ | ||
1609 | enum nl80211_attr_cqm { | ||
1610 | __NL80211_ATTR_CQM_INVALID, | ||
1611 | NL80211_ATTR_CQM_RSSI_THOLD, | ||
1612 | NL80211_ATTR_CQM_RSSI_HYST, | ||
1613 | NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT, | ||
1614 | |||
1615 | /* keep last */ | ||
1616 | __NL80211_ATTR_CQM_AFTER_LAST, | ||
1617 | NL80211_ATTR_CQM_MAX = __NL80211_ATTR_CQM_AFTER_LAST - 1 | ||
1618 | }; | ||
1619 | |||
1620 | /** | ||
1621 | * enum nl80211_cqm_rssi_threshold_event - RSSI threshold event | ||
1622 | * @NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW - The RSSI level is lower than the | ||
1623 | * configured threshold | ||
1624 | * @NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH - The RSSI is higher than the | ||
1625 | * configured threshold | ||
1626 | */ | ||
1627 | enum nl80211_cqm_rssi_threshold_event { | ||
1628 | NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW, | ||
1629 | NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH, | ||
1630 | }; | ||
1631 | |||
1586 | #endif /* __LINUX_NL80211_H */ | 1632 | #endif /* __LINUX_NL80211_H */ |
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 */ |