Add dissection of Source RNC to target RNC transparent information in BSSAP.
authorAnders Broman <anders.broman@ericsson.com>
Mon, 23 Nov 2009 22:02:05 +0000 (22:02 -0000)
committerAnders Broman <anders.broman@ericsson.com>
Mon, 23 Nov 2009 22:02:05 +0000 (22:02 -0000)
Fix RRC container dissection in RANAP.

svn path=/trunk/; revision=31058

asn1/ranap/packet-ranap-template.c
asn1/ranap/ranap.cnf
epan/dissectors/packet-gsm_a_bssmap.c
epan/dissectors/packet-ranap.c
epan/dissectors/packet-ranap.h

index f55de113efe6c895b5097e0bbabb442ccbd21ab6..eadd3d2366d2e495a7c5fe7bab4444e09f4f9239 100644 (file)
@@ -66,7 +66,8 @@
 static int proto_ranap = -1;
 
 /* initialise sub-dissector handles */
-static dissector_handle_t rrc_handle = NULL;
+static dissector_handle_t rrc_s_to_trnc_handle = NULL;
+static dissector_handle_t rrc_t_to_srnc_handle = NULL;
 
 static int hf_ranap_imsi_digits = -1;
 static int hf_ranap_transportLayerAddress_ipv4 = -1;
