ANNOUNCEMENT: Live Wireshark University & Allegro Packets online APAC Wireshark Training Session
April 17th, 2024 | 14:30-16:00 SGT (UTC+8) | Online

Wireshark-bugs: [Wireshark-bugs] [Bug 5280] radiotap data rate wrong for some rates

Date: Wed, 13 Oct 2010 13:42:38 -0700 (PDT)
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5280

Gerald Combs <gerald@xxxxxxxxxxxxx> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |gerald@xxxxxxxxxxxxx

--- Comment #2 from Gerald Combs <gerald@xxxxxxxxxxxxx> 2010-10-13 13:42:36 PDT ---
The 0x80 check is for FreeBSD's version of radiotap. From
http://fxr.watson.org/fxr/source/net80211/ieee80211_radiotap.h :

  102  * IEEE80211_RADIOTAP_RATE              uint8_t         500kb/s or index
  103  *
  104  *      Tx/Rx data rate.  If bit 0x80 is set then it represents an
  105  *      an MCS index and not an IEEE rate.

It doesn't look like any of the Linux drivers use this field in this way (and
I'm pretty sure AirPcap doesn't) so it appears that we have a conflict.

Instead of breaking FreeBSD's radiotap dissection could we do something like
this?

@@ -989,7 +989,7 @@
         if (length_remaining < 1)
         break;
         rate = tvb_get_guint8(tvb, offset);
-        if (rate & 0x80) {
+        if (rate & 0x80 && rate & 0x7f < 16) {
         /* XXX adjust by CW and short GI like other sniffers? */
         rate = ieee80211_htrates[rate & 0xf];
         }

This assumes that FreeBSD's radiotap will always have 16 HT rate values. The
only other alternative is to add a rate interpretation preference.

-- 
Configure bugmail: https://bugs.wireshark.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.