Preamble duration calculation duplicated the number of HT-LTF symbols
resulting in an incorrect preamble calculation. This fix removes the
duplicated code in file: epan/dissectors/packet-ieee80211-radio.c.
Bug: 14439
Change-Id: I550066a41c24948e16da6a43cf403cf206b7f32d
Reviewed-on: https://code.wireshark.org/review/25903
Reviewed-by: Simon Barber <simon.barber@meraki.net>
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot
Reviewed-by: Michael Mann <mmann78@netscape.net>
Reserved values are a bit of a hack. (If this were Swift....)
Change-Id: I243e8f497345f44d94af6106287556b8831fba92
Reviewed-on: https://code.wireshark.org/review/24633
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Macbook and QCA generators sometimes report the minimum MCS for subframes
in an aggregate that have FCS errors.
Change-Id: I77d1a81f5b3d0e3d0755adcb889f1237b0257814
Reviewed-on: https://code.wireshark.org/review/23521
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
As the wireless timeline is not fully finished and undocumented, disable
this GUI feature for now. This should avoid some user confusion when
opening an 802.11 trace.
For experimental and development purposes, the feature can be enabled
via the preferences (right-click on the "802.11 radio information"
layer, Protocol Preferences, Enable Wireless Timeline (experimental)").
Change-Id: Ieb529ccc0f23a051bcaba21ad18ac3c1d63b850e
Ping-Bug: 13769
Reviewed-on: https://code.wireshark.org/review/22558
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
Reviewed-by: Simon Barber <simon.barber@meraki.net>
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Allows duration to be calculated to 0
Handles generators where PHY type is not reported, but it can be
determined from the rate.
Change-Id: Ic0b9e1b0e3e51f4d5b670d25fea064daf250a55f
Reviewed-on: https://code.wireshark.org/review/22261
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
With captures where TSF indicates the end of the frame the
preamble was being counted twice in the calculation of the start.
Change-Id: I3d042d8ea3bc46a833438cb3d2f75e3499a7711d
Reviewed-on: https://code.wireshark.org/review/22020
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
taken from the timing analysis done in the wlan_radio dissector. QT only.
The timeline background is light gray, white for packets displayed in the packetlist,
and blue for the currently selected packet. Packets are coloured according to the
colouring rules foreground colour. The timeline can be zoomed with controls on the
toolbar.
At higher zoom levels the duration (NAV) field is plotted as a horizontal line to the
right of a packet.
The height of a packet in the timeline is proportional to the RSSI.
The bottom half of the packet is only shown if it matches the display filter.
Todo:
Auto detect TSF timing reference point (start/end of packet)
Add a scrollbar
Add a ruler showing time
Improve handling of focus.
Do not display NAV for packets with bad FCS.
Show related packets graphically
Different Y axis modes
- bandwidth/channel use display
- different transmitters per line
- background color from coloring rules
Live capture support
Change-Id: Ic31fffb0d6854966361ade7abb5c0be50db9a247
Reviewed-on: https://code.wireshark.org/review/20043
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
While we're at it, fix a typo in a comment.
Bug: 13711
Change-Id: Ie1e4aa9243ccb10621bf181b232e177c2a7f867c
Reviewed-on: https://code.wireshark.org/review/21676
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Perform sanity check on parsed data rate. Data rate of zero results in a
division by zero in calculate_llac_duration. Do not use data rate if zero.
Bug: 13706
Change-Id: I7883e1052a0965f7927d3a478c0aa992693f7fe1
Reviewed-on: https://code.wireshark.org/review/21626
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Change-Id: I3a9cddd9c6e47a5c5c48e2e02a32a71413bcf799
Reviewed-on: https://code.wireshark.org/review/13590
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Change-Id: Idad8f7eeed968eeed9f553fef98d58453f328afb
Reviewed-on: https://code.wireshark.org/review/21421
Petri-Dish: Michael Mann <mmann78@netscape.net>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Tested-by: Michael Mann <mmann78@netscape.net>
proto_tree_add_uint_format_value had the most use of unit strings, this
patch handles all of the other proto_tree_add_xxx_format_value calls that
could be better served using BASE_UNIT_STRING with a "unit string" in hf_ field.
Added more "common" unit string values to unit_strings.[ch]
Change-Id: I0fb680be781e10037eb7bd40dd21a9ee20c1fb1c
Reviewed-on: https://code.wireshark.org/review/19288
Reviewed-by: Michael Mann <mmann78@netscape.net>
Several calls to proto_tree_add_uint_format_value could be better served
using BASE_UNIT_STRING with a "unit string" in hf_ field. There also
a few cases where proto_tree_add_uint_format_value could just be
proto_tree_add_uint.
Added a few more "common" unit string values to unit_strings.[ch]
Change-Id: Iaedff82c515269c9c31ab9100dff19f5563c932d
Reviewed-on: https://code.wireshark.org/review/19242
Petri-Dish: Michael Mann <mmann78@netscape.net>
Reviewed-by: Michael Mann <mmann78@netscape.net>
calculations.
Change-Id: Ie314f7caee067b16da8dcb2a45cb1395ce0cb266
Reviewed-on: https://code.wireshark.org/review/17719
Petri-Dish: Michael Mann <mmann78@netscape.net>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
The valid array in a struct mcs_vht_valid is indexed by the bandwidth
and the NSS-1; use the NSS-1, not the NSS, as the index.
The maximum possible value of the NSS is MAX_VHT_NSS, so allow a value
of MAX_VHT_NSS.
Change-Id: I49585f217f3e70356c1dd1ba32b6c714ce202236
Reviewed-on: https://code.wireshark.org/review/16426
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Found by VS Code Analysis.
Change-Id: Idab6cb5496749ebff47466b20a9a665b1574565d
Reviewed-on: https://code.wireshark.org/review/16421
Reviewed-by: Michael Mann <mmann78@netscape.net>
A few of the combinations are marked as "Not valid" in 802.11ac-2013.
Ping-Bug: 12558
Change-Id: I18b78ebb84ab32a6fc53c6d634ef07ae87fb4866
Reviewed-on: https://code.wireshark.org/review/16153
Reviewed-by: Guy Harris <guy@alum.mit.edu>
stuff.
Bug: 12421
Change-Id: Idc56bd573b72465e36c8141d3c0736b286ff220a
Reviewed-on: https://code.wireshark.org/review/15448
Reviewed-by: Michael Mann <mmann78@netscape.net>
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Jörg Mayer <jmayer@loplof.de>
Started by grepping call_dissector_with_data, call_dissector_only and call_dissector and traced the handles passed into them to a find_dissector within the dissector. Then replaced find_dissector with find_dissector_add_dependency and added the protocol id from the dissector.
"data" dissector was not considered to be a dependency.
Change-Id: I15d0d77301306587ef8e7af5876e74231816890d
Reviewed-on: https://code.wireshark.org/review/14509
Petri-Dish: Michael Mann <mmann78@netscape.net>
Reviewed-by: Michael Mann <mmann78@netscape.net>
The check against 0 isn't really necessary, as stbc_streams >= 0 and
ieee80211_ht_streams[info_n->mcs_index] >= 1, but, what the heck.
Make stbc_streams unsigned, as the value assigned to it is unsigned.
Bug: 12085
Change-Id: I98e0edb718f62ee07bbe56b9d15859c68b7d2e43
Reviewed-on: https://code.wireshark.org/review/13844
Reviewed-by: Guy Harris <guy@alum.mit.edu>
It's also used as an array index, and it also is no guaranteed to be in
the proper range in all capture files, so bounds-check it.
Make the variable's type match that of the field in the radio metadata.
(It's never negative, so it's unsigned.)
This appears to be the last of the unchecked array references from bug
12085.
Bug: 12085
Change-Id: I3e5b821a9b70dfd520d01036f6f7d02008aca200
Reviewed-on: https://code.wireshark.org/review/13806
Reviewed-by: Guy Harris <guy@alum.mit.edu>
The arrays have MAX_MCS_INDEX+1 entries; valid indices to from 0 to
MAX_MCX_INDEX.
Change-Id: Ibbd30d36cc16143482b34212b1c6ce8df9e555ab
Ping-Bug: 12085
Reviewed-on: https://code.wireshark.org/review/13805
Reviewed-by: Guy Harris <guy@alum.mit.edu>
The arrays have MAX_MCS_INDEX+1 entries; valid indices to from 0 to
MAX_MCX_INDEX.
Change-Id: Ib8b939e687a00505cab5e5f9b3b6dce34e9d0b47
Reviewed-on: https://code.wireshark.org/review/13803
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Don't just check whether we *have* the MCS index, check whether it's a
valid MCS index, before we use it in calculations. Otherwise, we'll
make out-of-bounds array accesses.
(May or may not fix bug 12085, so just Ping-Bug for now. It's necessary
in any case.)
Change-Id: I7119366397b260089aea35ae9fcd5ad9ec6b06f2
Ping-Bug: 12085
Reviewed-on: https://code.wireshark.org/review/13790
Reviewed-by: Guy Harris <guy@alum.mit.edu>
to calculate rate. This will enable calculation of FEC rounding precisely
later on.
Change-Id: If7dcee39e12db208636fc8a90bfd784ffbea723c
Reviewed-on: https://code.wireshark.org/review/12857
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
remove redundant HT MCS/rate table. Preparation for duration calculations
that will use this data as well.
Change-Id: Iee4fb2eefb00eaa53a6368eca4ed60f705ff49df
Reviewed-on: https://code.wireshark.org/review/12856
Reviewed-by: Michael Mann <mmann78@netscape.net>
The use of a flag field here is aesthetically unpleasing when the flags
are referred to frequently. Convert these into bitfield entries.
Change-Id: I6f47e31558439dfd343ec7f856d04480366a1237
Reviewed-on: https://code.wireshark.org/review/12511
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Change-Id: Ie39ef054a4a942687bd079f3a4d8c2cc55d5f22c
Reviewed-on: https://code.wireshark.org/review/12485
Petri-Dish: Michael Mann <mmann78@netscape.net>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Calling a protocol dissection function will properly set/restore pinfo->current_proto, so there's no need to duplicate it.
Change-Id: Ic2ec0b35fa4d46a98f3410bf238056425076e4a9
Reviewed-on: https://code.wireshark.org/review/12205
Reviewed-by: Michael Mann <mmann78@netscape.net>
It doesn't appear to provide the FEC type, although radiotap does, so
add a flag to indicate whether we have that.
Change-Id: I298d79bc6b640ee2408c3d70075c32bf331a210c
Reviewed-on: https://code.wireshark.org/review/9533
Reviewed-by: Guy Harris <guy@alum.mit.edu>
We're already only setting it for 11b and 11g; this makes it a bit
cleaner, e.g. we don't need to say "oh, wait, we *don't* have short
preamble" for 11n and 11ac.
Change-Id: Idcf3e8c93d6a417f0319e4bd33247b98f07b6052
Reviewed-on: https://code.wireshark.org/review/9209
Reviewed-by: Guy Harris <guy@alum.mit.edu>
If we don't know whether space-time block coding is being used, we don't
know the number of space-time streams, so don't try to calculate it and
don't put it into the protocol tree.
Change-Id: I7ffd1b0e79e45fee526305846aadca04eb135b11
Reviewed-on: https://code.wireshark.org/review/9205
Reviewed-by: Guy Harris <guy@alum.mit.edu>
It's a bogus warning, but not all compilers do enough dataflow analysis
to figure that out.
Change-Id: Iebc1fffab87e83b16210003b60aae2333e0b5ec9
Reviewed-on: https://code.wireshark.org/review/9179
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Add more fields to the metadata to handle everything radiotap has, and
show them.
Call the FEC type field just "FEC", and have it be an integer field with
0 meaning BCC and 1 meaning LDPC, rather than a Boolean.
11ac doesn't have *an* MCS, it can have up to 4, one per user.
Label the 11ac bandwidth values the same way we do in the radiotap
dissector.
Change-Id: I2c2415baff3e5d68d49dda497980e8271d26b1f6
Reviewed-on: https://code.wireshark.org/review/9176
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Have a field that holds the PHY type but nothing else. Have
a union with structures holding PHY-type-specific information, as a
bunch of attributes are PHY-specific.
If we have a channel and band, but don't have the frequency, attempt to
calculate the frequency, and add that to the radio information if we
succeed. If we have the frequency, but don't have the channel, attempt
to calculate the channel, and add that to the radio information if we
succeed.
Handle FHSS information, 11a "half/quarter-clocked" and turbo
information, 11g normal vs. Super G, additional 11n and 11ac
information, and the "short preamble" flag for 11b and 11g.
Add a PHY type for 11 legacy DSSS and detect it if possible.
Clean up the AVS dissector - make all fields wlancap. fields (if you
want generic fields, use the wlan_radio. fields).
Set more fields when writing out Commview Wi-Fi files.
Change-Id: I691ac59f5e9e1a23779b56a65124049914b72e69
Reviewed-on: https://code.wireshark.org/review/9146
Reviewed-by: Guy Harris <guy@alum.mit.edu>