Add support to count station level rx retries. It denotes the number of data frames(MPDUs) with rx retry bit set. The rx retry stats helps in understanding the medium during UL transmission. Signed-off-by: Hari Chandrakanthan <quic_haric@xxxxxxxxxxx> --- include/net/cfg80211.h | 2 ++ include/uapi/linux/nl80211.h | 3 +++ net/wireless/nl80211.c | 1 + 3 files changed, 6 insertions(+) diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index b137a33a1b68..0623942b1f09 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h @@ -1995,6 +1995,7 @@ struct cfg80211_tid_stats { * @rxrate: current unicast bitrate to this station * @rx_packets: packets (MSDUs & MMPDUs) received from this station * @tx_packets: packets (MSDUs & MMPDUs) transmitted to this station + * @rx_retries: number of rx packets(MPDUs) from this station with retry bit set. * @tx_retries: cumulative retry counts (MPDUs) * @tx_failed: number of failed transmissions (MPDUs) (retries exceeded, no ACK) * @rx_dropped_misc: Dropped for un-specified reason. @@ -2075,6 +2076,7 @@ struct station_info { struct rate_info rxrate; u32 rx_packets; u32 tx_packets; + u32 rx_retries; u32 tx_retries; u32 tx_failed; u32 rx_dropped_misc; diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h index dced2c49daec..5eee77409f00 100644 --- a/include/uapi/linux/nl80211.h +++ b/include/uapi/linux/nl80211.h @@ -3846,6 +3846,8 @@ enum nl80211_sta_bss_param { * of STA's association * @NL80211_STA_INFO_CONNECTED_TO_AS: set to true if STA has a path to a * authentication server (u8, 0 or 1) + * @NL80211_STA_INFO_RX_RETRIES: number of rx packets(MPDUs) from this station + * with retry bit set (u32) * @__NL80211_STA_INFO_AFTER_LAST: internal * @NL80211_STA_INFO_MAX: highest possible station info attribute */ @@ -3894,6 +3896,7 @@ enum nl80211_sta_info { NL80211_STA_INFO_AIRTIME_LINK_METRIC, NL80211_STA_INFO_ASSOC_AT_BOOTTIME, NL80211_STA_INFO_CONNECTED_TO_AS, + NL80211_STA_INFO_RX_RETRIES, /* keep last */ __NL80211_STA_INFO_AFTER_LAST, diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c index 569234bc2be6..4aca00520bff 100644 --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c @@ -6613,6 +6613,7 @@ static int nl80211_send_station(struct sk_buff *msg, u32 cmd, u32 portid, PUT_SINFO(RX_PACKETS, rx_packets, u32); PUT_SINFO(TX_PACKETS, tx_packets, u32); + PUT_SINFO(RX_RETRIES, rx_retries, u32); PUT_SINFO(TX_RETRIES, tx_retries, u32); PUT_SINFO(TX_FAILED, tx_failed, u32); PUT_SINFO(EXPECTED_THROUGHPUT, expected_throughput, u32); -- 2.34.1