@@ -343,7 +344,8 @@ proto_reg_handoff_ranap(void)
 
        if (!initialized) {
                ranap_handle = find_dissector("ranap");
-               rrc_handle = find_dissector("rrc.s_to_trnc_cont");
+               rrc_s_to_trnc_handle = find_dissector("rrc.s_to_trnc_cont");
+               rrc_t_to_srnc_handle = find_dissector("rrc.t_to_srnc_cont");
                initialized = TRUE;
 #include "packet-ranap-dis-tab.c"
        } else {
index 04e2e8048a02c97d8f22457516c5eb01e4318d27..6d294360d2aa534ce3fe6c30806b203b830d461f 100644 (file)
@@ -13,9 +13,11 @@ TargetRNC-ID
 Service-Handover
 IntegrityProtectionInformation
 EncryptionInformation
+SourceRNC-ToTargetRNC-TransparentContainer_PDU
 
 #.PDU_NEW
 RANAP-PDU
+SourceRNC-ToTargetRNC-TransparentContainer
 
 #.MAKE_ENUM
 ProcedureCode
@@ -212,8 +214,17 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
 
 %(DEFAULT_BODY)s
 
-       if (rrc_message_tvb)
-               call_dissector(rrc_handle,rrc_message_tvb,%(ACTX)s->pinfo, proto_tree_get_root(tree));
+       if ((rrc_message_tvb)&&(tvb_length(rrc_message_tvb)!=0)){
+               if(ProtocolIE_ID == id_Source_ToTarget_TransparentContainer){
+               /* Note: In the current version of this specification, this IE may
+                * either carry the Source RNC to Target RNC Transparent Container 
+                * or the Source eNB to Target eNB Transparent Container IE as defined in [49]...
+                */
+                       call_dissector(rrc_s_to_trnc_handle,rrc_message_tvb,%(ACTX)s->pinfo, proto_tree_get_root(tree));
+               }else{
+               /* XXX Unsure what to do here */
+               }
+       }
 
 #.END
 
@@ -282,7 +293,7 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
 # [49] 3GPP TS 36.413: "Evolved Universal Terrestrial Radio Access Network (E-UTRAN); S1
 # Application Protocol (S1AP)".
 
-dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer(tvb , offset, actx ,tree , hf_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU );
+dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer(tvb , offset, actx ,tree , hf_ranap_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU );
 
 #.FN_BODY Target-ToSource-TransparentContainer VAL_PTR = &parameter_tvb
 #-- This IE is a transparent container, the IE shall be encoded not as an OCTET STRING but according to the type specifications of the target system.
@@ -292,7 +303,7 @@ dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer(tvb , offset, actx ,tre
 # [49] 3GPP TS 36.413: "Evolved Universal Terrestrial Radio Access Network (E-UTRAN); S1
 # Application Protocol (S1AP)".
 
-dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer(tvb , offset, actx ,tree , hf_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU );
+dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer(tvb , offset, actx ,tree , hf_ranap_TargetRNC_ToSourceRNC_TransparentContainer_PDU );
     
 #.TYPE_ATTR
 ProtocolExtensionID TYPE = FT_UINT8  DISPLAY = BASE_DEC STRINGS = VALS(ranap_ProtocolIE_ID_vals)
index 145a3ce7c3acee18302ecca63c09720bb7c936a9..125aacab2c101bdf7f2e353a1bd80ea52606f0a1 100644 (file)
 #include <epan/packet.h>
 #include <epan/tap.h>
 #include <epan/emem.h>
+#include <epan/asn1.h>
 
 #include "packet-bssap.h"
 #include "packet-sccp.h"
 #include "packet-gsm_a_common.h"
 #include "packet-e212.h"
+#include "packet-ranap.h"
 
 /* PROTOTYPES/FORWARDS */
 
@@ -2947,15 +2949,17 @@ be_serv_ho(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar
 static guint16
 be_src_rnc_to_tar_rnc_umts(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_)
 {
+       tvbuff_t        *container_tvb;
        guint32 curr_offset;
 
        curr_offset = offset;
 
-       proto_tree_add_text(tree, tvb, curr_offset, len , "Not decoded yet");
        /* The Source RNC to Target RNC transparent Information value is encoded as 
         * the Source RNC to Target RNC Transparent Container IE as defined in relevant 
         * RANAP specification 3GPP TS 25.413, excluding RANAP tag 
         */
+       container_tvb = tvb_new_subset(tvb, curr_offset, len, len);
+       dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU(container_tvb, g_pinfo , tree);
 
        return(len);
 }
index d1c141e70bc6eabf7df376bedc75c89e7ec63e60..1e67b62ce77c7ab6f368e3a87cff6eabd247fd5e 100644 (file)
@@ -387,7 +387,8 @@ typedef enum _ProtocolIE_ID_enum {
 static int proto_ranap = -1;
 
 /* initialise sub-dissector handles */
-static dissector_handle_t rrc_handle = NULL;
+static dissector_handle_t rrc_s_to_trnc_handle = NULL;
+static dissector_handle_t rrc_t_to_srnc_handle = NULL;
 
 static int hf_ranap_imsi_digits = -1;
 static int hf_ranap_transportLayerAddress_ipv4 = -1;
@@ -507,7 +508,7 @@ static int hf_ranap_SNA_Access_Information_PDU = -1;  /* SNA_Access_Information
 static int hf_ranap_Source_ToTarget_TransparentContainer_PDU = -1;  /* Source_ToTarget_TransparentContainer */
 static int hf_ranap_SourceBSS_ToTargetBSS_TransparentContainer_PDU = -1;  /* SourceBSS_ToTargetBSS_TransparentContainer */
 static int hf_ranap_SourceID_PDU = -1;            /* SourceID */
-static int hf_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU = -1;  /* SourceRNC_ToTargetRNC_TransparentContainer */
+static int hf_ranap_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU = -1;  /* SourceRNC_ToTargetRNC_TransparentContainer */
 static int hf_ranap_SubscriberProfileIDforRFP_PDU = -1;  /* SubscriberProfileIDforRFP */
 static int hf_ranap_SupportedRAB_ParameterBitrateList_PDU = -1;  /* SupportedRAB_ParameterBitrateList */
 static int hf_ranap_SRB_TrCH_Mapping_PDU = -1;    /* SRB_TrCH_Mapping */
@@ -1025,7 +1026,7 @@ static int hf_ranap_unsuccessfulOutcome_value = -1;  /* UnsuccessfulOutcome_valu
 static int hf_ranap_value = -1;                   /* T_value */
 
 /*--- End of included file: packet-ranap-hf.c ---*/
-#line 76 "packet-ranap-template.c"
+#line 77 "packet-ranap-template.c"
 
 /* Initialize the subtree pointers */
 static int ett_ranap = -1;
@@ -1329,7 +1330,7 @@ static gint ett_ranap_UnsuccessfulOutcome = -1;
 static gint ett_ranap_Outcome = -1;
 
 /*--- End of included file: packet-ranap-ett.c ---*/
-#line 82 "packet-ranap-template.c"
+#line 83 "packet-ranap-template.c"
 
 /* Global variables */
 static guint32 ProcedureCode;
@@ -1507,7 +1508,7 @@ dissect_ranap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
                                                             0U, 255U, &ProcedureCode, FALSE);
 
-#line 81 "ranap.cnf"
+#line 83 "ranap.cnf"
        if (check_col(actx->pinfo->cinfo, COL_INFO))
        col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
                    val_to_str(ProcedureCode, ranap_ProcedureCode_vals,
@@ -1761,7 +1762,7 @@ dissect_ranap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx
   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
                                                             0U, 65535U, &ProtocolIE_ID, FALSE);
 
-#line 65 "ranap.cnf"
+#line 67 "ranap.cnf"
   if (tree) {
     proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(ranap_ProtocolIE_ID_vals), "unknown (%d)"));
   }
@@ -1883,7 +1884,7 @@ static const per_sequence_t ProtocolIE_ContainerList_sequence_of[1] = {
 
 static int
 dissect_ranap_ProtocolIE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 106 "ranap.cnf"
+#line 108 "ranap.cnf"
   static const asn1_par_def_t ProtocolIE_ContainerList_pars[] = {
     { "lowerBound", ASN1_PAR_INTEGER },
     { "upperBound", ASN1_PAR_INTEGER },
@@ -1905,7 +1906,7 @@ static const per_sequence_t ProtocolIE_ContainerPairList_sequence_of[1] = {
 
 static int
 dissect_ranap_ProtocolIE_ContainerPairList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 122 "ranap.cnf"
+#line 124 "ranap.cnf"
   static const asn1_par_def_t ProtocolIE_ContainerPairList_pars[] = {
     { "lowerBound", ASN1_PAR_INTEGER },
     { "upperBound", ASN1_PAR_INTEGER },
@@ -2474,7 +2475,7 @@ dissect_ranap_APN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto
 
 static int
 dissect_ranap_PLMNidentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 226 "ranap.cnf"
+#line 237 "ranap.cnf"
   tvbuff_t *parameter_tvb=NULL;
 
   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -4228,7 +4229,7 @@ dissect_ranap_GlobalRNC_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
 
 static int
 dissect_ranap_GTP_TEI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 267 "ranap.cnf"
+#line 278 "ranap.cnf"
   tvbuff_t *parameter_tvb=NULL;        
   int saved_hf;
   
@@ -4261,7 +4262,7 @@ dissect_ranap_HS_DSCH_MAC_d_Flow_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_
 
 static int
 dissect_ranap_IMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 179 "ranap.cnf"
+#line 181 "ranap.cnf"
   tvbuff_t* imsi_tvb;
   char         *digit_str;
 
@@ -5090,7 +5091,7 @@ dissect_ranap_MBMSSessionRepetitionNumber(tvbuff_t *tvb _U_, int offset _U_, asn
 
 static int
 dissect_ranap_NAS_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 202 "ranap.cnf"
+#line 204 "ranap.cnf"
   tvbuff_t *nas_pdu_tvb=NULL;
 
   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
@@ -6153,15 +6154,24 @@ dissect_ranap_ResponseTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _
 
 static int
 dissect_ranap_RRC_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 211 "ranap.cnf"
+#line 213 "ranap.cnf"
   tvbuff_t *rrc_message_tvb=NULL;
 
   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
                                        NO_BOUND, NO_BOUND, FALSE, &rrc_message_tvb);
 
 
-       if (rrc_message_tvb)
-               call_dissector(rrc_handle,rrc_message_tvb,actx->pinfo, proto_tree_get_root(tree));
+       if ((rrc_message_tvb)&&(tvb_length(rrc_message_tvb)!=0)){
+               if(ProtocolIE_ID == id_Source_ToTarget_TransparentContainer){
+               /* Note: In the current version of this specification, this IE may
+                * either carry the Source RNC to Target RNC Transparent Container 
+                * or the Source eNB to Target eNB Transparent Container IE as defined in [49]...
+                */
+                       call_dissector(rrc_s_to_trnc_handle,rrc_message_tvb,actx->pinfo, proto_tree_get_root(tree));
+               }else{
+               /* XXX Unsure what to do here */
+               }
+       }
 
 
 
@@ -6245,9 +6255,9 @@ dissect_ranap_Service_Handover(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac
 
 static int
 dissect_ranap_Source_ToTarget_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 284 "ranap.cnf"
+#line 295 "ranap.cnf"
 
-dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer(tvb , offset, actx ,tree , hf_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU );
+dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer(tvb , offset, actx ,tree , hf_ranap_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU );
 
 
 
@@ -6423,9 +6433,9 @@ dissect_ranap_SRVCC_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
 
 static int
 dissect_ranap_Target_ToSource_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 294 "ranap.cnf"
+#line 305 "ranap.cnf"
 
-dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer(tvb , offset, actx ,tree , hf_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU );
+dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer(tvb , offset, actx ,tree , hf_ranap_TargetRNC_ToSourceRNC_TransparentContainer_PDU );
     
 
 
@@ -6608,7 +6618,7 @@ dissect_ranap_UnsuccessfullyTransmittedDataVolume(tvbuff_t *tvb _U_, int offset
 
 static int
 dissect_ranap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 245 "ranap.cnf"
+#line 256 "ranap.cnf"
   tvbuff_t *parameter_tvb=NULL;
   proto_tree *subtree;
   gint tvb_len;
@@ -6958,7 +6968,7 @@ dissect_ranap_VerticalAccuracyCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
 
 static int
 dissect_ranap_RAB_IE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 132 "ranap.cnf"
+#line 134 "ranap.cnf"
   asn1_stack_frame_push(actx, "ProtocolIE-ContainerList");
   asn1_param_push_integer(actx, 1);
   asn1_param_push_integer(actx, maxNrOfRABs);
@@ -6974,7 +6984,7 @@ dissect_ranap_RAB_IE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t
 
 static int
 dissect_ranap_RAB_IE_ContainerPairList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 140 "ranap.cnf"
+#line 142 "ranap.cnf"
   asn1_stack_frame_push(actx, "ProtocolIE-ContainerPairList");
   asn1_param_push_integer(actx, 1);
   asn1_param_push_integer(actx, maxNrOfRABs);
@@ -6990,7 +7000,7 @@ dissect_ranap_RAB_IE_ContainerPairList(tvbuff_t *tvb _U_, int offset _U_, asn1_c
 
 static int
 dissect_ranap_IuSigConId_IE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 157 "ranap.cnf"
+#line 159 "ranap.cnf"
   asn1_stack_frame_push(actx, "ProtocolIE-ContainerList");
   asn1_param_push_integer(actx, 1);
   asn1_param_push_integer(actx, maxNrOfIuSigConIds);
@@ -7006,7 +7016,7 @@ dissect_ranap_IuSigConId_IE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn
 
 static int
 dissect_ranap_DirectTransfer_IE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 165 "ranap.cnf"
+#line 167 "ranap.cnf"
   asn1_stack_frame_push(actx, "ProtocolIE-ContainerList");
   asn1_param_push_integer(actx, 1);
   asn1_param_push_integer(actx, maxNrOfDTs);
@@ -10248,11 +10258,11 @@ static int dissect_SourceID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto
   offset += 7; offset >>= 3;
   return offset;
 }
-static int dissect_SourceRNC_ToTargetRNC_TransparentContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+int dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
   int offset = 0;
   asn1_ctx_t asn1_ctx;
   asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo);
-  offset = dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer(tvb, offset, &asn1_ctx, tree, hf_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU);
+  offset = dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer(tvb, offset, &asn1_ctx, tree, hf_ranap_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU);
   offset += 7; offset >>= 3;
   return offset;
 }
@@ -11635,7 +11645,7 @@ static int dissect_RANAP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, prot
 
 
 /*--- End of included file: packet-ranap-fn.c ---*/
-#line 142 "packet-ranap-template.c"
+#line 143 "packet-ranap-template.c"
 
 static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 {
@@ -12238,7 +12248,7 @@ void proto_register_ranap(void) {
       { "SourceID", "ranap.SourceID",
         FT_UINT32, BASE_DEC, VALS(ranap_SourceID_vals), 0,
         "ranap.SourceID", HFILL }},
-    { &hf_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU,
+    { &hf_ranap_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU,
       { "SourceRNC-ToTargetRNC-TransparentContainer", "ranap.SourceRNC_ToTargetRNC_TransparentContainer",
         FT_NONE, BASE_NONE, NULL, 0,
         "ranap.SourceRNC_ToTargetRNC_TransparentContainer", HFILL }},
@@ -14304,7 +14314,7 @@ void proto_register_ranap(void) {
         "ranap.T_value", HFILL }},
 
 /*--- End of included file: packet-ranap-hfarr.c ---*/
-#line 298 "packet-ranap-template.c"
+#line 299 "packet-ranap-template.c"
   };
 
   /* List of subtrees */
@@ -14609,7 +14619,7 @@ void proto_register_ranap(void) {
     &ett_ranap_Outcome,
 
 /*--- End of included file: packet-ranap-ettarr.c ---*/
-#line 305 "packet-ranap-template.c"
+#line 306 "packet-ranap-template.c"
   };
 
 
@@ -14651,7 +14661,8 @@ proto_reg_handoff_ranap(void)
 
        if (!initialized) {
                ranap_handle = find_dissector("ranap");
-               rrc_handle = find_dissector("rrc.s_to_trnc_cont");
+               rrc_s_to_trnc_handle = find_dissector("rrc.s_to_trnc_cont");
+               rrc_t_to_srnc_handle = find_dissector("rrc.t_to_srnc_cont");
                initialized = TRUE;
 
 /*--- Included file: packet-ranap-dis-tab.c ---*/
@@ -14664,7 +14675,7 @@ proto_reg_handoff_ranap(void)
   dissector_add("ranap.ies", id_RAB_ReleasedItem_IuRelComp, new_create_dissector_handle(dissect_RAB_ReleasedItem_IuRelComp_PDU, proto_ranap));
   dissector_add("ranap.ies", id_RelocationType, new_create_dissector_handle(dissect_RelocationType_PDU, proto_ranap));
   dissector_add("ranap.ies", id_SourceID, new_create_dissector_handle(dissect_SourceID_PDU, proto_ranap));
-  dissector_add("ranap.ies", id_Source_ToTarget_TransparentContainer, new_create_dissector_handle(dissect_SourceRNC_ToTargetRNC_TransparentContainer_PDU, proto_ranap));
+  dissector_add("ranap.ies", id_Source_ToTarget_TransparentContainer, new_create_dissector_handle(dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU, proto_ranap));
   dissector_add("ranap.ies", SPECIAL|id_Source_ToTarget_TransparentContainer, new_create_dissector_handle(dissect_Source_ToTarget_TransparentContainer_PDU, proto_ranap));
   dissector_add("ranap.ies", id_TargetID, new_create_dissector_handle(dissect_TargetID_PDU, proto_ranap));
   dissector_add("ranap.ies", id_Target_ToSource_TransparentContainer, new_create_dissector_handle(dissect_TargetRNC_ToSourceRNC_TransparentContainer_PDU, proto_ranap));
@@ -14965,7 +14976,7 @@ proto_reg_handoff_ranap(void)
 
 
 /*--- End of included file: packet-ranap-dis-tab.c ---*/
-#line 349 "packet-ranap-template.c"
+#line 351 "packet-ranap-template.c"
        } else {
                dissector_delete("sccp.ssn", local_ranap_sccp_ssn, ranap_handle);
        }
index 1b0f76337f5099819a5d2548f18e2963913ee746..1f3e026d909094700a04abea5f8737e7d72579e4 100644 (file)
@@ -39,6 +39,7 @@ int dissect_ranap_EncryptionInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_
 int dissect_ranap_IntegrityProtectionInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
 int dissect_ranap_Service_Handover(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
 int dissect_ranap_TargetRNC_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+int dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_);
 
 /*--- End of included file: packet-ranap-exp.h ---*/
 #line 27 "packet-ranap-template.h"