forked from Minki/linux
cfg80211: Support assoc-at timer in sta-info
Report timestamp of when sta became associated. This is the boottime clock, units are nano-seconds. Signed-off-by: Ben Greear <greearb@candelatech.com> Link: https://lore.kernel.org/r/20190809180001.26393-1-greearb@candelatech.com Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
62524a5857
commit
6c7a00339e
@ -1330,6 +1330,7 @@ struct cfg80211_tid_stats {
|
|||||||
* indicate the relevant values in this struct for them
|
* indicate the relevant values in this struct for them
|
||||||
* @connected_time: time(in secs) since a station is last connected
|
* @connected_time: time(in secs) since a station is last connected
|
||||||
* @inactive_time: time since last station activity (tx/rx) in milliseconds
|
* @inactive_time: time since last station activity (tx/rx) in milliseconds
|
||||||
|
* @assoc_at: bootime (ns) of the last association
|
||||||
* @rx_bytes: bytes (size of MPDUs) received from this station
|
* @rx_bytes: bytes (size of MPDUs) received from this station
|
||||||
* @tx_bytes: bytes (size of MPDUs) transmitted to this station
|
* @tx_bytes: bytes (size of MPDUs) transmitted to this station
|
||||||
* @llid: mesh local link id
|
* @llid: mesh local link id
|
||||||
@ -1390,6 +1391,7 @@ struct station_info {
|
|||||||
u64 filled;
|
u64 filled;
|
||||||
u32 connected_time;
|
u32 connected_time;
|
||||||
u32 inactive_time;
|
u32 inactive_time;
|
||||||
|
u64 assoc_at;
|
||||||
u64 rx_bytes;
|
u64 rx_bytes;
|
||||||
u64 tx_bytes;
|
u64 tx_bytes;
|
||||||
u16 llid;
|
u16 llid;
|
||||||
|
@ -3201,6 +3201,8 @@ enum nl80211_sta_bss_param {
|
|||||||
* sent to the station (u64, usec)
|
* sent to the station (u64, usec)
|
||||||
* @NL80211_STA_INFO_AIRTIME_WEIGHT: current airtime weight for station (u16)
|
* @NL80211_STA_INFO_AIRTIME_WEIGHT: current airtime weight for station (u16)
|
||||||
* @NL80211_STA_INFO_AIRTIME_LINK_METRIC: airtime link metric for mesh station
|
* @NL80211_STA_INFO_AIRTIME_LINK_METRIC: airtime link metric for mesh station
|
||||||
|
* @NL80211_STA_INFO_ASSOC_AT_BOOTTIME: Timestamp (CLOCK_BOOTTIME, nanoseconds)
|
||||||
|
* of STA's association
|
||||||
* @__NL80211_STA_INFO_AFTER_LAST: internal
|
* @__NL80211_STA_INFO_AFTER_LAST: internal
|
||||||
* @NL80211_STA_INFO_MAX: highest possible station info attribute
|
* @NL80211_STA_INFO_MAX: highest possible station info attribute
|
||||||
*/
|
*/
|
||||||
@ -3247,6 +3249,7 @@ enum nl80211_sta_info {
|
|||||||
NL80211_STA_INFO_TX_DURATION,
|
NL80211_STA_INFO_TX_DURATION,
|
||||||
NL80211_STA_INFO_AIRTIME_WEIGHT,
|
NL80211_STA_INFO_AIRTIME_WEIGHT,
|
||||||
NL80211_STA_INFO_AIRTIME_LINK_METRIC,
|
NL80211_STA_INFO_AIRTIME_LINK_METRIC,
|
||||||
|
NL80211_STA_INFO_ASSOC_AT_BOOTTIME,
|
||||||
|
|
||||||
/* keep last */
|
/* keep last */
|
||||||
__NL80211_STA_INFO_AFTER_LAST,
|
__NL80211_STA_INFO_AFTER_LAST,
|
||||||
|
@ -5032,6 +5032,7 @@ static int nl80211_send_station(struct sk_buff *msg, u32 cmd, u32 portid,
|
|||||||
|
|
||||||
PUT_SINFO(CONNECTED_TIME, connected_time, u32);
|
PUT_SINFO(CONNECTED_TIME, connected_time, u32);
|
||||||
PUT_SINFO(INACTIVE_TIME, inactive_time, u32);
|
PUT_SINFO(INACTIVE_TIME, inactive_time, u32);
|
||||||
|
PUT_SINFO_U64(ASSOC_AT_BOOTTIME, assoc_at);
|
||||||
|
|
||||||
if (sinfo->filled & (BIT_ULL(NL80211_STA_INFO_RX_BYTES) |
|
if (sinfo->filled & (BIT_ULL(NL80211_STA_INFO_RX_BYTES) |
|
||||||
BIT_ULL(NL80211_STA_INFO_RX_BYTES64)) &&
|
BIT_ULL(NL80211_STA_INFO_RX_BYTES64)) &&
|
||||||
|
Loading…
Reference in New Issue
Block a user