aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-gtpv2.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/epan/dissectors/packet-gtpv2.c b/epan/dissectors/packet-gtpv2.c
index c85c488aac..eccc8e9e37 100644
--- a/epan/dissectors/packet-gtpv2.c
+++ b/epan/dissectors/packet-gtpv2.c
@@ -572,6 +572,7 @@ static expert_field ei_gtpv2_ie = EI_INIT;
#define GTPv2_ULI_ECGI_MASK 0x10
#define GTPv2_ULI_LAI_MASK 0x20
+#define GTPV2_SRVCC_PS_TO_CS_REQUEST 25
#define GTPV2_CREATE_SESSION_REQUEST 32
#define GTPV2_CREATE_SESSION_RESPONSE 33
#define GTPV2_MODIFY_BEARER_REQUEST 34
@@ -1333,7 +1334,10 @@ dissect_gtpv2_stn_sr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_
static void
dissect_gtpv2_src_tgt_trans_con(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, proto_item *item _U_, guint16 length, guint8 message_type _U_, guint8 instance _U_)
{
+ tvbuff_t *new_tvb;
+ proto_tree *sub_tree;
int offset = 0;
+
proto_tree_add_item(tree, hf_gtpv2_len_trans_con, tvb, offset, 1, ENC_BIG_ENDIAN);
offset += 1;
/*ra_type_flag = 0;*/
@@ -1346,9 +1350,15 @@ dissect_gtpv2_src_tgt_trans_con(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tre
*/
proto_tree_add_item(tree, hf_gtpv2_transparent_container, tvb, offset, length-1, ENC_NA);
/*
- * bssmap_old_bss_to_new_bss_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo);
- * dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU
- */
+ * bssmap_old_bss_to_new_bss_info(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo);
+ * dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU
+ */
+ if (message_type == GTPV2_SRVCC_PS_TO_CS_REQUEST) {
+ sub_tree = proto_tree_add_subtree(tree, tvb, offset, length, ett_gtpv2_utran_con, NULL, "Source RNC to Target RNC Transparent Container");
+ new_tvb = tvb_new_subset_remaining(tvb, offset);
+ dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU(new_tvb, pinfo, sub_tree, NULL);
+
+ }
}