Commit Graph

55 Commits

Author SHA1 Message Date
Guy Harris 5e6be95359 Use "Present"/"Absent" for VHT presence flags.
Change-Id: I1571cf52d240c5d32dd8db0af2f18b91cc6e6d34
Reviewed-on: https://code.wireshark.org/review/9178
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-06-26 19:03:22 +00:00
Guy Harris 78adf17850 Fix handling of 11ac radio metadata.
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>
2015-06-26 18:29:08 +00:00
Guy Harris f1bc598d87 Clean up 802.11 radio information handling.
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>
2015-06-25 19:15:56 +00:00
Evan Huus 69cdfe9410 Remove another batch of deprecated tvb_length calls
Change-Id: Icfdde38e40cca05d0705a081153a4ea3e8782ee7
Reviewed-on: https://code.wireshark.org/review/9086
Reviewed-by: Evan Huus <eapache@gmail.com>
2015-06-24 04:30:35 +00:00
Guy Harris a8acb53e36 Pass the signal and noise dBm values to the 802.11 radio dissector.
Change-Id: Ia3fa6ba0b1d16315c77895f3e8ae96ed7e5e1e02
Reviewed-on: https://code.wireshark.org/review/9079
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-06-24 00:19:18 +00:00
Guy Harris 74c5ab0ff2 Treat channel flags fields as just collections of bits, not as type fields.
The radiotap and PPI specs don't call them type fields, and don't list
them as having type values, they call them flags fields and list the
individual bits.

Listing them as type fields is especially confusing with radiotap, as
you can have multiple fields giving *different* channel types, as per,
for example

    https://ask.wireshark.org/questions/42888/multiple-channel-types-and-mcs-missing

where an 802.11ac packet has one "channel type" field claiming it's
802.11a and another one claiming it's 802.11n when it is, in fact,
*neither* 11a *nor* 11n.

If you want to know the channel type, look at the "802.11 radio
information" tree that comes before the 802.11 header tree; it gives a
reasonable summary of most of the radio metadata, giving the *correct*
channel type, and not showing any field multiple times.  Look at the
radiotap or PPI or... tree only if either 1) you're debugging a driver
that creates those headers or 2) there's some data in the header that
*doesn't* show up in any form in the 802.11 radio information tree (in
which case the code for radio information probably needs to be changed
to show it).

Change-Id: I545b81b08a993dbb219fa7a4f54daac3637ea071
Reviewed-on: https://code.wireshark.org/review/9051
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-06-23 07:00:39 +00:00
Guy Harris 79c384d1d1 Don't use the value of the Flags field if we didn't have it.
Change-Id: Idd7771bd39ee823981b31b827645abd2ae516f66
Reviewed-on: https://code.wireshark.org/review/9039
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-06-22 23:16:43 +00:00
Guy Harris eaf62bbf86 Fix handling of XChannel radiotap field.
Fetch the flags before using them; thanks to Peter Wu for catching that
one.

Fetch and use the frequency and channel.

Have cflags be the variable for the flags in Channel and xcflags be the
variable for the flags in XChannel.

Change-Id: If82f7adb448eef04b769186a90a8722d03a702a3
Reviewed-on: https://code.wireshark.org/review/9038
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-06-22 23:07:50 +00:00
Guy Harris 8aa91b31b9 Provide PHY type and band information in the 802.11 pseudo-header.
Provide that information so that the "802.11 radio information" protocol
can indicate whether a packet was 802.11 legacy/11b/11a/11g/11n/11ac,
and possibly whether it's 2.4 GHz or 5 GHz 11n.  (Sometimes the center
frequency might not be supplied, so the band information can be useful.)

Also, provide some 11ac information, now that we can distinguish between
11n and 11ac.  Don't calculate the data rate from the MCS index unless
it's 11n; we don't yet have code to calculate it for 11ac.

For radiotap, only provide guard interval information for 11n and 11ac,
not for earlier standards.

Handle the 11ac flag in the Peek remote protocol.

For Peek tagged files, the "extension flags" are 11n/11ac flags, so we
don't have to check for the "MCS used" bit in order to decide that the
packet is 11n or 11ac or to decide whether to provide the "bandwidth" or
"short GI" information.

