From 9ca6c5518c385bb206e5586e28c4d7b62399cdc4 Mon Sep 17 00:00:00 2001 From: Anders Broman Date: Wed, 25 Nov 2009 17:15:10 +0000 Subject: [PATCH] If SourceRNC-ToTargetRNC-TransparentContainer is called trough dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU ProtocolIE_ID may be unset svn path=/trunk/; revision=31073 --- asn1/ranap/ranap.cnf | 9 +++++++ epan/dissectors/packet-gsm_a_bssmap.c | 39 ++++++++++++++++++++++++++- epan/dissectors/packet-ranap.c | 14 ++++++++-- 3 files changed, 59 insertions(+), 3 deletions(-) diff --git a/asn1/ranap/ranap.cnf b/asn1/ranap/ranap.cnf index 6d294360d2..ab74882168 100644 --- a/asn1/ranap/ranap.cnf +++ b/asn1/ranap/ranap.cnf @@ -286,6 +286,15 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound") return offset; proto_tree_add_item(tree, saved_hf, parameter_tvb, 0, 4, FALSE); +#.FN_HDR SourceRNC-ToTargetRNC-TransparentContainer +/* If SourceRNC-ToTargetRNC-TransparentContainer is called trough + dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU + ProtocolIE_ID may be unset + */ + + + ProtocolIE_ID = id_Source_ToTarget_TransparentContainer; + #.FN_BODY Source-ToTarget-TransparentContainer VAL_PTR = ¶meter_tvb # -- 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 diff --git a/epan/dissectors/packet-gsm_a_bssmap.c b/epan/dissectors/packet-gsm_a_bssmap.c index 125aacab2c..0f38f33193 100644 --- a/epan/dissectors/packet-gsm_a_bssmap.c +++ b/epan/dissectors/packet-gsm_a_bssmap.c @@ -266,6 +266,26 @@ const value_string gsm_bssmap_elem_strings[] = { { 0, NULL } }; +#if 0 +/* 3.2.3 Signalling Field Element Coding */ +static const value_string bssap_sig_field_values[] = { + + { 0x1, "Extra information" }, /* 3.2.3.1 */ + { 0x2, "Current Channel Type 2" }, /* 3.2.2.2 */ + { 0x3, "Target cell radio information" }, /* 3.2.3.3 */ + { 0x4, "GPRS Suspend information" }, /* 3.2.3.4 */ + { 0x5, "MultiRate configuration information" }, /* 3.2.3.5 */ + { 0x6, "Dual Transfer Mode information" }, /* 3.2.3.6 */ + { 0x7, "Inter RAT Handover Info" }, /* 3.2.3.7 */ + /*{ 0x7, "UE Capability information" },*/ /* 3.2.3.7 */ + { 0x8, "cdma2000 Capability Information" }, /* 3.2.3.8 */ + { 0x9, "Downlink Cell Load Information" }, /* 3.2.3.9 */ + { 0xa, "Uplink Cell Load Information" }, /* 3.2.3.10 */ + { 0xb, "Cell Load Information Group" }, /* 3.2.3.11 */ + { 0xc, "Cell Load Information" }, /* 3.2.3.12 */ + { 0, NULL } +}; +#endif static const value_string bssap_cc_values[] = { { 0x00, "not further specified" }, { 0x80, "FACCH or SDCCH" }, @@ -2641,6 +2661,23 @@ be_conf_evo_ind(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, } /* * 3.2.2.58 Old BSS to New BSS information + */ +static guint16 +be_old_bss_to_new_bss_inf(tvbuff_t *tvb, proto_tree *tree, guint32 offset, guint len _U_, gchar *add_string _U_, int string_len _U_) +{ + guint32 curr_offset; + + curr_offset = offset; + + if (len == 0) + return len; + + proto_tree_add_text(tree, tvb, curr_offset, len , "Not decoded yet"); + + + return(len); +} +/* * 3.2.2.59 (void) * 3.2.2.60 LCS QoS * (The QoS octets 3 to n are coded in the same way as the equivalent octets @@ -3642,7 +3679,7 @@ guint16 (*bssmap_elem_fcn[])(tvbuff_t *tvb, proto_tree *tree, guint32 offset, gu de_d_gb_call_ref, /* Group Call Reference */ NULL, /* eMLPP Priority */ be_conf_evo_ind, /* Configuration Evolution Indication */ - NULL /* no decode required */, /* Old BSS to New BSS Information */ + be_old_bss_to_new_bss_inf, /* Old BSS to New BSS Information */ be_lsa_id, /* LSA Identifier */ be_lsa_id_list, /* LSA Identifier List */ be_lsa_info, /* LSA Information */ diff --git a/epan/dissectors/packet-ranap.c b/epan/dissectors/packet-ranap.c index 1e67b62ce7..655c3162db 100644 --- a/epan/dissectors/packet-ranap.c +++ b/epan/dissectors/packet-ranap.c @@ -6255,7 +6255,7 @@ 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 295 "ranap.cnf" +#line 304 "ranap.cnf" dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer(tvb , offset, actx ,tree , hf_ranap_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU ); @@ -6332,6 +6332,16 @@ static const per_sequence_t SourceRNC_ToTargetRNC_TransparentContainer_sequence[ static int dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 290 "ranap.cnf" +/* If SourceRNC-ToTargetRNC-TransparentContainer is called trough + dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU + ProtocolIE_ID may be unset + */ + + + ProtocolIE_ID = id_Source_ToTarget_TransparentContainer; + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, ett_ranap_SourceRNC_ToTargetRNC_TransparentContainer, SourceRNC_ToTargetRNC_TransparentContainer_sequence); @@ -6433,7 +6443,7 @@ 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 305 "ranap.cnf" +#line 314 "ranap.cnf" dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer(tvb , offset, actx ,tree , hf_ranap_TargetRNC_ToSourceRNC_TransparentContainer_PDU );