aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2013-11-08 05:58:13 +0000
committerAnders Broman <anders.broman@ericsson.com>2013-11-08 05:58:13 +0000
commit88d0e909a23a56f5fe5d6869bc65f4867bf6dc91 (patch)
treec98cd102e04a3a681d3eaf06d44b546cf571c6e5 /epan/dissectors
parentfd429a6ed303a509fcceab691328d11ce9b508b7 (diff)
From Katrina Zhang:
Add/fix RFSP dissection. svn path=/trunk/; revision=53163
Diffstat (limited to 'epan/dissectors')
-rw-r--r--epan/dissectors/packet-gtp.c8
-rw-r--r--epan/dissectors/packet-gtpv2.c19
2 files changed, 19 insertions, 8 deletions
diff --git a/epan/dissectors/packet-gtp.c b/epan/dissectors/packet-gtp.c
index 2255efbe7f..23a31e553f 100644
--- a/epan/dissectors/packet-gtp.c
+++ b/epan/dissectors/packet-gtp.c
@@ -4502,7 +4502,8 @@ decode_qos_umts(tvbuff_t * tvb, int offset, proto_tree * tree, const gchar * qos
if(length > 13 ||((type == 2) && (length == 13))) {
proto_tree_add_uint(ext_tree_qos, hf_gtp_qos_src_stat_desc, tvb, offset + (12 - 1) * utf8_type + 1, utf8_type, src_stat_desc);
proto_tree_add_boolean(ext_tree_qos, hf_gtp_qos_sig_ind, tvb, offset + (12 - 1) * utf8_type + 1, utf8_type, sig_ind);
- }
+ }
+
if(length > 14) {
/* Octet 15 */
@@ -6897,7 +6898,7 @@ decode_gtp_reliable_irat_ho_inf(tvbuff_t * tvb, int offset, packet_info * pinfo
static int
decode_gtp_rfsp_index(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto_tree * tree)
{
- guint16 length;
+ guint16 length, rfsp;
proto_tree *ext_tree;
proto_item *te;
@@ -6910,7 +6911,8 @@ decode_gtp_rfsp_index(tvbuff_t * tvb, int offset, packet_info * pinfo _U_, proto
proto_tree_add_item(ext_tree, hf_gtp_ext_length, tvb, offset, 2, ENC_BIG_ENDIAN);
offset = offset + 2;
- proto_tree_add_text(ext_tree, tvb, offset, length, "The rest of the data is not dissected yet");
+ rfsp = tvb_get_ntohs(tvb, offset);
+ proto_tree_add_text(ext_tree, tvb, offset, length, "RFSP Index: %u", rfsp+1);
return 3 + length;
}
diff --git a/epan/dissectors/packet-gtpv2.c b/epan/dissectors/packet-gtpv2.c
index 7c9da445da..90027b364c 100644
--- a/epan/dissectors/packet-gtpv2.c
+++ b/epan/dissectors/packet-gtpv2.c
@@ -376,7 +376,8 @@ static int hf_gtpv2_mbms_ip_mc_src_addrv4 = -1;
static int hf_gtpv2_mbms_ip_mc_src_addrv6 = -1;
static int hf_gtpv2_mbms_hc_indicator = -1;
static int hf_gtpv2_mbms_dist_indication = -1;
-static int hf_gtpv2_rfsp_index = -1;
+static int hf_gtpv2_subscriber_rfsp = -1;
+static int hf_gtpv2_rfsp_inuse = -1;
static int hf_gtpv2_mbms_service_id = -1;
static int hf_gtpv2_add_flags_for_srvcc_ics = -1;
static int hf_gtpv2_vsrvcc_flag = -1;
@@ -4681,8 +4682,11 @@ dissect_gtpv2_rfsp_index(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
{
int offset = 0;
- proto_tree_add_item(tree, hf_gtpv2_rfsp_index, tvb, offset, 2, ENC_BIG_ENDIAN);
-
+ if(instance == 0){
+ proto_tree_add_item(tree, hf_gtpv2_subscriber_rfsp, tvb, offset, 2, ENC_BIG_ENDIAN);
+ }else if(instance == 1){
+ proto_tree_add_item(tree, hf_gtpv2_rfsp_inuse, tvb, offset, 2, ENC_BIG_ENDIAN);
+ }
}
/* 8.78 CSG ID */
@@ -6815,8 +6819,13 @@ void proto_register_gtpv2(void)
FT_UINT8, BASE_DEC, VALS(gtpv2_mbms_dist_indication_vals), 0x03,
NULL, HFILL}
},
- { &hf_gtpv2_rfsp_index,
- {"RFSP Index", "gtpv2.rfsp_index",
+ { &hf_gtpv2_subscriber_rfsp,
+ {"Subscribed RFSP Index", "gtpv2.subscriber_rfsp",
+ FT_INT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL}
+ },
+ { &hf_gtpv2_rfsp_inuse,
+ {"RFSP Index in Use", "gtpv2.rfsp_inuse",
FT_INT16, BASE_DEC, NULL, 0x0,
NULL, HFILL}
},