Change-Id: Ia8a1a9b11a35243ed84eb4e72c384cc77512b098
Reviewed-on: https://code.wireshark.org/review/9032
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-06-22 22:05:17 +00:00
Guy Harris 2895d58dc3 Call the "802.11 radio information" dissector for radio headers.
Have dissectors of various forms of radio information headers in the
packets fill in a struct ieee_802_11_phdr with radio information as
appropriate, and call the "802.11 radio information" dissector rather
than the raw 802.11 dissector.

This means that the radio information can be found in a
protocol-independent and encapsulation-independent form when you're
looking at the packet; that information can be presented in a form
somewhat easier to read than the raw metadata header format.

It also enables having a single "radio information" tap that allows
statistics to handle all different sorts of radio information
encapsulation.

In addition, it lets us clean up some of the arguments passed to the
common 802.11 dissector routine, by having it pull that information from
the struct ieee_802_11_phdr.

Ensure that the right structure gets passed to that routine, and that
all the appropriate parts of that structure are filled in.

Rename the 802.11 radio protocol to "wlan_radio", rather than just
"radio", as it's 802.11-specific.  Give all its fields "wlan_radio."
names rather than "wlan." names.

Change-Id: I78d79afece0ce0cf5fc17293c1e29596413b31c8
Reviewed-on: https://code.wireshark.org/review/8992
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-06-20 23:02:21 +00:00
Guy Harris debb81119c Use "Present"/"Absent" for presence bits.
That's clearer than "True"/"False".

Change-Id: I300c040f347eff8477a87f639bea8402772314b9
Reviewed-on: https://code.wireshark.org/review/8991
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-06-20 22:42:15 +00:00
Guy Harris bffabc706b Support the "number of extension spatial streams" information.
Change-Id: If69088aac0848d6ec8d239e3a9acc140ad376d6f
Reviewed-on: https://code.wireshark.org/review/8990
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-06-20 22:24:19 +00:00
Guy Harris d9b36c46d0 Pass the 802.11 pseudo-header as an argument.
Rather than accessing it through pinfo->pseudo_header, have it passed as
an argument.

This means we no longer tweak the pseudo-header filled in by libwiretap,
but instead construct our own pseudo-header, which is a bit cleaner.

It also opens up the possibility of other dissectors passing radio
information down to the 802.11 dissector, so it can display it in a
better-organized format than the raw metadata headers for
radiotap/PPI/Prism/AVS/etc., and having some of the options for 802.11
dissection (Atheros padding, Centrino stuff, etc.) also passed in
through that pseudo-header so we have fewer arguments to
dissect_ieee80211_common().

Change-Id: I470300a0407ebf029c542f7ca5878593563a70a9
Reviewed-on: https://code.wireshark.org/review/8980
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-06-18 20:13:50 +00:00
Guy Harris ac96b2cebd The STBC subfield of the radiotap MCS field is a count, not a flag.
It's a 2-bit field that is the "number of STBC streams", according to
the radiotap Web site item for the MCS field:

	http://www.radiotap.org/defined-fields/MCS

Correctly label both the FCS type and STBC stream count fields.

Change-Id: Ic49f6faec3335096c6bb8ce96ce0dec2f9342a37
Reviewed-on: https://code.wireshark.org/review/8971
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-06-18 02:08:38 +00:00
Gerald Combs ece4b01f21 Add the wireless toolbar.
Add the wireless toolbar to the Qt UI.

Start adding AirPcap support to ui/80211_utils. Add FCS validation
routines to ws80211_utils.

Move a bunch of AirPcap routines that require epan from caputils to
ui/gtk. They were required for driver key management, which we'll
leave to the AirPcap Control Panel in the Qt UI.

Move frequency-utils to wsutil.

Change-Id: I44446758046621d183f5c2ba9f6526bf01e084f1
Reviewed-on: https://code.wireshark.org/review/8910
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
2015-06-16 03:45:54 +00:00
Guy Harris 7a308e737d Fix some cases where we're shifting a signed 1 left.
Shift 1U instead, to make sure it's unsigned; the result of, for
example, the result of shifting a signed value left is undefined if the
value times 2^{shift count} doesn't fit in the *signed* type of the
shifted value.  That means, in particular, that the result of shifting 1
left by {number of bits in an int - 1} is undefined.  (In *practice*,
it'll probably be -2^32, with the bit you want set, but that's not
guaranteed, and GCC 5.1 seems not to like it.)

