| 2736 | */ |
| 2737 | |
| 2738 | static void |
| 2739 | printwmeparam(const char *tag, const u_int8_t *ie, size_t ielen, int maxlen) |
| 2740 | { |
| 2741 | static const char *acnames[] = { "BE", "BK", "VO", "VI" }; |
| 2742 | const struct ieee80211_wme_param *wme = |
| 2743 | (const struct ieee80211_wme_param *) ie; |
| 2744 | int i; |
| 2745 | |
| 2746 | printf("%s", tag); |
| 2747 | if (!verbose) |
| 2748 | return; |
| 2749 | printf("<qosinfo 0x%x", wme->param_qosInfo); |
| 2750 | ie += offsetof(struct ieee80211_wme_param, params_acParams); |
| 2751 | for (i = 0; i < WME_NUM_AC; i++) { |
| 2752 | const struct ieee80211_wme_acparams *ac = |
| 2753 | &wme->params_acParams[i]; |
| 2754 | |
| 2755 | printf(" %s[%saifsn %u cwmin %u cwmax %u txop %u]", acnames[i], |
| 2756 | _IEEE80211_MASKSHIFT(ac->acp_aci_aifsn, WME_PARAM_ACM) ? |
| 2757 | "acm " : "", |
| 2758 | _IEEE80211_MASKSHIFT(ac->acp_aci_aifsn, WME_PARAM_AIFSN), |
| 2759 | _IEEE80211_MASKSHIFT(ac->acp_logcwminmax, |
| 2760 | WME_PARAM_LOGCWMIN), |
| 2761 | _IEEE80211_MASKSHIFT(ac->acp_logcwminmax, |
| 2762 | WME_PARAM_LOGCWMAX), |
| 2763 | LE_READ_2(&ac->acp_txop)); |
| 2764 | } |
| 2765 | printf(">"); |
| 2766 | } |
| 2767 | |
| 2768 | static void |
| 2769 | printwmeinfo(const char *tag, const u_int8_t *ie, size_t ielen, int maxlen) |