svn commit: r195467 - projects/mesh11s/sbin/ifconfig
Rui Paulo
rpaulo at FreeBSD.org
Wed Jul 8 16:25:48 UTC 2009
Author: rpaulo
Date: Wed Jul 8 16:25:47 2009
New Revision: 195467
URL: http://svn.freebsd.org/changeset/base/195467
Log:
Use list sta instead of list mesh to display the neighbors.
Use list mesh to display the routing table.
Sponsored by: The FreeBSD Foundation
Modified:
projects/mesh11s/sbin/ifconfig/ifieee80211.c
Modified: projects/mesh11s/sbin/ifconfig/ifieee80211.c
==============================================================================
--- projects/mesh11s/sbin/ifconfig/ifieee80211.c Wed Jul 8 16:10:40 2009 (r195466)
+++ projects/mesh11s/sbin/ifconfig/ifieee80211.c Wed Jul 8 16:25:47 2009 (r195467)
@@ -163,6 +163,7 @@ static void print_channels(int, const st
int allchans, int verbose);
static void regdomain_makechannels(struct ieee80211_regdomain_req *,
const struct ieee80211_devcaps_req *);
+static const char *mesh_linkstate_string(uint8_t state);
static struct ieee80211req_chaninfo *chaninfo;
static struct ieee80211_regdomain regdomain;
@@ -3322,18 +3323,32 @@ list_stations(int s)
getchaninfo(s);
- printf("%-17.17s %4s %4s %4s %4s %4s %6s %6s %4s %-7s\n"
- , "ADDR"
- , "AID"
- , "CHAN"
- , "RATE"
- , "RSSI"
- , "IDLE"
- , "TXSEQ"
- , "RXSEQ"
- , "CAPS"
- , "FLAG"
- );
+ if (opmode == IEEE80211_M_MBSS)
+ printf("%-17.17s %4s %5s %5s %7s %4s %4s %4s %6s %6s\n"
+ , "ADDR"
+ , "CHAN"
+ , "LOCAL"
+ , "PEER"
+ , "STATE"
+ , "RATE"
+ , "RSSI"
+ , "IDLE"
+ , "TXSEQ"
+ , "RXSEQ"
+ );
+ else
+ printf("%-17.17s %4s %4s %4s %4s %4s %6s %6s %4s %-7s\n"
+ , "ADDR"
+ , "AID"
+ , "CHAN"
+ , "RATE"
+ , "RSSI"
+ , "IDLE"
+ , "TXSEQ"
+ , "RXSEQ"
+ , "CAPS"
+ , "FLAG"
+ );
cp = (const uint8_t *) u.req.info;
do {
const struct ieee80211req_sta_info *si;
@@ -3341,18 +3356,36 @@ list_stations(int s)
si = (const struct ieee80211req_sta_info *) cp;
if (si->isi_len < sizeof(*si))
break;
- printf("%s %4u %4d %3dM %4.1f %4d %6d %6d %-4.4s %-7.7s"
- , ether_ntoa((const struct ether_addr*) si->isi_macaddr)
- , IEEE80211_AID(si->isi_associd)
- , ieee80211_mhz2ieee(si->isi_freq, si->isi_flags)
- , si->isi_txmbps/2
- , si->isi_rssi/2.
- , si->isi_inact
- , gettxseq(si)
- , getrxseq(si)
- , getcaps(si->isi_capinfo)
- , getflags(si->isi_state)
- );
+ if (opmode == IEEE80211_M_MBSS)
+ printf("%s %4d %5x %5x %7.7s %3dM %4.1f %4d %6d %6d"
+ , ether_ntoa((const struct ether_addr*)
+ si->isi_macaddr)
+ , ieee80211_mhz2ieee(si->isi_freq,
+ si->isi_flags)
+ , si->isi_localid
+ , si->isi_peerid
+ , mesh_linkstate_string(si->isi_peerstate)
+ , si->isi_txmbps/2
+ , si->isi_rssi/2.
+ , si->isi_inact
+ , gettxseq(si)
+ , getrxseq(si)
+ );
+ else
+ printf("%s %4u %4d %3dM %4.1f %4d %6d %6d %-4.4s %-7.7s"
+ , ether_ntoa((const struct ether_addr*)
+ si->isi_macaddr)
+ , IEEE80211_AID(si->isi_associd)
+ , ieee80211_mhz2ieee(si->isi_freq,
+ si->isi_flags)
+ , si->isi_txmbps/2
+ , si->isi_rssi/2.
+ , si->isi_inact
+ , gettxseq(si)
+ , getrxseq(si)
+ , getcaps(si->isi_capinfo)
+ , getflags(si->isi_state)
+ );
printies(cp + si->isi_ie_off, si->isi_ie_len, 24);
printmimo(&si->isi_mimo);
printf("\n");
@@ -3382,64 +3415,6 @@ mesh_linkstate_string(uint8_t state)
#undef N
}
-static void
-list_peers(int s)
-{
- union {
- struct ieee80211req_sta_req req;
- uint8_t buf[24*1024];
- } u;
- const uint8_t *cp;
- int len;
-
- /* broadcast address =>'s get all stations */
- (void) memset(u.req.is_u.macaddr, 0xff, IEEE80211_ADDR_LEN);
- if (get80211len(s, IEEE80211_IOC_STA_INFO, &u, sizeof(u), &len) < 0)
- errx(1, "unable to get station information");
- if (len < sizeof(struct ieee80211req_sta_info))
- return;
-
- getchaninfo(s);
-
- printf("%-17.17s %4s %5s %5s %7s %4s %4s %4s %6s %6s\n"
- , "ADDR"
- , "CHAN"
- , "LOCAL"
- , "PEER"
- , "STATE"
- , "RATE"
- , "RSSI"
- , "IDLE"
- , "TXSEQ"
- , "RXSEQ"
- );
- cp = (const uint8_t *) u.req.info;
- do {
- const struct ieee80211req_sta_info *si;
-
- si = (const struct ieee80211req_sta_info *) cp;
- if (si->isi_len < sizeof(*si))
- break;
- printf("%s %4d %5x %5x %7.7s %3dM %4.1f %4d %6d %6d"
- , ether_ntoa((const struct ether_addr*) si->isi_macaddr)
- , ieee80211_mhz2ieee(si->isi_freq, si->isi_flags)
- , si->isi_localid
- , si->isi_peerid
- , mesh_linkstate_string(si->isi_peerstate)
- , si->isi_txmbps/2
- , si->isi_rssi/2.
- , si->isi_inact
- , gettxseq(si)
- , getrxseq(si)
- );
- if (verbose)
- printies(cp + si->isi_ie_off, si->isi_ie_len, 24);
- printmimo(&si->isi_mimo);
- printf("\n");
- cp += si->isi_len, len -= si->isi_len;
- } while (len >= sizeof(struct ieee80211req_sta_info));
-}
-
static const char *
get_chaninfo(const struct ieee80211_channel *c, int precise,
char buf[], size_t bsize)
@@ -4002,23 +3977,15 @@ list_mesh(int s)
, "HOPS"
, "METRIC"
, "LIFETIME");
-#if 0
- , "SEQ"
- , "PREQID");
-#endif
for (i = 0; i < ireq.i_len / sizeof(*routes); i++) {
printf("%s ",
ether_ntoa((const struct ether_addr *)routes[i].imr_dest));
- printf("%s %4u %4d %6dn",
+ printf("%s %4u %4d %6d\n",
ether_ntoa((const struct ether_addr *)
routes[i].imr_nexthop),
routes[i].imr_nhops, routes[i].imr_metric,
routes[i].imr_lifetime);
-#if 0
- , routes[i].rt_seq,
- routes[i].rt_preqid);
-#endif
}
}
@@ -4055,8 +4022,6 @@ DECL_CMD_FUNC(set80211list, arg, d)
list_regdomain(s, 1);
else if (iseq(arg, "countries"))
list_countries();
- else if (iseq(arg, "peers"))
- list_peers(s);
else if (iseq(arg, "mesh"))
list_mesh(s);
else
More information about the svn-src-projects
mailing list