diff options
-rw-r--r-- | epan/dissectors/packet-gtpv2.c | 16 |
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); + + } } |