Date: Sun, 26 Apr 2009 22:49:26 +0000 (UTC) From: Sam Leffler <sam@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r191551 - head/sys/net80211 Message-ID: <200904262249.n3QMnQW3097239@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: sam Date: Sun Apr 26 22:49:25 2009 New Revision: 191551 URL: http://svn.freebsd.org/changeset/base/191551 Log: improvements: o formatting o more rx ampdu state o tdma state o show ifnet names o show auth policy name Modified: head/sys/net80211/ieee80211_ddb.c Modified: head/sys/net80211/ieee80211_ddb.c ============================================================================== --- head/sys/net80211/ieee80211_ddb.c Sun Apr 26 22:45:21 2009 (r191550) +++ head/sys/net80211/ieee80211_ddb.c Sun Apr 26 22:49:25 2009 (r191551) @@ -49,14 +49,18 @@ __FBSDID("$FreeBSD$"); #include <net/vnet.h> #include <net80211/ieee80211_var.h> +#ifdef IEEE80211_SUPPORT_TDMA +#include <net80211/ieee80211_tdma.h> +#endif #include <ddb/ddb.h> #include <ddb/db_sym.h> -#define DB_PRINTSYM(prefix, addr) \ - db_printf(prefix " "); \ +#define DB_PRINTSYM(prefix, name, addr) do { \ + db_printf("%s%-25s : ", prefix, name); \ db_printsym((db_addr_t) addr, DB_STGY_ANY); \ - db_printf("\n"); + db_printf("\n"); \ +} while (0) static void _db_show_sta(const struct ieee80211_node *); static void _db_show_vap(const struct ieee80211vap *, int); @@ -179,26 +183,35 @@ DB_SHOW_ALL_COMMAND(vaps, db_show_all_va static void _db_show_txampdu(const char *sep, int ix, const struct ieee80211_tx_ampdu *tap) { - db_printf("%stxampdu[%d]: %p flags %b ac %u\n", - sep, ix, tap, tap->txa_flags, IEEE80211_AGGR_BITS, tap->txa_ac); - db_printf("%s token %u qbytes %d qframes %d start %u wnd %u\n", - sep, tap->txa_token, tap->txa_qbytes, tap->txa_qframes, - tap->txa_start, tap->txa_wnd); - db_printf("%s attempts %d nextrequest %d\n", - sep, tap->txa_attempts, tap->txa_nextrequest); - /* XXX packet q + timer */ + db_printf("%stxampdu[%d]: %p flags %b ac %s\n", + sep, ix, tap, tap->txa_flags, IEEE80211_AGGR_BITS, + ieee80211_wme_acnames[tap->txa_ac]); + db_printf("%s token %u lastsample %d pkts %d avgpps %d qbytes %d qframes %d\n", + sep, tap->txa_token, tap->txa_lastsample, tap->txa_pkts, + tap->txa_avgpps, tap->txa_qbytes, tap->txa_qframes); + db_printf("%s start %u seqpending %u wnd %u attempts %d nextrequest %d\n", + sep, tap->txa_start, tap->txa_seqpending, tap->txa_wnd, + tap->txa_attempts, tap->txa_nextrequest); + /* XXX timer */ } static void _db_show_rxampdu(const char *sep, int ix, const struct ieee80211_rx_ampdu *rap) { + int i; + db_printf("%srxampdu[%d]: %p flags 0x%x tid %u\n", sep, ix, rap, rap->rxa_flags, ix /*XXX */); db_printf("%s qbytes %d qframes %d seqstart %u start %u wnd %u\n", sep, rap->rxa_qbytes, rap->rxa_qframes, rap->rxa_seqstart, rap->rxa_start, rap->rxa_wnd); - db_printf("%s age %d nframes %d\n", - sep, rap->rxa_age, rap->rxa_nframes); + db_printf("%s age %d nframes %d\n", sep, + rap->rxa_age, rap->rxa_nframes); + for (i = 0; i < IEEE80211_AGGR_BAWMAX; i++) + if (rap->rxa_m[i] != NULL) + db_printf("%s m[%2u:%4u] %p\n", sep, i, + IEEE80211_SEQ_ADD(rap->rxa_start, i), + rap->rxa_m[i]); } static void @@ -258,15 +271,43 @@ _db_show_sta(const struct ieee80211_node if (ni->ni_tx_ampdu[i].txa_flags & IEEE80211_AGGR_SETUP) _db_show_txampdu("\t", i, &ni->ni_tx_ampdu[i]); for (i = 0; i < WME_NUM_TID; i++) - if (ni->ni_rx_ampdu[i].rxa_nframes) + if (ni->ni_rx_ampdu[i].rxa_nframes || + ni->ni_rx_ampdu[i].rxa_qframes) _db_show_rxampdu("\t", i, &ni->ni_rx_ampdu[i]); db_printf("\tinact %u inact_reload %u txrate %u\n", ni->ni_inact, ni->ni_inact_reload, ni->ni_txrate); - /* XXX savedq */ /* XXX wdsq */ } +#ifdef IEEE80211_SUPPORT_TDMA +static void +_db_show_tdma(const char *sep, const struct ieee80211_tdma_state *ts, int showprocs) +{ + const char *cp; + int i; + + db_printf("%stdma %p:\n", sep, ts); + db_printf("%s features %b version %u slot %u txrate %u bintval %u peer %p\n", sep, + ts->tdma_features, TDMA_F_BITS, ts->tdma_version, ts->tdma_slot, + ts->tdma_txrate, ts->tdma_bintval, ts->tdma_peer); + db_printf("%s slotlen %u slotcnt %u bw[", sep, + ts->tdma_slotlen, ts->tdma_slotcnt); + cp = ""; + for (i = 0; i < TDMA_MAXSLOTS; i++) { + db_printf("%s%u", cp, ts->tdma_bw[i]); + cp = ":"; + } + db_printf("] inuse 0x%x active 0x%x count %d\n", + ts->tdma_inuse[0], ts->tdma_active[0], ts->tdma_count); + if (showprocs) { + DB_PRINTSYM(sep, " tdma_newstate", ts->tdma_newstate); + DB_PRINTSYM(sep, " tdma_recv_mgmt", ts->tdma_recv_mgmt); + DB_PRINTSYM(sep, " tdma_opdetach", ts->tdma_opdetach); + } +} +#endif /* IEEE80211_SUPPORT_TDMA */ + static void _db_show_vap(const struct ieee80211vap *vap, int showprocs) { @@ -280,7 +321,7 @@ _db_show_vap(const struct ieee80211vap * db_printf("\topmode %s", ieee80211_opmode_name[vap->iv_opmode]); db_printf(" state %s", ieee80211_state_name[vap->iv_state]); - db_printf(" ifp %p", vap->iv_ifp); + db_printf(" ifp %p(%s)", vap->iv_ifp, vap->iv_ifp->if_xname); db_printf("\n"); db_printf("\tic %p", vap->iv_ic); @@ -328,8 +369,8 @@ _db_show_vap(const struct ieee80211vap * db_printf(" scanreq_mindwell %u", vap->iv_scanreq_mindwell); db_printf(" scanreq_maxdwell %u", vap->iv_scanreq_maxdwell); db_printf("\n"); - db_printf(" scanreq_flags 0x%x", vap->iv_scanreq_flags); - db_printf("\tscanreq_nssid %d", vap->iv_scanreq_nssid); + db_printf("\tscanreq_flags 0x%x", vap->iv_scanreq_flags); + db_printf(" scanreq_nssid %d", vap->iv_scanreq_nssid); for (i = 0; i < vap->iv_scanreq_nssid; i++) _db_show_ssid(" scanreq_ssid[%u]", i, vap->iv_scanreq_ssid[i].len, vap->iv_scanreq_ssid[i].ssid); @@ -403,28 +444,31 @@ _db_show_vap(const struct ieee80211vap * for (i = 0; i < IEEE80211_WEP_NKID; i++) _db_show_key("\tnw_keys[%u]", i, &vap->iv_nw_keys[i]); - db_printf("\tauth %p", vap->iv_auth); + db_printf("\tauth %p(%s)", vap->iv_auth, vap->iv_auth->ia_name); db_printf(" ec %p", vap->iv_ec); db_printf(" acl %p", vap->iv_acl); db_printf(" as %p", vap->iv_as); db_printf("\n"); - +#ifdef IEEE80211_SUPPORT_TDMA + if (vap->iv_tdma != NULL) + _db_show_tdma("\t", vap->iv_tdma, showprocs); +#endif /* IEEE80211_SUPPORT_TDMA */ if (showprocs) { - DB_PRINTSYM("\tiv_key_alloc", vap->iv_key_alloc); - DB_PRINTSYM("\tiv_key_delete", vap->iv_key_delete); - DB_PRINTSYM("\tiv_key_set", vap->iv_key_set); - DB_PRINTSYM("\tiv_key_update_begin", vap->iv_key_update_begin); - DB_PRINTSYM("\tiv_key_update_end", vap->iv_key_update_end); - DB_PRINTSYM("\tiv_opdetach", vap->iv_opdetach); - DB_PRINTSYM("\tiv_input", vap->iv_input); - DB_PRINTSYM("\tiv_recv_mgmt", vap->iv_recv_mgmt); - DB_PRINTSYM("\tiv_deliver_data", vap->iv_deliver_data); - DB_PRINTSYM("\tiv_bmiss", vap->iv_bmiss); - DB_PRINTSYM("\tiv_reset", vap->iv_reset); - DB_PRINTSYM("\tiv_update_beacon", vap->iv_update_beacon); - DB_PRINTSYM("\tiv_newstate", vap->iv_newstate); - DB_PRINTSYM("\tiv_output", vap->iv_output); + DB_PRINTSYM("\t", "iv_key_alloc", vap->iv_key_alloc); + DB_PRINTSYM("\t", "iv_key_delete", vap->iv_key_delete); + DB_PRINTSYM("\t", "iv_key_set", vap->iv_key_set); + DB_PRINTSYM("\t", "iv_key_update_begin", vap->iv_key_update_begin); + DB_PRINTSYM("\t", "iv_key_update_end", vap->iv_key_update_end); + DB_PRINTSYM("\t", "iv_opdetach", vap->iv_opdetach); + DB_PRINTSYM("\t", "iv_input", vap->iv_input); + DB_PRINTSYM("\t", "iv_recv_mgmt", vap->iv_recv_mgmt); + DB_PRINTSYM("\t", "iv_deliver_data", vap->iv_deliver_data); + DB_PRINTSYM("\t", "iv_bmiss", vap->iv_bmiss); + DB_PRINTSYM("\t", "iv_reset", vap->iv_reset); + DB_PRINTSYM("\t", "iv_update_beacon", vap->iv_update_beacon); + DB_PRINTSYM("\t", "iv_newstate", vap->iv_newstate); + DB_PRINTSYM("\t", "iv_output", vap->iv_output); } } @@ -437,7 +481,7 @@ _db_show_com(const struct ieee80211com * TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) db_printf(" %s(%p)", vap->iv_ifp->if_xname, vap); db_printf("\n"); - db_printf("\tifp %p", ic->ic_ifp); + db_printf("\tifp %p(%s)", ic->ic_ifp, ic->ic_ifp->if_xname); db_printf(" comlock %p", &ic->ic_comlock); db_printf("\n"); db_printf("\theadroom %d", ic->ic_headroom); @@ -542,36 +586,36 @@ _db_show_com(const struct ieee80211com * db_printf("\n"); if (showprocs) { - DB_PRINTSYM("\tic_vap_create", ic->ic_vap_create); - DB_PRINTSYM("\tic_vap_delete", ic->ic_vap_delete); + DB_PRINTSYM("\t", "ic_vap_create", ic->ic_vap_create); + DB_PRINTSYM("\t", "ic_vap_delete", ic->ic_vap_delete); #if 0 /* operating mode attachment */ ieee80211vap_attach ic_vattach[IEEE80211_OPMODE_MAX]; #endif - DB_PRINTSYM("\tic_newassoc", ic->ic_newassoc); - DB_PRINTSYM("\tic_getradiocaps", ic->ic_getradiocaps); - DB_PRINTSYM("\tic_setregdomain", ic->ic_setregdomain); - DB_PRINTSYM("\tic_send_mgmt", ic->ic_send_mgmt); - DB_PRINTSYM("\tic_raw_xmit", ic->ic_raw_xmit); - DB_PRINTSYM("\tic_updateslot", ic->ic_updateslot); - DB_PRINTSYM("\tic_update_mcast", ic->ic_update_mcast); - DB_PRINTSYM("\tic_update_promisc", ic->ic_update_promisc); - DB_PRINTSYM("\tic_node_alloc", ic->ic_node_alloc); - DB_PRINTSYM("\tic_node_free", ic->ic_node_free); - DB_PRINTSYM("\tic_node_cleanup", ic->ic_node_cleanup); - DB_PRINTSYM("\tic_node_getrssi", ic->ic_node_getrssi); - DB_PRINTSYM("\tic_node_getsignal", ic->ic_node_getsignal); - DB_PRINTSYM("\tic_node_getmimoinfo", ic->ic_node_getmimoinfo); - DB_PRINTSYM("\tic_scan_start", ic->ic_scan_start); - DB_PRINTSYM("\tic_scan_end", ic->ic_scan_end); - DB_PRINTSYM("\tic_set_channel", ic->ic_set_channel); - DB_PRINTSYM("\tic_scan_curchan", ic->ic_scan_curchan); - DB_PRINTSYM("\tic_scan_mindwell", ic->ic_scan_mindwell); - DB_PRINTSYM("\tic_recv_action", ic->ic_recv_action); - DB_PRINTSYM("\tic_send_action", ic->ic_send_action); - DB_PRINTSYM("\tic_addba_request", ic->ic_addba_request); - DB_PRINTSYM("\tic_addba_response", ic->ic_addba_response); - DB_PRINTSYM("\tic_addba_stop", ic->ic_addba_stop); + DB_PRINTSYM("\t", "ic_newassoc", ic->ic_newassoc); + DB_PRINTSYM("\t", "ic_getradiocaps", ic->ic_getradiocaps); + DB_PRINTSYM("\t", "ic_setregdomain", ic->ic_setregdomain); + DB_PRINTSYM("\t", "ic_send_mgmt", ic->ic_send_mgmt); + DB_PRINTSYM("\t", "ic_raw_xmit", ic->ic_raw_xmit); + DB_PRINTSYM("\t", "ic_updateslot", ic->ic_updateslot); + DB_PRINTSYM("\t", "ic_update_mcast", ic->ic_update_mcast); + DB_PRINTSYM("\t", "ic_update_promisc", ic->ic_update_promisc); + DB_PRINTSYM("\t", "ic_node_alloc", ic->ic_node_alloc); + DB_PRINTSYM("\t", "ic_node_free", ic->ic_node_free); + DB_PRINTSYM("\t", "ic_node_cleanup", ic->ic_node_cleanup); + DB_PRINTSYM("\t", "ic_node_getrssi", ic->ic_node_getrssi); + DB_PRINTSYM("\t", "ic_node_getsignal", ic->ic_node_getsignal); + DB_PRINTSYM("\t", "ic_node_getmimoinfo", ic->ic_node_getmimoinfo); + DB_PRINTSYM("\t", "ic_scan_start", ic->ic_scan_start); + DB_PRINTSYM("\t", "ic_scan_end", ic->ic_scan_end); + DB_PRINTSYM("\t", "ic_set_channel", ic->ic_set_channel); + DB_PRINTSYM("\t", "ic_scan_curchan", ic->ic_scan_curchan); + DB_PRINTSYM("\t", "ic_scan_mindwell", ic->ic_scan_mindwell); + DB_PRINTSYM("\t", "ic_recv_action", ic->ic_recv_action); + DB_PRINTSYM("\t", "ic_send_action", ic->ic_send_action); + DB_PRINTSYM("\t", "ic_addba_request", ic->ic_addba_request); + DB_PRINTSYM("\t", "ic_addba_response", ic->ic_addba_response); + DB_PRINTSYM("\t", "ic_addba_stop", ic->ic_addba_stop); } if (showvaps && !TAILQ_EMPTY(&ic->ic_vaps)) { db_printf("\n");
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200904262249.n3QMnQW3097239>