+
+ if (sinfo[NL80211_STA_INFO_RX_BYTES])
+ e->rx_bytes = nla_get_u32(sinfo[NL80211_STA_INFO_RX_BYTES]);
+
+ if (sinfo[NL80211_STA_INFO_TX_BYTES])
+ e->tx_bytes = nla_get_u32(sinfo[NL80211_STA_INFO_TX_BYTES]);
+
+ if (sinfo[NL80211_STA_INFO_TX_RETRIES])
+ e->tx_retries = nla_get_u32(sinfo[NL80211_STA_INFO_TX_RETRIES]);
+
+ if (sinfo[NL80211_STA_INFO_TX_FAILED])
+ e->tx_failed = nla_get_u32(sinfo[NL80211_STA_INFO_TX_FAILED]);
+
+ if (sinfo[NL80211_STA_INFO_T_OFFSET])
+ e->t_offset = nla_get_u64(sinfo[NL80211_STA_INFO_T_OFFSET]);
+
+ /* Station flags */
+ if (sinfo[NL80211_STA_INFO_STA_FLAGS])
+ {
+ sta_flags = (struct nl80211_sta_flag_update *)
+ nla_data(sinfo[NL80211_STA_INFO_STA_FLAGS]);
+
+ if (sta_flags->mask & BIT(NL80211_STA_FLAG_AUTHORIZED) &&
+ sta_flags->set & BIT(NL80211_STA_FLAG_AUTHORIZED))
+ e->is_authorized = 1;
+
+ if (sta_flags->mask & BIT(NL80211_STA_FLAG_AUTHENTICATED) &&
+ sta_flags->set & BIT(NL80211_STA_FLAG_AUTHENTICATED))
+ e->is_authenticated = 1;
+
+ if (sta_flags->mask & BIT(NL80211_STA_FLAG_SHORT_PREAMBLE) &&
+ sta_flags->set & BIT(NL80211_STA_FLAG_SHORT_PREAMBLE))
+ e->is_preamble_short = 1;
+
+ if (sta_flags->mask & BIT(NL80211_STA_FLAG_WME) &&
+ sta_flags->set & BIT(NL80211_STA_FLAG_WME))
+ e->is_wme = 1;
+
+ if (sta_flags->mask & BIT(NL80211_STA_FLAG_MFP) &&
+ sta_flags->set & BIT(NL80211_STA_FLAG_MFP))
+ e->is_mfp = 1;
+
+ if (sta_flags->mask & BIT(NL80211_STA_FLAG_TDLS_PEER) &&
+ sta_flags->set & BIT(NL80211_STA_FLAG_TDLS_PEER))
+ e->is_tdls = 1;
+ }