Change-Id: I96114047d402d1bae537cdfeb28a8564b1c94712
Reviewed-on: https://code.wireshark.org/review/8256
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-04-30 22:39:42 +00:00
Martin Mathieson 86ed26f0b8 Deleting unnecessary #includes from dissectors.
Third batch (packet-icmpv6.c -> packet-mac-lte.c).

Will look at cleaning up and committing script afterwards.

Change-Id: Ib91e36ad200db01c3000605f6a7a21125b96a640
Reviewed-on: https://code.wireshark.org/review/6018
Petri-Dish: Martin Mathieson <martin.r.mathieson@googlemail.com>
Reviewed-by: Martin Mathieson <martin.r.mathieson@googlemail.com>
2014-12-23 14:44:28 +00:00
Bill Meier b5d7b7ab6e Cleanup use of #includes in non-generated epan/dissector/*.c
Specifically:
- Set packet.h to be the first wireshark #include after
   config.h and "system" #includes.
   packet.h added as an #include in some cases when missing.
- Remove some #includes included (directly/indirectly) in
   packet.h. E.g., glib.h.
   (Done only for those files including packet.h).
- As needed, move "system" #includes to be after config.h and
   before wireshark #includes.
- Rework various #include file specifications for consistency.
- Misc.

Change-Id: Ifaa1a14b50b69fbad38ea4838a49dfe595c54c95
Reviewed-on: https://code.wireshark.org/review/5923
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Bill Meier <wmeier@newsguy.com>
2014-12-21 05:46:22 +00:00
Michael Mann 4f9af8608c Use proto_tree_add_bitmask for groups of proto_tree_add_boolean.
Part 2 of many

Change-Id: I50815e7738b011382392f3078a7107d3d9eec4ec
Reviewed-on: https://code.wireshark.org/review/5542
Reviewed-by: Michael Mann <mmann78@netscape.net>
Petri-Dish: Michael Mann <mmann78@netscape.net>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-12-01 08:52:03 +00:00
Guy Harris a683dd3edf Make the data rate field float, and calculate it for 802.11n.
Bug: 10637
Change-Id: Ifd4094f308246e92500cc7149c0d42c8496fb9f4
Reviewed-on: https://code.wireshark.org/review/5005
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-10-30 19:14:21 +00:00
Bill Meier 24d50bc290 Adjust indentation to match editor modelines; Do other minor whitespace changes.
Change-Id: Ic020b2c92db5d14a2be9dc4d35aef4514b8b0353
Reviewed-on: https://code.wireshark.org/review/4502
Reviewed-by: Bill Meier <wmeier@newsguy.com>
2014-10-06 17:12:33 +00:00
Guy Harris 4342d0f7a2 High Throughput is 11n, not 11g or 11a.
Change-Id: I86b6dac9cf3f1f524c1168d675bff4a04e361cee
Reviewed-on: https://code.wireshark.org/review/4374
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-09-29 18:59:57 +00:00
Michael Mann 14824e6adf Revert "Fixup: tvb_* -> tvb_captured"
https://www.wireshark.org/lists/wireshark-dev/201406/msg00131.html

This reverts commit 246fe2ca4c.

Change-Id: Ib24bae0198c13a84bd7f731bf4af921212109a8f
Reviewed-on: https://code.wireshark.org/review/2430
Reviewed-by: Michael Mann <mmann78@netscape.net>
2014-06-19 18:25:59 +00:00
Dario Lombardo 246fe2ca4c Fixup: tvb_* -> tvb_captured
Change-Id: I9209c1271967405c34c1b6fa43e1726a4d3a5a3f
Reviewed-on: https://code.wireshark.org/review/2377
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-06-18 14:14:58 +00:00
Alexis La Goutte 296591399f Remove all $Id$ from top of file
(Using sed : sed -i '/^ \* \$Id\$/,+1 d')

