From: Bhagavathi Perumal S <[email protected]>
This patch provides support for users to get ack signal
strength of last transmitted by introducing new attribute
'NL80211_STA_INFO_ACK_SIGNAL'.
Signed-off-by: Bhagavathi Perumal S <[email protected]>
Signed-off-by: Venkateswara Naralasetty <[email protected]>
---
include/net/cfg80211.h | 2 ++
include/uapi/linux/nl80211.h | 2 ++
net/wireless/nl80211.c | 1 +
3 files changed, 5 insertions(+)
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
--
2.7.4
On Thu, 2018-01-18 at 18:10 +0530, Venkateswara Naralasetty wrote:
> From: Bhagavathi Perumal S <[email protected]>
>
> 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 <[email protected]>
>>
>> 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, [email protected] 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