Lines Matching defs:sinfo
640 struct station_info *sinfo = NULL;
651 sinfo = kzalloc(sizeof(struct station_info), GFP_KERNEL);
652 if (!sinfo) {
690 sinfo->generation = local->sta_generation;
691 cfg80211_new_sta(sdata->dev, sta->sta.addr, sinfo, GFP_KERNEL);
692 kfree(sinfo);
715 kfree(sinfo);
1059 struct station_info *sinfo;
1102 sinfo = kzalloc(sizeof(*sinfo), GFP_KERNEL);
1103 if (sinfo)
1104 sta_set_sinfo(sta, sinfo, true);
1105 cfg80211_del_sta_sinfo(sdata->dev, sta->sta.addr, sinfo, GFP_KERNEL);
1106 kfree(sinfo);
2254 void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo,
2265 sinfo->generation = sdata->local->sta_generation;
2272 sinfo->rx_beacon = sdata->u.mgd.count_beacon_signal;
2274 drv_sta_statistics(local, sdata, &sta->sta, sinfo);
2275 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_INACTIVE_TIME) |
2283 sinfo->beacon_loss_count = sdata->u.mgd.beacon_loss_count;
2284 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_BEACON_LOSS);
2287 sinfo->connected_time = ktime_get_seconds() - sta->last_connected;
2288 sinfo->assoc_at = sta->assoc_at;
2289 sinfo->inactive_time =
2292 if (!(sinfo->filled & (BIT_ULL(NL80211_STA_INFO_TX_BYTES64) |
2294 sinfo->tx_bytes = 0;
2296 sinfo->tx_bytes += sta->tx_stats.bytes[ac];
2297 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_BYTES64);
2300 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_TX_PACKETS))) {
2301 sinfo->tx_packets = 0;
2303 sinfo->tx_packets += sta->tx_stats.packets[ac];
2304 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_PACKETS);
2307 if (!(sinfo->filled & (BIT_ULL(NL80211_STA_INFO_RX_BYTES64) |
2309 sinfo->rx_bytes += sta_get_stats_bytes(&sta->rx_stats);
2316 sinfo->rx_bytes += sta_get_stats_bytes(cpurxs);
2320 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_BYTES64);
2323 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_RX_PACKETS))) {
2324 sinfo->rx_packets = sta->rx_stats.packets;
2330 sinfo->rx_packets += cpurxs->packets;
2333 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_PACKETS);
2336 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_TX_RETRIES))) {
2337 sinfo->tx_retries = sta->status_stats.retry_count;
2338 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_RETRIES);
2341 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_TX_FAILED))) {
2342 sinfo->tx_failed = sta->status_stats.retry_failed;
2343 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_FAILED);
2346 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_RX_DURATION))) {
2348 sinfo->rx_duration += sta->airtime[ac].rx_airtime;
2349 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_DURATION);
2352 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_TX_DURATION))) {
2354 sinfo->tx_duration += sta->airtime[ac].tx_airtime;
2355 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_DURATION);
2358 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_AIRTIME_WEIGHT))) {
2359 sinfo->airtime_weight = sta->airtime_weight;
2360 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_AIRTIME_WEIGHT);
2363 sinfo->rx_dropped_misc = sta->rx_stats.dropped;
2369 sinfo->rx_dropped_misc += cpurxs->dropped;
2375 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_BEACON_RX) |
2377 sinfo->rx_beacon_signal_avg = ieee80211_ave_rssi(&sdata->vif);
2382 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_SIGNAL))) {
2383 sinfo->signal = (s8)last_rxstats->last_signal;
2384 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_SIGNAL);
2388 !(sinfo->filled & BIT_ULL(NL80211_STA_INFO_SIGNAL_AVG))) {
2389 sinfo->signal_avg =
2391 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_SIGNAL_AVG);
2400 !(sinfo->filled & (BIT_ULL(NL80211_STA_INFO_CHAIN_SIGNAL) |
2402 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_CHAIN_SIGNAL);
2404 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_CHAIN_SIGNAL_AVG);
2406 sinfo->chains = last_rxstats->chains;
2408 for (i = 0; i < ARRAY_SIZE(sinfo->chain_signal); i++) {
2409 sinfo->chain_signal[i] =
2411 sinfo->chain_signal_avg[i] =
2416 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_TX_BITRATE))) {
2418 &sinfo->txrate);
2419 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_BITRATE);
2422 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_RX_BITRATE))) {
2423 if (sta_set_rate_info_rx(sta, &sinfo->rxrate) == 0)
2424 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_RX_BITRATE);
2427 if (tidstats && !cfg80211_sinfo_alloc_tid_stats(sinfo, GFP_KERNEL)) {
2429 sta_set_tidstats(sta, &sinfo->pertid[i], i);
2434 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_LLID) |
2443 sinfo->llid = sta->mesh->llid;
2444 sinfo->plid = sta->mesh->plid;
2445 sinfo->plink_state = sta->mesh->plink_state;
2447 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_T_OFFSET);
2448 sinfo->t_offset = sta->mesh->t_offset;
2450 sinfo->local_pm = sta->mesh->local_pm;
2451 sinfo->peer_pm = sta->mesh->peer_pm;
2452 sinfo->nonpeer_pm = sta->mesh->nonpeer_pm;
2453 sinfo->connected_to_gate = sta->mesh->connected_to_gate;
2454 sinfo->connected_to_as = sta->mesh->connected_to_as;
2458 sinfo->bss_param.flags = 0;
2460 sinfo->bss_param.flags |= BSS_PARAM_FLAGS_CTS_PROT;
2462 sinfo->bss_param.flags |= BSS_PARAM_FLAGS_SHORT_PREAMBLE;
2464 sinfo->bss_param.flags |= BSS_PARAM_FLAGS_SHORT_SLOT_TIME;
2465 sinfo->bss_param.dtim_period = sdata->vif.bss_conf.dtim_period;
2466 sinfo->bss_param.beacon_interval = sdata->vif.bss_conf.beacon_int;
2468 sinfo->sta_flags.set = 0;
2469 sinfo->sta_flags.mask = BIT(NL80211_STA_FLAG_AUTHORIZED) |
2477 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_AUTHORIZED);
2479 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_SHORT_PREAMBLE);
2481 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_WME);
2483 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_MFP);
2485 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_AUTHENTICATED);
2487 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_ASSOCIATED);
2489 sinfo->sta_flags.set |= BIT(NL80211_STA_FLAG_TDLS_PEER);
2494 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_EXPECTED_THROUGHPUT);
2495 sinfo->expected_throughput = thr;
2498 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_ACK_SIGNAL)) &&
2500 sinfo->ack_signal = sta->status_stats.last_ack_signal;
2501 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_ACK_SIGNAL);
2504 if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_ACK_SIGNAL_AVG)) &&
2506 sinfo->avg_ack_signal =
2509 sinfo->filled |=
2514 sinfo->filled |= BIT_ULL(NL80211_STA_INFO_AIRTIME_LINK_METRIC);
2515 sinfo->airtime_link_metric =