diff options
author | Ashish Shukla <shukla.a@gmail.com> | 2017-01-19 08:30:56 -0500 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2017-01-19 21:41:38 +0000 |
commit | 27960cc6aba46a9d48923ee0d4c641201e44b590 (patch) | |
tree | a0b702b18142724ef0f75707c5a207af2df38231 /epan/dissectors/packet-ieee80211-radiotap.c | |
parent | 07541f1f680c2dbbfe8a33f81102c711d768ac63 (diff) |
Always display vht mcs data rate, but mark invalid assuming BCC encoding.
Bug: 12859
Change-Id: Iaf2242b0dcf16f211d5a7565b96099cc44e8bf3d
Reviewed-on: https://code.wireshark.org/review/17899
Petri-Dish: Michael Mann <mmann78@netscape.net>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/packet-ieee80211-radiotap.c')
-rw-r--r-- | epan/dissectors/packet-ieee80211-radiotap.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/epan/dissectors/packet-ieee80211-radiotap.c b/epan/dissectors/packet-ieee80211-radiotap.c index e613e73e95..10731d35d9 100644 --- a/epan/dissectors/packet-ieee80211-radiotap.c +++ b/epan/dissectors/packet-ieee80211-radiotap.c @@ -218,6 +218,7 @@ static gint ett_radiotap_vht_user = -1; static expert_field ei_radiotap_data_past_header = EI_INIT; static expert_field ei_radiotap_present_reserved = EI_INIT; static expert_field ei_radiotap_present = EI_INIT; +static expert_field ei_radiotap_invalid_data_rate = EI_INIT; static dissector_handle_t ieee80211_radio_handle; @@ -1795,15 +1796,17 @@ dissect_radiotap(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void* u } if (can_calculate_rate && mcs <= MAX_MCS_VHT_INDEX && - nss <= MAX_VHT_NSS && - ieee80211_vhtvalid[mcs].valid[bandwidth][nss]) { + nss <= MAX_VHT_NSS ) { float rate = ieee80211_vhtinfo[mcs].rates[bandwidth][gi_length] * nss; - if (rate != 0.0f && user_tree) { + if (rate != 0.0f ) { rate_ti = proto_tree_add_float_format(user_tree, hf_radiotap_vht_datarate[i], tvb, offset, 12, rate, "Data Rate: %.1f Mb/s", rate); PROTO_ITEM_SET_GENERATED(rate_ti); + if (ieee80211_vhtvalid[mcs].valid[bandwidth][nss] == FALSE) + expert_add_info(pinfo, rate_ti, &ei_radiotap_invalid_data_rate); + } } } @@ -2734,6 +2737,7 @@ void proto_register_radiotap(void) { &ei_radiotap_present, { "radiotap.present.radiotap_and_vendor", PI_MALFORMED, PI_ERROR, "Both radiotap and vendor namespace specified in bitmask word", EXPFILL }}, { &ei_radiotap_present_reserved, { "radiotap.present.reserved.unknown", PI_UNDECODED, PI_NOTE, "Unknown Radiotap fields, code not implemented, Please check radiotap documentation, Contact Wireshark developers if you want this supported", EXPFILL }}, { &ei_radiotap_data_past_header, { "radiotap.data_past_header", PI_MALFORMED, PI_ERROR, "Radiotap data goes past the end of the radiotap header", EXPFILL }}, + { &ei_radiotap_invalid_data_rate, { "radiotap.vht.datarate.invalid", PI_PROTOCOL, PI_WARN, "Data rate invalid", EXPFILL }}, }; module_t *radiotap_module; |