Lines Matching refs:sinfo
487 struct station_info *sinfo; in sta_info_insert_finish() local
492 sinfo = kzalloc(sizeof(struct station_info), GFP_KERNEL); in sta_info_insert_finish()
493 if (!sinfo) { in sta_info_insert_finish()
531 sinfo->generation = local->sta_generation; in sta_info_insert_finish()
532 cfg80211_new_sta(sdata->dev, sta->sta.addr, sinfo, GFP_KERNEL); in sta_info_insert_finish()
533 kfree(sinfo); in sta_info_insert_finish()
893 struct station_info *sinfo; in __sta_info_destroy_part2() local
931 sinfo = kzalloc(sizeof(*sinfo), GFP_KERNEL); in __sta_info_destroy_part2()
932 if (sinfo) in __sta_info_destroy_part2()
933 sta_set_sinfo(sta, sinfo); in __sta_info_destroy_part2()
934 cfg80211_del_sta_sinfo(sdata->dev, sta->sta.addr, sinfo, GFP_KERNEL); in __sta_info_destroy_part2()
935 kfree(sinfo); in __sta_info_destroy_part2()
1859 void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo) in sta_set_sinfo() argument
1870 sinfo->generation = sdata->local->sta_generation; in sta_set_sinfo()
1877 sinfo->rx_beacon = sdata->u.mgd.count_beacon_signal; in sta_set_sinfo()
1879 drv_sta_statistics(local, sdata, &sta->sta, sinfo); in sta_set_sinfo()
1881 sinfo->filled |= BIT(NL80211_STA_INFO_INACTIVE_TIME) | in sta_set_sinfo()
1888 sinfo->beacon_loss_count = sdata->u.mgd.beacon_loss_count; in sta_set_sinfo()
1889 sinfo->filled |= BIT(NL80211_STA_INFO_BEACON_LOSS); in sta_set_sinfo()
1892 sinfo->connected_time = ktime_get_seconds() - sta->last_connected; in sta_set_sinfo()
1893 sinfo->inactive_time = in sta_set_sinfo()
1896 if (!(sinfo->filled & (BIT(NL80211_STA_INFO_TX_BYTES64) | in sta_set_sinfo()
1898 sinfo->tx_bytes = 0; in sta_set_sinfo()
1900 sinfo->tx_bytes += sta->tx_stats.bytes[ac]; in sta_set_sinfo()
1901 sinfo->filled |= BIT(NL80211_STA_INFO_TX_BYTES64); in sta_set_sinfo()
1904 if (!(sinfo->filled & BIT(NL80211_STA_INFO_TX_PACKETS))) { in sta_set_sinfo()
1905 sinfo->tx_packets = 0; in sta_set_sinfo()
1907 sinfo->tx_packets += sta->tx_stats.packets[ac]; in sta_set_sinfo()
1908 sinfo->filled |= BIT(NL80211_STA_INFO_TX_PACKETS); in sta_set_sinfo()
1911 if (!(sinfo->filled & (BIT(NL80211_STA_INFO_RX_BYTES64) | in sta_set_sinfo()
1913 sinfo->rx_bytes = sta->rx_stats.bytes; in sta_set_sinfo()
1914 sinfo->filled |= BIT(NL80211_STA_INFO_RX_BYTES64); in sta_set_sinfo()
1917 if (!(sinfo->filled & BIT(NL80211_STA_INFO_RX_PACKETS))) { in sta_set_sinfo()
1918 sinfo->rx_packets = sta->rx_stats.packets; in sta_set_sinfo()
1919 sinfo->filled |= BIT(NL80211_STA_INFO_RX_PACKETS); in sta_set_sinfo()
1922 if (!(sinfo->filled & BIT(NL80211_STA_INFO_TX_RETRIES))) { in sta_set_sinfo()
1923 sinfo->tx_retries = sta->status_stats.retry_count; in sta_set_sinfo()
1924 sinfo->filled |= BIT(NL80211_STA_INFO_TX_RETRIES); in sta_set_sinfo()
1927 if (!(sinfo->filled & BIT(NL80211_STA_INFO_TX_FAILED))) { in sta_set_sinfo()
1928 sinfo->tx_failed = sta->status_stats.retry_failed; in sta_set_sinfo()
1929 sinfo->filled |= BIT(NL80211_STA_INFO_TX_FAILED); in sta_set_sinfo()
1932 sinfo->rx_dropped_misc = sta->rx_stats.dropped; in sta_set_sinfo()
1936 sinfo->filled |= BIT(NL80211_STA_INFO_BEACON_RX) | in sta_set_sinfo()
1938 sinfo->rx_beacon_signal_avg = ieee80211_ave_rssi(&sdata->vif); in sta_set_sinfo()
1943 if (!(sinfo->filled & BIT(NL80211_STA_INFO_SIGNAL))) { in sta_set_sinfo()
1944 sinfo->signal = (s8)sta->rx_stats.last_signal; in sta_set_sinfo()
1945 sinfo->filled |= BIT(NL80211_STA_INFO_SIGNAL); in sta_set_sinfo()
1948 if (!(sinfo->filled & BIT(NL80211_STA_INFO_SIGNAL_AVG))) { in sta_set_sinfo()
1949 sinfo->signal_avg = in sta_set_sinfo()
1951 sinfo->filled |= BIT(NL80211_STA_INFO_SIGNAL_AVG); in sta_set_sinfo()
1956 !(sinfo->filled & (BIT(NL80211_STA_INFO_CHAIN_SIGNAL) | in sta_set_sinfo()
1958 sinfo->filled |= BIT(NL80211_STA_INFO_CHAIN_SIGNAL) | in sta_set_sinfo()
1961 sinfo->chains = sta->rx_stats.chains; in sta_set_sinfo()
1962 for (i = 0; i < ARRAY_SIZE(sinfo->chain_signal); i++) { in sta_set_sinfo()
1963 sinfo->chain_signal[i] = in sta_set_sinfo()
1965 sinfo->chain_signal_avg[i] = in sta_set_sinfo()
1970 if (!(sinfo->filled & BIT(NL80211_STA_INFO_TX_BITRATE))) { in sta_set_sinfo()
1972 &sinfo->txrate); in sta_set_sinfo()
1973 sinfo->filled |= BIT(NL80211_STA_INFO_TX_BITRATE); in sta_set_sinfo()
1976 if (!(sinfo->filled & BIT(NL80211_STA_INFO_RX_BITRATE))) { in sta_set_sinfo()
1977 sta_set_rate_info_rx(sta, &sinfo->rxrate); in sta_set_sinfo()
1978 sinfo->filled |= BIT(NL80211_STA_INFO_RX_BITRATE); in sta_set_sinfo()
1981 sinfo->filled |= BIT(NL80211_STA_INFO_TID_STATS); in sta_set_sinfo()
1983 struct cfg80211_tid_stats *tidstats = &sinfo->pertid[i]; in sta_set_sinfo()
2016 sinfo->filled |= BIT(NL80211_STA_INFO_LLID) | in sta_set_sinfo()
2023 sinfo->llid = sta->mesh->llid; in sta_set_sinfo()
2024 sinfo->plid = sta->mesh->plid; in sta_set_sinfo()
2025 sinfo->plink_state = sta->mesh->plink_state; in sta_set_sinfo()
2027 sinfo->filled |= BIT(NL80211_STA_INFO_T_OFFSET); in sta_set_sinfo()
2028 sinfo->t_offset = sta->mesh->t_offset; in sta_set_sinfo()
2030 sinfo->local_pm = sta->mesh->local_pm; in sta_set_sinfo()
2031 sinfo->peer_pm = sta->mesh->peer_pm; in sta_set_sinfo()
2032 sinfo->nonpeer_pm = sta->mesh->nonpeer_pm; in sta_set_sinfo()
2036 sinfo->bss_param.flags = 0; in sta_set_sinfo()
2038 sinfo->bss_param.flags |= BSS_PARAM_FLAGS_CTS_PROT; in sta_set_sinfo()
2040 sinfo->bss_param.flags |= BSS_PARAM_FLAGS_SHORT_PREAMBLE; in sta_set_sinfo()
2042 sinfo->bss_param.flags |= BSS_PARAM_FLAGS_SHORT_SLOT_TIME; in sta_set_sinfo()
2043 sinfo->bss_param.dtim_period = sdata->vif.bss_conf.dtim_period; in sta_set_sinfo()
2044 sinfo->bss_param.beacon_interval = sdata->vif.bss_conf.beacon_int; in sta_set_sinfo()
2046 sinfo->sta_flags.set = 0; in sta_set_sinfo()
2047 sinfo->sta_flags.mask = BIT(NL80211_STA_FLAG_AUTHORIZED) | in sta_set_sinfo()
2055 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_AUTHORIZED); in sta_set_sinfo()
2057 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_SHORT_PREAMBLE); in sta_set_sinfo()
2059 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_WME); in sta_set_sinfo()
2061 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_MFP); in sta_set_sinfo()
2063 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_AUTHENTICATED); in sta_set_sinfo()
2065 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_ASSOCIATED); in sta_set_sinfo()
2067 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_TDLS_PEER); in sta_set_sinfo()
2076 sinfo->filled |= BIT(NL80211_STA_INFO_EXPECTED_THROUGHPUT); in sta_set_sinfo()
2077 sinfo->expected_throughput = thr; in sta_set_sinfo()