From Colus Tang via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7134
authorAlexis La Goutte <alexis.lagoutte@gmail.com>
Wed, 18 Apr 2012 07:22:12 +0000 (07:22 -0000)
committerAlexis La Goutte <alexis.lagoutte@gmail.com>
Wed, 18 Apr 2012 07:22:12 +0000 (07:22 -0000)
Unable to display the correct IEEE802.11 MCS data rates due to header definition

The problem is due to the ieee_802_11_phdr.data_rate is defined as guint8,
since this variable is counting number of 0.5Mbps units, any datarates which is
higher than 255Mbps would get wrapped up.  In the above example, only the lower
8bit value will be put into the ieee_802_11_phdr which is 0x04 and result in
the incorrect 2Mbps display.

There are 802.11n WLAN product is capable to transmit @450Mbps, we should fix
this data_rate from guint8 to guint16.

#BACKPORT

svn path=/trunk/; revision=42123

wiretap/wtap.h

index 505ab31cb701812d9141267256921bec60fce580..c049cce07184ae7b1666ece666b292572ff1399e 100644 (file)
@@ -514,7 +514,7 @@ struct p2p_phdr {
 struct ieee_802_11_phdr {
        gint    fcs_len;        /* Number of bytes of FCS - -1 means "unknown" */
        guint8  channel;        /* Channel number */
-       guint data_rate;      /* in .5 Mb/s units */
+       guint16 data_rate;      /* in .5 Mb/s units */
        guint8  signal_level;   /* percentage */
 };