]> git.ipfire.org Git - thirdparty/iw.git/commitdiff
iw: fix HT PHY BSS Membership selector value encoding
authorChristian Lamparter <chunkeey@googlemail.com>
Tue, 11 Oct 2011 11:15:25 +0000 (13:15 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 11 Oct 2011 11:28:18 +0000 (13:28 +0200)
IEEE 802.11n 7.3.2.2 extended the supported rate IE to
support a special encoding for HT rate support.

iw needs to be updated in order to recognize
the magic value and parse it accordingly.

e.g.:

> Extended supported rates: 63.5*

now becomes:

> Extended supported rates: HT*

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
scan.c

diff --git a/scan.c b/scan.c
index d083591d7a831da7d86bef76a7e26b1baf96e0b1..bf844fc009e6a5dd4d626c21ae9b270792bdd5a1 100644 (file)
--- a/scan.c
+++ b/scan.c
@@ -158,6 +158,8 @@ static void print_ssid(const uint8_t type, uint8_t len, const uint8_t *data)
        printf("\n");
 }
 
+#define BSS_MEMBERSHIP_SELECTOR_HT_PHY 127
+
 static void print_supprates(const uint8_t type, uint8_t len, const uint8_t *data)
 {
        int i;
@@ -166,7 +168,13 @@ static void print_supprates(const uint8_t type, uint8_t len, const uint8_t *data
 
        for (i = 0; i < len; i++) {
                int r = data[i] & 0x7f;
-               printf("%d.%d%s ", r/2, 5*(r&1), data[i] & 0x80 ? "*":"");
+
+               if (r == BSS_MEMBERSHIP_SELECTOR_HT_PHY)
+                       printf("HT");
+               else
+                       printf("%d.%d", r/2, 5*(r&1));
+
+               printf("%s ", data[i] & 0x80 ? "*" : "");
        }
        printf("\n");
 }