From: Simon Wunderlich Date: Fri, 8 Feb 2013 17:16:21 +0000 (+0100) Subject: iw: add radar detect widths to phy info X-Git-Tag: v3.10~21 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c5df9eb6b5112c9d4131f4cf500c2c6bf42901ae;p=thirdparty%2Fiw.git iw: add radar detect widths to phy info Signed-off-by: Simon Wunderlich --- diff --git a/info.c b/info.c index 08dbfc0..14db37f 100644 --- a/info.c +++ b/info.c @@ -245,6 +245,7 @@ static int print_phy_handler(struct nl_msg *msg, void *arg) [NL80211_IFACE_COMB_MAXNUM] = { .type = NLA_U32 }, [NL80211_IFACE_COMB_STA_AP_BI_MATCH] = { .type = NLA_FLAG }, [NL80211_IFACE_COMB_NUM_CHANNELS] = { .type = NLA_U32 }, + [NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS] = { .type = NLA_U32 }, }; struct nlattr *tb_comb[NUM_NL80211_IFACE_COMB]; static struct nla_policy iface_limit_policy[NUM_NL80211_IFACE_LIMIT] = { @@ -296,11 +297,30 @@ static int print_phy_handler(struct nl_msg *msg, void *arg) } printf(",\n\t\t "); - printf("total <= %d, #channels <= %d%s\n", + printf("total <= %d, #channels <= %d%s", nla_get_u32(tb_comb[NL80211_IFACE_COMB_MAXNUM]), nla_get_u32(tb_comb[NL80211_IFACE_COMB_NUM_CHANNELS]), tb_comb[NL80211_IFACE_COMB_STA_AP_BI_MATCH] ? ", STA/AP BI must match" : ""); + if (tb_comb[NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS]) { + unsigned long widths = nla_get_u32(tb_comb[NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS]); + + if (widths) { + int width; + bool first = true; + + printf(", radar detect widths: {"); + for (width = 0; width < 32; width++) + if (widths & (1 << width)) { + printf("%s %s", + first ? "":",", + channel_width_name(width)); + first = false; + } + printf(" }\n"); + } + } + printf("\n"); broken_combination: ; } diff --git a/interface.c b/interface.c index 26e72dc..b52c8dd 100644 --- a/interface.c +++ b/interface.c @@ -262,7 +262,7 @@ static char *channel_type_name(enum nl80211_channel_type channel_type) } } -static char *channel_width_name(enum nl80211_chan_width width) +char *channel_width_name(enum nl80211_chan_width width) { switch (width) { case NL80211_CHAN_WIDTH_20_NOHT: diff --git a/iw.h b/iw.h index 3e83bd2..d56e358 100644 --- a/iw.h +++ b/iw.h @@ -145,6 +145,7 @@ void print_ampdu_spacing(__u8 spacing); void print_ht_capability(__u16 cap); void print_vht_info(__u32 capa, const __u8 *mcs); +char *channel_width_name(enum nl80211_chan_width width); const char *iftype_name(enum nl80211_iftype iftype); const char *command_name(enum nl80211_commands cmd); int ieee80211_channel_to_frequency(int chan);