| 345 | | p += sprintf(p, " rssi %d\n", ni->ni_rssi); |
|---|
| | 347 | p += sprintf(p, " rssi: %d dBm ;", ni->ni_rssi); |
|---|
| | 348 | p += sprintf(p, "refcnt: %d\n", ieee80211_node_refcnt(ni)); |
|---|
| | 349 | p += sprintf(p, " capinfo:"); |
|---|
| | 350 | if (ni->ni_capinfo & IEEE80211_CAPINFO_ESS) |
|---|
| | 351 | p += sprintf(p, " ess"); |
|---|
| | 352 | if (ni->ni_capinfo & IEEE80211_CAPINFO_IBSS) |
|---|
| | 353 | p += sprintf(p, " ibss"); |
|---|
| | 354 | if (ni->ni_capinfo & IEEE80211_CAPINFO_CF_POLLABLE) |
|---|
| | 355 | p += sprintf(p, " cfpollable"); |
|---|
| | 356 | if (ni->ni_capinfo & IEEE80211_CAPINFO_CF_POLLREQ) |
|---|
| | 357 | p += sprintf(p, " cfpollreq"); |
|---|
| | 358 | if (ni->ni_capinfo & IEEE80211_CAPINFO_PRIVACY) |
|---|
| | 359 | p += sprintf(p, " privacy"); |
|---|
| | 360 | if (ni->ni_capinfo & IEEE80211_CAPINFO_CHNL_AGILITY) |
|---|
| | 361 | p += sprintf(p, " chanagility"); |
|---|
| | 362 | if (ni->ni_capinfo & IEEE80211_CAPINFO_PBCC) |
|---|
| | 363 | p += sprintf(p, " pbcc"); |
|---|
| | 364 | if (ni->ni_capinfo & IEEE80211_CAPINFO_SHORT_PREAMBLE) |
|---|
| | 365 | p += sprintf(p, " shortpreamble"); |
|---|
| | 366 | if (ni->ni_capinfo & IEEE80211_CAPINFO_SHORT_SLOTTIME) |
|---|
| | 367 | p += sprintf(p, " shortslot"); |
|---|
| | 368 | if (ni->ni_capinfo & IEEE80211_CAPINFO_RSN) |
|---|
| | 369 | p += sprintf(p, " rsn"); |
|---|
| | 370 | if (ni->ni_capinfo & IEEE80211_CAPINFO_DSSSOFDM) |
|---|
| | 371 | p += sprintf(p, " dsssofdm"); |
|---|
| | 372 | if (ni->ni_capinfo & IEEE80211_CAPINFO_SPECTRUM_MGMT) |
|---|
| | 373 | p += sprintf(p, " spectrmgmt"); |
|---|
| | 374 | p += sprintf(p, "\n"); |
|---|
| | 375 | |
|---|
| | 376 | if(ni->ni_chan == IEEE80211_CHAN_ANYC) { |
|---|
| | 377 | p += sprintf(p, " freq: ? MHz (channel ?)\n opmode: ?\n"); |
|---|
| | 378 | } else { |
|---|
| | 379 | p += sprintf(p, " freq: %d MHz (channel %d)\n", |
|---|
| | 380 | ni->ni_chan->ic_freq, |
|---|
| | 381 | ieee80211_mhz2ieee(ni->ni_chan->ic_freq, |
|---|
| | 382 | ni->ni_chan->ic_flags)); |
|---|
| | 383 | p += sprintf(p, " opmode:"); |
|---|
| | 384 | if (IEEE80211_IS_CHAN_A(ni->ni_chan)) |
|---|
| | 385 | p += sprintf(p, " a"); |
|---|
| | 386 | if (IEEE80211_IS_CHAN_B(ni->ni_chan)) |
|---|
| | 387 | p += sprintf(p, " b"); |
|---|
| | 388 | if (IEEE80211_IS_CHAN_PUREG(ni->ni_chan)) |
|---|
| | 389 | p += sprintf(p, " pureg"); |
|---|
| | 390 | if (IEEE80211_IS_CHAN_G(ni->ni_chan)) |
|---|
| | 391 | p += sprintf(p, " g"); |
|---|
| | 392 | p += sprintf(p, "\n"); |
|---|
| | 393 | } |
|---|
| | 394 | |
|---|
| | 395 | rs = &ni->ni_rates; |
|---|
| | 396 | if (ni->ni_txrate >= 0 && ni->ni_txrate < rs->rs_nrates) { |
|---|
| | 397 | p += sprintf(p, " txrate: "); |
|---|
| | 398 | for (i = 0; i < rs->rs_nrates; i++) { |
|---|
| | 399 | p += sprintf(p, "%s%d%sMbps", |
|---|
| | 400 | (i != 0 ? " " : ""), |
|---|
| | 401 | (rs->rs_rates[i] & IEEE80211_RATE_VAL) / 2, |
|---|
| | 402 | ((rs->rs_rates[i] & 0x1) != 0 ? ".5" : "")); |
|---|
| | 403 | if (i == ni->ni_txrate) |
|---|
| | 404 | p += sprintf(p, "*"); /* current rate */ |
|---|
| | 405 | } |
|---|
| | 406 | p += sprintf(p, "\n"); |
|---|
| | 407 | } else |
|---|
| | 408 | p += sprintf(p, " txrate: %d ? (rs_nrates: %d)\n", |
|---|
| | 409 | ni->ni_txrate, ni->ni_rates.rs_nrates); |
|---|
| | 410 | |
|---|
| | 411 | p += sprintf(p, " txpower %d vlan %d\n", |
|---|
| | 412 | ni->ni_txpower, |
|---|
| | 413 | ni->ni_vlan); |
|---|
| | 414 | |
|---|
| | 415 | p += sprintf(p, " txseq: %d rxseq: %d fragno %d rxfragstamp %d\n", |
|---|
| | 416 | ni->ni_txseqs[0], |
|---|
| | 417 | ni->ni_rxseqs[0] >> IEEE80211_SEQ_SEQ_SHIFT, |
|---|
| | 418 | ni->ni_rxseqs[0] & IEEE80211_SEQ_FRAG_MASK, |
|---|
| | 419 | ni->ni_rxfragstamp); |
|---|