| 4357 | } |
| 4358 | |
| 4359 | static void |
| 4360 | list_roam(int s) |
| 4361 | { |
| 4362 | const struct ieee80211_roamparam *rp; |
| 4363 | int mode; |
| 4364 | |
| 4365 | getroam(s); |
| 4366 | for (mode = IEEE80211_MODE_11A; mode < IEEE80211_MODE_MAX; mode++) { |
| 4367 | rp = &roamparams.params[mode]; |
| 4368 | if (rp->rssi == 0 && rp->rate == 0) |
| 4369 | continue; |
| 4370 | if (mode == IEEE80211_MODE_11NA || |
| 4371 | mode == IEEE80211_MODE_11NG || |
| 4372 | mode == IEEE80211_MODE_VHT_2GHZ || |
| 4373 | mode == IEEE80211_MODE_VHT_5GHZ) { |
| 4374 | if (rp->rssi & 1) |
| 4375 | LINE_CHECK("roam:%-7.7s rssi %2u.5dBm MCS %2u ", |
| 4376 | modename[mode], rp->rssi/2, |
| 4377 | rp->rate &~ IEEE80211_RATE_MCS); |
| 4378 | else |
| 4379 | LINE_CHECK("roam:%-7.7s rssi %4udBm MCS %2u ", |
| 4380 | modename[mode], rp->rssi/2, |
| 4381 | rp->rate &~ IEEE80211_RATE_MCS); |
| 4382 | } else { |
| 4383 | if (rp->rssi & 1) |
| 4384 | LINE_CHECK("roam:%-7.7s rssi %2u.5dBm rate %2u Mb/s", |
| 4385 | modename[mode], rp->rssi/2, rp->rate/2); |
| 4386 | else |
| 4387 | LINE_CHECK("roam:%-7.7s rssi %4udBm rate %2u Mb/s", |
| 4388 | modename[mode], rp->rssi/2, rp->rate/2); |
| 4389 | } |
| 4390 | } |
| 4391 | } |
| 4392 | |
| 4393 | /* XXX TODO: rate-to-string method... */ |
| 4394 | static const char* |
no test coverage detected