Lines Matching refs:sinfo

823 	struct station_info *sinfo = NULL;
834 sinfo = kzalloc(sizeof(struct station_info), GFP_KERNEL);
835 if (!sinfo) {
904 sinfo->generation = local->sta_generation;
905 cfg80211_new_sta(sdata->dev, sta->sta.addr, sinfo, GFP_KERNEL);
906 kfree(sinfo);
929 kfree(sinfo);
1413 struct station_info *sinfo;
1470 sinfo = kzalloc(sizeof(*sinfo), GFP_KERNEL);
1471 if (sinfo)
1472 sta_set_sinfo(sta, sinfo, true);
1473 cfg80211_del_sta_sinfo(sdata->dev, sta->sta.addr, sinfo, GFP_KERNEL);
1474 kfree(sinfo);
2566 void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo,
2577 sinfo->generation = sdata->local->sta_generation;
2584 sinfo->rx_beacon = sdata->deflink.u.mgd.count_beacon_signal;
2586 drv_sta_statistics(local, sdata, &sta->sta, sinfo);
2587 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_INACTIVE_TIME) |
2595 sinfo->beacon_loss_count =
2597 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_BEACON_LOSS);
2600 sinfo->connected_time = ktime_get_seconds() - sta->last_connected;
2601 sinfo->assoc_at = sta->assoc_at;
2602 sinfo->inactive_time =
2605 if (!(sinfo->filled & (BIT_ULL(NL80211_STA_INFO_TX_BYTES64) |
2607 sinfo->tx_bytes = 0;
2609 sinfo->tx_bytes += sta->deflink.tx_stats.bytes[ac];
2610 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_BYTES64);
2613 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_TX_PACKETS))) {
2614 sinfo->tx_packets = 0;
2616 sinfo->tx_packets += sta->deflink.tx_stats.packets[ac];
2617 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_PACKETS);
2620 if (!(sinfo->filled & (BIT_ULL(NL80211_STA_INFO_RX_BYTES64) |
2622 sinfo->rx_bytes += sta_get_stats_bytes(&sta->deflink.rx_stats);
2630 sinfo->rx_bytes += sta_get_stats_bytes(cpurxs);
2634 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_BYTES64);
2637 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_RX_PACKETS))) {
2638 sinfo->rx_packets = sta->deflink.rx_stats.packets;
2645 sinfo->rx_packets += cpurxs->packets;
2648 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_PACKETS);
2651 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_TX_RETRIES))) {
2652 sinfo->tx_retries = sta->deflink.status_stats.retry_count;
2653 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_RETRIES);
2656 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_TX_FAILED))) {
2657 sinfo->tx_failed = sta->deflink.status_stats.retry_failed;
2658 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_FAILED);
2661 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_RX_DURATION))) {
2663 sinfo->rx_duration += sta->airtime[ac].rx_airtime;
2664 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_DURATION);
2667 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_TX_DURATION))) {
2669 sinfo->tx_duration += sta->airtime[ac].tx_airtime;
2670 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_DURATION);
2673 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_AIRTIME_WEIGHT))) {
2674 sinfo->airtime_weight = sta->airtime_weight;
2675 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_AIRTIME_WEIGHT);
2678 sinfo->rx_dropped_misc = sta->deflink.rx_stats.dropped;
2684 sinfo->rx_dropped_misc += cpurxs->dropped;
2690 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_BEACON_RX) |
2692 sinfo->rx_beacon_signal_avg = ieee80211_ave_rssi(&sdata->vif);
2697 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_SIGNAL))) {
2698 sinfo->signal = (s8)last_rxstats->last_signal;
2699 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_SIGNAL);
2703 !(sinfo->filled & BIT_ULL(NL80211_STA_INFO_SIGNAL_AVG))) {
2704 sinfo->signal_avg =
2706 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_SIGNAL_AVG);
2715 !(sinfo->filled & (BIT_ULL(NL80211_STA_INFO_CHAIN_SIGNAL) |
2717 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_CHAIN_SIGNAL);
2719 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_CHAIN_SIGNAL_AVG);
2721 sinfo->chains = last_rxstats->chains;
2723 for (i = 0; i < ARRAY_SIZE(sinfo->chain_signal); i++) {
2724 sinfo->chain_signal[i] =
2726 sinfo->chain_signal_avg[i] =
2731 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_TX_BITRATE)) &&
2735 &sinfo->txrate);
2736 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_BITRATE);
2739 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_RX_BITRATE)) &&
2741 if (sta_set_rate_info_rx(sta, &sinfo->rxrate) == 0)
2742 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_BITRATE);
2745 if (tidstats && !cfg80211_sinfo_alloc_tid_stats(sinfo, GFP_KERNEL)) {
2747 sta_set_tidstats(sta, &sinfo->pertid[i], i);
2752 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_LLID) |
2761 sinfo->llid = sta->mesh->llid;
2762 sinfo->plid = sta->mesh->plid;
2763 sinfo->plink_state = sta->mesh->plink_state;
2765 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_T_OFFSET);
2766 sinfo->t_offset = sta->mesh->t_offset;
2768 sinfo->local_pm = sta->mesh->local_pm;
2769 sinfo->peer_pm = sta->mesh->peer_pm;
2770 sinfo->nonpeer_pm = sta->mesh->nonpeer_pm;
2771 sinfo->connected_to_gate = sta->mesh->connected_to_gate;
2772 sinfo->connected_to_as = sta->mesh->connected_to_as;
2776 sinfo->bss_param.flags = 0;
2778 sinfo->bss_param.flags |= BSS_PARAM_FLAGS_CTS_PROT;
2780 sinfo->bss_param.flags |= BSS_PARAM_FLAGS_SHORT_PREAMBLE;
2782 sinfo->bss_param.flags |= BSS_PARAM_FLAGS_SHORT_SLOT_TIME;
2783 sinfo->bss_param.dtim_period = sdata->vif.bss_conf.dtim_period;
2784 sinfo->bss_param.beacon_interval = sdata->vif.bss_conf.beacon_int;
2786 sinfo->sta_flags.set = 0;
2787 sinfo->sta_flags.mask = BIT(NL80211_STA_FLAG_AUTHORIZED) |
2795 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_AUTHORIZED);
2797 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_SHORT_PREAMBLE);
2799 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_WME);
2801 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_MFP);
2803 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_AUTHENTICATED);
2805 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_ASSOCIATED);
2807 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_TDLS_PEER);
2812 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_EXPECTED_THROUGHPUT);
2813 sinfo->expected_throughput = thr;
2816 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_ACK_SIGNAL)) &&
2818 sinfo->ack_signal = sta->deflink.status_stats.last_ack_signal;
2819 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_ACK_SIGNAL);
2822 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_ACK_SIGNAL_AVG)) &&
2824 sinfo->avg_ack_signal =
2827 sinfo->filled |=
2832 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_AIRTIME_LINK_METRIC);
2833 sinfo->airtime_link_metric =