diff options
author | Martin Mathieson <martin.r.mathieson@googlemail.com> | 2008-05-09 17:46:45 +0000 |
---|---|---|
committer | Martin Mathieson <martin.r.mathieson@googlemail.com> | 2008-05-09 17:46:45 +0000 |
commit | 275c415f7e077992b621306f004f34cc0102e88a (patch) | |
tree | 73c0918bbf8056d7e7e6750d15628f6950476c24 /epan/dissectors/packet-umts_fp.c | |
parent | 4567d72fdc00a3424a3db03b8ff66ccb700133e1 (diff) |
Add a couple of missing HS-DSCH data frame fields.
svn path=/trunk/; revision=25267
Diffstat (limited to 'epan/dissectors/packet-umts_fp.c')
-rw-r--r-- | epan/dissectors/packet-umts_fp.c | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/epan/dissectors/packet-umts_fp.c b/epan/dissectors/packet-umts_fp.c index e47d998ae9..d433a97fc8 100644 --- a/epan/dissectors/packet-umts_fp.c +++ b/epan/dissectors/packet-umts_fp.c @@ -82,6 +82,8 @@ static int hf_fp_edch_number_of_mac_d_pdus = -1; static int hf_fp_edch_pdu_padding = -1; static int hf_fp_edch_tsn = -1; static int hf_fp_edch_mac_es_pdu = -1; +static int hf_fp_frame_seq_nr = -1; +static int hf_fp_flush = -1; static int hf_fp_cmch_pi = -1; static int hf_fp_user_buffer_size = -1; static int hf_fp_hsdsch_credits = -1; @@ -1137,7 +1139,8 @@ void dissect_rach_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr offset = dissect_crci_bits(tvb, pinfo, tree, num_tbs, offset); /* Info introduced in R6 */ - if (p_fp_info->release == 6) + if ((p_fp_info->release == 6) || + (p_fp_info->release == 7)) { int n; guint8 flags; @@ -2268,6 +2271,19 @@ void dissect_hsdsch_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree * /* HS-DCH data here */ /* TODO: handle type 2 frames (will know from config) */ + /* Frame Seq Nr */ + if ((p_fp_info->release == 6) || + (p_fp_info->release == 7)) + { + guint8 frame_seq_no = tvb_get_guint8(tvb, offset); + proto_tree_add_item(tree, hf_fp_frame_seq_nr, tvb, offset, 1, FALSE); + + if (check_col(pinfo->cinfo, COL_INFO)) + { + col_append_fstr(pinfo->cinfo, COL_INFO, " seqno=%u", frame_seq_no); + } + } + /* CmCH-PI */ proto_tree_add_item(tree, hf_fp_cmch_pi, tvb, offset, 1, FALSE); offset++; @@ -2277,6 +2293,14 @@ void dissect_hsdsch_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree * proto_tree_add_item(tree, hf_fp_mac_d_pdu_len, tvb, offset, 2, FALSE); offset += 2; + /* Flush bit */ + if ((p_fp_info->release == 6) || + (p_fp_info->release == 7)) + { + proto_tree_add_item(tree, hf_fp_flush, tvb, offset-1, 1, FALSE); + } + + /* Num of PDU */ number_of_pdus = tvb_get_guint8(tvb, offset); proto_tree_add_item(tree, hf_fp_num_of_pdu, tvb, offset, 1, FALSE); @@ -2297,7 +2321,8 @@ void dissect_hsdsch_channel_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree * } /* Extra R6 stuff */ - if (p_fp_info->release == 6) + if ((p_fp_info->release == 6) || + (p_fp_info->release == 7)) { int n; guint8 flags; @@ -2767,6 +2792,18 @@ void proto_register_fp(void) "MAC-es PDU", HFILL } }, + { &hf_fp_frame_seq_nr, + { "Frame Seq Nr", + "fp.frame-seq-nr", FT_UINT8, BASE_DEC, 0, 0xf0, + "Frame Sequence Number", HFILL + } + }, + { &hf_fp_flush, + { "Flush", + "fp.flush", FT_UINT8, BASE_DEC, 0, 0x04, + "Flush", HFILL + } + }, { &hf_fp_cmch_pi, { "CmCH-PI", "fp.cmch-pi", FT_UINT8, BASE_DEC, 0, 0x0f, |