Fix manually some typo (in export_object_dicom.c and crc16-plain.c)

Change-Id: I4c1ae68d1c4afeace8cb195b53c715cf9e1227a8
Reviewed-on: https://code.wireshark.org/review/497
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-03-04 14:27:33 +00:00
Evan Huus 441ebf8cc8 Use the correct define for the array length check, actually fixes the overflow I
originall tried to fix in r54441.

svn path=/trunk/; revision=54462
2013-12-26 14:01:37 +00:00
Evan Huus 36587bc7be Avoid accessing past the end of an array.
svn path=/trunk/; revision=54441
2013-12-24 14:34:06 +00:00
Jakub Zawadzki e0e86bab5a Fix const warnings.
svn path=/trunk/; revision=54092
2013-12-14 14:33:46 +00:00
Jakub Zawadzki 5ac6474c94 Rename some of pint.h macros to match common style (bits number on the end).
pntohs  -> pntoh16
   pntohl  -> pntoh32
   pletohs -> pletoh16
   pletohl -> pletoh32
   phtons  -> phton16
   phtonl  -> phton32


svn path=/trunk/; revision=53652
2013-11-29 18:59:06 +00:00
Jakub Zawadzki c9b2ee3768 include <wsutil/pint.h> only when needed.
svn path=/trunk/; revision=53196
2013-11-09 15:44:29 +00:00
Evan Huus b581aff2c3 Based on help and suggestions from Johannes Berg, fix Radiotap Header decode the
right way.

Fixes https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9256 without
reintroducing https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9212

svn path=/trunk/; revision=52564
2013-10-12 12:53:35 +00:00
Evan Huus 3955de8abf Add some additional checks around the radiotap iterator initialization, to fix
the invalid access errors in
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9212

(also add modelines)

svn path=/trunk/; revision=52311
2013-10-01 13:07:25 +00:00
Michael Mann c70b1a548b Convert proto_tree_add_int_format calls to proto_tree_add_int_format_value where appropriate.
svn path=/trunk/; revision=52301
2013-09-30 16:10:40 +00:00
Michael Mann e6f1bd9056 Convert several proto_tree_add_bytes_format calls to proto_tree_add_bytes_format_value.
svn path=/trunk/; revision=52272
2013-09-29 18:19:29 +00:00
Pascal Quantin a0c53ffaa1 emem -> wmem conversion:
- ep_tvb_get_bits() -> wmem_packet_tvb_get_bits()
- tvb_g_memdup()/ep_tvb_memdup() -> tvb_memdup()
- tvb_fake_unicode()/tvb_get_ephemeral_faked_unicode() -> tvb_get_faked_unicode()
- tvb_get_g_string()/tvb_get_ephemeral_string()/tvb_get_seasonal_string() -> tvb_get_string()
- tvb_get_g_unicode_string()/tvb_get_ephemeral_unicode_string() -> tvb_get_unicode_string()
- tvb_get_ephemeral_string_enc() -> tvb_get_string_enc()
- update docs accordingly

svn path=/trunk/; revision=52172
2013-09-22 15:50:55 +00:00
Michael Mann 346f803d42 Convert proto_tree_add_uint_format to proto_tree_add_uint_format_value if hf_ field name is the first part of the formatted string. This was all manual inspection and most cases were either:
1. Case sensitivity differences between hf_ field name and formatted string.
2. Unnecessary whitespace between hf_ field name and colon in formatted string

There are cases where the hf_ field name doesn't quite match the proto_tree_add_uint_format, but it's close enough that one of them should be "right", I'm just not sure which is, I just know the string in proto_tree_add_uint_format is the one displayed.

svn path=/trunk/; revision=52098
2013-09-16 10:39:06 +00:00
Michael Mann b38ee917b1 Convert proto_tree_add_uint_format to proto_tree_add_uint_format_value if hf_ field name is the first part of the formatted string. This was done with a perl script on the dissectors directory (packet-*.c), followed by manual inspection of the output. The manual inspection yielded a few cases that really should have been proto_tree_add_uint or proto_tree_add_item, so I updated them accordingly.
The script didn't catch as many as I would have liked, but it's a start.

