Lines Matching defs:sinfo
883 struct station_info *sinfo = NULL;
894 sinfo = kzalloc(sizeof(struct station_info), GFP_KERNEL);
895 if (!sinfo) {
964 sinfo->generation = local->sta_generation;
965 cfg80211_new_sta(sdata->dev, sta->sta.addr, sinfo, GFP_KERNEL);
966 kfree(sinfo);
989 kfree(sinfo);
1487 struct station_info *sinfo;
1544 sinfo = kzalloc(sizeof(*sinfo), GFP_KERNEL);
1545 if (sinfo)
1546 sta_set_sinfo(sta, sinfo, true);
1547 cfg80211_del_sta_sinfo(sdata->dev, sta->sta.addr, sinfo, GFP_KERNEL);
1548 kfree(sinfo);
2664 struct station_info *sinfo)
2668 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_LLID) |
2677 sinfo->llid = sta->mesh->llid;
2678 sinfo->plid = sta->mesh->plid;
2679 sinfo->plink_state = sta->mesh->plink_state;
2681 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_T_OFFSET);
2682 sinfo->t_offset = sta->mesh->t_offset;
2684 sinfo->local_pm = sta->mesh->local_pm;
2685 sinfo->peer_pm = sta->mesh->peer_pm;
2686 sinfo->nonpeer_pm = sta->mesh->nonpeer_pm;
2687 sinfo->connected_to_gate = sta->mesh->connected_to_gate;
2688 sinfo->connected_to_as = sta->mesh->connected_to_as;
2690 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_AIRTIME_LINK_METRIC);
2691 sinfo->airtime_link_metric = airtime_link_metric_get(local, sta);
2696 struct station_info *sinfo)
2699 sinfo->tx_packets = sta->rem_link_stats.tx_packets;
2700 sinfo->rx_packets = sta->rem_link_stats.rx_packets;
2701 sinfo->tx_bytes = sta->rem_link_stats.tx_bytes;
2702 sinfo->rx_bytes = sta->rem_link_stats.rx_bytes;
2703 sinfo->tx_retries = sta->rem_link_stats.tx_retries;
2704 sinfo->tx_failed = sta->rem_link_stats.tx_failed;
2705 sinfo->rx_dropped_misc = sta->rem_link_stats.rx_dropped_misc;
2706 sinfo->beacon_loss_count = sta->rem_link_stats.beacon_loss_count;
2707 sinfo->expected_throughput = sta->rem_link_stats.expected_throughput;
2709 if (sinfo->pertid) {
2710 sinfo->pertid->rx_msdu =
2712 sinfo->pertid->tx_msdu =
2714 sinfo->pertid->tx_msdu_retries =
2716 sinfo->pertid->tx_msdu_failed =
2957 void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo,
2968 sinfo->generation = sdata->local->sta_generation;
2975 sinfo->rx_beacon = sdata->deflink.u.mgd.count_beacon_signal;
2977 drv_sta_statistics(local, sdata, &sta->sta, sinfo);
2978 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_INACTIVE_TIME) |
2986 sinfo->beacon_loss_count =
2988 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_BEACON_LOSS);
2991 sinfo->connected_time = ktime_get_seconds() - sta->last_connected;
2992 sinfo->assoc_at = sta->assoc_at;
2993 sinfo->inactive_time =
2996 if (!(sinfo->filled & (BIT_ULL(NL80211_STA_INFO_TX_BYTES64) |
2998 sinfo->tx_bytes = 0;
3000 sinfo->tx_bytes += sta->deflink.tx_stats.bytes[ac];
3001 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_BYTES64);
3004 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_TX_PACKETS))) {
3005 sinfo->tx_packets = 0;
3007 sinfo->tx_packets += sta->deflink.tx_stats.packets[ac];
3008 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_PACKETS);
3011 if (!(sinfo->filled & (BIT_ULL(NL80211_STA_INFO_RX_BYTES64) |
3013 sinfo->rx_bytes += sta_get_stats_bytes(&sta->deflink.rx_stats);
3021 sinfo->rx_bytes += sta_get_stats_bytes(cpurxs);
3025 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_BYTES64);
3028 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_RX_PACKETS))) {
3029 sinfo->rx_packets = sta->deflink.rx_stats.packets;
3036 sinfo->rx_packets += cpurxs->packets;
3039 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_PACKETS);
3042 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_TX_RETRIES))) {
3043 sinfo->tx_retries = sta->deflink.status_stats.retry_count;
3044 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_RETRIES);
3047 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_TX_FAILED))) {
3048 sinfo->tx_failed = sta->deflink.status_stats.retry_failed;
3049 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_FAILED);
3052 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_RX_DURATION))) {
3054 sinfo->rx_duration += sta->airtime[ac].rx_airtime;
3055 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_DURATION);
3058 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_TX_DURATION))) {
3060 sinfo->tx_duration += sta->airtime[ac].tx_airtime;
3061 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_DURATION);
3064 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_AIRTIME_WEIGHT))) {
3065 sinfo->airtime_weight = sta->airtime_weight;
3066 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_AIRTIME_WEIGHT);
3069 sinfo->rx_dropped_misc = sta->deflink.rx_stats.dropped;
3075 sinfo->rx_dropped_misc += cpurxs->dropped;
3081 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_BEACON_RX) |
3083 sinfo->rx_beacon_signal_avg =
3089 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_SIGNAL))) {
3090 sinfo->signal = (s8)last_rxstats->last_signal;
3091 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_SIGNAL);
3095 !(sinfo->filled & BIT_ULL(NL80211_STA_INFO_SIGNAL_AVG))) {
3096 sinfo->signal_avg =
3098 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_SIGNAL_AVG);
3107 !(sinfo->filled & (BIT_ULL(NL80211_STA_INFO_CHAIN_SIGNAL) |
3109 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_CHAIN_SIGNAL);
3111 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_CHAIN_SIGNAL_AVG);
3113 sinfo->chains = last_rxstats->chains;
3115 for (i = 0; i < ARRAY_SIZE(sinfo->chain_signal); i++) {
3116 sinfo->chain_signal[i] =
3118 sinfo->chain_signal_avg[i] =
3123 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_TX_BITRATE)) &&
3127 &sinfo->txrate);
3128 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_BITRATE);
3131 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_RX_BITRATE)) &&
3133 if (sta_set_rate_info_rx(sta, &sinfo->rxrate, -1) == 0)
3134 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_BITRATE);
3137 if (tidstats && !cfg80211_sinfo_alloc_tid_stats(sinfo, GFP_KERNEL)) {
3139 sta_set_tidstats(sta, &sinfo->pertid[i], i, -1);
3144 sta_set_mesh_sinfo(sta, sinfo);
3147 sinfo->bss_param.flags = 0;
3149 sinfo->bss_param.flags |= BSS_PARAM_FLAGS_CTS_PROT;
3151 sinfo->bss_param.flags |= BSS_PARAM_FLAGS_SHORT_PREAMBLE;
3153 sinfo->bss_param.flags |= BSS_PARAM_FLAGS_SHORT_SLOT_TIME;
3154 sinfo->bss_param.dtim_period = sdata->vif.bss_conf.dtim_period;
3155 sinfo->bss_param.beacon_interval = sdata->vif.bss_conf.beacon_int;
3157 sinfo->sta_flags.set = 0;
3158 sinfo->sta_flags.mask = BIT(NL80211_STA_FLAG_AUTHORIZED) |
3166 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_AUTHORIZED);
3168 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_SHORT_PREAMBLE);
3170 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_WME);
3172 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_MFP);
3174 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_AUTHENTICATED);
3176 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_ASSOCIATED);
3178 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_TDLS_PEER);
3183 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_EXPECTED_THROUGHPUT);
3184 sinfo->expected_throughput = thr;
3187 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_ACK_SIGNAL)) &&
3189 sinfo->ack_signal = sta->deflink.status_stats.last_ack_signal;
3190 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_ACK_SIGNAL);
3193 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_ACK_SIGNAL_AVG)) &&
3195 sinfo->avg_ack_signal =
3198 sinfo->filled |=
3207 ether_addr_copy(sinfo->mld_addr, sta->addr);
3210 sinfo->valid_links = sta->sta.valid_links;
3212 for_each_valid_link(sinfo, link_id) {
3218 if (!link_sta || !sinfo->links[link_id] || !link) {
3219 sinfo->valid_links &= ~BIT(link_id);
3222 sta_set_link_sinfo(sta, sinfo->links[link_id],