diff options
author | martinm <martinm@f5534014-38df-0310-8fa8-9805f1628bb7> | 2010-10-08 11:03:08 +0000 |
---|---|---|
committer | martinm <martinm@f5534014-38df-0310-8fa8-9805f1628bb7> | 2010-10-08 11:03:08 +0000 |
commit | 63181490850d14b772c8878cb695d0f8537853d7 (patch) | |
tree | 9c0d5bd780b9d708fd2f0cc4f4c19ab62caf3041 /epan/dissectors/packet-umts_fp.c | |
parent | 06556ad508c3e4fe13250e3e9c40b2c9bf52ef6b (diff) |
From Tobias Witek (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5283)
epan/dissectors/packet-umts_fp.c
* Added mac subdissector (MAC) call to HSDSCH TYPE2 frames
epan/dissectors/packet-umts_mac.c
* Added support for HSDSCH TYPE2 frames by means of
not nibble-shifting (4 bits) the SDU if MAC-ehs is used
epan/dissectors/packet-rlc.c
* Added support for "Use special value of the HE field" (3gpp 25.332-7a0
9.2.2.7) commonly used for Release 7 HSDPA.
REMARK: although the specification mandates that the
special value is only allowed when activated by higher
layers (RRC), it is interpreted unconditionally. We assume
this is OK, because a different use in future specifications
is very unlikely.
epan/dissectors/packet-fp_hint.c
* Added decoding of MAC-ehs indicator for HSDSCH frames
* Bumped fpi->release from 6 to 7 to enable proper
HSDSCH TYPE2 frame decoding in the UTMS MAC parser.
In general, this appears not to affect decoding
of (conformant) FP frames of pevious releases.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@34433 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-umts_fp.c')
-rw-r--r-- | epan/dissectors/packet-umts_fp.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/epan/dissectors/packet-umts_fp.c b/epan/dissectors/packet-umts_fp.c index e8682ad578..0f2eb88451 100644 --- a/epan/dissectors/packet-umts_fp.c +++ b/epan/dissectors/packet-umts_fp.c @@ -639,6 +639,7 @@ static int dissect_macd_pdu_data_type_2(tvbuff_t *tvb, packet_info *pinfo, proto proto_item *pdus_ti = NULL; proto_tree *data_tree = NULL; int first_offset = offset; + gboolean dissected = FALSE; /* Add data subtree */ if (tree) @@ -659,6 +660,11 @@ static int dissect_macd_pdu_data_type_2(tvbuff_t *tvb, packet_info *pinfo, proto pdu_ti = proto_tree_add_item(data_tree, hf_fp_mac_d_pdu, tvb, offset, length, FALSE); proto_item_set_text(pdu_ti, "MAC-d PDU (PDU %u)", pdu+1); + if (preferences_call_mac_dissectors) { + tvbuff_t *next_tvb = tvb_new_subset(tvb, offset, length, -1); + call_dissector(mac_fdd_hsdsch_handle, next_tvb, pinfo, top_level_tree); + dissected = TRUE; + } } /* Advance offset */ @@ -669,8 +675,10 @@ static int dissect_macd_pdu_data_type_2(tvbuff_t *tvb, packet_info *pinfo, proto proto_item_set_len(pdus_ti, offset-first_offset); /* Show summary in info column */ - col_append_fstr(pinfo->cinfo, COL_INFO, " %u PDUs of %u bits", - number_of_pdus, length*8); + if (!dissected) { + col_append_fstr(pinfo->cinfo, COL_INFO, " %u PDUs of %u bits", + number_of_pdus, length*8); + } return offset; } |