Message ID | 20190415170543.21728-2-greearb@candelatech.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Johannes Berg |
Headers | show |
Series | [PATCH-v2,1/2] wireless: Support assoc-at-ms timer in sta-info | expand |
Please ignore, I edited the wrong files. Go Monday! Ben On 4/15/19 10:05 AM, greearb@candelatech.com wrote: > From: Ben Greear <greearb@candelatech.com> > > Report when sta becomes associated. > > Signed-off-by: Ben Greear <greearb@candelatech.com> > --- > net/mac80211/sta_info.c | 3 +++ > net/mac80211/sta_info.h | 2 ++ > 2 files changed, 5 insertions(+) > > diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c > index 044120c45950..6dab7abe1603 100644 > --- a/net/mac80211/sta_info.c > +++ b/net/mac80211/sta_info.c > @@ -1980,6 +1980,7 @@ int sta_info_move_state(struct sta_info *sta, > break; > case IEEE80211_STA_AUTHORIZED: > if (sta->sta_state == IEEE80211_STA_ASSOC) { > + sta->auth_at_ms = ktime_to_ms(ktime_get_real()); > ieee80211_vif_inc_num_mcast(sta->sdata); > set_bit(WLAN_STA_AUTHORIZED, &sta->_flags); > ieee80211_check_fast_xmit(sta); > @@ -2197,6 +2198,7 @@ void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo, > BIT_ULL(NL80211_STA_INFO_STA_FLAGS) | > BIT_ULL(NL80211_STA_INFO_BSS_PARAM) | > BIT_ULL(NL80211_STA_INFO_CONNECTED_TIME) | > + BIT_ULL(NL80211_STA_INFO_AUTH_AT_MS) | > BIT_ULL(NL80211_STA_INFO_RX_DROP_MISC); > > if (sdata->vif.type == NL80211_IFTYPE_STATION) { > @@ -2205,6 +2207,7 @@ void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo, > } > > sinfo->connected_time = ktime_get_seconds() - sta->last_connected; > + sinfo->auth_at_ms = sta->auth_at_ms; > sinfo->inactive_time = > jiffies_to_msecs(jiffies - ieee80211_sta_last_active(sta)); > > diff --git a/net/mac80211/sta_info.h b/net/mac80211/sta_info.h > index c5d557032be5..97777978b8f5 100644 > --- a/net/mac80211/sta_info.h > +++ b/net/mac80211/sta_info.h > @@ -455,6 +455,7 @@ struct ieee80211_sta_rx_stats { > * the station when it leaves powersave or polls for frames > * @driver_buffered_tids: bitmap of TIDs the driver has data buffered on > * @txq_buffered_tids: bitmap of TIDs that mac80211 has txq data buffered on > + * @auth_at_ms: time (in ms) of last assoc -> auth transition > * @last_connected: time (in seconds) when a station got connected > * @last_seq_ctrl: last received seq/frag number from this STA (per TID > * plus one for non-QoS frames) > @@ -531,6 +532,7 @@ struct sta_info { > unsigned long driver_buffered_tids; > unsigned long txq_buffered_tids; > > + unsigned long auth_at_ms; > long last_connected; > > /* Updated from RX path only, no locking requirements */ >
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c index 044120c45950..6dab7abe1603 100644 --- a/net/mac80211/sta_info.c +++ b/net/mac80211/sta_info.c @@ -1980,6 +1980,7 @@ int sta_info_move_state(struct sta_info *sta, break; case IEEE80211_STA_AUTHORIZED: if (sta->sta_state == IEEE80211_STA_ASSOC) { + sta->auth_at_ms = ktime_to_ms(ktime_get_real()); ieee80211_vif_inc_num_mcast(sta->sdata); set_bit(WLAN_STA_AUTHORIZED, &sta->_flags); ieee80211_check_fast_xmit(sta); @@ -2197,6 +2198,7 @@ void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo, BIT_ULL(NL80211_STA_INFO_STA_FLAGS) | BIT_ULL(NL80211_STA_INFO_BSS_PARAM) | BIT_ULL(NL80211_STA_INFO_CONNECTED_TIME) | + BIT_ULL(NL80211_STA_INFO_AUTH_AT_MS) | BIT_ULL(NL80211_STA_INFO_RX_DROP_MISC); if (sdata->vif.type == NL80211_IFTYPE_STATION) { @@ -2205,6 +2207,7 @@ void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo, } sinfo->connected_time = ktime_get_seconds() - sta->last_connected; + sinfo->auth_at_ms = sta->auth_at_ms; sinfo->inactive_time = jiffies_to_msecs(jiffies - ieee80211_sta_last_active(sta)); diff --git a/net/mac80211/sta_info.h b/net/mac80211/sta_info.h index c5d557032be5..97777978b8f5 100644 --- a/net/mac80211/sta_info.h +++ b/net/mac80211/sta_info.h @@ -455,6 +455,7 @@ struct ieee80211_sta_rx_stats { * the station when it leaves powersave or polls for frames * @driver_buffered_tids: bitmap of TIDs the driver has data buffered on * @txq_buffered_tids: bitmap of TIDs that mac80211 has txq data buffered on + * @auth_at_ms: time (in ms) of last assoc -> auth transition * @last_connected: time (in seconds) when a station got connected * @last_seq_ctrl: last received seq/frag number from this STA (per TID * plus one for non-QoS frames) @@ -531,6 +532,7 @@ struct sta_info { unsigned long driver_buffered_tids; unsigned long txq_buffered_tids; + unsigned long auth_at_ms; long last_connected; /* Updated from RX path only, no locking requirements */