diff options
author | Guy Harris <guy@alum.mit.edu> | 2014-10-29 16:03:08 -0700 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2014-10-29 23:04:05 +0000 |
commit | 8165448504749c0a0554e2eef1964f6c88bad15d (patch) | |
tree | 14c6d3e8bc73052fe818519de7260e3bb672a4e6 /wiretap/peektagged.c | |
parent | 4acf4955f54c1fba30fdf2dc0dd4e11f6a3595b5 (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.c | 15 |
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: |