Lines Matching defs: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);
931 kfree(sinfo);
1397 struct station_info *sinfo;
1452 sinfo = kzalloc(sizeof(*sinfo), GFP_KERNEL);
1453 if (sinfo)
1454 sta_set_sinfo(sta, sinfo, true);
1455 cfg80211_del_sta_sinfo(sdata->dev, sta->sta.addr, sinfo, GFP_KERNEL);
1456 kfree(sinfo);
2553 void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo,
2564 sinfo->generation = sdata->local->sta_generation;
2571 sinfo->rx_beacon = sdata->deflink.u.mgd.count_beacon_signal;
2573 drv_sta_statistics(local, sdata, &sta->sta, sinfo);
2574 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_INACTIVE_TIME) |
2582 sinfo->beacon_loss_count =
2584 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_BEACON_LOSS);
2587 sinfo->connected_time = ktime_get_seconds() - sta->last_connected;
2588 sinfo->assoc_at = sta->assoc_at;
2589 sinfo->inactive_time =
2592 if (!(sinfo->filled & (BIT_ULL(NL80211_STA_INFO_TX_BYTES64) |
2594 sinfo->tx_bytes = 0;
2596 sinfo->tx_bytes += sta->deflink.tx_stats.bytes[ac];
2597 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_BYTES64);
2600 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_TX_PACKETS))) {
2601 sinfo->tx_packets = 0;
2603 sinfo->tx_packets += sta->deflink.tx_stats.packets[ac];
2604 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_PACKETS);
2607 if (!(sinfo->filled & (BIT_ULL(NL80211_STA_INFO_RX_BYTES64) |
2609 sinfo->rx_bytes += sta_get_stats_bytes(&sta->deflink.rx_stats);
2617 sinfo->rx_bytes += sta_get_stats_bytes(cpurxs);
2621 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_BYTES64);
2624 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_RX_PACKETS))) {
2625 sinfo->rx_packets = sta->deflink.rx_stats.packets;
2632 sinfo->rx_packets += cpurxs->packets;
2635 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_PACKETS);
2638 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_TX_RETRIES))) {
2639 sinfo->tx_retries = sta->deflink.status_stats.retry_count;
2640 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_RETRIES);
2643 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_TX_FAILED))) {
2644 sinfo->tx_failed = sta->deflink.status_stats.retry_failed;
2645 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_FAILED);
2648 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_RX_DURATION))) {
2650 sinfo->rx_duration += sta->airtime[ac].rx_airtime;
2651 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_DURATION);
2654 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_TX_DURATION))) {
2656 sinfo->tx_duration += sta->airtime[ac].tx_airtime;
2657 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_DURATION);
2660 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_AIRTIME_WEIGHT))) {
2661 sinfo->airtime_weight = sta->airtime_weight;
2662 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_AIRTIME_WEIGHT);
2665 sinfo->rx_dropped_misc = sta->deflink.rx_stats.dropped;
2671 sinfo->rx_dropped_misc += cpurxs->dropped;
2677 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_BEACON_RX) |
2679 sinfo->rx_beacon_signal_avg = ieee80211_ave_rssi(&sdata->vif);
2684 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_SIGNAL))) {
2685 sinfo->signal = (s8)last_rxstats->last_signal;
2686 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_SIGNAL);
2690 !(sinfo->filled & BIT_ULL(NL80211_STA_INFO_SIGNAL_AVG))) {
2691 sinfo->signal_avg =
2693 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_SIGNAL_AVG);
2702 !(sinfo->filled & (BIT_ULL(NL80211_STA_INFO_CHAIN_SIGNAL) |
2704 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_CHAIN_SIGNAL);
2706 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_CHAIN_SIGNAL_AVG);
2708 sinfo->chains = last_rxstats->chains;
2710 for (i = 0; i < ARRAY_SIZE(sinfo->chain_signal); i++) {
2711 sinfo->chain_signal[i] =
2713 sinfo->chain_signal_avg[i] =
2718 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_TX_BITRATE)) &&
2721 &sinfo->txrate);
2722 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_BITRATE);
2725 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_RX_BITRATE)) &&
2727 if (sta_set_rate_info_rx(sta, &sinfo->rxrate) == 0)
2728 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_BITRATE);
2731 if (tidstats && !cfg80211_sinfo_alloc_tid_stats(sinfo, GFP_KERNEL)) {
2733 sta_set_tidstats(sta, &sinfo->pertid[i], i);
2738 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_LLID) |
2747 sinfo->llid = sta->mesh->llid;
2748 sinfo->plid = sta->mesh->plid;
2749 sinfo->plink_state = sta->mesh->plink_state;
2751 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_T_OFFSET);
2752 sinfo->t_offset = sta->mesh->t_offset;
2754 sinfo->local_pm = sta->mesh->local_pm;
2755 sinfo->peer_pm = sta->mesh->peer_pm;
2756 sinfo->nonpeer_pm = sta->mesh->nonpeer_pm;
2757 sinfo->connected_to_gate = sta->mesh->connected_to_gate;
2758 sinfo->connected_to_as = sta->mesh->connected_to_as;
2762 sinfo->bss_param.flags = 0;
2764 sinfo->bss_param.flags |= BSS_PARAM_FLAGS_CTS_PROT;
2766 sinfo->bss_param.flags |= BSS_PARAM_FLAGS_SHORT_PREAMBLE;
2768 sinfo->bss_param.flags |= BSS_PARAM_FLAGS_SHORT_SLOT_TIME;
2769 sinfo->bss_param.dtim_period = sdata->vif.bss_conf.dtim_period;
2770 sinfo->bss_param.beacon_interval = sdata->vif.bss_conf.beacon_int;
2772 sinfo->sta_flags.set = 0;
2773 sinfo->sta_flags.mask = BIT(NL80211_STA_FLAG_AUTHORIZED) |
2781 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_AUTHORIZED);
2783 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_SHORT_PREAMBLE);
2785 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_WME);
2787 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_MFP);
2789 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_AUTHENTICATED);
2791 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_ASSOCIATED);
2793 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_TDLS_PEER);
2798 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_EXPECTED_THROUGHPUT);
2799 sinfo->expected_throughput = thr;
2802 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_ACK_SIGNAL)) &&
2804 sinfo->ack_signal = sta->deflink.status_stats.last_ack_signal;
2805 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_ACK_SIGNAL);
2808 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_ACK_SIGNAL_AVG)) &&
2810 sinfo->avg_ack_signal =
2813 sinfo->filled |=
2818 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_AIRTIME_LINK_METRIC);
2819 sinfo->airtime_link_metric =