aboutsummaryrefslogtreecommitdiffstats
path: root/wiretap/peektagged.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2014-10-29 16:03:08 -0700
committerGuy Harris <guy@alum.mit.edu>2014-10-29 23:04:05 +0000
commit8165448504749c0a0554e2eef1964f6c88bad15d (patch)
tree14c6d3e8bc73052fe818519de7260e3bb672a4e6 /wiretap/peektagged.c
parent4acf4955f54c1fba30fdf2dc0dd4e11f6a3595b5 (diff)
Expand the 802.11 pseudo-header and support new radio metadata.
Add a set of presence bits, so we can indicate which bits of radio metadata we do and don't have. Fill in more radio metadata from capture files, and display it. (More to come.) Change-Id: Idea2c05442c74af17c14c4d5a8d8025ab27fbd15 Reviewed-on: https://code.wireshark.org/review/4987 Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'wiretap/peektagged.c')
-rw-r--r--wiretap/peektagged.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/wiretap/peektagged.c b/wiretap/peektagged.c
index c45a4382f3..4c9e66363e 100644
--- a/wiretap/peektagged.c
+++ b/wiretap/peektagged.c
@@ -556,27 +556,34 @@ peektagged_read_packet(wtap *wth, FILE_T fh, struct wtap_pkthdr *phdr,
break;
case TAG_PEEKTAGGED_CHANNEL:
+ hdr_info.ieee_802_11.presence_flags |= PHDR_802_11_HAS_CHANNEL;
hdr_info.ieee_802_11.channel = pletoh32(&tag_value[2]);
break;
case TAG_PEEKTAGGED_RATE:
+ /* XXX - what if it's the MCS? */
+ hdr_info.ieee_802_11.presence_flags |= PHDR_802_11_HAS_DATA_RATE;
hdr_info.ieee_802_11.data_rate = pletoh32(&tag_value[2]);
break;
case TAG_PEEKTAGGED_SIGNAL_PERC:
- hdr_info.ieee_802_11.signal_level = pletoh32(&tag_value[2]);
+ hdr_info.ieee_802_11.presence_flags |= PHDR_802_11_HAS_SIGNAL_PERCENT;
+ hdr_info.ieee_802_11.signal_percent = pletoh32(&tag_value[2]);
break;
case TAG_PEEKTAGGED_SIGNAL_DBM:
- /* XXX - not used yet */
+ hdr_info.ieee_802_11.presence_flags |= PHDR_802_11_HAS_SIGNAL_DBM;
+ hdr_info.ieee_802_11.signal_dbm = pletoh32(&tag_value[2]);
break;
case TAG_PEEKTAGGED_NOISE_PERC:
- /* XXX - not used yet */
+ hdr_info.ieee_802_11.presence_flags |= PHDR_802_11_HAS_NOISE_PERCENT;
+ hdr_info.ieee_802_11.noise_percent = pletoh32(&tag_value[2]);
break;
case TAG_PEEKTAGGED_NOISE_DBM:
- /* XXX - not used yet */
+ hdr_info.ieee_802_11.presence_flags |= PHDR_802_11_HAS_NOISE_DBM;
+ hdr_info.ieee_802_11.noise_dbm = pletoh32(&tag_value[2]);
break;
case TAG_PEEKTAGGED_UNKNOWN_0x000A: