summaryrefslogtreecommitdiff
path: root/epan/dissectors/packet-ieee80211-radiotap.c
diff options
context:
space:
mode:
authorAshish Shukla <shukla.a@gmail.com>2017-01-19 08:30:56 -0500
committerMichael Mann <mmann78@netscape.net>2017-01-19 21:41:38 +0000
commit27960cc6aba46a9d48923ee0d4c641201e44b590 (patch)
treea0b702b18142724ef0f75707c5a207af2df38231 /epan/dissectors/packet-ieee80211-radiotap.c
parent07541f1f680c2dbbfe8a33f81102c711d768ac63 (diff)
downloadwireshark-27960cc6aba46a9d48923ee0d4c641201e44b590.tar.gz
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.c10
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;