diff options
author | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2014-06-10 08:48:27 +0200 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2014-06-10 08:18:54 +0000 |
commit | 2f13ccc64c6e38336674d1fd6d13e9ece9efec84 (patch) | |
tree | 19cbf5d7e9f8822dbb9186feb60acff8a4d4320d /epan/dissectors/packet-capwap.c | |
parent | dc904a161fda0bd1ed7bd5d90db5069fe548d8d3 (diff) |
CAPWAP: Display incorrect value for Wireless IEEE802.11 RSSI and Data Rate
* Wireless data ieee80211 RSSI (dBm) is a signed integer. In the wireless radio the dBm value is negative.
* Wireless data ieee80211 Data Rate (Mbps) is a 100Kbps. You need divide this value by 10.
Issue found by Massimo Vellucci (SmartCAPWAP)
Change-Id: I04dd8a9e38a5f60ee5bf64cd304db1b11413c809
Reviewed-on: https://code.wireshark.org/review/2094
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-capwap.c')
-rw-r--r-- | epan/dissectors/packet-capwap.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/epan/dissectors/packet-capwap.c b/epan/dissectors/packet-capwap.c index 29e8bc5108..4e659dfcc2 100644 --- a/epan/dissectors/packet-capwap.c +++ b/epan/dissectors/packet-capwap.c @@ -808,20 +808,23 @@ static void capwap_reassemble_init(void) static void dissect_capwap_data_message_bindings_ieee80211(tvbuff_t *tvb, proto_tree *data_message_binding_tree, guint offset, packet_info *pinfo) { - proto_item *data_message_binding_item; + proto_item *data_message_binding_item, *ti; proto_tree *sub_data_message_binding_tree; if (global_capwap_data_udp_port == pinfo->destport) { + guint16 data_rate; /* (WTP -> AC) IEEE 802.11 Frame Info */ - data_message_binding_item = proto_tree_add_item(data_message_binding_tree, hf_capwap_header_wireless_data_ieee80211_fi,tvb, offset, 4, ENC_NA); + data_message_binding_item = proto_tree_add_item(data_message_binding_tree, hf_capwap_header_wireless_data_ieee80211_fi, tvb, offset, 4, ENC_NA); sub_data_message_binding_tree = proto_item_add_subtree(data_message_binding_item, ett_capwap); - proto_tree_add_item(sub_data_message_binding_tree, hf_capwap_header_wireless_data_ieee80211_fi_rssi,tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_data_message_binding_tree, hf_capwap_header_wireless_data_ieee80211_fi_rssi, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_data_message_binding_tree, hf_capwap_header_wireless_data_ieee80211_fi_snr,tvb, offset+1, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_data_message_binding_tree, hf_capwap_header_wireless_data_ieee80211_fi_snr, tvb, offset+1, 1, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_data_message_binding_tree, hf_capwap_header_wireless_data_ieee80211_fi_data_rate,tvb, offset+2, 2, ENC_BIG_ENDIAN); + ti = proto_tree_add_item(sub_data_message_binding_tree, hf_capwap_header_wireless_data_ieee80211_fi_data_rate, tvb, offset+2, 2, ENC_BIG_ENDIAN); + data_rate = tvb_get_ntohs(tvb, offset+2); + proto_item_append_text(ti, " (%.1f Mb/s)", ((float)data_rate / 10)); } else { @@ -829,9 +832,9 @@ dissect_capwap_data_message_bindings_ieee80211(tvbuff_t *tvb, proto_tree *data_m data_message_binding_item = proto_tree_add_item(data_message_binding_tree, hf_capwap_header_wireless_data_ieee80211_dest_wlan,tvb, offset, 4, ENC_NA); sub_data_message_binding_tree = proto_item_add_subtree(data_message_binding_item, ett_capwap); - proto_tree_add_item(sub_data_message_binding_tree, hf_capwap_header_wireless_data_ieee80211_dw_wlan_id_bitmap,tvb, offset, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_data_message_binding_tree, hf_capwap_header_wireless_data_ieee80211_dw_wlan_id_bitmap, tvb, offset, 2, ENC_BIG_ENDIAN); - proto_tree_add_item(sub_data_message_binding_tree, hf_capwap_header_wireless_data_ieee80211_dw_reserved,tvb, offset+2, 2, ENC_BIG_ENDIAN); + proto_tree_add_item(sub_data_message_binding_tree, hf_capwap_header_wireless_data_ieee80211_dw_reserved, tvb, offset+2, 2, ENC_BIG_ENDIAN); } } @@ -1838,7 +1841,7 @@ proto_register_capwap_control(void) NULL, HFILL }}, { &hf_capwap_header_wireless_data_ieee80211_fi_rssi, { "Wireless data ieee80211 RSSI (dBm)", "capwap.header.wireless.data.ieee80211.fi.rssi", - FT_UINT8, BASE_DEC, NULL, 0x00, + FT_INT8, BASE_DEC, NULL, 0x00, NULL, HFILL }}, { &hf_capwap_header_wireless_data_ieee80211_fi_snr, { "Wireless data ieee80211 SNR (dB)", "capwap.header.wireless.data.ieee80211.fi.snr", |