Lines Matching +full:mac +full:- +full:base
1 /*-
2 * Copyright (c) 2002-2007 Sam Leffler, Errno Consulting
242 { 5, "ps_unassoc", "ps_unassoc", "ps-poll received for unassociated station" },
244 { 5, "ps_badaid", "ps_badaid", "ps-poll received with invalid association id" },
246 { 5, "ps_qempty", "ps_qempty", "ps-poll received with nothing to send" },
270 { 8, "amsdu_tooshort", "tooshort","A-MSDU rx decap error" },
272 { 8, "amsdu_split", "split", "A-MSDU rx failed on frame split" },
274 { 8, "amsdu_decap", "decap", "A-MSDU frames received" },
276 { 8, "amsdu_encap", "encap", "A-MSDU frames transmitted" },
278 { 13, "rx_amsdu_more", "rx_amsdu_more", "A-MSDU HW intermediary decap'ed received" },
280 { 17, "rx_amsdu_more_end", "rx_amsdu_more_end", "A-MSDU HW end decap'ed received" },
282 { 8, "ampdu_reorder", "reorder","A-MPDU frames held in reorder q" },
284 { 8, "ampdu_flush", "flush", "A-MPDU frames sent up from reorder q" },
286 …{ 6, "ampdu_barbad", "barbad", "A-MPDU BAR rx before ADDBA exchange (or disabled with net.link.ie…
288 { 6, "ampdu_baroow", "baroow", "A-MPDU BAR rx out of BA window" },
290 { 8, "ampdu_barmove", "barmove","A-MPDU BAR rx moved BA window" },
292 { 8, "ampdu_bar", "rxbar", "A-MPDU BAR rx successful" },
294 { 5, "ampdu_move", "move", "A-MPDU frame moved BA window" },
296 { 8, "ampdu_oor", "oorx", "A-MPDU frames rx out-of-order" },
298 { 8, "ampdu_copy", "copy", "A-MPDU rx window slots copied" },
300 { 5, "ampdu_drop", "drop", "A-MPDU frames discarded for out of range seqno" },
302 { 5, "ampdu_age", "age", "A-MPDU frames sent up due to old age" },
304 { 5, "ampdu_stop", "stop", "A-MPDU streams stopped" },
306 { 5, "ampdu_stop_failed","!stop", "A-MPDU stop requests failed 'cuz stream not running" },
308 { 5, "addba_reject", "reject", "ADDBA requests rejected 'cuz A-MPDU rx is disabled" },
322 { 8, "dwds_qdrop", "dwds_qdrop", "4-address frame discarded because dwds pending queue is full" },
324 { 4, "ht_nohtcap", "ht_nohtcap", "non-HT station rejected in HT-only BSS" },
356 { 4, "rx_badalign", "rx_badalign","frame discarded because payload re-alignment failed" },
402 struct wlanstatfoo base; member
405 uint8_t mac[IEEE80211_ADDR_LEN]; member
423 strncpy(wf->ifr.ifr_name, ifname, sizeof (wf->ifr.ifr_name)); in wlan_setifname()
424 strncpy(wf->ireq.i_name, ifname, sizeof (wf->ireq.i_name)); in wlan_setifname()
432 return wf->ifr.ifr_name; in wlan_getifname()
440 if (wf->opmode == -1) { in wlan_getopmode()
444 strlcpy(ifmr.ifm_name, wf->ifr.ifr_name, sizeof(ifmr.ifm_name)); in wlan_getopmode()
445 if (ioctl(wf->s, SIOCGIFMEDIA, &ifmr) < 0) in wlan_getopmode()
446 err(1, "%s (SIOCGIFMEDIA)", wf->ifr.ifr_name); in wlan_getopmode()
449 wf->opmode = IEEE80211_M_AHDEMO; in wlan_getopmode()
451 wf->opmode = IEEE80211_M_IBSS; in wlan_getopmode()
453 wf->opmode = IEEE80211_M_HOSTAP; in wlan_getopmode()
455 wf->opmode = IEEE80211_M_MONITOR; in wlan_getopmode()
457 wf->opmode = IEEE80211_M_STA; in wlan_getopmode()
459 return wf->opmode; in wlan_getopmode()
470 for (p = ifp; p != NULL; p = p->ifa_next) in getlladdr()
471 if (strcmp(p->ifa_name, wf->ifr.ifr_name) == 0 && in getlladdr()
472 p->ifa_addr->sa_family == AF_LINK) in getlladdr()
476 wf->ifr.ifr_name); in getlladdr()
477 sdl = (const struct sockaddr_dl *)(const void *)p->ifa_addr; in getlladdr()
478 IEEE80211_ADDR_COPY(wf->mac, sdl->sdl_data + sdl->sdl_nlen); in getlladdr()
485 wf->ireq.i_type = IEEE80211_IOC_BSSID; in getbssid()
486 wf->ireq.i_data = wf->mac; in getbssid()
487 wf->ireq.i_len = IEEE80211_ADDR_LEN; in getbssid()
488 return ioctl(wf->s, SIOCG80211, &wf->ireq); in getbssid()
492 wlan_setstamac(struct wlanstatfoo *wf0, const uint8_t *mac) in wlan_setstamac() argument
497 if (mac == NULL) { in wlan_setstamac()
507 * mac must be specified on the command line in wlan_setstamac()
510 IEEE80211_ADDR_EQ(wf->mac, zeromac)) in wlan_setstamac()
516 wf->ireq.i_name); in wlan_setstamac()
520 IEEE80211_ADDR_COPY(wf->mac, mac); in wlan_setstamac()
529 IEEE80211_ADDR_COPY(wf->u_info.info.is_u.macaddr, wf->mac); in wlan_collect()
530 wf->ireq.i_type = IEEE80211_IOC_STA_INFO; in wlan_collect()
531 wf->ireq.i_data = (caddr_t) &wf->u_info; in wlan_collect()
532 wf->ireq.i_len = sizeof(wf->u_info); in wlan_collect()
533 if (ioctl(wf->s, SIOCG80211, &wf->ireq) < 0) { in wlan_collect()
534 warn("%s:%s (IEEE80211_IOC_STA_INFO)", wf->ireq.i_name, in wlan_collect()
535 ether_ntoa((const struct ether_addr*) wf->mac)); in wlan_collect()
538 IEEE80211_ADDR_COPY(nstats->is_u.macaddr, wf->mac); in wlan_collect()
539 wf->ireq.i_type = IEEE80211_IOC_STA_STATS; in wlan_collect()
540 wf->ireq.i_data = (caddr_t) nstats; in wlan_collect()
541 wf->ireq.i_len = sizeof(*nstats); in wlan_collect()
542 if (ioctl(wf->s, SIOCG80211, &wf->ireq) < 0) in wlan_collect()
543 warn("%s:%s (IEEE80211_IOC_STA_STATS)", wf->ireq.i_name, in wlan_collect()
544 ether_ntoa((const struct ether_addr*) wf->mac)); in wlan_collect()
546 wf->ifr.ifr_data = (caddr_t) stats; in wlan_collect()
547 if (ioctl(wf->s, SIOCG80211STATS, &wf->ifr) < 0) in wlan_collect()
548 err(1, "%s (SIOCG80211STATS)", wf->ifr.ifr_name); in wlan_collect()
556 wlan_collect(wf, &wf->cur, &wf->ncur); in wlan_collect_cur()
564 wlan_collect(wf, &wf->total, &wf->ntotal); in wlan_collect_tot()
572 wf->total = wf->cur; in wlan_update_tot()
573 wf->ntotal = wf->ncur; in wlan_update_tot()
593 [IEEE80211_REASON_4WAY_HANDSHAKE_TIMEOUT]= "4-way handshake timeout", in setreason()
595 [IEEE80211_REASON_IE_IN_4WAY_DIFFERS] = "ie in 4-way differs", in setreason()
650 const struct ieee80211req_sta_info *si = &wf->u_info.info.info[0]; in wlan_getinfo()
654 snprintf(b, bs, "%.1fM", (float) si->isi_txmbps/2.0); in wlan_getinfo()
657 snprintf(b, bs, "%.1f", (float) si->isi_rssi/2.0); in wlan_getinfo()
660 snprintf(b, bs, "%d", si->isi_noise); in wlan_getinfo()
663 snprintf(b, bs, "%.1f", (float) si->isi_rssi/2.0 in wlan_getinfo()
664 + (float) si->isi_noise); in wlan_getinfo()
667 if (wf->cur.is_rx_authfail_code == 0) in wlan_getinfo()
669 setstatus(b, bs, wf->cur.is_rx_authfail_code); in wlan_getinfo()
672 if (wf->cur.is_rx_deauth_code == 0) in wlan_getinfo()
674 setreason(b, bs, wf->cur.is_rx_deauth_code); in wlan_getinfo()
677 if (wf->cur.is_rx_disassoc_code == 0) in wlan_getinfo()
679 setreason(b, bs, wf->cur.is_rx_disassoc_code); in wlan_getinfo()
691 snprintf(b, bs, "%u", wf->cur.is_##x - wf->total.is_##x); return 1 in wlan_get_curstat()
694 wf->ncur.is_stats.ns_##x - wf->ntotal.is_stats.ns_##x); \ in wlan_get_curstat()
865 snprintf(b, bs, "%u", wf->total.is_##x); return 1 in wlan_get_totstat()
867 snprintf(b, bs, "%u", wf->ntotal.is_stats.ns_##x); return 1 in wlan_get_totstat()
1041 bsdstat_init(&wf->base.base, "wlanstats", wlanstats, in BSDSTAT_DEFINE_BOUNCE()
1043 /* override base methods */ in BSDSTAT_DEFINE_BOUNCE()
1044 wf->base.base.collect_cur = wlan_collect_cur; in BSDSTAT_DEFINE_BOUNCE()
1045 wf->base.base.collect_tot = wlan_collect_tot; in BSDSTAT_DEFINE_BOUNCE()
1046 wf->base.base.get_curstat = wlan_get_curstat; in BSDSTAT_DEFINE_BOUNCE()
1047 wf->base.base.get_totstat = wlan_get_totstat; in BSDSTAT_DEFINE_BOUNCE()
1048 wf->base.base.update_tot = wlan_update_tot; in BSDSTAT_DEFINE_BOUNCE()
1054 wf->base.setifname = wlan_setifname; in BSDSTAT_DEFINE_BOUNCE()
1055 wf->base.getifname = wlan_getifname; in BSDSTAT_DEFINE_BOUNCE()
1056 wf->base.getopmode = wlan_getopmode; in BSDSTAT_DEFINE_BOUNCE()
1057 wf->base.setstamac = wlan_setstamac; in BSDSTAT_DEFINE_BOUNCE()
1058 wf->opmode = -1; in BSDSTAT_DEFINE_BOUNCE()
1060 wf->s = socket(AF_INET, SOCK_DGRAM, 0); in BSDSTAT_DEFINE_BOUNCE()
1061 if (wf->s < 0) in BSDSTAT_DEFINE_BOUNCE()
1064 wlan_setifname(&wf->base, ifname); in BSDSTAT_DEFINE_BOUNCE()
1065 wf->base.setfmt(&wf->base, fmtstring); in BSDSTAT_DEFINE_BOUNCE()
1067 return &wf->base; in BSDSTAT_DEFINE_BOUNCE()