[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>
This commit is contained in:
AndersBroman 2015-11-02 09:40:18 +01:00 committed by Anders Broman
parent 1c5b3c3783
commit 1316fdf209
8 changed files with 172 additions and 109 deletions

View File

@ -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" */

View File

@ -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

View File

@ -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

View File

@ -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,

View File

@ -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);
}

View File

@ -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_);

View File

@ -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,

View File

@ -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_);