diff options
| author | Johannes Berg <johannes.berg@intel.com> | 2012-03-05 16:18:41 -0500 |
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2012-03-06 15:16:05 -0500 |
| commit | 804483e90794256f9ed53e795ffbf1e94de237c8 (patch) | |
| tree | 22a4d8ade674bb42aaf4d3e878dfd6a73b618dcc /include | |
| parent | 769009b89d8c29c410a99eee3cd63764b1fff869 (diff) | |
cfg80211/mac80211: report signal strength for mgmt frames
Add the signal strength (in dBm only for now) to
frames that are received via nl80211's various
frame APIs.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Acked-by: Kalle Valo <kvalo@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/nl80211.h | 6 | ||||
| -rw-r--r-- | include/net/cfg80211.h | 8 |
2 files changed, 11 insertions, 3 deletions
diff --git a/include/linux/nl80211.h b/include/linux/nl80211.h index 9f46c62b1eee..c37d67add090 100644 --- a/include/linux/nl80211.h +++ b/include/linux/nl80211.h | |||
| @@ -1203,6 +1203,10 @@ enum nl80211_commands { | |||
| 1203 | * the list. This needs to be used when the driver advertises the | 1203 | * the list. This needs to be used when the driver advertises the |
| 1204 | * capability to timeout the stations. | 1204 | * capability to timeout the stations. |
| 1205 | * | 1205 | * |
| 1206 | * @NL80211_ATTR_RX_SIGNAL_DBM: signal strength in dBm (as a 32-bit int); | ||
| 1207 | * this attribute is (depending on the driver capabilities) added to | ||
| 1208 | * received frames indicated with %NL80211_CMD_FRAME. | ||
| 1209 | * | ||
| 1206 | * @NL80211_ATTR_MAX: highest attribute number currently defined | 1210 | * @NL80211_ATTR_MAX: highest attribute number currently defined |
| 1207 | * @__NL80211_ATTR_AFTER_LAST: internal use | 1211 | * @__NL80211_ATTR_AFTER_LAST: internal use |
| 1208 | */ | 1212 | */ |
| @@ -1450,6 +1454,8 @@ enum nl80211_attrs { | |||
| 1450 | 1454 | ||
| 1451 | NL80211_ATTR_INACTIVITY_TIMEOUT, | 1455 | NL80211_ATTR_INACTIVITY_TIMEOUT, |
| 1452 | 1456 | ||
| 1457 | NL80211_ATTR_RX_SIGNAL_DBM, | ||
| 1458 | |||
| 1453 | /* add attributes here, update the policy in nl80211.c */ | 1459 | /* add attributes here, update the policy in nl80211.c */ |
| 1454 | 1460 | ||
| 1455 | __NL80211_ATTR_AFTER_LAST, | 1461 | __NL80211_ATTR_AFTER_LAST, |
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 804805827736..4682c35a92c4 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
| @@ -3189,6 +3189,7 @@ void cfg80211_del_sta(struct net_device *dev, const u8 *mac_addr, gfp_t gfp); | |||
| 3189 | * cfg80211_rx_mgmt - notification of received, unprocessed management frame | 3189 | * cfg80211_rx_mgmt - notification of received, unprocessed management frame |
| 3190 | * @dev: network device | 3190 | * @dev: network device |
| 3191 | * @freq: Frequency on which the frame was received in MHz | 3191 | * @freq: Frequency on which the frame was received in MHz |
| 3192 | * @sig_dbm: signal strength in mBm, or 0 if unknown | ||
| 3192 | * @buf: Management frame (header + body) | 3193 | * @buf: Management frame (header + body) |
| 3193 | * @len: length of the frame data | 3194 | * @len: length of the frame data |
| 3194 | * @gfp: context flags | 3195 | * @gfp: context flags |
| @@ -3201,8 +3202,8 @@ void cfg80211_del_sta(struct net_device *dev, const u8 *mac_addr, gfp_t gfp); | |||
| 3201 | * This function is called whenever an Action frame is received for a station | 3202 | * This function is called whenever an Action frame is received for a station |
| 3202 | * mode interface, but is not processed in kernel. | 3203 | * mode interface, but is not processed in kernel. |
| 3203 | */ | 3204 | */ |
| 3204 | bool cfg80211_rx_mgmt(struct net_device *dev, int freq, const u8 *buf, | 3205 | bool cfg80211_rx_mgmt(struct net_device *dev, int freq, int sig_dbm, |
| 3205 | size_t len, gfp_t gfp); | 3206 | const u8 *buf, size_t len, gfp_t gfp); |
| 3206 | 3207 | ||
| 3207 | /** | 3208 | /** |
| 3208 | * cfg80211_mgmt_tx_status - notification of TX status for management frame | 3209 | * cfg80211_mgmt_tx_status - notification of TX status for management frame |
| @@ -3315,6 +3316,7 @@ void cfg80211_probe_status(struct net_device *dev, const u8 *addr, | |||
| 3315 | * @frame: the frame | 3316 | * @frame: the frame |
| 3316 | * @len: length of the frame | 3317 | * @len: length of the frame |
| 3317 | * @freq: frequency the frame was received on | 3318 | * @freq: frequency the frame was received on |
| 3319 | * @sig_dbm: signal strength in mBm, or 0 if unknown | ||
| 3318 | * @gfp: allocation flags | 3320 | * @gfp: allocation flags |
| 3319 | * | 3321 | * |
| 3320 | * Use this function to report to userspace when a beacon was | 3322 | * Use this function to report to userspace when a beacon was |
| @@ -3323,7 +3325,7 @@ void cfg80211_probe_status(struct net_device *dev, const u8 *addr, | |||
| 3323 | */ | 3325 | */ |
| 3324 | void cfg80211_report_obss_beacon(struct wiphy *wiphy, | 3326 | void cfg80211_report_obss_beacon(struct wiphy *wiphy, |
| 3325 | const u8 *frame, size_t len, | 3327 | const u8 *frame, size_t len, |
| 3326 | int freq, gfp_t gfp); | 3328 | int freq, int sig_dbm, gfp_t gfp); |
| 3327 | 3329 | ||
| 3328 | /* | 3330 | /* |
| 3329 | * cfg80211_can_beacon_sec_chan - test if ht40 on extension channel can be used | 3331 | * cfg80211_can_beacon_sec_chan - test if ht40 on extension channel can be used |
