aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-umts_fp.c
diff options
context:
space:
mode:
authorMartin Mathieson <martin.r.mathieson@googlemail.com>2008-05-09 17:46:45 +0000
committerMartin Mathieson <martin.r.mathieson@googlemail.com>2008-05-09 17:46:45 +0000
commit275c415f7e077992b621306f004f34cc0102e88a (patch)
tree73c0918bbf8056d7e7e6750d15628f6950476c24 /epan/dissectors/packet-umts_fp.c
parent4567d72fdc00a3424a3db03b8ff66ccb700133e1 (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.c41
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,