diff --git a/epan/dissectors/packet-gsm_cbsp.c b/epan/dissectors/packet-gsm_cbsp.c index 9865ec489b..4c8331b072 100644 --- a/epan/dissectors/packet-gsm_cbsp.c +++ b/epan/dissectors/packet-gsm_cbsp.c @@ -701,8 +701,17 @@ dissect_cbsp_tlvs(tvbuff_t *tvb, int base_offs, int length, packet_info *pinfo, proto_item_append_text(ti, ": %s", val_to_str_const(tmp_u, cbsp_category_names, "")); break; case CBSP_IEI_REP_PERIOD: - proto_tree_add_item_ret_uint(att_tree, hf_cbsp_rep_period, tvb, offset, len, ENC_BIG_ENDIAN, &tmp_u); - proto_item_append_text(ti, ": %u", tmp_u); + { + guint64 tmp_u64; + crumb_spec_t cbsp_rep_period_crumbs[] = { + { 0, 8 }, + { 12, 4 }, + { 0, 0 } + }; + + proto_tree_add_split_bits_item_ret_val(att_tree, hf_cbsp_rep_period, tvb, offset<<3, cbsp_rep_period_crumbs, &tmp_u64); + proto_item_append_text(ti, ": %u", (guint16)tmp_u64); + } break; case CBSP_IEI_NUM_BCAST_REQ: proto_tree_add_item_ret_uint(att_tree, hf_cbsp_num_bcast_req, tvb, offset, len, ENC_BIG_ENDIAN, &tmp_u);