diff options
author | AndersBroman <anders.broman@ericsson.com> | 2015-11-02 09:40:18 +0100 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2015-11-02 13:03:16 +0000 |
commit | 1316fdf209af0ff5a881dc8ae1ad8ede6ef78bda (patch) | |
tree | 71a9f8dcf4df8af203a93e27a2bc248e94613ca3 | |
parent | 1c5b3c378321267e86aa4154c3d907a1088f6949 (diff) |
[GTPv2] Dissect UTRAN F-Container content.
Change-Id: Idaf07e31876b453f88c5fd7e886c72dffcb35a96
Reviewed-on: https://code.wireshark.org/review/11492
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r-- | asn1/ranap/packet-ranap-template.c | 1 | ||||
-rw-r--r-- | asn1/ranap/ranap.cnf | 7 | ||||
-rw-r--r-- | asn1/s1ap/s1ap.cnf | 3 | ||||
-rw-r--r-- | epan/dissectors/packet-gtpv2.c | 29 | ||||
-rw-r--r-- | epan/dissectors/packet-ranap.c | 78 | ||||
-rw-r--r-- | epan/dissectors/packet-ranap.h | 1 | ||||
-rw-r--r-- | epan/dissectors/packet-s1ap.c | 161 | ||||
-rw-r--r-- | epan/dissectors/packet-s1ap.h | 1 |
8 files changed, 172 insertions, 109 deletions
diff --git a/asn1/ranap/packet-ranap-template.c b/asn1/ranap/packet-ranap-template.c index 57bd20a9a7..ee61f74728 100644 --- a/asn1/ranap/packet-ranap-template.c +++ b/asn1/ranap/packet-ranap-template.c @@ -39,6 +39,7 @@ #include "packet-sccp.h" #include "packet-gsm_a_common.h" #include "packet-isup.h" +#include "packet-s1ap.h" #ifdef _MSC_VER /* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */ diff --git a/asn1/ranap/ranap.cnf b/asn1/ranap/ranap.cnf index 25e6756939..94a1027565 100644 --- a/asn1/ranap/ranap.cnf +++ b/asn1/ranap/ranap.cnf @@ -16,6 +16,7 @@ TargetRNC-ToSourceRNC-TransparentContainer_PDU TargetRNC-ID TargetRNC-ID_PDU InterSystemInformation-TransparentContainer_PDU +Source-ToTarget-TransparentContainer_PDU #.PDU_NEW RANAP-PDU @@ -380,6 +381,12 @@ dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer(tvb , offset, actx ,tre proto_item_append_text(actx->created_item, " (%%u)", port_number); } +#.FN_BODY UE-History-Information VAL_PTR=&value_tvb + tvbuff_t *value_tvb = NULL; + +%(DEFAULT_BODY)s + if (value_tvb) + dissect_s1ap_UE_HistoryInformation_PDU(value_tvb, %(ACTX)s->pinfo, tree, NULL); #.TYPE_ATTR ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS = &ranap_ProtocolIE_ID_vals_ext diff --git a/asn1/s1ap/s1ap.cnf b/asn1/s1ap/s1ap.cnf index 915e93fe38..bbf7eb662c 100644 --- a/asn1/s1ap/s1ap.cnf +++ b/asn1/s1ap/s1ap.cnf @@ -28,6 +28,8 @@ SONtransferRequestContainer SONtransferResponseContainer_PDU SONtransferResponseContainer SONtransferCause_PDU +UE-HistoryInformation_PDU + #.PDU_NEW S1AP-PDU @@ -38,6 +40,7 @@ SONtransferApplicationIdentity SONtransferRequestContainer SONtransferResponseContainer SONtransferCause +UE-HistoryInformation #.MAKE_ENUM ProcedureCode diff --git a/epan/dissectors/packet-gtpv2.c b/epan/dissectors/packet-gtpv2.c index 3e2c591fef..51f6cb6072 100644 --- a/epan/dissectors/packet-gtpv2.c +++ b/epan/dissectors/packet-gtpv2.c @@ -36,6 +36,7 @@ #include "packet-e164.h" #include "packet-e212.h" #include "packet-s1ap.h" +#include "packet-ranap.h" #include "packet-bssgp.h" #include "packet-ntp.h" #include "packet-gtpv2.h" @@ -531,6 +532,8 @@ static gint ett_gtpv2_ms_mark = -1; static gint ett_gtpv2_stn_sr = -1; static gint ett_gtpv2_supp_codec_list = -1; static gint ett_gtpv2_bss_con = -1; +static gint ett_gtpv2_utran_con = -1; +static gint ett_gtpv2_eutran_con = -1; static gint ett_gtpv2_mm_context_auth_qua = -1; static gint ett_gtpv2_mm_context_auth_qui = -1; static gint ett_gtpv2_mm_context_auth_tri = -1; @@ -4085,6 +4088,18 @@ dissect_gtpv2_F_container(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, p || (message_type == GTPV2_CONTEXT_RESPONSE) || (message_type == GTPV2_RAN_INFORMATION_RELAY)) { switch (container_type) { + case 1: + /* UTRAN transparent container (1) + * Contains the "Source to Target + * Transparent Container", if the message is used for PS + * handover to UTRAN Iu mode procedures, SRNS relocation + * procedure and E-UTRAN to UTRAN inter RAT handover + * procedure. + */ + sub_tree = proto_tree_add_subtree(tree, tvb, offset, length, ett_gtpv2_utran_con, NULL, "UTRAN transparent container"); + new_tvb = tvb_new_subset_remaining(tvb, offset); + dissect_ranap_Source_ToTarget_TransparentContainer_PDU(new_tvb, pinfo, sub_tree, NULL); + return; case 2: /* BSS container */ sub_tree = proto_tree_add_subtree(tree, tvb, offset, length, ett_gtpv2_bss_con, NULL, "BSS container"); @@ -4121,6 +4136,18 @@ dissect_gtpv2_F_container(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, p proto_tree_add_item(sub_tree, hf_gtpv2_bss_con_xid, tvb, offset, xid_len, ENC_NA); } return; + case 3: + /* E-UTRAN transparent container + * This IE shall be included to contain the "Source to Target + * Transparent Container", if the message is used for + * UTRAN/GERAN to E-UTRAN inter RAT handover + * procedure, E-UTRAN intra RAT handover procedure and + * 3G SGSN to MME combined hard handover and SRNS + * relocation procedure. The Container Type shall be set to 3. + */ + sub_tree = proto_tree_add_subtree(tree, tvb, offset, length, ett_gtpv2_eutran_con, NULL, "E-UTRAN transparent container"); + proto_tree_add_expert(tree, pinfo, &ei_gtpv2_ie_data_not_dissected, tvb, offset, length - offset); + return; default: break; } @@ -8060,6 +8087,8 @@ void proto_register_gtpv2(void) &ett_gtpv2_ms_mark, &ett_gtpv2_supp_codec_list, &ett_gtpv2_bss_con, + &ett_gtpv2_utran_con, + &ett_gtpv2_eutran_con, &ett_gtpv2_mm_context_auth_qua, &ett_gtpv2_mm_context_auth_qui, &ett_gtpv2_mm_context_auth_tri, diff --git a/epan/dissectors/packet-ranap.c b/epan/dissectors/packet-ranap.c index e0f78c1c6b..1245e20c6c 100644 --- a/epan/dissectors/packet-ranap.c +++ b/epan/dissectors/packet-ranap.c @@ -47,6 +47,7 @@ #include "packet-sccp.h" #include "packet-gsm_a_common.h" #include "packet-isup.h" +#include "packet-s1ap.h" #ifdef _MSC_VER /* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */ @@ -407,7 +408,7 @@ typedef enum _ProtocolIE_ID_enum { } ProtocolIE_ID_enum; /*--- End of included file: packet-ranap-val.h ---*/ -#line 58 "../../asn1/ranap/packet-ranap-template.c" +#line 59 "../../asn1/ranap/packet-ranap-template.c" void proto_register_ranap(void); void proto_reg_handoff_ranap(void); @@ -549,7 +550,7 @@ static int hf_ranap_SAPI_PDU = -1; /* SAPI */ static int hf_ranap_SessionUpdateID_PDU = -1; /* SessionUpdateID */ static int hf_ranap_SignallingIndication_PDU = -1; /* SignallingIndication */ 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_ranap_Source_ToTarget_TransparentContainer_PDU = -1; /* Source_ToTarget_TransparentContainer */ static int hf_ranap_ranap_SourceCellID_PDU = -1; /* SourceCellID */ static int hf_ranap_SourceBSS_ToTargetBSS_TransparentContainer_PDU = -1; /* SourceBSS_ToTargetBSS_TransparentContainer */ static int hf_ranap_SourceID_PDU = -1; /* SourceID */ @@ -1145,7 +1146,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 75 "../../asn1/ranap/packet-ranap-template.c" +#line 76 "../../asn1/ranap/packet-ranap-template.c" /* Initialize the subtree pointers */ static int ett_ranap = -1; @@ -1481,7 +1482,7 @@ static gint ett_ranap_UnsuccessfulOutcome = -1; static gint ett_ranap_Outcome = -1; /*--- End of included file: packet-ranap-ett.c ---*/ -#line 82 "../../asn1/ranap/packet-ranap-template.c" +#line 83 "../../asn1/ranap/packet-ranap-template.c" /* Global variables */ static guint32 ProcedureCode; @@ -1661,7 +1662,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 92 "../../asn1/ranap/ranap.cnf" +#line 93 "../../asn1/ranap/ranap.cnf" col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ", val_to_str_ext_const(ProcedureCode, &ranap_ProcedureCode_vals_ext, "unknown message")); @@ -1945,7 +1946,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 76 "../../asn1/ranap/ranap.cnf" +#line 77 "../../asn1/ranap/ranap.cnf" if (tree) { proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(ProtocolIE_ID, &ranap_ProtocolIE_ID_vals_ext, "unknown (%d)")); } @@ -2067,7 +2068,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 116 "../../asn1/ranap/ranap.cnf" +#line 117 "../../asn1/ranap/ranap.cnf" static const asn1_par_def_t ProtocolIE_ContainerList_pars[] = { { "lowerBound", ASN1_PAR_INTEGER }, { "upperBound", ASN1_PAR_INTEGER }, @@ -2089,7 +2090,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 132 "../../asn1/ranap/ranap.cnf" +#line 133 "../../asn1/ranap/ranap.cnf" static const asn1_par_def_t ProtocolIE_ContainerPairList_pars[] = { { "lowerBound", ASN1_PAR_INTEGER }, { "upperBound", ASN1_PAR_INTEGER }, @@ -2658,7 +2659,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 281 "../../asn1/ranap/ranap.cnf" +#line 282 "../../asn1/ranap/ranap.cnf" tvbuff_t *parameter_tvb=NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -3155,7 +3156,7 @@ dissect_ranap_AuthorisedPLMNs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act static int dissect_ranap_BindingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 374 "../../asn1/ranap/ranap.cnf" +#line 375 "../../asn1/ranap/ranap.cnf" tvbuff_t *value_tvb = NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, 4, 4, FALSE, &value_tvb); @@ -3169,7 +3170,6 @@ dissect_ranap_BindingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, - return offset; } @@ -4588,7 +4588,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 333 "../../asn1/ranap/ranap.cnf" +#line 334 "../../asn1/ranap/ranap.cnf" tvbuff_t *parameter_tvb=NULL; int saved_hf; @@ -4771,7 +4771,7 @@ dissect_ranap_ImmediateMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ 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 189 "../../asn1/ranap/ranap.cnf" +#line 190 "../../asn1/ranap/ranap.cnf" tvbuff_t* imsi_tvb; const char *digit_str; sccp_msg_info_t *sccp_info; @@ -5622,7 +5622,7 @@ dissect_ranap_LocationReportingTransferInformation(tvbuff_t *tvb _U_, int offset static int dissect_ranap_L3_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 269 "../../asn1/ranap/ranap.cnf" +#line 270 "../../asn1/ranap/ranap.cnf" tvbuff_t *l3_info_tvb=NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -6042,7 +6042,7 @@ dissect_ranap_MSISDN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr 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 214 "../../asn1/ranap/ranap.cnf" +#line 215 "../../asn1/ranap/ranap.cnf" tvbuff_t *nas_pdu_tvb=NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -6080,7 +6080,7 @@ dissect_ranap_NAS_SynchronisationIndicator(tvbuff_t *tvb _U_, int offset _U_, as static int dissect_ranap_NewBSS_To_OldBSS_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 261 "../../asn1/ranap/ranap.cnf" +#line 262 "../../asn1/ranap/ranap.cnf" tvbuff_t *bss_info_tvb=NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -6169,7 +6169,7 @@ dissect_ranap_Offload_RAB_Parameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx static int dissect_ranap_OldBSS_ToNewBSS_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 253 "../../asn1/ranap/ranap.cnf" +#line 254 "../../asn1/ranap/ranap.cnf" tvbuff_t *bss_info_tvb=NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -7335,7 +7335,7 @@ dissect_ranap_RNSAPRelocationParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ 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 223 "../../asn1/ranap/ranap.cnf" +#line 224 "../../asn1/ranap/ranap.cnf" tvbuff_t *rrc_message_tvb=NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -7447,7 +7447,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 359 "../../asn1/ranap/ranap.cnf" +#line 360 "../../asn1/ranap/ranap.cnf" dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer(tvb , offset, actx ,tree , hf_ranap_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU ); @@ -7524,7 +7524,7 @@ 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 345 "../../asn1/ranap/ranap.cnf" +#line 346 "../../asn1/ranap/ranap.cnf" /* If SourceRNC-ToTargetRNC-TransparentContainer is called trough dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU ProtocolIE_ID may be unset @@ -7763,7 +7763,7 @@ dissect_ranap_SRVCC_Operation_Possible(tvbuff_t *tvb _U_, int offset _U_, asn1_c 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 369 "../../asn1/ranap/ranap.cnf" +#line 370 "../../asn1/ranap/ranap.cnf" dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer(tvb , offset, actx ,tree , hf_ranap_ranap_TargetRNC_ToSourceRNC_TransparentContainer_PDU ); @@ -7895,7 +7895,7 @@ dissect_ranap_TraceType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, 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 304 "../../asn1/ranap/ranap.cnf" +#line 305 "../../asn1/ranap/ranap.cnf" tvbuff_t *parameter_tvb=NULL; proto_item *item; proto_tree *subtree, *nsap_tree; @@ -7994,8 +7994,16 @@ dissect_ranap_UE_AggregateMaximumBitRate(tvbuff_t *tvb _U_, int offset _U_, asn1 static int dissect_ranap_UE_History_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 385 "../../asn1/ranap/ranap.cnf" + tvbuff_t *value_tvb = NULL; + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, - NO_BOUND, NO_BOUND, FALSE, NULL); + NO_BOUND, NO_BOUND, FALSE, &value_tvb); + + if (value_tvb) + dissect_s1ap_UE_HistoryInformation_PDU(value_tvb, actx->pinfo, tree, NULL); + + return offset; } @@ -8253,7 +8261,7 @@ dissect_ranap_VelocityEstimate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac 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 142 "../../asn1/ranap/ranap.cnf" +#line 143 "../../asn1/ranap/ranap.cnf" asn1_stack_frame_push(actx, "ProtocolIE-ContainerList"); asn1_param_push_integer(actx, 1); asn1_param_push_integer(actx, maxNrOfRABs); @@ -8269,7 +8277,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 150 "../../asn1/ranap/ranap.cnf" +#line 151 "../../asn1/ranap/ranap.cnf" asn1_stack_frame_push(actx, "ProtocolIE-ContainerPairList"); asn1_param_push_integer(actx, 1); asn1_param_push_integer(actx, maxNrOfRABs); @@ -8285,7 +8293,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 167 "../../asn1/ranap/ranap.cnf" +#line 168 "../../asn1/ranap/ranap.cnf" asn1_stack_frame_push(actx, "ProtocolIE-ContainerList"); asn1_param_push_integer(actx, 1); asn1_param_push_integer(actx, maxNrOfIuSigConIds); @@ -8301,7 +8309,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 175 "../../asn1/ranap/ranap.cnf" +#line 176 "../../asn1/ranap/ranap.cnf" asn1_stack_frame_push(actx, "ProtocolIE-ContainerList"); asn1_param_push_integer(actx, 1); asn1_param_push_integer(actx, maxNrOfDTs); @@ -11631,11 +11639,11 @@ static int dissect_SNA_Access_Information_PDU(tvbuff_t *tvb _U_, packet_info *pi offset += 7; offset >>= 3; return offset; } -static int dissect_Source_ToTarget_TransparentContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { +int dissect_ranap_Source_ToTarget_TransparentContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); - offset = dissect_ranap_Source_ToTarget_TransparentContainer(tvb, offset, &asn1_ctx, tree, hf_ranap_Source_ToTarget_TransparentContainer_PDU); + offset = dissect_ranap_Source_ToTarget_TransparentContainer(tvb, offset, &asn1_ctx, tree, hf_ranap_ranap_Source_ToTarget_TransparentContainer_PDU); offset += 7; offset >>= 3; return offset; } @@ -13082,7 +13090,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 141 "../../asn1/ranap/packet-ranap-template.c" +#line 142 "../../asn1/ranap/packet-ranap-template.c" static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) @@ -13758,7 +13766,7 @@ void proto_register_ranap(void) { { "SNA-Access-Information", "ranap.SNA_Access_Information_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_ranap_Source_ToTarget_TransparentContainer_PDU, + { &hf_ranap_ranap_Source_ToTarget_TransparentContainer_PDU, { "Source-ToTarget-TransparentContainer", "ranap.Source_ToTarget_TransparentContainer", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, @@ -16136,7 +16144,7 @@ void proto_register_ranap(void) { NULL, HFILL }}, /*--- End of included file: packet-ranap-hfarr.c ---*/ -#line 326 "../../asn1/ranap/packet-ranap-template.c" +#line 327 "../../asn1/ranap/packet-ranap-template.c" }; /* List of subtrees */ @@ -16473,7 +16481,7 @@ void proto_register_ranap(void) { &ett_ranap_Outcome, /*--- End of included file: packet-ranap-ettarr.c ---*/ -#line 334 "../../asn1/ranap/packet-ranap-template.c" +#line 335 "../../asn1/ranap/packet-ranap-template.c" }; @@ -16535,7 +16543,7 @@ proto_reg_handoff_ranap(void) dissector_add_uint("ranap.ies", id_RelocationType, new_create_dissector_handle(dissect_RelocationType_PDU, proto_ranap)); dissector_add_uint("ranap.ies", id_SourceID, new_create_dissector_handle(dissect_SourceID_PDU, proto_ranap)); dissector_add_uint("ranap.ies", id_Source_ToTarget_TransparentContainer, new_create_dissector_handle(dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU, proto_ranap)); - dissector_add_uint("ranap.ies", SPECIAL|id_Source_ToTarget_TransparentContainer, new_create_dissector_handle(dissect_Source_ToTarget_TransparentContainer_PDU, proto_ranap)); + dissector_add_uint("ranap.ies", SPECIAL|id_Source_ToTarget_TransparentContainer, new_create_dissector_handle(dissect_ranap_Source_ToTarget_TransparentContainer_PDU, proto_ranap)); dissector_add_uint("ranap.ies", id_TargetID, new_create_dissector_handle(dissect_TargetID_PDU, proto_ranap)); dissector_add_uint("ranap.ies", id_Target_ToSource_TransparentContainer, new_create_dissector_handle(dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer_PDU, proto_ranap)); dissector_add_uint("ranap.ies", SPECIAL|id_Target_ToSource_TransparentContainer, new_create_dissector_handle(dissect_Target_ToSource_TransparentContainer_PDU, proto_ranap)); @@ -16856,7 +16864,7 @@ proto_reg_handoff_ranap(void) /*--- End of included file: packet-ranap-dis-tab.c ---*/ -#line 384 "../../asn1/ranap/packet-ranap-template.c" +#line 385 "../../asn1/ranap/packet-ranap-template.c" } else { dissector_delete_uint("sccp.ssn", local_ranap_sccp_ssn, ranap_handle); } diff --git a/epan/dissectors/packet-ranap.h b/epan/dissectors/packet-ranap.h index 5f4b05ec69..e5b80ecbe2 100644 --- a/epan/dissectors/packet-ranap.h +++ b/epan/dissectors/packet-ranap.h @@ -40,6 +40,7 @@ int dissect_ranap_IntegrityProtectionInformation(tvbuff_t *tvb _U_, int offset _ 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_InterSystemInformation_TransparentContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); +int dissect_ranap_Source_ToTarget_TransparentContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_ranap_SourceCellID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_ranap_TargetRNC_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); diff --git a/epan/dissectors/packet-s1ap.c b/epan/dissectors/packet-s1ap.c index 2c636c653b..88a0ce03b4 100644 --- a/epan/dissectors/packet-s1ap.c +++ b/epan/dissectors/packet-s1ap.c @@ -480,6 +480,7 @@ static int hf_s1ap_UEAggregateMaximumBitrate_PDU = -1; /* UEAggregateMaximumBit static int hf_s1ap_UE_S1AP_IDs_PDU = -1; /* UE_S1AP_IDs */ static int hf_s1ap_UE_associatedLogicalS1_ConnectionItem_PDU = -1; /* UE_associatedLogicalS1_ConnectionItem */ static int hf_s1ap_UEIdentityIndexValue_PDU = -1; /* UEIdentityIndexValue */ +static int hf_s1ap_s1ap_UE_HistoryInformation_PDU = -1; /* UE_HistoryInformation */ static int hf_s1ap_UEPagingID_PDU = -1; /* UEPagingID */ static int hf_s1ap_UERadioCapability_PDU = -1; /* UERadioCapability */ static int hf_s1ap_UESecurityCapabilities_PDU = -1; /* UESecurityCapabilities */ @@ -1313,7 +1314,7 @@ static const per_choice_t PrivateIE_ID_choice[] = { static int dissect_s1ap_PrivateIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 186 "../../asn1/s1ap/s1ap.cnf" +#line 189 "../../asn1/s1ap/s1ap.cnf" obj_id = NULL; @@ -1387,7 +1388,7 @@ dissect_s1ap_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 106 "../../asn1/s1ap/s1ap.cnf" +#line 109 "../../asn1/s1ap/s1ap.cnf" col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s", val_to_str_ext(ProcedureCode, &s1ap_ProcedureCode_vals_ext, "unknown message")); @@ -1611,7 +1612,7 @@ dissect_s1ap_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 89 "../../asn1/s1ap/s1ap.cnf" +#line 92 "../../asn1/s1ap/s1ap.cnf" if (tree) { proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(ProtocolIE_ID, &s1ap_ProtocolIE_ID_vals_ext, "unknown (%d)")); } @@ -1691,7 +1692,7 @@ static const per_sequence_t ProtocolIE_ContainerList_sequence_of[1] = { static int dissect_s1ap_ProtocolIE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 131 "../../asn1/s1ap/s1ap.cnf" +#line 134 "../../asn1/s1ap/s1ap.cnf" static const asn1_par_def_t ProtocolIE_ContainerList_pars[] = { { "lowerBound", ASN1_PAR_INTEGER }, { "upperBound", ASN1_PAR_INTEGER }, @@ -1749,7 +1750,7 @@ dissect_s1ap_ProtocolExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ static int dissect_s1ap_T_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 191 "../../asn1/s1ap/s1ap.cnf" +#line 194 "../../asn1/s1ap/s1ap.cnf" if (obj_id){ offset=call_per_oid_callback(obj_id, tvb, actx->pinfo, tree, offset, actx, hf_index); @@ -1800,7 +1801,7 @@ dissect_s1ap_PrivateIE_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int dissect_s1ap_PLMNidentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 204 "../../asn1/s1ap/s1ap.cnf" +#line 207 "../../asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -1875,7 +1876,7 @@ dissect_s1ap_CellBasedMDT(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U static int dissect_s1ap_TAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 241 "../../asn1/s1ap/s1ap.cnf" +#line 244 "../../asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, @@ -2594,7 +2595,7 @@ static value_string_ext s1ap_CauseRadioNetwork_vals_ext = VALUE_STRING_EXT_INIT( static int dissect_s1ap_CauseRadioNetwork(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1214 "../../asn1/s1ap/s1ap.cnf" +#line 1217 "../../asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 36, &value, TRUE, 3, NULL); @@ -2616,7 +2617,7 @@ const value_string s1ap_CauseTransport_vals[] = { static int dissect_s1ap_CauseTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1219 "../../asn1/s1ap/s1ap.cnf" +#line 1222 "../../asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 2, &value, TRUE, 0, NULL); @@ -2641,7 +2642,7 @@ const value_string s1ap_CauseNas_vals[] = { static int dissect_s1ap_CauseNas(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1224 "../../asn1/s1ap/s1ap.cnf" +#line 1227 "../../asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 4, &value, TRUE, 1, NULL); @@ -2668,7 +2669,7 @@ const value_string s1ap_CauseProtocol_vals[] = { static int dissect_s1ap_CauseProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1229 "../../asn1/s1ap/s1ap.cnf" +#line 1232 "../../asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 7, &value, TRUE, 0, NULL); @@ -2694,7 +2695,7 @@ const value_string s1ap_CauseMisc_vals[] = { static int dissect_s1ap_CauseMisc(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1234 "../../asn1/s1ap/s1ap.cnf" +#line 1237 "../../asn1/s1ap/s1ap.cnf" guint32 value; offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 6, &value, TRUE, 0, NULL); @@ -2753,7 +2754,7 @@ dissect_s1ap_CellAccessMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_Cdma2000PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 532 "../../asn1/s1ap/s1ap.cnf" +#line 535 "../../asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree = NULL; @@ -2795,7 +2796,7 @@ dissect_s1ap_Cdma2000RATType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_Cdma2000SectorID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 547 "../../asn1/s1ap/s1ap.cnf" +#line 550 "../../asn1/s1ap/s1ap.cnf" /* 9.2.1.25 * This IE is set to CDMA2000 Reference Cell ID * corresponding to the HRPD/1xRTT sector under @@ -3487,7 +3488,7 @@ dissect_s1ap_ENB_UE_S1AP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int dissect_s1ap_ENBname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 217 "../../asn1/s1ap/s1ap.cnf" +#line 220 "../../asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; int length; int p_offset; @@ -3522,7 +3523,7 @@ dissect_s1ap_ENBname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr static int dissect_s1ap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 272 "../../asn1/s1ap/s1ap.cnf" +#line 275 "../../asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; proto_tree *subtree; gint tvb_len; @@ -3920,7 +3921,7 @@ static const value_string s1ap_HandoverType_vals[] = { static int dissect_s1ap_HandoverType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 307 "../../asn1/s1ap/s1ap.cnf" +#line 310 "../../asn1/s1ap/s1ap.cnf" offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, 5, &handover_type_value, TRUE, 0, NULL); @@ -4238,7 +4239,7 @@ dissect_s1ap_LastVisitedCell_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int dissect_s1ap_LPPa_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 263 "../../asn1/s1ap/s1ap.cnf" +#line 266 "../../asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; @@ -4641,7 +4642,7 @@ dissect_s1ap_MSClassmark3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U static int dissect_s1ap_NAS_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 254 "../../asn1/s1ap/s1ap.cnf" +#line 257 "../../asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb=NULL; @@ -4861,7 +4862,7 @@ dissect_s1ap_RequestType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ static int dissect_s1ap_RIMInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 516 "../../asn1/s1ap/s1ap.cnf" +#line 519 "../../asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree; @@ -4976,7 +4977,7 @@ dissect_s1ap_RepetitionPeriod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act static int dissect_s1ap_RRC_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 441 "../../asn1/s1ap/s1ap.cnf" +#line 444 "../../asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; @@ -5224,7 +5225,7 @@ dissect_s1ap_SONConfigurationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ct static int dissect_s1ap_Source_ToTarget_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 326 "../../asn1/s1ap/s1ap.cnf" +#line 329 "../../asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree = NULL; @@ -5580,7 +5581,7 @@ dissect_s1ap_TargeteNB_ToSourceeNB_TransparentContainer(tvbuff_t *tvb _U_, int o static int dissect_s1ap_Target_ToSource_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 383 "../../asn1/s1ap/s1ap.cnf" +#line 386 "../../asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree = NULL; @@ -5882,7 +5883,7 @@ dissect_s1ap_UEPagingID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, static int dissect_s1ap_UERadioCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 501 "../../asn1/s1ap/s1ap.cnf" +#line 504 "../../asn1/s1ap/s1ap.cnf" tvbuff_t *parameter_tvb; proto_tree *subtree = NULL; @@ -6066,7 +6067,7 @@ dissect_s1ap_ENBIndirectX2TransportLayerAddresses(tvbuff_t *tvb _U_, int offset static int dissect_s1ap_E_RAB_IE_ContainerList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 158 "../../asn1/s1ap/s1ap.cnf" +#line 161 "../../asn1/s1ap/s1ap.cnf" asn1_stack_frame_push(actx, "ProtocolIE-ContainerList"); asn1_param_push_integer(actx, 1); asn1_param_push_integer(actx, maxnoofE_RABs); @@ -6086,7 +6087,7 @@ static const per_sequence_t HandoverRequired_sequence[] = { static int dissect_s1ap_HandoverRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 312 "../../asn1/s1ap/s1ap.cnf" +#line 315 "../../asn1/s1ap/s1ap.cnf" handover_type_value = 0; col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverRequired "); @@ -6104,7 +6105,7 @@ static const per_sequence_t HandoverCommand_sequence[] = { static int dissect_s1ap_HandoverCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 314 "../../asn1/s1ap/s1ap.cnf" +#line 317 "../../asn1/s1ap/s1ap.cnf" handover_type_value = 0; col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverCommand "); @@ -6150,7 +6151,7 @@ static const per_sequence_t HandoverPreparationFailure_sequence[] = { static int dissect_s1ap_HandoverPreparationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1155 "../../asn1/s1ap/s1ap.cnf" +#line 1158 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverPreparationFailure "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6167,7 +6168,7 @@ static const per_sequence_t HandoverRequest_sequence[] = { static int dissect_s1ap_HandoverRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 316 "../../asn1/s1ap/s1ap.cnf" +#line 319 "../../asn1/s1ap/s1ap.cnf" handover_type_value = 0; col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverRequest "); @@ -6213,7 +6214,7 @@ static const per_sequence_t HandoverRequestAcknowledge_sequence[] = { static int dissect_s1ap_HandoverRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1159 "../../asn1/s1ap/s1ap.cnf" +#line 1162 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverRequestAcknowledge "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6285,7 +6286,7 @@ static const per_sequence_t HandoverFailure_sequence[] = { static int dissect_s1ap_HandoverFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1161 "../../asn1/s1ap/s1ap.cnf" +#line 1164 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverFailure "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6302,7 +6303,7 @@ static const per_sequence_t HandoverNotify_sequence[] = { static int dissect_s1ap_HandoverNotify(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1163 "../../asn1/s1ap/s1ap.cnf" +#line 1166 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverNotify "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6319,7 +6320,7 @@ static const per_sequence_t PathSwitchRequest_sequence[] = { static int dissect_s1ap_PathSwitchRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1165 "../../asn1/s1ap/s1ap.cnf" +#line 1168 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", PathSwitchRequest "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6362,7 +6363,7 @@ static const per_sequence_t PathSwitchRequestAcknowledge_sequence[] = { static int dissect_s1ap_PathSwitchRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1167 "../../asn1/s1ap/s1ap.cnf" +#line 1170 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", PathSwitchRequestAcknowledge "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6405,7 +6406,7 @@ static const per_sequence_t PathSwitchRequestFailure_sequence[] = { static int dissect_s1ap_PathSwitchRequestFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1169 "../../asn1/s1ap/s1ap.cnf" +#line 1172 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", PathSwitchRequestFailure "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6422,7 +6423,7 @@ static const per_sequence_t HandoverCancel_sequence[] = { static int dissect_s1ap_HandoverCancel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1171 "../../asn1/s1ap/s1ap.cnf" +#line 1174 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverCancel "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6439,7 +6440,7 @@ static const per_sequence_t HandoverCancelAcknowledge_sequence[] = { static int dissect_s1ap_HandoverCancelAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1173 "../../asn1/s1ap/s1ap.cnf" +#line 1176 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", HandoverCancelAcknowledge "); @@ -6458,7 +6459,7 @@ static const per_sequence_t E_RABSetupRequest_sequence[] = { static int dissect_s1ap_E_RABSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1117 "../../asn1/s1ap/s1ap.cnf" +#line 1120 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABSetupRequest "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6508,7 +6509,7 @@ static const per_sequence_t E_RABSetupResponse_sequence[] = { static int dissect_s1ap_E_RABSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1119 "../../asn1/s1ap/s1ap.cnf" +#line 1122 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABSetupResponse "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6556,7 +6557,7 @@ static const per_sequence_t E_RABModifyRequest_sequence[] = { static int dissect_s1ap_E_RABModifyRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1121 "../../asn1/s1ap/s1ap.cnf" +#line 1124 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABModifyRequest "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6604,7 +6605,7 @@ static const per_sequence_t E_RABModifyResponse_sequence[] = { static int dissect_s1ap_E_RABModifyResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1123 "../../asn1/s1ap/s1ap.cnf" +#line 1126 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABModifyResponse "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6650,7 +6651,7 @@ static const per_sequence_t E_RABReleaseCommand_sequence[] = { static int dissect_s1ap_E_RABReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1125 "../../asn1/s1ap/s1ap.cnf" +#line 1128 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABReleaseCommand "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6667,7 +6668,7 @@ static const per_sequence_t E_RABReleaseResponse_sequence[] = { static int dissect_s1ap_E_RABReleaseResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1127 "../../asn1/s1ap/s1ap.cnf" +#line 1130 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABReleaseResponse "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6713,7 +6714,7 @@ static const per_sequence_t E_RABReleaseIndication_sequence[] = { static int dissect_s1ap_E_RABReleaseIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1129 "../../asn1/s1ap/s1ap.cnf" +#line 1132 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", E_RABReleaseIndication "); @@ -6731,7 +6732,7 @@ static const per_sequence_t InitialContextSetupRequest_sequence[] = { static int dissect_s1ap_InitialContextSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1132 "../../asn1/s1ap/s1ap.cnf" +#line 1135 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", InitialContextSetupRequest "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6781,7 +6782,7 @@ static const per_sequence_t InitialContextSetupResponse_sequence[] = { static int dissect_s1ap_InitialContextSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1134 "../../asn1/s1ap/s1ap.cnf" +#line 1137 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", InitialContextSetupResponse "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6829,7 +6830,7 @@ static const per_sequence_t InitialContextSetupFailure_sequence[] = { static int dissect_s1ap_InitialContextSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1136 "../../asn1/s1ap/s1ap.cnf" +#line 1139 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", InitialContextSetupFailure "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6889,7 +6890,7 @@ static const per_sequence_t UEContextReleaseRequest_sequence[] = { static int dissect_s1ap_UEContextReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1138 "../../asn1/s1ap/s1ap.cnf" +#line 1141 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextReleaseRequest "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6906,7 +6907,7 @@ static const per_sequence_t UEContextReleaseCommand_sequence[] = { static int dissect_s1ap_UEContextReleaseCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1140 "../../asn1/s1ap/s1ap.cnf" +#line 1143 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextReleaseCommand "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6923,7 +6924,7 @@ static const per_sequence_t UEContextReleaseComplete_sequence[] = { static int dissect_s1ap_UEContextReleaseComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1142 "../../asn1/s1ap/s1ap.cnf" +#line 1145 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextReleaseComplete "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6940,7 +6941,7 @@ static const per_sequence_t UEContextModificationRequest_sequence[] = { static int dissect_s1ap_UEContextModificationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1144 "../../asn1/s1ap/s1ap.cnf" +#line 1147 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextModificationRequest "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6957,7 +6958,7 @@ static const per_sequence_t UEContextModificationResponse_sequence[] = { static int dissect_s1ap_UEContextModificationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1146 "../../asn1/s1ap/s1ap.cnf" +#line 1149 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextModificationResponse "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -6974,7 +6975,7 @@ static const per_sequence_t UEContextModificationFailure_sequence[] = { static int dissect_s1ap_UEContextModificationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1148 "../../asn1/s1ap/s1ap.cnf" +#line 1151 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", UEContextModificationFailure "); @@ -7020,7 +7021,7 @@ static const per_sequence_t DownlinkNASTransport_sequence[] = { static int dissect_s1ap_DownlinkNASTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 299 "../../asn1/s1ap/s1ap.cnf" +#line 302 "../../asn1/s1ap/s1ap.cnf" /* Set the direction of the message */ actx->pinfo->link_dir=P2P_DIR_DL; @@ -7039,7 +7040,7 @@ static const per_sequence_t InitialUEMessage_sequence[] = { static int dissect_s1ap_InitialUEMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 295 "../../asn1/s1ap/s1ap.cnf" +#line 298 "../../asn1/s1ap/s1ap.cnf" /* Set the direction of the message */ actx->pinfo->link_dir=P2P_DIR_UL; @@ -7058,7 +7059,7 @@ static const per_sequence_t UplinkNASTransport_sequence[] = { static int dissect_s1ap_UplinkNASTransport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 303 "../../asn1/s1ap/s1ap.cnf" +#line 306 "../../asn1/s1ap/s1ap.cnf" /* Set the direction of the message */ actx->pinfo->link_dir=P2P_DIR_UL; @@ -7091,7 +7092,7 @@ static const per_sequence_t Reset_sequence[] = { static int dissect_s1ap_Reset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1177 "../../asn1/s1ap/s1ap.cnf" +#line 1180 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", Reset "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7159,7 +7160,7 @@ static const per_sequence_t ResetAcknowledge_sequence[] = { static int dissect_s1ap_ResetAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1179 "../../asn1/s1ap/s1ap.cnf" +#line 1182 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", ResetAcknowledge "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7204,7 +7205,7 @@ static const per_sequence_t S1SetupRequest_sequence[] = { static int dissect_s1ap_S1SetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1183 "../../asn1/s1ap/s1ap.cnf" +#line 1186 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", S1SetupRequest "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7221,7 +7222,7 @@ static const per_sequence_t S1SetupResponse_sequence[] = { static int dissect_s1ap_S1SetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1185 "../../asn1/s1ap/s1ap.cnf" +#line 1188 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", S1SetupResponse "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7238,7 +7239,7 @@ static const per_sequence_t S1SetupFailure_sequence[] = { static int dissect_s1ap_S1SetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1187 "../../asn1/s1ap/s1ap.cnf" +#line 1190 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", S1SetupFailure "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7255,7 +7256,7 @@ static const per_sequence_t ENBConfigurationUpdate_sequence[] = { static int dissect_s1ap_ENBConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1189 "../../asn1/s1ap/s1ap.cnf" +#line 1192 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", ENBConfigurationUpdate "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7272,7 +7273,7 @@ static const per_sequence_t ENBConfigurationUpdateAcknowledge_sequence[] = { static int dissect_s1ap_ENBConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1191 "../../asn1/s1ap/s1ap.cnf" +#line 1194 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", ENBConfigurationUpdateAcknowledge "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7289,7 +7290,7 @@ static const per_sequence_t ENBConfigurationUpdateFailure_sequence[] = { static int dissect_s1ap_ENBConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1193 "../../asn1/s1ap/s1ap.cnf" +#line 1196 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", ENBConfigurationUpdateFailure "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7306,7 +7307,7 @@ static const per_sequence_t MMEConfigurationUpdate_sequence[] = { static int dissect_s1ap_MMEConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1195 "../../asn1/s1ap/s1ap.cnf" +#line 1198 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", MMEConfigurationUpdate "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7323,7 +7324,7 @@ static const per_sequence_t MMEConfigurationUpdateAcknowledge_sequence[] = { static int dissect_s1ap_MMEConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1197 "../../asn1/s1ap/s1ap.cnf" +#line 1200 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", MMEConfigurationUpdateAcknowledge "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7340,7 +7341,7 @@ static const per_sequence_t MMEConfigurationUpdateFailure_sequence[] = { static int dissect_s1ap_MMEConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1199 "../../asn1/s1ap/s1ap.cnf" +#line 1202 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", MMEConfigurationUpdateFailure "); @@ -7554,7 +7555,7 @@ static const per_sequence_t WriteReplaceWarningRequest_sequence[] = { static int dissect_s1ap_WriteReplaceWarningRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1202 "../../asn1/s1ap/s1ap.cnf" +#line 1205 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", WriteReplaceWarningRequest "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7571,7 +7572,7 @@ static const per_sequence_t WriteReplaceWarningResponse_sequence[] = { static int dissect_s1ap_WriteReplaceWarningResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1204 "../../asn1/s1ap/s1ap.cnf" +#line 1207 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", WriteReplaceWarningResponse "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7678,7 +7679,7 @@ static const per_sequence_t KillRequest_sequence[] = { static int dissect_s1ap_KillRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1206 "../../asn1/s1ap/s1ap.cnf" +#line 1209 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", KillRequest "); offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, @@ -7695,7 +7696,7 @@ static const per_sequence_t KillResponse_sequence[] = { static int dissect_s1ap_KillResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1208 "../../asn1/s1ap/s1ap.cnf" +#line 1211 "../../asn1/s1ap/s1ap.cnf" col_append_str(actx->pinfo->cinfo, COL_INFO, ", KillResponse "); @@ -7782,7 +7783,7 @@ dissect_s1ap_UplinkNonUEAssociatedLPPaTransport(tvbuff_t *tvb _U_, int offset _U static int dissect_s1ap_InitiatingMessage_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 113 "../../asn1/s1ap/s1ap.cnf" +#line 116 "../../asn1/s1ap/s1ap.cnf" message_type = INITIATING_MESSAGE; offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_InitiatingMessageValue); @@ -7810,7 +7811,7 @@ dissect_s1ap_InitiatingMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static int dissect_s1ap_SuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 116 "../../asn1/s1ap/s1ap.cnf" +#line 119 "../../asn1/s1ap/s1ap.cnf" message_type = SUCCESSFUL_OUTCOME; offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_SuccessfulOutcomeValue); @@ -7838,7 +7839,7 @@ dissect_s1ap_SuccessfulOutcome(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static int dissect_s1ap_UnsuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 119 "../../asn1/s1ap/s1ap.cnf" +#line 122 "../../asn1/s1ap/s1ap.cnf" message_type = UNSUCCESSFUL_OUTCOME; @@ -9527,6 +9528,14 @@ static int dissect_UEIdentityIndexValue_PDU(tvbuff_t *tvb _U_, packet_info *pinf offset += 7; offset >>= 3; return offset; } +int dissect_s1ap_UE_HistoryInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_UE_HistoryInformation(tvb, offset, &asn1_ctx, tree, hf_s1ap_s1ap_UE_HistoryInformation_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_UEPagingID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -11319,6 +11328,10 @@ void proto_register_s1ap(void) { { "UEIdentityIndexValue", "s1ap.UEIdentityIndexValue", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_s1ap_s1ap_UE_HistoryInformation_PDU, + { "UE-HistoryInformation", "s1ap.UE_HistoryInformation", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, { &hf_s1ap_UEPagingID_PDU, { "UEPagingID", "s1ap.UEPagingID", FT_UINT32, BASE_DEC, VALS(s1ap_UEPagingID_vals), 0, diff --git a/epan/dissectors/packet-s1ap.h b/epan/dissectors/packet-s1ap.h index 99bc996072..92910fc594 100644 --- a/epan/dissectors/packet-s1ap.h +++ b/epan/dissectors/packet-s1ap.h @@ -54,6 +54,7 @@ int dissect_s1ap_SONtransferRequestContainer(tvbuff_t *tvb _U_, int offset _U_, int dissect_s1ap_SONtransferResponseContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_); int dissect_s1ap_Global_ENB_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_s1ap_ENB_StatusTransfer_TransparentContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); +int dissect_s1ap_UE_HistoryInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_s1ap_SONtransferApplicationIdentity_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_s1ap_SONtransferRequestContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_s1ap_SONtransferResponseContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); |