summaryrefslogtreecommitdiff
path: root/wiretap/wtap.h
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2014-10-29 23:52:13 -0700
committerGuy Harris <guy@alum.mit.edu>2014-10-30 06:53:01 +0000
commitec33c3dfe7d8d50e7be2753f37bbaf236ce41793 (patch)
treeaa97f9ff4b88306b388242995a4bb5003d0db44a /wiretap/wtap.h
parentaff087af98ec27eced9bf19e3c72278365096a56 (diff)
downloadwireshark-ec33c3dfe7d8d50e7be2753f37bbaf236ce41793.tar.gz
Support the bandwidth and "short GI" fields from Peek tagged files.
Add a number of fields corresponding to components of the radiotap MCS field, add presence bits for them, and set and dissect the fields supported by Peek tagged files. Change-Id: I3fc801a3bc180e1c174d074a794af0f3d338f249 Reviewed-on: https://code.wireshark.org/review/4989 Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'wiretap/wtap.h')
-rw-r--r--wiretap/wtap.h35
1 files changed, 27 insertions, 8 deletions
diff --git a/wiretap/wtap.h b/wiretap/wtap.h
index 3a93c844db..26c6c9e477 100644
--- a/wiretap/wtap.h
+++ b/wiretap/wtap.h
@@ -581,12 +581,20 @@ struct p2p_phdr {
* times the ratio of the RSSI and the maximum RSSI.
*/
struct ieee_802_11_phdr {
- guint32 presence_flags; /* flags indicating presence of certain fields */
+ guint32 presence_flags; /* Flags indicating presence of certain fields */
+ guint32 flags_11n; /* Various flags for 802.11n traffic */
gint fcs_len; /* Number of bytes of FCS - -1 means "unknown" */
gboolean decrypted; /* TRUE if frame is decrypted even if "protected" bit is set */
guint16 channel; /* Channel number */
guint16 data_rate; /* Data rate, in .5 Mb/s units */
guint16 mcs_index; /* MCS index */
+ guint bandwidth:2; /* Bandwidth = 20 MHz, 40 MHz, 20+20L, 20+20U */
+ guint short_gi:1; /* True for short guard interval */
+ guint greenfield:1; /* True for greenfield, short for mixed */
+ guint ldpc:1; /* Tue for LDPC FEC */
+ guint stbc_streams:2; /* Number of STBC streams */
+ guint ness:1; /* Number of extension spatial streams */
+ guint16 mcs_info; /* 11n flags and bandwidth */
guint32 frequency; /* Channel center frequency */
guint8 signal_percent; /* Signal level, as a percentage */
guint8 noise_percent; /* Noise level, as a percentage */
@@ -597,13 +605,24 @@ struct ieee_802_11_phdr {
#define PHDR_802_11_HAS_CHANNEL 0x00000001 /* channel */
#define PHDR_802_11_HAS_DATA_RATE 0x00000002 /* data_rate */
-#define PHDR_802_11_HAS_MCS_INDEX 0x00000004 /* mcs_index */
-#define PHDR_802_11_HAS_FREQUENCY 0x00000008 /* frequency */
-#define PHDR_802_11_HAS_SIGNAL_PERCENT 0x00000010 /* signal_percent */
-#define PHDR_802_11_HAS_NOISE_PERCENT 0x00000020 /* noise_percent */
-#define PHDR_802_11_HAS_SIGNAL_DBM 0x00000040 /* signal_dbm */
-#define PHDR_802_11_HAS_NOISE_DBM 0x00000080 /* noise_dbm */
-#define PHDR_802_11_HAS_TSF_TIMESTAMP 0x00000100 /* tsf_timestamp */
+#define PHDR_802_11_HAS_MCS_INDEX 0x00000004 /* mcs */
+#define PHDR_802_11_HAS_BANDWIDTH 0x00000008 /* bandwidth */
+#define PHDR_802_11_HAS_SHORT_GI 0x00000010 /* short_gi */
+#define PHDR_802_11_HAS_GREENFIELD 0x00000020 /* greenfield */
+#define PHDR_802_11_HAS_LDPC 0x00000040 /* ldpc */
+#define PHDR_802_11_HAS_STBC_STREAMS 0x00000080 /* stbc_streams */
+#define PHDR_802_11_HAS_NESS 0x00000100 /* ness */
+#define PHDR_802_11_HAS_FREQUENCY 0x00000200 /* frequency */
+#define PHDR_802_11_HAS_SIGNAL_PERCENT 0x00000400 /* signal_percent */
+#define PHDR_802_11_HAS_NOISE_PERCENT 0x00000800 /* noise_percent */
+#define PHDR_802_11_HAS_SIGNAL_DBM 0x00001000 /* signal_dbm */
+#define PHDR_802_11_HAS_NOISE_DBM 0x00002000 /* noise_dbm */
+#define PHDR_802_11_HAS_TSF_TIMESTAMP 0x00004000 /* tsf_timestamp */
+
+#define PHDR_802_11_BANDWIDTH_20_MHZ 0 /* 20 MHz */
+#define PHDR_802_11_BANDWIDTH_40_MHZ 1 /* 40 MHz */
+#define PHDR_802_11_BANDWIDTH_20_20L 2 /* 20 + 20L */
+#define PHDR_802_11_BANDWIDTH_20_20U 3 /* 20 + 20U */
/* Packet "pseudo-header" for the output from CoSine L2 debug output. */