The most common (ab)use of proto_tree_add_uint_format was for appending strings to CRC/checksum values to note good or bad CRC/checksum.

svn path=/trunk/; revision=52045
2013-09-15 01:48:30 +00:00
Michael Mann 9e3f9b449f expert_add_info_format_text -> expert_add_info_format
svn path=/trunk/; revision=51852
2013-09-09 00:44:09 +00:00
Michael Mann 5405b34469 Batch of filterable expert info.
svn path=/trunk/; revision=51688
2013-09-02 23:32:31 +00:00
Michael Mann b38ec03858 Bugfix SGI Nsym disambiguation is unconditionally displayed when dissecting VHT, bug 8989 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8989)
From Karl Beldan

BACKPORT(1.8,1.10)

svn path=/trunk/; revision=51422
2013-08-19 00:11:50 +00:00
Pascal Quantin d7856ef304 Fix bug https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8829 :
Prevent an out of bounds access in 802.11 Radiotap dissector

svn path=/trunk/; revision=50090
2013-06-20 22:21:24 +00:00
Evan Huus 1164990ffb Initialize a proto_tree variable which is now used for expert info but is
only being set if tree.

svn path=/trunk/; revision=49239
2013-05-11 02:02:31 +00:00
Guy Harris 7a6235666d Add expert info for radiotap header errors.
Add the "unknown fields" expert info to the bitmap, just as we do the
other expert info.

svn path=/trunk/; revision=49238
2013-05-10 23:21:42 +00:00
Anders Broman 81e80f2c0b From beroset:
remove C++ incompatibilities 
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8416

svn path=/trunk/; revision=48355
2013-03-17 16:48:47 +00:00
Bill Meier c439b805e2 Comment out unused hf[] entries & etc.
(found by checkhf)

svn path=/trunk/; revision=47389
2013-01-31 17:55:31 +00:00
Guy Harris 8ed7a73e22 Fix a bunch of warnings.
Cast away some implicit 64-bit-to-32-bit conversion errors due to use of
sizeof.

Cast away some implicit 64-bit-to-32-bit conversion errors due to use of
strtol() and strtoul().

Change some data types to avoid those implicit conversion warnings.

When assigning a constant to a float, make sure the constant isn't a
double, by appending "f" to the constant.

Constify a bunch of variables, parameters, and return values to
eliminate warnings due to strings being given const qualifiers.  Cast
away those warnings in some cases where an API we don't control forces
us to do so.

Enable a bunch of additional warnings by default.  Note why at least
some of the other warnings aren't enabled.

randpkt.c and text2pcap.c are used to build programs, so they don't need
to be in EXTRA_DIST.

If the user specifies --enable-warnings-as-errors, add -Werror *even if
the user specified --enable-extra-gcc-flags; assume they know what
they're doing and are willing to have the compile fail due to the extra
GCC warnings being treated as errors.

svn path=/trunk/; revision=46748
2012-12-26 05:57:06 +00:00
Bill Meier e5e3373e9d Fix several [-Wshadow] warnings;
Also:
 - Create/use several extended value strings;
 - Reformat hf[] array;
 - Do various whitespace and formatting changes to use a consistent style.

svn path=/trunk/; revision=46222
2012-11-27 14:34:27 +00:00
Jeff Morriss 2552c750e5 We always HAVE_CONFIG_H so don't bother checking whether we have it or not.
svn path=/trunk/; revision=45017
2012-09-20 02:03:38 +00:00
Alexis La Goutte b6e0cc28a5 From Daniel via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7716
Adding VHT Radiotap fields support

Parsing and UI representation for recently adopted VHT Radiotap fields for
802.11ac specification
http://www.radiotap.org/defined-fields/VHT 

From me :
* Make checkAPIs happy
* Fix wrong last argument for some proto_tree_add_item
* Use proto_tree_add_item when it is possible

svn path=/trunk/; revision=44985
2012-09-18 20:46:05 +00:00
Alexis La Goutte daa1818d39 Enhance radiotap dissector
* Reorder code ! Match with Wireshark "Rules" (put in top value_string and static hf_..., in bottom proto_register_radiotap...)

svn path=/trunk/; revision=44336
2012-08-08 12:56:37 +00:00