]> git.ipfire.org Git - thirdparty/iw.git/commitdiff
iw: parse max allowed bandwidth
authorLuis R. Rodriguez <lrodriguez@atheros.com>
Tue, 10 Mar 2009 02:28:48 +0000 (22:28 -0400)
committerJohannes Berg <johannes@sipsolutions.net>
Wed, 11 Mar 2009 13:44:26 +0000 (14:44 +0100)
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
info.c
nl80211.h

diff --git a/info.c b/info.c
index ed135a99c2f7f69915f8a17888c6f8a630ede0be..f7041319b50f0330a52cf56250a2ed8721d51bcf 100644 (file)
--- a/info.c
+++ b/info.c
@@ -54,6 +54,7 @@ static int print_phy_handler(struct nl_msg *msg, void *arg)
                [NL80211_FREQUENCY_ATTR_NO_IBSS] = { .type = NLA_FLAG },
                [NL80211_FREQUENCY_ATTR_RADAR] = { .type = NLA_FLAG },
                [NL80211_FREQUENCY_ATTR_MAX_TX_POWER] = { .type = NLA_U32 },
+               [NL80211_FREQUENCY_ATTR_MAX_BANDWIDTH] = { .type = NLA_U32 },
        };
 
        struct nlattr *tb_rate[NL80211_BITRATE_ATTR_MAX + 1];
@@ -205,9 +206,19 @@ static int print_phy_handler(struct nl_msg *msg, void *arg)
                        freq = nla_get_u32(tb_freq[NL80211_FREQUENCY_ATTR_FREQ]);
                        printf("\t\t\t* %d MHz [%d]", freq, ieee80211_frequency_to_channel(freq));
 
-                       if (tb_freq[NL80211_FREQUENCY_ATTR_MAX_TX_POWER] &&
-                           !tb_freq[NL80211_FREQUENCY_ATTR_DISABLED])
-                               printf(" (%.1f dBm)", 0.01 * nla_get_u32(tb_freq[NL80211_FREQUENCY_ATTR_MAX_TX_POWER]));
+                       if (!tb_freq[NL80211_FREQUENCY_ATTR_DISABLED]) {
+                               bool set_freq_pow_bw = false;
+                               if (tb_freq[NL80211_FREQUENCY_ATTR_MAX_TX_POWER]) {
+                                       printf(" (%.1f dBm", 0.01 * nla_get_u32(tb_freq[NL80211_FREQUENCY_ATTR_MAX_TX_POWER]));
+                                       set_freq_pow_bw = true;
+                               }
+                               if (tb_freq[NL80211_FREQUENCY_ATTR_MAX_BANDWIDTH]) {
+                                       printf(" / %d MHz", nla_get_u32(tb_freq[NL80211_FREQUENCY_ATTR_MAX_BANDWIDTH]));
+                                       set_freq_pow_bw = true;
+                               }
+                               if (set_freq_pow_bw)
+                                       printf(")");
+                       }
 
                        open = 0;
                        if (tb_freq[NL80211_FREQUENCY_ATTR_DISABLED]) {
index f33aa08dd9b37d6a7b8e1414ec99022ada1673a1..91184600b3fad39e9cebea8dbcf227ac10ac9456 100644 (file)
--- a/nl80211.h
+++ b/nl80211.h
@@ -664,6 +664,7 @@ enum nl80211_band_attr {
  *     on this channel in current regulatory domain.
  * @NL80211_FREQUENCY_ATTR_MAX_TX_POWER: Maximum transmission power in mBm
  *     (100 * dBm).
+ * @NL80211_FREQUENCY_ATTR_MAX_BANDWIDTH: max bandwidth allowed, given in MHz
  */
 enum nl80211_frequency_attr {
        __NL80211_FREQUENCY_ATTR_INVALID,
@@ -673,6 +674,7 @@ enum nl80211_frequency_attr {
        NL80211_FREQUENCY_ATTR_NO_IBSS,
        NL80211_FREQUENCY_ATTR_RADAR,
        NL80211_FREQUENCY_ATTR_MAX_TX_POWER,
+       NL80211_FREQUENCY_ATTR_MAX_BANDWIDTH,
 
        /* keep last */
        __NL80211_FREQUENCY_ATTR_AFTER_LAST,
@@ -680,6 +682,7 @@ enum nl80211_frequency_attr {
 };
 
 #define NL80211_FREQUENCY_ATTR_MAX_TX_POWER NL80211_FREQUENCY_ATTR_MAX_TX_POWER
+#define NL80211_FREQUENCY_ATTR_MAX_BANDWIDTH NL80211_FREQUENCY_ATTR_MAX_BANDWIDTH
 
 /**
  * enum nl80211_bitrate_attr - bitrate attributes