Message ID | 1516279208-16485-1-git-send-email-vnaralas@codeaurora.org (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Johannes Berg |
Headers | show |
On Thu, 2018-01-18 at 18:10 +0530, Venkateswara Naralasetty wrote: > From: Bhagavathi Perumal S <bperumal@codeaurora.org> > > This patch provides support for users to get ack signal > strength of last transmitted by introducing new attribute > 'NL80211_STA_INFO_ACK_SIGNAL'. No real objection to the patch itself, but you should say *why* you need this, and I'm not really sure I see much point in having the signal strength of the very last ACK frame? At least provide reasoning so other drivers can decide whether to implement it or not. > + * @NL80211_STA_INFO_ACK_SIGNAL: signal strength of the last ACK frame(u8, dBm) more like s8, really. johannes
On 2018-01-22 17:52, Johannes Berg wrote: > On Thu, 2018-01-18 at 18:10 +0530, Venkateswara Naralasetty wrote: >> From: Bhagavathi Perumal S <bperumal@codeaurora.org> >> >> This patch provides support for users to get ack signal >> strength of last transmitted by introducing new attribute >> 'NL80211_STA_INFO_ACK_SIGNAL'. > > No real objection to the patch itself, but you should say *why* you > need this, and I'm not really sure I see much point in having the > signal strength of the very last ACK frame? If user wants to get instant RSSI for the station which is ideal for long time, user can sent null frame and get RSSI form the ack of that null frame. > > At least provide reasoning so other drivers can decide whether to > implement it or not. > >> + * @NL80211_STA_INFO_ACK_SIGNAL: signal strength of the last ACK >> frame(u8, dBm) > > more like s8, really. I have taken reference from 'NL80211_STA_INFO_SIGNAL_AVG'.
On Wed, 2018-01-24 at 16:57 +0530, vnaralas@codeaurora.org wrote: > > If user wants to get instant RSSI for the station which is ideal for > long time, user can sent null frame and get RSSI form the ack of that > null frame. Then we really should make that part of the NL80211_CMD_PROBE_CLIENT response, no? johannes
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 3a4a1a9..1236bea 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h @@ -1145,6 +1145,7 @@ struct cfg80211_tid_stats { * @rx_duration: aggregate PPDU duration(usecs) for all the frames from a peer * @pertid: per-TID statistics, see &struct cfg80211_tid_stats, using the last * (IEEE80211_NUM_TIDS) index for MSDUs not encapsulated in QoS-MPDUs. + * @ack_signal: signal strength (in dBm) of the last ACK frame. */ struct station_info { u64 filled; @@ -1189,6 +1190,7 @@ struct station_info { u64 rx_duration; u8 rx_beacon_signal_avg; struct cfg80211_tid_stats pertid[IEEE80211_NUM_TIDS + 1]; + s8 ack_signal; }; #if IS_ENABLED(CONFIG_CFG80211) diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h index c587a61..5a1568d 100644 --- a/include/uapi/linux/nl80211.h +++ b/include/uapi/linux/nl80211.h @@ -2899,6 +2899,7 @@ enum nl80211_sta_bss_param { * @NL80211_STA_INFO_RX_DURATION: aggregate PPDU duration for all frames * received from the station (u64, usec) * @NL80211_STA_INFO_PAD: attribute used for padding for 64-bit alignment + * @NL80211_STA_INFO_ACK_SIGNAL: signal strength of the last ACK frame(u8, dBm) * @__NL80211_STA_INFO_AFTER_LAST: internal * @NL80211_STA_INFO_MAX: highest possible station info attribute */ @@ -2937,6 +2938,7 @@ enum nl80211_sta_info { NL80211_STA_INFO_TID_STATS, NL80211_STA_INFO_RX_DURATION, NL80211_STA_INFO_PAD, + NL80211_STA_INFO_ACK_SIGNAL, /* keep last */ __NL80211_STA_INFO_AFTER_LAST, diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index b3f8970..94c623e 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -4479,6 +4479,7 @@ static int nl80211_send_station(struct sk_buff *msg, u32 cmd, u32 portid, PUT_SINFO_U64(RX_DROP_MISC, rx_dropped_misc); PUT_SINFO_U64(BEACON_RX, rx_beacon); PUT_SINFO(BEACON_SIGNAL_AVG, rx_beacon_signal_avg, u8); + PUT_SINFO(ACK_SIGNAL, ack_signal, u8); #undef PUT_SINFO #undef PUT_SINFO_U64