From 232cb9a2dd87ea9cc9c88d4c32bfb7b452705130 Mon Sep 17 00:00:00 2001 From: Michael Mann Date: Thu, 15 Dec 2016 13:01:27 -0500 Subject: Remove proto_item_append_text calls in favor of BASE_UNIT_STRING. Many proto_item_append_text calls were just adding a unit string to a field. There's a better way to do that now. Change-Id: Id18d5ac1ea4d8ecdc4cbe7ebaec07fbd2eab6e78 Reviewed-on: https://code.wireshark.org/review/19289 Petri-Dish: Michael Mann Reviewed-by: Michael Mann --- plugins/wimax/msg_dcd.c | 73 +++++++++++++++++------------------------ plugins/wimax/msg_rng_rsp.c | 10 +++--- plugins/wimax/msg_ucd.c | 79 ++++++++++++++++++--------------------------- plugins/wimax/wimax_utils.c | 57 ++++++++++++++++---------------- plugins/wimax/wimax_utils.h | 12 +++++++ 5 files changed, 107 insertions(+), 124 deletions(-) (limited to 'plugins/wimax') diff --git a/plugins/wimax/msg_dcd.c b/plugins/wimax/msg_dcd.c index 75742f7032..e0e6fcb6c9 100644 --- a/plugins/wimax/msg_dcd.c +++ b/plugins/wimax/msg_dcd.c @@ -35,6 +35,7 @@ #include #include "wimax_tlv.h" #include "wimax_mac.h" +#include "wimax_utils.h" /* Delete the following variable as soon as possible */ extern gboolean include_cor2_changes; @@ -419,8 +420,7 @@ static int dissect_mac_mgmt_msg_dcd_decoder(tvbuff_t *tvb, packet_info *pinfo, p { case DCD_BURST_FREQUENCY: { - tlv_item = add_tlv_subtree(&tlv_info, tlv_tree, hf_dcd_burst_freq, tvb, (offset+tlv_offset), ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " kHz"); + add_tlv_subtree(&tlv_info, tlv_tree, hf_dcd_burst_freq, tvb, (offset+tlv_offset), ENC_BIG_ENDIAN); break; } case DCD_BURST_FEC_CODE_TYPE: @@ -453,8 +453,7 @@ static int dissect_mac_mgmt_msg_dcd_decoder(tvbuff_t *tvb, packet_info *pinfo, p } case DCD_BS_EIRP: { - tlv_item = add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_bs_eirp, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " dBm"); + add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_bs_eirp, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } case DCD_FRAME_DURATION: @@ -479,28 +478,24 @@ static int dissect_mac_mgmt_msg_dcd_decoder(tvbuff_t *tvb, packet_info *pinfo, p } case DCD_TTG: { - tlv_item = add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_ttg, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " PS"); + add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_ttg, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } case DCD_RTG: { - tlv_item = add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_rtg, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " PS"); + add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_rtg, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } #ifdef WIMAX_16D_2004 case DCD_RSS: { - tlv_item = add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_rss, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " dBm"); + add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_rss, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } #else case DCD_EIRXP: { - tlv_item = add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_eirxp, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " dBm"); + add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_eirxp, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } #endif @@ -511,8 +506,7 @@ static int dissect_mac_mgmt_msg_dcd_decoder(tvbuff_t *tvb, packet_info *pinfo, p } case DCD_FREQUENCY: { - tlv_item = add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_frequency, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " kHz"); + add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_frequency, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } case DCD_BS_ID: @@ -539,8 +533,7 @@ static int dissect_mac_mgmt_msg_dcd_decoder(tvbuff_t *tvb, packet_info *pinfo, p #endif case DCD_H_ARQ_ACK_DELAY: { - tlv_item = add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_h_arq_ack_delay, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " frame offset"); + add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_h_arq_ack_delay, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } case DCD_MAC_VERSION: @@ -601,24 +594,20 @@ static int dissect_mac_mgmt_msg_dcd_decoder(tvbuff_t *tvb, packet_info *pinfo, p } case DCD_TLV_T_31_H_ADD_THRESHOLD: { - tlv_item = add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_tlv_t_31_h_add_threshold, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " dB"); + add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_tlv_t_31_h_add_threshold, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } case DCD_TLV_T_32_H_DELETE_THRESHOLD: { - tlv_item = add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_tlv_t_32_h_delete_threshold, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " dB"); + add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_tlv_t_32_h_delete_threshold, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } case DCD_TLV_T_33_ASR: { tlv_item = add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_tlv_t_33_asr, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); tlv_tree = proto_item_add_subtree(tlv_item, ett_mac_mgmt_msg_dcd_decoder); - tlv_item = proto_tree_add_item(tlv_tree, hf_dcd_tlv_t_33_asr_m, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " frames"); - tlv_item = proto_tree_add_item(tlv_tree, hf_dcd_tlv_t_33_asr_l, tvb, offset, 1, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " frames"); + proto_tree_add_item(tlv_tree, hf_dcd_tlv_t_33_asr_m, tvb, offset, 1, ENC_BIG_ENDIAN); + proto_tree_add_item(tlv_tree, hf_dcd_tlv_t_33_asr_l, tvb, offset, 1, ENC_BIG_ENDIAN); break; } case DCD_TLV_T_35_PAGING_GROUP_ID: @@ -638,14 +627,12 @@ static int dissect_mac_mgmt_msg_dcd_decoder(tvbuff_t *tvb, packet_info *pinfo, p } case DCD_TLV_T_51_HYSTERSIS_MARGIN: { - tlv_item = add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_tlv_t_51_hysteresis_margin, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " dB"); + add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_tlv_t_51_hysteresis_margin, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } case DCD_TLV_T_52_TIME_TO_TRIGGER_DURATION: { - tlv_item = add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_tlv_t_52_time_to_trigger_duration, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " ms"); + add_tlv_subtree(&tlv_info, dcd_tree, hf_dcd_tlv_t_52_time_to_trigger_duration, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } case DCD_TLV_T_54_TRIGGER: @@ -744,21 +731,21 @@ void proto_register_mac_mgmt_msg_dcd(void) &hf_dcd_tlv_t_33_asr_l, { "ASR Switching Period (L)", "wmx.dcd.asr.l", - FT_UINT8, BASE_DEC, NULL, 0x0f, NULL, HFILL + FT_UINT8, BASE_DEC|BASE_UNIT_STRING, &wimax_units_frame_frames, 0x0f, NULL, HFILL } }, { &hf_dcd_tlv_t_33_asr_m, { "ASR Slot Length (M)", "wmx.dcd.asr.m", - FT_UINT8, BASE_DEC, NULL, 0xf0, NULL, HFILL + FT_UINT8, BASE_DEC|BASE_UNIT_STRING, &wimax_units_frame_frames, 0xf0, NULL, HFILL } }, { &hf_dcd_bs_eirp, { "BS EIRP", "wmx.dcd.bs_eirp", - FT_INT16, BASE_DEC, NULL, 0x00, NULL, HFILL + FT_INT16, BASE_DEC|BASE_UNIT_STRING, &wimax_units_dbm, 0x00, NULL, HFILL } }, { @@ -809,7 +796,7 @@ void proto_register_mac_mgmt_msg_dcd(void) &hf_dcd_burst_freq, { "Frequency", "wmx.dcd.burst.freq", - FT_UINT8, BASE_DEC, NULL, 0x00, NULL, HFILL + FT_UINT8, BASE_DEC|BASE_UNIT_STRING, &wimax_units_khz, 0x00, NULL, HFILL } }, #if 0 @@ -952,7 +939,7 @@ void proto_register_mac_mgmt_msg_dcd(void) &hf_dcd_eirxp, { "EIRXP (IR, max)", "wmx.dcd.eirxp", - FT_INT16, BASE_DEC, NULL, 0x00, NULL, HFILL + FT_INT16, BASE_DEC|BASE_UNIT_STRING, &wimax_units_dbm, 0x00, NULL, HFILL } }, #endif @@ -981,14 +968,14 @@ void proto_register_mac_mgmt_msg_dcd(void) &hf_dcd_frequency, { "Downlink Center Frequency", "wmx.dcd.frequency", - FT_UINT32, BASE_DEC, NULL, 0x00, NULL, HFILL + FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &wimax_units_khz, 0x00, NULL, HFILL } }, { &hf_dcd_tlv_t_31_h_add_threshold, { "H_add Threshold", "wmx.dcd.h_add_threshold", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL + FT_UINT8, BASE_DEC|BASE_UNIT_STRING, &wimax_units_db, 0x0, NULL, HFILL } }, #ifdef WIMAX_16D_2004 @@ -996,7 +983,7 @@ void proto_register_mac_mgmt_msg_dcd(void) &hf_dcd_h_arq_ack_delay, { "H-ARQ ACK Delay for DL Burst", "wmx.dcd.h_arq_ack_delay_dl_burst", - FT_UINT8, BASE_DEC, NULL, 0x00, "", HFILL + FT_UINT8, BASE_DEC|BASE_UNIT_STRING, &wimax_units_frame_offset, 0x00, "", HFILL } }, #else @@ -1004,7 +991,7 @@ void proto_register_mac_mgmt_msg_dcd(void) &hf_dcd_h_arq_ack_delay, { "H-ARQ ACK Delay for UL Burst", "wmx.dcd.h_arq_ack_delay_ul_burst", - FT_UINT8, BASE_DEC, NULL, 0x00, NULL, HFILL + FT_UINT8, BASE_DEC|BASE_UNIT_STRING, &wimax_units_frame_offset, 0x00, NULL, HFILL } }, #endif @@ -1012,7 +999,7 @@ void proto_register_mac_mgmt_msg_dcd(void) &hf_dcd_tlv_t_32_h_delete_threshold, { "H_delete Threshold", "wmx.dcd.h_delete_threshold", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL + FT_UINT8, BASE_DEC|BASE_UNIT_STRING, &wimax_units_db, 0x0, NULL, HFILL } }, { @@ -1054,7 +1041,7 @@ void proto_register_mac_mgmt_msg_dcd(void) &hf_dcd_tlv_t_51_hysteresis_margin, { "Hysteresis Margin", "wmx.dcd.hysteresis_margin", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL + FT_UINT8, BASE_DEC|BASE_UNIT_STRING, &wimax_units_db, 0x0, NULL, HFILL } }, { @@ -1146,7 +1133,7 @@ void proto_register_mac_mgmt_msg_dcd(void) &hf_dcd_rss, { "RSS (IR, max)", "wmx.dcd.rss", - FT_INT16, BASE_DEC, NULL, 0x00, "", HFILL + FT_INT16, BASE_DEC|BASE_UNIT_STRING, &wimax_units_dbm, 0x00, "", HFILL } }, #endif @@ -1154,7 +1141,7 @@ void proto_register_mac_mgmt_msg_dcd(void) &hf_dcd_rtg, { "RTG", "wmx.dcd.rtg", - FT_UINT8, BASE_HEX, NULL, 0x00, NULL, HFILL + FT_UINT8, BASE_HEX|BASE_UNIT_STRING, &wimax_units_ps, 0x00, NULL, HFILL } }, #ifdef WIMAX_16D_2004 @@ -1177,7 +1164,7 @@ void proto_register_mac_mgmt_msg_dcd(void) &hf_dcd_tlv_t_52_time_to_trigger_duration, { "Time to Trigger Duration", "wmx.dcd.time_trigger_duration", - FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL + FT_UINT8, BASE_DEC|BASE_UNIT_STRING, &wimax_units_ms, 0x0, NULL, HFILL } }, { @@ -1198,7 +1185,7 @@ void proto_register_mac_mgmt_msg_dcd(void) &hf_dcd_ttg, { "TTG", "wmx.dcd.ttg", - FT_UINT16, BASE_HEX, NULL, 0x00, NULL, HFILL + FT_UINT16, BASE_HEX|BASE_UNIT_STRING, &wimax_units_ps, 0x00, NULL, HFILL } }, { diff --git a/plugins/wimax/msg_rng_rsp.c b/plugins/wimax/msg_rng_rsp.c index 8842061f2d..35ed143e2b 100644 --- a/plugins/wimax/msg_rng_rsp.c +++ b/plugins/wimax/msg_rng_rsp.c @@ -335,16 +335,14 @@ static int dissect_mac_mgmt_msg_rng_rsp_decoder(tvbuff_t *tvb, packet_info *pinf break; } case RNG_RSP_OFFSET_FREQ_ADJUST: { - tlv_item = add_tlv_subtree(&tlv_info, rng_rsp_tree, hf_rng_rsp_offset_freq_adjust, tvb, offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " Hz"); + add_tlv_subtree(&tlv_info, rng_rsp_tree, hf_rng_rsp_offset_freq_adjust, tvb, offset, ENC_BIG_ENDIAN); break; } case RNG_RSP_RANGING_STATUS: ranging_status_item = add_tlv_subtree(&tlv_info, rng_rsp_tree, hf_rng_rsp_ranging_status, tvb, offset, ENC_BIG_ENDIAN); break; case RNG_RSP_DL_FREQ_OVERRIDE: { - dl_freq_override_item = add_tlv_subtree(&tlv_info, rng_rsp_tree, hf_rng_rsp_dl_freq_override, tvb, offset, ENC_BIG_ENDIAN); - proto_item_append_text(dl_freq_override_item, " kHz"); + add_tlv_subtree(&tlv_info, rng_rsp_tree, hf_rng_rsp_dl_freq_override, tvb, offset, ENC_BIG_ENDIAN); break; } case RNG_RSP_UL_CHANNEL_ID_OVERRIDE: @@ -577,7 +575,7 @@ void proto_register_mac_mgmt_msg_rng_rsp(void) &hf_rng_rsp_dl_freq_override, { "Downlink Frequency Override", "wmx.rng_rsp.dl_freq_override", - FT_UINT32, BASE_DEC, NULL, 0x00, NULL, HFILL + FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &wimax_units_hz, 0x00, NULL, HFILL } }, { @@ -768,7 +766,7 @@ void proto_register_mac_mgmt_msg_rng_rsp(void) &hf_rng_rsp_offset_freq_adjust, { "Offset Frequency Adjust", "wmx.rng_rsp.offset_freq_adjust", - FT_INT32, BASE_DEC, NULL, 0x00, NULL, HFILL + FT_INT32, BASE_DEC|BASE_UNIT_STRING, &wimax_units_hz, 0x00, NULL, HFILL } }, { diff --git a/plugins/wimax/msg_ucd.c b/plugins/wimax/msg_ucd.c index 27e86e37ce..985450e90e 100644 --- a/plugins/wimax/msg_ucd.c +++ b/plugins/wimax/msg_ucd.c @@ -35,6 +35,7 @@ #include #include "wimax_tlv.h" #include "wimax_mac.h" +#include "wimax_utils.h" void proto_register_mac_mgmt_msg_ucd(void); void proto_reg_handoff_mac_mgmt_msg_ucd(void); @@ -68,7 +69,7 @@ static gint hf_ucd_tlv_t_159_band_amc_allocation_threshold = -1; static gint hf_ucd_tlv_t_158_optional_permutation_ul_allocated_subchannels_bitmap = -1; static gint hf_ucd_tlv_t_160_band_amc_release_threshold = -1; static gint hf_ucd_tlv_t_161_band_amc_allocation_timer = -1; -/* static gint hf_ucd_tlv_t_162_band_amc_release_timer = -1; */ +static gint hf_ucd_tlv_t_162_band_amc_release_timer = -1; static gint hf_ucd_tlv_t_163_band_status_report_max_period = -1; static gint hf_ucd_tlv_t_164_band_amc_retry_timer = -1; static gint hf_ucd_tlv_t_171_harq_ack_delay_dl_burst = -1; @@ -369,17 +370,13 @@ static int dissect_mac_mgmt_msg_ucd_decoder(tvbuff_t *tvb, packet_info *pinfo, p } case UCD_BURST_RANGING_DATA_RATIO: { - proto_item *tlv_item2; - tlv_item2 = add_tlv_subtree(&tlv_info, tlv_tree, hf_ucd_burst_ranging_data_ratio, tvb, (offset+tlv_offset), ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item2, " dB"); + add_tlv_subtree(&tlv_info, tlv_tree, hf_ucd_burst_ranging_data_ratio, tvb, (offset+tlv_offset), ENC_BIG_ENDIAN); break; } #if 0 /* for OFDM */ case UCD_BURST_POWER_BOOST: { - proto_item *tlv_item2; - tlv_item2 = add_tlv_subtree(&tlv_info, tlv_tree, hf_ucd_burst_power_boost, tvb, (offset+tlv_offset), ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item2, " dB"); + add_tlv_subtree(&tlv_info, tlv_tree, hf_ucd_burst_power_boost, tvb, (offset+tlv_offset), ENC_BIG_ENDIAN); break; } case UCD_BURST_TCS_ENABLE: @@ -403,20 +400,17 @@ static int dissect_mac_mgmt_msg_ucd_decoder(tvbuff_t *tvb, packet_info *pinfo, p } case UCD_BW_REQ_SIZE: { - tlv_item1 = add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_bw_req_size, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item1, " PS"); + add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_bw_req_size, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } case UCD_RANGING_REQ_SIZE: { - tlv_item1 = add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_ranging_req_size, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item1, " PS"); + add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_ranging_req_size, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } case UCD_FREQUENCY: { - tlv_item1 = add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_freq, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item1, " kHz"); + add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_freq, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } case UCD_TLV_T_7_HO_RANGING_START: @@ -440,56 +434,47 @@ static int dissect_mac_mgmt_msg_ucd_decoder(tvbuff_t *tvb, packet_info *pinfo, p } case UCD_TLV_T_159_BAND_AMC_ALLOCATION_THRESHHOLD: { - tlv_item1 = add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_tlv_t_159_band_amc_allocation_threshold, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item1, " dB"); + add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_tlv_t_159_band_amc_allocation_threshold, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } case UCD_TLV_T_160_BAND_AMC_RELEASE_THRESHOLD: { - tlv_item1 = add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_tlv_t_160_band_amc_release_threshold, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item1, " dB"); + add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_tlv_t_160_band_amc_release_threshold, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } case UCD_TLV_T_161_BAND_AMC_ALLOCATION_TIMER: { - tlv_item1 = add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_tlv_t_161_band_amc_allocation_timer, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item1, " frames"); + add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_tlv_t_161_band_amc_allocation_timer, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } case UCD_TLV_T_162_BAND_AMC_RELEASE_TIMER: { - tlv_item1 = add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_tlv_t_161_band_amc_allocation_timer, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item1, " frames"); + add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_tlv_t_162_band_amc_release_timer, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } case UCD_TLV_T_163_BAND_STATUS_REPORT_MAX_PERIOD: { - tlv_item1 = add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_tlv_t_163_band_status_report_max_period, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item1, " frames"); + add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_tlv_t_163_band_status_report_max_period, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } case UCD_TLV_T_164_BAND_AMC_RETRY_TIMER: { - tlv_item1 = add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_tlv_t_164_band_amc_retry_timer, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item1, " frames"); + add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_tlv_t_164_band_amc_retry_timer, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } case UCD_TLV_T_170_SAFETY_CHANNEL_RETRY_TIMER: { - tlv_item1 = add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_tlv_t_170_safety_channel_retry_timer, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item1, " frames"); + add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_tlv_t_170_safety_channel_retry_timer, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } case UCD_TLV_T_171_HARQ_ACK_DELAY_FOR_DL_BURST: { - tlv_item1 = add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_tlv_t_171_harq_ack_delay_dl_burst, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item1, " frames offset"); + add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_tlv_t_171_harq_ack_delay_dl_burst, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } case UCD_TLV_T_172_CQICH_BAND_AMC_TRANSITION_DELAY: { - tlv_item1 = add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_tlv_t_172_cqich_band_amc_transition_delay, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item1, " frames"); + add_tlv_subtree(&tlv_info, ucd_tree, hf_ucd_tlv_t_172_cqich_band_amc_transition_delay, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; } case UCD_TLV_T_174_MAXIMUM_RETRANSMISSION: @@ -707,44 +692,42 @@ void proto_register_mac_mgmt_msg_ucd(void) &hf_ucd_tlv_t_159_band_amc_allocation_threshold, { "Band AMC Allocation Threshold", "wmx.ucd.band_amc.allocation_threshold", - FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL + FT_UINT8, BASE_HEX|BASE_UNIT_STRING, &wimax_units_db, 0, NULL, HFILL } }, { &hf_ucd_tlv_t_161_band_amc_allocation_timer, { "Band AMC Allocation Timer", "wmx.ucd.band_amc.allocation_timer", - FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL + FT_UINT8, BASE_HEX|BASE_UNIT_STRING, &wimax_units_frame_frames, 0, NULL, HFILL } }, { &hf_ucd_tlv_t_160_band_amc_release_threshold, { "Band AMC Release Threshold", "wmx.ucd.band_amc.release_threshold", - FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL + FT_UINT8, BASE_HEX|BASE_UNIT_STRING, &wimax_units_db, 0, NULL, HFILL } }, -#if 0 { &hf_ucd_tlv_t_162_band_amc_release_timer, { "Band AMC Release Timer", "wmx.ucd.band_amc.release_timer", - FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL + FT_UINT8, BASE_HEX|BASE_UNIT_STRING, &wimax_units_frame_frames, 0, NULL, HFILL } }, -#endif { &hf_ucd_tlv_t_164_band_amc_retry_timer, { "Band AMC Retry Timer", "wmx.ucd.band_amc.retry_timer", - FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL + FT_UINT8, BASE_HEX|BASE_UNIT_STRING, &wimax_units_frame_frames, 0, NULL, HFILL } }, { &hf_ucd_tlv_t_163_band_status_report_max_period, { "Band Status Report MAC Period", "wmx.ucd.band_status.report_max_period", - FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL + FT_UINT8, BASE_DEC|BASE_UNIT_STRING, &wimax_units_frame_frames, 0, NULL, HFILL } }, { @@ -765,7 +748,7 @@ void proto_register_mac_mgmt_msg_ucd(void) &hf_ucd_burst_ranging_data_ratio, { "Ranging Data Ratio", "wmx.ucd.burst.ranging_data_ratio", - FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL + FT_UINT8, BASE_DEC|BASE_UNIT_STRING, &wimax_units_db, 0, NULL, HFILL } }, { @@ -785,32 +768,32 @@ void proto_register_mac_mgmt_msg_ucd(void) #if 0 { &hf_ucd_burst_power_boost, - {"Focused Contention Power Boost", "wmx.ucd.burst.power_boost", FT_UINT8, BASE_HEX, NULL, 0, "", HFILL} + {"Focused Contention Power Boost", "wmx.ucd.burst.power_boost", FT_UINT8, BASE_HEX|BASE_UNIT_STRING, &wimax_units_db, 0, NULL, HFILL} }, { &hf_ucd_burst_tcs_enable, - {"TCS", "wmx.ucd.burst.tcs", FT_UINT8, BASE_DEC, VALS(vals_dcd_burst_tcs), 0, "", HFILL} + {"TCS", "wmx.ucd.burst.tcs", FT_UINT8, BASE_DEC, VALS(vals_dcd_burst_tcs), 0, NULL, HFILL} }, #endif { &hf_ucd_bw_req_size, { "Bandwidth Request Opportunity Size", "wmx.ucd.bw_req_size", - FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL + FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &wimax_units_ps, 0, NULL, HFILL } }, { &hf_ucd_tlv_t_172_cqich_band_amc_transition_delay, { "CQICH Band AMC-Transition Delay", "wmx.ucd.cqich_band_amc_transition_delay", - FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL + FT_UINT8, BASE_DEC|BASE_UNIT_STRING, &wimax_units_frame_frames, 0, NULL, HFILL } }, { &hf_ucd_freq, { "Frequency", "wmx.ucd.frequency", - FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL + FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &wimax_units_khz, 0, NULL, HFILL } }, { @@ -824,7 +807,7 @@ void proto_register_mac_mgmt_msg_ucd(void) &hf_ucd_tlv_t_171_harq_ack_delay_dl_burst, { "HARQ ACK Delay for DL Burst", "wmx.ucd.harq_ack_delay_dl_burst", - FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL + FT_UINT8, BASE_DEC|BASE_UNIT_STRING, &wimax_units_frame_offset, 0, NULL, HFILL } }, { @@ -945,7 +928,7 @@ void proto_register_mac_mgmt_msg_ucd(void) &hf_ucd_ranging_req_size, { "Ranging Request Opportunity Size", "wmx.ucd.ranging_req_size", - FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL + FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &wimax_units_db, 0, NULL, HFILL } }, { @@ -959,7 +942,7 @@ void proto_register_mac_mgmt_msg_ucd(void) &hf_ucd_tlv_t_170_safety_channel_retry_timer, { "Safety Channel Release Timer", "wmx.ucd.safety_channel_release_timer", - FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL + FT_UINT8, BASE_HEX|BASE_UNIT_STRING, &wimax_units_frame_frames, 0, NULL, HFILL } }, { diff --git a/plugins/wimax/wimax_utils.c b/plugins/wimax/wimax_utils.c index 83a86fe0d0..fbe77040f9 100644 --- a/plugins/wimax/wimax_utils.c +++ b/plugins/wimax/wimax_utils.c @@ -64,6 +64,18 @@ static gint ett_dl_service_flow_decoder = -1; static dissector_handle_t eap_handle = NULL; +const unit_name_string wimax_units_byte_bytes = { " byte", " bytes" }; +const unit_name_string wimax_units_bit_sec = { "bits/s", NULL }; +const unit_name_string wimax_units_db = { "dB", NULL }; +const unit_name_string wimax_units_dbm = { "dBm", NULL }; +const unit_name_string wimax_units_frame_frames = { " frame", " frames" }; +const unit_name_string wimax_units_frame_offset = { " frame offset", NULL }; +const unit_name_string wimax_units_hz = { "Hz", NULL }; +const unit_name_string wimax_units_khz = { "kHz", NULL }; +const unit_name_string wimax_units_ms = { "ms", NULL }; +const unit_name_string wimax_units_ps = { "PS", NULL }; + + /* The following two variables save the Scheduling Service type for the Grant Management subheader dissector and track whether or not one has been seen. @@ -739,15 +751,15 @@ void proto_register_wimax_utility_decoders(void) }, { /* 7 Maximum Sustained Traffic Rate */ &hf_sfe_max_str, - {"Maximum Sustained Traffic Rate", "wmx.sfe.msr", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} + {"Maximum Sustained Traffic Rate", "wmx.sfe.msr", FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &wimax_units_bit_sec, 0x0, NULL, HFILL} }, { /* 8 Maximum Traffic Burst */ &hf_sfe_max_traffic_burst, - {"Maximum Traffic Burst", "wmx.sfe.max_traffic_burst", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} + {"Maximum Traffic Burst", "wmx.sfe.max_traffic_burst", FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &wimax_units_byte_bytes, 0x0, NULL, HFILL} }, { /* 9 Minimum Reserved Traffic Rate */ &hf_sfe_min_rtr, - {"Minimum Reserved Traffic Rate", "wmx.sfe.mrr", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} + {"Minimum Reserved Traffic Rate", "wmx.sfe.mrr", FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &wimax_units_bit_sec, 0x0, NULL, HFILL} }, { /* 10 Reserved */ @@ -802,11 +814,11 @@ void proto_register_wimax_utility_decoders(void) }, { /* 13 Tolerated Jitter */ &hf_sfe_jitter, - {"Tolerated Jitter", "wmx.sfe.jitter", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} + {"Tolerated Jitter", "wmx.sfe.jitter", FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &wimax_units_ms, 0x0, NULL, HFILL} }, { /* 14 Maximum Latency */ &hf_sfe_max_latency, - {"Maximum Latency", "wmx.sfe.max_latency", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} + {"Maximum Latency", "wmx.sfe.max_latency", FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &wimax_units_ms, 0x0, NULL, HFILL} }, { /* 15 Fixed/Variable Length SDU */ &hf_sfe_fixed_len_sdu, @@ -814,7 +826,7 @@ void proto_register_wimax_utility_decoders(void) }, { /* 16 SDU Size */ &hf_sfe_sdu_size, - {"SDU Size", "wmx.sfe.sdu_size", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL} + {"SDU Size", "wmx.sfe.sdu_size", FT_UINT8, BASE_DEC|BASE_UNIT_STRING, &wimax_units_byte_bytes, 0x0, NULL, HFILL} }, { /* 17 SAID Onto Which SF Is Mapped */ &hf_sfe_target_said, @@ -899,7 +911,7 @@ void proto_register_wimax_utility_decoders(void) }, { /* 31 Time Base */ &hf_sfe_time_base, - {"Time Base", "wmx.sfe.time_base", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL} + {"Time Base", "wmx.sfe.time_base", FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &wimax_units_ms, 0x0, NULL, HFILL} }, { /* 32 Paging Preference */ &hf_sfe_paging_preference, @@ -943,11 +955,11 @@ void proto_register_wimax_utility_decoders(void) }, { /* 40 Unsolicited Grant Interval */ &hf_sfe_unsolicited_grant_interval, - {"Unsolicited Grant Interval", "wmx.sfe.unsolicited_grant_interval", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL} + {"Unsolicited Grant Interval", "wmx.sfe.unsolicited_grant_interval", FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &wimax_units_ms, 0x0, NULL, HFILL} }, { /* 41 Unsolicited Polling Interval */ &hf_sfe_unsolicited_polling_interval, - {"Unsolicited Polling Interval", "wmx.sfe.unsolicited_polling_interval", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL} + {"Unsolicited Polling Interval", "wmx.sfe.unsolicited_polling_interval", FT_UINT16, BASE_DEC|BASE_UNIT_STRING, &wimax_units_ms, 0x0, NULL, HFILL} }, { /* 42 PDU SN extended subheader for HARQ reordering */ &hf_sfe_pdu_sn_ext_subheader_reorder, @@ -2214,16 +2226,13 @@ void wimax_service_flow_encodings_decoder(tvbuff_t *tvb, packet_info *pinfo, pro proto_item_append_text(tlv_item, " (allowed values are 0-7)"); break; case SFE_MAX_STR: - tlv_item = add_tlv_subtree(&tlv_info, tree, hf_sfe_max_str, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " bps"); + add_tlv_subtree(&tlv_info, tree, hf_sfe_max_str, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; case SFE_MAX_TRAFFIC_BURST: - tlv_item = add_tlv_subtree(&tlv_info, tree, hf_sfe_max_traffic_burst, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " bytes"); + add_tlv_subtree(&tlv_info, tree, hf_sfe_max_traffic_burst, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; case SFE_MIN_RTR: - tlv_item = add_tlv_subtree(&tlv_info, tree, hf_sfe_min_rtr, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " bps"); + add_tlv_subtree(&tlv_info, tree, hf_sfe_min_rtr, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; case SFE_RESERVED_10: add_tlv_subtree(&tlv_info, tree, hf_sfe_reserved_10, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); @@ -2248,12 +2257,10 @@ void wimax_service_flow_encodings_decoder(tvbuff_t *tvb, packet_info *pinfo, pro proto_tree_add_item(tlv_tree, hf_sfe_policy_rsvd1, tvb, offset, 1, ENC_BIG_ENDIAN); break; case SFE_TOLERATED_JITTER: - tlv_item = add_tlv_subtree(&tlv_info, tree, hf_sfe_jitter, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " ms"); + add_tlv_subtree(&tlv_info, tree, hf_sfe_jitter, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; case SFE_MAX_LATENCY: - tlv_item = add_tlv_subtree(&tlv_info, tree, hf_sfe_max_latency, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " ms"); + add_tlv_subtree(&tlv_info, tree, hf_sfe_max_latency, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; case SFE_FIXED_LEN_SDU: add_tlv_subtree(&tlv_info, tree, hf_sfe_fixed_len_sdu, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); @@ -2261,8 +2268,7 @@ void wimax_service_flow_encodings_decoder(tvbuff_t *tvb, packet_info *pinfo, pro case SFE_SDU_SIZE: /* save the SDU size */ mac_sdu_length = tvb_get_guint8(tvb, offset); - tlv_item = add_tlv_subtree(&tlv_info, tree, hf_sfe_sdu_size, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " bytes"); + add_tlv_subtree(&tlv_info, tree, hf_sfe_sdu_size, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; case SFE_TARGET_SAID: add_tlv_subtree(&tlv_info, tree, hf_sfe_target_said, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); @@ -2349,8 +2355,7 @@ void wimax_service_flow_encodings_decoder(tvbuff_t *tvb, packet_info *pinfo, pro add_tlv_subtree(&tlv_info, tree, hf_sfe_sdu_inter_arrival_interval, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; case SFE_TIME_BASE: - tlv_item = add_tlv_subtree(&tlv_info, tree, hf_sfe_time_base, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " ms"); + add_tlv_subtree(&tlv_info, tree, hf_sfe_time_base, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; case SFE_PAGING_PREFERENCE: add_tlv_subtree(&tlv_info, tree, hf_sfe_paging_preference, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); @@ -2382,12 +2387,10 @@ void wimax_service_flow_encodings_decoder(tvbuff_t *tvb, packet_info *pinfo, pro proto_tree_add_item(tlv_tree, hf_sfe_cid_alloc_for_active_bs_cid, tvb, (offset+i), 2, ENC_BIG_ENDIAN); break; case SFE_UNSOLICITED_GRANT_INTERVAL: - tlv_item = add_tlv_subtree(&tlv_info, tree, hf_sfe_unsolicited_grant_interval, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " ms"); + add_tlv_subtree(&tlv_info, tree, hf_sfe_unsolicited_grant_interval, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; case SFE_UNSOLOCITED_POLLING_INTERVAL: - tlv_item = add_tlv_subtree(&tlv_info, tree, hf_sfe_unsolicited_polling_interval, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); - proto_item_append_text(tlv_item, " ms"); + add_tlv_subtree(&tlv_info, tree, hf_sfe_unsolicited_polling_interval, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); break; case SFE_PDU_SN_EXT_SUBHEADER_HARQ_REORDER: add_tlv_subtree(&tlv_info, tree, hf_sfe_pdu_sn_ext_subheader_reorder, tvb, offset-tlv_value_offset, ENC_BIG_ENDIAN); diff --git a/plugins/wimax/wimax_utils.h b/plugins/wimax/wimax_utils.h index cf9e61c29e..32bb7b0921 100644 --- a/plugins/wimax/wimax_utils.h +++ b/plugins/wimax/wimax_utils.h @@ -55,4 +55,16 @@ extern void wimax_security_capabilities_decoder(tvbuff_t *tvb, packet_info *pinf extern void wimax_vendor_specific_information_decoder(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree); extern guint wimax_common_tlv_encoding_decoder(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree); +//Windows can't handle plugins using globals from epan, so copies are necessary +extern const unit_name_string wimax_units_byte_bytes; +extern const unit_name_string wimax_units_bit_sec; +extern const unit_name_string wimax_units_db; +extern const unit_name_string wimax_units_dbm; +extern const unit_name_string wimax_units_frame_frames; +extern const unit_name_string wimax_units_frame_offset; +extern const unit_name_string wimax_units_hz; +extern const unit_name_string wimax_units_khz; +extern const unit_name_string wimax_units_ms; +extern const unit_name_string wimax_units_ps; + #endif /* WIMAX_UTILS_H */ -- cgit v1.2.1