aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--asn1/ranap/packet-ranap-template.c9
-rw-r--r--epan/dissectors/Makefile.common1
-rw-r--r--epan/dissectors/packet-ranap.c17504
-rw-r--r--epan/dissectors/packet-ranap.h35
4 files changed, 12916 insertions, 4633 deletions
diff --git a/asn1/ranap/packet-ranap-template.c b/asn1/ranap/packet-ranap-template.c
index 89b9abf9bc..e32fb3593f 100644
--- a/asn1/ranap/packet-ranap-template.c
+++ b/asn1/ranap/packet-ranap-template.c
@@ -47,6 +47,10 @@
#define PSNAME "RANAP"
#define PFNAME "ranap"
+#define BYTE_ALIGN_OFFSET(offset) \
+ if(offset&0x07){ \
+ offset=(offset&0xfffffff8)+8; \
+ }
@@ -567,8 +571,7 @@ static int dissect_ranap_FirstValue_ies(tvbuff_t *tvb, int offset, packet_info *
break;
}
/* We might not stop on a byte boundary */
- if ( offset < (start_offset + length))
- offset = start_offset + length;
+ BYTE_ALIGN_OFFSET(offset);
return offset;
}
@@ -585,6 +588,8 @@ static int dissect_ranap_SecondValue_ies(tvbuff_t *tvb, int offset, packet_info
default:
break;
}
+ /* We might not stop on a byte boundary */
+ BYTE_ALIGN_OFFSET(offset);
return offset;
}
diff --git a/epan/dissectors/Makefile.common b/epan/dissectors/Makefile.common
index f580e32e5f..fece395699 100644
--- a/epan/dissectors/Makefile.common
+++ b/epan/dissectors/Makefile.common
@@ -813,6 +813,7 @@ DISSECTOR_INCLUDES = \
packet-q931.h \
packet-radiotap.h \
packet-radius.h \
+ packet-ranap.h \
packet-raw.h \
packet-rdt.h \
packet-ripng.h \
diff --git a/epan/dissectors/packet-ranap.c b/epan/dissectors/packet-ranap.c
index 3778624f5d..6ca7a2b4f9 100644
--- a/epan/dissectors/packet-ranap.c
+++ b/epan/dissectors/packet-ranap.c
@@ -1,16 +1,19 @@
-/* packet-ranap.c
+/* Do not modify this file. */
+/* It is created automatically by the ASN.1 to Ethereal dissector compiler */
+/* .\packet-ranap.c */
+/* ../../tools/asn2eth.py -X -e -p ranap -c ranap.cnf -s packet-ranap-template ranap.asn */
+
+/* Input file: packet-ranap-template.c */
+
+/* packet-ranap-template.c
* Routines for Radio Access Network Application Part Protocol dissection
- * Based on 3GPP TS 25.413 V3.4.0
- * Copyright 2001, Martin Held <Martin.Held@icn.siemens.de>
- *
- * $Id$
+ * Copyright 2005, Anders Broman <anders.broman@ericsson.com>
+ * Based on the dissector by Martin Held <Martin.Held@icn.siemens.de>
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
* Copyright 1998 Gerald Combs
*
- * Copied from README.developer
- *
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
@@ -23,4112 +26,10685 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * References: 3GPP TS 25.413 version 6.6.0 Release
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
+#include <glib.h>
+#include <epan/packet.h>
+#include <epan/prefs.h>
+#include <epan/conversation.h>
+#include <epan/tap.h>
+
#include <stdio.h>
-#include <stdlib.h>
+#include <string.h>
+#include "packet-ber.h"
+#include "packet-per.h"
+#include "packet-ranap.h"
-#include <string.h>
-#include <glib.h>
+#define SCCP_SSN_RANAP 0x8E
-#include <epan/packet.h>
-#include <epan/emem.h>
+#define PNAME "Radio Access Network Application Part"
+#define PSNAME "RANAP"
+#define PFNAME "ranap"
-#define SCCP_SSN_RANAP 0x8E
+#define BYTE_ALIGN_OFFSET(offset) \
+ if(offset&0x07){ \
+ offset=(offset&0xfffffff8)+8; \
+ }
-/* description of PDU header */
-#define PDU_NUMBER_OF_OCTETS_OFFSET 3
-
-/* PDU Index Values */
-#define InitiatingMessage 0
-#define SuccessfulOutcome 1
-#define UnsuccessfulOutcome 2
-#define Outcome 3
-
-static const value_string ranap_pdu_index_values[] = {
- {InitiatingMessage, "InitiatingMessage"},
- {SuccessfulOutcome, "SuccessfulOutcome"},
- {UnsuccessfulOutcome, "UnsuccessfulOutcome"},
- {Outcome, "Outcome"},
- { 0, NULL}
-};
-
-
-/* Procedure Code Values */
-#define PC_RAB_Assignment 0
-#define PC_Iu_Release 1
-#define PC_RelocationPreparation 2
-#define PC_RelocationResourceAllocation 3
-#define PC_RelocationCancel 4
-#define PC_SRNS_ContextTransfer 5
-#define PC_SecurityModeControl 6
-#define PC_DataVolumeReport 7
-#define PC_CN_InformationBroadcast 8
-#define PC_Reset 9
-#define PC_RAB_ReleaseRequest 10
-#define PC_Iu_ReleaseRequest 11
-#define PC_RelocationDetect 12
-#define PC_RelocationComplete 13
-#define PC_Paging 14
-#define PC_CommonID 15
-#define PC_CN_InvokeTrace 16
-#define PC_LocationReportingControl 17
-#define PC_LocationReport 18
-#define PC_InitialUE_Message 19
-#define PC_DirectTransfer 20
-#define PC_OverloadControl 21
-#define PC_ErrorIndication 22
-#define PC_SRNS_DataForward 23
-#define PC_ForwardSRNS_Context 24
-#define PC_privateMessage 25
-#define PC_CN_DeactivateTrace 26
-#define PC_ResetResource 27
-#define PC_RANAP_Relocation 28
-#define PC_max 28
-
-static const value_string ranap_procedure_code_values[] = {
- {PC_RAB_Assignment, "RAB-Assignment"},
- {PC_Iu_Release, "IU-Release"},
- {PC_RelocationPreparation, "RelocationPreparation"},
- {PC_RelocationResourceAllocation, "RelocationResourceAllocation"},
- {PC_RelocationCancel, "RelocationCancel"},
- {PC_SRNS_ContextTransfer, "SRNS-ContextTransfer"},
- {PC_SecurityModeControl, "SecurityModeControl"},
- {PC_DataVolumeReport, "DataVolumeReport"},
- {PC_CN_InformationBroadcast, "CN-InformationBroadcast"},
- {PC_Reset, "Reset"},
- {PC_RAB_ReleaseRequest, "RAB-ReleaseRequest"},
- {PC_Iu_ReleaseRequest, "Iu-ReleaseRequest"},
- {PC_RelocationDetect, "RelocationDetect"},
- {PC_RelocationComplete, "RelocationComplete"},
- {PC_Paging, "Paging"},
- {PC_CommonID, "CommonID"},
- {PC_CN_InvokeTrace, "CN-InvokeTrace"},
- {PC_LocationReportingControl, "LocationReportingControl"},
- {PC_LocationReport, "LocationReport"},
- {PC_InitialUE_Message, "InitialUE_Message"},
- {PC_DirectTransfer, "DirectTransfer"},
- {PC_OverloadControl, "OverloadControl"},
- {PC_ErrorIndication, "ErrorIndication"},
- {PC_SRNS_DataForward, "SRNS-DataForward"},
- {PC_ForwardSRNS_Context, "ForwardSRNS-Context"},
- {PC_privateMessage, "privateMessage"},
- {PC_CN_DeactivateTrace, "CN-DeactivateTrace"},
- {PC_ResetResource, "ResetResource"},
- {PC_RANAP_Relocation, "RANAP-Relocation"},
- {0, NULL}
-};
-
-
-static const value_string ranap_message_names[][5] = {
- {/* PC_RAB_Assignment */
- { InitiatingMessage, "RAB-AssignmentRequest"},
- { SuccessfulOutcome, "undefined message"},
- { UnsuccessfulOutcome, "undefined message"},
- { Outcome, "RAB-AssignmentResponse"},
- { 0, NULL}, },
- { /* PC_Iu_Release */
- { InitiatingMessage, "Iu-ReleaseCommand"},
- { SuccessfulOutcome, "Iu-ReleaseComplete"},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_RelocationPreparation */
- { InitiatingMessage, "RelocationRequired"},
- { SuccessfulOutcome, "RelocationCommand"},
- { UnsuccessfulOutcome, "RelocationPreparationFailure"},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_RelocationResourceAllocation */
- { InitiatingMessage, "RelocationRequest"},
- { SuccessfulOutcome, "RelocationRequestAcknowledge"},
- { UnsuccessfulOutcome, "RelocationFailure"},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_RelocationCancel */
- { InitiatingMessage, "RelocationCancel"},
- { SuccessfulOutcome, "RelocationCancelAcknowledge"},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_SRNS_ContextTransfer */
- { InitiatingMessage, "SRNS-ContextRequest"},
- { SuccessfulOutcome, "SRNS-ContextResponse"},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_SecurityModeControl */
- { InitiatingMessage, "SecurityModeCommand"},
- { SuccessfulOutcome, "SecurityModeComplete"},
- { UnsuccessfulOutcome, "SecurityModeReject"},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_DataVolumeReport */
- { InitiatingMessage, "DataVolumeReportRequest"},
- { SuccessfulOutcome, "DataVolumeReport"},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_CN_InformationBroadcast */
- { InitiatingMessage, "CN-InformationBroadcastRequest"},
- { SuccessfulOutcome, "CN-InformationBroadcastConfirm"},
- { UnsuccessfulOutcome, "CN-InformationBroadcastReject"},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_Reset */
- { InitiatingMessage, "Reset"},
- { SuccessfulOutcome, "ResetAcknowledge"},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_RAB_ReleaseRequest */
- { InitiatingMessage, "RAB-ReleaseRequest"},
- { SuccessfulOutcome, NULL},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_Iu_ReleaseRequest */
- { InitiatingMessage, "Iu-ReleaseRequest"},
- { SuccessfulOutcome, NULL},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_RelocationDetect */
- { InitiatingMessage, "RelocationDetect"},
- { SuccessfulOutcome, NULL},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_RelocationComplete */
- { InitiatingMessage, "RelocationComplete"},
- { SuccessfulOutcome, NULL},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_Paging */
- { InitiatingMessage, "Paging"},
- { SuccessfulOutcome, NULL},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_CommonID */
- { InitiatingMessage, "CommonID"},
- { SuccessfulOutcome, NULL},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_CN_InvokeTrace */
- { InitiatingMessage, "CN-InvokeTrace"},
- { SuccessfulOutcome, NULL},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- {/* PC_LocationReportingControl */
- { InitiatingMessage, "LocationReportingControl"},
- { SuccessfulOutcome, NULL},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_LocationReport */
- { InitiatingMessage, "LocationReport"},
- { SuccessfulOutcome, NULL},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_InitialUE_Message */
- { InitiatingMessage, "InitialUE-Message"},
- { SuccessfulOutcome, NULL},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_DirectTransfer */
- { InitiatingMessage, "DirectTransfer"},
- { SuccessfulOutcome, NULL},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_OverloadControl */
- { InitiatingMessage, "Overload"},
- { SuccessfulOutcome, NULL},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_ErrorIndication */
- { InitiatingMessage, "ErrorIndication"},
- { SuccessfulOutcome, NULL},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_SRNS_DataForward */
- { InitiatingMessage, "SRNS-DataForwardCommand"},
- { SuccessfulOutcome, NULL},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_ForwardSRNS_Context */
- { InitiatingMessage, "ForwardSRNS-Context"},
- { SuccessfulOutcome, NULL},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_privateMessage */
- { InitiatingMessage, "PrivateMessage"},
- { SuccessfulOutcome, NULL},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_CN_DeactivateTrace */
- { InitiatingMessage, "CN-DeactivateTrace"},
- { SuccessfulOutcome, NULL},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_ResetResource */
- { InitiatingMessage, "ResetResource"},
- { SuccessfulOutcome, "ResetResourceAcknowledge"},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, },
- { /* PC_RANAP_Relocation */
- { InitiatingMessage, "RANAP-RelocationInformation"},
- { SuccessfulOutcome, NULL},
- { UnsuccessfulOutcome, NULL},
- { Outcome, NULL},
- { 0, NULL}, }
-};
-
-
-/* Criticality Values */
-#define CR_reject 0
-#define CR_ignore 1
-#define CR_notify 2
-
-static const value_string ranap_criticality_values[] = {
- {CR_reject, "reject"},
- {CR_ignore, "ignore"},
- {CR_notify, "notify"},
- {0, NULL}};
-
-
-/* presence values for optional components */
-#define PR_not_present 0
-#define PR_present 1
-
-static const value_string ranap_presence_values[] = {
- {PR_not_present, "not present"},
- {PR_present, "present"},
- {0, NULL}};
-
-
-/* description of IE Header */
-#define IE_ID_LENGTH 2
-#define IE_CRITICALITY_LENGTH 1
-
-
-/* description of IE-ID values */
-#define IE_AreaIdentity 0
-#define IE_CN_BroadcastInformationPiece 1
-#define IE_CN_BroadcastInformationPieceList 2
-#define IE_CN_DomainIndicator 3
-#define IE_Cause 4
-#define IE_ChosenEncryptionAlgorithm 5
-#define IE_ChosenIntegrityProtectionAlgorithm 6
-#define IE_ClassmarkInformation2 7
-#define IE_ClassmarkInformation3 8
-#define IE_CriticalityDiagnostics 9
-#define IE_DL_GTP_PDU_SequenceNumber 10
-#define IE_EncryptionInformation 11
-#define IE_IntegrityProtectionInformation 12
-#define IE_IuTransportAssociation 13
-#define IE_L3_Information 14
-#define IE_LAI 15
-#define IE_NAS_PDU 16
-#define IE_NonSearchingIndication 17
-#define IE_NumberOfSteps 18
-#define IE_OMC_ID 19
-#define IE_OldBSS_ToNewBSS_Information 20
-#define IE_PagingAreaID 21
-#define IE_PagingCause 22
-#define IE_PermanentNAS_UE_ID 23
-#define IE_RAB_ContextItem 24
-#define IE_RAB_ContextList 25
-#define IE_RAB_DataForwardingItem 26
-#define IE_RAB_DataForwardingItem_SRNS_CtxReq 27
-#define IE_RAB_DataForwardingList 28
-#define IE_RAB_DataForwardingList_SRNS_CtxReq 29
-#define IE_RAB_DataVolumeReportItem 30
-#define IE_RAB_DataVolumeReportList 31
-#define IE_RAB_DataVolumeReportRequestItem 32
-#define IE_RAB_DataVolumeReportRequestList 33
-#define IE_RAB_FailedItem 34
-#define IE_RAB_FailedList 35
-#define IE_RAB_ID 36
-#define IE_RAB_QueuedItem 37
-#define IE_RAB_QueuedList 38
-#define IE_RAB_ReleaseFailedList 39
-#define IE_RAB_ReleaseItem 40
-#define IE_RAB_ReleaseList 41
-#define IE_RAB_ReleasedItem 42
-#define IE_RAB_ReleasedList 43
-#define IE_RAB_ReleasedList_IuRelComp 44
-#define IE_RAB_RelocationReleaseItem 45
-#define IE_RAB_RelocationReleaseList 46
-#define IE_RAB_SetupItem_RelocReq 47
-#define IE_RAB_SetupItem_RelocReqAck 48
-#define IE_RAB_SetupList_RelocReq 49
-#define IE_RAB_SetupList_RelocReqAck 50
-#define IE_RAB_SetupOrModifiedItem 51
-#define IE_RAB_SetupOrModifiedList 52
-#define IE_RAB_SetupOrModifyItem 53
-#define IE_RAB_SetupOrModifyList 54
-#define IE_RAC 55
-#define IE_RelocationType 56
-#define IE_RequestType 57
-#define IE_SAI 58
-#define IE_SAPI 59
-#define IE_SourceID 60
-#define IE_SourceRNC_ToTargetRNC_TransparentContainer 61
-#define IE_TargetID 62
-#define IE_TargetRNC_ToSourceRNC_TransparentContainer 63
-#define IE_TemporaryUE_ID 64
-#define IE_TraceReference 65
-#define IE_TraceType 66
-#define IE_TransportLayerAddress 67
-#define IE_TriggerID 68
-#define IE_UE_ID 69
-#define IE_UL_GTP_PDU_SequenceNumber 70
-#define IE_RAB_FailedtoReportItem 71
-#define IE_RAB_FailedtoReportList 72
-#define IE_KeyStatus 75
-#define IE_DRX_CycleLengthCoefficient 76
-#define IE_IuSigConIdList 77
-#define IE_IuSigConIdItem 78
-#define IE_IuSigConId 79
-#define IE_DirectTransferInformationItem_RANAP_RelocInf 80
-#define IE_DirectTransferInformationList_RANAP_RelocInf 81
-#define IE_RAB_ContextItem_RANAP_RelocInf 82
-#define IE_RAB_ContextList_RANAP_RelocInf 83
-#define IE_RAB_ContextFailedtoTransferItem 84
-#define IE_RAB_ContextFailedtoTransferList 85
-#define IE_GlobalRNC_ID 86
-#define IE_RAB_ReleasedItem_IuRelComp 87
-
-static const value_string ranap_ie_id_values[] = {
- {IE_AreaIdentity, "AreaIdentity"},
- {IE_CN_BroadcastInformationPiece, "CN_BroadcastInformationPiece"},
- {IE_CN_BroadcastInformationPieceList, "CN_BroadcastInformationPieceList"},
- {IE_CN_DomainIndicator, "CN_DomainIndicator"},
- {IE_Cause, "Cause"},
- {IE_ChosenEncryptionAlgorithm, "ChosenEncryptionAlgorithm"},
- {IE_ChosenIntegrityProtectionAlgorithm, "ChosenIntegrityProtectionAlgorithm"},
- {IE_ClassmarkInformation2, "ClassmarkInformation2"},
- {IE_ClassmarkInformation3, "ClassmarkInformation3"},
- {IE_CriticalityDiagnostics, "CriticalityDiagnostics"},
- {IE_DL_GTP_PDU_SequenceNumber, "DL_GTP_PDU_SequenceNumber"},
- {IE_EncryptionInformation, "EncryptionInformation"},
- {IE_IntegrityProtectionInformation, "IntegrityProtectionInformation"},
- {IE_IuTransportAssociation, "IuTransportAssociation"},
- {IE_L3_Information, "L3_Information"},
- {IE_LAI, "LAI"},
- {IE_NAS_PDU, "NAS_PDU"},
- {IE_NonSearchingIndication, "NonSearchingIndication"},
- {IE_NumberOfSteps, "NumberOfSteps"},
- {IE_OMC_ID, "OMC_ID"},
- {IE_OldBSS_ToNewBSS_Information, "OldBSS_ToNewBSS_Information"},
- {IE_PagingAreaID, "PagingAreaID"},
- {IE_PagingCause, "PagingCause"},
- {IE_PermanentNAS_UE_ID, "PermanentNAS_UE_ID"},
- {IE_RAB_ContextItem, "RAB_ContextItem"},
- {IE_RAB_ContextList, "RAB_ContextList"},
- {IE_RAB_DataForwardingItem, "RAB_DataForwardingItem"},
- {IE_RAB_DataForwardingItem_SRNS_CtxReq, "RAB_DataForwardingItem_SRNS_CtxReq"},
- {IE_RAB_DataForwardingList, "RAB_DataForwardingList"},
- {IE_RAB_DataForwardingList_SRNS_CtxReq, "RAB_DataForwardingList_SRNS_CtxReq"},
- {IE_RAB_DataVolumeReportItem, "RAB_DataVolumeReportItem"},
- {IE_RAB_DataVolumeReportList, "RAB_DataVolumeReportList"},
- {IE_RAB_DataVolumeReportRequestItem, "RAB_DataVolumeReportRequestItem"},
- {IE_RAB_DataVolumeReportRequestList, "RAB_DataVolumeReportRequestList"},
- {IE_RAB_FailedItem, "RAB_FailedItem"},
- {IE_RAB_FailedList, "RAB_FailedList"},
- {IE_RAB_ID, "RAB_ID"},
- {IE_RAB_QueuedItem, "RAB_QueuedItem"},
- {IE_RAB_QueuedList, "RAB_QueuedList"},
- {IE_RAB_ReleaseFailedList, "RAB_ReleaseFailedList"},
- {IE_RAB_ReleaseItem, "RAB_ReleaseItem"},
- {IE_RAB_ReleaseList, "RAB_ReleaseList"},
- {IE_RAB_ReleasedItem, "RAB_ReleasedItem"},
- {IE_RAB_ReleasedList, "RAB_ReleasedList"},
- {IE_RAB_ReleasedList_IuRelComp, "RAB_ReleasedList_IuRelComp"},
- {IE_RAB_RelocationReleaseItem, "RAB_RelocationReleaseItem"},
- {IE_RAB_RelocationReleaseList, "RAB_RelocationReleaseList"},
- {IE_RAB_SetupItem_RelocReq, "RAB_SetupItem_RelocReq"},
- {IE_RAB_SetupItem_RelocReqAck, "RAB_SetupItem_RelocReqAck"},
- {IE_RAB_SetupList_RelocReq, "RAB_SetupList_RelocReq"},
- {IE_RAB_SetupList_RelocReqAck, "RAB_SetupList_RelocReqAck"},
- {IE_RAB_SetupOrModifiedItem, "RAB_SetupOrModifiedItem"},
- {IE_RAB_SetupOrModifiedList, "RAB_SetupOrModifiedList"},
- {IE_RAB_SetupOrModifyItem, "RAB_SetupOrModifyItem"},
- {IE_RAB_SetupOrModifyList, "RAB_SetupOrModifyList"},
- {IE_RAC, "RAC"},
- {IE_RelocationType, "RelocationType"},
- {IE_RequestType, "RequestType"},
- {IE_SAI, "SAI"},
- {IE_SAPI, "SAPI"},
- {IE_SourceID, "SourceID"},
- {IE_SourceRNC_ToTargetRNC_TransparentContainer,
- "SourceRNC_ToTargetRNC_TransparentContainer"},
- {IE_TargetID, "TargetID"},
- {IE_TargetRNC_ToSourceRNC_TransparentContainer,
- "TargetRNC_ToSourceRNC_TransparentContainer"},
- {IE_TemporaryUE_ID, "TemporaryUE_ID"},
- {IE_TraceReference, "TraceReference"},
- {IE_TraceType, "TraceType"},
- {IE_TransportLayerAddress, "TransportLayerAddress"},
- {IE_TriggerID, "TriggerID"},
- {IE_UE_ID, "UE_ID"},
- {IE_UL_GTP_PDU_SequenceNumber, "UL_GTP_PDU_SequenceNumber"},
- {IE_RAB_FailedtoReportItem, "RAB_FailedtoReportItem"},
- {IE_RAB_FailedtoReportList, "RAB_FailedtoReportList"},
- {IE_KeyStatus, "KeyStatus"},
- {IE_DRX_CycleLengthCoefficient, "DRX_CycleLengthCoefficient"},
- {IE_IuSigConIdList, "IuSigConIdList"},
- {IE_IuSigConIdItem, "IuSigConIdItem"},
- {IE_IuSigConId, "IuSigConId"},
- {IE_DirectTransferInformationItem_RANAP_RelocInf,
- "DirectTransferInformationItem_RANAP_RelocInf"},
- {IE_DirectTransferInformationList_RANAP_RelocInf,
- "DirectTransferInformationList_RANAP_RelocInf"},
- {IE_RAB_ContextItem_RANAP_RelocInf, "RAB_ContextItem_RANAP_RelocInf"},
- {IE_RAB_ContextList_RANAP_RelocInf, "RAB_ContextList_RANAP_RelocInf"},
- {IE_RAB_ContextFailedtoTransferItem, "RAB_ContextFailedtoTransferItem"},
- {IE_RAB_ContextFailedtoTransferList, "RAB_ContextFailedtoTransferList"},
- {IE_GlobalRNC_ID, "GlobalRNC_ID"},
- {IE_RAB_ReleasedItem_IuRelComp, "RAB_ReleasedItem_IuRelComp"},
- {0, NULL}
-};
-
-
-/* Description of IE-Contents */
-
-/* Length of fields within IEs */
-#define RAB_ID_LENGTH 1
-#define PLMN_ID_LENGTH 3
-#define LAC_LENGTH 2
-#define IE_PROTOCOL_EXTENSION_LENGTH 1
-#define RAC_LENGTH 1
-#define SAC_LENGTH 2
-#define NUM_RABS_LENGTH 1
-
-
-/* Traffic Class values */
-#define TC_conversational 0
-#define TC_streaming 1
-#define TC_interactive 2
-#define TC_background 3
-
-static const value_string ranap_trafficClass_values[] = {
- {TC_conversational, "conversational"},
- {TC_streaming, "streaming"},
- {TC_interactive, "interactive"},
- {TC_background, "background"},
- {0, NULL}};
-
-
-/* rAB-AsymmetryIndicator values */
-#define AI_symmetric_bidirectional 0
-#define AI_asymmetric_unidirectional_downlink 1
-#define AI_asymmetric_unidirectional_uplink 2
-#define AI_asymmetric_bidirectional 3
-
-static const value_string ranap_rAB_AsymmetryIndicator_values[] = {
- {AI_symmetric_bidirectional, "symmetric-bidirectional"},
- {AI_asymmetric_unidirectional_downlink, "asymmetric-unidirectional-downlink"},
- {AI_asymmetric_unidirectional_uplink, "asymmetric-unidirectional-uplink"},
- {AI_asymmetric_bidirectional, "asymmetric-bidirectional"},
- {0, NULL}};
-
-
-/* DeliveryOrder values */
-#define DO_delivery_order_requested 0
-#define DO_delivery_order_not_requested 1
-
-static const value_string ranap_DeliveryOrder_values[] = {
- {DO_delivery_order_requested, "delivery-order-requested"},
- {DO_delivery_order_not_requested, "delivery-order-not-requested"},
- {0, NULL}};
-
-#define maxSDU_Size_LENGTH 2
-
-/* deliveryOfErroneousSDU values */
-#define DOES_yes 0
-#define DOES_no 1
-#define DOES_no_error_detection_consideration 2
-
-static const value_string ranap_deliveryOfErroneousSDU_values[] = {
- {DOES_yes, "yes"},
- {DOES_no, "no"},
- {DOES_no_error_detection_consideration, "no-error-detection-consideration"},
- {0, NULL}};
-
-
-#define subflowSDU_Size_LENGTH 2
-#define transferDelay_LENGTH 2
-
-
-/* trafficHandlingPriority values */
-static const value_string ranap_priority_values[] = {
- { 0, "spare"},
- { 1, "highest"},
- { 2, ""},
- { 3, ""},
- { 4, ""},
- { 5, ""},
- { 6, ""},
- { 7, ""},
- { 8, ""},
- { 9, ""},
- { 10, ""},
- { 11, ""},
- { 12, ""},
- { 13, ""},
- { 14, "lowest"},
- { 15, "no-priority-used"},
- { 0, NULL}};
-
-
-/* pre-emptionCapability values */
-static const value_string ranap_pre_emptionCapability_values[] = {
- { 0, "shall-not-trigger-pre-emption"},
- { 1, "may-trigger-pre-emption"},
- { 0, NULL}};
-
-/* pre-emptionVulnerability values */
-static const value_string ranap_pre_emptionVulnerability_values[] = {
- { 0, "not-pre-emptable"},
- { 1, "pre-emptable"},
- { 0, NULL}};
-
-
-/* queuingAllowed values */
-static const value_string ranap_queuingAllowed_values[] = {
- { 0, "queueing-not-allowed"},
- { 1, "queueing-allowed"},
- { 0, NULL}};
-
-
-/* sourceStatisticsDescriptor values */
-static const value_string ranap_sourceStatisticsDescriptor_values[] = {
- { 0, "speech"},
- { 1, "unknown"},
- { 0, NULL}};
-
-/* relocationRequirement values */
-static const value_string ranap_relocationRequirement_values[] = {
- { 0, "lossless"},
- { 1, "none"},
- { 0, NULL}};
-
-/* userPlaneMode values */
-static const value_string ranap_userPlaneMode_values[] = {
- { 0, "transparent-mode"},
- { 1, "support-mode-for-predefined-SDU-sizes"},
- { 0, NULL}};
-
-/* PDP_Type values */
-static const value_string ranap_PDP_Type_values[] = {
- { 0, "empty"},
- { 1, "ppp"},
- { 2, "osp-ihoss"},
- { 3, "ipv4"},
- { 4, "ipv6"},
- { 0, NULL}};
-
-/* dataVolumeReportingIndication values */
-static const value_string ranap_dataVolumeReportingIndication_values[] = {
- { 0, "do-report"},
- { 1, "do-not-report"},
- { 0, NULL}};
-
-
-/* cause_choice values */
-#define CC_CauseRadioNetwork 0
-#define CC_CauseTransmissionNetwork 1
-#define CC_CauseNAS 2
-#define CC_CauseProtocol 3
-#define CC_CauseMisc 4
-#define CC_CauseNon_Standard 5
-
-static const value_string ranap_cause_choice_values[] = {
- { CC_CauseRadioNetwork, "CauseRadioNetwork"},
- { CC_CauseTransmissionNetwork, "CauseTransmissionNetwork"},
- { CC_CauseNAS, "CauseNAS"},
- { CC_CauseProtocol, "CauseProtocol"},
- { CC_CauseMisc, "CauseMisc"},
- { CC_CauseNon_Standard, "CauseNon-Standard"},
- { 0, NULL}};
-
-
-/* cause values */
-static const value_string ranap_cause_value_str[] = {
-/* CauseRadioNetwork (1..64) */
- { 1, "rab-pre-empted"},
- { 2, "trelocoverall-expiry"},
- { 3, "trelocprep-expiry"},
- { 4, "treloccomplete-expiry"},
- { 5, "tqueing-expiry"},
- { 6, "relocation-triggered"},
- { 7, "trellocalloc-expiry"},
- { 8, "unable-to-establish-during-relocation"},
- { 9, "unknown-target-rnc"},
- { 10, "relocation-cancelled"},
- { 11, "successful-relocation"},
- { 12, "requested-ciphering-and-or-integrity-protection-algorithms-not-supported"},
- { 13, "change-of-ciphering-and-or-integrity-protection-is-not-supported"},
- { 14, "failure-in-the-radio-interface-procedure"},
- { 15, "release-due-to-utran-generated-reason"},
- { 16, "user-inactivity"},
- { 17, "time-critical-relocation"},
- { 18, "requested-traffic-class-not-available"},
- { 19, "invalid-rab-parameters-value"},
- { 20, "requested-maximum-bit-rate-not-available"},
- { 21, "requested-guaranteed-bit-rate-not-available"},
- { 22, "requested-transfer-delay-not-achievable"},
- { 23, "invalid-rab-parameters-combination"},
- { 24, "condition-violation-for-sdu-parameters"},
- { 25, "condition-violation-for-traffic-handling-priority"},
- { 26, "condition-violation-for-guaranteed-bit-rate"},
- { 27, "user-plane-versions-not-supported"},
- { 28, "iu-up-failure"},
- { 29, "relocation-failure-in-target-CN-RNC-or-target-system"},
- { 30, "invalid-RAB-ID"},
- { 31, "no-remaining-rab"},
- { 32, "interaction-with-other-procedure"},
- { 33, "requested-maximum-bit-rate-for-dl-not-available"},
- { 34, "requested-maximum-bit-rate-for-ul-not-available"},
- { 35, "requested-guaranteed-bit-rate-for-dl-not-available"},
- { 36, "requested-guaranteed-bit-rate-for-ul-not-available"},
- { 37, "repeated-integrity-checking-failure"},
- { 38, "requested-report-type-not-supported"},
- { 39, "request-superseded"},
- { 40, "release-due-to-UE-generated-signalling-connection-release"},
- { 41, "resource-optimisation-relocation"},
- { 42, "requested-information-not-available"},
- { 43, "relocation-desirable-for-radio-reasons"},
- { 44, "relocation-not-supported-in-target-RNC-or-target-system"},
- { 45, "directed-retry"},
- { 46, "radio-connection-with-UE-Lost"},
-
-/* CauseTransmissionNetwork (65..80) */
- { 65, "logical-error-unknown-iu-transport-association"},
- { 66, "iu-transport-connection-failed-to-establish"},
-
-/* CauseNAS (81..96) */
- { 81, "user-restriction-start-indication"},
- { 82, "user-restriction-end-indication"},
- { 83, "normal-release"},
-
-/* CauseProtocol (97..112) */
- { 97, "transfer-syntax-error"},
- { 98, "semantic-error"},
- { 99, "message-not-compatible-with-receiver-state"},
- {100, "abstract-syntax-error-reject"},
- {101, "abstract-syntax-error-ignore-and-notify"},
- {102, "abstract-syntax-error-falsely-constructed-message"},
-
-/* CauseMisc (113..128) */
- {113, "om-intervention"},
- {114, "no-resource-available"},
- {115, "unspecified-failure"},
- {116, "network-optimisation"},
- { 0, NULL}};
-
-
-/* CN_DomainIndicator_values */
-static const value_string ranap_CN_DomainIndicator_values[] = {
- { 0, "cs-domain"},
- { 1, "ps-domain"},
- { 0, NULL}};
-
-
-/* SAPI_values */
-static const value_string ranap_SAPI_values[] = {
- { 0, "sapi-0"},
- { 1, "sapi-3"},
- { 0, NULL}};
-
-/* service_Handover_values */
-static const value_string ranap_service_Handover_values[] = {
- { 0, "handover-to-GSM-should-be-performed"},
- { 1, "handover-to-GSM-should-not-be-performed"},
- { 2, "handover-to-GSM-shall-not-be-performed"},
- { 0, NULL}};
-/* Initialize the protocol and registered fields */
-/* protocol */
-static int proto_ranap = -1;
+/* Initialize the protocol and registered fields */
+int proto_ranap = -1;
static dissector_table_t nas_pdu_dissector_table;
-packet_info *g_pinfo = NULL;
-proto_tree *g_tree = NULL;
-
-/* pdu header fields */
-static int hf_ranap_pdu_number_of_octets = -1;
-static int hf_ranap_pdu_index = -1;
-static int hf_ranap_procedure_code = -1;
-static int hf_ranap_pdu_criticality = -1;
-static int hf_ranap_number_of_ies = -1;
-
-/* ie header fields */
-static int hf_ranap_ie_ie_id = -1;
-static int hf_ranap_ie_criticality = -1;
-static int hf_ranap_ie_number_of_octets = -1;
-static int hf_ranap_ie_protocol_extension = -1;
-
-/*ie contents fields */
-static int hf_ranap_number_of_ies_in_list = -1;
-static int hf_ranap_ie_pair_first_criticality = -1;
-static int hf_ranap_ie_pair_second_criticality = -1;
-static int hf_ranap_first_value_number_of_octets = -1;
-static int hf_ranap_second_value_number_of_octets = -1;
-static int hf_ranap_rab_id = -1;
-static int hf_ranap_nas_pdu = -1;
-static int hf_ranap_plmn_id = -1;
-static int hf_ranap_lac = -1;
-static int hf_ranap_sac = -1;
-static int hf_ranap_rac = -1;
-static int hf_ranap_nAS_SynchronisationIndicator = -1;
-static int hf_ranap_trafficClass = -1;
-static int hf_ranap_deliveryOrder = -1;
-static int hf_ranap_iE_Extensions_present = -1;
-static int hf_ranap_num_rabs = -1;
-static int hf_ranap_nAS_SynchronisationIndicator_present = -1;
-static int hf_ranap_rAB_Parameters_present = -1;
-static int hf_ranap_userPlaneInformation_present = -1;
-static int hf_ranap_transportLayerInformation_present = -1;
-static int hf_ranap_service_Handover_present = -1;
-static int hf_ranap_guaranteedBitRate_present = -1;
-static int hf_ranap_transferDelay_present = -1;
-static int hf_ranap_trafficHandlingPriority_present = -1;
-static int hf_ranap_allocationOrRetentionPriority_present = -1;
-static int hf_ranap_sourceStatisticsDescriptor_present = -1;
-static int hf_ranap_relocationRequirement_present = -1;
-static int hf_ranap_rAB_AsymmetryIndicator = -1;
-static int hf_ranap_maxBitrate = -1;
-static int hf_ranap_guaranteedBitrate = -1;
-static int hf_ranap_maxSDU_Size = -1;
-static int hf_ranap_sDU_ErrorRatio_mantissa = -1;
-static int hf_ranap_sDU_ErrorRatio_exponent = -1;
-static int hf_ranap_residualBitErrorRatio_mantissa = -1;
-static int hf_ranap_residualBitErrorRatio_exponent = -1;
-static int hf_ranap_deliveryOfErroneousSDU = -1;
-static int hf_ranap_subflowSDU_Size = -1;
-static int hf_ranap_rAB_SubflowCombinationBitRate = -1;
-static int hf_ranap_sDU_ErrorRatio_present = -1;
-static int hf_ranap_sDU_FormatInformationParameters_present = -1;
-static int hf_ranap_subflowSDU_Size_present = -1;
-static int hf_ranap_rAB_SubflowCombinationBitRate_present = -1;
-static int hf_ranap_transferDelay = -1;
-static int hf_ranap_trafficHandlingPriority = -1;
-static int hf_ranap_priorityLevel = -1;
-static int hf_ranap_pre_emptionCapability = -1;
-static int hf_ranap_pre_emptionVulnerability = -1;
-static int hf_ranap_queuingAllowed = -1;
-static int hf_ranap_sourceStatisticsDescriptor = -1;
-static int hf_ranap_userPlaneMode = -1;
-static int hf_ranap_uP_ModeVersions = -1;
-static int hf_ranap_number_of_ProtocolExtensionFields = -1;
-static int hf_ranap_ext_field_id = -1;
-static int hf_ranap_ext_field_criticality = -1;
-static int hf_ranap_ext_field_number_of_octets = -1;
-static int hf_ranap_transportLayerAddress = -1;
-static int hf_ranap_transportLayerAddress_length = -1;
-static int hf_ranap_gTP_TEI = -1;
-static int hf_ranap_bindingID = -1;
-static int hf_ranap_pDP_TypeInformation_present = -1;
-static int hf_ranap_dataVolumeReportingIndication_present = -1;
-static int hf_ranap_dl_GTP_PDU_SequenceNumber_present = -1;
-static int hf_ranap_ul_GTP_PDU_SequenceNumber_present = -1;
-static int hf_ranap_dl_N_PDU_SequenceNumber_present = -1;
-static int hf_ranap_ul_N_PDU_SequenceNumber_present = -1;
-static int hf_ranap_PDP_Type = -1;
-static int hf_ranap_dataVolumeReportingIndication = -1;
-static int hf_ranap_dl_GTP_PDU_SequenceNumber = -1;
-static int hf_ranap_ul_GTP_PDU_SequenceNumber = -1;
-static int hf_ranap_dl_N_PDU_SequenceNumber = -1;
-static int hf_ranap_ul_N_PDU_SequenceNumber = -1;
-static int hf_ranap_cause_choice = -1;
-static int hf_ranap_cause_value = -1;
-static int hf_ranap_transportLayerAddress_present = -1;
-static int hf_ranap_iuTransportAssociation_present = -1;
-static int hf_ranap_dl_dataVolumes_present = -1;
-static int hf_ranap_dataVolumeReference_present = -1;
-static int hf_ranap_dl_UnsuccessfullyTransmittedDataVolume = -1;
-static int hf_ranap_dataVolumeReference = -1;
-static int hf_ranap_procedureCode_present = -1;
-static int hf_ranap_triggeringMessage_present = -1;
-static int hf_ranap_procedureCriticality_present = -1;
-static int hf_ranap_iEsCriticalityDiagnostics_present = -1;
-static int hf_ranap_triggeringMessage = -1;
-static int hf_ranap_iECriticality = -1;
-static int hf_ranap_procedureCriticality = -1;
-static int hf_ranap_repetitionNumber = -1;
-static int hf_ranap_num_of_CriticalityDiagnostics_IEs = -1;
-static int hf_ranap_repetitionNumber_present = -1;
-static int hf_ranap_dl_UnsuccessfullyTransmittedDataVolume_present = -1;
-static int hf_ranap_CN_DomainIndicator = -1;
-static int hf_ranap_IuSigConId = -1;
-static int hf_ranap_SAPI = -1;
-static int hf_ranap_msg_extension_present = -1;
-static int hf_ranap_ProtocolExtensionContainer_present = -1;
-static int hf_ranap_nas_pdu_length = -1;
-static int hf_ranap_relocationRequirement = -1;
-static int hf_ranap_service_Handover = -1;
-static int hf_ranap_extension_field = -1;
-static int hf_ranap_RNC_ID = -1;
-
-
-/* subtrees */
-static gint ett_ranap = -1;
-static gint ett_ranap_optionals = -1;
-static gint ett_ranap_iE_Extension = -1;
-static gint ett_ranap_ie = -1;
-static gint ett_ranap_ie_pair = -1;
-static gint ett_ranap_rab = -1;
-static gint ett_ranap_ie_pair_first_value = -1;
-static gint ett_ranap_ie_pair_second_value = -1;
-static gint ett_ranap_rAB_Parameters = -1;
-static gint ett_ranap_sDU = -1;
-static gint ett_ranap_allocationOrRetentionPriority = -1;
-static gint ett_ranap_CriticalityDiagnostics_IE = -1;
-
-
-
-/*****************************************************************************/
-/* */
-/* Utility Functions */
-/* */
-/*****************************************************************************/
-
-/* sets *offset and *bitoffset n bits further */
-static void
-proceed_nbits(gint *offset, gint *bitoffset, gint n)
-{
- *bitoffset += n;
- *offset += *bitoffset / 8;
- *bitoffset %= 8;
+static int hf_ranap_RANAP_PDU = -1;
+static int hf_ranap_pdu_length = -1;
+static int hf_ranap_IE_length = -1;
+
+
+/*--- Included file: packet-ranap-hf.c ---*/
+
+static int hf_ranap_initiatingMessage = -1; /* InitiatingMessage */
+static int hf_ranap_successfulOutcome = -1; /* SuccessfulOutcome */
+static int hf_ranap_unsuccessfulOutcome = -1; /* UnsuccessfulOutcome */
+static int hf_ranap_outcome = -1; /* Outcome */
+static int hf_ranap_procedureCode = -1; /* ProcedureCode */
+static int hf_ranap_criticality = -1; /* Criticality */
+static int hf_ranap_value = -1; /* Value */
+static int hf_ranap_iu_ReleaseCommand = -1; /* Iu_ReleaseCommand */
+static int hf_ranap_relocationRequired = -1; /* RelocationRequired */
+static int hf_ranap_relocationRequest = -1; /* RelocationRequest */
+static int hf_ranap_relocationCancel = -1; /* RelocationCancel */
+static int hf_ranap_sRNS_ContextRequest = -1; /* SRNS_ContextRequest */
+static int hf_ranap_securityModeCommand = -1; /* SecurityModeCommand */
+static int hf_ranap_dataVolumeReportRequest = -1; /* DataVolumeReportRequest */
+static int hf_ranap_reset = -1; /* Reset */
+static int hf_ranap_rAB_ReleaseRequest = -1; /* RAB_ReleaseRequest */
+static int hf_ranap_iu_ReleaseRequest = -1; /* Iu_ReleaseRequest */
+static int hf_ranap_relocationDetect = -1; /* RelocationDetect */
+static int hf_ranap_relocationComplete = -1; /* RelocationComplete */
+static int hf_ranap_paging = -1; /* Paging */
+static int hf_ranap_commonID = -1; /* CommonID */
+static int hf_ranap_cN_InvokeTrace = -1; /* CN_InvokeTrace */
+static int hf_ranap_cN_DeactivateTrace = -1; /* CN_DeactivateTrace */
+static int hf_ranap_locationReportingControl = -1; /* LocationReportingControl */
+static int hf_ranap_locationReport = -1; /* LocationReport */
+static int hf_ranap_initialUE_Message = -1; /* InitialUE_Message */
+static int hf_ranap_directTransfer = -1; /* DirectTransfer */
+static int hf_ranap_overload = -1; /* Overload */
+static int hf_ranap_errorIndication = -1; /* ErrorIndication */
+static int hf_ranap_sRNS_DataForwardCommand = -1; /* SRNS_DataForwardCommand */
+static int hf_ranap_forwardSRNS_Context = -1; /* ForwardSRNS_Context */
+static int hf_ranap_rAB_AssignmentRequest = -1; /* RAB_AssignmentRequest */
+static int hf_ranap_privateMessage = -1; /* PrivateMessage */
+static int hf_ranap_resetResource = -1; /* ResetResource */
+static int hf_ranap_rANAP_RelocationInformation = -1; /* RANAP_RelocationInformation */
+static int hf_ranap_rAB_ModifyRequest = -1; /* RAB_ModifyRequest */
+static int hf_ranap_locationRelatedDataRequest = -1; /* LocationRelatedDataRequest */
+static int hf_ranap_informationTransferIndication = -1; /* InformationTransferIndication */
+static int hf_ranap_uESpecificInformationIndication = -1; /* UESpecificInformationIndication */
+static int hf_ranap_directInformationTransfer = -1; /* DirectInformationTransfer */
+static int hf_ranap_uplinkInformationExchangeRequest = -1; /* UplinkInformationExchangeRequest */
+static int hf_ranap_mBMSSessionStart = -1; /* MBMSSessionStart */
+static int hf_ranap_mBMSSessionUpdate = -1; /* MBMSSessionUpdate */
+static int hf_ranap_mMBMSSessionStop = -1; /* MBMSSessionStop */
+static int hf_ranap_mBMSUELinkingRequest = -1; /* MBMSUELinkingRequest */
+static int hf_ranap_mBMSRegistrationRequest = -1; /* MBMSRegistrationRequest */
+static int hf_ranap_mBMSCNDe_RegistrationRequest = -1; /* MBMSCNDe_RegistrationRequest */
+static int hf_ranap_mBMSRABEstablishmentIndication = -1; /* MBMSRABEstablishmentIndication */
+static int hf_ranap_mBMSRABReleaseRequest = -1; /* MBMSRABReleaseRequest */
+static int hf_ranap_iu_ReleaseComplete = -1; /* Iu_ReleaseComplete */
+static int hf_ranap_relocationCommand = -1; /* RelocationCommand */
+static int hf_ranap_relocationRequestAcknowledge = -1; /* RelocationRequestAcknowledge */
+static int hf_ranap_relocationCancelAcknowledge = -1; /* RelocationCancelAcknowledge */
+static int hf_ranap_sRNS_ContextResponse = -1; /* SRNS_ContextResponse */
+static int hf_ranap_securityModeComplete = -1; /* SecurityModeComplete */
+static int hf_ranap_dataVolumeReport = -1; /* DataVolumeReport */
+static int hf_ranap_resetAcknowledge = -1; /* ResetAcknowledge */
+static int hf_ranap_resetResourceAcknowledge = -1; /* ResetResourceAcknowledge */
+static int hf_ranap_locationRelatedDataResponse = -1; /* LocationRelatedDataResponse */
+static int hf_ranap_informationTransferConfirmation = -1; /* InformationTransferConfirmation */
+static int hf_ranap_uplinkInformationExchangeResponse = -1; /* UplinkInformationExchangeResponse */
+static int hf_ranap_mBMSSessionStartResponse = -1; /* MBMSSessionStartResponse */
+static int hf_ranap_mBMSSessionUpdateResponse = -1; /* MBMSSessionUpdateResponse */
+static int hf_ranap_mBMSSessionStopResponse = -1; /* MBMSSessionStopResponse */
+static int hf_ranap_mBMSRegistrationResponse = -1; /* MBMSRegistrationResponse */
+static int hf_ranap_mBMSCNDeRegistrationResponse = -1; /* MBMSCNDe_RegistrationResponse */
+static int hf_ranap_mBMSRABRelease = -1; /* MBMSRABRelease */
+static int hf_ranap_relocationPreparationFailure = -1; /* RelocationPreparationFailure */
+static int hf_ranap_relocationFailure = -1; /* RelocationFailure */
+static int hf_ranap_securityModeReject = -1; /* SecurityModeReject */
+static int hf_ranap_locationRelatedDataFailure = -1; /* LocationRelatedDataFailure */
+static int hf_ranap_informationTransferFailure = -1; /* InformationTransferFailure */
+static int hf_ranap_uplinkInformationExchangeFailure = -1; /* UplinkInformationExchangeFailure */
+static int hf_ranap_mBMSSessionStartFailure = -1; /* MBMSSessionStartFailure */
+static int hf_ranap_mBMSSessionUpdateFailure = -1; /* MBMSSessionUpdateFailure */
+static int hf_ranap_mBMSRegistrationFailure = -1; /* MBMSRegistrationFailure */
+static int hf_ranap_mBMSRABReleaseFailure = -1; /* MBMSRABReleaseFailure */
+static int hf_ranap_rAB_AssignmentResponse = -1; /* RAB_AssignmentResponse */
+static int hf_ranap_mBMSUELinkingResponse = -1; /* MBMSUELinkingResponse */
+static int hf_ranap_id_AccuracyFulfilmentIndicator = -1; /* AccuracyFulfilmentIndicator */
+static int hf_ranap_id_APN = -1; /* APN */
+static int hf_ranap_id_AreaIdentity = -1; /* AreaIdentity */
+static int hf_ranap_id_Alt_RAB_Parameters = -1; /* Alt_RAB_Parameters */
+static int hf_ranap_id_Ass_RAB_Parameters = -1; /* Ass_RAB_Parameters */
+static int hf_ranap_id_BroadcastAssistanceDataDecipheringKeys = -1; /* BroadcastAssistanceDataDecipheringKeys */
+static int hf_ranap_id_LocationRelatedDataRequestType = -1; /* LocationRelatedDataRequestType */
+static int hf_ranap_id_CN_DomainIndicator = -1; /* CN_DomainIndicator */
+static int hf_ranap_id_Cause = -1; /* Cause */
+static int hf_ranap_id_ChosenEncryptionAlgorithm = -1; /* ChosenEncryptionAlgorithm */
+static int hf_ranap_id_ChosenIntegrityProtectionAlgorithm = -1; /* ChosenIntegrityProtectionAlgorithm */
+static int hf_ranap_id_ClassmarkInformation2 = -1; /* ClassmarkInformation2 */
+static int hf_ranap_id_ClassmarkInformation3 = -1; /* ClassmarkInformation3 */
+static int hf_ranap_id_ClientType = -1; /* ClientType */
+static int hf_ranap_id_CNMBMSLinkingInformation = -1; /* CNMBMSLinkingInformation */
+static int hf_ranap_id_CriticalityDiagnostics = -1; /* CriticalityDiagnostics */
+static int hf_ranap_id_DeltaRAListofIdleModeUEs = -1; /* DeltaRAListofIdleModeUEs */
+static int hf_ranap_id_DRX_CycleLengthCoefficient = -1; /* DRX_CycleLengthCoefficient */
+static int hf_ranap_id_DirectTransferInformationItem_RANAP_RelocInf = -1; /* DirectTransferInformationItem_RANAP_RelocInf */
+static int hf_ranap_id_DirectTransferInformationList_RANAP_RelocInf = -1; /* DirectTransferInformationList_RANAP_RelocInf */
+static int hf_ranap_id_DL_GTP_PDU_SequenceNumber = -1; /* DL_GTP_PDU_SequenceNumber */
+static int hf_ranap_id_EncryptionInformation = -1; /* EncryptionInformation */
+static int hf_ranap_id_FrequenceLayerConvergenceFlag = -1; /* FrequenceLayerConvergenceFlag */
+static int hf_ranap_id_GERAN_BSC_Container = -1; /* GERAN_BSC_Container */
+static int hf_ranap_id_GERAN_Classmark = -1; /* GERAN_Classmark */
+static int hf_ranap_id_GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item = -1; /* GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item */
+static int hf_ranap_id_GERAN_Iumode_RAB_FailedList_RABAssgntResponse = -1; /* GERAN_Iumode_RAB_FailedList_RABAssgntResponse */
+static int hf_ranap_id_GlobalCN_ID = -1; /* GlobalCN_ID */
+static int hf_ranap_id_GlobalRNC_ID = -1; /* GlobalRNC_ID */
+static int hf_ranap_id_InformationExchangeID = -1; /* InformationExchangeID */
+static int hf_ranap_id_InformationExchangeType = -1; /* InformationExchangeType */
+static int hf_ranap_id_InformationRequested = -1; /* InformationRequested */
+static int hf_ranap_id_InformationRequestType = -1; /* InformationRequestType */
+static int hf_ranap_id_InformationTransferID = -1; /* InformationTransferID */
+static int hf_ranap_id_InformationTransferType = -1; /* InformationTransferType */
+static int hf_ranap_id_TraceRecordingSessionInformation = -1; /* TraceRecordingSessionInformation */
+static int hf_ranap_id_IntegrityProtectionInformation = -1; /* IntegrityProtectionInformation */
+static int hf_ranap_id_InterSystemInformationTransferType = -1; /* InterSystemInformationTransferType */
+static int hf_ranap_id_InterSystemInformation_TransparentContainer = -1; /* InterSystemInformation_TransparentContainer */
+static int hf_ranap_id_IPMulticastAddress = -1; /* IPMulticastAddress */
+static int hf_ranap_id_IuSigConId = -1; /* IuSignallingConnectionIdentifier */
+static int hf_ranap_id_IuSigConIdItem = -1; /* ResetResourceAckItem */
+static int hf_ranap_id_IuSigConIdList = -1; /* ResetResourceAckList */
+static int hf_ranap_id_IuTransportAssociation = -1; /* IuTransportAssociation */
+static int hf_ranap_id_JoinedMBMSBearerServicesList = -1; /* JoinedMBMSBearerService_IEs */
+static int hf_ranap_id_KeyStatus = -1; /* KeyStatus */
+static int hf_ranap_id_L3_Information = -1; /* L3_Information */
+static int hf_ranap_id_LAI = -1; /* LAI */
+static int hf_ranap_id_LastKnownServiceArea = -1; /* LastKnownServiceArea */
+static int hf_ranap_id_SRB_TrCH_Mapping = -1; /* SRB_TrCH_Mapping */
+static int hf_ranap_id_LeftMBMSBearerServicesList = -1; /* LeftMBMSBearerService_IEs */
+static int hf_ranap_id_LocationRelatedDataRequestTypeSpecificToGERANIuMode = -1; /* LocationRelatedDataRequestTypeSpecificToGERANIuMode */
+static int hf_ranap_id_SignallingIndication = -1; /* SignallingIndication */
+static int hf_ranap_id_hS_DSCH_MAC_d_Flow_ID = -1; /* HS_DSCH_MAC_d_Flow_ID */
+static int hf_ranap_id_CellLoadInformationGroup = -1; /* CellLoadInformationGroup */
+static int hf_ranap_id_MBMSBearerServiceType = -1; /* MBMSBearerServiceType */
+static int hf_ranap_id_MBMSCNDe_Registration = -1; /* MBMSCNDe_Registration */
+static int hf_ranap_id_MBMSRegistrationRequestType = -1; /* MBMSRegistrationRequestType */
+static int hf_ranap_id_MBMSServiceArea = -1; /* MBMSServiceArea */
+static int hf_ranap_id_MBMSSessionDuration = -1; /* MBMSSessionDuration */
+static int hf_ranap_id_MBMSSessionIdentity = -1; /* MBMSSessionIdentity */
+static int hf_ranap_id_MBMSSessionRepetitionNumber = -1; /* MBMSSessionRepetitionNumber */
+static int hf_ranap_id_NAS_PDU = -1; /* NAS_PDU */
+static int hf_ranap_id_NAS_SequenceNumber = -1; /* NAS_SequenceNumber */
+static int hf_ranap_id_NewBSS_To_OldBSS_Information = -1; /* NewBSS_To_OldBSS_Information */
+static int hf_ranap_id_NonSearchingIndication = -1; /* NonSearchingIndication */
+static int hf_ranap_id_NumberOfSteps = -1; /* NumberOfSteps */
+static int hf_ranap_id_OMC_ID = -1; /* OMC_ID */
+static int hf_ranap_id_OldBSS_ToNewBSS_Information = -1; /* OldBSS_ToNewBSS_Information */
+static int hf_ranap_id_PagingAreaID = -1; /* PagingAreaID */
+static int hf_ranap_id_PagingCause = -1; /* PagingCause */
+static int hf_ranap_id_PDP_TypeInformation = -1; /* PDP_TypeInformation */
+static int hf_ranap_id_PermanentNAS_UE_ID = -1; /* PermanentNAS_UE_ID */
+static int hf_ranap_id_PositionData = -1; /* PositionData */
+static int hf_ranap_id_PositionDataSpecificToGERANIuMode = -1; /* PositionDataSpecificToGERANIuMode */
+static int hf_ranap_id_PositioningPriority = -1; /* PositioningPriority */
+static int hf_ranap_id_ProvidedData = -1; /* ProvidedData */
+static int hf_ranap_id_RAB_ContextItem = -1; /* RAB_ContextItem */
+static int hf_ranap_id_RAB_ContextList = -1; /* RAB_ContextList */
+static int hf_ranap_id_RAB_ContextFailedtoTransferItem = -1; /* RABs_ContextFailedtoTransferItem */
+static int hf_ranap_id_RAB_ContextFailedtoTransferList = -1; /* RAB_ContextFailedtoTransferList */
+static int hf_ranap_id_RAB_ContextItem_RANAP_RelocInf = -1; /* RAB_ContextItem_RANAP_RelocInf */
+static int hf_ranap_id_RAB_ContextList_RANAP_RelocInf = -1; /* RAB_ContextList_RANAP_RelocInf */
+static int hf_ranap_id_RAB_DataForwardingItem = -1; /* RAB_DataForwardingItem */
+static int hf_ranap_id_RAB_DataForwardingItem_SRNS_CtxReq = -1; /* RAB_DataForwardingItem_SRNS_CtxReq */
+static int hf_ranap_id_RAB_DataForwardingList = -1; /* RAB_DataForwardingList */
+static int hf_ranap_id_RAB_DataForwardingList_SRNS_CtxReq = -1; /* RAB_DataForwardingList_SRNS_CtxReq */
+static int hf_ranap_id_RAB_DataVolumeReportItem = -1; /* RAB_DataVolumeReportItem */
+static int hf_ranap_id_RAB_DataVolumeReportList = -1; /* RAB_DataVolumeReportList */
+static int hf_ranap_id_RAB_DataVolumeReportRequestItem = -1; /* RAB_DataVolumeReportRequestItem */
+static int hf_ranap_id_RAB_DataVolumeReportRequestList = -1; /* RAB_DataVolumeReportRequestList */
+static int hf_ranap_id_RAB_FailedItem = -1; /* RAB_FailedItem */
+static int hf_ranap_id_RAB_FailedList = -1; /* RAB_FailedList */
+static int hf_ranap_id_RAB_FailedtoReportItem = -1; /* RABs_failed_to_reportItem */
+static int hf_ranap_id_RAB_FailedtoReportList = -1; /* RAB_FailedtoReportList */
+static int hf_ranap_id_RAB_ID = -1; /* RAB_ID */
+static int hf_ranap_id_RAB_ModifyList = -1; /* RAB_ModifyList */
+static int hf_ranap_id_RAB_ModifyItem = -1; /* RAB_ModifyItem */
+static int hf_ranap_id_TypeOfError = -1; /* TypeOfError */
+static int hf_ranap_id_RAB_Parameters = -1; /* RAB_Parameters */
+static int hf_ranap_id_RAB_QueuedItem = -1; /* RAB_QueuedItem */
+static int hf_ranap_id_RAB_QueuedList = -1; /* RAB_QueuedList */
+static int hf_ranap_id_RAB_ReleaseFailedList = -1; /* RAB_ReleaseFailedList */
+static int hf_ranap_id_RAB_ReleaseItem = -1; /* RAB_ReleaseItem */
+static int hf_ranap_id_RAB_ReleasedItem_IuRelComp = -1; /* RAB_ReleasedItem_IuRelComp */
+static int hf_ranap_id_MessageStructure = -1; /* MessageStructure */
+static int hf_ranap_id_RAB_ReleaseList = -1; /* RAB_ReleaseList */
+static int hf_ranap_id_RAB_ReleasedItem = -1; /* RAB_ReleasedItem */
+static int hf_ranap_id_RAB_ReleasedList = -1; /* RAB_ReleasedList */
+static int hf_ranap_id_RAB_ReleasedList_IuRelComp = -1; /* RAB_ReleasedList_IuRelComp */
+static int hf_ranap_id_RAB_RelocationReleaseItem = -1; /* RAB_RelocationReleaseItem */
+static int hf_ranap_id_RAB_RelocationReleaseList = -1; /* RAB_RelocationReleaseList */
+static int hf_ranap_id_RAB_SetupItem_RelocReq = -1; /* RAB_SetupItem_RelocReq */
+static int hf_ranap_id_RAB_SetupItem_RelocReqAck = -1; /* RAB_SetupItem_RelocReqAck */
+static int hf_ranap_id_RAB_SetupList_RelocReq = -1; /* RAB_SetupList_RelocReq */
+static int hf_ranap_id_RAB_SetupList_RelocReqAck = -1; /* RAB_SetupList_RelocReqAck */
+static int hf_ranap_id_RAB_SetupOrModifiedItem = -1; /* RAB_SetupOrModifiedItem */
+static int hf_ranap_id_RAB_SetupOrModifiedList = -1; /* RAB_SetupOrModifiedList */
+static int hf_ranap_id_RAB_SetupOrModifyList = -1; /* RAB_SetupOrModifyList */
+static int hf_ranap_id_RAC = -1; /* RAC */
+static int hf_ranap_id_RAListofIdleModeUEs = -1; /* RAListofIdleModeUEs */
+static int hf_ranap_id_RedirectionCompleted = -1; /* RedirectionCompleted */
+static int hf_ranap_id_RedirectionIndication = -1; /* RedirectionIndication */
+static int hf_ranap_id_RejectCauseValue = -1; /* RejectCauseValue */
+static int hf_ranap_id_RelocationType = -1; /* RelocationType */
+static int hf_ranap_id_RequestType = -1; /* RequestType */
+static int hf_ranap_id_ResponseTime = -1; /* ResponseTime */
+static int hf_ranap_id_SAI = -1; /* SAI */
+static int hf_ranap_id_SAPI = -1; /* SAPI */
+static int hf_ranap_id_SelectedPLMN_ID = -1; /* PLMNidentity */
+static int hf_ranap_id_SessionUpdateID = -1; /* SessionUpdateID */
+static int hf_ranap_id_SNA_Access_Information = -1; /* SNA_Access_Information */
+static int hf_ranap_id_SourceID = -1; /* SourceID */
+static int hf_ranap_id_SourceRNC_ToTargetRNC_TransparentContainer = -1; /* SourceRNC_ToTargetRNC_TransparentContainer */
+static int hf_ranap_id_SourceRNC_PDCP_context_info = -1; /* RRC_Container */
+static int hf_ranap_id_TargetID = -1; /* TargetID */
+static int hf_ranap_id_TargetRNC_ToSourceRNC_TransparentContainer = -1; /* TargetRNC_ToSourceRNC_TransparentContainer */
+static int hf_ranap_id_TemporaryUE_ID = -1; /* TemporaryUE_ID */
+static int hf_ranap_id_TMGI = -1; /* TMGI */
+static int hf_ranap_id_TracePropagationParameters = -1; /* TracePropagationParameters */
+static int hf_ranap_id_TraceReference = -1; /* TraceReference */
+static int hf_ranap_id_TraceType = -1; /* TraceType */
+static int hf_ranap_id_TransportLayerAddress = -1; /* TransportLayerAddress */
+static int hf_ranap_id_TransportLayerInformation = -1; /* TransportLayerInformation */
+static int hf_ranap_id_TriggerID = -1; /* TriggerID */
+static int hf_ranap_id_UE_ID = -1; /* UE_ID */
+static int hf_ranap_id_UESBI_Iu = -1; /* UESBI_Iu */
+static int hf_ranap_id_UL_GTP_PDU_SequenceNumber = -1; /* UL_GTP_PDU_SequenceNumber */
+static int hf_ranap_id_UnsuccessfulLinkingList = -1; /* UnsuccessfulLinking_IEs */
+static int hf_ranap_id_VerticalAccuracyCode = -1; /* VerticalAccuracyCode */
+static int hf_ranap_id_MBMSLinkingInformation = -1; /* MBMSLinkingInformation */
+static int hf_ranap_id_AlternativeRABConfiguration = -1; /* RAB_Parameters */
+static int hf_ranap_id_AlternativeRABConfigurationRequest = -1; /* AlternativeRABConfigurationRequest */
+static int hf_ranap_id_E_DCH_MAC_d_Flow_ID = -1; /* E_DCH_MAC_d_Flow_ID */
+static int hf_ranap_id_RAB_SetupOrModifyItem1 = -1; /* RAB_SetupOrModifyItemFirst */
+static int hf_ranap_id_RAB_SetupOrModifyItem2 = -1; /* RAB_SetupOrModifyItemSecond */
+static int hf_ranap_protocolIEs = -1; /* ProtocolIE_Container */
+static int hf_ranap_protocolExtensions = -1; /* ProtocolExtensionContainer */
+static int hf_ranap_rAB_ID = -1; /* RAB_ID */
+static int hf_ranap_rab_dl_UnsuccessfullyTransmittedDataVolume = -1; /* DataVolumeList */
+static int hf_ranap_iE_Extensions = -1; /* ProtocolExtensionContainer */
+static int hf_ranap_dL_GTP_PDU_SequenceNumber = -1; /* DL_GTP_PDU_SequenceNumber */
+static int hf_ranap_uL_GTP_PDU_SequenceNumber = -1; /* UL_GTP_PDU_SequenceNumber */
+static int hf_ranap_transportLayerAddress = -1; /* TransportLayerAddress */
+static int hf_ranap_iuTransportAssociation = -1; /* IuTransportAssociation */
+static int hf_ranap_nAS_SynchronisationIndicator = -1; /* NAS_SynchronisationIndicator */
+static int hf_ranap_rAB_Parameters = -1; /* RAB_Parameters */
+static int hf_ranap_dataVolumeReportingIndication = -1; /* DataVolumeReportingIndication */
+static int hf_ranap_pDP_TypeInformation = -1; /* PDP_TypeInformation */
+static int hf_ranap_userPlaneInformation = -1; /* UserPlaneInformation */
+static int hf_ranap_service_Handover = -1; /* Service_Handover */
+static int hf_ranap_userPlaneMode = -1; /* UserPlaneMode */
+static int hf_ranap_uP_ModeVersions = -1; /* UP_ModeVersions */
+static int hf_ranap_joinedMBMSBearerService_IEs = -1; /* JoinedMBMSBearerService_IEs */
+static int hf_ranap_JoinedMBMSBearerService_IEs_item = -1; /* JoinedMBMSBearerService_IEs_item */
+static int hf_ranap_tMGI = -1; /* TMGI */
+static int hf_ranap_mBMS_PTP_RAB_ID = -1; /* MBMS_PTP_RAB_ID */
+static int hf_ranap_cause = -1; /* Cause */
+static int hf_ranap_dl_GTP_PDU_SequenceNumber = -1; /* DL_GTP_PDU_SequenceNumber */
+static int hf_ranap_ul_GTP_PDU_SequenceNumber = -1; /* UL_GTP_PDU_SequenceNumber */
+static int hf_ranap_dl_N_PDU_SequenceNumber = -1; /* DL_N_PDU_SequenceNumber */
+static int hf_ranap_ul_N_PDU_SequenceNumber = -1; /* UL_N_PDU_SequenceNumber */
+static int hf_ranap_iuSigConId = -1; /* IuSignallingConnectionIdentifier */
+static int hf_ranap_transportLayerInformation = -1; /* TransportLayerInformation */
+static int hf_ranap_dl_dataVolumes = -1; /* DataVolumeList */
+static int hf_ranap_DataVolumeList_item = -1; /* DataVolumeList_item */
+static int hf_ranap_dl_UnsuccessfullyTransmittedDataVolume = -1; /* UnsuccessfullyTransmittedDataVolume */
+static int hf_ranap_dataVolumeReference = -1; /* DataVolumeReference */
+static int hf_ranap_gERAN_Classmark = -1; /* GERAN_Classmark */
+static int hf_ranap_privateIEs = -1; /* PrivateIE_Container */
+static int hf_ranap_nAS_PDU = -1; /* NAS_PDU */
+static int hf_ranap_sAPI = -1; /* SAPI */
+static int hf_ranap_cN_DomainIndicator = -1; /* CN_DomainIndicator */
+static int hf_ranap_requested_RAB_Parameter_Values = -1; /* Requested_RAB_Parameter_Values */
+static int hf_ranap_LeftMBMSBearerService_IEs_item = -1; /* LeftMBMSBearerService_IEs_item */
+static int hf_ranap_UnsuccessfulLinking_IEs_item = -1; /* UnsuccessfulLinking_IEs_item */
+static int hf_ranap_priorityLevel = -1; /* PriorityLevel */
+static int hf_ranap_pre_emptionCapability = -1; /* Pre_emptionCapability */
+static int hf_ranap_pre_emptionVulnerability = -1; /* Pre_emptionVulnerability */
+static int hf_ranap_queuingAllowed = -1; /* QueuingAllowed */
+static int hf_ranap_altMaxBitrateInf = -1; /* Alt_RAB_Parameter_MaxBitrateInf */
+static int hf_ranap_altGuaranteedBitRateInf = -1; /* Alt_RAB_Parameter_GuaranteedBitrateInf */
+static int hf_ranap_altGuaranteedBitrateType = -1; /* Alt_RAB_Parameter_GuaranteedBitrateType */
+static int hf_ranap_altGuaranteedBitrates = -1; /* Alt_RAB_Parameter_GuaranteedBitrates */
+static int hf_ranap_Alt_RAB_Parameter_GuaranteedBitrates_item = -1; /* Alt_RAB_Parameter_GuaranteedBitrateList */
+static int hf_ranap_Alt_RAB_Parameter_GuaranteedBitrateList_item = -1; /* GuaranteedBitrate */
+static int hf_ranap_altMaxBitrateType = -1; /* Alt_RAB_Parameter_MaxBitrateType */
+static int hf_ranap_altMaxBitrates = -1; /* Alt_RAB_Parameter_MaxBitrates */
+static int hf_ranap_Alt_RAB_Parameter_MaxBitrates_item = -1; /* Alt_RAB_Parameter_MaxBitrateList */
+static int hf_ranap_Alt_RAB_Parameter_MaxBitrateList_item = -1; /* MaxBitrate */
+static int hf_ranap_sAI = -1; /* SAI */
+static int hf_ranap_geographicalArea = -1; /* GeographicalArea */
+static int hf_ranap_assMaxBitrateInf = -1; /* Ass_RAB_Parameter_MaxBitrateList */
+static int hf_ranap_assGuaranteedBitRateInf = -1; /* Ass_RAB_Parameter_GuaranteedBitrateList */
+static int hf_ranap_Ass_RAB_Parameter_GuaranteedBitrateList_item = -1; /* GuaranteedBitrate */
+static int hf_ranap_Ass_RAB_Parameter_MaxBitrateList_item = -1; /* MaxBitrate */
+static int hf_ranap_AuthorisedPLMNs_item = -1; /* AuthorisedPLMNs_item */
+static int hf_ranap_pLMNidentity = -1; /* PLMNidentity */
+static int hf_ranap_authorisedSNAsList = -1; /* AuthorisedSNAs */
+static int hf_ranap_AuthorisedSNAs_item = -1; /* SNAC */
+static int hf_ranap_cipheringKeyFlag = -1; /* BIT_STRING_SIZE_1 */
+static int hf_ranap_currentDecipheringKey = -1; /* BIT_STRING_SIZE_56 */
+static int hf_ranap_nextDecipheringKey = -1; /* BIT_STRING_SIZE_56 */
+static int hf_ranap_radioNetwork = -1; /* CauseRadioNetwork */
+static int hf_ranap_transmissionNetwork = -1; /* CauseTransmissionNetwork */
+static int hf_ranap_nAS = -1; /* CauseNAS */
+static int hf_ranap_protocol = -1; /* CauseProtocol */
+static int hf_ranap_misc = -1; /* CauseMisc */
+static int hf_ranap_non_Standard = -1; /* CauseNon_Standard */
+static int hf_ranap_radioNetworkExtension = -1; /* CauseRadioNetworkExtension */
+static int hf_ranap_cell_Capacity_Class_Value = -1; /* Cell_Capacity_Class_Value */
+static int hf_ranap_loadValue = -1; /* LoadValue */
+static int hf_ranap_rTLoadValue = -1; /* RTLoadValue */
+static int hf_ranap_nRTLoadInformationValue = -1; /* NRTLoadInformationValue */
+static int hf_ranap_sourceCellID = -1; /* SourceCellID */
+static int hf_ranap_uplinkCellLoadInformation = -1; /* CellLoadInformation */
+static int hf_ranap_downlinkCellLoadInformation = -1; /* CellLoadInformation */
+static int hf_ranap_triggeringMessage = -1; /* TriggeringMessage */
+static int hf_ranap_procedureCriticality = -1; /* Criticality */
+static int hf_ranap_iEsCriticalityDiagnostics = -1; /* CriticalityDiagnostics_IE_List */
+static int hf_ranap_CriticalityDiagnostics_IE_List_item = -1; /* CriticalityDiagnostics_IE_List_item */
+static int hf_ranap_iECriticality = -1; /* Criticality */
+static int hf_ranap_iE_ID = -1; /* ProtocolIE_ID */
+static int hf_ranap_repetitionNumber = -1; /* RepetitionNumber0 */
+static int hf_ranap_MessageStructure_item = -1; /* MessageStructure_item */
+static int hf_ranap_item_repetitionNumber = -1; /* RepetitionNumber1 */
+static int hf_ranap_lAC = -1; /* LAC */
+static int hf_ranap_cI = -1; /* CI */
+static int hf_ranap_newRAListofIdleModeUEs = -1; /* NewRAListofIdleModeUEs */
+static int hf_ranap_rAListwithNoIdleModeUEsAnyMore = -1; /* RAListwithNoIdleModeUEsAnyMore */
+static int hf_ranap_NewRAListofIdleModeUEs_item = -1; /* RAC */
+static int hf_ranap_RAListwithNoIdleModeUEsAnyMore_item = -1; /* RAC */
+static int hf_ranap_encryptionpermittedAlgorithms = -1; /* PermittedEncryptionAlgorithms */
+static int hf_ranap_encryptionkey = -1; /* EncryptionKey */
+static int hf_ranap_iMEIlist = -1; /* IMEIList */
+static int hf_ranap_iMEISVlist = -1; /* IMEISVList */
+static int hf_ranap_iMEIgroup = -1; /* IMEIGroup */
+static int hf_ranap_iMEISVgroup = -1; /* IMEISVGroup */
+static int hf_ranap_point = -1; /* GA_Point */
+static int hf_ranap_pointWithUnCertainty = -1; /* GA_PointWithUnCertainty */
+static int hf_ranap_polygon = -1; /* GA_Polygon */
+static int hf_ranap_pointWithUncertaintyEllipse = -1; /* GA_PointWithUnCertaintyEllipse */
+static int hf_ranap_pointWithAltitude = -1; /* GA_PointWithAltitude */
+static int hf_ranap_pointWithAltitudeAndUncertaintyEllipsoid = -1; /* GA_PointWithAltitudeAndUncertaintyEllipsoid */
+static int hf_ranap_ellipsoidArc = -1; /* GA_EllipsoidArc */
+static int hf_ranap_latitudeSign = -1; /* T_latitudeSign */
+static int hf_ranap_latitude = -1; /* INTEGER_0_8388607 */
+static int hf_ranap_longitude = -1; /* INTEGER_M8388608_8388607 */
+static int hf_ranap_directionOfAltitude = -1; /* T_directionOfAltitude */
+static int hf_ranap_altitude = -1; /* INTEGER_0_32767 */
+static int hf_ranap_geographicalCoordinates = -1; /* GeographicalCoordinates */
+static int hf_ranap_innerRadius = -1; /* INTEGER_0_65535 */
+static int hf_ranap_uncertaintyRadius = -1; /* INTEGER_0_127 */
+static int hf_ranap_offsetAngle = -1; /* INTEGER_0_179 */
+static int hf_ranap_includedAngle = -1; /* INTEGER_0_179 */
+static int hf_ranap_confidence = -1; /* INTEGER_0_127 */
+static int hf_ranap_altitudeAndDirection = -1; /* GA_AltitudeAndDirection */
+static int hf_ranap_uncertaintyEllipse = -1; /* GA_UncertaintyEllipse */
+static int hf_ranap_uncertaintyAltitude = -1; /* INTEGER_0_127 */
+static int hf_ranap_uncertaintyCode = -1; /* INTEGER_0_127 */
+static int hf_ranap_GA_Polygon_item = -1; /* GA_Polygon_item */
+static int hf_ranap_uncertaintySemi_major = -1; /* INTEGER_0_127 */
+static int hf_ranap_uncertaintySemi_minor = -1; /* INTEGER_0_127 */
+static int hf_ranap_orientationOfMajorAxis = -1; /* INTEGER_0_179 */
+static int hf_ranap_lAI = -1; /* LAI */
+static int hf_ranap_rAC = -1; /* RAC */
+static int hf_ranap_cN_ID = -1; /* CN_ID */
+static int hf_ranap_rNC_ID = -1; /* RNC_ID */
+static int hf_ranap_iMEI = -1; /* IMEI */
+static int hf_ranap_iMEIMask = -1; /* BIT_STRING_SIZE_7 */
+static int hf_ranap_IMEIList_item = -1; /* IMEI */
+static int hf_ranap_iMEISV = -1; /* IMEISV */
+static int hf_ranap_iMEISVMask = -1; /* BIT_STRING_SIZE_7 */
+static int hf_ranap_IMEISVList_item = -1; /* IMEISV */
+static int hf_ranap_requestedMBMSIPMulticastAddressandAPNRequest = -1; /* RequestedMBMSIPMulticastAddressandAPNRequest */
+static int hf_ranap_requestedMulticastServiceList = -1; /* RequestedMulticastServiceList */
+static int hf_ranap_mBMSIPMulticastAddressandAPNRequest = -1; /* MBMSIPMulticastAddressandAPNRequest */
+static int hf_ranap_permanentNAS_UE_ID = -1; /* PermanentNAS_UE_ID */
+static int hf_ranap_rNCTraceInformation = -1; /* RNCTraceInformation */
+static int hf_ranap_permittedAlgorithms = -1; /* PermittedIntegrityProtectionAlgorithms */
+static int hf_ranap_key = -1; /* IntegrityProtectionKey */
+static int hf_ranap_rIM_Transfer = -1; /* RIM_Transfer */
+static int hf_ranap_gTP_TEI = -1; /* GTP_TEI */
+static int hf_ranap_bindingID = -1; /* BindingID */
+static int hf_ranap_LA_LIST_item = -1; /* LA_LIST_item */
+static int hf_ranap_listOF_SNAs = -1; /* ListOF_SNAs */
+static int hf_ranap_ageOfSAI = -1; /* INTEGER_0_32767 */
+static int hf_ranap_ListOF_SNAs_item = -1; /* SNAC */
+static int hf_ranap_ListOfInterfacesToTrace_item = -1; /* InterfacesToTraceItem */
+static int hf_ranap_interface = -1; /* T_interface */
+static int hf_ranap_requestedLocationRelatedDataType = -1; /* RequestedLocationRelatedDataType */
+static int hf_ranap_requestedGPSAssistanceData = -1; /* RequestedGPSAssistanceData */
+static int hf_ranap_MBMSIPMulticastAddressandAPNRequest_item = -1; /* TMGI */
+static int hf_ranap_mBMSServiceAreaList = -1; /* MBMSServiceAreaList */
+static int hf_ranap_MBMSServiceAreaList_item = -1; /* MBMSServiceAreaCode */
+static int hf_ranap_rAI = -1; /* RAI */
+static int hf_ranap_PDP_TypeInformation_item = -1; /* PDP_Type */
+static int hf_ranap_iMSI = -1; /* IMSI */
+static int hf_ranap_PermittedEncryptionAlgorithms_item = -1; /* EncryptionAlgorithm */
+static int hf_ranap_PermittedIntegrityProtectionAlgorithms_item = -1; /* IntegrityProtectionAlgorithm */
+static int hf_ranap_PLMNs_in_shared_network_item = -1; /* PLMNs_in_shared_network_item */
+static int hf_ranap_lA_LIST = -1; /* LA_LIST */
+static int hf_ranap_PositioningDataSet_item = -1; /* PositioningMethodAndUsage */
+static int hf_ranap_positioningDataDiscriminator = -1; /* PositioningDataDiscriminator */
+static int hf_ranap_positioningDataSet = -1; /* PositioningDataSet */
+static int hf_ranap_shared_network_information = -1; /* Shared_Network_Information */
+static int hf_ranap_RAB_Parameter_GuaranteedBitrateList_item = -1; /* GuaranteedBitrate */
+static int hf_ranap_RAB_Parameter_MaxBitrateList_item = -1; /* MaxBitrate */
+static int hf_ranap_trafficClass = -1; /* TrafficClass */
+static int hf_ranap_rAB_AsymmetryIndicator = -1; /* RAB_AsymmetryIndicator */
+static int hf_ranap_maxBitrate = -1; /* RAB_Parameter_MaxBitrateList */
+static int hf_ranap_guaranteedBitRate = -1; /* RAB_Parameter_GuaranteedBitrateList */
+static int hf_ranap_deliveryOrder = -1; /* DeliveryOrder */
+static int hf_ranap_maxSDU_Size = -1; /* MaxSDU_Size */
+static int hf_ranap_sDU_Parameters = -1; /* SDU_Parameters */
+static int hf_ranap_transferDelay = -1; /* TransferDelay */
+static int hf_ranap_trafficHandlingPriority = -1; /* TrafficHandlingPriority */
+static int hf_ranap_allocationOrRetentionPriority = -1; /* AllocationOrRetentionPriority */
+static int hf_ranap_sourceStatisticsDescriptor = -1; /* SourceStatisticsDescriptor */
+static int hf_ranap_relocationRequirement = -1; /* RelocationRequirement */
+static int hf_ranap_RAB_TrCH_Mapping_item = -1; /* RAB_TrCH_MappingItem */
+static int hf_ranap_trCH_ID_List = -1; /* TrCH_ID_List */
+static int hf_ranap_notEmptyRAListofIdleModeUEs = -1; /* NotEmptyRAListofIdleModeUEs */
+static int hf_ranap_emptyFullRAListofIdleModeUEs = -1; /* T_emptyFullRAListofIdleModeUEs */
+static int hf_ranap_rAofIdleModeUEs = -1; /* RAofIdleModeUEs */
+static int hf_ranap_RAofIdleModeUEs_item = -1; /* RAC */
+static int hf_ranap_RequestedMBMSIPMulticastAddressandAPNRequest_item = -1; /* MBMSIPMulticastAddressandAPNlist */
+static int hf_ranap_iPMulticastAddress = -1; /* IPMulticastAddress */
+static int hf_ranap_aPN = -1; /* APN */
+static int hf_ranap_RequestedMulticastServiceList_item = -1; /* TMGI */
+static int hf_ranap_requestedMaxBitrates = -1; /* Requested_RAB_Parameter_MaxBitrateList */
+static int hf_ranap_requestedGuaranteedBitrates = -1; /* Requested_RAB_Parameter_GuaranteedBitrateList */
+static int hf_ranap_Requested_RAB_Parameter_MaxBitrateList_item = -1; /* MaxBitrate */
+static int hf_ranap_Requested_RAB_Parameter_GuaranteedBitrateList_item = -1; /* GuaranteedBitrate */
+static int hf_ranap_event = -1; /* Event */
+static int hf_ranap_reportArea = -1; /* ReportArea */
+static int hf_ranap_accuracyCode = -1; /* INTEGER_0_127 */
+static int hf_ranap_mantissa = -1; /* INTEGER_1_9 */
+static int hf_ranap_exponent = -1; /* INTEGER_1_8 */
+static int hf_ranap_rIMInformation = -1; /* RIMInformation */
+static int hf_ranap_rIMRoutingAddress = -1; /* RIMRoutingAddress */
+static int hf_ranap_globalRNC_ID = -1; /* GlobalRNC_ID */
+static int hf_ranap_gERAN_Cell_ID = -1; /* GERAN_Cell_ID */
+static int hf_ranap_traceReference = -1; /* TraceReference */
+static int hf_ranap_traceActivationIndicator = -1; /* T_traceActivationIndicator */
+static int hf_ranap_equipmentsToBeTraced = -1; /* EquipmentsToBeTraced */
+static int hf_ranap_sAC = -1; /* SAC */
+static int hf_ranap_pLMNs_in_shared_network = -1; /* PLMNs_in_shared_network */
+static int hf_ranap_exponent_1_8 = -1; /* INTEGER_1_6 */
+static int hf_ranap_SDU_FormatInformationParameters_item = -1; /* SDU_FormatInformationParameters_item */
+static int hf_ranap_subflowSDU_Size = -1; /* SubflowSDU_Size */
+static int hf_ranap_rAB_SubflowCombinationBitRate = -1; /* RAB_SubflowCombinationBitRate */
+static int hf_ranap_SDU_Parameters_item = -1; /* SDU_Parameters_item */
+static int hf_ranap_sDU_ErrorRatio = -1; /* SDU_ErrorRatio */
+static int hf_ranap_residualBitErrorRatio = -1; /* ResidualBitErrorRatio */
+static int hf_ranap_deliveryOfErroneousSDU = -1; /* DeliveryOfErroneousSDU */
+static int hf_ranap_sDU_FormatInformationParameters = -1; /* SDU_FormatInformationParameters */
+static int hf_ranap_authorisedPLMNs = -1; /* AuthorisedPLMNs */
+static int hf_ranap_sourceUTRANCellID = -1; /* SourceUTRANCellID */
+static int hf_ranap_sourceGERANCellID = -1; /* CGI */
+static int hf_ranap_sourceRNC_ID = -1; /* SourceRNC_ID */
+static int hf_ranap_rRC_Container = -1; /* RRC_Container */
+static int hf_ranap_numberOfIuInstances = -1; /* NumberOfIuInstances */
+static int hf_ranap_relocationType = -1; /* RelocationType */
+static int hf_ranap_chosenIntegrityProtectionAlgorithm = -1; /* ChosenIntegrityProtectionAlgorithm */
+static int hf_ranap_integrityProtectionKey = -1; /* IntegrityProtectionKey */
+static int hf_ranap_chosenEncryptionAlgorithForSignalling = -1; /* ChosenEncryptionAlgorithm */
+static int hf_ranap_cipheringKey = -1; /* EncryptionKey */
+static int hf_ranap_chosenEncryptionAlgorithForCS = -1; /* ChosenEncryptionAlgorithm */
+static int hf_ranap_chosenEncryptionAlgorithForPS = -1; /* ChosenEncryptionAlgorithm */
+static int hf_ranap_d_RNTI = -1; /* D_RNTI */
+static int hf_ranap_targetCellId = -1; /* TargetCellId */
+static int hf_ranap_rAB_TrCH_Mapping = -1; /* RAB_TrCH_Mapping */
+static int hf_ranap_uTRANcellID = -1; /* TargetCellId */
+static int hf_ranap_SRB_TrCH_Mapping_item = -1; /* SRB_TrCH_MappingItem */
+static int hf_ranap_sRB_ID = -1; /* SRB_ID */
+static int hf_ranap_trCH_ID = -1; /* TrCH_ID */
+static int hf_ranap_targetRNC_ID = -1; /* TargetRNC_ID */
+static int hf_ranap_cGI = -1; /* CGI */
+static int hf_ranap_tMSI = -1; /* TMSI */
+static int hf_ranap_p_TMSI = -1; /* P_TMSI */
+static int hf_ranap_serviceID = -1; /* OCTET_STRING_SIZE_3 */
+static int hf_ranap_traceRecordingSessionReference = -1; /* TraceRecordingSessionReference */
+static int hf_ranap_traceDepth = -1; /* TraceDepth */
+static int hf_ranap_listOfInterfacesToTrace = -1; /* ListOfInterfacesToTrace */
+static int hf_ranap_dCH_ID = -1; /* DCH_ID */
+static int hf_ranap_dSCH_ID = -1; /* DSCH_ID */
+static int hf_ranap_uSCH_ID = -1; /* USCH_ID */
+static int hf_ranap_TrCH_ID_List_item = -1; /* TrCH_ID */
+static int hf_ranap_imsi = -1; /* IMSI */
+static int hf_ranap_imei = -1; /* IMEI */
+static int hf_ranap_imeisv = -1; /* IMEISV */
+static int hf_ranap_uESBI_IuA = -1; /* UESBI_IuA */
+static int hf_ranap_uESBI_IuB = -1; /* UESBI_IuB */
+static int hf_ranap_local = -1; /* INTEGER_0_65535 */
+static int hf_ranap_global = -1; /* OBJECT_IDENTIFIER */
+static int hf_ranap_ProtocolIE_Container_item = -1; /* ProtocolIE_Field */
+static int hf_ranap_id = -1; /* ProtocolIE_ID */
+static int hf_ranap_ie_field_value = -1; /* RANAP_PROTOCOL_IES_Value */
+static int hf_ranap_ProtocolIE_ContainerPair_item = -1; /* ProtocolIE_FieldPair */
+static int hf_ranap_firstCriticality = -1; /* Criticality */
+static int hf_ranap_firstValue = -1; /* FirstValue */
+static int hf_ranap_secondCriticality = -1; /* Criticality */
+static int hf_ranap_secondValue = -1; /* SecondValue */
+static int hf_ranap_ProtocolIE_ContainerList_item = -1; /* ProtocolIE_Container */
+static int hf_ranap_ProtocolIE_ContainerList15_item = -1; /* ProtocolIE_Container */
+static int hf_ranap_ProtocolIE_ContainerList256_item = -1; /* ProtocolIE_Container */
+static int hf_ranap_ProtocolIE_ContainerList250_item = -1; /* ProtocolIE_Container */
+static int hf_ranap_ProtocolIE_ContainerPairList_item = -1; /* ProtocolIE_ContainerPair */
+static int hf_ranap_ProtocolIE_ContainerPairList256_item = -1; /* ProtocolIE_ContainerPair */
+static int hf_ranap_ProtocolExtensionContainer_item = -1; /* ProtocolExtensionField */
+static int hf_ranap_ext_id = -1; /* ProtocolExtensionID */
+static int hf_ranap_extensionValue = -1; /* Extension */
+static int hf_ranap_PrivateIE_Container_item = -1; /* PrivateIE_Field */
+static int hf_ranap_private_id = -1; /* PrivateIE_ID */
+static int hf_ranap_private_value = -1; /* RANAP_PRIVATE_IES_Value */
+
+/*--- End of included file: packet-ranap-hf.c ---*/
+
+
+/* Initialize the subtree pointers */
+static int ett_ranap;
+
+/*--- Included file: packet-ranap-ett.c ---*/
+
+static gint ett_ranap_RANAP_PDU = -1;
+static gint ett_ranap_InitiatingMessage = -1;
+static gint ett_ranap_SuccessfulOutcome = -1;
+static gint ett_ranap_UnsuccessfulOutcome = -1;
+static gint ett_ranap_Outcome = -1;
+static gint ett_ranap_Dummy_initiating_messages = -1;
+static gint ett_ranap_Dummy_SuccessfulOutcome_messages = -1;
+static gint ett_ranap_Dummy_UnsuccessfulOutcome_messages = -1;
+static gint ett_ranap_Dummy_Outcome_messages = -1;
+static gint ett_ranap_Dymmy_ie_ids = -1;
+static gint ett_ranap_Dymmy_firstvalue_ie_ids = -1;
+static gint ett_ranap_Dymmy_secondvalue_ie_ids = -1;
+static gint ett_ranap_Iu_ReleaseCommand = -1;
+static gint ett_ranap_Iu_ReleaseComplete = -1;
+static gint ett_ranap_RAB_DataVolumeReportItem = -1;
+static gint ett_ranap_RAB_ReleasedItem_IuRelComp = -1;
+static gint ett_ranap_RelocationRequired = -1;
+static gint ett_ranap_RelocationCommand = -1;
+static gint ett_ranap_RAB_RelocationReleaseItem = -1;
+static gint ett_ranap_RAB_DataForwardingItem = -1;
+static gint ett_ranap_RelocationPreparationFailure = -1;
+static gint ett_ranap_RelocationRequest = -1;
+static gint ett_ranap_RAB_SetupItem_RelocReq = -1;
+static gint ett_ranap_UserPlaneInformation = -1;
+static gint ett_ranap_CNMBMSLinkingInformation = -1;
+static gint ett_ranap_JoinedMBMSBearerService_IEs = -1;
+static gint ett_ranap_JoinedMBMSBearerService_IEs_item = -1;
+static gint ett_ranap_RelocationRequestAcknowledge = -1;
+static gint ett_ranap_RAB_SetupItem_RelocReqAck = -1;
+static gint ett_ranap_RAB_FailedItem = -1;
+static gint ett_ranap_RelocationFailure = -1;
+static gint ett_ranap_RelocationCancel = -1;
+static gint ett_ranap_RelocationCancelAcknowledge = -1;
+static gint ett_ranap_SRNS_ContextRequest = -1;
+static gint ett_ranap_RAB_DataForwardingItem_SRNS_CtxReq = -1;
+static gint ett_ranap_SRNS_ContextResponse = -1;
+static gint ett_ranap_RAB_ContextItem = -1;
+static gint ett_ranap_RABs_ContextFailedtoTransferItem = -1;
+static gint ett_ranap_SecurityModeCommand = -1;
+static gint ett_ranap_SecurityModeComplete = -1;
+static gint ett_ranap_SecurityModeReject = -1;
+static gint ett_ranap_DataVolumeReportRequest = -1;
+static gint ett_ranap_RAB_DataVolumeReportRequestItem = -1;
+static gint ett_ranap_DataVolumeReport = -1;
+static gint ett_ranap_RABs_failed_to_reportItem = -1;
+static gint ett_ranap_Reset = -1;
+static gint ett_ranap_ResetAcknowledge = -1;
+static gint ett_ranap_ResetResource = -1;
+static gint ett_ranap_ResetResourceItem = -1;
+static gint ett_ranap_ResetResourceAcknowledge = -1;
+static gint ett_ranap_ResetResourceAckItem = -1;
+static gint ett_ranap_RAB_ReleaseRequest = -1;
+static gint ett_ranap_RAB_ReleaseItem = -1;
+static gint ett_ranap_Iu_ReleaseRequest = -1;
+static gint ett_ranap_RelocationDetect = -1;
+static gint ett_ranap_RelocationComplete = -1;
+static gint ett_ranap_Paging = -1;
+static gint ett_ranap_CommonID = -1;
+static gint ett_ranap_CN_InvokeTrace = -1;
+static gint ett_ranap_CN_DeactivateTrace = -1;
+static gint ett_ranap_LocationReportingControl = -1;
+static gint ett_ranap_LocationReport = -1;
+static gint ett_ranap_InitialUE_Message = -1;
+static gint ett_ranap_DirectTransfer = -1;
+static gint ett_ranap_Overload = -1;
+static gint ett_ranap_ErrorIndication = -1;
+static gint ett_ranap_SRNS_DataForwardCommand = -1;
+static gint ett_ranap_ForwardSRNS_Context = -1;
+static gint ett_ranap_RAB_AssignmentRequest = -1;
+static gint ett_ranap_RAB_SetupOrModifyItemFirst = -1;
+static gint ett_ranap_TransportLayerInformation = -1;
+static gint ett_ranap_RAB_SetupOrModifyItemSecond = -1;
+static gint ett_ranap_RAB_AssignmentResponse = -1;
+static gint ett_ranap_RAB_SetupOrModifiedItem = -1;
+static gint ett_ranap_RAB_ReleasedItem = -1;
+static gint ett_ranap_DataVolumeList = -1;
+static gint ett_ranap_DataVolumeList_item = -1;
+static gint ett_ranap_RAB_QueuedItem = -1;
+static gint ett_ranap_GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item = -1;
+static gint ett_ranap_PrivateMessage = -1;
+static gint ett_ranap_RANAP_RelocationInformation = -1;
+static gint ett_ranap_DirectTransferInformationItem_RANAP_RelocInf = -1;
+static gint ett_ranap_RAB_ContextItem_RANAP_RelocInf = -1;
+static gint ett_ranap_RAB_ModifyRequest = -1;
+static gint ett_ranap_RAB_ModifyItem = -1;
+static gint ett_ranap_LocationRelatedDataRequest = -1;
+static gint ett_ranap_LocationRelatedDataResponse = -1;
+static gint ett_ranap_LocationRelatedDataFailure = -1;
+static gint ett_ranap_InformationTransferIndication = -1;
+static gint ett_ranap_InformationTransferConfirmation = -1;
+static gint ett_ranap_InformationTransferFailure = -1;
+static gint ett_ranap_UESpecificInformationIndication = -1;
+static gint ett_ranap_DirectInformationTransfer = -1;
+static gint ett_ranap_UplinkInformationExchangeRequest = -1;
+static gint ett_ranap_UplinkInformationExchangeResponse = -1;
+static gint ett_ranap_UplinkInformationExchangeFailure = -1;
+static gint ett_ranap_MBMSSessionStart = -1;
+static gint ett_ranap_MBMSSessionStartResponse = -1;
+static gint ett_ranap_MBMSSessionStartFailure = -1;
+static gint ett_ranap_MBMSSessionUpdate = -1;
+static gint ett_ranap_MBMSSessionUpdateResponse = -1;
+static gint ett_ranap_MBMSSessionUpdateFailure = -1;
+static gint ett_ranap_MBMSSessionStop = -1;
+static gint ett_ranap_MBMSSessionStopResponse = -1;
+static gint ett_ranap_MBMSUELinkingRequest = -1;
+static gint ett_ranap_LeftMBMSBearerService_IEs = -1;
+static gint ett_ranap_LeftMBMSBearerService_IEs_item = -1;
+static gint ett_ranap_MBMSUELinkingResponse = -1;
+static gint ett_ranap_UnsuccessfulLinking_IEs = -1;
+static gint ett_ranap_UnsuccessfulLinking_IEs_item = -1;
+static gint ett_ranap_MBMSRegistrationRequest = -1;
+static gint ett_ranap_MBMSRegistrationResponse = -1;
+static gint ett_ranap_MBMSRegistrationFailure = -1;
+static gint ett_ranap_MBMSCNDe_RegistrationRequest = -1;
+static gint ett_ranap_MBMSCNDe_RegistrationResponse = -1;
+static gint ett_ranap_MBMSRABEstablishmentIndication = -1;
+static gint ett_ranap_MBMSRABReleaseRequest = -1;
+static gint ett_ranap_MBMSRABRelease = -1;
+static gint ett_ranap_MBMSRABReleaseFailure = -1;
+static gint ett_ranap_AllocationOrRetentionPriority = -1;
+static gint ett_ranap_Alt_RAB_Parameters = -1;
+static gint ett_ranap_Alt_RAB_Parameter_GuaranteedBitrateInf = -1;
+static gint ett_ranap_Alt_RAB_Parameter_GuaranteedBitrates = -1;
+static gint ett_ranap_Alt_RAB_Parameter_GuaranteedBitrateList = -1;
+static gint ett_ranap_Alt_RAB_Parameter_MaxBitrateInf = -1;
+static gint ett_ranap_Alt_RAB_Parameter_MaxBitrates = -1;
+static gint ett_ranap_Alt_RAB_Parameter_MaxBitrateList = -1;
+static gint ett_ranap_AreaIdentity = -1;
+static gint ett_ranap_Ass_RAB_Parameters = -1;
+static gint ett_ranap_Ass_RAB_Parameter_GuaranteedBitrateList = -1;
+static gint ett_ranap_Ass_RAB_Parameter_MaxBitrateList = -1;
+static gint ett_ranap_AuthorisedPLMNs = -1;
+static gint ett_ranap_AuthorisedPLMNs_item = -1;
+static gint ett_ranap_AuthorisedSNAs = -1;
+static gint ett_ranap_BroadcastAssistanceDataDecipheringKeys = -1;
+static gint ett_ranap_Cause = -1;
+static gint ett_ranap_CellLoadInformation = -1;
+static gint ett_ranap_CellLoadInformationGroup = -1;
+static gint ett_ranap_CriticalityDiagnostics = -1;
+static gint ett_ranap_CriticalityDiagnostics_IE_List = -1;
+static gint ett_ranap_CriticalityDiagnostics_IE_List_item = -1;
+static gint ett_ranap_MessageStructure = -1;
+static gint ett_ranap_MessageStructure_item = -1;
+static gint ett_ranap_CGI = -1;
+static gint ett_ranap_DeltaRAListofIdleModeUEs = -1;
+static gint ett_ranap_NewRAListofIdleModeUEs = -1;
+static gint ett_ranap_RAListwithNoIdleModeUEsAnyMore = -1;
+static gint ett_ranap_EncryptionInformation = -1;
+static gint ett_ranap_EquipmentsToBeTraced = -1;
+static gint ett_ranap_GeographicalArea = -1;
+static gint ett_ranap_GeographicalCoordinates = -1;
+static gint ett_ranap_GA_AltitudeAndDirection = -1;
+static gint ett_ranap_GA_EllipsoidArc = -1;
+static gint ett_ranap_GA_Point = -1;
+static gint ett_ranap_GA_PointWithAltitude = -1;
+static gint ett_ranap_GA_PointWithAltitudeAndUncertaintyEllipsoid = -1;
+static gint ett_ranap_GA_PointWithUnCertainty = -1;
+static gint ett_ranap_GA_PointWithUnCertaintyEllipse = -1;
+static gint ett_ranap_GA_Polygon = -1;
+static gint ett_ranap_GA_Polygon_item = -1;
+static gint ett_ranap_GA_UncertaintyEllipse = -1;
+static gint ett_ranap_GERAN_Cell_ID = -1;
+static gint ett_ranap_GlobalCN_ID = -1;
+static gint ett_ranap_GlobalRNC_ID = -1;
+static gint ett_ranap_IMEIGroup = -1;
+static gint ett_ranap_IMEIList = -1;
+static gint ett_ranap_IMEISVGroup = -1;
+static gint ett_ranap_IMEISVList = -1;
+static gint ett_ranap_InformationRequested = -1;
+static gint ett_ranap_InformationRequestType = -1;
+static gint ett_ranap_InformationTransferType = -1;
+static gint ett_ranap_IntegrityProtectionInformation = -1;
+static gint ett_ranap_InterSystemInformationTransferType = -1;
+static gint ett_ranap_InterSystemInformation_TransparentContainer = -1;
+static gint ett_ranap_IuTransportAssociation = -1;
+static gint ett_ranap_LA_LIST = -1;
+static gint ett_ranap_LA_LIST_item = -1;
+static gint ett_ranap_LAI = -1;
+static gint ett_ranap_LastKnownServiceArea = -1;
+static gint ett_ranap_ListOF_SNAs = -1;
+static gint ett_ranap_ListOfInterfacesToTrace = -1;
+static gint ett_ranap_InterfacesToTraceItem = -1;
+static gint ett_ranap_LocationRelatedDataRequestType = -1;
+static gint ett_ranap_MBMSIPMulticastAddressandAPNRequest = -1;
+static gint ett_ranap_MBMSServiceArea = -1;
+static gint ett_ranap_MBMSServiceAreaList = -1;
+static gint ett_ranap_PagingAreaID = -1;
+static gint ett_ranap_PDP_TypeInformation = -1;
+static gint ett_ranap_PermanentNAS_UE_ID = -1;
+static gint ett_ranap_PermittedEncryptionAlgorithms = -1;
+static gint ett_ranap_PermittedIntegrityProtectionAlgorithms = -1;
+static gint ett_ranap_PLMNs_in_shared_network = -1;
+static gint ett_ranap_PLMNs_in_shared_network_item = -1;
+static gint ett_ranap_PositioningDataSet = -1;
+static gint ett_ranap_PositionData = -1;
+static gint ett_ranap_ProvidedData = -1;
+static gint ett_ranap_RAB_Parameter_GuaranteedBitrateList = -1;
+static gint ett_ranap_RAB_Parameter_MaxBitrateList = -1;
+static gint ett_ranap_RAB_Parameters = -1;
+static gint ett_ranap_RAB_TrCH_Mapping = -1;
+static gint ett_ranap_RAB_TrCH_MappingItem = -1;
+static gint ett_ranap_RAI = -1;
+static gint ett_ranap_RAListofIdleModeUEs = -1;
+static gint ett_ranap_NotEmptyRAListofIdleModeUEs = -1;
+static gint ett_ranap_RAofIdleModeUEs = -1;
+static gint ett_ranap_RequestedMBMSIPMulticastAddressandAPNRequest = -1;
+static gint ett_ranap_MBMSIPMulticastAddressandAPNlist = -1;
+static gint ett_ranap_RequestedMulticastServiceList = -1;
+static gint ett_ranap_Requested_RAB_Parameter_Values = -1;
+static gint ett_ranap_Requested_RAB_Parameter_MaxBitrateList = -1;
+static gint ett_ranap_Requested_RAB_Parameter_GuaranteedBitrateList = -1;
+static gint ett_ranap_RequestType = -1;
+static gint ett_ranap_ResidualBitErrorRatio = -1;
+static gint ett_ranap_RIM_Transfer = -1;
+static gint ett_ranap_RIMRoutingAddress = -1;
+static gint ett_ranap_RNCTraceInformation = -1;
+static gint ett_ranap_SAI = -1;
+static gint ett_ranap_Shared_Network_Information = -1;
+static gint ett_ranap_SDU_ErrorRatio = -1;
+static gint ett_ranap_SDU_FormatInformationParameters = -1;
+static gint ett_ranap_SDU_FormatInformationParameters_item = -1;
+static gint ett_ranap_SDU_Parameters = -1;
+static gint ett_ranap_SDU_Parameters_item = -1;
+static gint ett_ranap_SNA_Access_Information = -1;
+static gint ett_ranap_SourceCellID = -1;
+static gint ett_ranap_SourceID = -1;
+static gint ett_ranap_SourceRNC_ID = -1;
+static gint ett_ranap_SourceRNC_ToTargetRNC_TransparentContainer = -1;
+static gint ett_ranap_SourceUTRANCellID = -1;
+static gint ett_ranap_SRB_TrCH_Mapping = -1;
+static gint ett_ranap_SRB_TrCH_MappingItem = -1;
+static gint ett_ranap_TargetID = -1;
+static gint ett_ranap_TargetRNC_ID = -1;
+static gint ett_ranap_TargetRNC_ToSourceRNC_TransparentContainer = -1;
+static gint ett_ranap_TemporaryUE_ID = -1;
+static gint ett_ranap_TMGI = -1;
+static gint ett_ranap_TracePropagationParameters = -1;
+static gint ett_ranap_TraceRecordingSessionInformation = -1;
+static gint ett_ranap_TrCH_ID = -1;
+static gint ett_ranap_TrCH_ID_List = -1;
+static gint ett_ranap_UE_ID = -1;
+static gint ett_ranap_UESBI_Iu = -1;
+static gint ett_ranap_PrivateIE_ID = -1;
+static gint ett_ranap_ProtocolIE_Container = -1;
+static gint ett_ranap_ProtocolIE_Field = -1;
+static gint ett_ranap_ProtocolIE_ContainerPair = -1;
+static gint ett_ranap_ProtocolIE_FieldPair = -1;
+static gint ett_ranap_ProtocolIE_ContainerList = -1;
+static gint ett_ranap_ProtocolIE_ContainerList15 = -1;
+static gint ett_ranap_ProtocolIE_ContainerList256 = -1;
+static gint ett_ranap_ProtocolIE_ContainerList250 = -1;
+static gint ett_ranap_ProtocolIE_ContainerPairList = -1;
+static gint ett_ranap_ProtocolIE_ContainerPairList256 = -1;
+static gint ett_ranap_ProtocolExtensionContainer = -1;
+static gint ett_ranap_ProtocolExtensionField = -1;
+static gint ett_ranap_PrivateIE_Container = -1;
+static gint ett_ranap_PrivateIE_Field = -1;
+
+/*--- End of included file: packet-ranap-ett.c ---*/
+
+
+
+/* Global variables */
+proto_tree *top_tree;
+guint type_of_message;
+guint32 ProcedureCode;
+guint32 ProtocolIE_ID;
+
+static int dissect_ranap_ies(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree);
+static int dissect_ranap_FirstValue_ies(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree);
+static int dissect_ranap_SecondValue_ies(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree);
+static int dissect_ranap_messages(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree);
+
+/*--- Included file: packet-ranap-fn.c ---*/
+
+/*--- Fields for imported types ---*/
+
+
+
+static const value_string ranap_ProcedureCode_vals[] = {
+ { 0, "id-RAB-Assignment" },
+ { 1, "id-Iu-Release" },
+ { 2, "id-RelocationPreparation" },
+ { 3, "id-RelocationResourceAllocation" },
+ { 4, "id-RelocationCancel" },
+ { 5, "id-SRNS-ContextTransfer" },
+ { 6, "id-SecurityModeControl" },
+ { 7, "id-DataVolumeReport" },
+ { 9, "id-Reset" },
+ { 10, "id-RAB-ReleaseRequest" },
+ { 11, "id-Iu-ReleaseRequest" },
+ { 12, "id-RelocationDetect" },
+ { 13, "id-RelocationComplete" },
+ { 14, "id-Paging" },
+ { 15, "id-CommonID" },
+ { 16, "id-CN-InvokeTrace" },
+ { 17, "id-LocationReportingControl" },
+ { 18, "id-LocationReport" },
+ { 19, "id-InitialUE-Message" },
+ { 20, "id-DirectTransfer" },
+ { 21, "id-OverloadControl" },
+ { 22, "id-ErrorIndication" },
+ { 23, "id-SRNS-DataForward" },
+ { 24, "id-ForwardSRNS-Context" },
+ { 25, "id-privateMessage" },
+ { 26, "id-CN-DeactivateTrace" },
+ { 27, "id-ResetResource" },
+ { 28, "id-RANAP-Relocation" },
+ { 29, "id-RAB-ModifyRequest" },
+ { 30, "id-LocationRelatedData" },
+ { 31, "id-InformationTransfer" },
+ { 32, "id-UESpecificInformation" },
+ { 33, "id-UplinkInformationExchange" },
+ { 34, "id-DirectInformationTransfer" },
+ { 35, "id-MBMSSessionStart" },
+ { 36, "id-MBMSSessionUpdate" },
+ { 37, "id-MBMSSessionStop" },
+ { 38, "id-MBMSUELinking" },
+ { 39, "id-MBMSRegistration" },
+ { 40, "id-MBMSCNDe-Registration-Procedure" },
+ { 41, "id-MBMSRABEstablishmentIndication" },
+ { 42, "id-MBMSRABRelease" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_ProcedureCode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 255U, &ProcedureCode, NULL, FALSE);
+
+ if (check_col(pinfo->cinfo, COL_INFO))
+ col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str(ProcedureCode, ranap_ProcedureCode_vals,
+ "unknown message"));
+ return offset;
+}
+static int dissect_procedureCode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ProcedureCode(tvb, offset, pinfo, tree, hf_ranap_procedureCode);
}
-/* sets *offset and *bitoffset to the next byte boundary */
-static void allign(gint *offset, gint *bitoffset)
-{
- if ( *bitoffset != 0 )
- {
- (*offset)++;
- *bitoffset=0;
- }
+
+static const value_string ranap_Criticality_vals[] = {
+ { 0, "reject" },
+ { 1, "ignore" },
+ { 2, "notify" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_Criticality(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 2, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_criticality(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Criticality(tvb, offset, pinfo, tree, hf_ranap_criticality);
+}
+static int dissect_procedureCriticality(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Criticality(tvb, offset, pinfo, tree, hf_ranap_procedureCriticality);
+}
+static int dissect_iECriticality(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Criticality(tvb, offset, pinfo, tree, hf_ranap_iECriticality);
+}
+static int dissect_firstCriticality(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Criticality(tvb, offset, pinfo, tree, hf_ranap_firstCriticality);
+}
+static int dissect_secondCriticality(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Criticality(tvb, offset, pinfo, tree, hf_ranap_secondCriticality);
}
-/* sets *offset and *bitoffset behind the following integer */
-static void
-proceed_perint32(gint *offset, gint *bitoffset, gint length)
-{
- proceed_nbits(offset, bitoffset, 2);
- allign(offset, bitoffset);
- *offset += length;
+
+
+static int
+dissect_ranap_Value(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+
+ offset = dissect_ranap_messages(tvb, offset, pinfo, tree);
+
+
+ return offset;
+}
+static int dissect_value(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Value(tvb, offset, pinfo, tree, hf_ranap_value);
}
-/* extract length field found at offset */
-/* if length field spans more than two bytes -1 is returned and the field is not decoded */
-static guint8
-extract_length(tvbuff_t *tvb, gint offset, gint *length, gint *length_size)
-{
- guint8 tmp_length8;
- guint16 tmp_length16;
-
- tmp_length8 = tvb_get_guint8(tvb, offset);
- if ((tmp_length8 & 0x80) == 0)
- {
- /* length coded in one byte */
- *length = tmp_length8;
- *length_size = 1;
- }
- else
- {
- tmp_length16 = tvb_get_ntohs(tvb, offset);
- if ( ((tmp_length16 & 0x8000) == 0x8000) && ((tmp_length16 & 0x4000) == 0) )
- {
- /* length coded in two bytes */
- *length = tmp_length16 & 0x3FFF;
- *length_size = 2;
- }
- else
- { /* length is coded in more than 2 bytes */
- return (-1);
- }
- }
- return(0);
-}
-
-/* extract the next n bits and return them alligned to the LSB */
-static guint8
-extract_nbits(tvbuff_t *tvb, gint offset, gint bitoffset, gint n)
-{
- guint8 uint_bits;
- guint16 tmp_2bytes;
-
- /* extract value */
- if (bitoffset + n <= 8)
- {
- /* all bits contained in one byte */
- uint_bits = tvb_get_guint8(tvb, offset);
- uint_bits <<= bitoffset; /* remove bitoffset */
- uint_bits >>= 8-n; /* allign to LSB */
- }
- else
- {
- /* bits contained within 2 bytes */
- tmp_2bytes = tvb_get_ntohs(tvb, offset);
- tmp_2bytes <<= bitoffset; /* remove bitoffset */
- uint_bits = tmp_2bytes >> ( 8 + (8-n)); /* allign to LSB */
- }
-
- return(uint_bits);
-}
-
-
-/* extract an integer with 2bit length field and return the int value*/
-static guint32
-extract_int32(tvbuff_t *tvb, gint offset, gint bitoffset, gint *length)
-{
- guint16 tmp_2byte;
- guint32 result = 0;
+static const per_sequence_t InitiatingMessage_sequence[] = {
+ { "procedureCode" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_procedureCode },
+ { "criticality" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_criticality },
+ { "value" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_value },
+ { NULL, 0, 0, NULL }
+};
- tmp_2byte = tvb_get_ntohs(tvb, offset);
+static int
+dissect_ranap_InitiatingMessage(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_InitiatingMessage, InitiatingMessage_sequence);
+
+ return offset;
+}
+static int dissect_initiatingMessage(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_InitiatingMessage(tvb, offset, pinfo, tree, hf_ranap_initiatingMessage);
+}
- tmp_2byte <<= bitoffset; /* remove bitoffset */
- *length = tmp_2byte >> (6 + 8); /* allign 2bit length field to LSB */
- (*length)++; /* now we have the length of the int value */
- proceed_nbits(&offset, &bitoffset, 2);
- allign(&offset, &bitoffset);
+static const per_sequence_t SuccessfulOutcome_sequence[] = {
+ { "procedureCode" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_procedureCode },
+ { "criticality" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_criticality },
+ { "value" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_value },
+ { NULL, 0, 0, NULL }
+};
- switch (*length)
- {
- case 1:
- result = tvb_get_guint8(tvb, offset);
- break;
- case 2:
- result = tvb_get_ntohs(tvb, offset);
- break;
- case 3:
- result = tvb_get_ntoh24(tvb, offset);
- break;
- case 4:
- result = tvb_get_ntohl(tvb, offset);
- break;
- }
+static int
+dissect_ranap_SuccessfulOutcome(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_SuccessfulOutcome, SuccessfulOutcome_sequence);
- return(result);
+ return offset;
+}
+static int dissect_successfulOutcome(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SuccessfulOutcome(tvb, offset, pinfo, tree, hf_ranap_successfulOutcome);
}
-/* return bitmask string looking like "..01 0..." */
-static char *
-bitmaskstr(guint bitoffset, guint bitlength, guint16 value, guint *length)
-{
- static char maskstr[20];
- guint i;
-
-
- strcpy(maskstr, " ");
-
- for (i=0; i<16; i++)
- {
- if ( i < bitoffset || i > bitoffset+bitlength-1 )
- {
- /* i is outside extracted bitfield */
- maskstr[i + i/4] = '.';
- }
- else
- { /* i is inside extracted bitfield */
- if ( ((0x8000 >> i) & value) != 0x0000 )
- {
- /* bit is set */
- maskstr[i + i/4] = '1';
- }
- else
- {
- /* bit is not set */
- maskstr[i + i/4] = '0';
- }
- }
- }
- if (bitoffset + bitlength <= 8)
- {
- /* bitfield is located within first byte only */
- maskstr[9] = '\0';
- *length = 1;
- }
- else
- {
- /* bitfield is located within first & second byte */
- maskstr[19] = '\0';
- *length = 2;
- }
-
- return(maskstr);
-}
-
-/* add bitstring */
-static proto_item *
-proto_tree_add_bitstring(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint offset,
- gint bitoffset, gint bitlength)
-{
- guint16 read_2bytes;
- guint16 alligned_2bytes;
- guint8 one_byte;
- char *maskstr;
- char *maskstr_buf;
- guint length;
- int i;
- guint8 bitstr[128];
- char *buf;
- header_field_info *hf_info_p;
- gint byte_span;
- gint initial_offset = offset;
-
- memset(bitstr, 0, 128);
-
- maskstr_buf=ep_alloc(56);
- maskstr_buf[0]=0;
-
- buf=ep_alloc(256);
- buf[0]=0;
-
- /* create bitmask string for first byte */
- read_2bytes = tvb_get_ntohs(tvb, offset);
- maskstr = bitmaskstr(bitoffset, (bitoffset+bitlength >8) ? 8-bitoffset : bitlength, read_2bytes, &length);
- if (bitoffset+bitlength > 8)
- {
- g_snprintf(maskstr_buf, 56, "%s + %d Bits = ", maskstr, bitlength - (8-bitoffset));
- }
- else
- {
- g_snprintf(maskstr_buf, 56, "%s = ", maskstr);
- }
-
-
- /* print all but the last byte to buf */
- byte_span = (bitoffset + bitlength + 7) / 8;
- for (i=0; i < byte_span - 1; i++, offset++)
- {
- read_2bytes = tvb_get_ntohs(tvb, offset);
- alligned_2bytes = read_2bytes << bitoffset; /* remove bitoffset */
- one_byte = alligned_2bytes >> 8; /* move to low byte */
-
- bitstr[i]=one_byte;
- g_snprintf(buf+2*i, 256-2*i, "%02X", one_byte);
- }
-
- /* add last byte if it contains bits which have not yet been shifted in */
- if ( ((bitlength + 7) / 8 ) == byte_span )
- {
- read_2bytes = tvb_get_ntohs(tvb, offset);
- alligned_2bytes = read_2bytes << bitoffset; /* remove bitoffset */
- one_byte = alligned_2bytes >> 8; /* move to low byte */
- one_byte >>= (8 - (bitlength%8)); /*cut off surplus bits */
- one_byte <<= (8 - (bitlength%8)); /* allign to MSB in low byte*/
-
- bitstr[i]=one_byte;
- g_snprintf(buf+2*i, 256-2*i, "%02X", one_byte);
- }
-
- /* get header field info */
- hf_info_p = proto_registrar_get_nth(hfindex);
-
-
- return ( proto_tree_add_bytes_format(tree, hfindex, tvb, initial_offset,
- byte_span , bitstr, "%s %s: %s", maskstr_buf, hf_info_p->name, buf) );
-
-}
-
-
-/* add unsigned int, 1-8 bits long */
-static proto_item *
-proto_tree_add_uint_bits(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint offset,
- gint bitoffset, gint bitlength, gint min)
-{
- guint8 uint_bits;
- guint16 read_2bytes, alligned_2bytes;
- char *maskstr;
- guint length;
- header_field_info *hf_info_p;
-
-
- /* extract value */
- if (bitoffset + bitlength <= 8)
- {
- /* all bits contained in one byte */
- uint_bits = tvb_get_guint8(tvb, offset);
- read_2bytes = uint_bits;
- read_2bytes <<= 8;
- }
- else
- {
- /* bits contained within 2 bytes */
- read_2bytes = tvb_get_ntohs(tvb, offset);
- }
- alligned_2bytes = read_2bytes << bitoffset; /* remove bitoffset */
- uint_bits = alligned_2bytes >> ( 8 + (8-bitlength)); /* allign to LSB */
-
- uint_bits += min;
-
- /* create bitmask string */
- maskstr = bitmaskstr(bitoffset, bitlength, read_2bytes, &length);
-
- /* get header field info */
- hf_info_p = proto_registrar_get_nth(hfindex);
-
- if (hf_info_p->strings != NULL)
- {
- /* string representation for decoded header field present */
- return ( proto_tree_add_uint_format(tree, hfindex, tvb, offset,
- length, uint_bits, "%s = %s: %s (%d)", maskstr, hf_info_p->name,
- val_to_str(uint_bits, hf_info_p->strings, "%d"), uint_bits) );
- }
- else
- {
- /* no string representation */
- return ( proto_tree_add_uint_format(tree, hfindex, tvb, offset,
- length, uint_bits, "%s = %s: %d", maskstr, hf_info_p->name, uint_bits) );
- }
-}
-
-/* add PER encoded integer (maximum length of value: 4 bytes) */
-static proto_item *
-proto_tree_add_PERint32(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint offset,
- gint bitoffset, gint *length, gint min)
-{
- guint32 value;
- guint16 tmp_2bytes;
- char *maskstr;
- guint length_size;
- header_field_info *hf_info_p;
+static const per_sequence_t UnsuccessfulOutcome_sequence[] = {
+ { "procedureCode" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_procedureCode },
+ { "criticality" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_criticality },
+ { "value" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_value },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_UnsuccessfulOutcome(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_UnsuccessfulOutcome, UnsuccessfulOutcome_sequence);
- /* get value */
- value = extract_int32(tvb, offset, bitoffset, length);
- value += min;
+ return offset;
+}
+static int dissect_unsuccessfulOutcome(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_UnsuccessfulOutcome(tvb, offset, pinfo, tree, hf_ranap_unsuccessfulOutcome);
+}
- /* create bitmask string for 2 bit length field */
- tmp_2bytes = tvb_get_ntohs(tvb, offset);
- maskstr = bitmaskstr(bitoffset, 2, tmp_2bytes, &length_size);
- /* get header field info */
- hf_info_p = proto_registrar_get_nth(hfindex);
+static const per_sequence_t Outcome_sequence[] = {
+ { "procedureCode" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_procedureCode },
+ { "criticality" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_criticality },
+ { "value" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_value },
+ { NULL, 0, 0, NULL }
+};
- return ( proto_tree_add_uint_format(tree, hfindex, tvb, offset,
- (*length) + length_size, value,
- "%s + %d Bytes = %s: %d", maskstr, *length, hf_info_p->name, value) );
+static int
+dissect_ranap_Outcome(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Outcome, Outcome_sequence);
+
+ return offset;
+}
+static int dissect_outcome(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Outcome(tvb, offset, pinfo, tree, hf_ranap_outcome);
}
+static const value_string ranap_RANAP_PDU_vals[] = {
+ { 0, "initiatingMessage" },
+ { 1, "successfulOutcome" },
+ { 2, "unsuccessfulOutcome" },
+ { 3, "outcome" },
+ { 0, NULL }
+};
+
+static const per_choice_t RANAP_PDU_choice[] = {
+ { 0, "initiatingMessage" , ASN1_EXTENSION_ROOT , dissect_initiatingMessage },
+ { 1, "successfulOutcome" , ASN1_EXTENSION_ROOT , dissect_successfulOutcome },
+ { 2, "unsuccessfulOutcome" , ASN1_EXTENSION_ROOT , dissect_unsuccessfulOutcome },
+ { 3, "outcome" , ASN1_EXTENSION_ROOT , dissect_outcome },
+ { 0, NULL, 0, NULL }
+};
-/*****************************************************************************/
-/* */
-/* Dissecting Functions for single parameters */
-/* */
-/*****************************************************************************/
static int
-dissect_iE_Extension(tvbuff_t *tvb, proto_tree *tree, gint *offset, gint *bitoffset, const char *description)
-{
- proto_item *ext_item = NULL;
- proto_tree *ext_tree = NULL;
- guint16 number_of_extFields;
- gint number_of_octets = 0;
- gint number_of_octets_size = 0;
- int i;
-
- allign(offset, bitoffset);
-
- /* create subtree for iE_Extension */
- if (tree)
- {
- ext_item = proto_tree_add_text(tree, tvb, *offset, 0, "%s iE-Extensions", description);
- ext_tree = proto_item_add_subtree(ext_item, ett_ranap_iE_Extension);
- }
-
- /* number of extension fields */
- number_of_extFields = tvb_get_ntohs(tvb, *offset) + 1;
- if (ext_tree)
- {
- proto_tree_add_uint(ext_tree, hf_ranap_number_of_ProtocolExtensionFields,
- tvb, *offset, 2, number_of_extFields);
- }
-
- *offset += 2;
-
- /* for each extension field */
- for (i=1; i <= number_of_extFields; i++)
- {
- /* add fields to ie subtee */
- /* Extension Field ID */
- if (ext_tree)
- {
- proto_tree_add_item(ext_tree, hf_ranap_ext_field_id, tvb,
- *offset, IE_ID_LENGTH, FALSE);
- }
- *offset += IE_ID_LENGTH;
-
- /* criticality */
- if (ext_tree)
- {
- proto_tree_add_uint_bits(ext_tree, hf_ranap_ext_field_criticality, tvb,
- *offset, *bitoffset, 2, 0);
- }
- proceed_nbits(offset, bitoffset, 2);
-
- /* number of octets in the IE */
- allign(offset, bitoffset);
- if (0 == extract_length(tvb, *offset, &number_of_octets, &number_of_octets_size))
- {
- if (ext_tree)
- {
- proto_tree_add_uint(ext_tree, hf_ranap_ext_field_number_of_octets, tvb,
- *offset, number_of_octets_size, number_of_octets);
- }
- }
- else
- {
- /* decoding is not supported */
- if (ext_tree)
- {
- proto_tree_add_text(ext_tree, tvb, *offset, 0,
- "Number of Octets greater than 0x3FFF, dissection not supported");
- }
- return(-1);
- }
-
- *offset += number_of_octets_size;
- if (ext_tree)
- {
- proto_tree_add_item(ext_tree, hf_ranap_extension_field, tvb,
- *offset, number_of_octets, FALSE);
-
- }
-
- *offset += number_of_octets;
- }
-
- return(0);
-}
-
-
-static int
-dissect_userPlaneInformation(tvbuff_t *tvb, proto_tree *tree, gint *offset, gint *bitoffset)
-{
- int extension_present;
- int iE_Extensions_present;
- int tmp_extension_present;
+dissect_ranap_RANAP_PDU(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RANAP_PDU, RANAP_PDU_choice,
+ &type_of_message);
- /* protocol_extension present ? */
- extension_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proceed_nbits(offset, bitoffset, 1);
+ return offset;
+}
- /* iE_Extensions present ? */
- iE_Extensions_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proceed_nbits(offset, bitoffset, 1);
- /* userPlaneMode */
- tmp_extension_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proceed_nbits(offset, bitoffset, 1);
+static const value_string ranap_ProtocolIE_ID_vals[] = {
+ { 0, "id-AreaIdentity" },
+ { 3, "id-CN-DomainIndicator" },
+ { 4, "id-Cause" },
+ { 5, "id-ChosenEncryptionAlgorithm" },
+ { 6, "id-ChosenIntegrityProtectionAlgorithm" },
+ { 7, "id-ClassmarkInformation2" },
+ { 8, "id-ClassmarkInformation3" },
+ { 9, "id-CriticalityDiagnostics" },
+ { 10, "id-DL-GTP-PDU-SequenceNumber" },
+ { 11, "id-EncryptionInformation" },
+ { 12, "id-IntegrityProtectionInformation" },
+ { 13, "id-IuTransportAssociation" },
+ { 14, "id-L3-Information" },
+ { 15, "id-LAI" },
+ { 16, "id-NAS-PDU" },
+ { 17, "id-NonSearchingIndication" },
+ { 18, "id-NumberOfSteps" },
+ { 19, "id-OMC-ID" },
+ { 20, "id-OldBSS-ToNewBSS-Information" },
+ { 21, "id-PagingAreaID" },
+ { 22, "id-PagingCause" },
+ { 23, "id-PermanentNAS-UE-ID" },
+ { 24, "id-RAB-ContextItem" },
+ { 25, "id-RAB-ContextList" },
+ { 26, "id-RAB-DataForwardingItem" },
+ { 27, "id-RAB-DataForwardingItem-SRNS-CtxReq" },
+ { 28, "id-RAB-DataForwardingList" },
+ { 29, "id-RAB-DataForwardingList-SRNS-CtxReq" },
+ { 30, "id-RAB-DataVolumeReportItem" },
+ { 31, "id-RAB-DataVolumeReportList" },
+ { 32, "id-RAB-DataVolumeReportRequestItem" },
+ { 33, "id-RAB-DataVolumeReportRequestList" },
+ { 34, "id-RAB-FailedItem" },
+ { 35, "id-RAB-FailedList" },
+ { 36, "id-RAB-ID" },
+ { 37, "id-RAB-QueuedItem" },
+ { 38, "id-RAB-QueuedList" },
+ { 39, "id-RAB-ReleaseFailedList" },
+ { 40, "id-RAB-ReleaseItem" },
+ { 41, "id-RAB-ReleaseList" },
+ { 42, "id-RAB-ReleasedItem" },
+ { 43, "id-RAB-ReleasedList" },
+ { 44, "id-RAB-ReleasedList-IuRelComp" },
+ { 45, "id-RAB-RelocationReleaseItem" },
+ { 46, "id-RAB-RelocationReleaseList" },
+ { 47, "id-RAB-SetupItem-RelocReq" },
+ { 48, "id-RAB-SetupItem-RelocReqAck" },
+ { 49, "id-RAB-SetupList-RelocReq" },
+ { 50, "id-RAB-SetupList-RelocReqAck" },
+ { 51, "id-RAB-SetupOrModifiedItem" },
+ { 52, "id-RAB-SetupOrModifiedList" },
+ { 53, "id-RAB-SetupOrModifyItem" },
+ { 54, "id-RAB-SetupOrModifyList" },
+ { 55, "id-RAC" },
+ { 56, "id-RelocationType" },
+ { 57, "id-RequestType" },
+ { 58, "id-SAI" },
+ { 59, "id-SAPI" },
+ { 60, "id-SourceID" },
+ { 61, "id-SourceRNC-ToTargetRNC-TransparentContainer" },
+ { 62, "id-TargetID" },
+ { 63, "id-TargetRNC-ToSourceRNC-TransparentContainer" },
+ { 64, "id-TemporaryUE-ID" },
+ { 65, "id-TraceReference" },
+ { 66, "id-TraceType" },
+ { 67, "id-TransportLayerAddress" },
+ { 68, "id-TriggerID" },
+ { 69, "id-UE-ID" },
+ { 70, "id-UL-GTP-PDU-SequenceNumber" },
+ { 71, "id-RAB-FailedtoReportItem" },
+ { 72, "id-RAB-FailedtoReportList" },
+ { 75, "id-KeyStatus" },
+ { 76, "id-DRX-CycleLengthCoefficient" },
+ { 77, "id-IuSigConIdList" },
+ { 78, "id-IuSigConIdItem" },
+ { 79, "id-IuSigConId" },
+ { 81, "id-DirectTransferInformationList-RANAP-RelocInf" },
+ { 82, "id-RAB-ContextItem-RANAP-RelocInf" },
+ { 83, "id-RAB-ContextList-RANAP-RelocInf" },
+ { 84, "id-RAB-ContextFailedtoTransferItem" },
+ { 85, "id-RAB-ContextFailedtoTransferList" },
+ { 86, "id-GlobalRNC-ID" },
+ { 87, "id-RAB-ReleasedItem-IuRelComp" },
+ { 88, "id-MessageStructure" },
+ { 89, "id-Alt-RAB-Parameters" },
+ { 90, "id-Ass-RAB-Parameters" },
+ { 91, "id-RAB-ModifyList" },
+ { 92, "id-RAB-ModifyItem" },
+ { 93, "id-TypeOfError" },
+ { 94, "id-BroadcastAssistanceDataDecipheringKeys" },
+ { 95, "id-LocationRelatedDataRequestType" },
+ { 96, "id-GlobalCN-ID" },
+ { 97, "id-LastKnownServiceArea" },
+ { 98, "id-SRB-TrCH-Mapping" },
+ { 99, "id-InterSystemInformation-TransparentContainer" },
+ { 100, "id-NewBSS-To-OldBSS-Information" },
+ { 103, "id-SourceRNC-PDCP-context-info" },
+ { 104, "id-InformationTransferID" },
+ { 105, "id-SNA-Access-Information" },
+ { 106, "id-ProvidedData" },
+ { 107, "id-GERAN-BSC-Container" },
+ { 108, "id-GERAN-Classmark" },
+ { 109, "id-GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item" },
+ { 110, "id-GERAN-Iumode-RAB-FailedList-RABAssgntResponse" },
+ { 111, "id-VerticalAccuracyCode" },
+ { 112, "id-ResponseTime" },
+ { 113, "id-PositioningPriority" },
+ { 114, "id-ClientType" },
+ { 115, "id-LocationRelatedDataRequestTypeSpecificToGERANIuMode" },
+ { 116, "id-SignallingIndication" },
+ { 117, "id-hS-DSCH-MAC-d-Flow-ID" },
+ { 118, "id-UESBI-Iu" },
+ { 119, "id-PositionData" },
+ { 120, "id-PositionDataSpecificToGERANIuMode" },
+ { 121, "id-CellLoadInformationGroup" },
+ { 122, "id-AccuracyFulfilmentIndicator" },
+ { 123, "id-InformationTransferType" },
+ { 124, "id-TraceRecordingSessionInformation" },
+ { 125, "id-TracePropagationParameters" },
+ { 126, "id-InterSystemInformationTransferType" },
+ { 127, "id-SelectedPLMN-ID" },
+ { 128, "id-RedirectionCompleted" },
+ { 129, "id-RedirectionIndication" },
+ { 130, "id-NAS-SequenceNumber" },
+ { 131, "id-RejectCauseValue" },
+ { 132, "id-APN" },
+ { 133, "id-CNMBMSLinkingInformation" },
+ { 134, "id-DeltaRAListofIdleModeUEs" },
+ { 135, "id-FrequenceLayerConvergenceFlag" },
+ { 136, "id-InformationExchangeID" },
+ { 137, "id-InformationExchangeType" },
+ { 138, "id-InformationRequested" },
+ { 139, "id-InformationRequestType" },
+ { 140, "id-IPMulticastAddress" },
+ { 141, "id-JoinedMBMSBearerServicesList" },
+ { 142, "id-LeftMBMSBearerServicesList" },
+ { 143, "id-MBMSBearerServiceType" },
+ { 144, "id-MBMSCNDe-Registration" },
+ { 145, "id-MBMSServiceArea" },
+ { 146, "id-MBMSSessionDuration" },
+ { 147, "id-MBMSSessionIdentity" },
+ { 148, "id-PDP-TypeInformation" },
+ { 149, "id-RAB-Parameters" },
+ { 150, "id-RAListofIdleModeUEs" },
+ { 151, "id-MBMSRegistrationRequestType" },
+ { 152, "id-SessionUpdateID" },
+ { 153, "id-TMGI" },
+ { 154, "id-TransportLayerInformation" },
+ { 155, "id-UnsuccessfulLinkingList" },
+ { 156, "id-MBMSLinkingInformation" },
+ { 157, "id-MBMSSessionRepetitionNumber" },
+ { 158, "id-AlternativeRABConfiguration" },
+ { 159, "id-AlternativeRABConfigurationRequest" },
+ { 160, "id-E-DCH-MAC-d-Flow-ID" },
+ { 0, NULL }
+};
- proto_tree_add_uint_bits(tree, hf_ranap_userPlaneMode, tvb, *offset,
- *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
- /* uP-ModeVersions */
- proto_tree_add_bitstring(tree, hf_ranap_uP_ModeVersions, tvb, *offset,
- *bitoffset, 16);
- proceed_nbits(offset, bitoffset, 16);
+static int
+dissect_ranap_ProtocolIE_ID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 65535U, &ProtocolIE_ID, NULL, FALSE);
- /* iE-Extensions */
- if (iE_Extensions_present)
- {
- return(dissect_iE_Extension(tvb, tree, offset, bitoffset, "UserPlaneInformation"));
- }
- return(0);
+ return offset;
+}
+static int dissect_iE_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ProtocolIE_ID(tvb, offset, pinfo, tree, hf_ranap_iE_ID);
+}
+static int dissect_id(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ProtocolIE_ID(tvb, offset, pinfo, tree, hf_ranap_id);
}
static int
-dissect_sDU_Parameters(tvbuff_t *tvb, proto_tree *ie_tree, gint *offset, gint *bitoffset)
-{
- proto_item *sDU_item = NULL;
- proto_tree *sDU_tree = NULL;
- proto_item *optionals_item = NULL;
- proto_tree *optionals_tree = NULL;
- int ret;
- int extension_present;
- int sDU_ErrorRatio_present;
- int sDU_FormatInformationParameters_present;
- int iE_Extensions_present;
- int sDU_ErrorRatio_iE_Extensions_present;
- int residualBitErrorRatio_iE_Extensions_present;
- gint length;
- gint number_of_sDU_FormatInformationParameters;
- int sDU_FormatInformationParameters_extension_present;
- int subflowSDU_Size_present;
- int rAB_SubflowCombinationBitRate_present;
- int sDU_FormatInformationParameters_iE_Extensions_present;
- gint i;
-
- /* create subtree for sDU_Parameters */
- sDU_item = proto_tree_add_text(ie_tree, tvb, *offset, 0,
- "sDU Parameters");
- sDU_tree = proto_item_add_subtree(sDU_item, ett_ranap_sDU);
-
- /* create subtree for extension/optional/default bitmap */
- optionals_item = proto_tree_add_text(sDU_tree, tvb, *offset, 1,
- "sDU_Parameters Extension/Optional/Default bitmap");
- optionals_tree = proto_item_add_subtree(optionals_item, ett_ranap_optionals);
-
- /* protocol_extension present ? */
- extension_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_ie_protocol_extension, tvb,
- *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
- /* sDU_ErrorRatio present ? */
- sDU_ErrorRatio_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_sDU_ErrorRatio_present, tvb,
- *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
- /* sDU_FormatInformationParameters present ? */
- sDU_FormatInformationParameters_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_sDU_FormatInformationParameters_present, tvb,
- *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
- /* iE_Extensions present ? */
- iE_Extensions_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_iE_Extensions_present, tvb,
- *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
-
- /* sDU_ErrorRatio */
- if (sDU_ErrorRatio_present)
- {
- sDU_ErrorRatio_iE_Extensions_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proceed_nbits(offset, bitoffset, 1);
-
- proto_tree_add_uint_bits(sDU_tree, hf_ranap_sDU_ErrorRatio_mantissa, tvb, *offset,
- *bitoffset, 4, 1);
- proceed_nbits(offset, bitoffset, 4);
-
- proto_tree_add_uint_bits(sDU_tree, hf_ranap_sDU_ErrorRatio_exponent, tvb, *offset,
- *bitoffset, 3, 1);
- proceed_nbits(offset, bitoffset, 3);
-
- if (sDU_ErrorRatio_iE_Extensions_present)
- {
- if ((ret=dissect_iE_Extension(tvb, sDU_tree, offset, bitoffset, "sDU_ErrorRatio")) != 0)
- return (ret);
- }
- }
-
- /* residualBitErrorRatio */
- residualBitErrorRatio_iE_Extensions_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proceed_nbits(offset, bitoffset, 1);
-
- proto_tree_add_uint_bits(sDU_tree, hf_ranap_residualBitErrorRatio_mantissa, tvb, *offset,
- *bitoffset, 4, 1);
- proceed_nbits(offset, bitoffset, 4);
-
- proto_tree_add_uint_bits(sDU_tree, hf_ranap_sDU_ErrorRatio_exponent, tvb, *offset,
- *bitoffset, 3, 1);
- proceed_nbits(offset, bitoffset, 3);
-
-
- if (residualBitErrorRatio_iE_Extensions_present)
- {
- if ((ret=dissect_iE_Extension(tvb, sDU_tree, offset, bitoffset, "residualBitErrorRatio")) != 0)
- return(ret);
- }
-
-
- /* deliveryOfErroneousSDU */
- proto_tree_add_uint_bits(sDU_tree, hf_ranap_deliveryOfErroneousSDU, tvb, *offset,
- *bitoffset, 2, 0);
- proceed_nbits(offset, bitoffset, 2);
-
-
- /* sDU_FormatInformationParameters */
- if (sDU_FormatInformationParameters_present)
- {
- number_of_sDU_FormatInformationParameters = extract_nbits(tvb, *offset, *bitoffset, 6) + 1;
- proceed_nbits(offset, bitoffset, 6);
-
- for (i=1; i<= number_of_sDU_FormatInformationParameters; i++)
- {
- /* create subtree for extension/optional/default bitmap */
- optionals_item = proto_tree_add_text(sDU_tree, tvb, *offset, 1,
- "sDU_FormatInformationParameters Extension/Optional/Default bitmap");
- optionals_tree = proto_item_add_subtree(optionals_item, ett_ranap_optionals);
-
- /* protocol extension present ? */
- sDU_FormatInformationParameters_extension_present =
- extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_ie_protocol_extension, tvb,
- *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
- /* subflowSDU_Size present ? */
- subflowSDU_Size_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_subflowSDU_Size_present, tvb,
- *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
- /* rAB_SubflowCombinationBitRate present ? */
- rAB_SubflowCombinationBitRate_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_rAB_SubflowCombinationBitRate_present, tvb,
- *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
- /* ie_Extension present ? */
- sDU_FormatInformationParameters_iE_Extensions_present =
- extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_iE_Extensions_present, tvb,
- *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
- if (subflowSDU_Size_present)
- {
- allign(offset, bitoffset);
- proto_tree_add_item(sDU_tree, hf_ranap_subflowSDU_Size,
- tvb, *offset, subflowSDU_Size_LENGTH, FALSE);
- offset += subflowSDU_Size_LENGTH;
- }
-
- if (rAB_SubflowCombinationBitRate_present)
- {
- proto_tree_add_PERint32(sDU_tree, hf_ranap_rAB_SubflowCombinationBitRate,
- tvb, *offset, *bitoffset, &length, 0);
- proceed_perint32(offset, bitoffset, length);
- }
-
- if (sDU_FormatInformationParameters_iE_Extensions_present)
- {
- if ((ret=dissect_iE_Extension(tvb, sDU_tree, offset, bitoffset,
- "sDU_FormatInformationParameters" )) != 0)
- return (ret);
- }
- }
- }
-
- if (extension_present)
- {
- /* extended sequence */
- /* decoding is not supported */
- proto_tree_add_text(ie_tree, tvb, *offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "Protocol extension for sDU_FormatInformationParameters present, dissection not supported");
- return(-1);
- }
-
- return (0);
-
-}
-
-
-static int
-dissect_rAB_Parameters(tvbuff_t *tvb, proto_tree *ie_tree, gint *offset, gint *bitoffset)
-{
- guint8 tmp_byte;
- proto_item *rab_item = NULL;
- proto_tree *rab_tree = NULL;
- proto_item *optionals_item = NULL;
- proto_tree *optionals_tree = NULL;
- proto_item *prio_item = NULL;
- proto_tree *prio_tree = NULL;
- int ret;
- int extension_present;
- int tmp_extension_present;
- int guaranteedBitRate_present;
- int transferDelay_present;
- int trafficHandlingPriority_present;
- int allocationOrRetentionPriority_present;
- int sourceStatisticsDescriptor_present;
- int relocationRequirement_present;
- int iE_Extensions_present;
- int tmp_iE_Extensions_present;
- int i;
- gint length;
-
- /* create subtree for rAB_Parameters */
- rab_item = proto_tree_add_text(ie_tree, tvb, *offset, 0,
- "rAB_Parameters");
- rab_tree = proto_item_add_subtree(rab_item, ett_ranap_rAB_Parameters);
-
- /* create subtree for extension/optional/default bitmap */
- optionals_item = proto_tree_add_text(rab_tree, tvb, *offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "rAB_Parameters Extension/Optional/Default bitmap");
- optionals_tree = proto_item_add_subtree(optionals_item, ett_ranap_optionals);
-
- /* protocol extension present ? */
- extension_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_ie_protocol_extension, tvb,
- *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
- /* guaranteedBitRate present ? */
- guaranteedBitRate_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_guaranteedBitRate_present,
- tvb, *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
- /* transferDelay present ? */
- transferDelay_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_transferDelay_present,
- tvb, *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
- /* trafficHandlingPriority present ? */
- trafficHandlingPriority_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_trafficHandlingPriority_present,
- tvb, *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
- /* allocationOrRetentionPriority present ? */
- allocationOrRetentionPriority_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_allocationOrRetentionPriority_present,
- tvb, *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
- /* sourceStatisticsDescriptor present ? */
- sourceStatisticsDescriptor_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_sourceStatisticsDescriptor_present,
- tvb, *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
- /* relocationRequirement present ? */
- relocationRequirement_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_relocationRequirement_present,
- tvb, *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
- /* iE-Extensions present ? */
- iE_Extensions_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_iE_Extensions_present,
- tvb, *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
-
- /* trafficClass */
- tmp_extension_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proceed_nbits(offset, bitoffset, 1);
-
- proto_tree_add_uint_bits(rab_tree, hf_ranap_trafficClass,
- tvb, *offset, *bitoffset, 2, 0);
- proceed_nbits(offset, bitoffset, 2);
-
- if (tmp_extension_present)
- {
- /* decoding is not supported */
- proto_tree_add_text(rab_tree, tvb, *offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "Protocol extension for trafficClass present, dissection not supported");
- return(-1);
- }
-
-
- /* rAB-AsymmetryIndicator */
- tmp_extension_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proceed_nbits(offset, bitoffset, 1);
-
- proto_tree_add_uint_bits(rab_tree, hf_ranap_rAB_AsymmetryIndicator,
- tvb, *offset, *bitoffset, 2, 0);
- proceed_nbits(offset, bitoffset, 2);
-
- if (tmp_extension_present)
- {
- /* decoding is not supported */
- proto_tree_add_text(rab_tree, tvb, *offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "Protocol extension for rAB-AsymmetryIndicator present, dissection not supported");
- return(-1);
- }
-
-
- /* maxBitrate */
- tmp_byte = extract_nbits(tvb, *offset, *bitoffset, 1) +1 ; /*sequence 1..2 */
- proceed_nbits(offset, bitoffset, 1);
-
- for (i=1; i<= tmp_byte; i++)
- {
- proto_tree_add_PERint32(rab_tree, hf_ranap_maxBitrate,
- tvb, *offset, *bitoffset, &length, 1);
- proceed_perint32(offset, bitoffset, length);
- }
-
-
- /* guaranteedBitRate */
- if (guaranteedBitRate_present)
- {
- tmp_byte = extract_nbits(tvb, *offset, *bitoffset, 1) +1 ; /*sequence 1..2 */
- proceed_nbits(offset, bitoffset, 1);
-
- for (i=1; i<= tmp_byte; i++)
- {
- proto_tree_add_PERint32(rab_tree, hf_ranap_guaranteedBitrate,
- tvb, *offset, *bitoffset, &length, 0);
- proceed_perint32(offset, bitoffset, length);
- }
- }
-
- /* deliveryOrder */
- proto_tree_add_uint_bits(rab_tree, hf_ranap_deliveryOrder, tvb, *offset,
- *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
-
- /* maxSDU-Size */
- allign(offset, bitoffset);
- proto_tree_add_item(rab_tree, hf_ranap_maxSDU_Size,
- tvb, *offset, maxSDU_Size_LENGTH, FALSE);
- *offset += maxSDU_Size_LENGTH;
-
- /* sDU-Parameters */
- tmp_byte = extract_nbits(tvb, *offset, *bitoffset, 3) + 1; /*sequence 1..7 */
- proceed_nbits(offset, bitoffset, 3);
- for (i=1; i<= tmp_byte; i++)
- {
- if ((ret=dissect_sDU_Parameters(tvb, rab_tree, offset, bitoffset))!=0) return(ret);
- }
-
- /* transferDelay */
- if (transferDelay_present)
- {
- allign(offset, bitoffset);
- proto_tree_add_item(rab_tree, hf_ranap_transferDelay,
- tvb, *offset, transferDelay_LENGTH, FALSE);
- *offset += transferDelay_LENGTH;
- }
-
-
- /* trafficHandlingPriority */
- if (trafficHandlingPriority_present)
- {
- proto_tree_add_uint_bits(rab_tree, hf_ranap_trafficHandlingPriority, tvb, *offset,
- *bitoffset, 4, 0);
- proceed_nbits(offset, bitoffset, 4);
- }
-
- /* allocationOrRetentionPriority */
- if (allocationOrRetentionPriority_present)
- {
- /* create subtree for */
- prio_item = proto_tree_add_text(rab_tree, tvb, *offset, 0,
- "allocationOrRetentionPriority");
- prio_tree = proto_item_add_subtree(prio_item, ett_ranap_allocationOrRetentionPriority);
-
- /* protocol extension present ? */
- tmp_extension_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proceed_nbits(offset, bitoffset, 1);
-
- /* iE Extension present ? */
- tmp_iE_Extensions_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proceed_nbits(offset, bitoffset, 1);
-
- /* allocationOrRetentionPriority */
- proto_tree_add_uint_bits(prio_tree, hf_ranap_priorityLevel, tvb, *offset,
- *bitoffset, 4, 0);
- proceed_nbits(offset, bitoffset, 4);
-
- /* pre-emptionCapability */
- proto_tree_add_uint_bits(prio_tree, hf_ranap_pre_emptionCapability, tvb, *offset,
- *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
- /* pre-emptionVulnerability */
- proto_tree_add_uint_bits(prio_tree, hf_ranap_pre_emptionVulnerability, tvb, *offset,
- *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
- /* queuingAllowed */
- proto_tree_add_uint_bits(prio_tree, hf_ranap_queuingAllowed, tvb, *offset,
- *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
- if (tmp_iE_Extensions_present)
- {
- if ((ret=dissect_iE_Extension(tvb, prio_tree, offset, bitoffset,
- "AllocationOrRetentionPriority")) != 0)
- return (ret);
- }
-
- if (tmp_extension_present)
- {
- /* decoding is not supported */
- proto_tree_add_text(prio_tree, tvb, *offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "Protocol extension for rAB-allocationOrRetentionPriority present, dissection not supported");
- return(-1);
- }
- }
-
- /* sourceStatisticsDescriptor */
- if (sourceStatisticsDescriptor_present)
- {
- /* protocol extension */
- tmp_extension_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proceed_nbits(offset, bitoffset, 1);
-
- if (tmp_extension_present)
- {
- /* decoding is not supported */
- proto_tree_add_text(prio_tree, tvb, *offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "Protocol extension for sourceStatisticsDescriptor present, dissection not supported");
- return(-1);
- }
-
- proto_tree_add_uint_bits(rab_tree, hf_ranap_sourceStatisticsDescriptor, tvb, *offset,
- *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
- }
-
- /* relocationRequirement */
- if (relocationRequirement_present)
- {
- /* protocol extension */
- tmp_extension_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proceed_nbits(offset, bitoffset, 1);
-
- if (tmp_extension_present)
- {
- /* decoding is not supported */
- proto_tree_add_text(prio_tree, tvb, *offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "Protocol extension for relocationRequirement present, dissection not supported");
- return(-1);
- }
-
- proto_tree_add_uint_bits(rab_tree, hf_ranap_relocationRequirement, tvb, *offset,
- *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
- }
-
-
- /* iE-Extensions */
- if (iE_Extensions_present)
- {
- if ((ret=dissect_iE_Extension(tvb, rab_tree, offset, bitoffset, "rAB_Parameters" )) != 0 )
- return (ret);
- }
-
- /* extended */
- if (extension_present)
- {
- /* decoding is not supported */
- proto_tree_add_text(rab_tree, tvb, *offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "Protocol extension for rAB_Parameters present, dissection not supported");
- return(-1);
- }
-
- return(0);
-}
-
-
-
-static int
-dissect_TransportLayerAddress(tvbuff_t *tvb, proto_tree *ie_tree, gint *offset, gint *bitoffset)
-{
- gint extension_present;
- gint str_length;
+dissect_ranap_RANAP_PROTOCOL_IES_Value(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+
+ offset = dissect_ranap_ies(tvb, offset, pinfo, tree);
- extension_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proceed_nbits(offset, bitoffset, 1);
- if (extension_present)
- {
- /* extended integer */
- proto_tree_add_text(ie_tree, tvb, *offset, 0,
- "extension present for TransportLayerAddress, dissection not supported");
- return (-1);
- }
- /* extract and add length of transportLayerAddress bitstring */
- str_length = extract_nbits(tvb, *offset, *bitoffset, 8) + 1;
- proto_tree_add_uint_bits(ie_tree, hf_ranap_transportLayerAddress_length,
- tvb, *offset, *bitoffset, 8, 1);
- proceed_nbits(offset, bitoffset, 8);
- allign(offset, bitoffset);
+ return offset;
+}
+static int dissect_ie_field_value(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RANAP_PROTOCOL_IES_Value(tvb, offset, pinfo, tree, hf_ranap_ie_field_value);
+}
+
+
+static const per_sequence_t ProtocolIE_Field_sequence[] = {
+ { "id" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_id },
+ { "criticality" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_criticality },
+ { "value" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ie_field_value },
+ { NULL, 0, 0, NULL }
+};
- /* add transportLayerAddress */
- proto_tree_add_bitstring(ie_tree, hf_ranap_transportLayerAddress, tvb, *offset,
- *bitoffset, str_length);
- proceed_nbits(offset, bitoffset, str_length);
+static int
+dissect_ranap_ProtocolIE_Field(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ProtocolIE_Field, ProtocolIE_Field_sequence);
- return (0);
+ return offset;
+}
+static int dissect_ProtocolIE_Container_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ProtocolIE_Field(tvb, offset, pinfo, tree, hf_ranap_ProtocolIE_Container_item);
}
+static const per_sequence_t ProtocolIE_Container_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ProtocolIE_Container_item },
+};
static int
-dissect_iuTransportAssociation(tvbuff_t *tvb, proto_tree *ie_tree, gint *offset, gint *bitoffset)
-{
- guint extension_present;
- guint choice_value;
-
- /* extension present ? */
- extension_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- if (extension_present)
- {
- /* extended choice */
- proto_tree_add_text(ie_tree, tvb, *offset, 0,
- "extension present for IuTransportAssociation, dissection not supported");
- return (-1);
- }
- proceed_nbits(offset, bitoffset, 1);
-
- /* choice */
- choice_value = extract_nbits(tvb, *offset, *bitoffset, 1);
- proceed_nbits(offset, bitoffset, 1);
- allign(offset, bitoffset);
- if (choice_value == 0)
- {
- /* gTP-TEI */
- proto_tree_add_item(ie_tree, hf_ranap_gTP_TEI, tvb, *offset, 4, FALSE);
- *offset += 4;
- }
- else
- {
- /* bindingID */
- proto_tree_add_item(ie_tree, hf_ranap_bindingID, tvb, *offset, 4, FALSE);
- *offset += 4;
- }
-
- return (0);
-}
-
-
-static int
-dissect_transportLayerInformation(tvbuff_t *tvb, proto_tree *ie_tree, gint *offset, gint *bitoffset)
-{
- proto_item *optionals_item = NULL;
- proto_tree *optionals_tree = NULL;
- int extension_present;
- int iE_Extensions_present;
- int ret;
+dissect_ranap_ProtocolIE_Container(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ProtocolIE_Container, ProtocolIE_Container_sequence_of,
+ 0, 65535);
- /* create subtree for extension/optional/default bitmap */
- optionals_item = proto_tree_add_text(ie_tree, tvb, *offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "TransportLayerInformation Extension/Optional/Default bitmap");
- optionals_tree = proto_item_add_subtree(optionals_item, ett_ranap_optionals);
+ return offset;
+}
+static int dissect_protocolIEs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ProtocolIE_Container(tvb, offset, pinfo, tree, hf_ranap_protocolIEs);
+}
+static int dissect_ProtocolIE_ContainerList_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ProtocolIE_Container(tvb, offset, pinfo, tree, hf_ranap_ProtocolIE_ContainerList_item);
+}
+static int dissect_ProtocolIE_ContainerList15_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ProtocolIE_Container(tvb, offset, pinfo, tree, hf_ranap_ProtocolIE_ContainerList15_item);
+}
+static int dissect_ProtocolIE_ContainerList256_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ProtocolIE_Container(tvb, offset, pinfo, tree, hf_ranap_ProtocolIE_ContainerList256_item);
+}
+static int dissect_ProtocolIE_ContainerList250_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ProtocolIE_Container(tvb, offset, pinfo, tree, hf_ranap_ProtocolIE_ContainerList250_item);
+}
- /* protocol extension present ? */
- extension_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_ie_protocol_extension, tvb,
- *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
- /* iE-Extensions present ? */
- iE_Extensions_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_iE_Extensions_present,
- tvb, *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
+static int
+dissect_ranap_ProtocolExtensionID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 65535U, NULL, NULL, FALSE);
+ return offset;
+}
+static int dissect_ext_id(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ProtocolExtensionID(tvb, offset, pinfo, tree, hf_ranap_ext_id);
+}
- /* transportLayerAddress */
- if ((ret=dissect_TransportLayerAddress(tvb, ie_tree, offset, bitoffset)) != 0)
- return (ret);
- /* iuTransportAssociation */
- if ((ret=dissect_iuTransportAssociation(tvb, ie_tree, offset, bitoffset)) != 0)
- return (ret);
- /* iE-Extensions */
- if (iE_Extensions_present)
- {
- if ((ret=dissect_iE_Extension(tvb, ie_tree, offset, bitoffset, "TransportLayerInformation" )) != 0 )
- return (ret);
- }
+static int
+dissect_ranap_Extension(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
- /* protocol extension */
- if (extension_present)
- {
- /* extended sequence */
- proto_tree_add_text(ie_tree, tvb, *offset, 0,
- "extension present for TransportLayerInformation, dissection not supported");
- return (-1);
- }
+ offset = dissect_ranap_ies(tvb, offset, pinfo, tree);
- return(0);
+
+ return offset;
+}
+static int dissect_extensionValue(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Extension(tvb, offset, pinfo, tree, hf_ranap_extensionValue);
}
+static const per_sequence_t ProtocolExtensionField_sequence[] = {
+ { "id" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ext_id },
+ { "criticality" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_criticality },
+ { "extensionValue" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_extensionValue },
+ { NULL, 0, 0, NULL }
+};
+
static int
-dissect_dataVolumeList (tvbuff_t *tvb, proto_tree *ie_tree, gint *offset, gint *bitoffset, const char *parname)
-{
- proto_item *optionals_item = NULL;
- proto_tree *optionals_tree = NULL;
- gint extension_present;
- gint dataVolumeReference_present;
- gint iE_Extensions_present;
- gint number_vol;
- gint length;
- gint i;
- int ret;
-
- /* number of volumes */
- number_vol = extract_nbits(tvb, *offset, *bitoffset, 1) + 1;
- proceed_nbits(offset, bitoffset, 1);
-
- for (i=1; i<=number_vol; i++)
- {
- /* create subtree for extension/optional/default bitmap */
- optionals_item = proto_tree_add_text(ie_tree, tvb, *offset, 1,
- "%d. %s Extension/Optional/Default bitmap",
- i, parname);
- optionals_tree = proto_item_add_subtree(optionals_item, ett_ranap_optionals);
-
- /* protocol_extension present ? */
- extension_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_ie_protocol_extension, tvb,
- *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
- /* dataVolumeReference present ? */
- dataVolumeReference_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_dataVolumeReference_present, tvb,
- *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
- /* iE_Extensions present ? */
- iE_Extensions_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_iE_Extensions_present, tvb,
- *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
-
- /* UnsuccessfullyTransmittedDataVolume */
- proto_tree_add_PERint32(ie_tree, hf_ranap_dl_UnsuccessfullyTransmittedDataVolume,
- tvb, *offset, *bitoffset, &length, 0);
- proceed_perint32(offset, bitoffset, length);
-
- /* DataVolumeReference */
- if (dataVolumeReference_present)
- {
- proto_tree_add_uint_bits(ie_tree, hf_ranap_dataVolumeReference, tvb,
- *offset, *bitoffset, 8, 0);
- proceed_nbits(offset, bitoffset, 8);
- }
-
- /* iE-Extensions */
- if (iE_Extensions_present)
- {
- if ((ret=dissect_iE_Extension(tvb, ie_tree, offset, bitoffset, "dl-dataVolumes" )) != 0)
- return(ret);
- }
-
- /* protocol extended */
- if (extension_present)
- {
- /* extended sequence */
- /* decoding is not supported */
- proto_tree_add_text(ie_tree, tvb, *offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "Protocol extension for dl-dataVolumes present, dissection not supported");
- return(-1);
- }
- }
-
- return (0);
-
-}
-
-static int
-dissect_cause(tvbuff_t *tvb, proto_tree *ie_tree, gint *offset, gint *bitoffset)
-{
- gint extension_present;
- int cause_choice;
-
- /* protocol extension present ? */
- extension_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proceed_nbits(offset, bitoffset, 1);
- if (extension_present)
- {
- /* choice extension present */
- proto_tree_add_text(ie_tree, tvb, *offset, 0,
- "extension present for cause, dissection not supported");
- return (-1);
- }
- cause_choice = extract_nbits(tvb, *offset, *bitoffset, 3);
- proto_tree_add_uint_bits(ie_tree, hf_ranap_cause_choice,
- tvb, *offset, *bitoffset, 3, 0);
- proceed_nbits(offset, bitoffset, 3);
-
- switch (cause_choice)
- {
- case CC_CauseRadioNetwork:
- proto_tree_add_uint_bits(ie_tree, hf_ranap_cause_value,
- tvb, *offset, *bitoffset, 6, 1);
- proceed_nbits(offset, bitoffset, 6);
- break;
- case CC_CauseTransmissionNetwork:
- proto_tree_add_uint_bits(ie_tree, hf_ranap_cause_value,
- tvb, *offset, *bitoffset, 4, 65);
- proceed_nbits(offset, bitoffset, 4);
- break;
- case CC_CauseNAS:
- proto_tree_add_uint_bits(ie_tree, hf_ranap_cause_value,
- tvb, *offset, *bitoffset, 4, 81);
- proceed_nbits(offset, bitoffset, 4);
- break;
- case CC_CauseProtocol:
- proto_tree_add_uint_bits(ie_tree, hf_ranap_cause_value,
- tvb, *offset, *bitoffset, 4, 97);
- proceed_nbits(offset, bitoffset, 4);
- case CC_CauseMisc:
- proto_tree_add_uint_bits(ie_tree, hf_ranap_cause_value,
- tvb, *offset, *bitoffset, 4, 113);
- proceed_nbits(offset, bitoffset, 4);
- break;
- case CC_CauseNon_Standard:
- proto_tree_add_uint_bits(ie_tree, hf_ranap_cause_value,
- tvb, *offset, *bitoffset, 7, 129);
- proceed_nbits(offset, bitoffset, 7);
- break;
- default:
- proto_tree_add_text(ie_tree, tvb, *offset, 0,
- "unexpected cause choice value, dissection not supported");
- return(-1);
- }
- return(0);
-}
-
-
-static int
-dissect_iEsCriticalityDiagnostics(tvbuff_t *tvb, proto_tree *ie_tree, gint *offset, gint *bitoffset)
-{
- proto_item *diag_item = NULL;
- proto_tree *diag_tree = NULL;
- proto_item *optionals_item = NULL;
- proto_tree *optionals_tree = NULL;
- int extension_present;
- int repetitionNumber_present;
- int iE_Extensions_present;
- int num_of_errors;
- int i;
-
- allign(offset, bitoffset);
- num_of_errors = extract_nbits(tvb, *offset, *bitoffset, 8) + 1;
- proto_tree_add_uint_bits(ie_tree, hf_ranap_num_of_CriticalityDiagnostics_IEs, tvb,
- *offset, *bitoffset, 8, 1);
- proceed_nbits(offset, bitoffset, 8);
-
- for ( i= 1; i <= num_of_errors; i++)
- {
- /* add subtree for CriticalityDiagnostics-IE */
- diag_item = proto_tree_add_text(ie_tree, tvb, *offset, 0,
- "%d. CriticalityDiagnostics-IE", i);
- diag_tree = proto_item_add_subtree(diag_item, ett_ranap_CriticalityDiagnostics_IE);
-
- /* create subtree for extension/optional/default bitmap */
- optionals_item = proto_tree_add_text(diag_tree, tvb, *offset, 1,
- "CriticalityDiagnostics-IE Extension/Optional/Default bitmap");
- optionals_tree = proto_item_add_subtree(optionals_item, ett_ranap_optionals);
-
- /* protocol_extension present ? */
- extension_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_ie_protocol_extension, tvb,
- *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
- /* repetitionNumber present ? */
- repetitionNumber_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_repetitionNumber_present, tvb,
- *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
- /* iE_Extensions present ? */
- iE_Extensions_present = extract_nbits(tvb, *offset, *bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_iE_Extensions_present,
- tvb, *offset, *bitoffset, 1, 0);
- proceed_nbits(offset, bitoffset, 1);
-
- /* iECriticality */
- proto_tree_add_uint_bits(diag_tree, hf_ranap_iECriticality,
- tvb, *offset, *bitoffset, 2, 0);
- proceed_nbits(offset, bitoffset, 2);
-
- /* iE-ID */
- allign(offset, bitoffset);
- proto_tree_add_item(diag_tree, hf_ranap_ie_ie_id, tvb,
- *offset, IE_ID_LENGTH, FALSE);
- *offset += IE_ID_LENGTH;
-
- /* repetitionNumber */
- if (repetitionNumber_present)
- {
- allign(offset, bitoffset);
- proto_tree_add_uint_bits(diag_tree, hf_ranap_repetitionNumber,
- tvb, *offset, *bitoffset, 8, 1);
- proceed_nbits(offset, bitoffset, 8);
- }
-
- /* iE-Extensions */
- if (iE_Extensions_present)
- {
- return(dissect_iE_Extension(tvb, diag_tree, offset, bitoffset, "CriticalityDiagnostics-IE"));
- }
-
-
- /* protocol extended */
- if (extension_present)
- {
- /* extended sequence */
- /* decoding is not supported */
- proto_tree_add_text(diag_tree, tvb, *offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "Protocol extension for CriticalityDiagnostics-IE present, dissection not supported");
- return(-1);
- }
- }
-
- return(0);
-}
-
-
-
-/*****************************************************************************/
-/* */
-/* Dissecting Functions for IEs */
-/* */
-/*****************************************************************************/
-
-static int
-dissect_IE_RAB_ID(tvbuff_t *tvb, proto_tree *ie_tree)
-{
- if (ie_tree)
- {
- proto_tree_add_item(ie_tree, hf_ranap_rab_id, tvb,
- 0, RAB_ID_LENGTH, FALSE);
- }
- return(0);
+dissect_ranap_ProtocolExtensionField(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ProtocolExtensionField, ProtocolExtensionField_sequence);
+
+ return offset;
+}
+static int dissect_ProtocolExtensionContainer_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ProtocolExtensionField(tvb, offset, pinfo, tree, hf_ranap_ProtocolExtensionContainer_item);
}
+static const per_sequence_t ProtocolExtensionContainer_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ProtocolExtensionContainer_item },
+};
+
static int
-dissect_IE_RAC(tvbuff_t *tvb, proto_tree *ie_tree)
-{
- if (ie_tree)
- {
- proto_tree_add_item(ie_tree, hf_ranap_rac, tvb,
- 0, RAC_LENGTH, FALSE);
- }
- return(0);
+dissect_ranap_ProtocolExtensionContainer(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ProtocolExtensionContainer, ProtocolExtensionContainer_sequence_of,
+ 1, 65535);
+
+ return offset;
+}
+static int dissect_protocolExtensions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ProtocolExtensionContainer(tvb, offset, pinfo, tree, hf_ranap_protocolExtensions);
+}
+static int dissect_iE_Extensions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ProtocolExtensionContainer(tvb, offset, pinfo, tree, hf_ranap_iE_Extensions);
}
+static const per_sequence_t Iu_ReleaseCommand_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
static int
-dissect_IE_LAI(tvbuff_t *tvb, proto_tree *ie_tree)
-{
- proto_item *optionals_item = NULL;
- proto_tree *optionals_tree = NULL;
- int iE_Extensions_present;
- gint offset = 0;
- gint bitoffset = 0;
- int ret;
-
- if (ie_tree)
- {
- /* create subtree for extension/optional/default bitmap */
- optionals_item = proto_tree_add_text(ie_tree, tvb, offset, 1,
- "LAI Extension/Optional/Default bitmap");
- optionals_tree = proto_item_add_subtree(optionals_item, ett_ranap_optionals);
-
- /* iE_Extensions_present present ? */
- iE_Extensions_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_iE_Extensions_present, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* plmn_id */
- allign(&offset, &bitoffset);
- proto_tree_add_item(ie_tree, hf_ranap_plmn_id, tvb,
- offset, PLMN_ID_LENGTH, FALSE);
- offset += PLMN_ID_LENGTH;
-
- /* lac */
- proto_tree_add_item(ie_tree, hf_ranap_lac, tvb,
- offset, LAC_LENGTH, FALSE);
- offset += LAC_LENGTH;
-
- /* iE_Extensions */
- if (iE_Extensions_present)
- {
- if ((ret=dissect_iE_Extension(tvb, ie_tree, &offset, &bitoffset, "LAI")) != 0)
- return (ret);
- }
- }
- return(0);
-}
-
-
-static int
-dissect_IE_GlobalRNC_ID(tvbuff_t *tvb, proto_tree *ie_tree)
-{
- gint offset = 0;
+dissect_ranap_Iu_ReleaseCommand(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Iu_ReleaseCommand, Iu_ReleaseCommand_sequence);
- if (ie_tree)
- {
- /* plmn_id */
- proto_tree_add_item(ie_tree, hf_ranap_plmn_id, tvb,
- offset, PLMN_ID_LENGTH, FALSE);
- offset += PLMN_ID_LENGTH;
+ return offset;
+}
+static int dissect_iu_ReleaseCommand(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Iu_ReleaseCommand(tvb, offset, pinfo, tree, hf_ranap_iu_ReleaseCommand);
+}
- /* RNC ID */
- proto_tree_add_item(ie_tree, hf_ranap_RNC_ID, tvb, offset, 2, FALSE);
- offset += 2;
- }
- return(0);
+static const per_sequence_t RelocationRequired_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RelocationRequired(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RelocationRequired, RelocationRequired_sequence);
+
+ return offset;
}
+static int dissect_relocationRequired(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RelocationRequired(tvb, offset, pinfo, tree, hf_ranap_relocationRequired);
+}
+
+static const per_sequence_t RelocationRequest_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
static int
-dissect_IE_SAI(tvbuff_t *tvb, proto_tree *ie_tree)
-{
- proto_item *optionals_item = NULL;
- proto_tree *optionals_tree = NULL;
- int iE_Extensions_present;
- gint offset = 0;
- gint bitoffset = 0;
- int ret;
-
- if (ie_tree)
- {
- /* create subtree for extension/optional/default bitmap */
- optionals_item = proto_tree_add_text(ie_tree, tvb, offset, 1,
- "SAI Extension/Optional/Default bitmap");
- optionals_tree = proto_item_add_subtree(optionals_item, ett_ranap_optionals);
-
- /* iE_Extensions_present present ? */
- iE_Extensions_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_iE_Extensions_present, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* plmn_id */
- allign(&offset, &bitoffset);
- proto_tree_add_item(ie_tree, hf_ranap_plmn_id, tvb,
- offset, PLMN_ID_LENGTH, FALSE);
- offset += PLMN_ID_LENGTH;
-
- /* lac */
- proto_tree_add_item(ie_tree, hf_ranap_lac, tvb,
- offset, LAC_LENGTH, FALSE);
- offset += LAC_LENGTH;
-
- /* sac */
- proto_tree_add_item(ie_tree, hf_ranap_sac, tvb,
- offset, SAC_LENGTH, FALSE);
- offset += SAC_LENGTH;
-
- /* iE_Extensions */
- if (iE_Extensions_present)
- {
- if ((ret=dissect_iE_Extension(tvb, ie_tree, &offset, &bitoffset, "SAI")) != 0)
- return (ret);
- }
- }
- return(0);
-}
-
-
-static int
-dissect_IE_NAS_PDU(tvbuff_t *tvb, proto_tree *ie_tree)
-{
- tvbuff_t *next_tvb;
- gint length;
- gint length_size;
+dissect_ranap_RelocationRequest(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RelocationRequest, RelocationRequest_sequence);
- if (extract_length(tvb, 0, &length, &length_size) != 0)
- {
- if (ie_tree)
- {
- /* decoding is not supported */
- proto_tree_add_text(ie_tree, tvb, 0,
- 2, "Number of Octets greater than 0x3FFF, dissection not supported");
- }
- return(-1);
- }
+ return offset;
+}
+static int dissect_relocationRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RelocationRequest(tvb, offset, pinfo, tree, hf_ranap_relocationRequest);
+}
- if (ie_tree)
- {
- /* NAS - PDU length */
- proto_tree_add_item(ie_tree, hf_ranap_nas_pdu_length, tvb,
- 0, length_size, FALSE);
- }
- if (ie_tree)
- {
- /* NAS - PDU */
- proto_tree_add_item(ie_tree, hf_ranap_nas_pdu, tvb,
- length_size, length, FALSE);
- }
+static const per_sequence_t RelocationCancel_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
- /* call NAS dissector */
- next_tvb = tvb_new_subset(tvb, length_size, length, length);
+static int
+dissect_ranap_RelocationCancel(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RelocationCancel, RelocationCancel_sequence);
- if (dissector_try_port(nas_pdu_dissector_table, 0x1, next_tvb, g_pinfo, g_tree)) return(0);
- return(0);
+ return offset;
+}
+static int dissect_relocationCancel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RelocationCancel(tvb, offset, pinfo, tree, hf_ranap_relocationCancel);
}
+static const per_sequence_t SRNS_ContextRequest_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
static int
-dissect_IE_CN_DomainIndicator(tvbuff_t *tvb, proto_tree *ie_tree)
-{
- gint offset = 0;
- gint bitoffset = 0;
+dissect_ranap_SRNS_ContextRequest(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_SRNS_ContextRequest, SRNS_ContextRequest_sequence);
- if (ie_tree)
- {
- proto_tree_add_uint_bits(ie_tree, hf_ranap_CN_DomainIndicator, tvb,
- offset, bitoffset, 1, 0);
- }
- return(0);
+ return offset;
+}
+static int dissect_sRNS_ContextRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SRNS_ContextRequest(tvb, offset, pinfo, tree, hf_ranap_sRNS_ContextRequest);
}
+static const per_sequence_t SecurityModeCommand_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
static int
-dissect_IE_IuSigConId(tvbuff_t *tvb, proto_tree *ie_tree)
-{
- guint32 value;
+dissect_ranap_SecurityModeCommand(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_SecurityModeCommand, SecurityModeCommand_sequence);
- if (ie_tree)
- {
- value = tvb_get_ntoh24(tvb, 0);
- proto_tree_add_uint(ie_tree, hf_ranap_IuSigConId,
- tvb, 0, 3, value);
+ return offset;
+}
+static int dissect_securityModeCommand(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SecurityModeCommand(tvb, offset, pinfo, tree, hf_ranap_securityModeCommand);
+}
+
+
+static const per_sequence_t DataVolumeReportRequest_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_DataVolumeReportRequest(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_DataVolumeReportRequest, DataVolumeReportRequest_sequence);
- }
- return(0);
+ return offset;
+}
+static int dissect_dataVolumeReportRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_DataVolumeReportRequest(tvb, offset, pinfo, tree, hf_ranap_dataVolumeReportRequest);
}
+static const per_sequence_t Reset_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
static int
-dissect_IE_SAPI(tvbuff_t *tvb, proto_tree *ie_tree)
-{
- gint offset = 0;
- gint bitoffset = 0;
- int extension_present;
+dissect_ranap_Reset(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Reset, Reset_sequence);
+
+ return offset;
+}
+static int dissect_reset(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Reset(tvb, offset, pinfo, tree, hf_ranap_reset);
+}
- if (ie_tree)
- {
- /* protocol_extension present ? */
- extension_present = extract_nbits(tvb, offset, bitoffset, 1);
- proceed_nbits(&offset, &bitoffset, 1);
- if (extension_present)
- {
- /* extended enum */
- /* decoding is not supported */
- proto_tree_add_text(ie_tree, tvb, offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "Protocol extension for IE_SAPI present, dissection not supported");
- return(-1);
- }
+static const per_sequence_t RAB_ReleaseRequest_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
- /* SAPI */
- proto_tree_add_uint_bits(ie_tree, hf_ranap_SAPI, tvb,
- offset, bitoffset, 1, 0);
- }
- return(0);
+static int
+dissect_ranap_RAB_ReleaseRequest(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_ReleaseRequest, RAB_ReleaseRequest_sequence);
+
+ return offset;
+}
+static int dissect_rAB_ReleaseRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_ReleaseRequest(tvb, offset, pinfo, tree, hf_ranap_rAB_ReleaseRequest);
}
+static const per_sequence_t Iu_ReleaseRequest_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
static int
-dissect_IE_TransportLayerAddress(tvbuff_t *tvb, proto_tree *ie_tree)
-{
- gint offset = 0;
- gint bitoffset = 0;
+dissect_ranap_Iu_ReleaseRequest(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Iu_ReleaseRequest, Iu_ReleaseRequest_sequence);
- if (ie_tree)
- {
- return(dissect_TransportLayerAddress(tvb, ie_tree, &offset, &bitoffset));
- }
- return(0);
+ return offset;
+}
+static int dissect_iu_ReleaseRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Iu_ReleaseRequest(tvb, offset, pinfo, tree, hf_ranap_iu_ReleaseRequest);
}
+static const per_sequence_t RelocationDetect_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
static int
-dissect_IE_IuTransportAssociation(tvbuff_t *tvb, proto_tree *ie_tree)
-{
- gint offset = 0;
- gint bitoffset = 0;
+dissect_ranap_RelocationDetect(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RelocationDetect, RelocationDetect_sequence);
- if (ie_tree)
- {
- return(dissect_iuTransportAssociation(tvb, ie_tree, &offset, &bitoffset));
- }
- return(0);
+ return offset;
+}
+static int dissect_relocationDetect(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RelocationDetect(tvb, offset, pinfo, tree, hf_ranap_relocationDetect);
}
+static const per_sequence_t RelocationComplete_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
static int
-dissect_IE_Cause(tvbuff_t *tvb, proto_tree *ie_tree)
-{
- gint offset = 0;
- gint bitoffset = 0;
+dissect_ranap_RelocationComplete(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RelocationComplete, RelocationComplete_sequence);
- if (ie_tree)
- {
- return(dissect_cause(tvb, ie_tree, &offset, &bitoffset));
- }
- return(0);
+ return offset;
}
+static int dissect_relocationComplete(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RelocationComplete(tvb, offset, pinfo, tree, hf_ranap_relocationComplete);
+}
+
+static const per_sequence_t Paging_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
static int
-dissect_IE_RAB_ReleasedItem_IuRelComp(tvbuff_t *tvb, proto_tree *ie_tree)
-{
- proto_item *optionals_item = NULL;
- proto_tree *optionals_tree = NULL;
- int extension_present;
- int dl_GTP_PDU_SequenceNumber_present;
- int ul_GTP_PDU_SequenceNumber_present;
- int iE_Extensions_present;
- gint offset = 0;
- gint bitoffset = 0;
- int ret;
-
- if (ie_tree)
- {
- /* create subtree for extension/optional/default bitmap */
- optionals_item = proto_tree_add_text(ie_tree, tvb, offset, 1,
- "RAB_ReleasedItem_IuRelComp Extension/Optional/Default bitmap");
- optionals_tree = proto_item_add_subtree(optionals_item, ett_ranap_optionals);
-
- /* protocol_extension present ? */
- extension_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_ie_protocol_extension, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* dl_GTP_PDU_SequenceNumber present ? */
- dl_GTP_PDU_SequenceNumber_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_dl_GTP_PDU_SequenceNumber_present, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* ul_GTP_PDU_SequenceNumber present ? */
- ul_GTP_PDU_SequenceNumber_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_ul_GTP_PDU_SequenceNumber_present, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* iE_Extensions_present present ? */
- iE_Extensions_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_iE_Extensions_present, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
-
- /* rAB-ID */
- proto_tree_add_uint_bits(ie_tree, hf_ranap_rab_id,
- tvb, offset, bitoffset, 8, 0);
- proceed_nbits(&offset, &bitoffset, 8);
-
- /* dl-GTP-PDU-SequenceNumber */
- if (dl_GTP_PDU_SequenceNumber_present)
- {
- allign(&offset, &bitoffset);
- proto_tree_add_item(ie_tree, hf_ranap_dl_GTP_PDU_SequenceNumber, tvb, offset, 2, FALSE);
- offset += 2;
- }
-
- /* ul-GTP-PDU-SequenceNumber */
- if (ul_GTP_PDU_SequenceNumber_present)
- {
- allign(&offset, &bitoffset);
- proto_tree_add_item(ie_tree, hf_ranap_ul_GTP_PDU_SequenceNumber, tvb, offset, 2, FALSE);
- offset += 2;
- }
-
- /* iE-Extensions */
- if (iE_Extensions_present)
- {
- if ((ret=dissect_iE_Extension(tvb, ie_tree, &offset, &bitoffset, "RAB_ReleasedItem_IuRelComp")) != 0)
- return (ret);
- }
-
- /* protocol extended */
- if (extension_present)
- {
- /* extended sequence */
- /* decoding is not supported */
- proto_tree_add_text(ie_tree, tvb, offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "Protocol extension for RAB_ReleasedItem_IuRelComp present, dissection not supported");
- return(-1);
- }
- }
- return(0);
-}
-
-
-static int
-dissect_IE_RAB_DataVolumeReportItem(tvbuff_t *tvb, proto_tree *ie_tree)
-{
- proto_item *optionals_item = NULL;
- proto_tree *optionals_tree = NULL;
- int extension_present;
- int dl_UnsuccessfullyTransmittedDataVolume_present;
- int iE_Extensions_present;
- gint offset = 0;
- gint bitoffset = 0;
- int ret;
-
- if (ie_tree)
- {
- /* create subtree for extension/optional/default bitmap */
- optionals_item = proto_tree_add_text(ie_tree, tvb, offset, 1,
- "RAB_DataVolumeReportItem Extension/Optional/Default bitmap");
- optionals_tree = proto_item_add_subtree(optionals_item, ett_ranap_optionals);
-
- /* protocol_extension present ? */
- extension_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_ie_protocol_extension, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* dl_UnsuccessfullyTransmittedDataVolume present ? */
- dl_UnsuccessfullyTransmittedDataVolume_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_dl_UnsuccessfullyTransmittedDataVolume_present, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* iE_Extensions_present present ? */
- iE_Extensions_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_iE_Extensions_present, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
-
- /* rAB-ID */
- proto_tree_add_uint_bits(ie_tree, hf_ranap_rab_id,
- tvb, offset, bitoffset, 8, 0);
- proceed_nbits(&offset, &bitoffset, 8);
-
- /* dl_UnsuccessfullyTransmittedDataVolume */
- if (dl_UnsuccessfullyTransmittedDataVolume_present)
- {
-
- if ((ret = dissect_dataVolumeList(tvb, ie_tree, &offset, &bitoffset,
- "dl_UnsuccessfullyTransmittedDataVolume")) != 0)
- return (ret);
- }
-
- /* iE-Extensions */
- if (iE_Extensions_present)
- {
- if ((ret=dissect_iE_Extension(tvb, ie_tree, &offset, &bitoffset, "IE_RAB_DataVolumeReportItem")) != 0)
- return (ret);
- }
-
- /* protocol extended */
- if (extension_present)
- {
- /* extended enum */
- /* decoding is not supported */
- proto_tree_add_text(ie_tree, tvb, offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "Protocol extension for IE_RAB_DataVolumeReportItem present, dissection not supported");
- return(-1);
- }
- }
- return(0);
-}
-
-
-static int
-dissect_IE_RAB_SetupOrModifyItemSecond(tvbuff_t *tvb, proto_tree *ie_tree)
-{
- proto_item *optionals_item = NULL;
- proto_tree *optionals_tree = NULL;
- int extension_present;
- int tmp_extension;
- int pDP_TypeInformation_present;
- int dataVolumeReportingIndication_present;
- int dl_GTP_PDU_SequenceNumber_present;
- int ul_GTP_PDU_SequenceNumber_present;
- int dl_N_PDU_SequenceNumber_present;
- int ul_N_PDU_SequenceNumber_present;
- int iE_Extensions_present;
- gint offset = 0;
- gint bitoffset = 0;
- gint8 tmp_byte;
- gint i;
- int ret;
-
- if (ie_tree)
- {
- /* create subtree for extension/optional/default bitmap */
- optionals_item = proto_tree_add_text(ie_tree, tvb, offset, 1,
- "SetupOrModifyItemSecond Extension/Optional/Default bitmap");
- optionals_tree = proto_item_add_subtree(optionals_item, ett_ranap_optionals);
-
- /* protocol_extension present ? */
- extension_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_ie_protocol_extension, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* pDP_TypeInformation present ? */
- pDP_TypeInformation_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_pDP_TypeInformation_present, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* dataVolumeReportingIndication present ? */
- dataVolumeReportingIndication_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_dataVolumeReportingIndication_present, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* dl_GTP_PDU_SequenceNumber present present ? */
- dl_GTP_PDU_SequenceNumber_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_dl_GTP_PDU_SequenceNumber_present, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
-
- /* ul_GTP_PDU_SequenceNumber present ? */
- ul_GTP_PDU_SequenceNumber_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_ul_GTP_PDU_SequenceNumber_present, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* dl_N_PDU_SequenceNumber present ? */
- dl_N_PDU_SequenceNumber_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_dl_N_PDU_SequenceNumber_present, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* ul_N_PDU_SequenceNumber present ? */
- ul_N_PDU_SequenceNumber_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_ul_N_PDU_SequenceNumber_present, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* iE_Extensions present ? */
- iE_Extensions_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_iE_Extensions_present, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* pDP-TypeInformation */
- if (pDP_TypeInformation_present)
- {
- tmp_byte = extract_nbits(tvb, offset, bitoffset, 1) + 1; /* Sequence 1..2 */
- proceed_nbits(&offset, &bitoffset, 1);
- for (i=1; i<=tmp_byte; i++)
- {
- tmp_extension = extract_nbits(tvb, offset, bitoffset, 1);
- proceed_nbits(&offset, &bitoffset, 1);
- if (tmp_extension != 0)
- {
- /* extended enum */
- /* decoding is not supported */
- proto_tree_add_text(ie_tree, tvb, offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "Protocol extension for PDP-Type present, dissection not supported");
- return(-1);
- }
-
- proto_tree_add_uint_bits(ie_tree, hf_ranap_PDP_Type, tvb,
- offset, bitoffset, 3, 0);
- proceed_nbits(&offset, &bitoffset, 3);
- }
- }
-
- /* dataVolumeReportingIndication */
- if (dataVolumeReportingIndication_present)
- {
- proto_tree_add_uint_bits(ie_tree, hf_ranap_dataVolumeReportingIndication, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
- }
-
- /* dl-GTP-PDU-SequenceNumber */
- if (dl_GTP_PDU_SequenceNumber_present)
- {
- allign(&offset, &bitoffset);
- proto_tree_add_item(ie_tree, hf_ranap_dl_GTP_PDU_SequenceNumber, tvb, offset, 2, FALSE);
- offset += 2;
- }
-
- /* ul-GTP-PDU-SequenceNumber */
- if (ul_GTP_PDU_SequenceNumber_present)
- {
- allign(&offset, &bitoffset);
- proto_tree_add_item(ie_tree, hf_ranap_ul_GTP_PDU_SequenceNumber, tvb, offset, 2, FALSE);
- offset += 2;
- }
-
- /* dl-N-PDU-SequenceNumber */
- if (dl_N_PDU_SequenceNumber_present)
- {
- allign(&offset, &bitoffset);
- proto_tree_add_item(ie_tree, hf_ranap_dl_N_PDU_SequenceNumber, tvb, offset, 2, FALSE);
- offset += 2;
- }
-
- /* ul-N-PDU-SequenceNumber */
- if (ul_N_PDU_SequenceNumber_present)
- {
- allign(&offset, &bitoffset);
- proto_tree_add_item(ie_tree, hf_ranap_ul_N_PDU_SequenceNumber, tvb, offset, 2, FALSE);
- offset += 2;
- }
-
- /* iE-Extensions */
- if (iE_Extensions_present)
- {
- if ((ret=dissect_iE_Extension(tvb, ie_tree, &offset, &bitoffset, "SetupOrModifyItemSecond")) != 0)
- return (ret);
- }
-
- /* protocol extended */
- if (extension_present)
- {
- /* extended enum */
- /* decoding is not supported */
- proto_tree_add_text(ie_tree, tvb, offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "Protocol extension for SetupOrModifyItemSecond present, dissection not supported");
- return(-1);
- }
- }
- return(0);
-}
-
-
-static int
-dissect_IE_RAB_SetupOrModifiedItem (tvbuff_t *tvb, proto_tree *ie_tree)
-{
- proto_item *optionals_item = NULL;
- proto_tree *optionals_tree = NULL;
- int ret;
- int extension_present;
- int transportLayerAddress_present;
- int iuTransportAssociation_present;
- int dl_dataVolumes_present;
- int iE_Extensions_present;
- gint offset = 0;
- gint bitoffset = 0;
-
-
- if (ie_tree)
- {
- /* create subtree for extension/optional/default bitmap */
- optionals_item = proto_tree_add_text(ie_tree, tvb, offset, 1,
- "RAB-SetupOrModifiedItem Extension/Optional/Default bitmap");
- optionals_tree = proto_item_add_subtree(optionals_item, ett_ranap_optionals);
-
- /* protocol_extension present ? */
- extension_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_ie_protocol_extension, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* transportLayerAddress present ? */
- transportLayerAddress_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_transportLayerAddress_present, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* iuTransportAssociation present ? */
- iuTransportAssociation_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_iuTransportAssociation_present, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* dl_dataVolumes present ? */
- dl_dataVolumes_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_dl_dataVolumes_present, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* iE_Extensions present ? */
- iE_Extensions_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_iE_Extensions_present, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
-
- /* rAB-ID */
- proto_tree_add_uint_bits(ie_tree, hf_ranap_rab_id,
- tvb, offset, bitoffset, 8, 0);
- proceed_nbits(&offset, &bitoffset, 8);
-
- /* transportLayerAddress */
- if (transportLayerAddress_present)
- {
- if ((ret=dissect_TransportLayerAddress(tvb, ie_tree, &offset, &bitoffset)) != 0)
- return (ret);
- }
-
- /* iuTransportAssociation */
- if (iuTransportAssociation_present)
- {
- if ((ret=dissect_iuTransportAssociation(tvb, ie_tree, &offset, &bitoffset)) != 0)
- return (ret);
- }
-
- /* dl-dataVolumes */
- if (dl_dataVolumes_present)
- {
- if ((ret = dissect_dataVolumeList(tvb, ie_tree, &offset, &bitoffset,
- "dl-dataVolumes")) != 0)
- return (ret);
- }
-
- /* iE-Extensions */
- if (iE_Extensions_present)
- {
- if ((ret=dissect_iE_Extension(tvb, ie_tree, &offset, &bitoffset, "RAB_SetupOrModifiedItem")) != 0)
- return (ret);
- }
-
- /* protocol extended */
- if (extension_present)
- {
- /* extended sequence */
- /* decoding is not supported */
- proto_tree_add_text(ie_tree, tvb, offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "Protocol extension for RAB_SetupOrModifiedItem present, dissection not supported");
- return(-1);
- }
- }
-
- return (0);
-}
-
-
-static int
-dissect_IE_RAB_SetupOrModifyItemFirst (tvbuff_t *tvb, proto_tree *ie_tree)
-{
- gint offset;
- gint bitoffset;
- proto_item *optionals_item = NULL;
- proto_tree *optionals_tree = NULL;
- int extension_present;
- int nAS_SynchronisationIndicator_present;
- int rAB_Parameters_present;
- int userPlaneInformation_present;
- int transportLayerInformation_present;
- int service_Handover_present;
- int iE_Extensions_present;
- int tmp_extension_present;
- int ret;
-
- if (ie_tree)
- {
- offset = 0; bitoffset = 0;
-
- /* create subtree for extension/optional/default bitmap */
- optionals_item = proto_tree_add_text(ie_tree, tvb, offset,IE_PROTOCOL_EXTENSION_LENGTH,
- "RAB_SetupOrModifyItemFirst Extension/Optional/Default bitmap");
- optionals_tree = proto_item_add_subtree(optionals_item, ett_ranap_optionals);
-
- /* protocol extension present ? */
- extension_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_ie_protocol_extension,
- tvb, offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* nAS_SynchronisationIndicator present ? */
- nAS_SynchronisationIndicator_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_nAS_SynchronisationIndicator_present,
- tvb, offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* rAB_Parameters present ? */
- rAB_Parameters_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_rAB_Parameters_present,
- tvb, offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* userPlaneInformation present ? */
- userPlaneInformation_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_userPlaneInformation_present,
- tvb, offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* transportLayerInformation present ? */
- transportLayerInformation_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_transportLayerInformation_present,
- tvb, offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* service_Handover present ? */
- service_Handover_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_service_Handover_present,
- tvb, offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* iE_Extensions present ? */
- iE_Extensions_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_iE_Extensions_present,
- tvb, offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
-
- /* add RAB-ID */
- proto_tree_add_uint_bits(ie_tree, hf_ranap_rab_id,
- tvb, offset, bitoffset, 8, 0);
- proceed_nbits(&offset, &bitoffset, 8);
-
- /* nAS-SynchronisationIndicator */
- if (nAS_SynchronisationIndicator_present)
- {
- proto_tree_add_uint_bits(ie_tree, hf_ranap_nAS_SynchronisationIndicator,
- tvb, offset, bitoffset, 4, 0);
- proceed_nbits(&offset, &bitoffset, 4);
- }
-
- /* rAB-Parameters */
- if (rAB_Parameters_present)
- {
- if ((ret=dissect_rAB_Parameters(tvb, ie_tree, &offset, &bitoffset)) != 0)
- return(ret);
- }
-
- /* userPlaneInformation */
- if (userPlaneInformation_present)
- {
- if ((ret=dissect_userPlaneInformation(tvb, ie_tree, &offset, &bitoffset)) != 0)
- return(ret);
- }
-
- /* transportLayerInformation */
- if (transportLayerInformation_present)
- {
- if ((ret=dissect_transportLayerInformation(tvb, ie_tree, &offset, &bitoffset)) != 0)
- return(ret);
- }
-
- /* service_Handover */
- if (service_Handover_present)
- {
- tmp_extension_present = extract_nbits(tvb, offset, bitoffset, 1);
- proceed_nbits(&offset, &bitoffset, 1);
-
- if (tmp_extension_present)
- {
- /* extended enum */
- /* decoding is not supported */
- proto_tree_add_text(ie_tree, tvb, offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "Protocol extension for service_Handover present, dissection not supported");
- return(-1);
- }
-
- proto_tree_add_uint_bits(ie_tree, hf_ranap_service_Handover,
- tvb, offset, bitoffset, 2, 0);
- proceed_nbits(&offset, &bitoffset, 2);
- }
-
- /* iE-Extensions */
- if (iE_Extensions_present)
- {
- if ((ret=dissect_iE_Extension(tvb, ie_tree, &offset, &bitoffset, "SetupOrModifyItemFirst" )) != 0)
- return(ret);
- }
-
- }
- return(0);
-}
-
-
-static int
-dissect_IE_RAB_ReleaseItem(tvbuff_t *tvb, proto_tree *ie_tree)
-{
- proto_item *optionals_item = NULL;
- proto_tree *optionals_tree = NULL;
- gint offset = 0;
- gint bitoffset = 0;
- int extension_present;
- int iE_Extensions_present;
- int ret;
+dissect_ranap_Paging(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Paging, Paging_sequence);
+ return offset;
+}
+static int dissect_paging(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Paging(tvb, offset, pinfo, tree, hf_ranap_paging);
+}
- /* create subtree for extension/optional/default bitmap */
- optionals_item = proto_tree_add_text(ie_tree, tvb, offset,IE_PROTOCOL_EXTENSION_LENGTH,
- "RAB_ReleaseItem Extension/Optional/Default bitmap");
- optionals_tree = proto_item_add_subtree(optionals_item, ett_ranap_optionals);
- /* protocol extension present ? */
- extension_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_ie_protocol_extension,
- tvb, offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
+static const per_sequence_t CommonID_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+static int
+dissect_ranap_CommonID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_CommonID, CommonID_sequence);
- /* iE_Extensions present ? */
- iE_Extensions_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_iE_Extensions_present,
- tvb, offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
+ return offset;
+}
+static int dissect_commonID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CommonID(tvb, offset, pinfo, tree, hf_ranap_commonID);
+}
- /* add RAB-ID */
- proto_tree_add_uint_bits(ie_tree, hf_ranap_rab_id,
- tvb, offset, bitoffset, 8, 0);
- proceed_nbits(&offset, &bitoffset, 8);
+static const per_sequence_t CN_InvokeTrace_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+static int
+dissect_ranap_CN_InvokeTrace(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_CN_InvokeTrace, CN_InvokeTrace_sequence);
- /* add cause */
- if ((ret=dissect_cause(tvb, ie_tree, &offset, &bitoffset)) != 0)
- return (ret);
+ return offset;
+}
+static int dissect_cN_InvokeTrace(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CN_InvokeTrace(tvb, offset, pinfo, tree, hf_ranap_cN_InvokeTrace);
+}
- /* iE Extensions */
- if (iE_Extensions_present)
- {
- if ((ret=dissect_iE_Extension(tvb, ie_tree, &offset, &bitoffset, "RAB_ReleasedItem")) != 0)
- return (ret);
- }
- /* protocol extended */
- if (extension_present)
- {
- /* extended sequence */
- /* decoding is not supported */
- proto_tree_add_text(ie_tree, tvb, offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "Protocol extension for RAB_ReleasedItem present, dissection not supported");
- return(-1);
- }
+static const per_sequence_t CN_DeactivateTrace_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_CN_DeactivateTrace(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_CN_DeactivateTrace, CN_DeactivateTrace_sequence);
- return(0);
+ return offset;
}
+static int dissect_cN_DeactivateTrace(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CN_DeactivateTrace(tvb, offset, pinfo, tree, hf_ranap_cN_DeactivateTrace);
+}
+
+static const per_sequence_t LocationReportingControl_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
static int
-dissect_IE_RAB_ReleasedItem (tvbuff_t *tvb, proto_tree *ie_tree)
-{
- proto_item *optionals_item = NULL;
- proto_tree *optionals_tree = NULL;
- int ret;
- int extension_present;
- int dl_dataVolumes_present;
- int dl_GTP_PDU_SequenceNumber_present;
- int ul_GTP_PDU_SequenceNumber_present;
- int iE_Extensions_present;
- gint offset = 0;
- gint bitoffset = 0;
-
- if (ie_tree)
- {
- /* create subtree for extension/optional/default bitmap */
- optionals_item = proto_tree_add_text(ie_tree, tvb, offset, 1,
- "RAB-ReleasedItem Extension/Optional/Default bitmap");
- optionals_tree = proto_item_add_subtree(optionals_item, ett_ranap_optionals);
-
- /* protocol_extension present ? */
- extension_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_ie_protocol_extension, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* dl_dataVolumes present ? */
- dl_dataVolumes_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_dl_dataVolumes_present, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* dL_GTP_PDU_SequenceNumber present ? */
- dl_GTP_PDU_SequenceNumber_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_dl_GTP_PDU_SequenceNumber_present,
- tvb, offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* uL_GTP_PDU_SequenceNumber present ? */
- ul_GTP_PDU_SequenceNumber_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_ul_GTP_PDU_SequenceNumber_present,
- tvb, offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* iE_Extensions present ? */
- iE_Extensions_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_iE_Extensions_present,
- tvb, offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* rAB-ID */
- proto_tree_add_uint_bits(ie_tree, hf_ranap_rab_id,
- tvb, offset, bitoffset, 8, 0);
- proceed_nbits(&offset, &bitoffset, 8);
-
- /* dl-dataVolumes */
- if (dl_dataVolumes_present)
- {
- if ((ret=dissect_dataVolumeList(tvb, ie_tree, &offset, &bitoffset,
- "dl-dataVolumes")) != 0)
- return (ret);
- }
-
- /* dL-GTP-PDU-SequenceNumber */
- if (dl_GTP_PDU_SequenceNumber_present)
- {
- allign(&offset, &bitoffset);
- proto_tree_add_item(ie_tree, hf_ranap_dl_GTP_PDU_SequenceNumber, tvb, offset, 2, FALSE);
- offset += 2;
- }
-
- /* uL-GTP-PDU-SequenceNumber */
- if (ul_GTP_PDU_SequenceNumber_present)
- {
- allign(&offset, &bitoffset);
- proto_tree_add_item(ie_tree, hf_ranap_ul_GTP_PDU_SequenceNumber, tvb, offset, 2, FALSE);
- offset += 2;
- }
-
- /* iE-Extensions */
- if (iE_Extensions_present)
- {
- if ((ret=dissect_iE_Extension(tvb, ie_tree, &offset, &bitoffset, "UserPlaneInformation")) != 0)
- return(ret);
- }
-
- /* protocol extended */
- if (extension_present)
- {
- /* extended sequence */
- /* decoding is not supported */
- proto_tree_add_text(ie_tree, tvb, offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "Protocol extension for RAB_ReleasedItem present, dissection not supported");
- return(-1);
- }
- }
-
- return(0);
-}
-
-
-static int
-dissect_IE_RAB_QueuedItem (tvbuff_t *tvb, proto_tree *ie_tree)
-{
- proto_item *optionals_item = NULL;
- proto_tree *optionals_tree = NULL;
- int ret;
- int extension_present;
- int iE_Extensions_present;
- gint offset = 0;
- gint bitoffset = 0;
-
-
- if (ie_tree)
- {
- /* create subtree for extension/optional/default bitmap */
- optionals_item = proto_tree_add_text(ie_tree, tvb, offset, 1,
- "RAB-QueuedItem Extension/Optional/Default bitmap");
- optionals_tree = proto_item_add_subtree(optionals_item, ett_ranap_optionals);
-
- /* protocol_extension present ? */
- extension_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_ie_protocol_extension, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* iE_Extensions present ? */
- iE_Extensions_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_iE_Extensions_present,
- tvb, offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* rAB-ID */
- proto_tree_add_uint_bits(ie_tree, hf_ranap_rab_id,
- tvb, offset, bitoffset, 8, 0);
- proceed_nbits(&offset, &bitoffset, 8);
-
- /* iE-Extensions */
- if (iE_Extensions_present)
- {
- if ((ret=dissect_iE_Extension(tvb, ie_tree, &offset, &bitoffset, "RAB_QueuedItem" )) != 0 )
- return (ret);
- }
-
- /* protocol extended */
- if (extension_present)
- {
- /* extended sequence */
- /* decoding is not supported */
- proto_tree_add_text(ie_tree, tvb, offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "Protocol extension for RAB_QueuedItem present, dissection not supported");
- return(-1);
- }
- }
-
- return(0);
-}
-
-
-static int
-dissect_IE_RAB_FailedItem(tvbuff_t *tvb, proto_tree *ie_tree)
-{
- proto_item *optionals_item = NULL;
- proto_tree *optionals_tree = NULL;
- int ret;
- int extension_present;
- int iE_Extensions_present;
- gint offset = 0;
- gint bitoffset = 0;
-
- if (ie_tree)
- {
- /* create subtree for extension/optional/default bitmap */
- optionals_item = proto_tree_add_text(ie_tree, tvb, offset, 1,
- "RAB-FailedItem Extension/Optional/Default bitmap");
- optionals_tree = proto_item_add_subtree(optionals_item, ett_ranap_optionals);
-
- /* protocol_extension present ? */
- extension_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_ie_protocol_extension, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* iE_Extensions present ? */
- iE_Extensions_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_iE_Extensions_present,
- tvb, offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* rAB-ID */
- proto_tree_add_uint_bits(ie_tree, hf_ranap_rab_id,
- tvb, offset, bitoffset, 8, 0);
- proceed_nbits(&offset, &bitoffset, 8);
-
- /* cause */
- if ((ret=dissect_cause(tvb, ie_tree, &offset, &bitoffset)) != 0)
- return (ret);
-
- /* iE-Extensions */
- if (iE_Extensions_present)
- {
- if ((ret=dissect_iE_Extension(tvb, ie_tree, &offset, &bitoffset, "RAB-FailedItem")) != 0)
- return (ret);
- }
-
-
- /* protocol extended */
- if (extension_present)
- {
- /* extended sequence */
- /* decoding is not supported */
- proto_tree_add_text(ie_tree, tvb, offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "Protocol extension for RAB-FailedItem present, dissection not supported");
- return(-1);
- }
- }
- return(0);
-}
-
-
-static int
-dissect_IE_CriticalityDiagnostics(tvbuff_t *tvb, proto_tree *ie_tree)
+dissect_ranap_LocationReportingControl(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_LocationReportingControl, LocationReportingControl_sequence);
-{
- proto_item *optionals_item = NULL;
- proto_tree *optionals_tree = NULL;
- int ret;
- int extension_present;
- int procedureCode_present;
- int triggeringMessage_present;
- int procedureCriticality_present;
- int iEsCriticalityDiagnostics_present;
- int iE_Extensions_present;
- gint offset = 0;
- gint bitoffset = 0;
-
-
- if (ie_tree)
- {
- /* create subtree for extension/optional/default bitmap */
- optionals_item = proto_tree_add_text(ie_tree, tvb, offset, 1,
- "IE-CriticalityDiagnostics Extension/Optional/Default bitmap");
- optionals_tree = proto_item_add_subtree(optionals_item, ett_ranap_optionals);
-
- /* protocol_extension present ? */
- extension_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_ie_protocol_extension, tvb,
- offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* procedureCode present ? */
- procedureCode_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_procedureCode_present,
- tvb, offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* triggeringMessage present ? */
- triggeringMessage_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_triggeringMessage_present,
- tvb, offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* procedureCriticality present ? */
- procedureCriticality_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_procedureCriticality_present,
- tvb, offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* iEsCriticalityDiagnostics present ? */
- iEsCriticalityDiagnostics_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_iEsCriticalityDiagnostics_present,
- tvb, offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* iE_Extensions present ? */
- iE_Extensions_present = extract_nbits(tvb, offset, bitoffset, 1);
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_iE_Extensions_present,
- tvb, offset, bitoffset, 1, 0);
- proceed_nbits(&offset, &bitoffset, 1);
-
-
- /* procedureCode */
- if (procedureCode_present)
- {
- allign (&offset, &bitoffset);
- proto_tree_add_item(ie_tree, hf_ranap_procedure_code, tvb, offset, 1, FALSE);
- offset += 1;
- }
-
- /* triggeringMessage */
- if (triggeringMessage_present)
- {
- proto_tree_add_uint_bits(ie_tree, hf_ranap_triggeringMessage,
- tvb, offset, bitoffset, 2, 0);
- proceed_nbits(&offset, &bitoffset, 2);
- }
-
- /* procedureCriticality */
- if (procedureCriticality_present)
- {
- proto_tree_add_uint_bits(ie_tree, hf_ranap_procedureCriticality,
- tvb, offset, bitoffset, 2, 0);
- proceed_nbits(&offset, &bitoffset, 2);
- }
-
- /* iEsCriticalityDiagnostics */
- if (iEsCriticalityDiagnostics_present)
- {
- if ((ret=dissect_iEsCriticalityDiagnostics(tvb, ie_tree, &offset, &bitoffset)) != 0)
- return(ret);
- }
-
- /* iE-Extensions */
- if (iE_Extensions_present)
- {
- if ((ret=dissect_iE_Extension(tvb, ie_tree, &offset, &bitoffset, "IE_CriticalityDiagnostics")) != 0)
- return(ret);
- }
-
-
- /* protocol extended */
- if (extension_present)
- {
- /* extended sequence */
- /* decoding is not supported */
- proto_tree_add_text(ie_tree, tvb, offset, IE_PROTOCOL_EXTENSION_LENGTH,
- "Protocol extension for IE CriticalityDiagnostics present, dissection not supported");
- return(-1);
- }
- }
- return(0);
-}
-
-
-static int
-dissect_unknown_IE(tvbuff_t *tvb, proto_tree *ie_tree)
-{
- if (ie_tree)
- {
- proto_tree_add_text(ie_tree, tvb, 0, -1,
- "IE Contents (dissection not implemented)");
- }
- return(0);
+ return offset;
+}
+static int dissect_locationReportingControl(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_LocationReportingControl(tvb, offset, pinfo, tree, hf_ranap_locationReportingControl);
}
+static const per_sequence_t LocationReport_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_LocationReport(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_LocationReport, LocationReport_sequence);
+
+ return offset;
+}
+static int dissect_locationReport(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_LocationReport(tvb, offset, pinfo, tree, hf_ranap_locationReport);
+}
-/*****************************************************************************/
-/* */
-/* Dissecting Functions for IE Lists / Containers */
-/* */
-/*****************************************************************************/
+
+static const per_sequence_t InitialUE_Message_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
static int
-dissect_RAB_IE_ContainerPairList(tvbuff_t *tvb, proto_tree *ie_tree)
-{
- proto_item *rab_item = NULL;
- proto_tree *rab_tree = NULL;
- proto_item *ie_pair_item = NULL;
- proto_tree *ie_pair_tree = NULL;
- proto_item *first_value_item = NULL;
- proto_tree *first_value_tree = NULL;
- proto_item *second_value_item = NULL;
- proto_tree *second_value_tree = NULL;
- guint number_of_RABs, currentRAB;
- guint number_of_IEs, currentIE;
- gint number_of_octets_first, number_of_octets_second;
- gint number_of_octets_first_size, number_of_octets_second_size ;
- gint offset = 0;
- gint bitoffset = 0;
- gint tmp_offset;
- guint16 ie_id;
- tvbuff_t *first_value_tvb;
- tvbuff_t *second_value_tvb;
-
- if (ie_tree)
- {
- /* number of RABs in the list */
- number_of_RABs = 1 + tvb_get_guint8(tvb, offset);
- proto_tree_add_uint(ie_tree, hf_ranap_num_rabs,
- tvb, offset,
- NUM_RABS_LENGTH, number_of_RABs);
-
- offset += NUM_RABS_LENGTH;
-
- /* do for each RAB */
- for (currentRAB=1; currentRAB<=number_of_RABs; currentRAB++)
- {
- /* create subtree for RAB */
- rab_item = proto_tree_add_text(ie_tree, tvb, offset, 0, "%d. RAB", currentRAB);
- rab_tree = proto_item_add_subtree(rab_item, ett_ranap_rab);
-
- /* number of IE pairs for this RAB */
- number_of_IEs = tvb_get_ntohs(tvb, offset);
- proto_tree_add_uint(rab_tree, hf_ranap_number_of_ies_in_list,
- tvb, offset, 2, number_of_IEs);
-
- offset += 2; /*points now to beginning of first IE pair */
-
- /* do for each IE pair */
- for (currentIE=1; currentIE<=number_of_IEs; currentIE++)
- {
- /* use tmp_offset to point to current field */
- tmp_offset = offset;
- /* IE pair ID */
- ie_id = tvb_get_ntohs(tvb, tmp_offset);
- tmp_offset += IE_ID_LENGTH;
-
- tmp_offset += 1; /* skip first criticality byte */
- /* number of octets in first value */
- extract_length(tvb, tmp_offset, &number_of_octets_first, &number_of_octets_first_size);
- tmp_offset += number_of_octets_first_size + number_of_octets_first;
-
- tmp_offset += 1; /* skip second criticality byte */
- /* number of octets in second value */
- extract_length(tvb, tmp_offset, &number_of_octets_second, &number_of_octets_second_size);
- tmp_offset += number_of_octets_second_size + number_of_octets_second;
-
- /* create subtree for ie_pair */
- ie_pair_item = proto_tree_add_text(rab_tree, tvb, offset,
- tmp_offset - offset,
- "%s IE Pair (%u)",
- val_to_str(ie_id, ranap_ie_id_values, "Unknown"),
- ie_id);
- ie_pair_tree = proto_item_add_subtree(ie_pair_item, ett_ranap_ie_pair);
-
- /* add fields to ie pair subtee */
- /* use offset to point to current field */
- /* IE ID */
- proto_tree_add_item(ie_pair_tree, hf_ranap_ie_ie_id, tvb, offset, IE_ID_LENGTH, FALSE);
- offset += IE_ID_LENGTH;
-
- /* first criticality */
- proto_tree_add_uint_bits(ie_pair_tree, hf_ranap_ie_pair_first_criticality, tvb,
- offset, bitoffset, 2, 0);
- proceed_nbits(&offset, &bitoffset, 2);
-
- /* number of octets in first value */
- allign(&offset, &bitoffset);
- if (number_of_octets_first != 0)
- {
- proto_tree_add_uint(ie_pair_tree, hf_ranap_first_value_number_of_octets,
- tvb, offset,
- number_of_octets_first_size,
- number_of_octets_first);
- }
- else
- {
- /* decoding is not supported */
- proto_tree_add_text(ie_pair_tree, tvb, offset,
- 2, "Number of Octets greater than 0x3FFF, dissection not supported");
- return(-1);
- }
- offset += number_of_octets_first_size;
-
- /* add subtree for first value */
- first_value_item = proto_tree_add_text(ie_pair_tree, tvb, offset,
- number_of_octets_first,
- "%sFirst",
- val_to_str(ie_id, ranap_ie_id_values, "Unknown"));
- first_value_tree = proto_item_add_subtree(first_value_item, ett_ranap_ie_pair_first_value);
-
- /* create tvb containing first value */
- first_value_tvb = tvb_new_subset(tvb, offset, number_of_octets_first, number_of_octets_first);
-
- /* add fields of first value */
- switch (ie_id)
- {
- case IE_RAB_SetupOrModifyItem:
- dissect_IE_RAB_SetupOrModifyItemFirst (first_value_tvb, first_value_tree);
- break;
-
- default:
- dissect_unknown_IE(first_value_tvb, first_value_tree);
- break;
- }
-
- offset += number_of_octets_first;
-
-
- /* second criticality */
- proto_tree_add_uint_bits(ie_pair_tree, hf_ranap_ie_pair_second_criticality, tvb,
- offset, bitoffset, 2, 0);
- proceed_nbits(&offset, &bitoffset, 2);
-
- /* number of octets of second value */
- allign(&offset, &bitoffset);
- if (number_of_octets_second != 0)
- {
- proto_tree_add_uint(ie_pair_tree, hf_ranap_second_value_number_of_octets,
- tvb, offset,
- number_of_octets_second_size,
- number_of_octets_second);
- }
- else
- {
- /* decoding is not supported */
- proto_tree_add_text(ie_pair_tree, tvb, offset,
- 2, "Number of Octets greater than 0x3FFF, dissection not supported");
- return(-1);
- }
- offset += number_of_octets_second_size;
-
- /* add subtree for second value */
- second_value_item = proto_tree_add_text(ie_pair_tree, tvb, offset,
- number_of_octets_second,
- "%sSecond",
- val_to_str(ie_id, ranap_ie_id_values, "Unknown"));
- second_value_tree = proto_item_add_subtree(second_value_item, ett_ranap_ie_pair_second_value);
-
- /* create tvb containing first value */
- second_value_tvb = tvb_new_subset(tvb, offset, number_of_octets_second, number_of_octets_second);
-
- /* add fields of second value */
- switch (ie_id)
- {
- case IE_RAB_SetupOrModifyItem:
- dissect_IE_RAB_SetupOrModifyItemSecond (second_value_tvb, second_value_tree);
- break;
-
- default:
- dissect_unknown_IE(second_value_tvb, second_value_tree);
- break;
- }
-
- offset += number_of_octets_second;
-
- }/* for each IE ... */
- }/* for each RAB ... */
- }
- return(0);
-}
-
-
-static int
-dissect_RAB_IE_ContainerList(tvbuff_t *tvb, proto_tree *list_tree)
-{
- proto_item *rab_item = NULL;
- proto_tree *rab_tree = NULL;
- proto_item *ie_item = NULL;
- proto_tree *ie_tree = NULL;
-
- guint number_of_RABs, currentRAB;
- guint number_of_IEs, currentIE;
- gint ie_number_of_octets = 0;
- gint ie_number_of_octets_size = 0;
- gint offset = 0;
- gint bitoffset = 0;
- gint ie_offset = 0;
- gint ie_header_length;
- guint16 ie_id;
- tvbuff_t *ie_tvb;
-
-
- if (list_tree)
- {
- /* number of RABs in the list */
- number_of_RABs = 1 + tvb_get_guint8(tvb, offset);
- proto_tree_add_uint(list_tree, hf_ranap_num_rabs,
- tvb, offset,
- NUM_RABS_LENGTH, number_of_RABs);
-
- offset += NUM_RABS_LENGTH;
-
- /* do for each RAB */
- for (currentRAB=1; currentRAB<=number_of_RABs; currentRAB++)
- {
- /* create subtree for RAB */
- rab_item = proto_tree_add_text(list_tree, tvb, offset, 0, "%d. RAB", currentRAB);
- rab_tree = proto_item_add_subtree(rab_item, ett_ranap_rab);
-
- /* number of IEs for this RAB */
- number_of_IEs = tvb_get_ntohs(tvb, offset);
- proto_tree_add_uint(rab_tree, hf_ranap_number_of_ies_in_list,
- tvb, offset, 2, number_of_IEs);
-
- offset += 2; /*points now to beginning of first IE in list */
- ie_offset = offset;
-
- /* do for each IE */
- for (currentIE=1; currentIE<=number_of_IEs; currentIE++)
- {
- /* extract IE ID */
- ie_id = tvb_get_ntohs(tvb, offset);
- offset += IE_ID_LENGTH;
-
- offset += IE_CRITICALITY_LENGTH; /* skip criticality byte */
-
- /* number of octets */
- extract_length(tvb, offset, &ie_number_of_octets, &ie_number_of_octets_size);
- ie_header_length = IE_ID_LENGTH + IE_CRITICALITY_LENGTH + ie_number_of_octets_size;
-
- /* reset offset to beginning of ie */
- offset = ie_offset;
-
- /* create subtree for ie */
- ie_item = proto_tree_add_text(rab_tree, tvb, offset,
- ie_header_length + ie_number_of_octets,
- "%s IE (%u)",
- val_to_str(ie_id, ranap_ie_id_values, "Unknown"),
- ie_id);
- ie_tree = proto_item_add_subtree(ie_item, ett_ranap_ie);
-
- /* IE ID */
- proto_tree_add_item(ie_tree, hf_ranap_ie_ie_id, tvb,
- offset, IE_ID_LENGTH, FALSE);
- offset += IE_ID_LENGTH;
-
- /* criticality */
- proto_tree_add_uint_bits(ie_tree, hf_ranap_ie_criticality, tvb,
- offset, bitoffset, 2, 0);
- proceed_nbits(&offset, &bitoffset, 2);
-
- allign(&offset, &bitoffset);
- if (ie_number_of_octets != 0)
- {
- proto_tree_add_uint(ie_tree, hf_ranap_ie_number_of_octets, tvb,
- offset, ie_number_of_octets_size, ie_number_of_octets);
- }
- else
- {
- /* decoding is not supported */
- proto_tree_add_text(ie_tree, tvb, offset,
- 0, "Number of Octets greater than 0x3FFF, dissection not supported");
- return(-1);
- }
- offset += ie_number_of_octets_size;
-
-
- /* create tvb containing ie */
- ie_tvb = tvb_new_subset(tvb, offset, ie_number_of_octets, ie_number_of_octets);
-
- /* add fields of ie */
- switch (ie_id)
- {
- case IE_RAB_SetupOrModifiedItem:
- dissect_IE_RAB_SetupOrModifiedItem(ie_tvb, ie_tree);
- break;
- case IE_RAB_ReleaseItem:
- dissect_IE_RAB_ReleaseItem(ie_tvb, ie_tree);
- break;
- case IE_RAB_ReleasedItem:
- dissect_IE_RAB_ReleasedItem(ie_tvb, ie_tree);
- break;
- case IE_RAB_ReleasedItem_IuRelComp:
- dissect_IE_RAB_ReleasedItem_IuRelComp(ie_tvb, ie_tree);
- break;
- case IE_RAB_QueuedItem:
- dissect_IE_RAB_QueuedItem(ie_tvb, ie_tree);
- break;
- case IE_RAB_FailedItem:
- dissect_IE_RAB_FailedItem(ie_tvb, ie_tree);
- break;
- case IE_RAB_DataVolumeReportItem:
- dissect_IE_RAB_DataVolumeReportItem(ie_tvb, ie_tree);
- break;
- default:
- dissect_unknown_IE(ie_tvb, ie_tree);
- break;
- }
-
- ie_offset += (ie_header_length + ie_number_of_octets);
- offset = ie_offset;
- } /* for each IE */
- } /* for each RAB */
- }
- return (0);
-}
-
-
-static int
-dissect_ranap_ie(guint16 ie_id, tvbuff_t *ie_contents_tvb, proto_tree *ie_tree)
-{
- /* call specific dissection function for ie contents */
- switch(ie_id)
- {
- case IE_RAB_ID:
- return(dissect_IE_RAB_ID(ie_contents_tvb, ie_tree));
- break;
- case IE_NAS_PDU:
- return(dissect_IE_NAS_PDU(ie_contents_tvb, ie_tree));
- break;
- case IE_LAI:
- return(dissect_IE_LAI(ie_contents_tvb, ie_tree));
- break;
- case IE_RAC:
- return(dissect_IE_RAC(ie_contents_tvb, ie_tree));
- break;
- case IE_SAI:
- return(dissect_IE_SAI(ie_contents_tvb, ie_tree));
- break;
- case IE_GlobalRNC_ID:
- return(dissect_IE_GlobalRNC_ID(ie_contents_tvb, ie_tree));
- break;
- case IE_CN_DomainIndicator:
- return(dissect_IE_CN_DomainIndicator(ie_contents_tvb, ie_tree));
- break;
- case IE_IuSigConId:
- return(dissect_IE_IuSigConId(ie_contents_tvb, ie_tree));
- break;
- case IE_SAPI:
- return(dissect_IE_SAPI(ie_contents_tvb, ie_tree));
- break;
- case IE_TransportLayerAddress:
- return(dissect_IE_TransportLayerAddress(ie_contents_tvb, ie_tree));
- break;
- case IE_IuTransportAssociation:
- return(dissect_IE_IuTransportAssociation(ie_contents_tvb, ie_tree));
- break;
- case IE_RAB_SetupOrModifyList:
- return(dissect_RAB_IE_ContainerPairList(ie_contents_tvb, ie_tree));
- break;
- case IE_RAB_SetupOrModifiedList:
- case IE_RAB_ReleaseList:
- case IE_RAB_ReleasedList:
- case IE_RAB_QueuedList:
- case IE_RAB_FailedList:
- case IE_RAB_ReleaseFailedList:
- case IE_RAB_DataVolumeReportList:
- case IE_RAB_ReleasedList_IuRelComp:
- case IE_RAB_RelocationReleaseList:
- case IE_RAB_DataForwardingList:
- case IE_RAB_SetupList_RelocReq:
- case IE_RAB_SetupList_RelocReqAck:
- case IE_RAB_DataForwardingList_SRNS_CtxReq:
- case IE_RAB_ContextList:
- case IE_RAB_ContextFailedtoTransferList:
- case IE_RAB_DataVolumeReportRequestList:
- case IE_RAB_FailedtoReportList:
- case IE_RAB_ContextList_RANAP_RelocInf:
- return(dissect_RAB_IE_ContainerList(ie_contents_tvb, ie_tree));
- break;
- case IE_CriticalityDiagnostics:
- return(dissect_IE_CriticalityDiagnostics(ie_contents_tvb, ie_tree));
- break;
- case IE_Cause:
- return(dissect_IE_Cause(ie_contents_tvb, ie_tree));
- break;
- default:
- return(dissect_unknown_IE(ie_contents_tvb, ie_tree));
- break;
- }
-}
-
-
-static int
-dissect_ranap_ie_container(tvbuff_t *tvb, proto_tree *ranap_tree)
-{
- proto_item *ie_item = NULL;
- proto_tree *ie_tree = NULL;
- proto_item *optionals_item = NULL;
- proto_tree *optionals_tree = NULL;
-
- int msg_extension_present;
- int ProtocolExtensionContainer_present;
-
- guint16 number_of_ies;
- guint16 ie_id;
- gint ie_number_of_octets = 0;
- gint ie_number_of_octets_size = 0;
- guint16 ie_header_length;
- gint offset = 0;
- gint bitoffset = 0;
- gint i, ie_offset;
- tvbuff_t *ie_contents_tvb;
-
- if (ranap_tree)
- {
- /* create subtree for extension/optional bitmap of message */
- optionals_item = proto_tree_add_text(ranap_tree, tvb, offset, 1,
- "Message Extension/Optional/Default bitmap");
- optionals_tree = proto_item_add_subtree(optionals_item, ett_ranap_optionals);
- }
-
- /* msg_extension present ? */
- msg_extension_present = extract_nbits(tvb, offset, bitoffset, 1);
-
- if (ranap_tree)
- {
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_msg_extension_present, tvb,
- offset, bitoffset, 1, 0);
- }
- proceed_nbits(&offset, &bitoffset, 1);
-
- /* ProtocolExtensionContainer present ? */
- ProtocolExtensionContainer_present = extract_nbits(tvb, offset, bitoffset, 1);
- if (ranap_tree)
- {
- proto_tree_add_uint_bits(optionals_tree, hf_ranap_ProtocolExtensionContainer_present,
- tvb, offset, bitoffset, 1, 0);
- }
- proceed_nbits(&offset, &bitoffset, 1);
-
-
- /* extract ie container data */
- /* number of ies */
- allign(&offset, &bitoffset);
- number_of_ies = tvb_get_ntohs(tvb, offset);
- if (ranap_tree)
- {
- proto_tree_add_uint(ranap_tree, hf_ranap_number_of_ies,
- tvb, offset, 2, number_of_ies);
- }
- offset += 2;
-
- ie_offset = offset; /* ie_offset marks beginning of IE-Header */
-
- /* do the following for each IE in the PDU */
- for (i=1; i <= number_of_ies; i++)
- {
- /* extract IE header fields which are needed even if no ranap tree exists*/
- /* IE-ID */
- ie_id = tvb_get_ntohs(tvb, offset);
- offset += IE_ID_LENGTH;
-
- /* number of octets in the IE */
- offset += IE_CRITICALITY_LENGTH; /* skip criticality byte */
- ie_number_of_octets = 0;
- extract_length(tvb, offset, &ie_number_of_octets, &ie_number_of_octets_size);
- ie_header_length = IE_ID_LENGTH + IE_CRITICALITY_LENGTH + ie_number_of_octets_size;
-
- if (ranap_tree)
- {
- offset = ie_offset; /* start from beginning of IE */
- /* create subtree for ie */
- ie_item = proto_tree_add_text(ranap_tree, tvb, offset,
- ie_header_length + ie_number_of_octets,
- "%s IE (%u)",
- val_to_str(ie_id, ranap_ie_id_values, "Unknown"),
- ie_id);
- ie_tree = proto_item_add_subtree(ie_item, ett_ranap_ie);
-
- /* add fields to ie subtee */
- /* IE ID */
- proto_tree_add_item(ie_tree, hf_ranap_ie_ie_id, tvb,
- offset, IE_ID_LENGTH, FALSE);
- offset += IE_ID_LENGTH;
-
- /* criticality */
- proto_tree_add_uint_bits(ie_tree, hf_ranap_ie_criticality, tvb,
- offset, bitoffset, 2, 0);
- proceed_nbits(&offset, &bitoffset, 2);
-
- /* number of octets */
- allign(&offset, &bitoffset);
- if (ie_number_of_octets != 0)
- {
- proto_tree_add_uint(ie_tree, hf_ranap_ie_number_of_octets, tvb,
- offset, ie_number_of_octets_size, ie_number_of_octets);
- offset += ie_number_of_octets_size;
- }
- else
- {
- /* decoding is not supported */
- proto_tree_add_text(ranap_tree, tvb, offset,
- 2, "Number of Octets greater than 0x3FFF, dissection not supported");
- return(-1);
- }
- }
-
- /* check if number_of_octets could be decoded */
- /* in case we skipped if (ranap_tree) {....} */
- if (ie_number_of_octets == 0) return (-1);
-
- /* create tvb containing the ie contents */
- ie_contents_tvb = tvb_new_subset(tvb, ie_offset + ie_header_length,
- ie_number_of_octets, ie_number_of_octets);
-
- /* call specific dissection function for ie contents */
- dissect_ranap_ie(ie_id, ie_contents_tvb, ie_tree);
-
- /* set ie_offset to beginning of next ie */
- ie_offset += (ie_header_length + ie_number_of_octets);
- offset = ie_offset;
- }
-
- /* protocol Extensions */
- if (ProtocolExtensionContainer_present)
- {
- return(dissect_iE_Extension(tvb, ranap_tree, &offset, &bitoffset, "PDU"));
- }
-
- return(0);
+dissect_ranap_InitialUE_Message(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_InitialUE_Message, InitialUE_Message_sequence);
+
+ return offset;
+}
+static int dissect_initialUE_Message(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_InitialUE_Message(tvb, offset, pinfo, tree, hf_ranap_initialUE_Message);
+}
+
+
+static const per_sequence_t DirectTransfer_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_DirectTransfer(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_DirectTransfer, DirectTransfer_sequence);
+
+ return offset;
+}
+static int dissect_directTransfer(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_DirectTransfer(tvb, offset, pinfo, tree, hf_ranap_directTransfer);
+}
+
+
+static const per_sequence_t Overload_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_Overload(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Overload, Overload_sequence);
+
+ return offset;
+}
+static int dissect_overload(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Overload(tvb, offset, pinfo, tree, hf_ranap_overload);
+}
+
+
+static const per_sequence_t ErrorIndication_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_ErrorIndication(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ErrorIndication, ErrorIndication_sequence);
+
+ return offset;
+}
+static int dissect_errorIndication(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ErrorIndication(tvb, offset, pinfo, tree, hf_ranap_errorIndication);
+}
+
+
+static const per_sequence_t SRNS_DataForwardCommand_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_SRNS_DataForwardCommand(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_SRNS_DataForwardCommand, SRNS_DataForwardCommand_sequence);
+
+ return offset;
+}
+static int dissect_sRNS_DataForwardCommand(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SRNS_DataForwardCommand(tvb, offset, pinfo, tree, hf_ranap_sRNS_DataForwardCommand);
+}
+
+
+static const per_sequence_t ForwardSRNS_Context_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_ForwardSRNS_Context(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ForwardSRNS_Context, ForwardSRNS_Context_sequence);
+
+ return offset;
+}
+static int dissect_forwardSRNS_Context(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ForwardSRNS_Context(tvb, offset, pinfo, tree, hf_ranap_forwardSRNS_Context);
+}
+
+
+static const per_sequence_t RAB_AssignmentRequest_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_AssignmentRequest(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_AssignmentRequest, RAB_AssignmentRequest_sequence);
+
+ return offset;
+}
+static int dissect_rAB_AssignmentRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_AssignmentRequest(tvb, offset, pinfo, tree, hf_ranap_rAB_AssignmentRequest);
+}
+
+
+
+static int
+dissect_ranap_INTEGER_0_65535(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 65535U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_innerRadius(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_ranap_innerRadius);
+}
+static int dissect_local(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_ranap_local);
+}
+
+
+
+static int
+dissect_ranap_OBJECT_IDENTIFIER(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_index, NULL);
+
+ return offset;
+}
+static int dissect_global(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_OBJECT_IDENTIFIER(tvb, offset, pinfo, tree, hf_ranap_global);
+}
+
+
+static const value_string ranap_PrivateIE_ID_vals[] = {
+ { 0, "local" },
+ { 1, "global" },
+ { 0, NULL }
+};
+
+static const per_choice_t PrivateIE_ID_choice[] = {
+ { 0, "local" , ASN1_NO_EXTENSIONS , dissect_local },
+ { 1, "global" , ASN1_NO_EXTENSIONS , dissect_global },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_PrivateIE_ID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_PrivateIE_ID, PrivateIE_ID_choice,
+ NULL);
+
+ return offset;
+}
+static int dissect_private_id(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PrivateIE_ID(tvb, offset, pinfo, tree, hf_ranap_private_id);
+}
+
+
+
+static int
+dissect_ranap_RANAP_PRIVATE_IES_Value(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+/* FIX ME */
+
+
+ return offset;
+}
+static int dissect_private_value(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RANAP_PRIVATE_IES_Value(tvb, offset, pinfo, tree, hf_ranap_private_value);
+}
+
+
+static const per_sequence_t PrivateIE_Field_sequence[] = {
+ { "id" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_private_id },
+ { "criticality" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_criticality },
+ { "value" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_private_value },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_PrivateIE_Field(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_PrivateIE_Field, PrivateIE_Field_sequence);
+
+ return offset;
+}
+static int dissect_PrivateIE_Container_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PrivateIE_Field(tvb, offset, pinfo, tree, hf_ranap_PrivateIE_Container_item);
+}
+
+
+static const per_sequence_t PrivateIE_Container_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_PrivateIE_Container_item },
+};
+
+static int
+dissect_ranap_PrivateIE_Container(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_PrivateIE_Container, PrivateIE_Container_sequence_of,
+ 1, 65535);
+
+ return offset;
+}
+static int dissect_privateIEs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PrivateIE_Container(tvb, offset, pinfo, tree, hf_ranap_privateIEs);
+}
+
+
+static const per_sequence_t PrivateMessage_sequence[] = {
+ { "privateIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_privateIEs },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_PrivateMessage(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_PrivateMessage, PrivateMessage_sequence);
+
+ return offset;
+}
+static int dissect_privateMessage(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PrivateMessage(tvb, offset, pinfo, tree, hf_ranap_privateMessage);
+}
+
+
+static const per_sequence_t ResetResource_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_ResetResource(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ResetResource, ResetResource_sequence);
+
+ return offset;
+}
+static int dissect_resetResource(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ResetResource(tvb, offset, pinfo, tree, hf_ranap_resetResource);
+}
+
+
+static const per_sequence_t RANAP_RelocationInformation_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RANAP_RelocationInformation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RANAP_RelocationInformation, RANAP_RelocationInformation_sequence);
+
+ return offset;
+}
+static int dissect_rANAP_RelocationInformation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RANAP_RelocationInformation(tvb, offset, pinfo, tree, hf_ranap_rANAP_RelocationInformation);
+}
+
+
+static const per_sequence_t RAB_ModifyRequest_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_ModifyRequest(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_ModifyRequest, RAB_ModifyRequest_sequence);
+
+ return offset;
+}
+static int dissect_rAB_ModifyRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_ModifyRequest(tvb, offset, pinfo, tree, hf_ranap_rAB_ModifyRequest);
+}
+
+
+static const per_sequence_t LocationRelatedDataRequest_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_LocationRelatedDataRequest(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_LocationRelatedDataRequest, LocationRelatedDataRequest_sequence);
+
+ return offset;
+}
+static int dissect_locationRelatedDataRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_LocationRelatedDataRequest(tvb, offset, pinfo, tree, hf_ranap_locationRelatedDataRequest);
+}
+
+
+static const per_sequence_t InformationTransferIndication_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_InformationTransferIndication(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_InformationTransferIndication, InformationTransferIndication_sequence);
+
+ return offset;
+}
+static int dissect_informationTransferIndication(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_InformationTransferIndication(tvb, offset, pinfo, tree, hf_ranap_informationTransferIndication);
+}
+
+
+static const per_sequence_t UESpecificInformationIndication_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_UESpecificInformationIndication(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_UESpecificInformationIndication, UESpecificInformationIndication_sequence);
+
+ return offset;
+}
+static int dissect_uESpecificInformationIndication(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_UESpecificInformationIndication(tvb, offset, pinfo, tree, hf_ranap_uESpecificInformationIndication);
+}
+
+
+static const per_sequence_t DirectInformationTransfer_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_DirectInformationTransfer(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_DirectInformationTransfer, DirectInformationTransfer_sequence);
+
+ return offset;
+}
+static int dissect_directInformationTransfer(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_DirectInformationTransfer(tvb, offset, pinfo, tree, hf_ranap_directInformationTransfer);
+}
+
+
+static const per_sequence_t UplinkInformationExchangeRequest_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_UplinkInformationExchangeRequest(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_UplinkInformationExchangeRequest, UplinkInformationExchangeRequest_sequence);
+
+ return offset;
+}
+static int dissect_uplinkInformationExchangeRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_UplinkInformationExchangeRequest(tvb, offset, pinfo, tree, hf_ranap_uplinkInformationExchangeRequest);
+}
+
+
+static const per_sequence_t MBMSSessionStart_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_MBMSSessionStart(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSSessionStart, MBMSSessionStart_sequence);
+
+ return offset;
+}
+static int dissect_mBMSSessionStart(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSSessionStart(tvb, offset, pinfo, tree, hf_ranap_mBMSSessionStart);
+}
+
+
+static const per_sequence_t MBMSSessionUpdate_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_MBMSSessionUpdate(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSSessionUpdate, MBMSSessionUpdate_sequence);
+
+ return offset;
+}
+static int dissect_mBMSSessionUpdate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSSessionUpdate(tvb, offset, pinfo, tree, hf_ranap_mBMSSessionUpdate);
+}
+
+
+static const per_sequence_t MBMSSessionStop_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_MBMSSessionStop(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSSessionStop, MBMSSessionStop_sequence);
+
+ return offset;
+}
+static int dissect_mMBMSSessionStop(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSSessionStop(tvb, offset, pinfo, tree, hf_ranap_mMBMSSessionStop);
+}
+
+
+static const per_sequence_t MBMSUELinkingRequest_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_MBMSUELinkingRequest(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSUELinkingRequest, MBMSUELinkingRequest_sequence);
+
+ return offset;
+}
+static int dissect_mBMSUELinkingRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSUELinkingRequest(tvb, offset, pinfo, tree, hf_ranap_mBMSUELinkingRequest);
+}
+
+
+static const per_sequence_t MBMSRegistrationRequest_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_MBMSRegistrationRequest(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSRegistrationRequest, MBMSRegistrationRequest_sequence);
+
+ return offset;
+}
+static int dissect_mBMSRegistrationRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSRegistrationRequest(tvb, offset, pinfo, tree, hf_ranap_mBMSRegistrationRequest);
+}
+
+
+static const per_sequence_t MBMSCNDe_RegistrationRequest_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_MBMSCNDe_RegistrationRequest(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSCNDe_RegistrationRequest, MBMSCNDe_RegistrationRequest_sequence);
+
+ return offset;
+}
+static int dissect_mBMSCNDe_RegistrationRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSCNDe_RegistrationRequest(tvb, offset, pinfo, tree, hf_ranap_mBMSCNDe_RegistrationRequest);
+}
+
+
+static const per_sequence_t MBMSRABEstablishmentIndication_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_MBMSRABEstablishmentIndication(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSRABEstablishmentIndication, MBMSRABEstablishmentIndication_sequence);
+
+ return offset;
+}
+static int dissect_mBMSRABEstablishmentIndication(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSRABEstablishmentIndication(tvb, offset, pinfo, tree, hf_ranap_mBMSRABEstablishmentIndication);
+}
+
+
+static const per_sequence_t MBMSRABReleaseRequest_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_MBMSRABReleaseRequest(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSRABReleaseRequest, MBMSRABReleaseRequest_sequence);
+
+ return offset;
+}
+static int dissect_mBMSRABReleaseRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSRABReleaseRequest(tvb, offset, pinfo, tree, hf_ranap_mBMSRABReleaseRequest);
+}
+
+
+static const value_string ranap_Dummy_initiating_messages_vals[] = {
+ { 0, "iu-ReleaseCommand" },
+ { 1, "relocationRequired" },
+ { 2, "relocationRequest" },
+ { 3, "relocationCancel" },
+ { 4, "sRNS-ContextRequest" },
+ { 5, "securityModeCommand" },
+ { 6, "dataVolumeReportRequest" },
+ { 7, "reset" },
+ { 8, "rAB-ReleaseRequest" },
+ { 9, "iu-ReleaseRequest" },
+ { 10, "relocationDetect" },
+ { 11, "relocationComplete" },
+ { 12, "paging" },
+ { 13, "commonID" },
+ { 14, "cN-InvokeTrace" },
+ { 15, "cN-DeactivateTrace" },
+ { 16, "locationReportingControl" },
+ { 17, "locationReport" },
+ { 18, "initialUE-Message" },
+ { 19, "directTransfer" },
+ { 20, "overload" },
+ { 21, "errorIndication" },
+ { 22, "sRNS-DataForwardCommand" },
+ { 23, "forwardSRNS-Context" },
+ { 24, "rAB-AssignmentRequest" },
+ { 25, "privateMessage" },
+ { 26, "resetResource" },
+ { 27, "rANAP-RelocationInformation" },
+ { 28, "rAB-ModifyRequest" },
+ { 29, "locationRelatedDataRequest" },
+ { 30, "informationTransferIndication" },
+ { 31, "uESpecificInformationIndication" },
+ { 32, "directInformationTransfer" },
+ { 33, "uplinkInformationExchangeRequest" },
+ { 34, "mBMSSessionStart" },
+ { 35, "mBMSSessionUpdate" },
+ { 36, "mMBMSSessionStop" },
+ { 37, "mBMSUELinkingRequest" },
+ { 38, "mBMSRegistrationRequest" },
+ { 39, "mBMSCNDe-RegistrationRequest" },
+ { 40, "mBMSRABEstablishmentIndication" },
+ { 41, "mBMSRABReleaseRequest" },
+ { 0, NULL }
+};
+
+static const per_choice_t Dummy_initiating_messages_choice[] = {
+ { 0, "iu-ReleaseCommand" , ASN1_EXTENSION_ROOT , dissect_iu_ReleaseCommand },
+ { 1, "relocationRequired" , ASN1_EXTENSION_ROOT , dissect_relocationRequired },
+ { 2, "relocationRequest" , ASN1_EXTENSION_ROOT , dissect_relocationRequest },
+ { 3, "relocationCancel" , ASN1_EXTENSION_ROOT , dissect_relocationCancel },
+ { 4, "sRNS-ContextRequest" , ASN1_EXTENSION_ROOT , dissect_sRNS_ContextRequest },
+ { 5, "securityModeCommand" , ASN1_EXTENSION_ROOT , dissect_securityModeCommand },
+ { 6, "dataVolumeReportRequest" , ASN1_EXTENSION_ROOT , dissect_dataVolumeReportRequest },
+ { 7, "reset" , ASN1_EXTENSION_ROOT , dissect_reset },
+ { 8, "rAB-ReleaseRequest" , ASN1_EXTENSION_ROOT , dissect_rAB_ReleaseRequest },
+ { 9, "iu-ReleaseRequest" , ASN1_EXTENSION_ROOT , dissect_iu_ReleaseRequest },
+ { 10, "relocationDetect" , ASN1_EXTENSION_ROOT , dissect_relocationDetect },
+ { 11, "relocationComplete" , ASN1_EXTENSION_ROOT , dissect_relocationComplete },
+ { 12, "paging" , ASN1_EXTENSION_ROOT , dissect_paging },
+ { 13, "commonID" , ASN1_EXTENSION_ROOT , dissect_commonID },
+ { 14, "cN-InvokeTrace" , ASN1_EXTENSION_ROOT , dissect_cN_InvokeTrace },
+ { 15, "cN-DeactivateTrace" , ASN1_EXTENSION_ROOT , dissect_cN_DeactivateTrace },
+ { 16, "locationReportingControl" , ASN1_EXTENSION_ROOT , dissect_locationReportingControl },
+ { 17, "locationReport" , ASN1_EXTENSION_ROOT , dissect_locationReport },
+ { 18, "initialUE-Message" , ASN1_EXTENSION_ROOT , dissect_initialUE_Message },
+ { 19, "directTransfer" , ASN1_EXTENSION_ROOT , dissect_directTransfer },
+ { 20, "overload" , ASN1_EXTENSION_ROOT , dissect_overload },
+ { 21, "errorIndication" , ASN1_EXTENSION_ROOT , dissect_errorIndication },
+ { 22, "sRNS-DataForwardCommand" , ASN1_EXTENSION_ROOT , dissect_sRNS_DataForwardCommand },
+ { 23, "forwardSRNS-Context" , ASN1_EXTENSION_ROOT , dissect_forwardSRNS_Context },
+ { 24, "rAB-AssignmentRequest" , ASN1_EXTENSION_ROOT , dissect_rAB_AssignmentRequest },
+ { 25, "privateMessage" , ASN1_EXTENSION_ROOT , dissect_privateMessage },
+ { 26, "resetResource" , ASN1_EXTENSION_ROOT , dissect_resetResource },
+ { 27, "rANAP-RelocationInformation" , ASN1_EXTENSION_ROOT , dissect_rANAP_RelocationInformation },
+ { 28, "rAB-ModifyRequest" , ASN1_EXTENSION_ROOT , dissect_rAB_ModifyRequest },
+ { 29, "locationRelatedDataRequest" , ASN1_EXTENSION_ROOT , dissect_locationRelatedDataRequest },
+ { 30, "informationTransferIndication", ASN1_EXTENSION_ROOT , dissect_informationTransferIndication },
+ { 31, "uESpecificInformationIndication", ASN1_EXTENSION_ROOT , dissect_uESpecificInformationIndication },
+ { 32, "directInformationTransfer" , ASN1_EXTENSION_ROOT , dissect_directInformationTransfer },
+ { 33, "uplinkInformationExchangeRequest", ASN1_EXTENSION_ROOT , dissect_uplinkInformationExchangeRequest },
+ { 34, "mBMSSessionStart" , ASN1_EXTENSION_ROOT , dissect_mBMSSessionStart },
+ { 35, "mBMSSessionUpdate" , ASN1_EXTENSION_ROOT , dissect_mBMSSessionUpdate },
+ { 36, "mMBMSSessionStop" , ASN1_EXTENSION_ROOT , dissect_mMBMSSessionStop },
+ { 37, "mBMSUELinkingRequest" , ASN1_EXTENSION_ROOT , dissect_mBMSUELinkingRequest },
+ { 38, "mBMSRegistrationRequest" , ASN1_EXTENSION_ROOT , dissect_mBMSRegistrationRequest },
+ { 39, "mBMSCNDe-RegistrationRequest", ASN1_EXTENSION_ROOT , dissect_mBMSCNDe_RegistrationRequest },
+ { 40, "mBMSRABEstablishmentIndication", ASN1_EXTENSION_ROOT , dissect_mBMSRABEstablishmentIndication },
+ { 41, "mBMSRABReleaseRequest" , ASN1_EXTENSION_ROOT , dissect_mBMSRABReleaseRequest },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_Dummy_initiating_messages(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Dummy_initiating_messages, Dummy_initiating_messages_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t Iu_ReleaseComplete_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_Iu_ReleaseComplete(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Iu_ReleaseComplete, Iu_ReleaseComplete_sequence);
+
+ return offset;
+}
+static int dissect_iu_ReleaseComplete(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Iu_ReleaseComplete(tvb, offset, pinfo, tree, hf_ranap_iu_ReleaseComplete);
+}
+
+
+static const per_sequence_t RelocationCommand_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RelocationCommand(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RelocationCommand, RelocationCommand_sequence);
+
+ return offset;
+}
+static int dissect_relocationCommand(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RelocationCommand(tvb, offset, pinfo, tree, hf_ranap_relocationCommand);
+}
+
+
+static const per_sequence_t RelocationRequestAcknowledge_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RelocationRequestAcknowledge(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RelocationRequestAcknowledge, RelocationRequestAcknowledge_sequence);
+
+ return offset;
+}
+static int dissect_relocationRequestAcknowledge(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RelocationRequestAcknowledge(tvb, offset, pinfo, tree, hf_ranap_relocationRequestAcknowledge);
+}
+
+
+static const per_sequence_t RelocationCancelAcknowledge_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RelocationCancelAcknowledge(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RelocationCancelAcknowledge, RelocationCancelAcknowledge_sequence);
+
+ return offset;
+}
+static int dissect_relocationCancelAcknowledge(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RelocationCancelAcknowledge(tvb, offset, pinfo, tree, hf_ranap_relocationCancelAcknowledge);
+}
+
+
+static const per_sequence_t SRNS_ContextResponse_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_SRNS_ContextResponse(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_SRNS_ContextResponse, SRNS_ContextResponse_sequence);
+
+ return offset;
+}
+static int dissect_sRNS_ContextResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SRNS_ContextResponse(tvb, offset, pinfo, tree, hf_ranap_sRNS_ContextResponse);
+}
+
+
+static const per_sequence_t SecurityModeComplete_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_SecurityModeComplete(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_SecurityModeComplete, SecurityModeComplete_sequence);
+
+ return offset;
+}
+static int dissect_securityModeComplete(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SecurityModeComplete(tvb, offset, pinfo, tree, hf_ranap_securityModeComplete);
+}
+
+
+static const per_sequence_t DataVolumeReport_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_DataVolumeReport(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_DataVolumeReport, DataVolumeReport_sequence);
+
+ return offset;
+}
+static int dissect_dataVolumeReport(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_DataVolumeReport(tvb, offset, pinfo, tree, hf_ranap_dataVolumeReport);
+}
+
+
+static const per_sequence_t ResetAcknowledge_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_ResetAcknowledge(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ResetAcknowledge, ResetAcknowledge_sequence);
+
+ return offset;
+}
+static int dissect_resetAcknowledge(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ResetAcknowledge(tvb, offset, pinfo, tree, hf_ranap_resetAcknowledge);
+}
+
+
+static const per_sequence_t ResetResourceAcknowledge_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_ResetResourceAcknowledge(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ResetResourceAcknowledge, ResetResourceAcknowledge_sequence);
+
+ return offset;
+}
+static int dissect_resetResourceAcknowledge(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ResetResourceAcknowledge(tvb, offset, pinfo, tree, hf_ranap_resetResourceAcknowledge);
+}
+
+
+static const per_sequence_t LocationRelatedDataResponse_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_LocationRelatedDataResponse(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_LocationRelatedDataResponse, LocationRelatedDataResponse_sequence);
+
+ return offset;
+}
+static int dissect_locationRelatedDataResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_LocationRelatedDataResponse(tvb, offset, pinfo, tree, hf_ranap_locationRelatedDataResponse);
+}
+
+
+static const per_sequence_t InformationTransferConfirmation_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_InformationTransferConfirmation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_InformationTransferConfirmation, InformationTransferConfirmation_sequence);
+
+ return offset;
+}
+static int dissect_informationTransferConfirmation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_InformationTransferConfirmation(tvb, offset, pinfo, tree, hf_ranap_informationTransferConfirmation);
+}
+
+
+static const per_sequence_t UplinkInformationExchangeResponse_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_UplinkInformationExchangeResponse(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_UplinkInformationExchangeResponse, UplinkInformationExchangeResponse_sequence);
+
+ return offset;
+}
+static int dissect_uplinkInformationExchangeResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_UplinkInformationExchangeResponse(tvb, offset, pinfo, tree, hf_ranap_uplinkInformationExchangeResponse);
+}
+
+
+static const per_sequence_t MBMSSessionStartResponse_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_MBMSSessionStartResponse(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSSessionStartResponse, MBMSSessionStartResponse_sequence);
+
+ return offset;
+}
+static int dissect_mBMSSessionStartResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSSessionStartResponse(tvb, offset, pinfo, tree, hf_ranap_mBMSSessionStartResponse);
+}
+
+
+static const per_sequence_t MBMSSessionUpdateResponse_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_MBMSSessionUpdateResponse(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSSessionUpdateResponse, MBMSSessionUpdateResponse_sequence);
+
+ return offset;
+}
+static int dissect_mBMSSessionUpdateResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSSessionUpdateResponse(tvb, offset, pinfo, tree, hf_ranap_mBMSSessionUpdateResponse);
+}
+
+
+static const per_sequence_t MBMSSessionStopResponse_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_MBMSSessionStopResponse(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSSessionStopResponse, MBMSSessionStopResponse_sequence);
+
+ return offset;
+}
+static int dissect_mBMSSessionStopResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSSessionStopResponse(tvb, offset, pinfo, tree, hf_ranap_mBMSSessionStopResponse);
+}
+
+
+static const per_sequence_t MBMSRegistrationResponse_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_MBMSRegistrationResponse(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSRegistrationResponse, MBMSRegistrationResponse_sequence);
+
+ return offset;
+}
+static int dissect_mBMSRegistrationResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSRegistrationResponse(tvb, offset, pinfo, tree, hf_ranap_mBMSRegistrationResponse);
+}
+
+
+static const per_sequence_t MBMSCNDe_RegistrationResponse_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_MBMSCNDe_RegistrationResponse(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSCNDe_RegistrationResponse, MBMSCNDe_RegistrationResponse_sequence);
+
+ return offset;
+}
+static int dissect_mBMSCNDeRegistrationResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSCNDe_RegistrationResponse(tvb, offset, pinfo, tree, hf_ranap_mBMSCNDeRegistrationResponse);
+}
+
+
+static const per_sequence_t MBMSRABRelease_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_MBMSRABRelease(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSRABRelease, MBMSRABRelease_sequence);
+
+ return offset;
+}
+static int dissect_mBMSRABRelease(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSRABRelease(tvb, offset, pinfo, tree, hf_ranap_mBMSRABRelease);
+}
+
+
+static const value_string ranap_Dummy_SuccessfulOutcome_messages_vals[] = {
+ { 0, "iu-ReleaseComplete" },
+ { 1, "relocationCommand" },
+ { 2, "relocationRequestAcknowledge" },
+ { 3, "relocationCancelAcknowledge" },
+ { 4, "sRNS-ContextResponse" },
+ { 5, "securityModeComplete" },
+ { 6, "dataVolumeReport" },
+ { 7, "resetAcknowledge" },
+ { 8, "resetResourceAcknowledge" },
+ { 9, "locationRelatedDataResponse" },
+ { 10, "informationTransferConfirmation" },
+ { 11, "uplinkInformationExchangeResponse" },
+ { 12, "mBMSSessionStartResponse" },
+ { 13, "mBMSSessionUpdateResponse" },
+ { 14, "mBMSSessionStopResponse" },
+ { 15, "mBMSRegistrationResponse" },
+ { 16, "mBMSCNDeRegistrationResponse" },
+ { 17, "mBMSRABRelease" },
+ { 0, NULL }
+};
+
+static const per_choice_t Dummy_SuccessfulOutcome_messages_choice[] = {
+ { 0, "iu-ReleaseComplete" , ASN1_EXTENSION_ROOT , dissect_iu_ReleaseComplete },
+ { 1, "relocationCommand" , ASN1_EXTENSION_ROOT , dissect_relocationCommand },
+ { 2, "relocationRequestAcknowledge", ASN1_EXTENSION_ROOT , dissect_relocationRequestAcknowledge },
+ { 3, "relocationCancelAcknowledge" , ASN1_EXTENSION_ROOT , dissect_relocationCancelAcknowledge },
+ { 4, "sRNS-ContextResponse" , ASN1_EXTENSION_ROOT , dissect_sRNS_ContextResponse },
+ { 5, "securityModeComplete" , ASN1_EXTENSION_ROOT , dissect_securityModeComplete },
+ { 6, "dataVolumeReport" , ASN1_EXTENSION_ROOT , dissect_dataVolumeReport },
+ { 7, "resetAcknowledge" , ASN1_EXTENSION_ROOT , dissect_resetAcknowledge },
+ { 8, "resetResourceAcknowledge" , ASN1_EXTENSION_ROOT , dissect_resetResourceAcknowledge },
+ { 9, "locationRelatedDataResponse" , ASN1_EXTENSION_ROOT , dissect_locationRelatedDataResponse },
+ { 10, "informationTransferConfirmation", ASN1_EXTENSION_ROOT , dissect_informationTransferConfirmation },
+ { 11, "uplinkInformationExchangeResponse", ASN1_EXTENSION_ROOT , dissect_uplinkInformationExchangeResponse },
+ { 12, "mBMSSessionStartResponse" , ASN1_EXTENSION_ROOT , dissect_mBMSSessionStartResponse },
+ { 13, "mBMSSessionUpdateResponse" , ASN1_EXTENSION_ROOT , dissect_mBMSSessionUpdateResponse },
+ { 14, "mBMSSessionStopResponse" , ASN1_EXTENSION_ROOT , dissect_mBMSSessionStopResponse },
+ { 15, "mBMSRegistrationResponse" , ASN1_EXTENSION_ROOT , dissect_mBMSRegistrationResponse },
+ { 16, "mBMSCNDeRegistrationResponse", ASN1_EXTENSION_ROOT , dissect_mBMSCNDeRegistrationResponse },
+ { 17, "mBMSRABRelease" , ASN1_EXTENSION_ROOT , dissect_mBMSRABRelease },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_Dummy_SuccessfulOutcome_messages(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Dummy_SuccessfulOutcome_messages, Dummy_SuccessfulOutcome_messages_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t RelocationPreparationFailure_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RelocationPreparationFailure(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RelocationPreparationFailure, RelocationPreparationFailure_sequence);
+
+ return offset;
+}
+static int dissect_relocationPreparationFailure(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RelocationPreparationFailure(tvb, offset, pinfo, tree, hf_ranap_relocationPreparationFailure);
+}
+
+
+static const per_sequence_t RelocationFailure_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RelocationFailure(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RelocationFailure, RelocationFailure_sequence);
+
+ return offset;
+}
+static int dissect_relocationFailure(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RelocationFailure(tvb, offset, pinfo, tree, hf_ranap_relocationFailure);
+}
+
+
+static const per_sequence_t SecurityModeReject_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_SecurityModeReject(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_SecurityModeReject, SecurityModeReject_sequence);
+
+ return offset;
+}
+static int dissect_securityModeReject(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SecurityModeReject(tvb, offset, pinfo, tree, hf_ranap_securityModeReject);
+}
+
+
+static const per_sequence_t LocationRelatedDataFailure_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_LocationRelatedDataFailure(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_LocationRelatedDataFailure, LocationRelatedDataFailure_sequence);
+
+ return offset;
+}
+static int dissect_locationRelatedDataFailure(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_LocationRelatedDataFailure(tvb, offset, pinfo, tree, hf_ranap_locationRelatedDataFailure);
+}
+
+
+static const per_sequence_t InformationTransferFailure_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_InformationTransferFailure(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_InformationTransferFailure, InformationTransferFailure_sequence);
+
+ return offset;
+}
+static int dissect_informationTransferFailure(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_InformationTransferFailure(tvb, offset, pinfo, tree, hf_ranap_informationTransferFailure);
+}
+
+
+static const per_sequence_t UplinkInformationExchangeFailure_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_UplinkInformationExchangeFailure(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_UplinkInformationExchangeFailure, UplinkInformationExchangeFailure_sequence);
+
+ return offset;
+}
+static int dissect_uplinkInformationExchangeFailure(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_UplinkInformationExchangeFailure(tvb, offset, pinfo, tree, hf_ranap_uplinkInformationExchangeFailure);
+}
+
+
+static const per_sequence_t MBMSSessionStartFailure_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_MBMSSessionStartFailure(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSSessionStartFailure, MBMSSessionStartFailure_sequence);
+
+ return offset;
+}
+static int dissect_mBMSSessionStartFailure(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSSessionStartFailure(tvb, offset, pinfo, tree, hf_ranap_mBMSSessionStartFailure);
+}
+
+
+static const per_sequence_t MBMSSessionUpdateFailure_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_MBMSSessionUpdateFailure(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSSessionUpdateFailure, MBMSSessionUpdateFailure_sequence);
+
+ return offset;
+}
+static int dissect_mBMSSessionUpdateFailure(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSSessionUpdateFailure(tvb, offset, pinfo, tree, hf_ranap_mBMSSessionUpdateFailure);
+}
+
+
+static const per_sequence_t MBMSRegistrationFailure_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_MBMSRegistrationFailure(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSRegistrationFailure, MBMSRegistrationFailure_sequence);
+
+ return offset;
+}
+static int dissect_mBMSRegistrationFailure(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSRegistrationFailure(tvb, offset, pinfo, tree, hf_ranap_mBMSRegistrationFailure);
+}
+
+
+static const per_sequence_t MBMSRABReleaseFailure_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_MBMSRABReleaseFailure(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSRABReleaseFailure, MBMSRABReleaseFailure_sequence);
+
+ return offset;
+}
+static int dissect_mBMSRABReleaseFailure(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSRABReleaseFailure(tvb, offset, pinfo, tree, hf_ranap_mBMSRABReleaseFailure);
+}
+
+
+static const value_string ranap_Dummy_UnsuccessfulOutcome_messages_vals[] = {
+ { 0, "relocationPreparationFailure" },
+ { 1, "relocationFailure" },
+ { 2, "securityModeReject" },
+ { 3, "locationRelatedDataFailure" },
+ { 4, "informationTransferFailure" },
+ { 5, "uplinkInformationExchangeFailure" },
+ { 6, "mBMSSessionStartFailure" },
+ { 7, "mBMSSessionUpdateFailure" },
+ { 8, "mBMSRegistrationFailure" },
+ { 9, "mBMSRABReleaseFailure" },
+ { 0, NULL }
+};
+
+static const per_choice_t Dummy_UnsuccessfulOutcome_messages_choice[] = {
+ { 0, "relocationPreparationFailure", ASN1_EXTENSION_ROOT , dissect_relocationPreparationFailure },
+ { 1, "relocationFailure" , ASN1_EXTENSION_ROOT , dissect_relocationFailure },
+ { 2, "securityModeReject" , ASN1_EXTENSION_ROOT , dissect_securityModeReject },
+ { 3, "locationRelatedDataFailure" , ASN1_EXTENSION_ROOT , dissect_locationRelatedDataFailure },
+ { 4, "informationTransferFailure" , ASN1_EXTENSION_ROOT , dissect_informationTransferFailure },
+ { 5, "uplinkInformationExchangeFailure", ASN1_EXTENSION_ROOT , dissect_uplinkInformationExchangeFailure },
+ { 6, "mBMSSessionStartFailure" , ASN1_EXTENSION_ROOT , dissect_mBMSSessionStartFailure },
+ { 7, "mBMSSessionUpdateFailure" , ASN1_EXTENSION_ROOT , dissect_mBMSSessionUpdateFailure },
+ { 8, "mBMSRegistrationFailure" , ASN1_EXTENSION_ROOT , dissect_mBMSRegistrationFailure },
+ { 9, "mBMSRABReleaseFailure" , ASN1_EXTENSION_ROOT , dissect_mBMSRABReleaseFailure },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_Dummy_UnsuccessfulOutcome_messages(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Dummy_UnsuccessfulOutcome_messages, Dummy_UnsuccessfulOutcome_messages_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t RAB_AssignmentResponse_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_AssignmentResponse(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_AssignmentResponse, RAB_AssignmentResponse_sequence);
+
+ return offset;
+}
+static int dissect_rAB_AssignmentResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_AssignmentResponse(tvb, offset, pinfo, tree, hf_ranap_rAB_AssignmentResponse);
+}
+
+
+static const per_sequence_t MBMSUELinkingResponse_sequence[] = {
+ { "protocolIEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_protocolIEs },
+ { "protocolExtensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_protocolExtensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_MBMSUELinkingResponse(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSUELinkingResponse, MBMSUELinkingResponse_sequence);
+
+ return offset;
+}
+static int dissect_mBMSUELinkingResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSUELinkingResponse(tvb, offset, pinfo, tree, hf_ranap_mBMSUELinkingResponse);
+}
+
+
+static const value_string ranap_Dummy_Outcome_messages_vals[] = {
+ { 0, "iu-ReleaseCommand" },
+ { 1, "rAB-AssignmentResponse" },
+ { 2, "mBMSUELinkingResponse" },
+ { 0, NULL }
+};
+
+static const per_choice_t Dummy_Outcome_messages_choice[] = {
+ { 0, "iu-ReleaseCommand" , ASN1_EXTENSION_ROOT , dissect_iu_ReleaseCommand },
+ { 1, "rAB-AssignmentResponse" , ASN1_EXTENSION_ROOT , dissect_rAB_AssignmentResponse },
+ { 2, "mBMSUELinkingResponse" , ASN1_EXTENSION_ROOT , dissect_mBMSUELinkingResponse },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_Dummy_Outcome_messages(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Dummy_Outcome_messages, Dummy_Outcome_messages_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string ranap_AccuracyFulfilmentIndicator_vals[] = {
+ { 0, "requested-Accuracy-Fulfilled" },
+ { 1, "requested-Accuracy-Not-Fulfilled" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_AccuracyFulfilmentIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_id_AccuracyFulfilmentIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_AccuracyFulfilmentIndicator(tvb, offset, pinfo, tree, hf_ranap_id_AccuracyFulfilmentIndicator);
+}
+
+
+
+static int
+dissect_ranap_APN(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 1, 255, NULL);
+
+ return offset;
+}
+static int dissect_id_APN(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_APN(tvb, offset, pinfo, tree, hf_ranap_id_APN);
+}
+static int dissect_aPN(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_APN(tvb, offset, pinfo, tree, hf_ranap_aPN);
+}
+
+
+
+static int
+dissect_ranap_PLMNidentity(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 3, 3, NULL);
+
+ return offset;
+}
+static int dissect_id_SelectedPLMN_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PLMNidentity(tvb, offset, pinfo, tree, hf_ranap_id_SelectedPLMN_ID);
+}
+static int dissect_pLMNidentity(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PLMNidentity(tvb, offset, pinfo, tree, hf_ranap_pLMNidentity);
+}
+
+
+
+static int
+dissect_ranap_LAC(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 2, 2, NULL);
+
+ return offset;
+}
+static int dissect_lAC(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_LAC(tvb, offset, pinfo, tree, hf_ranap_lAC);
+}
+
+
+
+static int
+dissect_ranap_SAC(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 2, 2, NULL);
+
+ return offset;
+}
+static int dissect_sAC(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SAC(tvb, offset, pinfo, tree, hf_ranap_sAC);
+}
+
+
+static const per_sequence_t SAI_sequence[] = {
+ { "pLMNidentity" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_pLMNidentity },
+ { "lAC" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lAC },
+ { "sAC" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_sAC },
+ { "iE-Extensions" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_SAI(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_SAI, SAI_sequence);
+
+ return offset;
+}
+static int dissect_id_SAI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SAI(tvb, offset, pinfo, tree, hf_ranap_id_SAI);
+}
+static int dissect_sAI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SAI(tvb, offset, pinfo, tree, hf_ranap_sAI);
+}
+
+
+static const value_string ranap_T_latitudeSign_vals[] = {
+ { 0, "north" },
+ { 1, "south" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_T_latitudeSign(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_latitudeSign(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_T_latitudeSign(tvb, offset, pinfo, tree, hf_ranap_latitudeSign);
+}
+
+
+
+static int
+dissect_ranap_INTEGER_0_8388607(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 8388607U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_latitude(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_INTEGER_0_8388607(tvb, offset, pinfo, tree, hf_ranap_latitude);
+}
+
+
+
+static int
+dissect_ranap_INTEGER_M8388608_8388607(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ -8388608, 8388607U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_longitude(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_INTEGER_M8388608_8388607(tvb, offset, pinfo, tree, hf_ranap_longitude);
+}
+
+
+static const per_sequence_t GeographicalCoordinates_sequence[] = {
+ { "latitudeSign" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_latitudeSign },
+ { "latitude" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_latitude },
+ { "longitude" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_longitude },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_GeographicalCoordinates(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_GeographicalCoordinates, GeographicalCoordinates_sequence);
+
+ return offset;
+}
+static int dissect_geographicalCoordinates(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GeographicalCoordinates(tvb, offset, pinfo, tree, hf_ranap_geographicalCoordinates);
+}
+
+
+static const per_sequence_t GA_Point_sequence[] = {
+ { "geographicalCoordinates" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_geographicalCoordinates },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_GA_Point(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_GA_Point, GA_Point_sequence);
+
+ return offset;
+}
+static int dissect_point(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GA_Point(tvb, offset, pinfo, tree, hf_ranap_point);
+}
+
+
+
+static int
+dissect_ranap_INTEGER_0_127(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 127U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_uncertaintyRadius(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_INTEGER_0_127(tvb, offset, pinfo, tree, hf_ranap_uncertaintyRadius);
+}
+static int dissect_confidence(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_INTEGER_0_127(tvb, offset, pinfo, tree, hf_ranap_confidence);
+}
+static int dissect_uncertaintyAltitude(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_INTEGER_0_127(tvb, offset, pinfo, tree, hf_ranap_uncertaintyAltitude);
+}
+static int dissect_uncertaintyCode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_INTEGER_0_127(tvb, offset, pinfo, tree, hf_ranap_uncertaintyCode);
+}
+static int dissect_uncertaintySemi_major(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_INTEGER_0_127(tvb, offset, pinfo, tree, hf_ranap_uncertaintySemi_major);
+}
+static int dissect_uncertaintySemi_minor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_INTEGER_0_127(tvb, offset, pinfo, tree, hf_ranap_uncertaintySemi_minor);
+}
+static int dissect_accuracyCode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_INTEGER_0_127(tvb, offset, pinfo, tree, hf_ranap_accuracyCode);
+}
+
+
+static const per_sequence_t GA_PointWithUnCertainty_sequence[] = {
+ { "geographicalCoordinates" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_geographicalCoordinates },
+ { "iE-Extensions" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { "uncertaintyCode" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_uncertaintyCode },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_GA_PointWithUnCertainty(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_GA_PointWithUnCertainty, GA_PointWithUnCertainty_sequence);
+
+ return offset;
+}
+static int dissect_pointWithUnCertainty(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GA_PointWithUnCertainty(tvb, offset, pinfo, tree, hf_ranap_pointWithUnCertainty);
+}
+
+
+static const per_sequence_t GA_Polygon_item_sequence[] = {
+ { "geographicalCoordinates" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_geographicalCoordinates },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_GA_Polygon_item(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_GA_Polygon_item, GA_Polygon_item_sequence);
+
+ return offset;
+}
+static int dissect_GA_Polygon_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GA_Polygon_item(tvb, offset, pinfo, tree, hf_ranap_GA_Polygon_item);
+}
+
+
+static const per_sequence_t GA_Polygon_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_GA_Polygon_item },
+};
+
+static int
+dissect_ranap_GA_Polygon(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_GA_Polygon, GA_Polygon_sequence_of,
+ 1, 15);
+
+ return offset;
+}
+static int dissect_polygon(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GA_Polygon(tvb, offset, pinfo, tree, hf_ranap_polygon);
+}
+
+
+
+static int
+dissect_ranap_INTEGER_0_179(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 179U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_offsetAngle(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_INTEGER_0_179(tvb, offset, pinfo, tree, hf_ranap_offsetAngle);
+}
+static int dissect_includedAngle(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_INTEGER_0_179(tvb, offset, pinfo, tree, hf_ranap_includedAngle);
+}
+static int dissect_orientationOfMajorAxis(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_INTEGER_0_179(tvb, offset, pinfo, tree, hf_ranap_orientationOfMajorAxis);
+}
+
+
+static const per_sequence_t GA_UncertaintyEllipse_sequence[] = {
+ { "uncertaintySemi-major" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_uncertaintySemi_major },
+ { "uncertaintySemi-minor" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_uncertaintySemi_minor },
+ { "orientationOfMajorAxis" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_orientationOfMajorAxis },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_GA_UncertaintyEllipse(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_GA_UncertaintyEllipse, GA_UncertaintyEllipse_sequence);
+
+ return offset;
+}
+static int dissect_uncertaintyEllipse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GA_UncertaintyEllipse(tvb, offset, pinfo, tree, hf_ranap_uncertaintyEllipse);
+}
+
+
+static const per_sequence_t GA_PointWithUnCertaintyEllipse_sequence[] = {
+ { "geographicalCoordinates" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_geographicalCoordinates },
+ { "uncertaintyEllipse" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_uncertaintyEllipse },
+ { "confidence" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_confidence },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_GA_PointWithUnCertaintyEllipse(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_GA_PointWithUnCertaintyEllipse, GA_PointWithUnCertaintyEllipse_sequence);
+
+ return offset;
+}
+static int dissect_pointWithUncertaintyEllipse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GA_PointWithUnCertaintyEllipse(tvb, offset, pinfo, tree, hf_ranap_pointWithUncertaintyEllipse);
+}
+
+
+static const value_string ranap_T_directionOfAltitude_vals[] = {
+ { 0, "height" },
+ { 1, "depth" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_T_directionOfAltitude(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_directionOfAltitude(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_T_directionOfAltitude(tvb, offset, pinfo, tree, hf_ranap_directionOfAltitude);
+}
+
+
+
+static int
+dissect_ranap_INTEGER_0_32767(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 32767U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_altitude(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_INTEGER_0_32767(tvb, offset, pinfo, tree, hf_ranap_altitude);
+}
+static int dissect_ageOfSAI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_INTEGER_0_32767(tvb, offset, pinfo, tree, hf_ranap_ageOfSAI);
+}
+
+
+static const per_sequence_t GA_AltitudeAndDirection_sequence[] = {
+ { "directionOfAltitude" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_directionOfAltitude },
+ { "altitude" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_altitude },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_GA_AltitudeAndDirection(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_GA_AltitudeAndDirection, GA_AltitudeAndDirection_sequence);
+
+ return offset;
+}
+static int dissect_altitudeAndDirection(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GA_AltitudeAndDirection(tvb, offset, pinfo, tree, hf_ranap_altitudeAndDirection);
+}
+
+
+static const per_sequence_t GA_PointWithAltitude_sequence[] = {
+ { "geographicalCoordinates" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_geographicalCoordinates },
+ { "altitudeAndDirection" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_altitudeAndDirection },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_GA_PointWithAltitude(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_GA_PointWithAltitude, GA_PointWithAltitude_sequence);
+
+ return offset;
+}
+static int dissect_pointWithAltitude(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GA_PointWithAltitude(tvb, offset, pinfo, tree, hf_ranap_pointWithAltitude);
+}
+
+
+static const per_sequence_t GA_PointWithAltitudeAndUncertaintyEllipsoid_sequence[] = {
+ { "geographicalCoordinates" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_geographicalCoordinates },
+ { "altitudeAndDirection" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_altitudeAndDirection },
+ { "uncertaintyEllipse" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_uncertaintyEllipse },
+ { "uncertaintyAltitude" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_uncertaintyAltitude },
+ { "confidence" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_confidence },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_GA_PointWithAltitudeAndUncertaintyEllipsoid(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_GA_PointWithAltitudeAndUncertaintyEllipsoid, GA_PointWithAltitudeAndUncertaintyEllipsoid_sequence);
+
+ return offset;
+}
+static int dissect_pointWithAltitudeAndUncertaintyEllipsoid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GA_PointWithAltitudeAndUncertaintyEllipsoid(tvb, offset, pinfo, tree, hf_ranap_pointWithAltitudeAndUncertaintyEllipsoid);
+}
+
+
+static const per_sequence_t GA_EllipsoidArc_sequence[] = {
+ { "geographicalCoordinates" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_geographicalCoordinates },
+ { "innerRadius" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_innerRadius },
+ { "uncertaintyRadius" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_uncertaintyRadius },
+ { "offsetAngle" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_offsetAngle },
+ { "includedAngle" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_includedAngle },
+ { "confidence" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_confidence },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_GA_EllipsoidArc(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_GA_EllipsoidArc, GA_EllipsoidArc_sequence);
+
+ return offset;
+}
+static int dissect_ellipsoidArc(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GA_EllipsoidArc(tvb, offset, pinfo, tree, hf_ranap_ellipsoidArc);
+}
+
+
+static const value_string ranap_GeographicalArea_vals[] = {
+ { 0, "point" },
+ { 1, "pointWithUnCertainty" },
+ { 2, "polygon" },
+ { 3, "pointWithUncertaintyEllipse" },
+ { 4, "pointWithAltitude" },
+ { 5, "pointWithAltitudeAndUncertaintyEllipsoid" },
+ { 6, "ellipsoidArc" },
+ { 0, NULL }
+};
+
+static const per_choice_t GeographicalArea_choice[] = {
+ { 0, "point" , ASN1_EXTENSION_ROOT , dissect_point },
+ { 1, "pointWithUnCertainty" , ASN1_EXTENSION_ROOT , dissect_pointWithUnCertainty },
+ { 2, "polygon" , ASN1_EXTENSION_ROOT , dissect_polygon },
+ { 3, "pointWithUncertaintyEllipse" , ASN1_NOT_EXTENSION_ROOT, dissect_pointWithUncertaintyEllipse },
+ { 4, "pointWithAltitude" , ASN1_NOT_EXTENSION_ROOT, dissect_pointWithAltitude },
+ { 5, "pointWithAltitudeAndUncertaintyEllipsoid", ASN1_NOT_EXTENSION_ROOT, dissect_pointWithAltitudeAndUncertaintyEllipsoid },
+ { 6, "ellipsoidArc" , ASN1_NOT_EXTENSION_ROOT, dissect_ellipsoidArc },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_GeographicalArea(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_GeographicalArea, GeographicalArea_choice,
+ NULL);
+
+ return offset;
+}
+static int dissect_geographicalArea(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GeographicalArea(tvb, offset, pinfo, tree, hf_ranap_geographicalArea);
+}
+
+
+static const value_string ranap_AreaIdentity_vals[] = {
+ { 0, "sAI" },
+ { 1, "geographicalArea" },
+ { 0, NULL }
+};
+
+static const per_choice_t AreaIdentity_choice[] = {
+ { 0, "sAI" , ASN1_EXTENSION_ROOT , dissect_sAI },
+ { 1, "geographicalArea" , ASN1_EXTENSION_ROOT , dissect_geographicalArea },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_AreaIdentity(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_AreaIdentity, AreaIdentity_choice,
+ NULL);
+
+ return offset;
+}
+static int dissect_id_AreaIdentity(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_AreaIdentity(tvb, offset, pinfo, tree, hf_ranap_id_AreaIdentity);
+}
+
+
+static const value_string ranap_Alt_RAB_Parameter_MaxBitrateType_vals[] = {
+ { 0, "unspecified" },
+ { 1, "value-range" },
+ { 2, "discrete-values" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_Alt_RAB_Parameter_MaxBitrateType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 2, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_altMaxBitrateType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Alt_RAB_Parameter_MaxBitrateType(tvb, offset, pinfo, tree, hf_ranap_altMaxBitrateType);
+}
+
+
+
+static int
+dissect_ranap_MaxBitrate(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 1U, 16000000U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_Alt_RAB_Parameter_MaxBitrateList_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MaxBitrate(tvb, offset, pinfo, tree, hf_ranap_Alt_RAB_Parameter_MaxBitrateList_item);
+}
+static int dissect_Ass_RAB_Parameter_MaxBitrateList_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MaxBitrate(tvb, offset, pinfo, tree, hf_ranap_Ass_RAB_Parameter_MaxBitrateList_item);
+}
+static int dissect_RAB_Parameter_MaxBitrateList_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MaxBitrate(tvb, offset, pinfo, tree, hf_ranap_RAB_Parameter_MaxBitrateList_item);
+}
+static int dissect_Requested_RAB_Parameter_MaxBitrateList_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MaxBitrate(tvb, offset, pinfo, tree, hf_ranap_Requested_RAB_Parameter_MaxBitrateList_item);
+}
+
+
+static const per_sequence_t Alt_RAB_Parameter_MaxBitrateList_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_Alt_RAB_Parameter_MaxBitrateList_item },
+};
+
+static int
+dissect_ranap_Alt_RAB_Parameter_MaxBitrateList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Alt_RAB_Parameter_MaxBitrateList, Alt_RAB_Parameter_MaxBitrateList_sequence_of,
+ 1, 2);
+
+ return offset;
+}
+static int dissect_Alt_RAB_Parameter_MaxBitrates_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Alt_RAB_Parameter_MaxBitrateList(tvb, offset, pinfo, tree, hf_ranap_Alt_RAB_Parameter_MaxBitrates_item);
+}
+
+
+static const per_sequence_t Alt_RAB_Parameter_MaxBitrates_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_Alt_RAB_Parameter_MaxBitrates_item },
+};
+
+static int
+dissect_ranap_Alt_RAB_Parameter_MaxBitrates(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Alt_RAB_Parameter_MaxBitrates, Alt_RAB_Parameter_MaxBitrates_sequence_of,
+ 1, 16);
+
+ return offset;
+}
+static int dissect_altMaxBitrates(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Alt_RAB_Parameter_MaxBitrates(tvb, offset, pinfo, tree, hf_ranap_altMaxBitrates);
+}
+
+
+static const per_sequence_t Alt_RAB_Parameter_MaxBitrateInf_sequence[] = {
+ { "altMaxBitrateType" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_altMaxBitrateType },
+ { "altMaxBitrates" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_altMaxBitrates },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_Alt_RAB_Parameter_MaxBitrateInf(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Alt_RAB_Parameter_MaxBitrateInf, Alt_RAB_Parameter_MaxBitrateInf_sequence);
+
+ return offset;
+}
+static int dissect_altMaxBitrateInf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Alt_RAB_Parameter_MaxBitrateInf(tvb, offset, pinfo, tree, hf_ranap_altMaxBitrateInf);
+}
+
+
+static const value_string ranap_Alt_RAB_Parameter_GuaranteedBitrateType_vals[] = {
+ { 0, "unspecified" },
+ { 1, "value-range" },
+ { 2, "discrete-values" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_Alt_RAB_Parameter_GuaranteedBitrateType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 2, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_altGuaranteedBitrateType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Alt_RAB_Parameter_GuaranteedBitrateType(tvb, offset, pinfo, tree, hf_ranap_altGuaranteedBitrateType);
+}
+
+
+
+static int
+dissect_ranap_GuaranteedBitrate(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 16000000U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_Alt_RAB_Parameter_GuaranteedBitrateList_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GuaranteedBitrate(tvb, offset, pinfo, tree, hf_ranap_Alt_RAB_Parameter_GuaranteedBitrateList_item);
+}
+static int dissect_Ass_RAB_Parameter_GuaranteedBitrateList_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GuaranteedBitrate(tvb, offset, pinfo, tree, hf_ranap_Ass_RAB_Parameter_GuaranteedBitrateList_item);
+}
+static int dissect_RAB_Parameter_GuaranteedBitrateList_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GuaranteedBitrate(tvb, offset, pinfo, tree, hf_ranap_RAB_Parameter_GuaranteedBitrateList_item);
+}
+static int dissect_Requested_RAB_Parameter_GuaranteedBitrateList_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GuaranteedBitrate(tvb, offset, pinfo, tree, hf_ranap_Requested_RAB_Parameter_GuaranteedBitrateList_item);
+}
+
+
+static const per_sequence_t Alt_RAB_Parameter_GuaranteedBitrateList_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_Alt_RAB_Parameter_GuaranteedBitrateList_item },
+};
+
+static int
+dissect_ranap_Alt_RAB_Parameter_GuaranteedBitrateList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Alt_RAB_Parameter_GuaranteedBitrateList, Alt_RAB_Parameter_GuaranteedBitrateList_sequence_of,
+ 1, 2);
+
+ return offset;
+}
+static int dissect_Alt_RAB_Parameter_GuaranteedBitrates_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Alt_RAB_Parameter_GuaranteedBitrateList(tvb, offset, pinfo, tree, hf_ranap_Alt_RAB_Parameter_GuaranteedBitrates_item);
+}
+
+
+static const per_sequence_t Alt_RAB_Parameter_GuaranteedBitrates_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_Alt_RAB_Parameter_GuaranteedBitrates_item },
+};
+
+static int
+dissect_ranap_Alt_RAB_Parameter_GuaranteedBitrates(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Alt_RAB_Parameter_GuaranteedBitrates, Alt_RAB_Parameter_GuaranteedBitrates_sequence_of,
+ 1, 16);
+
+ return offset;
+}
+static int dissect_altGuaranteedBitrates(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Alt_RAB_Parameter_GuaranteedBitrates(tvb, offset, pinfo, tree, hf_ranap_altGuaranteedBitrates);
+}
+
+
+static const per_sequence_t Alt_RAB_Parameter_GuaranteedBitrateInf_sequence[] = {
+ { "altGuaranteedBitrateType" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_altGuaranteedBitrateType },
+ { "altGuaranteedBitrates" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_altGuaranteedBitrates },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_Alt_RAB_Parameter_GuaranteedBitrateInf(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Alt_RAB_Parameter_GuaranteedBitrateInf, Alt_RAB_Parameter_GuaranteedBitrateInf_sequence);
+
+ return offset;
+}
+static int dissect_altGuaranteedBitRateInf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Alt_RAB_Parameter_GuaranteedBitrateInf(tvb, offset, pinfo, tree, hf_ranap_altGuaranteedBitRateInf);
+}
+
+
+static const per_sequence_t Alt_RAB_Parameters_sequence[] = {
+ { "altMaxBitrateInf" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_altMaxBitrateInf },
+ { "altGuaranteedBitRateInf" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_altGuaranteedBitRateInf },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_Alt_RAB_Parameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Alt_RAB_Parameters, Alt_RAB_Parameters_sequence);
+
+ return offset;
+}
+static int dissect_id_Alt_RAB_Parameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Alt_RAB_Parameters(tvb, offset, pinfo, tree, hf_ranap_id_Alt_RAB_Parameters);
+}
+
+
+static const per_sequence_t Ass_RAB_Parameter_MaxBitrateList_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_Ass_RAB_Parameter_MaxBitrateList_item },
+};
+
+static int
+dissect_ranap_Ass_RAB_Parameter_MaxBitrateList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Ass_RAB_Parameter_MaxBitrateList, Ass_RAB_Parameter_MaxBitrateList_sequence_of,
+ 1, 2);
+
+ return offset;
+}
+static int dissect_assMaxBitrateInf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Ass_RAB_Parameter_MaxBitrateList(tvb, offset, pinfo, tree, hf_ranap_assMaxBitrateInf);
+}
+
+
+static const per_sequence_t Ass_RAB_Parameter_GuaranteedBitrateList_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_Ass_RAB_Parameter_GuaranteedBitrateList_item },
+};
+
+static int
+dissect_ranap_Ass_RAB_Parameter_GuaranteedBitrateList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Ass_RAB_Parameter_GuaranteedBitrateList, Ass_RAB_Parameter_GuaranteedBitrateList_sequence_of,
+ 1, 2);
+
+ return offset;
+}
+static int dissect_assGuaranteedBitRateInf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Ass_RAB_Parameter_GuaranteedBitrateList(tvb, offset, pinfo, tree, hf_ranap_assGuaranteedBitRateInf);
+}
+
+
+static const per_sequence_t Ass_RAB_Parameters_sequence[] = {
+ { "assMaxBitrateInf" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_assMaxBitrateInf },
+ { "assGuaranteedBitRateInf" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_assGuaranteedBitRateInf },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_Ass_RAB_Parameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Ass_RAB_Parameters, Ass_RAB_Parameters_sequence);
+
+ return offset;
+}
+static int dissect_id_Ass_RAB_Parameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Ass_RAB_Parameters(tvb, offset, pinfo, tree, hf_ranap_id_Ass_RAB_Parameters);
+}
+
+
+
+static int
+dissect_ranap_BIT_STRING_SIZE_1(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_bit_string(tvb, offset, pinfo, tree, hf_index,
+ 1, 1, FALSE);
+
+ return offset;
+}
+static int dissect_cipheringKeyFlag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_BIT_STRING_SIZE_1(tvb, offset, pinfo, tree, hf_ranap_cipheringKeyFlag);
+}
+
+
+
+static int
+dissect_ranap_BIT_STRING_SIZE_56(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_bit_string(tvb, offset, pinfo, tree, hf_index,
+ 56, 56, FALSE);
+
+ return offset;
+}
+static int dissect_currentDecipheringKey(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_BIT_STRING_SIZE_56(tvb, offset, pinfo, tree, hf_ranap_currentDecipheringKey);
+}
+static int dissect_nextDecipheringKey(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_BIT_STRING_SIZE_56(tvb, offset, pinfo, tree, hf_ranap_nextDecipheringKey);
+}
+
+
+static const per_sequence_t BroadcastAssistanceDataDecipheringKeys_sequence[] = {
+ { "cipheringKeyFlag" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_cipheringKeyFlag },
+ { "currentDecipheringKey" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_currentDecipheringKey },
+ { "nextDecipheringKey" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nextDecipheringKey },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_BroadcastAssistanceDataDecipheringKeys(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_BroadcastAssistanceDataDecipheringKeys, BroadcastAssistanceDataDecipheringKeys_sequence);
+
+ return offset;
+}
+static int dissect_id_BroadcastAssistanceDataDecipheringKeys(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_BroadcastAssistanceDataDecipheringKeys(tvb, offset, pinfo, tree, hf_ranap_id_BroadcastAssistanceDataDecipheringKeys);
+}
+
+
+static const value_string ranap_RequestedLocationRelatedDataType_vals[] = {
+ { 0, "decipheringKeysUEBasedOTDOA" },
+ { 1, "decipheringKeysAssistedGPS" },
+ { 2, "dedicatedAssistanceDataUEBasedOTDOA" },
+ { 3, "dedicatedAssistanceDataAssistedGPS" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_RequestedLocationRelatedDataType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 3, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_requestedLocationRelatedDataType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RequestedLocationRelatedDataType(tvb, offset, pinfo, tree, hf_ranap_requestedLocationRelatedDataType);
+}
+
+
+
+static int
+dissect_ranap_RequestedGPSAssistanceData(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 1, 38, NULL);
+
+ return offset;
+}
+static int dissect_requestedGPSAssistanceData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RequestedGPSAssistanceData(tvb, offset, pinfo, tree, hf_ranap_requestedGPSAssistanceData);
+}
+
+
+static const per_sequence_t LocationRelatedDataRequestType_sequence[] = {
+ { "requestedLocationRelatedDataType", ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_requestedLocationRelatedDataType },
+ { "requestedGPSAssistanceData" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_requestedGPSAssistanceData },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_LocationRelatedDataRequestType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_LocationRelatedDataRequestType, LocationRelatedDataRequestType_sequence);
+
+ return offset;
+}
+static int dissect_id_LocationRelatedDataRequestType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_LocationRelatedDataRequestType(tvb, offset, pinfo, tree, hf_ranap_id_LocationRelatedDataRequestType);
+}
+
+
+static const value_string ranap_CN_DomainIndicator_vals[] = {
+ { 0, "cs-domain" },
+ { 1, "ps-domain" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_CN_DomainIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_id_CN_DomainIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CN_DomainIndicator(tvb, offset, pinfo, tree, hf_ranap_id_CN_DomainIndicator);
+}
+static int dissect_cN_DomainIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CN_DomainIndicator(tvb, offset, pinfo, tree, hf_ranap_cN_DomainIndicator);
+}
+
+
+static const value_string ranap_CauseRadioNetwork_vals[] = {
+ { 1, "rab-pre-empted" },
+ { 2, "trelocoverall-expiry" },
+ { 3, "trelocprep-expiry" },
+ { 4, "treloccomplete-expiry" },
+ { 5, "tqueing-expiry" },
+ { 6, "relocation-triggered" },
+ { 7, "trellocalloc-expiry" },
+ { 8, "unable-to-establish-during-relocation" },
+ { 9, "unknown-target-rnc" },
+ { 10, "relocation-cancelled" },
+ { 11, "successful-relocation" },
+ { 12, "requested-ciphering-and-or-integrity-protection-algorithms-not-supported" },
+ { 13, "conflict-with-already-existing-integrity-protection-and-or-ciphering-information" },
+ { 14, "failure-in-the-radio-interface-procedure" },
+ { 15, "release-due-to-utran-generated-reason" },
+ { 16, "user-inactivity" },
+ { 17, "time-critical-relocation" },
+ { 18, "requested-traffic-class-not-available" },
+ { 19, "invalid-rab-parameters-value" },
+ { 20, "requested-maximum-bit-rate-not-available" },
+ { 21, "requested-guaranteed-bit-rate-not-available" },
+ { 22, "requested-transfer-delay-not-achievable" },
+ { 23, "invalid-rab-parameters-combination" },
+ { 24, "condition-violation-for-sdu-parameters" },
+ { 25, "condition-violation-for-traffic-handling-priority" },
+ { 26, "condition-violation-for-guaranteed-bit-rate" },
+ { 27, "user-plane-versions-not-supported" },
+ { 28, "iu-up-failure" },
+ { 29, "relocation-failure-in-target-CN-RNC-or-target-system" },
+ { 30, "invalid-RAB-ID" },
+ { 31, "no-remaining-rab" },
+ { 32, "interaction-with-other-procedure" },
+ { 33, "requested-maximum-bit-rate-for-dl-not-available" },
+ { 34, "requested-maximum-bit-rate-for-ul-not-available" },
+ { 35, "requested-guaranteed-bit-rate-for-dl-not-available" },
+ { 36, "requested-guaranteed-bit-rate-for-ul-not-available" },
+ { 37, "repeated-integrity-checking-failure" },
+ { 38, "requested-request-type-not-supported" },
+ { 39, "request-superseded" },
+ { 40, "release-due-to-UE-generated-signalling-connection-release" },
+ { 41, "resource-optimisation-relocation" },
+ { 42, "requested-information-not-available" },
+ { 43, "relocation-desirable-for-radio-reasons" },
+ { 44, "relocation-not-supported-in-target-RNC-or-target-system" },
+ { 45, "directed-retry" },
+ { 46, "radio-connection-with-UE-Lost" },
+ { 47, "rNC-unable-to-establish-all-RFCs" },
+ { 48, "deciphering-keys-not-available" },
+ { 49, "dedicated-assistance-data-not-available" },
+ { 50, "relocation-target-not-allowed" },
+ { 51, "location-reporting-congestion" },
+ { 52, "reduce-load-in-serving-cell" },
+ { 53, "no-radio-resources-available-in-target-cell" },
+ { 54, "gERAN-Iumode-failure" },
+ { 55, "access-restricted-due-to-shared-networks" },
+ { 56, "incoming-relocation-not-supported-due-to-PUESBINE-feature" },
+ { 57, "traffic-load-in-the-target-cell-higher-than-in-the-source-cell" },
+ { 58, "mBMS-no-multicast-service-for-this-UE" },
+ { 59, "mBMS-unknown-UE-ID" },
+ { 60, "successful-MBMS-session-start-no-data-bearer-necessary" },
+ { 61, "mBMS-superseded-due-to-NNSF" },
+ { 62, "mBMS-UE-linking-already-done" },
+ { 63, "mBMS-UE-de-linking-failure-no-existing-UE-linking" },
+ { 64, "tMGI-unknown" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_CauseRadioNetwork(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 1U, 64U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_radioNetwork(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CauseRadioNetwork(tvb, offset, pinfo, tree, hf_ranap_radioNetwork);
+}
+
+
+static const value_string ranap_CauseTransmissionNetwork_vals[] = {
+ { 65, "signalling-transport-resource-failure" },
+ { 66, "iu-transport-connection-failed-to-establish" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_CauseTransmissionNetwork(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 65U, 80U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_transmissionNetwork(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CauseTransmissionNetwork(tvb, offset, pinfo, tree, hf_ranap_transmissionNetwork);
+}
+
+
+static const value_string ranap_CauseNAS_vals[] = {
+ { 81, "user-restriction-start-indication" },
+ { 82, "user-restriction-end-indication" },
+ { 83, "normal-release" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_CauseNAS(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 81U, 96U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_nAS(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CauseNAS(tvb, offset, pinfo, tree, hf_ranap_nAS);
+}
+
+
+static const value_string ranap_CauseProtocol_vals[] = {
+ { 97, "transfer-syntax-error" },
+ { 98, "semantic-error" },
+ { 99, "message-not-compatible-with-receiver-state" },
+ { 100, "abstract-syntax-error-reject" },
+ { 101, "abstract-syntax-error-ignore-and-notify" },
+ { 102, "abstract-syntax-error-falsely-constructed-message" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_CauseProtocol(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 97U, 112U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_protocol(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CauseProtocol(tvb, offset, pinfo, tree, hf_ranap_protocol);
+}
+
+
+static const value_string ranap_CauseMisc_vals[] = {
+ { 113, "om-intervention" },
+ { 114, "no-resource-available" },
+ { 115, "unspecified-failure" },
+ { 116, "network-optimisation" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_CauseMisc(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 113U, 128U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_misc(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CauseMisc(tvb, offset, pinfo, tree, hf_ranap_misc);
+}
+
+
+
+static int
+dissect_ranap_CauseNon_Standard(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 129U, 256U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_non_Standard(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CauseNon_Standard(tvb, offset, pinfo, tree, hf_ranap_non_Standard);
+}
+
+
+static const value_string ranap_CauseRadioNetworkExtension_vals[] = {
+ { 257, "iP-multicast-address-and-APN-not-valid" },
+ { 258, "mBMS-de-registration-rejected-due-to-implicit-registration" },
+ { 259, "mBMS-request-superseded" },
+ { 260, "mBMS-de-registration-during-session-not-allowed" },
+ { 261, "mBMS-no-data-bearer-necessary" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_CauseRadioNetworkExtension(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 257U, 512U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_radioNetworkExtension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CauseRadioNetworkExtension(tvb, offset, pinfo, tree, hf_ranap_radioNetworkExtension);
+}
+
+
+static const value_string ranap_Cause_vals[] = {
+ { 0, "radioNetwork" },
+ { 1, "transmissionNetwork" },
+ { 2, "nAS" },
+ { 3, "protocol" },
+ { 4, "misc" },
+ { 5, "non-Standard" },
+ { 6, "radioNetworkExtension" },
+ { 0, NULL }
+};
+
+static const per_choice_t Cause_choice[] = {
+ { 0, "radioNetwork" , ASN1_EXTENSION_ROOT , dissect_radioNetwork },
+ { 1, "transmissionNetwork" , ASN1_EXTENSION_ROOT , dissect_transmissionNetwork },
+ { 2, "nAS" , ASN1_EXTENSION_ROOT , dissect_nAS },
+ { 3, "protocol" , ASN1_EXTENSION_ROOT , dissect_protocol },
+ { 4, "misc" , ASN1_EXTENSION_ROOT , dissect_misc },
+ { 5, "non-Standard" , ASN1_EXTENSION_ROOT , dissect_non_Standard },
+ { 6, "radioNetworkExtension" , ASN1_NOT_EXTENSION_ROOT, dissect_radioNetworkExtension },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_Cause(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Cause, Cause_choice,
+ NULL);
+
+ return offset;
+}
+static int dissect_id_Cause(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Cause(tvb, offset, pinfo, tree, hf_ranap_id_Cause);
+}
+static int dissect_cause(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Cause(tvb, offset, pinfo, tree, hf_ranap_cause);
+}
+
+
+static const value_string ranap_EncryptionAlgorithm_vals[] = {
+ { 0, "no-encryption" },
+ { 1, "standard-UMTS-encryption-algorith-UEA1" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_EncryptionAlgorithm(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 15U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_PermittedEncryptionAlgorithms_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_EncryptionAlgorithm(tvb, offset, pinfo, tree, hf_ranap_PermittedEncryptionAlgorithms_item);
+}
+
+
+
+static int
+dissect_ranap_ChosenEncryptionAlgorithm(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_EncryptionAlgorithm(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_ChosenEncryptionAlgorithm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ChosenEncryptionAlgorithm(tvb, offset, pinfo, tree, hf_ranap_id_ChosenEncryptionAlgorithm);
+}
+static int dissect_chosenEncryptionAlgorithForSignalling(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ChosenEncryptionAlgorithm(tvb, offset, pinfo, tree, hf_ranap_chosenEncryptionAlgorithForSignalling);
+}
+static int dissect_chosenEncryptionAlgorithForCS(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ChosenEncryptionAlgorithm(tvb, offset, pinfo, tree, hf_ranap_chosenEncryptionAlgorithForCS);
+}
+static int dissect_chosenEncryptionAlgorithForPS(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ChosenEncryptionAlgorithm(tvb, offset, pinfo, tree, hf_ranap_chosenEncryptionAlgorithForPS);
+}
+
+
+static const value_string ranap_IntegrityProtectionAlgorithm_vals[] = {
+ { 0, "standard-UMTS-integrity-algorithm-UIA1" },
+ { 15, "no-value" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_IntegrityProtectionAlgorithm(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 15U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_PermittedIntegrityProtectionAlgorithms_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_IntegrityProtectionAlgorithm(tvb, offset, pinfo, tree, hf_ranap_PermittedIntegrityProtectionAlgorithms_item);
+}
+
+
+
+static int
+dissect_ranap_ChosenIntegrityProtectionAlgorithm(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_IntegrityProtectionAlgorithm(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_ChosenIntegrityProtectionAlgorithm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ChosenIntegrityProtectionAlgorithm(tvb, offset, pinfo, tree, hf_ranap_id_ChosenIntegrityProtectionAlgorithm);
+}
+static int dissect_chosenIntegrityProtectionAlgorithm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ChosenIntegrityProtectionAlgorithm(tvb, offset, pinfo, tree, hf_ranap_chosenIntegrityProtectionAlgorithm);
+}
+
+
+
+static int
+dissect_ranap_ClassmarkInformation2(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ -1, -1, NULL);
+
+ return offset;
+}
+static int dissect_id_ClassmarkInformation2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ClassmarkInformation2(tvb, offset, pinfo, tree, hf_ranap_id_ClassmarkInformation2);
+}
+
+
+
+static int
+dissect_ranap_ClassmarkInformation3(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ -1, -1, NULL);
+
+ return offset;
+}
+static int dissect_id_ClassmarkInformation3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ClassmarkInformation3(tvb, offset, pinfo, tree, hf_ranap_id_ClassmarkInformation3);
+}
+
+
+static const value_string ranap_ClientType_vals[] = {
+ { 0, "emergency-Services" },
+ { 1, "value-Added-Services" },
+ { 2, "pLMN-Operator-Services" },
+ { 3, "lawful-Intercept-Services" },
+ { 4, "pLMN-Operator-Broadcast-Services" },
+ { 5, "pLMN-Operator-O-et-M" },
+ { 6, "pLMN-Operator-Anonymous-Statistics" },
+ { 7, "pLMN-Operator-Target-MS-Service-Support" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_ClientType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 7, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_id_ClientType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ClientType(tvb, offset, pinfo, tree, hf_ranap_id_ClientType);
+}
+
+
+
+static int
+dissect_ranap_OCTET_STRING_SIZE_3(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 3, 3, NULL);
+
+ return offset;
+}
+static int dissect_serviceID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_OCTET_STRING_SIZE_3(tvb, offset, pinfo, tree, hf_ranap_serviceID);
+}
+
+
+static const per_sequence_t TMGI_sequence[] = {
+ { "pLMNidentity" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_pLMNidentity },
+ { "serviceID" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_serviceID },
+ { "iE-Extensions" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_TMGI(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_TMGI, TMGI_sequence);
+
+ return offset;
+}
+static int dissect_id_TMGI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TMGI(tvb, offset, pinfo, tree, hf_ranap_id_TMGI);
+}
+static int dissect_tMGI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TMGI(tvb, offset, pinfo, tree, hf_ranap_tMGI);
+}
+static int dissect_MBMSIPMulticastAddressandAPNRequest_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TMGI(tvb, offset, pinfo, tree, hf_ranap_MBMSIPMulticastAddressandAPNRequest_item);
+}
+static int dissect_RequestedMulticastServiceList_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TMGI(tvb, offset, pinfo, tree, hf_ranap_RequestedMulticastServiceList_item);
+}
+
+
+
+static int
+dissect_ranap_MBMS_PTP_RAB_ID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_bit_string(tvb, offset, pinfo, tree, hf_index,
+ 8, 8, FALSE);
+
+ return offset;
+}
+static int dissect_mBMS_PTP_RAB_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMS_PTP_RAB_ID(tvb, offset, pinfo, tree, hf_ranap_mBMS_PTP_RAB_ID);
+}
+
+
+static const per_sequence_t JoinedMBMSBearerService_IEs_item_sequence[] = {
+ { "tMGI" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_tMGI },
+ { "mBMS-PTP-RAB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_mBMS_PTP_RAB_ID },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_JoinedMBMSBearerService_IEs_item(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_JoinedMBMSBearerService_IEs_item, JoinedMBMSBearerService_IEs_item_sequence);
+
+ return offset;
+}
+static int dissect_JoinedMBMSBearerService_IEs_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_JoinedMBMSBearerService_IEs_item(tvb, offset, pinfo, tree, hf_ranap_JoinedMBMSBearerService_IEs_item);
+}
+
+
+static const per_sequence_t JoinedMBMSBearerService_IEs_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_JoinedMBMSBearerService_IEs_item },
+};
+
+static int
+dissect_ranap_JoinedMBMSBearerService_IEs(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_JoinedMBMSBearerService_IEs, JoinedMBMSBearerService_IEs_sequence_of,
+ 1, 128);
+
+ return offset;
+}
+static int dissect_id_JoinedMBMSBearerServicesList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_JoinedMBMSBearerService_IEs(tvb, offset, pinfo, tree, hf_ranap_id_JoinedMBMSBearerServicesList);
+}
+static int dissect_joinedMBMSBearerService_IEs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_JoinedMBMSBearerService_IEs(tvb, offset, pinfo, tree, hf_ranap_joinedMBMSBearerService_IEs);
+}
+
+
+static const per_sequence_t CNMBMSLinkingInformation_sequence[] = {
+ { "joinedMBMSBearerService-IEs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_joinedMBMSBearerService_IEs },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_CNMBMSLinkingInformation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_CNMBMSLinkingInformation, CNMBMSLinkingInformation_sequence);
+
+ return offset;
+}
+static int dissect_id_CNMBMSLinkingInformation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CNMBMSLinkingInformation(tvb, offset, pinfo, tree, hf_ranap_id_CNMBMSLinkingInformation);
+}
+
+
+static const value_string ranap_TriggeringMessage_vals[] = {
+ { 0, "initiating-message" },
+ { 1, "successful-outcome" },
+ { 2, "unsuccessfull-outcome" },
+ { 3, "outcome" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_TriggeringMessage(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 3, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_triggeringMessage(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TriggeringMessage(tvb, offset, pinfo, tree, hf_ranap_triggeringMessage);
+}
+
+
+
+static int
+dissect_ranap_RepetitionNumber0(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 255U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_repetitionNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RepetitionNumber0(tvb, offset, pinfo, tree, hf_ranap_repetitionNumber);
+}
+
+
+static const per_sequence_t CriticalityDiagnostics_IE_List_item_sequence[] = {
+ { "iECriticality" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_iECriticality },
+ { "iE-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_iE_ID },
+ { "repetitionNumber" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_repetitionNumber },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_CriticalityDiagnostics_IE_List_item(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_CriticalityDiagnostics_IE_List_item, CriticalityDiagnostics_IE_List_item_sequence);
+
+ return offset;
+}
+static int dissect_CriticalityDiagnostics_IE_List_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CriticalityDiagnostics_IE_List_item(tvb, offset, pinfo, tree, hf_ranap_CriticalityDiagnostics_IE_List_item);
+}
+
+
+static const per_sequence_t CriticalityDiagnostics_IE_List_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_CriticalityDiagnostics_IE_List_item },
+};
+
+static int
+dissect_ranap_CriticalityDiagnostics_IE_List(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_CriticalityDiagnostics_IE_List, CriticalityDiagnostics_IE_List_sequence_of,
+ 1, 256);
+
+ return offset;
+}
+static int dissect_iEsCriticalityDiagnostics(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CriticalityDiagnostics_IE_List(tvb, offset, pinfo, tree, hf_ranap_iEsCriticalityDiagnostics);
+}
+
+
+static const per_sequence_t CriticalityDiagnostics_sequence[] = {
+ { "procedureCode" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_procedureCode },
+ { "triggeringMessage" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_triggeringMessage },
+ { "procedureCriticality" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_procedureCriticality },
+ { "iEsCriticalityDiagnostics" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iEsCriticalityDiagnostics },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_CriticalityDiagnostics(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_CriticalityDiagnostics, CriticalityDiagnostics_sequence);
+
+ return offset;
+}
+static int dissect_id_CriticalityDiagnostics(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CriticalityDiagnostics(tvb, offset, pinfo, tree, hf_ranap_id_CriticalityDiagnostics);
+}
+
+
+
+static int
+dissect_ranap_RAC(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 1, 1, NULL);
+
+ return offset;
+}
+static int dissect_id_RAC(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAC(tvb, offset, pinfo, tree, hf_ranap_id_RAC);
+}
+static int dissect_NewRAListofIdleModeUEs_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAC(tvb, offset, pinfo, tree, hf_ranap_NewRAListofIdleModeUEs_item);
+}
+static int dissect_RAListwithNoIdleModeUEsAnyMore_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAC(tvb, offset, pinfo, tree, hf_ranap_RAListwithNoIdleModeUEsAnyMore_item);
+}
+static int dissect_rAC(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAC(tvb, offset, pinfo, tree, hf_ranap_rAC);
+}
+static int dissect_RAofIdleModeUEs_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAC(tvb, offset, pinfo, tree, hf_ranap_RAofIdleModeUEs_item);
+}
+
+
+static const per_sequence_t NewRAListofIdleModeUEs_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_NewRAListofIdleModeUEs_item },
+};
+
+static int
+dissect_ranap_NewRAListofIdleModeUEs(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_NewRAListofIdleModeUEs, NewRAListofIdleModeUEs_sequence_of,
+ 1, 65536);
+
+ return offset;
+}
+static int dissect_newRAListofIdleModeUEs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_NewRAListofIdleModeUEs(tvb, offset, pinfo, tree, hf_ranap_newRAListofIdleModeUEs);
+}
+
+
+static const per_sequence_t RAListwithNoIdleModeUEsAnyMore_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_RAListwithNoIdleModeUEsAnyMore_item },
+};
+
+static int
+dissect_ranap_RAListwithNoIdleModeUEsAnyMore(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAListwithNoIdleModeUEsAnyMore, RAListwithNoIdleModeUEsAnyMore_sequence_of,
+ 1, 65536);
+
+ return offset;
+}
+static int dissect_rAListwithNoIdleModeUEsAnyMore(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAListwithNoIdleModeUEsAnyMore(tvb, offset, pinfo, tree, hf_ranap_rAListwithNoIdleModeUEsAnyMore);
+}
+
+
+static const per_sequence_t DeltaRAListofIdleModeUEs_sequence[] = {
+ { "newRAListofIdleModeUEs" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_newRAListofIdleModeUEs },
+ { "rAListwithNoIdleModeUEsAnyMore", ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rAListwithNoIdleModeUEsAnyMore },
+ { "iE-Extensions" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_DeltaRAListofIdleModeUEs(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_DeltaRAListofIdleModeUEs, DeltaRAListofIdleModeUEs_sequence);
+
+ return offset;
+}
+static int dissect_id_DeltaRAListofIdleModeUEs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_DeltaRAListofIdleModeUEs(tvb, offset, pinfo, tree, hf_ranap_id_DeltaRAListofIdleModeUEs);
+}
+
+
+
+static int
+dissect_ranap_DRX_CycleLengthCoefficient(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 6U, 9U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_id_DRX_CycleLengthCoefficient(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_DRX_CycleLengthCoefficient(tvb, offset, pinfo, tree, hf_ranap_id_DRX_CycleLengthCoefficient);
+}
+
+
+
+static int
+dissect_ranap_NAS_PDU(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+
+tvbuff_t *nas_pdu_tvb=NULL;
+
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ -1, -1, &nas_pdu_tvb);
+
+
+ if (nas_pdu_tvb)
+ dissector_try_port(nas_pdu_dissector_table, 0x1, nas_pdu_tvb, pinfo, top_tree);
+
+
+ return offset;
+}
+static int dissect_id_NAS_PDU(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_NAS_PDU(tvb, offset, pinfo, tree, hf_ranap_id_NAS_PDU);
+}
+static int dissect_nAS_PDU(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_NAS_PDU(tvb, offset, pinfo, tree, hf_ranap_nAS_PDU);
+}
+
+
+static const value_string ranap_SAPI_vals[] = {
+ { 0, "sapi-0" },
+ { 1, "sapi-3" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_SAPI(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_id_SAPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SAPI(tvb, offset, pinfo, tree, hf_ranap_id_SAPI);
+}
+static int dissect_sAPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SAPI(tvb, offset, pinfo, tree, hf_ranap_sAPI);
+}
+
+
+static const per_sequence_t DirectTransferInformationItem_RANAP_RelocInf_sequence[] = {
+ { "nAS-PDU" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_nAS_PDU },
+ { "sAPI" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_sAPI },
+ { "cN-DomainIndicator" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_cN_DomainIndicator },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_DirectTransferInformationItem_RANAP_RelocInf(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_DirectTransferInformationItem_RANAP_RelocInf, DirectTransferInformationItem_RANAP_RelocInf_sequence);
+
+ return offset;
+}
+static int dissect_id_DirectTransferInformationItem_RANAP_RelocInf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_DirectTransferInformationItem_RANAP_RelocInf(tvb, offset, pinfo, tree, hf_ranap_id_DirectTransferInformationItem_RANAP_RelocInf);
+}
+
+
+static const per_sequence_t ProtocolIE_ContainerList15_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ProtocolIE_ContainerList15_item },
+};
+
+static int
+dissect_ranap_ProtocolIE_ContainerList15(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ProtocolIE_ContainerList15, ProtocolIE_ContainerList15_sequence_of,
+ 1, 15);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ranap_DirectTransfer_IE_ContainerList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_ProtocolIE_ContainerList15(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ranap_DirectTransferInformationList_RANAP_RelocInf(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_DirectTransfer_IE_ContainerList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_DirectTransferInformationList_RANAP_RelocInf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_DirectTransferInformationList_RANAP_RelocInf(tvb, offset, pinfo, tree, hf_ranap_id_DirectTransferInformationList_RANAP_RelocInf);
+}
+
+
+
+static int
+dissect_ranap_DL_GTP_PDU_SequenceNumber(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 65535U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_id_DL_GTP_PDU_SequenceNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_DL_GTP_PDU_SequenceNumber(tvb, offset, pinfo, tree, hf_ranap_id_DL_GTP_PDU_SequenceNumber);
+}
+static int dissect_dL_GTP_PDU_SequenceNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_DL_GTP_PDU_SequenceNumber(tvb, offset, pinfo, tree, hf_ranap_dL_GTP_PDU_SequenceNumber);
+}
+static int dissect_dl_GTP_PDU_SequenceNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_DL_GTP_PDU_SequenceNumber(tvb, offset, pinfo, tree, hf_ranap_dl_GTP_PDU_SequenceNumber);
+}
+
+
+static const per_sequence_t PermittedEncryptionAlgorithms_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_PermittedEncryptionAlgorithms_item },
+};
+
+static int
+dissect_ranap_PermittedEncryptionAlgorithms(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_PermittedEncryptionAlgorithms, PermittedEncryptionAlgorithms_sequence_of,
+ 1, 16);
+
+ return offset;
+}
+static int dissect_encryptionpermittedAlgorithms(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PermittedEncryptionAlgorithms(tvb, offset, pinfo, tree, hf_ranap_encryptionpermittedAlgorithms);
+}
+
+
+
+static int
+dissect_ranap_EncryptionKey(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_bit_string(tvb, offset, pinfo, tree, hf_index,
+ 128, 128, FALSE);
+
+ return offset;
+}
+static int dissect_encryptionkey(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_EncryptionKey(tvb, offset, pinfo, tree, hf_ranap_encryptionkey);
+}
+static int dissect_cipheringKey(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_EncryptionKey(tvb, offset, pinfo, tree, hf_ranap_cipheringKey);
+}
+
+
+static const per_sequence_t EncryptionInformation_sequence[] = {
+ { "encryptionpermittedAlgorithms", ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_encryptionpermittedAlgorithms },
+ { "encryptionkey" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_encryptionkey },
+ { "iE-Extensions" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_EncryptionInformation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_EncryptionInformation, EncryptionInformation_sequence);
+
+ return offset;
+}
+static int dissect_id_EncryptionInformation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_EncryptionInformation(tvb, offset, pinfo, tree, hf_ranap_id_EncryptionInformation);
+}
+
+
+static const value_string ranap_FrequenceLayerConvergenceFlag_vals[] = {
+ { 0, "no-FLC-flag" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_FrequenceLayerConvergenceFlag(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 0, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_id_FrequenceLayerConvergenceFlag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_FrequenceLayerConvergenceFlag(tvb, offset, pinfo, tree, hf_ranap_id_FrequenceLayerConvergenceFlag);
+}
+
+
+
+static int
+dissect_ranap_GERAN_BSC_Container(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ -1, -1, NULL);
+
+ return offset;
+}
+static int dissect_id_GERAN_BSC_Container(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GERAN_BSC_Container(tvb, offset, pinfo, tree, hf_ranap_id_GERAN_BSC_Container);
+}
+
+
+
+static int
+dissect_ranap_GERAN_Classmark(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ -1, -1, NULL);
+
+ return offset;
+}
+static int dissect_id_GERAN_Classmark(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GERAN_Classmark(tvb, offset, pinfo, tree, hf_ranap_id_GERAN_Classmark);
+}
+static int dissect_gERAN_Classmark(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GERAN_Classmark(tvb, offset, pinfo, tree, hf_ranap_gERAN_Classmark);
+}
+
+
+
+static int
+dissect_ranap_RAB_ID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_bit_string(tvb, offset, pinfo, tree, hf_index,
+ 8, 8, FALSE);
+
+ return offset;
+}
+static int dissect_id_RAB_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_ID(tvb, offset, pinfo, tree, hf_ranap_id_RAB_ID);
+}
+static int dissect_rAB_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_ID(tvb, offset, pinfo, tree, hf_ranap_rAB_ID);
+}
+
+
+static const per_sequence_t GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item_sequence[] = {
+ { "rAB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_ID },
+ { "cause" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_cause },
+ { "gERAN-Classmark" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_gERAN_Classmark },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item, GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item_sequence);
+
+ return offset;
+}
+static int dissect_id_GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item(tvb, offset, pinfo, tree, hf_ranap_id_GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item);
+}
+
+
+static const per_sequence_t ProtocolIE_ContainerList256_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ProtocolIE_ContainerList256_item },
+};
+
+static int
+dissect_ranap_ProtocolIE_ContainerList256(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ProtocolIE_ContainerList256, ProtocolIE_ContainerList256_sequence_of,
+ 1, 256);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ranap_RAB_IE_ContainerList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_ProtocolIE_ContainerList256(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ranap_GERAN_Iumode_RAB_FailedList_RABAssgntResponse(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_RAB_IE_ContainerList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_GERAN_Iumode_RAB_FailedList_RABAssgntResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GERAN_Iumode_RAB_FailedList_RABAssgntResponse(tvb, offset, pinfo, tree, hf_ranap_id_GERAN_Iumode_RAB_FailedList_RABAssgntResponse);
+}
+
+
+
+static int
+dissect_ranap_CN_ID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 4095U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_cN_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CN_ID(tvb, offset, pinfo, tree, hf_ranap_cN_ID);
+}
+
+
+static const per_sequence_t GlobalCN_ID_sequence[] = {
+ { "pLMNidentity" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_pLMNidentity },
+ { "cN-ID" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_cN_ID },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_GlobalCN_ID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_GlobalCN_ID, GlobalCN_ID_sequence);
+
+ return offset;
+}
+static int dissect_id_GlobalCN_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GlobalCN_ID(tvb, offset, pinfo, tree, hf_ranap_id_GlobalCN_ID);
+}
+
+
+
+static int
+dissect_ranap_RNC_ID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 4095U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_rNC_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RNC_ID(tvb, offset, pinfo, tree, hf_ranap_rNC_ID);
+}
+
+
+static const per_sequence_t GlobalRNC_ID_sequence[] = {
+ { "pLMNidentity" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_pLMNidentity },
+ { "rNC-ID" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rNC_ID },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_GlobalRNC_ID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_GlobalRNC_ID, GlobalRNC_ID_sequence);
+
+ return offset;
+}
+static int dissect_id_GlobalRNC_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GlobalRNC_ID(tvb, offset, pinfo, tree, hf_ranap_id_GlobalRNC_ID);
+}
+static int dissect_globalRNC_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GlobalRNC_ID(tvb, offset, pinfo, tree, hf_ranap_globalRNC_ID);
+}
+
+
+
+static int
+dissect_ranap_InformationExchangeID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 1048575U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_id_InformationExchangeID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_InformationExchangeID(tvb, offset, pinfo, tree, hf_ranap_id_InformationExchangeID);
+}
+
+
+static const value_string ranap_InformationExchangeType_vals[] = {
+ { 0, "transfer" },
+ { 1, "request" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_InformationExchangeType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_id_InformationExchangeType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_InformationExchangeType(tvb, offset, pinfo, tree, hf_ranap_id_InformationExchangeType);
+}
+
+
+
+static int
+dissect_ranap_IPMulticastAddress(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 4, 16, NULL);
+
+ return offset;
+}
+static int dissect_id_IPMulticastAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_IPMulticastAddress(tvb, offset, pinfo, tree, hf_ranap_id_IPMulticastAddress);
+}
+static int dissect_iPMulticastAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_IPMulticastAddress(tvb, offset, pinfo, tree, hf_ranap_iPMulticastAddress);
+}
+
+
+static const per_sequence_t MBMSIPMulticastAddressandAPNlist_sequence[] = {
+ { "tMGI" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_tMGI },
+ { "iPMulticastAddress" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_iPMulticastAddress },
+ { "aPN" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_aPN },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_MBMSIPMulticastAddressandAPNlist(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSIPMulticastAddressandAPNlist, MBMSIPMulticastAddressandAPNlist_sequence);
+
+ return offset;
+}
+static int dissect_RequestedMBMSIPMulticastAddressandAPNRequest_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSIPMulticastAddressandAPNlist(tvb, offset, pinfo, tree, hf_ranap_RequestedMBMSIPMulticastAddressandAPNRequest_item);
+}
+
+
+static const per_sequence_t RequestedMBMSIPMulticastAddressandAPNRequest_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_RequestedMBMSIPMulticastAddressandAPNRequest_item },
+};
+
+static int
+dissect_ranap_RequestedMBMSIPMulticastAddressandAPNRequest(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RequestedMBMSIPMulticastAddressandAPNRequest, RequestedMBMSIPMulticastAddressandAPNRequest_sequence_of,
+ 1, 512);
+
+ return offset;
+}
+static int dissect_requestedMBMSIPMulticastAddressandAPNRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RequestedMBMSIPMulticastAddressandAPNRequest(tvb, offset, pinfo, tree, hf_ranap_requestedMBMSIPMulticastAddressandAPNRequest);
+}
+
+
+static const per_sequence_t RequestedMulticastServiceList_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_RequestedMulticastServiceList_item },
+};
+
+static int
+dissect_ranap_RequestedMulticastServiceList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RequestedMulticastServiceList, RequestedMulticastServiceList_sequence_of,
+ 1, 128);
+
+ return offset;
+}
+static int dissect_requestedMulticastServiceList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RequestedMulticastServiceList(tvb, offset, pinfo, tree, hf_ranap_requestedMulticastServiceList);
+}
+
+
+static const value_string ranap_InformationRequested_vals[] = {
+ { 0, "requestedMBMSIPMulticastAddressandAPNRequest" },
+ { 1, "requestedMulticastServiceList" },
+ { 0, NULL }
+};
+
+static const per_choice_t InformationRequested_choice[] = {
+ { 0, "requestedMBMSIPMulticastAddressandAPNRequest", ASN1_EXTENSION_ROOT , dissect_requestedMBMSIPMulticastAddressandAPNRequest },
+ { 1, "requestedMulticastServiceList", ASN1_EXTENSION_ROOT , dissect_requestedMulticastServiceList },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_InformationRequested(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_InformationRequested, InformationRequested_choice,
+ NULL);
+
+ return offset;
+}
+static int dissect_id_InformationRequested(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_InformationRequested(tvb, offset, pinfo, tree, hf_ranap_id_InformationRequested);
+}
+
+
+static const per_sequence_t MBMSIPMulticastAddressandAPNRequest_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_MBMSIPMulticastAddressandAPNRequest_item },
+};
+
+static int
+dissect_ranap_MBMSIPMulticastAddressandAPNRequest(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSIPMulticastAddressandAPNRequest, MBMSIPMulticastAddressandAPNRequest_sequence_of,
+ 1, 512);
+
+ return offset;
+}
+static int dissect_mBMSIPMulticastAddressandAPNRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSIPMulticastAddressandAPNRequest(tvb, offset, pinfo, tree, hf_ranap_mBMSIPMulticastAddressandAPNRequest);
+}
+
+
+
+static int
+dissect_ranap_IMSI(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 3, 8, NULL);
+
+ return offset;
+}
+static int dissect_iMSI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_IMSI(tvb, offset, pinfo, tree, hf_ranap_iMSI);
+}
+static int dissect_imsi(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_IMSI(tvb, offset, pinfo, tree, hf_ranap_imsi);
+}
+
+
+static const value_string ranap_PermanentNAS_UE_ID_vals[] = {
+ { 0, "iMSI" },
+ { 0, NULL }
+};
+
+static const per_choice_t PermanentNAS_UE_ID_choice[] = {
+ { 0, "iMSI" , ASN1_EXTENSION_ROOT , dissect_iMSI },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_PermanentNAS_UE_ID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_PermanentNAS_UE_ID, PermanentNAS_UE_ID_choice,
+ NULL);
+
+ return offset;
+}
+static int dissect_id_PermanentNAS_UE_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PermanentNAS_UE_ID(tvb, offset, pinfo, tree, hf_ranap_id_PermanentNAS_UE_ID);
+}
+static int dissect_permanentNAS_UE_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PermanentNAS_UE_ID(tvb, offset, pinfo, tree, hf_ranap_permanentNAS_UE_ID);
+}
+
+
+static const value_string ranap_InformationRequestType_vals[] = {
+ { 0, "mBMSIPMulticastAddressandAPNRequest" },
+ { 1, "permanentNAS-UE-ID" },
+ { 0, NULL }
+};
+
+static const per_choice_t InformationRequestType_choice[] = {
+ { 0, "mBMSIPMulticastAddressandAPNRequest", ASN1_EXTENSION_ROOT , dissect_mBMSIPMulticastAddressandAPNRequest },
+ { 1, "permanentNAS-UE-ID" , ASN1_EXTENSION_ROOT , dissect_permanentNAS_UE_ID },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_InformationRequestType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_InformationRequestType, InformationRequestType_choice,
+ NULL);
+
+ return offset;
+}
+static int dissect_id_InformationRequestType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_InformationRequestType(tvb, offset, pinfo, tree, hf_ranap_id_InformationRequestType);
+}
+
+
+
+static int
+dissect_ranap_InformationTransferID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 1048575U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_id_InformationTransferID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_InformationTransferID(tvb, offset, pinfo, tree, hf_ranap_id_InformationTransferID);
+}
+
+
+
+static int
+dissect_ranap_TraceReference(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 2, 3, NULL);
+
+ return offset;
+}
+static int dissect_id_TraceReference(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TraceReference(tvb, offset, pinfo, tree, hf_ranap_id_TraceReference);
+}
+static int dissect_traceReference(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TraceReference(tvb, offset, pinfo, tree, hf_ranap_traceReference);
+}
+
+
+static const value_string ranap_T_traceActivationIndicator_vals[] = {
+ { 0, "activated" },
+ { 1, "deactivated" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_T_traceActivationIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_traceActivationIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_T_traceActivationIndicator(tvb, offset, pinfo, tree, hf_ranap_traceActivationIndicator);
+}
+
+
+
+static int
+dissect_ranap_IMEI(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 8, 8, NULL);
+
+ return offset;
+}
+static int dissect_iMEI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_IMEI(tvb, offset, pinfo, tree, hf_ranap_iMEI);
+}
+static int dissect_IMEIList_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_IMEI(tvb, offset, pinfo, tree, hf_ranap_IMEIList_item);
+}
+static int dissect_imei(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_IMEI(tvb, offset, pinfo, tree, hf_ranap_imei);
+}
+
+
+static const per_sequence_t IMEIList_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_IMEIList_item },
+};
+
+static int
+dissect_ranap_IMEIList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_IMEIList, IMEIList_sequence_of,
+ 1, 64);
+
+ return offset;
+}
+static int dissect_iMEIlist(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_IMEIList(tvb, offset, pinfo, tree, hf_ranap_iMEIlist);
+}
+
+
+
+static int
+dissect_ranap_IMEISV(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 8, 8, NULL);
+
+ return offset;
+}
+static int dissect_iMEISV(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_IMEISV(tvb, offset, pinfo, tree, hf_ranap_iMEISV);
+}
+static int dissect_IMEISVList_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_IMEISV(tvb, offset, pinfo, tree, hf_ranap_IMEISVList_item);
+}
+static int dissect_imeisv(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_IMEISV(tvb, offset, pinfo, tree, hf_ranap_imeisv);
+}
+
+
+static const per_sequence_t IMEISVList_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_IMEISVList_item },
+};
+
+static int
+dissect_ranap_IMEISVList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_IMEISVList, IMEISVList_sequence_of,
+ 1, 64);
+
+ return offset;
+}
+static int dissect_iMEISVlist(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_IMEISVList(tvb, offset, pinfo, tree, hf_ranap_iMEISVlist);
+}
+
+
+
+static int
+dissect_ranap_BIT_STRING_SIZE_7(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_bit_string(tvb, offset, pinfo, tree, hf_index,
+ 7, 7, FALSE);
+
+ return offset;
+}
+static int dissect_iMEIMask(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_BIT_STRING_SIZE_7(tvb, offset, pinfo, tree, hf_ranap_iMEIMask);
+}
+static int dissect_iMEISVMask(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_BIT_STRING_SIZE_7(tvb, offset, pinfo, tree, hf_ranap_iMEISVMask);
+}
+
+
+static const per_sequence_t IMEIGroup_sequence[] = {
+ { "iMEI" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_iMEI },
+ { "iMEIMask" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_iMEIMask },
+ { "iE-Extensions" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_IMEIGroup(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_IMEIGroup, IMEIGroup_sequence);
+
+ return offset;
+}
+static int dissect_iMEIgroup(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_IMEIGroup(tvb, offset, pinfo, tree, hf_ranap_iMEIgroup);
+}
+
+
+static const per_sequence_t IMEISVGroup_sequence[] = {
+ { "iMEISV" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_iMEISV },
+ { "iMEISVMask" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_iMEISVMask },
+ { "iE-Extensions" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_IMEISVGroup(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_IMEISVGroup, IMEISVGroup_sequence);
+
+ return offset;
+}
+static int dissect_iMEISVgroup(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_IMEISVGroup(tvb, offset, pinfo, tree, hf_ranap_iMEISVgroup);
+}
+
+
+static const value_string ranap_EquipmentsToBeTraced_vals[] = {
+ { 0, "iMEIlist" },
+ { 1, "iMEISVlist" },
+ { 2, "iMEIgroup" },
+ { 3, "iMEISVgroup" },
+ { 0, NULL }
+};
+
+static const per_choice_t EquipmentsToBeTraced_choice[] = {
+ { 0, "iMEIlist" , ASN1_EXTENSION_ROOT , dissect_iMEIlist },
+ { 1, "iMEISVlist" , ASN1_EXTENSION_ROOT , dissect_iMEISVlist },
+ { 2, "iMEIgroup" , ASN1_EXTENSION_ROOT , dissect_iMEIgroup },
+ { 3, "iMEISVgroup" , ASN1_EXTENSION_ROOT , dissect_iMEISVgroup },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_EquipmentsToBeTraced(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_EquipmentsToBeTraced, EquipmentsToBeTraced_choice,
+ NULL);
+
+ return offset;
+}
+static int dissect_equipmentsToBeTraced(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_EquipmentsToBeTraced(tvb, offset, pinfo, tree, hf_ranap_equipmentsToBeTraced);
+}
+
+
+static const per_sequence_t RNCTraceInformation_sequence[] = {
+ { "traceReference" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_traceReference },
+ { "traceActivationIndicator" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_traceActivationIndicator },
+ { "equipmentsToBeTraced" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_equipmentsToBeTraced },
+ { "iE-Extensions" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RNCTraceInformation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RNCTraceInformation, RNCTraceInformation_sequence);
+
+ return offset;
+}
+static int dissect_rNCTraceInformation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RNCTraceInformation(tvb, offset, pinfo, tree, hf_ranap_rNCTraceInformation);
+}
+
+
+static const value_string ranap_InformationTransferType_vals[] = {
+ { 0, "rNCTraceInformation" },
+ { 0, NULL }
+};
+
+static const per_choice_t InformationTransferType_choice[] = {
+ { 0, "rNCTraceInformation" , ASN1_EXTENSION_ROOT , dissect_rNCTraceInformation },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_InformationTransferType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_InformationTransferType, InformationTransferType_choice,
+ NULL);
+
+ return offset;
+}
+static int dissect_id_InformationTransferType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_InformationTransferType(tvb, offset, pinfo, tree, hf_ranap_id_InformationTransferType);
+}
+
+
+
+static int
+dissect_ranap_TraceRecordingSessionReference(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 65535U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_traceRecordingSessionReference(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TraceRecordingSessionReference(tvb, offset, pinfo, tree, hf_ranap_traceRecordingSessionReference);
+}
+
+
+static const per_sequence_t TraceRecordingSessionInformation_sequence[] = {
+ { "traceReference" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_traceReference },
+ { "traceRecordingSessionReference", ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_traceRecordingSessionReference },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_TraceRecordingSessionInformation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_TraceRecordingSessionInformation, TraceRecordingSessionInformation_sequence);
+
+ return offset;
+}
+static int dissect_id_TraceRecordingSessionInformation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TraceRecordingSessionInformation(tvb, offset, pinfo, tree, hf_ranap_id_TraceRecordingSessionInformation);
+}
+
+
+static const per_sequence_t PermittedIntegrityProtectionAlgorithms_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_PermittedIntegrityProtectionAlgorithms_item },
+};
+
+static int
+dissect_ranap_PermittedIntegrityProtectionAlgorithms(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_PermittedIntegrityProtectionAlgorithms, PermittedIntegrityProtectionAlgorithms_sequence_of,
+ 1, 16);
+
+ return offset;
+}
+static int dissect_permittedAlgorithms(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PermittedIntegrityProtectionAlgorithms(tvb, offset, pinfo, tree, hf_ranap_permittedAlgorithms);
+}
+
+
+
+static int
+dissect_ranap_IntegrityProtectionKey(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_bit_string(tvb, offset, pinfo, tree, hf_index,
+ 128, 128, FALSE);
+
+ return offset;
+}
+static int dissect_key(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_IntegrityProtectionKey(tvb, offset, pinfo, tree, hf_ranap_key);
+}
+static int dissect_integrityProtectionKey(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_IntegrityProtectionKey(tvb, offset, pinfo, tree, hf_ranap_integrityProtectionKey);
+}
+
+
+static const per_sequence_t IntegrityProtectionInformation_sequence[] = {
+ { "permittedAlgorithms" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_permittedAlgorithms },
+ { "key" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_key },
+ { "iE-Extensions" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_IntegrityProtectionInformation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_IntegrityProtectionInformation, IntegrityProtectionInformation_sequence);
+
+ return offset;
+}
+static int dissect_id_IntegrityProtectionInformation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_IntegrityProtectionInformation(tvb, offset, pinfo, tree, hf_ranap_id_IntegrityProtectionInformation);
+}
+
+
+
+static int
+dissect_ranap_RIMInformation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ -1, -1, NULL);
+
+ return offset;
+}
+static int dissect_rIMInformation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RIMInformation(tvb, offset, pinfo, tree, hf_ranap_rIMInformation);
+}
+
+
+static const per_sequence_t LAI_sequence[] = {
+ { "pLMNidentity" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_pLMNidentity },
+ { "lAC" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lAC },
+ { "iE-Extensions" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_LAI(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_LAI, LAI_sequence);
+
+ return offset;
+}
+static int dissect_id_LAI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_LAI(tvb, offset, pinfo, tree, hf_ranap_id_LAI);
+}
+static int dissect_lAI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_LAI(tvb, offset, pinfo, tree, hf_ranap_lAI);
+}
+
+
+
+static int
+dissect_ranap_CI(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 2, 2, NULL);
+
+ return offset;
+}
+static int dissect_cI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CI(tvb, offset, pinfo, tree, hf_ranap_cI);
+}
+
+
+static const per_sequence_t GERAN_Cell_ID_sequence[] = {
+ { "lAI" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lAI },
+ { "rAC" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rAC },
+ { "cI" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_cI },
+ { "iE-Extensions" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_GERAN_Cell_ID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_GERAN_Cell_ID, GERAN_Cell_ID_sequence);
+
+ return offset;
+}
+static int dissect_gERAN_Cell_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GERAN_Cell_ID(tvb, offset, pinfo, tree, hf_ranap_gERAN_Cell_ID);
+}
+
+
+static const value_string ranap_RIMRoutingAddress_vals[] = {
+ { 0, "globalRNC-ID" },
+ { 1, "gERAN-Cell-ID" },
+ { 0, NULL }
+};
+
+static const per_choice_t RIMRoutingAddress_choice[] = {
+ { 0, "globalRNC-ID" , ASN1_EXTENSION_ROOT , dissect_globalRNC_ID },
+ { 1, "gERAN-Cell-ID" , ASN1_EXTENSION_ROOT , dissect_gERAN_Cell_ID },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_RIMRoutingAddress(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RIMRoutingAddress, RIMRoutingAddress_choice,
+ NULL);
+
+ return offset;
+}
+static int dissect_rIMRoutingAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RIMRoutingAddress(tvb, offset, pinfo, tree, hf_ranap_rIMRoutingAddress);
+}
+
+
+static const per_sequence_t RIM_Transfer_sequence[] = {
+ { "rIMInformation" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rIMInformation },
+ { "rIMRoutingAddress" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rIMRoutingAddress },
+ { "iE-Extensions" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RIM_Transfer(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RIM_Transfer, RIM_Transfer_sequence);
+
+ return offset;
+}
+static int dissect_rIM_Transfer(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RIM_Transfer(tvb, offset, pinfo, tree, hf_ranap_rIM_Transfer);
+}
+
+
+static const value_string ranap_InterSystemInformationTransferType_vals[] = {
+ { 0, "rIM-Transfer" },
+ { 0, NULL }
+};
+
+static const per_choice_t InterSystemInformationTransferType_choice[] = {
+ { 0, "rIM-Transfer" , ASN1_EXTENSION_ROOT , dissect_rIM_Transfer },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_InterSystemInformationTransferType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_InterSystemInformationTransferType, InterSystemInformationTransferType_choice,
+ NULL);
+
+ return offset;
+}
+static int dissect_id_InterSystemInformationTransferType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_InterSystemInformationTransferType(tvb, offset, pinfo, tree, hf_ranap_id_InterSystemInformationTransferType);
+}
+
+
+
+static int
+dissect_ranap_Cell_Capacity_Class_Value(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 1U, 100U, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_cell_Capacity_Class_Value(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Cell_Capacity_Class_Value(tvb, offset, pinfo, tree, hf_ranap_cell_Capacity_Class_Value);
+}
+
+
+
+static int
+dissect_ranap_LoadValue(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 100U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_loadValue(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_LoadValue(tvb, offset, pinfo, tree, hf_ranap_loadValue);
+}
+
+
+
+static int
+dissect_ranap_RTLoadValue(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 100U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_rTLoadValue(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RTLoadValue(tvb, offset, pinfo, tree, hf_ranap_rTLoadValue);
+}
+
+
+
+static int
+dissect_ranap_NRTLoadInformationValue(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 3U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_nRTLoadInformationValue(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_NRTLoadInformationValue(tvb, offset, pinfo, tree, hf_ranap_nRTLoadInformationValue);
+}
+
+
+static const per_sequence_t CellLoadInformation_sequence[] = {
+ { "cell-Capacity-Class-Value" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_cell_Capacity_Class_Value },
+ { "loadValue" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_loadValue },
+ { "rTLoadValue" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rTLoadValue },
+ { "nRTLoadInformationValue" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nRTLoadInformationValue },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_CellLoadInformation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_CellLoadInformation, CellLoadInformation_sequence);
+
+ return offset;
+}
+static int dissect_uplinkCellLoadInformation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CellLoadInformation(tvb, offset, pinfo, tree, hf_ranap_uplinkCellLoadInformation);
+}
+static int dissect_downlinkCellLoadInformation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CellLoadInformation(tvb, offset, pinfo, tree, hf_ranap_downlinkCellLoadInformation);
+}
+
+
+static const per_sequence_t InterSystemInformation_TransparentContainer_sequence[] = {
+ { "downlinkCellLoadInformation" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_downlinkCellLoadInformation },
+ { "uplinkCellLoadInformation" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_uplinkCellLoadInformation },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_InterSystemInformation_TransparentContainer(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_InterSystemInformation_TransparentContainer, InterSystemInformation_TransparentContainer_sequence);
+
+ return offset;
+}
+static int dissect_id_InterSystemInformation_TransparentContainer(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_InterSystemInformation_TransparentContainer(tvb, offset, pinfo, tree, hf_ranap_id_InterSystemInformation_TransparentContainer);
+}
+
+
+
+static int
+dissect_ranap_IuSignallingConnectionIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_bit_string(tvb, offset, pinfo, tree, hf_index,
+ 24, 24, FALSE);
+
+ return offset;
+}
+static int dissect_id_IuSigConId(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_IuSignallingConnectionIdentifier(tvb, offset, pinfo, tree, hf_ranap_id_IuSigConId);
+}
+static int dissect_iuSigConId(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_IuSignallingConnectionIdentifier(tvb, offset, pinfo, tree, hf_ranap_iuSigConId);
+}
+
+
+static const per_sequence_t ResetResourceAckItem_sequence[] = {
+ { "iuSigConId" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_iuSigConId },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_ResetResourceAckItem(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ResetResourceAckItem, ResetResourceAckItem_sequence);
+
+ return offset;
+}
+static int dissect_id_IuSigConIdItem(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ResetResourceAckItem(tvb, offset, pinfo, tree, hf_ranap_id_IuSigConIdItem);
+}
+
+
+static const per_sequence_t ProtocolIE_ContainerList250_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ProtocolIE_ContainerList250_item },
+};
+
+static int
+dissect_ranap_ProtocolIE_ContainerList250(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ProtocolIE_ContainerList250, ProtocolIE_ContainerList250_sequence_of,
+ 1, 250);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ranap_IuSigConId_IE_ContainerList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_ProtocolIE_ContainerList250(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ranap_ResetResourceAckList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_IuSigConId_IE_ContainerList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_IuSigConIdList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ResetResourceAckList(tvb, offset, pinfo, tree, hf_ranap_id_IuSigConIdList);
+}
+
+
+
+static int
+dissect_ranap_GTP_TEI(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 4, 4, NULL);
+
+ return offset;
+}
+static int dissect_gTP_TEI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_GTP_TEI(tvb, offset, pinfo, tree, hf_ranap_gTP_TEI);
+}
+
+
+
+static int
+dissect_ranap_BindingID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 4, 4, NULL);
+
+ return offset;
+}
+static int dissect_bindingID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_BindingID(tvb, offset, pinfo, tree, hf_ranap_bindingID);
+}
+
+
+static const value_string ranap_IuTransportAssociation_vals[] = {
+ { 0, "gTP-TEI" },
+ { 1, "bindingID" },
+ { 0, NULL }
+};
+
+static const per_choice_t IuTransportAssociation_choice[] = {
+ { 0, "gTP-TEI" , ASN1_EXTENSION_ROOT , dissect_gTP_TEI },
+ { 1, "bindingID" , ASN1_EXTENSION_ROOT , dissect_bindingID },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_IuTransportAssociation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_IuTransportAssociation, IuTransportAssociation_choice,
+ NULL);
+
+ return offset;
+}
+static int dissect_id_IuTransportAssociation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_IuTransportAssociation(tvb, offset, pinfo, tree, hf_ranap_id_IuTransportAssociation);
+}
+static int dissect_iuTransportAssociation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_IuTransportAssociation(tvb, offset, pinfo, tree, hf_ranap_iuTransportAssociation);
+}
+
+
+static const value_string ranap_KeyStatus_vals[] = {
+ { 0, "old" },
+ { 1, "new" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_KeyStatus(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_id_KeyStatus(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_KeyStatus(tvb, offset, pinfo, tree, hf_ranap_id_KeyStatus);
+}
+
+
+
+static int
+dissect_ranap_L3_Information(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ -1, -1, NULL);
+
+ return offset;
+}
+static int dissect_id_L3_Information(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_L3_Information(tvb, offset, pinfo, tree, hf_ranap_id_L3_Information);
+}
+
+
+static const per_sequence_t LastKnownServiceArea_sequence[] = {
+ { "sAI" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_sAI },
+ { "ageOfSAI" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_ageOfSAI },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_LastKnownServiceArea(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_LastKnownServiceArea, LastKnownServiceArea_sequence);
+
+ return offset;
+}
+static int dissect_id_LastKnownServiceArea(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_LastKnownServiceArea(tvb, offset, pinfo, tree, hf_ranap_id_LastKnownServiceArea);
+}
+
+
+
+static int
+dissect_ranap_SRB_ID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 1U, 32U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_sRB_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SRB_ID(tvb, offset, pinfo, tree, hf_ranap_sRB_ID);
+}
+
+
+
+static int
+dissect_ranap_DCH_ID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 255U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_dCH_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_DCH_ID(tvb, offset, pinfo, tree, hf_ranap_dCH_ID);
+}
+
+
+
+static int
+dissect_ranap_DSCH_ID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 255U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_dSCH_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_DSCH_ID(tvb, offset, pinfo, tree, hf_ranap_dSCH_ID);
+}
+
+
+
+static int
+dissect_ranap_USCH_ID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 255U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_uSCH_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_USCH_ID(tvb, offset, pinfo, tree, hf_ranap_uSCH_ID);
+}
+
+
+static const per_sequence_t TrCH_ID_sequence[] = {
+ { "dCH-ID" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_dCH_ID },
+ { "dSCH-ID" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_dSCH_ID },
+ { "uSCH-ID" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_uSCH_ID },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_TrCH_ID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_TrCH_ID, TrCH_ID_sequence);
+
+ return offset;
+}
+static int dissect_trCH_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TrCH_ID(tvb, offset, pinfo, tree, hf_ranap_trCH_ID);
+}
+static int dissect_TrCH_ID_List_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TrCH_ID(tvb, offset, pinfo, tree, hf_ranap_TrCH_ID_List_item);
+}
+
+
+static const per_sequence_t SRB_TrCH_MappingItem_sequence[] = {
+ { "sRB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_sRB_ID },
+ { "trCH-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_trCH_ID },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_SRB_TrCH_MappingItem(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_SRB_TrCH_MappingItem, SRB_TrCH_MappingItem_sequence);
+
+ return offset;
+}
+static int dissect_SRB_TrCH_Mapping_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SRB_TrCH_MappingItem(tvb, offset, pinfo, tree, hf_ranap_SRB_TrCH_Mapping_item);
+}
+
+
+static const per_sequence_t SRB_TrCH_Mapping_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_SRB_TrCH_Mapping_item },
+};
+
+static int
+dissect_ranap_SRB_TrCH_Mapping(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_SRB_TrCH_Mapping, SRB_TrCH_Mapping_sequence_of,
+ 1, 8);
+
+ return offset;
+}
+static int dissect_id_SRB_TrCH_Mapping(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SRB_TrCH_Mapping(tvb, offset, pinfo, tree, hf_ranap_id_SRB_TrCH_Mapping);
+}
+
+
+static const per_sequence_t LeftMBMSBearerService_IEs_item_sequence[] = {
+ { "tMGI" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_tMGI },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_LeftMBMSBearerService_IEs_item(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_LeftMBMSBearerService_IEs_item, LeftMBMSBearerService_IEs_item_sequence);
+
+ return offset;
+}
+static int dissect_LeftMBMSBearerService_IEs_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_LeftMBMSBearerService_IEs_item(tvb, offset, pinfo, tree, hf_ranap_LeftMBMSBearerService_IEs_item);
+}
+
+
+static const per_sequence_t LeftMBMSBearerService_IEs_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_LeftMBMSBearerService_IEs_item },
+};
+
+static int
+dissect_ranap_LeftMBMSBearerService_IEs(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_LeftMBMSBearerService_IEs, LeftMBMSBearerService_IEs_sequence_of,
+ 1, 128);
+
+ return offset;
+}
+static int dissect_id_LeftMBMSBearerServicesList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_LeftMBMSBearerService_IEs(tvb, offset, pinfo, tree, hf_ranap_id_LeftMBMSBearerServicesList);
+}
+
+
+static const value_string ranap_LocationRelatedDataRequestTypeSpecificToGERANIuMode_vals[] = {
+ { 0, "decipheringKeysEOTD" },
+ { 1, "dedicatedMobileAssistedEOTDAssistanceData" },
+ { 2, "dedicatedMobileBasedEOTDAssistanceData" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_LocationRelatedDataRequestTypeSpecificToGERANIuMode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 2, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_id_LocationRelatedDataRequestTypeSpecificToGERANIuMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_LocationRelatedDataRequestTypeSpecificToGERANIuMode(tvb, offset, pinfo, tree, hf_ranap_id_LocationRelatedDataRequestTypeSpecificToGERANIuMode);
+}
+
+
+static const value_string ranap_SignallingIndication_vals[] = {
+ { 0, "signalling" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_SignallingIndication(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 0, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_id_SignallingIndication(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SignallingIndication(tvb, offset, pinfo, tree, hf_ranap_id_SignallingIndication);
+}
+
+
+
+static int
+dissect_ranap_HS_DSCH_MAC_d_Flow_ID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 7U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_id_hS_DSCH_MAC_d_Flow_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_HS_DSCH_MAC_d_Flow_ID(tvb, offset, pinfo, tree, hf_ranap_id_hS_DSCH_MAC_d_Flow_ID);
+}
+
+
+
+static int
+dissect_ranap_TargetCellId(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 268435455U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_targetCellId(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TargetCellId(tvb, offset, pinfo, tree, hf_ranap_targetCellId);
+}
+static int dissect_uTRANcellID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TargetCellId(tvb, offset, pinfo, tree, hf_ranap_uTRANcellID);
+}
+
+
+static const per_sequence_t SourceUTRANCellID_sequence[] = {
+ { "pLMNidentity" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_pLMNidentity },
+ { "uTRANcellID" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_uTRANcellID },
+ { "iE-Extensions" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_SourceUTRANCellID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_SourceUTRANCellID, SourceUTRANCellID_sequence);
+
+ return offset;
+}
+static int dissect_sourceUTRANCellID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SourceUTRANCellID(tvb, offset, pinfo, tree, hf_ranap_sourceUTRANCellID);
+}
+
+
+static const per_sequence_t CGI_sequence[] = {
+ { "pLMNidentity" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_pLMNidentity },
+ { "lAC" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lAC },
+ { "cI" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_cI },
+ { "iE-Extensions" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_CGI(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_CGI, CGI_sequence);
+
+ return offset;
+}
+static int dissect_sourceGERANCellID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CGI(tvb, offset, pinfo, tree, hf_ranap_sourceGERANCellID);
+}
+static int dissect_cGI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CGI(tvb, offset, pinfo, tree, hf_ranap_cGI);
+}
+
+
+static const value_string ranap_SourceCellID_vals[] = {
+ { 0, "sourceUTRANCellID" },
+ { 1, "sourceGERANCellID" },
+ { 0, NULL }
+};
+
+static const per_choice_t SourceCellID_choice[] = {
+ { 0, "sourceUTRANCellID" , ASN1_EXTENSION_ROOT , dissect_sourceUTRANCellID },
+ { 1, "sourceGERANCellID" , ASN1_EXTENSION_ROOT , dissect_sourceGERANCellID },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_SourceCellID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_SourceCellID, SourceCellID_choice,
+ NULL);
+
+ return offset;
+}
+static int dissect_sourceCellID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SourceCellID(tvb, offset, pinfo, tree, hf_ranap_sourceCellID);
+}
+
+
+static const per_sequence_t CellLoadInformationGroup_sequence[] = {
+ { "sourceCellID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_sourceCellID },
+ { "uplinkCellLoadInformation" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_uplinkCellLoadInformation },
+ { "downlinkCellLoadInformation" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_downlinkCellLoadInformation },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_CellLoadInformationGroup(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_CellLoadInformationGroup, CellLoadInformationGroup_sequence);
+
+ return offset;
+}
+static int dissect_id_CellLoadInformationGroup(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_CellLoadInformationGroup(tvb, offset, pinfo, tree, hf_ranap_id_CellLoadInformationGroup);
+}
+
+
+static const value_string ranap_MBMSBearerServiceType_vals[] = {
+ { 0, "multicast" },
+ { 1, "broadcast" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_MBMSBearerServiceType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_id_MBMSBearerServiceType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSBearerServiceType(tvb, offset, pinfo, tree, hf_ranap_id_MBMSBearerServiceType);
+}
+
+
+static const value_string ranap_MBMSCNDe_Registration_vals[] = {
+ { 0, "normalsessionstop" },
+ { 1, "deregister" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_MBMSCNDe_Registration(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_id_MBMSCNDe_Registration(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSCNDe_Registration(tvb, offset, pinfo, tree, hf_ranap_id_MBMSCNDe_Registration);
+}
+
+
+static const value_string ranap_MBMSRegistrationRequestType_vals[] = {
+ { 0, "register" },
+ { 1, "deregister" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_MBMSRegistrationRequestType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_id_MBMSRegistrationRequestType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSRegistrationRequestType(tvb, offset, pinfo, tree, hf_ranap_id_MBMSRegistrationRequestType);
+}
+
+
+
+static int
+dissect_ranap_MBMSServiceAreaCode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 65535U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_MBMSServiceAreaList_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSServiceAreaCode(tvb, offset, pinfo, tree, hf_ranap_MBMSServiceAreaList_item);
+}
+
+
+static const per_sequence_t MBMSServiceAreaList_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_MBMSServiceAreaList_item },
+};
+
+static int
+dissect_ranap_MBMSServiceAreaList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSServiceAreaList, MBMSServiceAreaList_sequence_of,
+ 1, 256);
+
+ return offset;
+}
+static int dissect_mBMSServiceAreaList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSServiceAreaList(tvb, offset, pinfo, tree, hf_ranap_mBMSServiceAreaList);
+}
+
+
+static const per_sequence_t MBMSServiceArea_sequence[] = {
+ { "mBMSServiceAreaList" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_mBMSServiceAreaList },
+ { "iE-Extensions" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_MBMSServiceArea(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MBMSServiceArea, MBMSServiceArea_sequence);
+
+ return offset;
+}
+static int dissect_id_MBMSServiceArea(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSServiceArea(tvb, offset, pinfo, tree, hf_ranap_id_MBMSServiceArea);
+}
+
+
+
+static int
+dissect_ranap_MBMSSessionDuration(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 3, 3, NULL);
+
+ return offset;
+}
+static int dissect_id_MBMSSessionDuration(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSSessionDuration(tvb, offset, pinfo, tree, hf_ranap_id_MBMSSessionDuration);
+}
+
+
+
+static int
+dissect_ranap_MBMSSessionIdentity(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 1, 1, NULL);
+
+ return offset;
+}
+static int dissect_id_MBMSSessionIdentity(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSSessionIdentity(tvb, offset, pinfo, tree, hf_ranap_id_MBMSSessionIdentity);
+}
+
+
+
+static int
+dissect_ranap_MBMSSessionRepetitionNumber(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 255U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_id_MBMSSessionRepetitionNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSSessionRepetitionNumber(tvb, offset, pinfo, tree, hf_ranap_id_MBMSSessionRepetitionNumber);
+}
+
+
+
+static int
+dissect_ranap_NAS_SequenceNumber(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_bit_string(tvb, offset, pinfo, tree, hf_index,
+ 2, 2, FALSE);
+
+ return offset;
+}
+static int dissect_id_NAS_SequenceNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_NAS_SequenceNumber(tvb, offset, pinfo, tree, hf_ranap_id_NAS_SequenceNumber);
+}
+
+
+
+static int
+dissect_ranap_NewBSS_To_OldBSS_Information(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ -1, -1, NULL);
+
+ return offset;
+}
+static int dissect_id_NewBSS_To_OldBSS_Information(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_NewBSS_To_OldBSS_Information(tvb, offset, pinfo, tree, hf_ranap_id_NewBSS_To_OldBSS_Information);
+}
+
+
+static const value_string ranap_NonSearchingIndication_vals[] = {
+ { 0, "non-searching" },
+ { 1, "searching" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_NonSearchingIndication(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_id_NonSearchingIndication(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_NonSearchingIndication(tvb, offset, pinfo, tree, hf_ranap_id_NonSearchingIndication);
+}
+
+
+
+static int
+dissect_ranap_NumberOfSteps(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 1U, 16U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_id_NumberOfSteps(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_NumberOfSteps(tvb, offset, pinfo, tree, hf_ranap_id_NumberOfSteps);
+}
+
+
+
+static int
+dissect_ranap_OMC_ID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 3, 22, NULL);
+
+ return offset;
+}
+static int dissect_id_OMC_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_OMC_ID(tvb, offset, pinfo, tree, hf_ranap_id_OMC_ID);
+}
+
+
+
+static int
+dissect_ranap_OldBSS_ToNewBSS_Information(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ -1, -1, NULL);
+
+ return offset;
+}
+static int dissect_id_OldBSS_ToNewBSS_Information(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_OldBSS_ToNewBSS_Information(tvb, offset, pinfo, tree, hf_ranap_id_OldBSS_ToNewBSS_Information);
+}
+
+
+static const per_sequence_t RAI_sequence[] = {
+ { "lAI" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lAI },
+ { "rAC" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAC },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAI(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAI, RAI_sequence);
+
+ return offset;
+}
+static int dissect_rAI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAI(tvb, offset, pinfo, tree, hf_ranap_rAI);
+}
+
+
+static const value_string ranap_PagingAreaID_vals[] = {
+ { 0, "lAI" },
+ { 1, "rAI" },
+ { 0, NULL }
+};
+
+static const per_choice_t PagingAreaID_choice[] = {
+ { 0, "lAI" , ASN1_EXTENSION_ROOT , dissect_lAI },
+ { 1, "rAI" , ASN1_EXTENSION_ROOT , dissect_rAI },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_PagingAreaID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_PagingAreaID, PagingAreaID_choice,
+ NULL);
+
+ return offset;
+}
+static int dissect_id_PagingAreaID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PagingAreaID(tvb, offset, pinfo, tree, hf_ranap_id_PagingAreaID);
+}
+
+
+static const value_string ranap_PagingCause_vals[] = {
+ { 0, "terminating-conversational-call" },
+ { 1, "terminating-streaming-call" },
+ { 2, "terminating-interactive-call" },
+ { 3, "terminating-background-call" },
+ { 4, "terminating-low-priority-signalling" },
+ { 5, "terminating-high-priority-signalling" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_PagingCause(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 5, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_id_PagingCause(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PagingCause(tvb, offset, pinfo, tree, hf_ranap_id_PagingCause);
+}
+
+
+static const value_string ranap_PDP_Type_vals[] = {
+ { 0, "empty" },
+ { 1, "ppp" },
+ { 2, "osp-ihoss" },
+ { 3, "ipv4" },
+ { 4, "ipv6" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_PDP_Type(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 4, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_PDP_TypeInformation_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PDP_Type(tvb, offset, pinfo, tree, hf_ranap_PDP_TypeInformation_item);
+}
+
+
+static const per_sequence_t PDP_TypeInformation_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_PDP_TypeInformation_item },
+};
+
+static int
+dissect_ranap_PDP_TypeInformation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_PDP_TypeInformation, PDP_TypeInformation_sequence_of,
+ 1, 2);
+
+ return offset;
+}
+static int dissect_id_PDP_TypeInformation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PDP_TypeInformation(tvb, offset, pinfo, tree, hf_ranap_id_PDP_TypeInformation);
+}
+static int dissect_pDP_TypeInformation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PDP_TypeInformation(tvb, offset, pinfo, tree, hf_ranap_pDP_TypeInformation);
+}
+
+
+
+static int
+dissect_ranap_PositioningDataDiscriminator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_bit_string(tvb, offset, pinfo, tree, hf_index,
+ 4, 4, FALSE);
+
+ return offset;
+}
+static int dissect_positioningDataDiscriminator(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PositioningDataDiscriminator(tvb, offset, pinfo, tree, hf_ranap_positioningDataDiscriminator);
+}
+
+
+
+static int
+dissect_ranap_PositioningMethodAndUsage(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 1, 1, NULL);
+
+ return offset;
+}
+static int dissect_PositioningDataSet_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PositioningMethodAndUsage(tvb, offset, pinfo, tree, hf_ranap_PositioningDataSet_item);
+}
+
+
+static const per_sequence_t PositioningDataSet_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_PositioningDataSet_item },
+};
+
+static int
+dissect_ranap_PositioningDataSet(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_PositioningDataSet, PositioningDataSet_sequence_of,
+ 1, 9);
+
+ return offset;
+}
+static int dissect_positioningDataSet(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PositioningDataSet(tvb, offset, pinfo, tree, hf_ranap_positioningDataSet);
+}
+
+
+static const per_sequence_t PositionData_sequence[] = {
+ { "positioningDataDiscriminator", ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_positioningDataDiscriminator },
+ { "positioningDataSet" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_positioningDataSet },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_PositionData(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_PositionData, PositionData_sequence);
+
+ return offset;
+}
+static int dissect_id_PositionData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PositionData(tvb, offset, pinfo, tree, hf_ranap_id_PositionData);
+}
+
+
+
+static int
+dissect_ranap_PositionDataSpecificToGERANIuMode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ -1, -1, NULL);
+
+ return offset;
+}
+static int dissect_id_PositionDataSpecificToGERANIuMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PositionDataSpecificToGERANIuMode(tvb, offset, pinfo, tree, hf_ranap_id_PositionDataSpecificToGERANIuMode);
+}
+
+
+static const value_string ranap_PositioningPriority_vals[] = {
+ { 0, "high-Priority" },
+ { 1, "normal-Priority" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_PositioningPriority(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_id_PositioningPriority(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PositioningPriority(tvb, offset, pinfo, tree, hf_ranap_id_PositioningPriority);
+}
+
+
+
+static int
+dissect_ranap_SNAC(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 65535U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_AuthorisedSNAs_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SNAC(tvb, offset, pinfo, tree, hf_ranap_AuthorisedSNAs_item);
+}
+static int dissect_ListOF_SNAs_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SNAC(tvb, offset, pinfo, tree, hf_ranap_ListOF_SNAs_item);
+}
+
+
+static const per_sequence_t ListOF_SNAs_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ListOF_SNAs_item },
+};
+
+static int
+dissect_ranap_ListOF_SNAs(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ListOF_SNAs, ListOF_SNAs_sequence_of,
+ 1, 65536);
+
+ return offset;
+}
+static int dissect_listOF_SNAs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ListOF_SNAs(tvb, offset, pinfo, tree, hf_ranap_listOF_SNAs);
+}
+
+
+static const per_sequence_t LA_LIST_item_sequence[] = {
+ { "lAC" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lAC },
+ { "listOF-SNAs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_listOF_SNAs },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_LA_LIST_item(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_LA_LIST_item, LA_LIST_item_sequence);
+
+ return offset;
+}
+static int dissect_LA_LIST_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_LA_LIST_item(tvb, offset, pinfo, tree, hf_ranap_LA_LIST_item);
+}
+
+
+static const per_sequence_t LA_LIST_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_LA_LIST_item },
+};
+
+static int
+dissect_ranap_LA_LIST(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_LA_LIST, LA_LIST_sequence_of,
+ 1, 65536);
+
+ return offset;
+}
+static int dissect_lA_LIST(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_LA_LIST(tvb, offset, pinfo, tree, hf_ranap_lA_LIST);
+}
+
+
+static const per_sequence_t PLMNs_in_shared_network_item_sequence[] = {
+ { "pLMNidentity" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_pLMNidentity },
+ { "lA-LIST" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_lA_LIST },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_PLMNs_in_shared_network_item(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_PLMNs_in_shared_network_item, PLMNs_in_shared_network_item_sequence);
+
+ return offset;
+}
+static int dissect_PLMNs_in_shared_network_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PLMNs_in_shared_network_item(tvb, offset, pinfo, tree, hf_ranap_PLMNs_in_shared_network_item);
+}
+
+
+static const per_sequence_t PLMNs_in_shared_network_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_PLMNs_in_shared_network_item },
+};
+
+static int
+dissect_ranap_PLMNs_in_shared_network(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_PLMNs_in_shared_network, PLMNs_in_shared_network_sequence_of,
+ 1, 32);
+
+ return offset;
+}
+static int dissect_pLMNs_in_shared_network(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PLMNs_in_shared_network(tvb, offset, pinfo, tree, hf_ranap_pLMNs_in_shared_network);
+}
+
+
+static const per_sequence_t Shared_Network_Information_sequence[] = {
+ { "pLMNs-in-shared-network" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_pLMNs_in_shared_network },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_Shared_Network_Information(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Shared_Network_Information, Shared_Network_Information_sequence);
+
+ return offset;
+}
+static int dissect_shared_network_information(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Shared_Network_Information(tvb, offset, pinfo, tree, hf_ranap_shared_network_information);
+}
+
+
+static const value_string ranap_ProvidedData_vals[] = {
+ { 0, "shared-network-information" },
+ { 0, NULL }
+};
+
+static const per_choice_t ProvidedData_choice[] = {
+ { 0, "shared-network-information" , ASN1_EXTENSION_ROOT , dissect_shared_network_information },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_ProvidedData(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ProvidedData, ProvidedData_choice,
+ NULL);
+
+ return offset;
+}
+static int dissect_id_ProvidedData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ProvidedData(tvb, offset, pinfo, tree, hf_ranap_id_ProvidedData);
+}
+
+
+
+static int
+dissect_ranap_UL_GTP_PDU_SequenceNumber(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 65535U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_id_UL_GTP_PDU_SequenceNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_UL_GTP_PDU_SequenceNumber(tvb, offset, pinfo, tree, hf_ranap_id_UL_GTP_PDU_SequenceNumber);
+}
+static int dissect_uL_GTP_PDU_SequenceNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_UL_GTP_PDU_SequenceNumber(tvb, offset, pinfo, tree, hf_ranap_uL_GTP_PDU_SequenceNumber);
+}
+static int dissect_ul_GTP_PDU_SequenceNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_UL_GTP_PDU_SequenceNumber(tvb, offset, pinfo, tree, hf_ranap_ul_GTP_PDU_SequenceNumber);
+}
+
+
+
+static int
+dissect_ranap_DL_N_PDU_SequenceNumber(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 65535U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_dl_N_PDU_SequenceNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_DL_N_PDU_SequenceNumber(tvb, offset, pinfo, tree, hf_ranap_dl_N_PDU_SequenceNumber);
+}
+
+
+
+static int
+dissect_ranap_UL_N_PDU_SequenceNumber(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 65535U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_ul_N_PDU_SequenceNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_UL_N_PDU_SequenceNumber(tvb, offset, pinfo, tree, hf_ranap_ul_N_PDU_SequenceNumber);
+}
+
+
+static const per_sequence_t RAB_ContextItem_sequence[] = {
+ { "rAB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_ID },
+ { "dl-GTP-PDU-SequenceNumber" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_dl_GTP_PDU_SequenceNumber },
+ { "ul-GTP-PDU-SequenceNumber" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ul_GTP_PDU_SequenceNumber },
+ { "dl-N-PDU-SequenceNumber" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_dl_N_PDU_SequenceNumber },
+ { "ul-N-PDU-SequenceNumber" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ul_N_PDU_SequenceNumber },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_ContextItem(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_ContextItem, RAB_ContextItem_sequence);
+
+ return offset;
+}
+static int dissect_id_RAB_ContextItem(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_ContextItem(tvb, offset, pinfo, tree, hf_ranap_id_RAB_ContextItem);
+}
+
+
+
+static int
+dissect_ranap_RAB_ContextList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_RAB_IE_ContainerList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_RAB_ContextList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_ContextList(tvb, offset, pinfo, tree, hf_ranap_id_RAB_ContextList);
+}
+
+
+static const per_sequence_t RABs_ContextFailedtoTransferItem_sequence[] = {
+ { "rAB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_ID },
+ { "cause" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_cause },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RABs_ContextFailedtoTransferItem(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RABs_ContextFailedtoTransferItem, RABs_ContextFailedtoTransferItem_sequence);
+
+ return offset;
+}
+static int dissect_id_RAB_ContextFailedtoTransferItem(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RABs_ContextFailedtoTransferItem(tvb, offset, pinfo, tree, hf_ranap_id_RAB_ContextFailedtoTransferItem);
+}
+
+
+
+static int
+dissect_ranap_RAB_ContextFailedtoTransferList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_RAB_IE_ContainerList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_RAB_ContextFailedtoTransferList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_ContextFailedtoTransferList(tvb, offset, pinfo, tree, hf_ranap_id_RAB_ContextFailedtoTransferList);
+}
+
+
+static const per_sequence_t RAB_ContextItem_RANAP_RelocInf_sequence[] = {
+ { "rAB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_ID },
+ { "dl-GTP-PDU-SequenceNumber" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_dl_GTP_PDU_SequenceNumber },
+ { "ul-GTP-PDU-SequenceNumber" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ul_GTP_PDU_SequenceNumber },
+ { "dl-N-PDU-SequenceNumber" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_dl_N_PDU_SequenceNumber },
+ { "ul-N-PDU-SequenceNumber" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ul_N_PDU_SequenceNumber },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_ContextItem_RANAP_RelocInf(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_ContextItem_RANAP_RelocInf, RAB_ContextItem_RANAP_RelocInf_sequence);
+
+ return offset;
+}
+static int dissect_id_RAB_ContextItem_RANAP_RelocInf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_ContextItem_RANAP_RelocInf(tvb, offset, pinfo, tree, hf_ranap_id_RAB_ContextItem_RANAP_RelocInf);
+}
+
+
+
+static int
+dissect_ranap_RAB_ContextList_RANAP_RelocInf(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_RAB_IE_ContainerList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_RAB_ContextList_RANAP_RelocInf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_ContextList_RANAP_RelocInf(tvb, offset, pinfo, tree, hf_ranap_id_RAB_ContextList_RANAP_RelocInf);
+}
+
+
+
+static int
+dissect_ranap_TransportLayerAddress(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_bit_string(tvb, offset, pinfo, tree, hf_index,
+ 1, 160, TRUE);
+
+ return offset;
+}
+static int dissect_id_TransportLayerAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TransportLayerAddress(tvb, offset, pinfo, tree, hf_ranap_id_TransportLayerAddress);
+}
+static int dissect_transportLayerAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TransportLayerAddress(tvb, offset, pinfo, tree, hf_ranap_transportLayerAddress);
+}
+
+
+static const per_sequence_t RAB_DataForwardingItem_sequence[] = {
+ { "rAB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_ID },
+ { "transportLayerAddress" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_transportLayerAddress },
+ { "iuTransportAssociation" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_iuTransportAssociation },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_DataForwardingItem(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_DataForwardingItem, RAB_DataForwardingItem_sequence);
+
+ return offset;
+}
+static int dissect_id_RAB_DataForwardingItem(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_DataForwardingItem(tvb, offset, pinfo, tree, hf_ranap_id_RAB_DataForwardingItem);
+}
+
+
+static const per_sequence_t RAB_DataForwardingItem_SRNS_CtxReq_sequence[] = {
+ { "rAB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_ID },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_DataForwardingItem_SRNS_CtxReq(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_DataForwardingItem_SRNS_CtxReq, RAB_DataForwardingItem_SRNS_CtxReq_sequence);
+
+ return offset;
+}
+static int dissect_id_RAB_DataForwardingItem_SRNS_CtxReq(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_DataForwardingItem_SRNS_CtxReq(tvb, offset, pinfo, tree, hf_ranap_id_RAB_DataForwardingItem_SRNS_CtxReq);
+}
+
+
+
+static int
+dissect_ranap_RAB_DataForwardingList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_RAB_IE_ContainerList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_RAB_DataForwardingList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_DataForwardingList(tvb, offset, pinfo, tree, hf_ranap_id_RAB_DataForwardingList);
+}
+
+
+
+static int
+dissect_ranap_RAB_DataForwardingList_SRNS_CtxReq(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_RAB_IE_ContainerList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_RAB_DataForwardingList_SRNS_CtxReq(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_DataForwardingList_SRNS_CtxReq(tvb, offset, pinfo, tree, hf_ranap_id_RAB_DataForwardingList_SRNS_CtxReq);
+}
+
+
+
+static int
+dissect_ranap_UnsuccessfullyTransmittedDataVolume(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 4294967295U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_dl_UnsuccessfullyTransmittedDataVolume(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_UnsuccessfullyTransmittedDataVolume(tvb, offset, pinfo, tree, hf_ranap_dl_UnsuccessfullyTransmittedDataVolume);
+}
+
+
+
+static int
+dissect_ranap_DataVolumeReference(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 255U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_dataVolumeReference(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_DataVolumeReference(tvb, offset, pinfo, tree, hf_ranap_dataVolumeReference);
+}
+
+
+static const per_sequence_t DataVolumeList_item_sequence[] = {
+ { "dl-UnsuccessfullyTransmittedDataVolume", ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_dl_UnsuccessfullyTransmittedDataVolume },
+ { "dataVolumeReference" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_dataVolumeReference },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_DataVolumeList_item(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_DataVolumeList_item, DataVolumeList_item_sequence);
+
+ return offset;
+}
+static int dissect_DataVolumeList_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_DataVolumeList_item(tvb, offset, pinfo, tree, hf_ranap_DataVolumeList_item);
+}
+
+
+static const per_sequence_t DataVolumeList_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_DataVolumeList_item },
+};
+
+static int
+dissect_ranap_DataVolumeList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_DataVolumeList, DataVolumeList_sequence_of,
+ 1, 2);
+
+ return offset;
+}
+static int dissect_rab_dl_UnsuccessfullyTransmittedDataVolume(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_DataVolumeList(tvb, offset, pinfo, tree, hf_ranap_rab_dl_UnsuccessfullyTransmittedDataVolume);
+}
+static int dissect_dl_dataVolumes(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_DataVolumeList(tvb, offset, pinfo, tree, hf_ranap_dl_dataVolumes);
+}
+
+
+static const per_sequence_t RAB_DataVolumeReportItem_sequence[] = {
+ { "rAB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_ID },
+ { "dl-UnsuccessfullyTransmittedDataVolume", ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rab_dl_UnsuccessfullyTransmittedDataVolume },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_DataVolumeReportItem(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_DataVolumeReportItem, RAB_DataVolumeReportItem_sequence);
+
+ return offset;
+}
+static int dissect_id_RAB_DataVolumeReportItem(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_DataVolumeReportItem(tvb, offset, pinfo, tree, hf_ranap_id_RAB_DataVolumeReportItem);
+}
+
+
+
+static int
+dissect_ranap_RAB_DataVolumeReportList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_RAB_IE_ContainerList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_RAB_DataVolumeReportList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_DataVolumeReportList(tvb, offset, pinfo, tree, hf_ranap_id_RAB_DataVolumeReportList);
+}
+
+
+static const per_sequence_t RAB_DataVolumeReportRequestItem_sequence[] = {
+ { "rAB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_ID },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_DataVolumeReportRequestItem(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_DataVolumeReportRequestItem, RAB_DataVolumeReportRequestItem_sequence);
+
+ return offset;
+}
+static int dissect_id_RAB_DataVolumeReportRequestItem(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_DataVolumeReportRequestItem(tvb, offset, pinfo, tree, hf_ranap_id_RAB_DataVolumeReportRequestItem);
+}
+
+
+
+static int
+dissect_ranap_RAB_DataVolumeReportRequestList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_RAB_IE_ContainerList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_RAB_DataVolumeReportRequestList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_DataVolumeReportRequestList(tvb, offset, pinfo, tree, hf_ranap_id_RAB_DataVolumeReportRequestList);
+}
+
+
+static const per_sequence_t RAB_FailedItem_sequence[] = {
+ { "rAB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_ID },
+ { "cause" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_cause },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_FailedItem(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_FailedItem, RAB_FailedItem_sequence);
+
+ return offset;
+}
+static int dissect_id_RAB_FailedItem(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_FailedItem(tvb, offset, pinfo, tree, hf_ranap_id_RAB_FailedItem);
+}
+
+
+
+static int
+dissect_ranap_RAB_FailedList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_RAB_IE_ContainerList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_RAB_FailedList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_FailedList(tvb, offset, pinfo, tree, hf_ranap_id_RAB_FailedList);
+}
+
+
+static const per_sequence_t RABs_failed_to_reportItem_sequence[] = {
+ { "rAB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_ID },
+ { "cause" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_cause },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RABs_failed_to_reportItem(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RABs_failed_to_reportItem, RABs_failed_to_reportItem_sequence);
+
+ return offset;
+}
+static int dissect_id_RAB_FailedtoReportItem(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RABs_failed_to_reportItem(tvb, offset, pinfo, tree, hf_ranap_id_RAB_FailedtoReportItem);
+}
+
+
+
+static int
+dissect_ranap_RAB_FailedtoReportList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_RAB_IE_ContainerList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_RAB_FailedtoReportList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_FailedtoReportList(tvb, offset, pinfo, tree, hf_ranap_id_RAB_FailedtoReportList);
+}
+
+
+
+static int
+dissect_ranap_RAB_ModifyList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_RAB_IE_ContainerList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_RAB_ModifyList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_ModifyList(tvb, offset, pinfo, tree, hf_ranap_id_RAB_ModifyList);
+}
+
+
+static const per_sequence_t Requested_RAB_Parameter_MaxBitrateList_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_Requested_RAB_Parameter_MaxBitrateList_item },
+};
+
+static int
+dissect_ranap_Requested_RAB_Parameter_MaxBitrateList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Requested_RAB_Parameter_MaxBitrateList, Requested_RAB_Parameter_MaxBitrateList_sequence_of,
+ 1, 2);
+
+ return offset;
+}
+static int dissect_requestedMaxBitrates(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Requested_RAB_Parameter_MaxBitrateList(tvb, offset, pinfo, tree, hf_ranap_requestedMaxBitrates);
+}
+
+
+static const per_sequence_t Requested_RAB_Parameter_GuaranteedBitrateList_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_Requested_RAB_Parameter_GuaranteedBitrateList_item },
+};
+
+static int
+dissect_ranap_Requested_RAB_Parameter_GuaranteedBitrateList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Requested_RAB_Parameter_GuaranteedBitrateList, Requested_RAB_Parameter_GuaranteedBitrateList_sequence_of,
+ 1, 2);
+
+ return offset;
+}
+static int dissect_requestedGuaranteedBitrates(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Requested_RAB_Parameter_GuaranteedBitrateList(tvb, offset, pinfo, tree, hf_ranap_requestedGuaranteedBitrates);
+}
+
+
+static const per_sequence_t Requested_RAB_Parameter_Values_sequence[] = {
+ { "requestedMaxBitrates" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_requestedMaxBitrates },
+ { "requestedGuaranteedBitrates" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_requestedGuaranteedBitrates },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_Requested_RAB_Parameter_Values(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Requested_RAB_Parameter_Values, Requested_RAB_Parameter_Values_sequence);
+
+ return offset;
+}
+static int dissect_requested_RAB_Parameter_Values(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Requested_RAB_Parameter_Values(tvb, offset, pinfo, tree, hf_ranap_requested_RAB_Parameter_Values);
+}
+
+
+static const per_sequence_t RAB_ModifyItem_sequence[] = {
+ { "rAB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_ID },
+ { "requested-RAB-Parameter-Values", ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_requested_RAB_Parameter_Values },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_ModifyItem(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_ModifyItem, RAB_ModifyItem_sequence);
+
+ return offset;
+}
+static int dissect_id_RAB_ModifyItem(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_ModifyItem(tvb, offset, pinfo, tree, hf_ranap_id_RAB_ModifyItem);
+}
+
+
+static const value_string ranap_TypeOfError_vals[] = {
+ { 0, "not-understood" },
+ { 1, "missing" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_TypeOfError(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_id_TypeOfError(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TypeOfError(tvb, offset, pinfo, tree, hf_ranap_id_TypeOfError);
+}
+
+
+static const value_string ranap_TrafficClass_vals[] = {
+ { 0, "conversational" },
+ { 1, "streaming" },
+ { 2, "interactive" },
+ { 3, "background" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_TrafficClass(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 3, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_trafficClass(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TrafficClass(tvb, offset, pinfo, tree, hf_ranap_trafficClass);
+}
+
+
+static const value_string ranap_RAB_AsymmetryIndicator_vals[] = {
+ { 0, "symmetric-bidirectional" },
+ { 1, "asymmetric-unidirectional-downlink" },
+ { 2, "asymmetric-unidirectional-uplink" },
+ { 3, "asymmetric-bidirectional" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_RAB_AsymmetryIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 3, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_rAB_AsymmetryIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_AsymmetryIndicator(tvb, offset, pinfo, tree, hf_ranap_rAB_AsymmetryIndicator);
+}
+
+
+static const per_sequence_t RAB_Parameter_MaxBitrateList_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_RAB_Parameter_MaxBitrateList_item },
+};
+
+static int
+dissect_ranap_RAB_Parameter_MaxBitrateList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_Parameter_MaxBitrateList, RAB_Parameter_MaxBitrateList_sequence_of,
+ 1, 2);
+
+ return offset;
+}
+static int dissect_maxBitrate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_Parameter_MaxBitrateList(tvb, offset, pinfo, tree, hf_ranap_maxBitrate);
+}
+
+
+static const per_sequence_t RAB_Parameter_GuaranteedBitrateList_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_RAB_Parameter_GuaranteedBitrateList_item },
+};
+
+static int
+dissect_ranap_RAB_Parameter_GuaranteedBitrateList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_Parameter_GuaranteedBitrateList, RAB_Parameter_GuaranteedBitrateList_sequence_of,
+ 1, 2);
+
+ return offset;
+}
+static int dissect_guaranteedBitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_Parameter_GuaranteedBitrateList(tvb, offset, pinfo, tree, hf_ranap_guaranteedBitRate);
+}
+
+
+static const value_string ranap_DeliveryOrder_vals[] = {
+ { 0, "delivery-order-requested" },
+ { 1, "delivery-order-not-requested" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_DeliveryOrder(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_deliveryOrder(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_DeliveryOrder(tvb, offset, pinfo, tree, hf_ranap_deliveryOrder);
+}
+
+
+
+static int
+dissect_ranap_MaxSDU_Size(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 32768U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_maxSDU_Size(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MaxSDU_Size(tvb, offset, pinfo, tree, hf_ranap_maxSDU_Size);
+}
+
+
+
+static int
+dissect_ranap_INTEGER_1_9(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 1U, 9U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_mantissa(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_INTEGER_1_9(tvb, offset, pinfo, tree, hf_ranap_mantissa);
+}
+
+
+
+static int
+dissect_ranap_INTEGER_1_6(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 1U, 6U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_exponent_1_8(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_INTEGER_1_6(tvb, offset, pinfo, tree, hf_ranap_exponent_1_8);
+}
+
+
+static const per_sequence_t SDU_ErrorRatio_sequence[] = {
+ { "mantissa" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_mantissa },
+ { "exponent" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_exponent_1_8 },
+ { "iE-Extensions" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_SDU_ErrorRatio(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_SDU_ErrorRatio, SDU_ErrorRatio_sequence);
+
+ return offset;
+}
+static int dissect_sDU_ErrorRatio(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SDU_ErrorRatio(tvb, offset, pinfo, tree, hf_ranap_sDU_ErrorRatio);
+}
+
+
+
+static int
+dissect_ranap_INTEGER_1_8(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 1U, 8U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_exponent(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_INTEGER_1_8(tvb, offset, pinfo, tree, hf_ranap_exponent);
+}
+
+
+static const per_sequence_t ResidualBitErrorRatio_sequence[] = {
+ { "mantissa" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_mantissa },
+ { "exponent" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_exponent },
+ { "iE-Extensions" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_ResidualBitErrorRatio(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ResidualBitErrorRatio, ResidualBitErrorRatio_sequence);
+
+ return offset;
+}
+static int dissect_residualBitErrorRatio(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ResidualBitErrorRatio(tvb, offset, pinfo, tree, hf_ranap_residualBitErrorRatio);
+}
+
+
+static const value_string ranap_DeliveryOfErroneousSDU_vals[] = {
+ { 0, "yes" },
+ { 1, "no" },
+ { 2, "no-error-detection-consideration" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_DeliveryOfErroneousSDU(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 2, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_deliveryOfErroneousSDU(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_DeliveryOfErroneousSDU(tvb, offset, pinfo, tree, hf_ranap_deliveryOfErroneousSDU);
+}
+
+
+
+static int
+dissect_ranap_SubflowSDU_Size(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 4095U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_subflowSDU_Size(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SubflowSDU_Size(tvb, offset, pinfo, tree, hf_ranap_subflowSDU_Size);
+}
+
+
+
+static int
+dissect_ranap_RAB_SubflowCombinationBitRate(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 16000000U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_rAB_SubflowCombinationBitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_SubflowCombinationBitRate(tvb, offset, pinfo, tree, hf_ranap_rAB_SubflowCombinationBitRate);
+}
+
+
+static const per_sequence_t SDU_FormatInformationParameters_item_sequence[] = {
+ { "subflowSDU-Size" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_subflowSDU_Size },
+ { "rAB-SubflowCombinationBitRate", ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rAB_SubflowCombinationBitRate },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_SDU_FormatInformationParameters_item(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_SDU_FormatInformationParameters_item, SDU_FormatInformationParameters_item_sequence);
+
+ return offset;
+}
+static int dissect_SDU_FormatInformationParameters_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SDU_FormatInformationParameters_item(tvb, offset, pinfo, tree, hf_ranap_SDU_FormatInformationParameters_item);
+}
+
+
+static const per_sequence_t SDU_FormatInformationParameters_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_SDU_FormatInformationParameters_item },
+};
+
+static int
+dissect_ranap_SDU_FormatInformationParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_SDU_FormatInformationParameters, SDU_FormatInformationParameters_sequence_of,
+ 1, 64);
+
+ return offset;
+}
+static int dissect_sDU_FormatInformationParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SDU_FormatInformationParameters(tvb, offset, pinfo, tree, hf_ranap_sDU_FormatInformationParameters);
+}
+
+
+static const per_sequence_t SDU_Parameters_item_sequence[] = {
+ { "sDU-ErrorRatio" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_sDU_ErrorRatio },
+ { "residualBitErrorRatio" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_residualBitErrorRatio },
+ { "deliveryOfErroneousSDU" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_deliveryOfErroneousSDU },
+ { "sDU-FormatInformationParameters", ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_sDU_FormatInformationParameters },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_SDU_Parameters_item(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_SDU_Parameters_item, SDU_Parameters_item_sequence);
+
+ return offset;
+}
+static int dissect_SDU_Parameters_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SDU_Parameters_item(tvb, offset, pinfo, tree, hf_ranap_SDU_Parameters_item);
+}
+
+
+static const per_sequence_t SDU_Parameters_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_SDU_Parameters_item },
+};
+
+static int
+dissect_ranap_SDU_Parameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_SDU_Parameters, SDU_Parameters_sequence_of,
+ 1, 7);
+
+ return offset;
+}
+static int dissect_sDU_Parameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SDU_Parameters(tvb, offset, pinfo, tree, hf_ranap_sDU_Parameters);
+}
+
+
+
+static int
+dissect_ranap_TransferDelay(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 65535U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_transferDelay(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TransferDelay(tvb, offset, pinfo, tree, hf_ranap_transferDelay);
+}
+
+
+static const value_string ranap_TrafficHandlingPriority_vals[] = {
+ { 0, "spare" },
+ { 1, "highest" },
+ { 14, "lowest" },
+ { 15, "no-priority-used" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_TrafficHandlingPriority(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 15U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_trafficHandlingPriority(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TrafficHandlingPriority(tvb, offset, pinfo, tree, hf_ranap_trafficHandlingPriority);
+}
+
+
+static const value_string ranap_PriorityLevel_vals[] = {
+ { 0, "spare" },
+ { 1, "highest" },
+ { 14, "lowest" },
+ { 15, "no-priority" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_PriorityLevel(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 15U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_priorityLevel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_PriorityLevel(tvb, offset, pinfo, tree, hf_ranap_priorityLevel);
+}
+
+
+static const value_string ranap_Pre_emptionCapability_vals[] = {
+ { 0, "shall-not-trigger-pre-emption" },
+ { 1, "may-trigger-pre-emption" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_Pre_emptionCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_pre_emptionCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Pre_emptionCapability(tvb, offset, pinfo, tree, hf_ranap_pre_emptionCapability);
+}
+
+
+static const value_string ranap_Pre_emptionVulnerability_vals[] = {
+ { 0, "not-pre-emptable" },
+ { 1, "pre-emptable" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_Pre_emptionVulnerability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_pre_emptionVulnerability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Pre_emptionVulnerability(tvb, offset, pinfo, tree, hf_ranap_pre_emptionVulnerability);
+}
+
+
+static const value_string ranap_QueuingAllowed_vals[] = {
+ { 0, "queueing-not-allowed" },
+ { 1, "queueing-allowed" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_QueuingAllowed(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_queuingAllowed(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_QueuingAllowed(tvb, offset, pinfo, tree, hf_ranap_queuingAllowed);
+}
+
+
+static const per_sequence_t AllocationOrRetentionPriority_sequence[] = {
+ { "priorityLevel" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_priorityLevel },
+ { "pre-emptionCapability" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_pre_emptionCapability },
+ { "pre-emptionVulnerability" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_pre_emptionVulnerability },
+ { "queuingAllowed" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_queuingAllowed },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_AllocationOrRetentionPriority(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_AllocationOrRetentionPriority, AllocationOrRetentionPriority_sequence);
+
+ return offset;
+}
+static int dissect_allocationOrRetentionPriority(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_AllocationOrRetentionPriority(tvb, offset, pinfo, tree, hf_ranap_allocationOrRetentionPriority);
+}
+
+
+static const value_string ranap_SourceStatisticsDescriptor_vals[] = {
+ { 0, "speech" },
+ { 1, "unknown" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_SourceStatisticsDescriptor(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_sourceStatisticsDescriptor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SourceStatisticsDescriptor(tvb, offset, pinfo, tree, hf_ranap_sourceStatisticsDescriptor);
+}
+
+
+static const value_string ranap_RelocationRequirement_vals[] = {
+ { 0, "lossless" },
+ { 1, "none" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_RelocationRequirement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_relocationRequirement(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RelocationRequirement(tvb, offset, pinfo, tree, hf_ranap_relocationRequirement);
+}
+
+
+static const per_sequence_t RAB_Parameters_sequence[] = {
+ { "trafficClass" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_trafficClass },
+ { "rAB-AsymmetryIndicator" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_AsymmetryIndicator },
+ { "maxBitrate" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_maxBitrate },
+ { "guaranteedBitRate" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_guaranteedBitRate },
+ { "deliveryOrder" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_deliveryOrder },
+ { "maxSDU-Size" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_maxSDU_Size },
+ { "sDU-Parameters" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_sDU_Parameters },
+ { "transferDelay" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_transferDelay },
+ { "trafficHandlingPriority" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_trafficHandlingPriority },
+ { "allocationOrRetentionPriority", ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_allocationOrRetentionPriority },
+ { "sourceStatisticsDescriptor" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_sourceStatisticsDescriptor },
+ { "relocationRequirement" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_relocationRequirement },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_Parameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_Parameters, RAB_Parameters_sequence);
+
+ return offset;
+}
+static int dissect_id_RAB_Parameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_Parameters(tvb, offset, pinfo, tree, hf_ranap_id_RAB_Parameters);
+}
+static int dissect_id_AlternativeRABConfiguration(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_Parameters(tvb, offset, pinfo, tree, hf_ranap_id_AlternativeRABConfiguration);
+}
+static int dissect_rAB_Parameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_Parameters(tvb, offset, pinfo, tree, hf_ranap_rAB_Parameters);
+}
+
+
+static const per_sequence_t RAB_QueuedItem_sequence[] = {
+ { "rAB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_ID },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_QueuedItem(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_QueuedItem, RAB_QueuedItem_sequence);
+
+ return offset;
+}
+static int dissect_id_RAB_QueuedItem(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_QueuedItem(tvb, offset, pinfo, tree, hf_ranap_id_RAB_QueuedItem);
+}
+
+
+
+static int
+dissect_ranap_RAB_QueuedList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_RAB_IE_ContainerList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_RAB_QueuedList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_QueuedList(tvb, offset, pinfo, tree, hf_ranap_id_RAB_QueuedList);
+}
+
+
+
+static int
+dissect_ranap_RAB_ReleaseFailedList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_RAB_FailedList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_RAB_ReleaseFailedList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_ReleaseFailedList(tvb, offset, pinfo, tree, hf_ranap_id_RAB_ReleaseFailedList);
+}
+
+
+static const per_sequence_t RAB_ReleaseItem_sequence[] = {
+ { "rAB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_ID },
+ { "cause" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_cause },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_ReleaseItem(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_ReleaseItem, RAB_ReleaseItem_sequence);
+
+ return offset;
+}
+static int dissect_id_RAB_ReleaseItem(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_ReleaseItem(tvb, offset, pinfo, tree, hf_ranap_id_RAB_ReleaseItem);
+}
+
+
+static const per_sequence_t RAB_ReleasedItem_IuRelComp_sequence[] = {
+ { "rAB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_ID },
+ { "dL-GTP-PDU-SequenceNumber" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_dL_GTP_PDU_SequenceNumber },
+ { "uL-GTP-PDU-SequenceNumber" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_uL_GTP_PDU_SequenceNumber },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_ReleasedItem_IuRelComp(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_ReleasedItem_IuRelComp, RAB_ReleasedItem_IuRelComp_sequence);
+
+ return offset;
+}
+static int dissect_id_RAB_ReleasedItem_IuRelComp(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_ReleasedItem_IuRelComp(tvb, offset, pinfo, tree, hf_ranap_id_RAB_ReleasedItem_IuRelComp);
+}
+
+
+
+static int
+dissect_ranap_RepetitionNumber1(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 1U, 256U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_item_repetitionNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RepetitionNumber1(tvb, offset, pinfo, tree, hf_ranap_item_repetitionNumber);
+}
+
+
+static const per_sequence_t MessageStructure_item_sequence[] = {
+ { "iE-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_iE_ID },
+ { "repetitionNumber" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_item_repetitionNumber },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_MessageStructure_item(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MessageStructure_item, MessageStructure_item_sequence);
+
+ return offset;
+}
+static int dissect_MessageStructure_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MessageStructure_item(tvb, offset, pinfo, tree, hf_ranap_MessageStructure_item);
+}
+
+
+static const per_sequence_t MessageStructure_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_MessageStructure_item },
+};
+
+static int
+dissect_ranap_MessageStructure(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_MessageStructure, MessageStructure_sequence_of,
+ 1, 256);
+
+ return offset;
+}
+static int dissect_id_MessageStructure(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MessageStructure(tvb, offset, pinfo, tree, hf_ranap_id_MessageStructure);
+}
+
+
+
+static int
+dissect_ranap_RAB_ReleaseList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_RAB_IE_ContainerList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_RAB_ReleaseList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_ReleaseList(tvb, offset, pinfo, tree, hf_ranap_id_RAB_ReleaseList);
+}
+
+
+static const per_sequence_t RAB_ReleasedItem_sequence[] = {
+ { "rAB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_ID },
+ { "dl-dataVolumes" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_dl_dataVolumes },
+ { "dL-GTP-PDU-SequenceNumber" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_dL_GTP_PDU_SequenceNumber },
+ { "uL-GTP-PDU-SequenceNumber" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_uL_GTP_PDU_SequenceNumber },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_ReleasedItem(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_ReleasedItem, RAB_ReleasedItem_sequence);
+
+ return offset;
+}
+static int dissect_id_RAB_ReleasedItem(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_ReleasedItem(tvb, offset, pinfo, tree, hf_ranap_id_RAB_ReleasedItem);
+}
+
+
+
+static int
+dissect_ranap_RAB_ReleasedList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_RAB_IE_ContainerList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_RAB_ReleasedList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_ReleasedList(tvb, offset, pinfo, tree, hf_ranap_id_RAB_ReleasedList);
+}
+
+
+
+static int
+dissect_ranap_RAB_ReleasedList_IuRelComp(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_RAB_IE_ContainerList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_RAB_ReleasedList_IuRelComp(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_ReleasedList_IuRelComp(tvb, offset, pinfo, tree, hf_ranap_id_RAB_ReleasedList_IuRelComp);
+}
+
+
+static const per_sequence_t RAB_RelocationReleaseItem_sequence[] = {
+ { "rAB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_ID },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_RelocationReleaseItem(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_RelocationReleaseItem, RAB_RelocationReleaseItem_sequence);
+
+ return offset;
+}
+static int dissect_id_RAB_RelocationReleaseItem(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_RelocationReleaseItem(tvb, offset, pinfo, tree, hf_ranap_id_RAB_RelocationReleaseItem);
+}
+
+
+
+static int
+dissect_ranap_RAB_RelocationReleaseList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_RAB_IE_ContainerList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_RAB_RelocationReleaseList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_RelocationReleaseList(tvb, offset, pinfo, tree, hf_ranap_id_RAB_RelocationReleaseList);
+}
+
+
+
+static int
+dissect_ranap_NAS_SynchronisationIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_bit_string(tvb, offset, pinfo, tree, hf_index,
+ 4, 4, FALSE);
+
+ return offset;
+}
+static int dissect_nAS_SynchronisationIndicator(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_NAS_SynchronisationIndicator(tvb, offset, pinfo, tree, hf_ranap_nAS_SynchronisationIndicator);
+}
+
+
+static const value_string ranap_DataVolumeReportingIndication_vals[] = {
+ { 0, "do-report" },
+ { 1, "do-not-report" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_DataVolumeReportingIndication(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_dataVolumeReportingIndication(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_DataVolumeReportingIndication(tvb, offset, pinfo, tree, hf_ranap_dataVolumeReportingIndication);
+}
+
+
+static const value_string ranap_UserPlaneMode_vals[] = {
+ { 0, "transparent-mode" },
+ { 1, "support-mode-for-predefined-SDU-sizes" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_UserPlaneMode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_userPlaneMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_UserPlaneMode(tvb, offset, pinfo, tree, hf_ranap_userPlaneMode);
+}
+
+
+
+static int
+dissect_ranap_UP_ModeVersions(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_bit_string(tvb, offset, pinfo, tree, hf_index,
+ 16, 16, FALSE);
+
+ return offset;
+}
+static int dissect_uP_ModeVersions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_UP_ModeVersions(tvb, offset, pinfo, tree, hf_ranap_uP_ModeVersions);
+}
+
+
+static const per_sequence_t UserPlaneInformation_sequence[] = {
+ { "userPlaneMode" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_userPlaneMode },
+ { "uP-ModeVersions" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_uP_ModeVersions },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_UserPlaneInformation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_UserPlaneInformation, UserPlaneInformation_sequence);
+
+ return offset;
+}
+static int dissect_userPlaneInformation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_UserPlaneInformation(tvb, offset, pinfo, tree, hf_ranap_userPlaneInformation);
+}
+
+
+static const value_string ranap_Service_Handover_vals[] = {
+ { 0, "handover-to-GSM-should-be-performed" },
+ { 1, "handover-to-GSM-should-not-be-performed" },
+ { 2, "handover-to-GSM-shall-not-be-performed" },
+ { 0, NULL }
+};
+
+static int
+dissect_ranap_Service_Handover(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 2, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_service_Handover(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Service_Handover(tvb, offset, pinfo, tree, hf_ranap_service_Handover);
+}
+
+
+static const per_sequence_t RAB_SetupItem_RelocReq_sequence[] = {
+ { "rAB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_ID },
+ { "nAS-SynchronisationIndicator", ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nAS_SynchronisationIndicator },
+ { "rAB-Parameters" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_Parameters },
+ { "dataVolumeReportingIndication", ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_dataVolumeReportingIndication },
+ { "pDP-TypeInformation" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_pDP_TypeInformation },
+ { "userPlaneInformation" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_userPlaneInformation },
+ { "transportLayerAddress" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_transportLayerAddress },
+ { "iuTransportAssociation" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_iuTransportAssociation },
+ { "service-Handover" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_service_Handover },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_SetupItem_RelocReq(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_SetupItem_RelocReq, RAB_SetupItem_RelocReq_sequence);
+
+ return offset;
+}
+static int dissect_id_RAB_SetupItem_RelocReq(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_SetupItem_RelocReq(tvb, offset, pinfo, tree, hf_ranap_id_RAB_SetupItem_RelocReq);
+}
+
+
+static const per_sequence_t RAB_SetupItem_RelocReqAck_sequence[] = {
+ { "rAB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_ID },
+ { "transportLayerAddress" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_transportLayerAddress },
+ { "iuTransportAssociation" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iuTransportAssociation },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_SetupItem_RelocReqAck(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_SetupItem_RelocReqAck, RAB_SetupItem_RelocReqAck_sequence);
+
+ return offset;
}
+static int dissect_id_RAB_SetupItem_RelocReqAck(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_SetupItem_RelocReqAck(tvb, offset, pinfo, tree, hf_ranap_id_RAB_SetupItem_RelocReqAck);
+}
+
+
+
+static int
+dissect_ranap_RAB_SetupList_RelocReq(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_RAB_IE_ContainerList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_RAB_SetupList_RelocReq(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_SetupList_RelocReq(tvb, offset, pinfo, tree, hf_ranap_id_RAB_SetupList_RelocReq);
+}
+
+
+
+static int
+dissect_ranap_RAB_SetupList_RelocReqAck(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_RAB_IE_ContainerList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_RAB_SetupList_RelocReqAck(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_SetupList_RelocReqAck(tvb, offset, pinfo, tree, hf_ranap_id_RAB_SetupList_RelocReqAck);
+}
+
+
+static const per_sequence_t RAB_SetupOrModifiedItem_sequence[] = {
+ { "rAB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_ID },
+ { "transportLayerAddress" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_transportLayerAddress },
+ { "iuTransportAssociation" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iuTransportAssociation },
+ { "dl-dataVolumes" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_dl_dataVolumes },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_SetupOrModifiedItem(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_SetupOrModifiedItem, RAB_SetupOrModifiedItem_sequence);
+
+ return offset;
+}
+static int dissect_id_RAB_SetupOrModifiedItem(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_SetupOrModifiedItem(tvb, offset, pinfo, tree, hf_ranap_id_RAB_SetupOrModifiedItem);
+}
+
+
+
+static int
+dissect_ranap_RAB_SetupOrModifiedList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_RAB_IE_ContainerList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_RAB_SetupOrModifiedList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_SetupOrModifiedList(tvb, offset, pinfo, tree, hf_ranap_id_RAB_SetupOrModifiedList);
+}
+
+
+
+static int
+dissect_ranap_FirstValue(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_FirstValue_ies(tvb, offset, pinfo, tree);
+
+
+ return offset;
+}
+static int dissect_firstValue(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_FirstValue(tvb, offset, pinfo, tree, hf_ranap_firstValue);
+}
+
+
+
+static int
+dissect_ranap_SecondValue(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_SecondValue_ies(tvb, offset, pinfo, tree);
+
+
+ return offset;
+}
+static int dissect_secondValue(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SecondValue(tvb, offset, pinfo, tree, hf_ranap_secondValue);
+}
+
+
+static const per_sequence_t ProtocolIE_FieldPair_sequence[] = {
+ { "id" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_id },
+ { "firstCriticality" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_firstCriticality },
+ { "firstValue" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_firstValue },
+ { "secondCriticality" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_secondCriticality },
+ { "secondValue" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_secondValue },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_ProtocolIE_FieldPair(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ProtocolIE_FieldPair, ProtocolIE_FieldPair_sequence);
+
+ return offset;
+}
+static int dissect_ProtocolIE_ContainerPair_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ProtocolIE_FieldPair(tvb, offset, pinfo, tree, hf_ranap_ProtocolIE_ContainerPair_item);
+}
+
+
+static const per_sequence_t ProtocolIE_ContainerPair_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ProtocolIE_ContainerPair_item },
+};
+
+static int
+dissect_ranap_ProtocolIE_ContainerPair(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ProtocolIE_ContainerPair, ProtocolIE_ContainerPair_sequence_of,
+ 0, 65535);
+
+ return offset;
+}
+static int dissect_ProtocolIE_ContainerPairList_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ProtocolIE_ContainerPair(tvb, offset, pinfo, tree, hf_ranap_ProtocolIE_ContainerPairList_item);
+}
+static int dissect_ProtocolIE_ContainerPairList256_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ProtocolIE_ContainerPair(tvb, offset, pinfo, tree, hf_ranap_ProtocolIE_ContainerPairList256_item);
+}
+
+
+static const per_sequence_t ProtocolIE_ContainerPairList256_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ProtocolIE_ContainerPairList256_item },
+};
+
+static int
+dissect_ranap_ProtocolIE_ContainerPairList256(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ProtocolIE_ContainerPairList256, ProtocolIE_ContainerPairList256_sequence_of,
+ 1, 256);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ranap_RAB_IE_ContainerPairList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_ProtocolIE_ContainerPairList256(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ranap_RAB_SetupOrModifyList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_RAB_IE_ContainerPairList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_RAB_SetupOrModifyList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_SetupOrModifyList(tvb, offset, pinfo, tree, hf_ranap_id_RAB_SetupOrModifyList);
+}
+
+
+static const per_sequence_t RAofIdleModeUEs_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_RAofIdleModeUEs_item },
+};
+
+static int
+dissect_ranap_RAofIdleModeUEs(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAofIdleModeUEs, RAofIdleModeUEs_sequence_of,
+ 1, 65536);
+
+ return offset;
+}
+static int dissect_rAofIdleModeUEs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAofIdleModeUEs(tvb, offset, pinfo, tree, hf_ranap_rAofIdleModeUEs);
+}
+
+
+static const per_sequence_t NotEmptyRAListofIdleModeUEs_sequence[] = {
+ { "rAofIdleModeUEs" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rAofIdleModeUEs },
+ { "iE-Extensions" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_NotEmptyRAListofIdleModeUEs(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_NotEmptyRAListofIdleModeUEs, NotEmptyRAListofIdleModeUEs_sequence);
+
+ return offset;
+}
+static int dissect_notEmptyRAListofIdleModeUEs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_NotEmptyRAListofIdleModeUEs(tvb, offset, pinfo, tree, hf_ranap_notEmptyRAListofIdleModeUEs);
+}
+
+
+static const value_string ranap_T_emptyFullRAListofIdleModeUEs_vals[] = {
+ { 0, "emptylist" },
+ { 1, "fulllist" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_T_emptyFullRAListofIdleModeUEs(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_emptyFullRAListofIdleModeUEs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_T_emptyFullRAListofIdleModeUEs(tvb, offset, pinfo, tree, hf_ranap_emptyFullRAListofIdleModeUEs);
+}
+
+
+static const value_string ranap_RAListofIdleModeUEs_vals[] = {
+ { 0, "notEmptyRAListofIdleModeUEs" },
+ { 1, "emptyFullRAListofIdleModeUEs" },
+ { 0, NULL }
+};
+
+static const per_choice_t RAListofIdleModeUEs_choice[] = {
+ { 0, "notEmptyRAListofIdleModeUEs" , ASN1_EXTENSION_ROOT , dissect_notEmptyRAListofIdleModeUEs },
+ { 1, "emptyFullRAListofIdleModeUEs", ASN1_EXTENSION_ROOT , dissect_emptyFullRAListofIdleModeUEs },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_RAListofIdleModeUEs(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAListofIdleModeUEs, RAListofIdleModeUEs_choice,
+ NULL);
+
+ return offset;
+}
+static int dissect_id_RAListofIdleModeUEs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAListofIdleModeUEs(tvb, offset, pinfo, tree, hf_ranap_id_RAListofIdleModeUEs);
+}
+
+
+static const value_string ranap_RedirectionCompleted_vals[] = {
+ { 0, "redirection-completed" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_RedirectionCompleted(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 0, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_id_RedirectionCompleted(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RedirectionCompleted(tvb, offset, pinfo, tree, hf_ranap_id_RedirectionCompleted);
+}
+
+
+
+static int
+dissect_ranap_RedirectionIndication(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_ProtocolIE_Container(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_id_RedirectionIndication(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RedirectionIndication(tvb, offset, pinfo, tree, hf_ranap_id_RedirectionIndication);
+}
+
+
+static const value_string ranap_RejectCauseValue_vals[] = {
+ { 0, "pLMN-Not-Allowed" },
+ { 1, "location-Area-Not-Allowed" },
+ { 2, "roaming-Not-Allowed-In-This-Location-Area" },
+ { 3, "no-Suitable-Cell-In-Location-Area" },
+ { 4, "gPRS-Services-Not-Allowed-In-This-PLMN" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_RejectCauseValue(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 4, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_id_RejectCauseValue(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RejectCauseValue(tvb, offset, pinfo, tree, hf_ranap_id_RejectCauseValue);
+}
+
+
+static const value_string ranap_RelocationType_vals[] = {
+ { 0, "ue-not-involved" },
+ { 1, "ue-involved" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_RelocationType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_id_RelocationType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RelocationType(tvb, offset, pinfo, tree, hf_ranap_id_RelocationType);
+}
+static int dissect_relocationType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RelocationType(tvb, offset, pinfo, tree, hf_ranap_relocationType);
+}
+
+
+static const value_string ranap_Event_vals[] = {
+ { 0, "stop-change-of-service-area" },
+ { 1, "direct" },
+ { 2, "change-of-servicearea" },
+ { 3, "stop-direct" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_Event(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 3, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_event(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_Event(tvb, offset, pinfo, tree, hf_ranap_event);
+}
+
+
+static const value_string ranap_ReportArea_vals[] = {
+ { 0, "service-area" },
+ { 1, "geographical-area" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_ReportArea(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_reportArea(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ReportArea(tvb, offset, pinfo, tree, hf_ranap_reportArea);
+}
+
+
+static const per_sequence_t RequestType_sequence[] = {
+ { "event" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_event },
+ { "reportArea" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_reportArea },
+ { "accuracyCode" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_accuracyCode },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RequestType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RequestType, RequestType_sequence);
+
+ return offset;
+}
+static int dissect_id_RequestType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RequestType(tvb, offset, pinfo, tree, hf_ranap_id_RequestType);
+}
+
+
+static const value_string ranap_ResponseTime_vals[] = {
+ { 0, "lowdelay" },
+ { 1, "delaytolerant" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_ResponseTime(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_id_ResponseTime(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ResponseTime(tvb, offset, pinfo, tree, hf_ranap_id_ResponseTime);
+}
+
+
+
+static int
+dissect_ranap_SessionUpdateID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 1048575U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_id_SessionUpdateID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SessionUpdateID(tvb, offset, pinfo, tree, hf_ranap_id_SessionUpdateID);
+}
+
+
+static const per_sequence_t AuthorisedSNAs_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_AuthorisedSNAs_item },
+};
+
+static int
+dissect_ranap_AuthorisedSNAs(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_AuthorisedSNAs, AuthorisedSNAs_sequence_of,
+ 1, 65536);
+
+ return offset;
+}
+static int dissect_authorisedSNAsList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_AuthorisedSNAs(tvb, offset, pinfo, tree, hf_ranap_authorisedSNAsList);
+}
+
+
+static const per_sequence_t AuthorisedPLMNs_item_sequence[] = {
+ { "pLMNidentity" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_pLMNidentity },
+ { "authorisedSNAsList" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_authorisedSNAsList },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_AuthorisedPLMNs_item(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_AuthorisedPLMNs_item, AuthorisedPLMNs_item_sequence);
+
+ return offset;
+}
+static int dissect_AuthorisedPLMNs_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_AuthorisedPLMNs_item(tvb, offset, pinfo, tree, hf_ranap_AuthorisedPLMNs_item);
+}
+
+
+static const per_sequence_t AuthorisedPLMNs_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_AuthorisedPLMNs_item },
+};
+
+static int
+dissect_ranap_AuthorisedPLMNs(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_AuthorisedPLMNs, AuthorisedPLMNs_sequence_of,
+ 1, 32);
+
+ return offset;
+}
+static int dissect_authorisedPLMNs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_AuthorisedPLMNs(tvb, offset, pinfo, tree, hf_ranap_authorisedPLMNs);
+}
+
+
+static const per_sequence_t SNA_Access_Information_sequence[] = {
+ { "authorisedPLMNs" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_authorisedPLMNs },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_SNA_Access_Information(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_SNA_Access_Information, SNA_Access_Information_sequence);
+
+ return offset;
+}
+static int dissect_id_SNA_Access_Information(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SNA_Access_Information(tvb, offset, pinfo, tree, hf_ranap_id_SNA_Access_Information);
+}
+
+
+static const per_sequence_t SourceRNC_ID_sequence[] = {
+ { "pLMNidentity" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_pLMNidentity },
+ { "rNC-ID" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rNC_ID },
+ { "iE-Extensions" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_SourceRNC_ID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_SourceRNC_ID, SourceRNC_ID_sequence);
+
+ return offset;
+}
+static int dissect_sourceRNC_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SourceRNC_ID(tvb, offset, pinfo, tree, hf_ranap_sourceRNC_ID);
+}
+
+
+static const value_string ranap_SourceID_vals[] = {
+ { 0, "sourceRNC-ID" },
+ { 1, "sAI" },
+ { 0, NULL }
+};
+
+static const per_choice_t SourceID_choice[] = {
+ { 0, "sourceRNC-ID" , ASN1_EXTENSION_ROOT , dissect_sourceRNC_ID },
+ { 1, "sAI" , ASN1_EXTENSION_ROOT , dissect_sAI },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_SourceID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_SourceID, SourceID_choice,
+ NULL);
+
+ return offset;
+}
+static int dissect_id_SourceID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SourceID(tvb, offset, pinfo, tree, hf_ranap_id_SourceID);
+}
+
+
+
+static int
+dissect_ranap_RRC_Container(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ -1, -1, NULL);
+
+ return offset;
+}
+static int dissect_id_SourceRNC_PDCP_context_info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RRC_Container(tvb, offset, pinfo, tree, hf_ranap_id_SourceRNC_PDCP_context_info);
+}
+static int dissect_rRC_Container(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RRC_Container(tvb, offset, pinfo, tree, hf_ranap_rRC_Container);
+}
+
+
+
+static int
+dissect_ranap_NumberOfIuInstances(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 1U, 2U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_numberOfIuInstances(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_NumberOfIuInstances(tvb, offset, pinfo, tree, hf_ranap_numberOfIuInstances);
+}
+
+
+
+static int
+dissect_ranap_D_RNTI(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 1048575U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_d_RNTI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_D_RNTI(tvb, offset, pinfo, tree, hf_ranap_d_RNTI);
+}
+
+
+static const per_sequence_t TrCH_ID_List_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_TrCH_ID_List_item },
+};
+
+static int
+dissect_ranap_TrCH_ID_List(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_TrCH_ID_List, TrCH_ID_List_sequence_of,
+ 1, 7);
+
+ return offset;
+}
+static int dissect_trCH_ID_List(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TrCH_ID_List(tvb, offset, pinfo, tree, hf_ranap_trCH_ID_List);
+}
+
+
+static const per_sequence_t RAB_TrCH_MappingItem_sequence[] = {
+ { "rAB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_ID },
+ { "trCH-ID-List" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_trCH_ID_List },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_TrCH_MappingItem(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_TrCH_MappingItem, RAB_TrCH_MappingItem_sequence);
+
+ return offset;
+}
+static int dissect_RAB_TrCH_Mapping_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_TrCH_MappingItem(tvb, offset, pinfo, tree, hf_ranap_RAB_TrCH_Mapping_item);
+}
+
+
+static const per_sequence_t RAB_TrCH_Mapping_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_RAB_TrCH_Mapping_item },
+};
+
+static int
+dissect_ranap_RAB_TrCH_Mapping(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_TrCH_Mapping, RAB_TrCH_Mapping_sequence_of,
+ 1, 256);
+
+ return offset;
+}
+static int dissect_rAB_TrCH_Mapping(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_TrCH_Mapping(tvb, offset, pinfo, tree, hf_ranap_rAB_TrCH_Mapping);
+}
+
+
+static const per_sequence_t SourceRNC_ToTargetRNC_TransparentContainer_sequence[] = {
+ { "rRC-Container" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rRC_Container },
+ { "numberOfIuInstances" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_numberOfIuInstances },
+ { "relocationType" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_relocationType },
+ { "chosenIntegrityProtectionAlgorithm", ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_chosenIntegrityProtectionAlgorithm },
+ { "integrityProtectionKey" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_integrityProtectionKey },
+ { "chosenEncryptionAlgorithForSignalling", ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_chosenEncryptionAlgorithForSignalling },
+ { "cipheringKey" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_cipheringKey },
+ { "chosenEncryptionAlgorithForCS", ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_chosenEncryptionAlgorithForCS },
+ { "chosenEncryptionAlgorithForPS", ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_chosenEncryptionAlgorithForPS },
+ { "d-RNTI" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_d_RNTI },
+ { "targetCellId" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_targetCellId },
+ { "rAB-TrCH-Mapping" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rAB_TrCH_Mapping },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_SourceRNC_ToTargetRNC_TransparentContainer, SourceRNC_ToTargetRNC_TransparentContainer_sequence);
+
+ return offset;
+}
+static int dissect_id_SourceRNC_ToTargetRNC_TransparentContainer(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_SourceRNC_ToTargetRNC_TransparentContainer(tvb, offset, pinfo, tree, hf_ranap_id_SourceRNC_ToTargetRNC_TransparentContainer);
+}
+
+
+static const per_sequence_t TargetRNC_ID_sequence[] = {
+ { "lAI" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_lAI },
+ { "rAC" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_rAC },
+ { "rNC-ID" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_rNC_ID },
+ { "iE-Extensions" , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_TargetRNC_ID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_TargetRNC_ID, TargetRNC_ID_sequence);
+
+ return offset;
+}
+static int dissect_targetRNC_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TargetRNC_ID(tvb, offset, pinfo, tree, hf_ranap_targetRNC_ID);
+}
+
+
+static const value_string ranap_TargetID_vals[] = {
+ { 0, "targetRNC-ID" },
+ { 1, "cGI" },
+ { 0, NULL }
+};
+
+static const per_choice_t TargetID_choice[] = {
+ { 0, "targetRNC-ID" , ASN1_EXTENSION_ROOT , dissect_targetRNC_ID },
+ { 1, "cGI" , ASN1_EXTENSION_ROOT , dissect_cGI },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_TargetID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_TargetID, TargetID_choice,
+ NULL);
+
+ return offset;
+}
+static int dissect_id_TargetID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TargetID(tvb, offset, pinfo, tree, hf_ranap_id_TargetID);
+}
+
+
+static const per_sequence_t TargetRNC_ToSourceRNC_TransparentContainer_sequence[] = {
+ { "rRC-Container" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rRC_Container },
+ { "d-RNTI" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_d_RNTI },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_TargetRNC_ToSourceRNC_TransparentContainer, TargetRNC_ToSourceRNC_TransparentContainer_sequence);
+
+ return offset;
+}
+static int dissect_id_TargetRNC_ToSourceRNC_TransparentContainer(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TargetRNC_ToSourceRNC_TransparentContainer(tvb, offset, pinfo, tree, hf_ranap_id_TargetRNC_ToSourceRNC_TransparentContainer);
+}
+
+
+
+static int
+dissect_ranap_TMSI(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 4, 4, NULL);
+
+ return offset;
+}
+static int dissect_tMSI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TMSI(tvb, offset, pinfo, tree, hf_ranap_tMSI);
+}
+
+
+
+static int
+dissect_ranap_P_TMSI(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 4, 4, NULL);
+
+ return offset;
+}
+static int dissect_p_TMSI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_P_TMSI(tvb, offset, pinfo, tree, hf_ranap_p_TMSI);
+}
+
+
+static const value_string ranap_TemporaryUE_ID_vals[] = {
+ { 0, "tMSI" },
+ { 1, "p-TMSI" },
+ { 0, NULL }
+};
+
+static const per_choice_t TemporaryUE_ID_choice[] = {
+ { 0, "tMSI" , ASN1_EXTENSION_ROOT , dissect_tMSI },
+ { 1, "p-TMSI" , ASN1_EXTENSION_ROOT , dissect_p_TMSI },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_TemporaryUE_ID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_TemporaryUE_ID, TemporaryUE_ID_choice,
+ NULL);
+
+ return offset;
+}
+static int dissect_id_TemporaryUE_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TemporaryUE_ID(tvb, offset, pinfo, tree, hf_ranap_id_TemporaryUE_ID);
+}
+
+
+static const value_string ranap_TraceDepth_vals[] = {
+ { 0, "minimum" },
+ { 1, "medium" },
+ { 2, "maximum" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_TraceDepth(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 2, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_traceDepth(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TraceDepth(tvb, offset, pinfo, tree, hf_ranap_traceDepth);
+}
+
+
+static const value_string ranap_T_interface_vals[] = {
+ { 0, "iu-cs" },
+ { 1, "iu-ps" },
+ { 2, "iur" },
+ { 3, "iub" },
+ { 4, "uu" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_T_interface(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 4, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_interface(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_T_interface(tvb, offset, pinfo, tree, hf_ranap_interface);
+}
+
+
+static const per_sequence_t InterfacesToTraceItem_sequence[] = {
+ { "interface" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_interface },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_InterfacesToTraceItem(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_InterfacesToTraceItem, InterfacesToTraceItem_sequence);
+
+ return offset;
+}
+static int dissect_ListOfInterfacesToTrace_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_InterfacesToTraceItem(tvb, offset, pinfo, tree, hf_ranap_ListOfInterfacesToTrace_item);
+}
+
+
+static const per_sequence_t ListOfInterfacesToTrace_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ListOfInterfacesToTrace_item },
+};
+
+static int
+dissect_ranap_ListOfInterfacesToTrace(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ListOfInterfacesToTrace, ListOfInterfacesToTrace_sequence_of,
+ 1, 16);
+
+ return offset;
+}
+static int dissect_listOfInterfacesToTrace(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_ListOfInterfacesToTrace(tvb, offset, pinfo, tree, hf_ranap_listOfInterfacesToTrace);
+}
+
+
+static const per_sequence_t TracePropagationParameters_sequence[] = {
+ { "traceRecordingSessionReference", ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_traceRecordingSessionReference },
+ { "traceDepth" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_traceDepth },
+ { "listOfInterfacesToTrace" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_listOfInterfacesToTrace },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_TracePropagationParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_TracePropagationParameters, TracePropagationParameters_sequence);
+
+ return offset;
+}
+static int dissect_id_TracePropagationParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TracePropagationParameters(tvb, offset, pinfo, tree, hf_ranap_id_TracePropagationParameters);
+}
+
+
+
+static int
+dissect_ranap_TraceType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 1, 1, NULL);
+
+ return offset;
+}
+static int dissect_id_TraceType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TraceType(tvb, offset, pinfo, tree, hf_ranap_id_TraceType);
+}
+
+
+static const per_sequence_t TransportLayerInformation_sequence[] = {
+ { "transportLayerAddress" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_transportLayerAddress },
+ { "iuTransportAssociation" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_iuTransportAssociation },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_TransportLayerInformation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_TransportLayerInformation, TransportLayerInformation_sequence);
+
+ return offset;
+}
+static int dissect_id_TransportLayerInformation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TransportLayerInformation(tvb, offset, pinfo, tree, hf_ranap_id_TransportLayerInformation);
+}
+static int dissect_transportLayerInformation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TransportLayerInformation(tvb, offset, pinfo, tree, hf_ranap_transportLayerInformation);
+}
+
+
+
+static int
+dissect_ranap_TriggerID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
+ 3, 22, NULL);
+
+ return offset;
+}
+static int dissect_id_TriggerID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_TriggerID(tvb, offset, pinfo, tree, hf_ranap_id_TriggerID);
+}
+
+
+static const value_string ranap_UE_ID_vals[] = {
+ { 0, "imsi" },
+ { 1, "imei" },
+ { 2, "imeisv" },
+ { 0, NULL }
+};
+
+static const per_choice_t UE_ID_choice[] = {
+ { 0, "imsi" , ASN1_EXTENSION_ROOT , dissect_imsi },
+ { 1, "imei" , ASN1_EXTENSION_ROOT , dissect_imei },
+ { 2, "imeisv" , ASN1_NOT_EXTENSION_ROOT, dissect_imeisv },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_UE_ID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_UE_ID, UE_ID_choice,
+ NULL);
+
+ return offset;
+}
+static int dissect_id_UE_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_UE_ID(tvb, offset, pinfo, tree, hf_ranap_id_UE_ID);
+}
+
+
+
+static int
+dissect_ranap_UESBI_IuA(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_bit_string(tvb, offset, pinfo, tree, hf_index,
+ 1, 128, FALSE);
+
+ return offset;
+}
+static int dissect_uESBI_IuA(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_UESBI_IuA(tvb, offset, pinfo, tree, hf_ranap_uESBI_IuA);
+}
+
+
+
+static int
+dissect_ranap_UESBI_IuB(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_bit_string(tvb, offset, pinfo, tree, hf_index,
+ 1, 128, FALSE);
+
+ return offset;
+}
+static int dissect_uESBI_IuB(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_UESBI_IuB(tvb, offset, pinfo, tree, hf_ranap_uESBI_IuB);
+}
+
+
+static const per_sequence_t UESBI_Iu_sequence[] = {
+ { "uESBI-IuA" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_uESBI_IuA },
+ { "uESBI-IuB" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_uESBI_IuB },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_UESBI_Iu(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_UESBI_Iu, UESBI_Iu_sequence);
+
+ return offset;
+}
+static int dissect_id_UESBI_Iu(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_UESBI_Iu(tvb, offset, pinfo, tree, hf_ranap_id_UESBI_Iu);
+}
+
+
+static const per_sequence_t UnsuccessfulLinking_IEs_item_sequence[] = {
+ { "tMGI" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_tMGI },
+ { "cause" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_cause },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_UnsuccessfulLinking_IEs_item(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_UnsuccessfulLinking_IEs_item, UnsuccessfulLinking_IEs_item_sequence);
+
+ return offset;
+}
+static int dissect_UnsuccessfulLinking_IEs_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_UnsuccessfulLinking_IEs_item(tvb, offset, pinfo, tree, hf_ranap_UnsuccessfulLinking_IEs_item);
+}
+
+
+static const per_sequence_t UnsuccessfulLinking_IEs_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_UnsuccessfulLinking_IEs_item },
+};
+
+static int
+dissect_ranap_UnsuccessfulLinking_IEs(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_UnsuccessfulLinking_IEs, UnsuccessfulLinking_IEs_sequence_of,
+ 1, 128);
+
+ return offset;
+}
+static int dissect_id_UnsuccessfulLinkingList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_UnsuccessfulLinking_IEs(tvb, offset, pinfo, tree, hf_ranap_id_UnsuccessfulLinkingList);
+}
+
+
+
+static int
+dissect_ranap_VerticalAccuracyCode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 127U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_id_VerticalAccuracyCode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_VerticalAccuracyCode(tvb, offset, pinfo, tree, hf_ranap_id_VerticalAccuracyCode);
+}
+
+
+static const value_string ranap_MBMSLinkingInformation_vals[] = {
+ { 0, "uE-has-joined-multicast-services" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_MBMSLinkingInformation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 0, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_id_MBMSLinkingInformation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_MBMSLinkingInformation(tvb, offset, pinfo, tree, hf_ranap_id_MBMSLinkingInformation);
+}
+
+
+static const value_string ranap_AlternativeRABConfigurationRequest_vals[] = {
+ { 0, "alternative-RAB-configuration-Requested" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_AlternativeRABConfigurationRequest(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 0, NULL, NULL, TRUE);
+
+ return offset;
+}
+static int dissect_id_AlternativeRABConfigurationRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_AlternativeRABConfigurationRequest(tvb, offset, pinfo, tree, hf_ranap_id_AlternativeRABConfigurationRequest);
+}
+
+
+
+static int
+dissect_ranap_E_DCH_MAC_d_Flow_ID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 7U, NULL, NULL, FALSE);
+
+ return offset;
+}
+static int dissect_id_E_DCH_MAC_d_Flow_ID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_E_DCH_MAC_d_Flow_ID(tvb, offset, pinfo, tree, hf_ranap_id_E_DCH_MAC_d_Flow_ID);
+}
+
+
+static const value_string ranap_Dymmy_ie_ids_vals[] = {
+ { 0, "id-AccuracyFulfilmentIndicator" },
+ { 1, "id-APN" },
+ { 2, "id-AreaIdentity" },
+ { 3, "id-Alt-RAB-Parameters" },
+ { 4, "id-Ass-RAB-Parameters" },
+ { 5, "id-BroadcastAssistanceDataDecipheringKeys" },
+ { 6, "id-LocationRelatedDataRequestType" },
+ { 7, "id-CN-DomainIndicator" },
+ { 8, "id-Cause" },
+ { 9, "id-ChosenEncryptionAlgorithm" },
+ { 10, "id-ChosenIntegrityProtectionAlgorithm" },
+ { 11, "id-ClassmarkInformation2" },
+ { 12, "id-ClassmarkInformation3" },
+ { 13, "id-ClientType" },
+ { 14, "id-CNMBMSLinkingInformation" },
+ { 15, "id-CriticalityDiagnostics" },
+ { 16, "id-DeltaRAListofIdleModeUEs" },
+ { 17, "id-DRX-CycleLengthCoefficient" },
+ { 18, "id-DirectTransferInformationItem-RANAP-RelocInf" },
+ { 19, "id-DirectTransferInformationList-RANAP-RelocInf" },
+ { 20, "id-DL-GTP-PDU-SequenceNumber" },
+ { 21, "id-EncryptionInformation" },
+ { 22, "id-FrequenceLayerConvergenceFlag" },
+ { 23, "id-GERAN-BSC-Container" },
+ { 24, "id-GERAN-Classmark" },
+ { 25, "id-GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item" },
+ { 26, "id-GERAN-Iumode-RAB-FailedList-RABAssgntResponse" },
+ { 27, "id-GlobalCN-ID" },
+ { 28, "id-GlobalRNC-ID" },
+ { 29, "id-InformationExchangeID" },
+ { 30, "id-InformationExchangeType" },
+ { 31, "id-InformationRequested" },
+ { 32, "id-InformationRequestType" },
+ { 33, "id-InformationTransferID" },
+ { 34, "id-InformationTransferType" },
+ { 35, "id-TraceRecordingSessionInformation" },
+ { 36, "id-IntegrityProtectionInformation" },
+ { 37, "id-InterSystemInformationTransferType" },
+ { 38, "id-InterSystemInformation-TransparentContainer" },
+ { 39, "id-IPMulticastAddress" },
+ { 40, "id-IuSigConId" },
+ { 41, "id-IuSigConIdItem" },
+ { 42, "id-IuSigConIdList" },
+ { 43, "id-IuTransportAssociation" },
+ { 44, "id-JoinedMBMSBearerServicesList" },
+ { 45, "id-KeyStatus" },
+ { 46, "id-L3-Information" },
+ { 47, "id-LAI" },
+ { 48, "id-LastKnownServiceArea" },
+ { 49, "id-SRB-TrCH-Mapping" },
+ { 50, "id-LeftMBMSBearerServicesList" },
+ { 51, "id-LocationRelatedDataRequestTypeSpecificToGERANIuMode" },
+ { 52, "id-SignallingIndication" },
+ { 53, "id-hS-DSCH-MAC-d-Flow-ID" },
+ { 54, "id-CellLoadInformationGroup" },
+ { 55, "id-MBMSBearerServiceType" },
+ { 56, "id-MBMSCNDe-Registration" },
+ { 57, "id-MBMSRegistrationRequestType" },
+ { 58, "id-MBMSServiceArea" },
+ { 59, "id-MBMSSessionDuration" },
+ { 60, "id-MBMSSessionIdentity" },
+ { 61, "id-MBMSSessionRepetitionNumber" },
+ { 62, "id-NAS-PDU" },
+ { 63, "id-NAS-SequenceNumber" },
+ { 64, "id-NewBSS-To-OldBSS-Information" },
+ { 65, "id-NonSearchingIndication" },
+ { 66, "id-NumberOfSteps" },
+ { 67, "id-OMC-ID" },
+ { 68, "id-OldBSS-ToNewBSS-Information" },
+ { 69, "id-PagingAreaID" },
+ { 70, "id-PagingCause" },
+ { 71, "id-PDP-TypeInformation" },
+ { 72, "id-PermanentNAS-UE-ID" },
+ { 73, "id-PositionData" },
+ { 74, "id-PositionDataSpecificToGERANIuMode" },
+ { 75, "id-PositioningPriority" },
+ { 76, "id-ProvidedData" },
+ { 77, "id-RAB-ContextItem" },
+ { 78, "id-RAB-ContextList" },
+ { 79, "id-RAB-ContextFailedtoTransferItem" },
+ { 80, "id-RAB-ContextFailedtoTransferList" },
+ { 81, "id-RAB-ContextItem-RANAP-RelocInf" },
+ { 82, "id-RAB-ContextList-RANAP-RelocInf" },
+ { 83, "id-RAB-DataForwardingItem" },
+ { 84, "id-RAB-DataForwardingItem-SRNS-CtxReq" },
+ { 85, "id-RAB-DataForwardingList" },
+ { 86, "id-RAB-DataForwardingList-SRNS-CtxReq" },
+ { 87, "id-RAB-DataVolumeReportItem" },
+ { 88, "id-RAB-DataVolumeReportList" },
+ { 89, "id-RAB-DataVolumeReportRequestItem" },
+ { 90, "id-RAB-DataVolumeReportRequestList" },
+ { 91, "id-RAB-FailedItem" },
+ { 92, "id-RAB-FailedList" },
+ { 93, "id-RAB-FailedtoReportItem" },
+ { 94, "id-RAB-FailedtoReportList" },
+ { 95, "id-RAB-ID" },
+ { 96, "id-RAB-ModifyList" },
+ { 97, "id-RAB-ModifyItem" },
+ { 98, "id-TypeOfError" },
+ { 99, "id-RAB-Parameters" },
+ { 100, "id-RAB-QueuedItem" },
+ { 101, "id-RAB-QueuedList" },
+ { 102, "id-RAB-ReleaseFailedList" },
+ { 103, "id-RAB-ReleaseItem" },
+ { 104, "id-RAB-ReleasedItem-IuRelComp" },
+ { 105, "id-MessageStructure" },
+ { 106, "id-RAB-ReleaseList" },
+ { 107, "id-RAB-ReleasedItem" },
+ { 108, "id-RAB-ReleasedList" },
+ { 109, "id-RAB-ReleasedList-IuRelComp" },
+ { 110, "id-RAB-RelocationReleaseItem" },
+ { 111, "id-RAB-RelocationReleaseList" },
+ { 112, "id-RAB-SetupItem-RelocReq" },
+ { 113, "id-RAB-SetupItem-RelocReqAck" },
+ { 114, "id-RAB-SetupList-RelocReq" },
+ { 115, "id-RAB-SetupList-RelocReqAck" },
+ { 116, "id-RAB-SetupOrModifiedItem" },
+ { 117, "id-RAB-SetupOrModifiedList" },
+ { 118, "id-RAB-SetupOrModifyList" },
+ { 119, "id-RAC" },
+ { 120, "id-RAListofIdleModeUEs" },
+ { 121, "id-RedirectionCompleted" },
+ { 122, "id-RedirectionIndication" },
+ { 123, "id-RejectCauseValue" },
+ { 124, "id-RelocationType" },
+ { 125, "id-RequestType" },
+ { 126, "id-ResponseTime" },
+ { 127, "id-SAI" },
+ { 128, "id-SAPI" },
+ { 129, "id-SelectedPLMN-ID" },
+ { 130, "id-SessionUpdateID" },
+ { 131, "id-SNA-Access-Information" },
+ { 132, "id-SourceID" },
+ { 133, "id-SourceRNC-ToTargetRNC-TransparentContainer" },
+ { 134, "id-SourceRNC-PDCP-context-info" },
+ { 135, "id-TargetID" },
+ { 136, "id-TargetRNC-ToSourceRNC-TransparentContainer" },
+ { 137, "id-TemporaryUE-ID" },
+ { 138, "id-TMGI" },
+ { 139, "id-TracePropagationParameters" },
+ { 140, "id-TraceReference" },
+ { 141, "id-TraceType" },
+ { 142, "id-TransportLayerAddress" },
+ { 143, "id-TransportLayerInformation" },
+ { 144, "id-TriggerID" },
+ { 145, "id-UE-ID" },
+ { 146, "id-UESBI-Iu" },
+ { 147, "id-UL-GTP-PDU-SequenceNumber" },
+ { 148, "id-UnsuccessfulLinkingList" },
+ { 149, "id-VerticalAccuracyCode" },
+ { 150, "id-MBMSLinkingInformation" },
+ { 151, "id-AlternativeRABConfiguration" },
+ { 152, "id-AlternativeRABConfigurationRequest" },
+ { 153, "id-E-DCH-MAC-d-Flow-ID" },
+ { 0, NULL }
+};
+
+static const per_choice_t Dymmy_ie_ids_choice[] = {
+ { 0, "id-AccuracyFulfilmentIndicator", ASN1_NO_EXTENSIONS , dissect_id_AccuracyFulfilmentIndicator },
+ { 1, "id-APN" , ASN1_NO_EXTENSIONS , dissect_id_APN },
+ { 2, "id-AreaIdentity" , ASN1_NO_EXTENSIONS , dissect_id_AreaIdentity },
+ { 3, "id-Alt-RAB-Parameters" , ASN1_NO_EXTENSIONS , dissect_id_Alt_RAB_Parameters },
+ { 4, "id-Ass-RAB-Parameters" , ASN1_NO_EXTENSIONS , dissect_id_Ass_RAB_Parameters },
+ { 5, "id-BroadcastAssistanceDataDecipheringKeys", ASN1_NO_EXTENSIONS , dissect_id_BroadcastAssistanceDataDecipheringKeys },
+ { 6, "id-LocationRelatedDataRequestType", ASN1_NO_EXTENSIONS , dissect_id_LocationRelatedDataRequestType },
+ { 7, "id-CN-DomainIndicator" , ASN1_NO_EXTENSIONS , dissect_id_CN_DomainIndicator },
+ { 8, "id-Cause" , ASN1_NO_EXTENSIONS , dissect_id_Cause },
+ { 9, "id-ChosenEncryptionAlgorithm", ASN1_NO_EXTENSIONS , dissect_id_ChosenEncryptionAlgorithm },
+ { 10, "id-ChosenIntegrityProtectionAlgorithm", ASN1_NO_EXTENSIONS , dissect_id_ChosenIntegrityProtectionAlgorithm },
+ { 11, "id-ClassmarkInformation2" , ASN1_NO_EXTENSIONS , dissect_id_ClassmarkInformation2 },
+ { 12, "id-ClassmarkInformation3" , ASN1_NO_EXTENSIONS , dissect_id_ClassmarkInformation3 },
+ { 13, "id-ClientType" , ASN1_NO_EXTENSIONS , dissect_id_ClientType },
+ { 14, "id-CNMBMSLinkingInformation" , ASN1_NO_EXTENSIONS , dissect_id_CNMBMSLinkingInformation },
+ { 15, "id-CriticalityDiagnostics" , ASN1_NO_EXTENSIONS , dissect_id_CriticalityDiagnostics },
+ { 16, "id-DeltaRAListofIdleModeUEs" , ASN1_NO_EXTENSIONS , dissect_id_DeltaRAListofIdleModeUEs },
+ { 17, "id-DRX-CycleLengthCoefficient", ASN1_NO_EXTENSIONS , dissect_id_DRX_CycleLengthCoefficient },
+ { 18, "id-DirectTransferInformationItem-RANAP-RelocInf", ASN1_NO_EXTENSIONS , dissect_id_DirectTransferInformationItem_RANAP_RelocInf },
+ { 19, "id-DirectTransferInformationList-RANAP-RelocInf", ASN1_NO_EXTENSIONS , dissect_id_DirectTransferInformationList_RANAP_RelocInf },
+ { 20, "id-DL-GTP-PDU-SequenceNumber", ASN1_NO_EXTENSIONS , dissect_id_DL_GTP_PDU_SequenceNumber },
+ { 21, "id-EncryptionInformation" , ASN1_NO_EXTENSIONS , dissect_id_EncryptionInformation },
+ { 22, "id-FrequenceLayerConvergenceFlag", ASN1_NO_EXTENSIONS , dissect_id_FrequenceLayerConvergenceFlag },
+ { 23, "id-GERAN-BSC-Container" , ASN1_NO_EXTENSIONS , dissect_id_GERAN_BSC_Container },
+ { 24, "id-GERAN-Classmark" , ASN1_NO_EXTENSIONS , dissect_id_GERAN_Classmark },
+ { 25, "id-GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item", ASN1_NO_EXTENSIONS , dissect_id_GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item },
+ { 26, "id-GERAN-Iumode-RAB-FailedList-RABAssgntResponse", ASN1_NO_EXTENSIONS , dissect_id_GERAN_Iumode_RAB_FailedList_RABAssgntResponse },
+ { 27, "id-GlobalCN-ID" , ASN1_NO_EXTENSIONS , dissect_id_GlobalCN_ID },
+ { 28, "id-GlobalRNC-ID" , ASN1_NO_EXTENSIONS , dissect_id_GlobalRNC_ID },
+ { 29, "id-InformationExchangeID" , ASN1_NO_EXTENSIONS , dissect_id_InformationExchangeID },
+ { 30, "id-InformationExchangeType" , ASN1_NO_EXTENSIONS , dissect_id_InformationExchangeType },
+ { 31, "id-InformationRequested" , ASN1_NO_EXTENSIONS , dissect_id_InformationRequested },
+ { 32, "id-InformationRequestType" , ASN1_NO_EXTENSIONS , dissect_id_InformationRequestType },
+ { 33, "id-InformationTransferID" , ASN1_NO_EXTENSIONS , dissect_id_InformationTransferID },
+ { 34, "id-InformationTransferType" , ASN1_NO_EXTENSIONS , dissect_id_InformationTransferType },
+ { 35, "id-TraceRecordingSessionInformation", ASN1_NO_EXTENSIONS , dissect_id_TraceRecordingSessionInformation },
+ { 36, "id-IntegrityProtectionInformation", ASN1_NO_EXTENSIONS , dissect_id_IntegrityProtectionInformation },
+ { 37, "id-InterSystemInformationTransferType", ASN1_NO_EXTENSIONS , dissect_id_InterSystemInformationTransferType },
+ { 38, "id-InterSystemInformation-TransparentContainer", ASN1_NO_EXTENSIONS , dissect_id_InterSystemInformation_TransparentContainer },
+ { 39, "id-IPMulticastAddress" , ASN1_NO_EXTENSIONS , dissect_id_IPMulticastAddress },
+ { 40, "id-IuSigConId" , ASN1_NO_EXTENSIONS , dissect_id_IuSigConId },
+ { 41, "id-IuSigConIdItem" , ASN1_NO_EXTENSIONS , dissect_id_IuSigConIdItem },
+ { 42, "id-IuSigConIdList" , ASN1_NO_EXTENSIONS , dissect_id_IuSigConIdList },
+ { 43, "id-IuTransportAssociation" , ASN1_NO_EXTENSIONS , dissect_id_IuTransportAssociation },
+ { 44, "id-JoinedMBMSBearerServicesList", ASN1_NO_EXTENSIONS , dissect_id_JoinedMBMSBearerServicesList },
+ { 45, "id-KeyStatus" , ASN1_NO_EXTENSIONS , dissect_id_KeyStatus },
+ { 46, "id-L3-Information" , ASN1_NO_EXTENSIONS , dissect_id_L3_Information },
+ { 47, "id-LAI" , ASN1_NO_EXTENSIONS , dissect_id_LAI },
+ { 48, "id-LastKnownServiceArea" , ASN1_NO_EXTENSIONS , dissect_id_LastKnownServiceArea },
+ { 49, "id-SRB-TrCH-Mapping" , ASN1_NO_EXTENSIONS , dissect_id_SRB_TrCH_Mapping },
+ { 50, "id-LeftMBMSBearerServicesList", ASN1_NO_EXTENSIONS , dissect_id_LeftMBMSBearerServicesList },
+ { 51, "id-LocationRelatedDataRequestTypeSpecificToGERANIuMode", ASN1_NO_EXTENSIONS , dissect_id_LocationRelatedDataRequestTypeSpecificToGERANIuMode },
+ { 52, "id-SignallingIndication" , ASN1_NO_EXTENSIONS , dissect_id_SignallingIndication },
+ { 53, "id-hS-DSCH-MAC-d-Flow-ID" , ASN1_NO_EXTENSIONS , dissect_id_hS_DSCH_MAC_d_Flow_ID },
+ { 54, "id-CellLoadInformationGroup" , ASN1_NO_EXTENSIONS , dissect_id_CellLoadInformationGroup },
+ { 55, "id-MBMSBearerServiceType" , ASN1_NO_EXTENSIONS , dissect_id_MBMSBearerServiceType },
+ { 56, "id-MBMSCNDe-Registration" , ASN1_NO_EXTENSIONS , dissect_id_MBMSCNDe_Registration },
+ { 57, "id-MBMSRegistrationRequestType", ASN1_NO_EXTENSIONS , dissect_id_MBMSRegistrationRequestType },
+ { 58, "id-MBMSServiceArea" , ASN1_NO_EXTENSIONS , dissect_id_MBMSServiceArea },
+ { 59, "id-MBMSSessionDuration" , ASN1_NO_EXTENSIONS , dissect_id_MBMSSessionDuration },
+ { 60, "id-MBMSSessionIdentity" , ASN1_NO_EXTENSIONS , dissect_id_MBMSSessionIdentity },
+ { 61, "id-MBMSSessionRepetitionNumber", ASN1_NO_EXTENSIONS , dissect_id_MBMSSessionRepetitionNumber },
+ { 62, "id-NAS-PDU" , ASN1_NO_EXTENSIONS , dissect_id_NAS_PDU },
+ { 63, "id-NAS-SequenceNumber" , ASN1_NO_EXTENSIONS , dissect_id_NAS_SequenceNumber },
+ { 64, "id-NewBSS-To-OldBSS-Information", ASN1_NO_EXTENSIONS , dissect_id_NewBSS_To_OldBSS_Information },
+ { 65, "id-NonSearchingIndication" , ASN1_NO_EXTENSIONS , dissect_id_NonSearchingIndication },
+ { 66, "id-NumberOfSteps" , ASN1_NO_EXTENSIONS , dissect_id_NumberOfSteps },
+ { 67, "id-OMC-ID" , ASN1_NO_EXTENSIONS , dissect_id_OMC_ID },
+ { 68, "id-OldBSS-ToNewBSS-Information", ASN1_NO_EXTENSIONS , dissect_id_OldBSS_ToNewBSS_Information },
+ { 69, "id-PagingAreaID" , ASN1_NO_EXTENSIONS , dissect_id_PagingAreaID },
+ { 70, "id-PagingCause" , ASN1_NO_EXTENSIONS , dissect_id_PagingCause },
+ { 71, "id-PDP-TypeInformation" , ASN1_NO_EXTENSIONS , dissect_id_PDP_TypeInformation },
+ { 72, "id-PermanentNAS-UE-ID" , ASN1_NO_EXTENSIONS , dissect_id_PermanentNAS_UE_ID },
+ { 73, "id-PositionData" , ASN1_NO_EXTENSIONS , dissect_id_PositionData },
+ { 74, "id-PositionDataSpecificToGERANIuMode", ASN1_NO_EXTENSIONS , dissect_id_PositionDataSpecificToGERANIuMode },
+ { 75, "id-PositioningPriority" , ASN1_NO_EXTENSIONS , dissect_id_PositioningPriority },
+ { 76, "id-ProvidedData" , ASN1_NO_EXTENSIONS , dissect_id_ProvidedData },
+ { 77, "id-RAB-ContextItem" , ASN1_NO_EXTENSIONS , dissect_id_RAB_ContextItem },
+ { 78, "id-RAB-ContextList" , ASN1_NO_EXTENSIONS , dissect_id_RAB_ContextList },
+ { 79, "id-RAB-ContextFailedtoTransferItem", ASN1_NO_EXTENSIONS , dissect_id_RAB_ContextFailedtoTransferItem },
+ { 80, "id-RAB-ContextFailedtoTransferList", ASN1_NO_EXTENSIONS , dissect_id_RAB_ContextFailedtoTransferList },
+ { 81, "id-RAB-ContextItem-RANAP-RelocInf", ASN1_NO_EXTENSIONS , dissect_id_RAB_ContextItem_RANAP_RelocInf },
+ { 82, "id-RAB-ContextList-RANAP-RelocInf", ASN1_NO_EXTENSIONS , dissect_id_RAB_ContextList_RANAP_RelocInf },
+ { 83, "id-RAB-DataForwardingItem" , ASN1_NO_EXTENSIONS , dissect_id_RAB_DataForwardingItem },
+ { 84, "id-RAB-DataForwardingItem-SRNS-CtxReq", ASN1_NO_EXTENSIONS , dissect_id_RAB_DataForwardingItem_SRNS_CtxReq },
+ { 85, "id-RAB-DataForwardingList" , ASN1_NO_EXTENSIONS , dissect_id_RAB_DataForwardingList },
+ { 86, "id-RAB-DataForwardingList-SRNS-CtxReq", ASN1_NO_EXTENSIONS , dissect_id_RAB_DataForwardingList_SRNS_CtxReq },
+ { 87, "id-RAB-DataVolumeReportItem" , ASN1_NO_EXTENSIONS , dissect_id_RAB_DataVolumeReportItem },
+ { 88, "id-RAB-DataVolumeReportList" , ASN1_NO_EXTENSIONS , dissect_id_RAB_DataVolumeReportList },
+ { 89, "id-RAB-DataVolumeReportRequestItem", ASN1_NO_EXTENSIONS , dissect_id_RAB_DataVolumeReportRequestItem },
+ { 90, "id-RAB-DataVolumeReportRequestList", ASN1_NO_EXTENSIONS , dissect_id_RAB_DataVolumeReportRequestList },
+ { 91, "id-RAB-FailedItem" , ASN1_NO_EXTENSIONS , dissect_id_RAB_FailedItem },
+ { 92, "id-RAB-FailedList" , ASN1_NO_EXTENSIONS , dissect_id_RAB_FailedList },
+ { 93, "id-RAB-FailedtoReportItem" , ASN1_NO_EXTENSIONS , dissect_id_RAB_FailedtoReportItem },
+ { 94, "id-RAB-FailedtoReportList" , ASN1_NO_EXTENSIONS , dissect_id_RAB_FailedtoReportList },
+ { 95, "id-RAB-ID" , ASN1_NO_EXTENSIONS , dissect_id_RAB_ID },
+ { 96, "id-RAB-ModifyList" , ASN1_NO_EXTENSIONS , dissect_id_RAB_ModifyList },
+ { 97, "id-RAB-ModifyItem" , ASN1_NO_EXTENSIONS , dissect_id_RAB_ModifyItem },
+ { 98, "id-TypeOfError" , ASN1_NO_EXTENSIONS , dissect_id_TypeOfError },
+ { 99, "id-RAB-Parameters" , ASN1_NO_EXTENSIONS , dissect_id_RAB_Parameters },
+ { 100, "id-RAB-QueuedItem" , ASN1_NO_EXTENSIONS , dissect_id_RAB_QueuedItem },
+ { 101, "id-RAB-QueuedList" , ASN1_NO_EXTENSIONS , dissect_id_RAB_QueuedList },
+ { 102, "id-RAB-ReleaseFailedList" , ASN1_NO_EXTENSIONS , dissect_id_RAB_ReleaseFailedList },
+ { 103, "id-RAB-ReleaseItem" , ASN1_NO_EXTENSIONS , dissect_id_RAB_ReleaseItem },
+ { 104, "id-RAB-ReleasedItem-IuRelComp", ASN1_NO_EXTENSIONS , dissect_id_RAB_ReleasedItem_IuRelComp },
+ { 105, "id-MessageStructure" , ASN1_NO_EXTENSIONS , dissect_id_MessageStructure },
+ { 106, "id-RAB-ReleaseList" , ASN1_NO_EXTENSIONS , dissect_id_RAB_ReleaseList },
+ { 107, "id-RAB-ReleasedItem" , ASN1_NO_EXTENSIONS , dissect_id_RAB_ReleasedItem },
+ { 108, "id-RAB-ReleasedList" , ASN1_NO_EXTENSIONS , dissect_id_RAB_ReleasedList },
+ { 109, "id-RAB-ReleasedList-IuRelComp", ASN1_NO_EXTENSIONS , dissect_id_RAB_ReleasedList_IuRelComp },
+ { 110, "id-RAB-RelocationReleaseItem", ASN1_NO_EXTENSIONS , dissect_id_RAB_RelocationReleaseItem },
+ { 111, "id-RAB-RelocationReleaseList", ASN1_NO_EXTENSIONS , dissect_id_RAB_RelocationReleaseList },
+ { 112, "id-RAB-SetupItem-RelocReq" , ASN1_NO_EXTENSIONS , dissect_id_RAB_SetupItem_RelocReq },
+ { 113, "id-RAB-SetupItem-RelocReqAck", ASN1_NO_EXTENSIONS , dissect_id_RAB_SetupItem_RelocReqAck },
+ { 114, "id-RAB-SetupList-RelocReq" , ASN1_NO_EXTENSIONS , dissect_id_RAB_SetupList_RelocReq },
+ { 115, "id-RAB-SetupList-RelocReqAck", ASN1_NO_EXTENSIONS , dissect_id_RAB_SetupList_RelocReqAck },
+ { 116, "id-RAB-SetupOrModifiedItem" , ASN1_NO_EXTENSIONS , dissect_id_RAB_SetupOrModifiedItem },
+ { 117, "id-RAB-SetupOrModifiedList" , ASN1_NO_EXTENSIONS , dissect_id_RAB_SetupOrModifiedList },
+ { 118, "id-RAB-SetupOrModifyList" , ASN1_NO_EXTENSIONS , dissect_id_RAB_SetupOrModifyList },
+ { 119, "id-RAC" , ASN1_NO_EXTENSIONS , dissect_id_RAC },
+ { 120, "id-RAListofIdleModeUEs" , ASN1_NO_EXTENSIONS , dissect_id_RAListofIdleModeUEs },
+ { 121, "id-RedirectionCompleted" , ASN1_NO_EXTENSIONS , dissect_id_RedirectionCompleted },
+ { 122, "id-RedirectionIndication" , ASN1_NO_EXTENSIONS , dissect_id_RedirectionIndication },
+ { 123, "id-RejectCauseValue" , ASN1_NO_EXTENSIONS , dissect_id_RejectCauseValue },
+ { 124, "id-RelocationType" , ASN1_NO_EXTENSIONS , dissect_id_RelocationType },
+ { 125, "id-RequestType" , ASN1_NO_EXTENSIONS , dissect_id_RequestType },
+ { 126, "id-ResponseTime" , ASN1_NO_EXTENSIONS , dissect_id_ResponseTime },
+ { 127, "id-SAI" , ASN1_NO_EXTENSIONS , dissect_id_SAI },
+ { 128, "id-SAPI" , ASN1_NO_EXTENSIONS , dissect_id_SAPI },
+ { 129, "id-SelectedPLMN-ID" , ASN1_NO_EXTENSIONS , dissect_id_SelectedPLMN_ID },
+ { 130, "id-SessionUpdateID" , ASN1_NO_EXTENSIONS , dissect_id_SessionUpdateID },
+ { 131, "id-SNA-Access-Information" , ASN1_NO_EXTENSIONS , dissect_id_SNA_Access_Information },
+ { 132, "id-SourceID" , ASN1_NO_EXTENSIONS , dissect_id_SourceID },
+ { 133, "id-SourceRNC-ToTargetRNC-TransparentContainer", ASN1_NO_EXTENSIONS , dissect_id_SourceRNC_ToTargetRNC_TransparentContainer },
+ { 134, "id-SourceRNC-PDCP-context-info", ASN1_NO_EXTENSIONS , dissect_id_SourceRNC_PDCP_context_info },
+ { 135, "id-TargetID" , ASN1_NO_EXTENSIONS , dissect_id_TargetID },
+ { 136, "id-TargetRNC-ToSourceRNC-TransparentContainer", ASN1_NO_EXTENSIONS , dissect_id_TargetRNC_ToSourceRNC_TransparentContainer },
+ { 137, "id-TemporaryUE-ID" , ASN1_NO_EXTENSIONS , dissect_id_TemporaryUE_ID },
+ { 138, "id-TMGI" , ASN1_NO_EXTENSIONS , dissect_id_TMGI },
+ { 139, "id-TracePropagationParameters", ASN1_NO_EXTENSIONS , dissect_id_TracePropagationParameters },
+ { 140, "id-TraceReference" , ASN1_NO_EXTENSIONS , dissect_id_TraceReference },
+ { 141, "id-TraceType" , ASN1_NO_EXTENSIONS , dissect_id_TraceType },
+ { 142, "id-TransportLayerAddress" , ASN1_NO_EXTENSIONS , dissect_id_TransportLayerAddress },
+ { 143, "id-TransportLayerInformation", ASN1_NO_EXTENSIONS , dissect_id_TransportLayerInformation },
+ { 144, "id-TriggerID" , ASN1_NO_EXTENSIONS , dissect_id_TriggerID },
+ { 145, "id-UE-ID" , ASN1_NO_EXTENSIONS , dissect_id_UE_ID },
+ { 146, "id-UESBI-Iu" , ASN1_NO_EXTENSIONS , dissect_id_UESBI_Iu },
+ { 147, "id-UL-GTP-PDU-SequenceNumber", ASN1_NO_EXTENSIONS , dissect_id_UL_GTP_PDU_SequenceNumber },
+ { 148, "id-UnsuccessfulLinkingList" , ASN1_NO_EXTENSIONS , dissect_id_UnsuccessfulLinkingList },
+ { 149, "id-VerticalAccuracyCode" , ASN1_NO_EXTENSIONS , dissect_id_VerticalAccuracyCode },
+ { 150, "id-MBMSLinkingInformation" , ASN1_NO_EXTENSIONS , dissect_id_MBMSLinkingInformation },
+ { 151, "id-AlternativeRABConfiguration", ASN1_NO_EXTENSIONS , dissect_id_AlternativeRABConfiguration },
+ { 152, "id-AlternativeRABConfigurationRequest", ASN1_NO_EXTENSIONS , dissect_id_AlternativeRABConfigurationRequest },
+ { 153, "id-E-DCH-MAC-d-Flow-ID" , ASN1_NO_EXTENSIONS , dissect_id_E_DCH_MAC_d_Flow_ID },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_Dymmy_ie_ids(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Dymmy_ie_ids, Dymmy_ie_ids_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t RAB_SetupOrModifyItemFirst_sequence[] = {
+ { "rAB-ID" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_rAB_ID },
+ { "nAS-SynchronisationIndicator", ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_nAS_SynchronisationIndicator },
+ { "rAB-Parameters" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_rAB_Parameters },
+ { "userPlaneInformation" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_userPlaneInformation },
+ { "transportLayerInformation" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_transportLayerInformation },
+ { "service-Handover" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_service_Handover },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_SetupOrModifyItemFirst(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_SetupOrModifyItemFirst, RAB_SetupOrModifyItemFirst_sequence);
+
+ return offset;
+}
+static int dissect_id_RAB_SetupOrModifyItem1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_SetupOrModifyItemFirst(tvb, offset, pinfo, tree, hf_ranap_id_RAB_SetupOrModifyItem1);
+}
+
+
+static const value_string ranap_Dymmy_firstvalue_ie_ids_vals[] = {
+ { 0, "id-RAB-SetupOrModifyItem1" },
+ { 0, NULL }
+};
+
+static const per_choice_t Dymmy_firstvalue_ie_ids_choice[] = {
+ { 0, "id-RAB-SetupOrModifyItem1" , ASN1_EXTENSION_ROOT , dissect_id_RAB_SetupOrModifyItem1 },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_Dymmy_firstvalue_ie_ids(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Dymmy_firstvalue_ie_ids, Dymmy_firstvalue_ie_ids_choice,
+ NULL);
+
+ return offset;
+}
+
+
+static const per_sequence_t RAB_SetupOrModifyItemSecond_sequence[] = {
+ { "pDP-TypeInformation" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_pDP_TypeInformation },
+ { "dataVolumeReportingIndication", ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_dataVolumeReportingIndication },
+ { "dl-GTP-PDU-SequenceNumber" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_dl_GTP_PDU_SequenceNumber },
+ { "ul-GTP-PDU-SequenceNumber" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ul_GTP_PDU_SequenceNumber },
+ { "dl-N-PDU-SequenceNumber" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_dl_N_PDU_SequenceNumber },
+ { "ul-N-PDU-SequenceNumber" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_ul_N_PDU_SequenceNumber },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_RAB_SetupOrModifyItemSecond(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_RAB_SetupOrModifyItemSecond, RAB_SetupOrModifyItemSecond_sequence);
+
+ return offset;
+}
+static int dissect_id_RAB_SetupOrModifyItem2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
+ return dissect_ranap_RAB_SetupOrModifyItemSecond(tvb, offset, pinfo, tree, hf_ranap_id_RAB_SetupOrModifyItem2);
+}
+
+
+static const value_string ranap_Dymmy_secondvalue_ie_ids_vals[] = {
+ { 0, "id-RAB-SetupOrModifyItem2" },
+ { 0, NULL }
+};
+
+static const per_choice_t Dymmy_secondvalue_ie_ids_choice[] = {
+ { 0, "id-RAB-SetupOrModifyItem2" , ASN1_EXTENSION_ROOT , dissect_id_RAB_SetupOrModifyItem2 },
+ { 0, NULL, 0, NULL }
+};
+
+static int
+dissect_ranap_Dymmy_secondvalue_ie_ids(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_Dymmy_secondvalue_ie_ids, Dymmy_secondvalue_ie_ids_choice,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ranap_ProtocolError_IE_ContainerList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_ProtocolIE_ContainerList256(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ranap_ResetResourceList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_ranap_IuSigConId_IE_ContainerList(tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+
+
+static const per_sequence_t ResetResourceItem_sequence[] = {
+ { "iuSigConId" , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_iuSigConId },
+ { "iE-Extensions" , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_iE_Extensions },
+ { NULL, 0, 0, NULL }
+};
+
+static int
+dissect_ranap_ResetResourceItem(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ResetResourceItem, ResetResourceItem_sequence);
+
+ return offset;
+}
+
+
+static const value_string ranap_RateControlAllowed_vals[] = {
+ { 0, "not-allowed" },
+ { 1, "allowed" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_RateControlAllowed(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 1, NULL, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const value_string ranap_Presence_vals[] = {
+ { 0, "optional" },
+ { 1, "conditional" },
+ { 2, "mandatory" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_ranap_Presence(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0, 2, NULL, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ranap_ProcedureCodeSuccessfulOutcome(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 255U, NULL, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ranap_ProcedureCodeUnsuccessfulOutcome(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 255U, NULL, NULL, FALSE);
+
+ return offset;
+}
+
+
+
+static int
+dissect_ranap_ProcedureCodeOutcome(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
+ 0U, 255U, NULL, NULL, FALSE);
+
+ return offset;
+}
+
+
+static const per_sequence_t ProtocolIE_ContainerList_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ProtocolIE_ContainerList_item },
+};
+
+static int
+dissect_ranap_ProtocolIE_ContainerList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ProtocolIE_ContainerList, ProtocolIE_ContainerList_sequence_of);
+
+ return offset;
+}
+
+
+static const per_sequence_t ProtocolIE_ContainerPairList_sequence_of[1] = {
+ { "" , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_ProtocolIE_ContainerPairList_item },
+};
+
+static int
+dissect_ranap_ProtocolIE_ContainerPairList(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
+ offset = dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_index,
+ ett_ranap_ProtocolIE_ContainerPairList, ProtocolIE_ContainerPairList_sequence_of);
+
+ return offset;
+}
+
+
+/*--- End of included file: packet-ranap-fn.c ---*/
+
+
+
+
+static int dissect_ranap_ies(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree){
+
+ guint length;
+
+ offset = dissect_per_length_determinant(tvb, offset, pinfo, tree, hf_ranap_IE_length, &length);
+ switch(ProtocolIE_ID){
+ case 0: /*id-AreaIdentity */
+ offset = dissect_id_AreaIdentity(tvb, offset, pinfo, tree);
+ break;
+ case 3: /*id-CN-DomainIndicator */
+ offset = dissect_id_CN_DomainIndicator(tvb, offset, pinfo, tree);
+ break;
+ case 4: /* Cause */
+ offset = dissect_id_Cause(tvb, offset, pinfo, tree);
+ break;
+ case 5: /*id-ChosenEncryptionAlgorithm */
+ offset = dissect_id_ChosenEncryptionAlgorithm(tvb, offset, pinfo, tree);
+ break;
+ case 6: /*id-ChosenIntegrityProtectionAlgorithm */
+ offset = dissect_id_ChosenIntegrityProtectionAlgorithm(tvb, offset, pinfo, tree);
+ break;
+ case 7: /*id-ClassmarkInformation2 */
+ offset = dissect_id_ClassmarkInformation2(tvb, offset, pinfo, tree);
+ break;
+ case 8: /*id-ClassmarkInformation3 */
+ offset = dissect_id_ClassmarkInformation3(tvb, offset, pinfo, tree);
+ break;
+ case 9: /*id-CriticalityDiagnostics */
+ offset = dissect_id_CriticalityDiagnostics(tvb, offset, pinfo, tree);
+ break;
+ case 10: /*id-DL-GTP-PDU-SequenceNumber */
+ offset = dissect_id_DL_GTP_PDU_SequenceNumber(tvb, offset, pinfo, tree);
+ break;
+ case 11: /*id-EncryptionInformation */
+ offset = dissect_id_EncryptionInformation(tvb, offset, pinfo, tree);
+ break;
+ case 12: /*id-IntegrityProtectionInformation */
+ offset = dissect_id_IntegrityProtectionInformation(tvb, offset, pinfo, tree);
+ break;
+ case 13: /*id-IuTransportAssociation */
+ offset = dissect_id_IuTransportAssociation(tvb, offset, pinfo, tree);
+ break;
+ case 14: /*id-L3-Information */
+ offset = dissect_id_L3_Information(tvb, offset, pinfo, tree);
+ break;
+ case 15: /*id-LAI */
+ offset = dissect_id_LAI(tvb, offset, pinfo, tree);
+ break;
+ case 16: /*id-NAS-PDU */
+ offset = dissect_id_NAS_PDU(tvb, offset, pinfo, tree);
+ break;
+ case 17: /*id-NonSearchingIndication */
+ offset = dissect_id_NonSearchingIndication(tvb, offset, pinfo, tree);
+ break;
+ case 18: /*id-NumberOfSteps */
+ offset = dissect_id_NumberOfSteps(tvb, offset, pinfo, tree);
+ break;
+ case 19: /*id-OMC-ID */
+ offset = dissect_id_OMC_ID(tvb, offset, pinfo, tree);
+ break;
+ case 20: /*id-OldBSS-ToNewBSS-Information */
+ offset = dissect_id_OldBSS_ToNewBSS_Information(tvb, offset, pinfo, tree);
+ break;
+ case 21: /*id-PagingAreaID */
+ offset = dissect_id_PagingAreaID(tvb, offset, pinfo, tree);
+ break;
+ case 22: /*id-PagingCause */
+ offset = dissect_id_PagingCause(tvb, offset, pinfo, tree);
+ break;
+ case 23: /*id-PermanentNAS-UE-ID */
+ offset = dissect_id_PermanentNAS_UE_ID(tvb, offset, pinfo, tree);
+ break;
+ case 24: /*id-RAB-ContextItem */
+ offset = dissect_id_RAB_ContextItem(tvb, offset, pinfo, tree);
+ break;
+ case 25: /*id-RAB-ContextList */
+ offset = dissect_id_RAB_ContextList(tvb, offset, pinfo, tree);
+ break;
+ case 26: /*id-RAB-DataForwardingItem */
+ offset = dissect_id_RAB_DataForwardingItem(tvb, offset, pinfo, tree);
+ break;
+ case 27: /*id-RAB-DataForwardingItem-SRNS-CtxReq */
+ break;
+ case 28: /*id-RAB-DataForwardingList */
+ offset = dissect_id_RAB_DataForwardingList(tvb, offset, pinfo, tree);
+ break;
+ case 29: /*id-RAB-DataForwardingList-SRNS-CtxReq */
+ offset = dissect_id_RAB_DataForwardingList_SRNS_CtxReq(tvb, offset, pinfo, tree);
+ break;
+ case 30: /*id-RAB-DataVolumeReportItem */
+ offset = dissect_id_RAB_DataVolumeReportItem(tvb, offset, pinfo, tree);
+ break;
+ case 31: /*id-RAB-DataVolumeReportList */
+ offset = dissect_id_RAB_DataVolumeReportList(tvb, offset, pinfo, tree);
+ break;
+ case 32: /*id-RAB-DataVolumeReportRequestItem */
+ offset = dissect_id_RAB_DataVolumeReportRequestItem(tvb, offset, pinfo, tree);
+ break;
+ case 33: /*id-RAB-DataVolumeReportRequestList */
+ offset = dissect_id_RAB_DataVolumeReportRequestList(tvb, offset, pinfo, tree);
+ break;
+ case 34: /*id-RAB-FailedItem */
+ offset = dissect_id_RAB_FailedItem(tvb, offset, pinfo, tree);
+ break;
+ case 35: /*id-RAB-FailedList */
+ offset = dissect_id_RAB_FailedList(tvb, offset, pinfo, tree);
+ break;
+ case 36: /*id-RAB-ID */
+ offset = dissect_id_RAB_ID(tvb, offset, pinfo, tree);
+ break;
+ case 37: /*id-RAB-QueuedItem */
+ offset = dissect_id_RAB_QueuedItem(tvb, offset, pinfo, tree);
+ break;
+ case 38: /*id-RAB-QueuedList */
+ offset = dissect_id_RAB_QueuedList(tvb, offset, pinfo, tree);
+ break;
+ case 39: /*id-RAB-ReleaseFailedList */
+ offset = dissect_id_RAB_ReleaseFailedList(tvb, offset, pinfo, tree);
+ break;
+ case 40: /*id-RAB-ReleaseItem */
+ offset = dissect_id_RAB_ReleaseItem(tvb, offset, pinfo, tree);
+ break;
+ case 41: /*id-RAB-ReleaseList */
+ offset = dissect_id_RAB_ReleaseList(tvb, offset, pinfo, tree);
+ break;
+ case 42: /*id-RAB-ReleasedItem */
+ offset = dissect_id_RAB_ReleasedItem(tvb, offset, pinfo, tree);
+ break;
+ case 43: /*id-RAB-ReleasedList */
+ offset = dissect_id_RAB_ReleasedList(tvb, offset, pinfo, tree);
+ break;
+ case 44: /* id-RAB-ReleasedList-IuRelComp */
+ offset = dissect_id_RAB_ReleasedList_IuRelComp(tvb, offset, pinfo, tree);
+ break;
+ case 45: /*id-RAB-RelocationReleaseItem */
+ offset = dissect_id_RAB_RelocationReleaseItem(tvb, offset, pinfo, tree);
+ break;
+ case 46: /*id-RAB-RelocationReleaseList */
+ offset = dissect_id_RAB_RelocationReleaseList(tvb, offset, pinfo, tree);
+ break;
+ case 47: /*id-RAB-SetupItem-RelocReq */
+ offset = dissect_id_RAB_SetupItem_RelocReq(tvb, offset, pinfo, tree);
+ break;
+ case 48: /*id-RAB-SetupItem-RelocReqAck */
+ offset = dissect_id_RAB_SetupItem_RelocReqAck(tvb, offset, pinfo, tree);
+ break;
+ case 49: /*id-RAB-SetupList-RelocReq */
+ offset = dissect_id_RAB_SetupList_RelocReq(tvb, offset, pinfo, tree);
+ break;
+ case 50: /*id-RAB-SetupList-RelocReqAck */
+ offset = dissect_id_RAB_SetupList_RelocReqAck(tvb, offset, pinfo, tree);
+ break;
+ case 51: /*id-RAB-SetupOrModifiedItem */
+ offset = dissect_id_RAB_SetupOrModifiedItem(tvb, offset, pinfo, tree);
+ break;
+ case 52: /*id-RAB-SetupOrModifiedList */
+ offset = dissect_id_RAB_SetupOrModifiedList(tvb, offset, pinfo, tree);
+ break;
+ case 53: /*id-RAB-SetupOrModifyItem */
+ /* Special handling */
+ break;
+ case 54: /*id-RAB-SetupOrModifyList */
+ offset = dissect_id_RAB_SetupOrModifyList(tvb, offset, pinfo, tree);
+ break;
+ case 55: /*id-RAC */
+ offset = dissect_id_RAC(tvb, offset, pinfo, tree);
+ break;
+ case 56: /*id-RelocationType */
+ offset = dissect_id_RelocationType(tvb, offset, pinfo, tree);
+ break;
+ case 57: /*id-RequestType */
+ offset = dissect_id_RequestType(tvb, offset, pinfo, tree);
+ break;
+ case 58: /*id-SAI */
+ offset = dissect_id_SAI(tvb, offset, pinfo, tree);
+ break;
+ case 59: /*id-SAPI */
+ offset = dissect_id_SAPI(tvb, offset, pinfo, tree);
+ break;
+ case 60: /*id-SourceID */
+ offset = dissect_id_SourceID(tvb, offset, pinfo, tree);
+ break;
+ case 61: /*id-SourceRNC-ToTargetRNC-TransparentContainer */
+ offset = dissect_id_SourceRNC_ToTargetRNC_TransparentContainer(tvb, offset, pinfo, tree);
+ break;
+ case 62: /*id-TargetID */
+ offset = dissect_id_TargetID(tvb, offset, pinfo, tree);
+ break;
+ case 63: /*id-TargetRNC-ToSourceRNC-TransparentContainer */
+ offset = dissect_id_TargetRNC_ToSourceRNC_TransparentContainer(tvb, offset, pinfo, tree);
+ break;
+ case 64: /*id-TemporaryUE-ID */
+ offset = dissect_id_TemporaryUE_ID(tvb, offset, pinfo, tree);
+ break;
+ case 65: /*id-TraceReference */
+ offset = dissect_id_TraceReference(tvb, offset, pinfo, tree);
+ break;
+ case 66: /*id-TraceType */
+ offset = dissect_id_TraceType(tvb, offset, pinfo, tree);
+ break;
+ case 67: /*id-TransportLayerAddress */
+ offset = dissect_id_TransportLayerAddress(tvb, offset, pinfo, tree);
+ break;
+ case 68: /*id-TriggerID */
+ offset = dissect_id_TriggerID(tvb, offset, pinfo, tree);
+ break;
+ case 69: /*id-UE-ID */
+ offset = dissect_id_UE_ID(tvb, offset, pinfo, tree);
+ break;
+ case 70: /*id-UL-GTP-PDU-SequenceNumber */
+ offset = dissect_id_UL_GTP_PDU_SequenceNumber(tvb, offset, pinfo, tree);
+ break;
+ case 71: /*id-RAB-FailedtoReportItem */
+ offset = dissect_id_RAB_FailedtoReportItem(tvb, offset, pinfo, tree);
+ break;
+ case 72: /*id-RAB-FailedtoReportList */
+ offset = dissect_id_RAB_FailedtoReportList(tvb, offset, pinfo, tree);
+ break;
+ case 75: /*id-KeyStatus */
+ offset = dissect_id_KeyStatus(tvb, offset, pinfo, tree);
+ break;
+ case 76: /*id-DRX-CycleLengthCoefficient */
+ offset = dissect_id_DRX_CycleLengthCoefficient(tvb, offset, pinfo, tree);
+ break;
+ case 77: /*id-IuSigConIdList */
+ offset = dissect_id_IuSigConIdList(tvb, offset, pinfo, tree);
+ break;
+ case 78: /*id-IuSigConIdItem */
+ offset = dissect_id_IuSigConIdItem(tvb, offset, pinfo, tree);
+ break;
+ case 79: /*id-IuSigConId */
+ offset = dissect_id_IuSigConId(tvb, offset, pinfo, tree);
+ break;
+ case 81: /*id-DirectTransferInformationList-RANAP-RelocInf */
+ offset = dissect_id_DirectTransferInformationItem_RANAP_RelocInf(tvb, offset, pinfo, tree);
+ break;
+ case 82: /*id-RAB-ContextItem-RANAP-RelocInf */
+ offset = dissect_id_RAB_ContextItem_RANAP_RelocInf(tvb, offset, pinfo, tree);
+ break;
+ case 83: /*id-RAB-ContextList-RANAP-RelocInf */
+ offset = dissect_id_RAB_ContextList_RANAP_RelocInf(tvb, offset, pinfo, tree);
+ break;
+ case 84: /*id-RAB-ContextFailedtoTransferItem */
+ offset = dissect_id_RAB_ContextFailedtoTransferItem(tvb, offset, pinfo, tree);
+ break;
+ case 85: /*id-RAB-ContextFailedtoTransferList */
+ offset = dissect_id_RAB_ContextFailedtoTransferList(tvb, offset, pinfo, tree);
+ break;
+ case 86: /*id-GlobalRNC-ID */
+ offset = dissect_id_GlobalRNC_ID(tvb, offset, pinfo, tree);
+ break;
+ case 87: /* id-RAB-ReleasedItem-IuRelComp */
+ offset = dissect_id_RAB_ReleasedItem_IuRelComp(tvb, offset, pinfo, tree);
+ break;
+ case 88: /*id-MessageStructure */
+ offset = dissect_id_MessageStructure(tvb, offset, pinfo, tree);
+ break;
+ case 89: /*id-Alt-RAB-Parameters */
+ offset = dissect_id_Alt_RAB_Parameters(tvb, offset, pinfo, tree);
+ break;
+ case 90: /*id-Ass-RAB-Parameters */
+ offset = dissect_id_Ass_RAB_Parameters(tvb, offset, pinfo, tree);
+ break;
+ case 91: /*id-RAB-ModifyList */
+ offset = dissect_id_RAB_ModifyList(tvb, offset, pinfo, tree);
+ break;
+ case 92: /*id-RAB-ModifyItem */
+ offset = dissect_id_RAB_ModifyItem(tvb, offset, pinfo, tree);
+ break;
+ case 93: /*id-TypeOfError */
+ offset = dissect_id_TypeOfError(tvb, offset, pinfo, tree);
+ break;
+ case 94: /*id-BroadcastAssistanceDataDecipheringKeys */
+ offset = dissect_id_BroadcastAssistanceDataDecipheringKeys(tvb, offset, pinfo, tree);
+ break;
+ case 95: /*id-LocationRelatedDataRequestType */
+ offset = dissect_id_LocationRelatedDataRequestType(tvb, offset, pinfo, tree);
+ break;
+ case 96: /*id-GlobalCN-ID */
+ offset = dissect_id_GlobalCN_ID(tvb, offset, pinfo, tree);
+ break;
+ case 97: /*id-LastKnownServiceArea */
+ offset = dissect_id_LastKnownServiceArea(tvb, offset, pinfo, tree);
+ break;
+ case 98: /*id-SRB-TrCH-Mapping */
+ offset = dissect_id_SRB_TrCH_Mapping(tvb, offset, pinfo, tree);
+ break;
+ case 99: /*id-InterSystemInformation-TransparentContainer */
+ offset = dissect_id_InterSystemInformation_TransparentContainer(tvb, offset, pinfo, tree);
+ break;
+ case 100: /*id-NewBSS-To-OldBSS-Information */
+ offset = dissect_id_OldBSS_ToNewBSS_Information(tvb, offset, pinfo, tree);
+ break;
+ case 103: /*id-SourceRNC-PDCP-context-info */
+ offset = dissect_id_SourceRNC_PDCP_context_info(tvb, offset, pinfo, tree);
+ break;
+ case 104: /*id-InformationTransferID */
+ offset = dissect_id_InformationTransferID(tvb, offset, pinfo, tree);
+ break;
+ case 105: /*id-SNA-Access-Information */
+ offset = dissect_id_SNA_Access_Information(tvb, offset, pinfo, tree);
+ break;
+ case 106: /*id-ProvidedData */
+ offset = dissect_id_ProvidedData(tvb, offset, pinfo, tree);
+ break;
+ case 107: /*id-GERAN-BSC-Container */
+ offset = dissect_id_GERAN_BSC_Container(tvb, offset, pinfo, tree);
+ break;
+ case 108: /*id-GERAN-Classmark */
+ offset = dissect_id_GERAN_Classmark(tvb, offset, pinfo, tree);
+ break;
+ case 109: /*id-GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item */
+ offset = dissect_id_GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item(tvb, offset, pinfo, tree);
+ break;
+ case 110: /*id-GERAN-Iumode-RAB-FailedList-RABAssgntResponse */
+ offset = dissect_id_GERAN_Iumode_RAB_FailedList_RABAssgntResponse(tvb, offset, pinfo, tree);
+ break;
+ case 111: /*id-VerticalAccuracyCode */
+ offset = dissect_id_VerticalAccuracyCode(tvb, offset, pinfo, tree);
+ break;
+ case 112: /*id-ResponseTime */
+ offset = dissect_id_ResponseTime(tvb, offset, pinfo, tree);
+ break;
+ case 113: /*id-PositioningPriority */
+ offset = dissect_id_PositioningPriority(tvb, offset, pinfo, tree);
+ break;
+ case 114: /*id-ClientType */
+ offset = dissect_id_ClientType(tvb, offset, pinfo, tree);
+ break;
+ case 115: /*id-LocationRelatedDataRequestTypeSpecificToGERANIuMode */
+ offset = dissect_id_LocationRelatedDataRequestTypeSpecificToGERANIuMode(tvb, offset, pinfo, tree);
+ break;
+ case 116: /*id-SignallingIndication */
+ offset = dissect_id_SignallingIndication(tvb, offset, pinfo, tree);
+ break;
+ case 117: /*id-hS-DSCH-MAC-d-Flow-ID */
+ offset = dissect_id_hS_DSCH_MAC_d_Flow_ID(tvb, offset, pinfo, tree);
+ break;
+ case 118: /*id-UESBI-Iu */
+ offset = dissect_id_UESBI_Iu(tvb, offset, pinfo, tree);
+ break;
+ case 119: /*id-PositionData */
+ offset = dissect_id_PositionData(tvb, offset, pinfo, tree);
+ break;
+ case 120: /*id-PositionDataSpecificToGERANIuMode */
+ offset = dissect_id_PositionDataSpecificToGERANIuMode(tvb, offset, pinfo, tree);
+ break;
+ case 121: /*id-CellLoadInformationGroup */
+ offset = dissect_id_CellLoadInformationGroup(tvb, offset, pinfo, tree);
+ break;
+ case 122: /*id-AccuracyFulfilmentIndicator */
+ offset = dissect_id_AccuracyFulfilmentIndicator(tvb, offset, pinfo, tree);
+ break;
+ case 123: /*id-InformationTransferType */
+ offset = dissect_id_InformationTransferType(tvb, offset, pinfo, tree);
+ break;
+ case 124: /*id-TraceRecordingSessionInformation */
+ offset = dissect_id_TraceRecordingSessionInformation(tvb, offset, pinfo, tree);
+ break;
+ case 125: /*id-TracePropagationParameters */
+ offset = dissect_id_TracePropagationParameters(tvb, offset, pinfo, tree);
+ break;
+ case 126: /*id-InterSystemInformationTransferType */
+ offset = dissect_id_InterSystemInformationTransferType(tvb, offset, pinfo, tree);
+ break;
+ case 127: /*id-SelectedPLMN-ID */
+ offset = dissect_id_SelectedPLMN_ID(tvb, offset, pinfo, tree);
+ break;
+ case 128: /*id-RedirectionCompleted */
+ offset = dissect_id_RedirectionCompleted(tvb, offset, pinfo, tree);
+ break;
+ case 129: /*id-RedirectionIndication */
+ offset = dissect_id_RedirectionIndication(tvb, offset, pinfo, tree);
+ break;
+ case 130: /*id-NAS-SequenceNumber */
+ offset = dissect_id_NAS_SequenceNumber(tvb, offset, pinfo, tree);
+ break;
+ case 131: /*id-RejectCauseValue */
+ offset = dissect_id_RejectCauseValue(tvb, offset, pinfo, tree);
+ break;
+ case 132: /*id-APN */
+ offset = dissect_id_APN(tvb, offset, pinfo, tree);
+ case 133: /*id-CNMBMSLinkingInformation */
+ offset = dissect_id_CNMBMSLinkingInformation(tvb, offset, pinfo, tree);
+ break;
+ case 134: /*id-DeltaRAListofIdleModeUEs */
+ offset = dissect_id_DeltaRAListofIdleModeUEs(tvb, offset, pinfo, tree);
+ break;
+ case 135: /*id-FrequenceLayerConvergenceFlag */
+ offset = dissect_id_FrequenceLayerConvergenceFlag(tvb, offset, pinfo, tree);
+ break;
+ case 136: /*id-InformationExchangeID */
+ offset = dissect_id_InformationExchangeID(tvb, offset, pinfo, tree);
+ break;
+ case 137: /*id-InformationExchangeType */
+ offset = dissect_id_InformationExchangeType(tvb, offset, pinfo, tree);
+ break;
+ case 138: /*id-InformationRequested */
+ offset = dissect_id_InformationRequested(tvb, offset, pinfo, tree);
+ break;
+ case 139: /*id-InformationRequestType */
+ offset = dissect_id_InformationRequestType(tvb, offset, pinfo, tree);
+ break;
+ case 140: /*id-IPMulticastAddress */
+ offset = dissect_id_IPMulticastAddress(tvb, offset, pinfo, tree);
+ break;
+ case 141: /*id-JoinedMBMSBearerServicesList */
+ offset = dissect_id_JoinedMBMSBearerServicesList(tvb, offset, pinfo, tree);
+ break;
+ case 142: /*id-LeftMBMSBearerServicesList */
+ offset = dissect_id_LeftMBMSBearerServicesList(tvb, offset, pinfo, tree);
+ break;
+ case 143: /*id-MBMSBearerServiceType */
+ offset = dissect_id_MBMSBearerServiceType(tvb, offset, pinfo, tree);
+ break;
+ case 144: /*id-MBMSCNDe-Registration */
+ offset = dissect_id_MBMSCNDe_Registration(tvb, offset, pinfo, tree);
+ break;
+ case 145: /*id-MBMSServiceArea */
+ offset = dissect_id_MBMSServiceArea(tvb, offset, pinfo, tree);
+ break;
+ case 146: /*id-MBMSSessionDuration */
+ offset = dissect_id_MBMSSessionDuration(tvb, offset, pinfo, tree);
+ break;
+ case 147: /*id-MBMSSessionIdentity */
+ offset = dissect_id_MBMSSessionIdentity(tvb, offset, pinfo, tree);
+ break;
+ case 148: /*id-PDP-TypeInformation */
+ offset = dissect_id_PDP_TypeInformation(tvb, offset, pinfo, tree);
+ break;
+ case 149: /*id-RAB-Parameters */
+ offset = dissect_id_RAB_Parameters(tvb, offset, pinfo, tree);
+ break;
+ case 150: /*id-RAListofIdleModeUEs */
+ offset = dissect_id_RAListofIdleModeUEs(tvb, offset, pinfo, tree);
+ break;
+ case 151: /*id-MBMSRegistrationRequestType */
+ offset = dissect_id_MBMSRegistrationRequestType(tvb, offset, pinfo, tree);
+ break;
+ case 152: /*id-SessionUpdateID */
+ offset = dissect_id_SessionUpdateID(tvb, offset, pinfo, tree);
+ break;
+ case 153: /*id-TMGI */
+ offset = dissect_id_TMGI(tvb, offset, pinfo, tree);
+ break;
+ case 154: /*id-TransportLayerInformation */
+ offset = dissect_id_TransportLayerInformation(tvb, offset, pinfo, tree);
+ break;
+ case 155: /*id-UnsuccessfulLinkingList */
+ offset = dissect_id_UnsuccessfulLinkingList(tvb, offset, pinfo, tree);
+ break;
+ case 156: /*id-MBMSLinkingInformation */
+ offset = dissect_id_MBMSLinkingInformation(tvb, offset, pinfo, tree);
+ break;
+ case 157: /*id-MBMSSessionRepetitionNumber */
+ offset = dissect_id_MBMSSessionRepetitionNumber(tvb, offset, pinfo, tree);
+ break;
+ case 158: /*id-AlternativeRABConfiguration */
+ offset = dissect_id_AlternativeRABConfiguration(tvb, offset, pinfo, tree);
+ break;
+ case 159: /*id-AlternativeRABConfigurationRequest */
+ offset = dissect_id_AlternativeRABConfigurationRequest(tvb, offset, pinfo, tree);
+ break;
+ case 160: /*id-E-DCH-MAC-d-Flow-ID */
+ offset = dissect_id_E_DCH_MAC_d_Flow_ID(tvb, offset, pinfo, tree);
+ break;
+ default:
+ break;
+
+ }
+ return offset;
+}
+
+static int dissect_ranap_FirstValue_ies(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree){
+
+ guint length;
+ int start_offset;
+
+ offset = dissect_per_length_determinant(tvb, offset, pinfo, tree, hf_ranap_IE_length, &length);
+ start_offset = offset;
+ switch(ProtocolIE_ID){
+ case 53: /*id-RAB-SetupOrModifyItem */
+ offset = dissect_id_RAB_SetupOrModifyItem1(tvb, offset, pinfo, tree);
+ break;
+ default:
+ break;
+ }
+ /* We might not stop on a byte boundary */
+ BYTE_ALIGN_OFFSET(offset);
+ return offset;
+}
+
+static int dissect_ranap_SecondValue_ies(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree){
+
+ guint length;
+
+ offset = dissect_per_length_determinant(tvb, offset, pinfo, tree, hf_ranap_IE_length, &length);
+
+ switch(ProtocolIE_ID){
+ case 53: /*id-RAB-SetupOrModifyItem */
+ offset = dissect_id_RAB_SetupOrModifyItem2(tvb, offset, pinfo, tree);
+ break;
+ default:
+ break;
+ }
+ /* We might not stop on a byte boundary */
+ BYTE_ALIGN_OFFSET(offset);
+ return offset;
+}
+
+
+static int dissect_ranap_messages(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree){
+ guint length;
+
+ offset = dissect_per_length_determinant(tvb, offset, pinfo, tree, hf_ranap_pdu_length, &length);
+ switch(type_of_message){
+ case 0: /* Initating message */
+ switch(ProcedureCode){
+ case 0: /* id-RAB-Assignment*/
+ offset = dissect_rAB_AssignmentRequest(tvb, offset, pinfo, tree);
+ break;
+ case 1: /* id-Iu-Release */
+ offset = dissect_iu_ReleaseCommand(tvb, offset, pinfo, tree);
+ break;
+ case 2: /* id-RelocationPreparation*/
+ offset = dissect_relocationRequired(tvb, offset, pinfo, tree);
+ break;
+ case 3: /* id-RelocationResourceAllocation*/
+ offset = dissect_relocationRequest(tvb, offset, pinfo, tree);
+ break;
+ case 4: /* id-RelocationCancel*/
+ offset = dissect_relocationCancel(tvb, offset, pinfo, tree);
+ break;
+ case 5: /* id-SRNS-ContextTransfer*/
+ offset = dissect_sRNS_ContextRequest(tvb, offset, pinfo, tree);
+ break;
+ case 6: /* id-SecurityModeControl*/
+ offset = dissect_securityModeCommand(tvb, offset, pinfo, tree);
+ break;
+ case 7: /* id-DataVolumeReport*/
+ offset = dissect_dataVolumeReportRequest(tvb, offset, pinfo, tree);
+ break;
+ case 9: /* id-Reset*/
+ offset = dissect_reset(tvb, offset, pinfo, tree);
+ break;
+ case 10: /* id-RAB-ReleaseRequest*/
+ offset = dissect_rAB_ReleaseRequest(tvb, offset, pinfo, tree);
+ break;
+ case 11: /* id-Iu-ReleaseRequest*/
+ offset = dissect_iu_ReleaseRequest(tvb, offset, pinfo, tree);
+ break;
+ case 12: /* id-RelocationDetect*/
+ offset = dissect_relocationDetect(tvb, offset, pinfo, tree);
+ break;
+ case 13: /* id-RelocationComplete*/
+ offset = dissect_relocationComplete(tvb, offset, pinfo, tree);
+ break;
+ case 14: /* id-Paging*/
+ offset = dissect_paging(tvb, offset, pinfo, tree);
+ break;
+ case 15: /* id-CommonID*/
+ offset = dissect_commonID(tvb, offset, pinfo, tree);
+ break;
+ case 16: /* id-CN-InvokeTrace*/
+ offset = dissect_cN_InvokeTrace(tvb, offset, pinfo, tree);
+ break;
+ case 17: /* id-LocationReportingControl*/
+ offset = dissect_locationReportingControl(tvb, offset, pinfo, tree);
+ break;
+ case 18: /* id-LocationReport*/
+ offset = dissect_locationReport(tvb, offset, pinfo, tree);
+ break;
+ case 19: /* id-InitialUE-Message*/
+ offset = dissect_initialUE_Message(tvb, offset, pinfo, tree);
+ break;
+ case 20: /* id-DirectTransfer*/
+ offset = dissect_directTransfer(tvb, offset, pinfo, tree);
+ break;
+ case 21: /* id-OverloadControl*/
+ offset = dissect_overload(tvb, offset, pinfo, tree);
+ break;
+ case 22: /* id-ErrorIndication*/
+ offset = dissect_errorIndication(tvb, offset, pinfo, tree);
+ break;
+ case 23: /* id-SRNS-DataForward*/
+ offset = dissect_sRNS_DataForwardCommand(tvb, offset, pinfo, tree);
+ break;
+ case 24: /* id-ForwardSRNS-Context*/
+ offset = dissect_forwardSRNS_Context(tvb, offset, pinfo, tree);
+ break;
+ case 25: /* id-privateMessage*/
+ offset = dissect_privateMessage(tvb, offset, pinfo, tree);
+ break;
+ case 26: /* id-CN-DeactivateTrace*/
+ break;
+ case 27: /* id-ResetResource*/
+ offset = dissect_resetResource(tvb, offset, pinfo, tree);
+ break;
+ case 28: /* id-RANAP-Relocation*/
+ offset = dissect_rANAP_RelocationInformation(tvb, offset, pinfo, tree);
+ break;
+ case 29: /* id-RAB-ModifyRequest*/
+ offset = dissect_rAB_ModifyRequest(tvb, offset, pinfo, tree);
+ break;
+ case 30: /* id-LocationRelatedData*/
+ offset = dissect_locationRelatedDataRequest(tvb, offset, pinfo, tree);
+ break;
+ case 31: /* id-InformationTransfer*/
+ offset = dissect_informationTransferIndication(tvb, offset, pinfo, tree);
+ break;
+ case 32: /* id-UESpecificInformation*/
+ offset = dissect_uESpecificInformationIndication(tvb, offset, pinfo, tree);
+ break;
+ case 33: /* id-UplinkInformationExchange*/
+ offset = dissect_uplinkInformationExchangeRequest(tvb, offset, pinfo, tree);
+ break;
+ case 34: /* id-DirectInformationTransfer*/
+ offset = dissect_directInformationTransfer(tvb, offset, pinfo, tree);
+ break;
+ case 35: /* id-MBMSSessionStart*/
+ offset = dissect_mBMSSessionStart(tvb, offset, pinfo, tree);
+ break;
+ case 36: /* id-MBMSSessionUpdate*/
+ offset = dissect_mBMSSessionUpdate(tvb, offset, pinfo, tree);
+ break;
+ case 37: /* id-MBMSSessionStop*/
+ offset = dissect_mMBMSSessionStop(tvb, offset, pinfo, tree);
+ break;
+ case 38: /* id-MBMSUELinking*/
+ offset = dissect_mBMSUELinkingRequest(tvb, offset, pinfo, tree);
+ break;
+ case 39: /* id-MBMSRegistration*/
+ offset = dissect_mBMSRegistrationRequest(tvb, offset, pinfo, tree);
+ break;
+ case 40: /* id-MBMSCNDe-Registration-Procedure*/
+ offset = dissect_mBMSCNDe_RegistrationRequest(tvb, offset, pinfo, tree);
+ break;
+ case 41: /* id-MBMSRABEstablishmentIndication*/
+ offset = dissect_mBMSRABEstablishmentIndication(tvb, offset, pinfo, tree);
+ break;
+ case 42: /* id-MBMSRABRelease*/
+ offset = dissect_mBMSRABReleaseRequest(tvb, offset, pinfo, tree);
+ break;
+ default:
+ break;
+ }
+ break;
+ case 1:
+ /* successfulOutcome */
+ switch(ProcedureCode){
+ case 0: /* id-RAB-Assignment*/
+ break;
+ case 1: /* id-Iu-Release */
+ offset = dissect_iu_ReleaseComplete(tvb, offset, pinfo, tree);
+ break;
+ case 2: /* id-RelocationPreparation*/
+ offset = dissect_relocationCommand(tvb, offset, pinfo, tree);
+ break;
+ case 3: /* id-RelocationResourceAllocation*/
+ offset = dissect_relocationRequestAcknowledge(tvb, offset, pinfo, tree);
+ break;
+ case 4: /* id-RelocationCancel*/
+ offset = dissect_relocationCancelAcknowledge(tvb, offset, pinfo, tree);
+ break;
+ case 5: /* id-SRNS-ContextTransfer*/
+ offset = dissect_sRNS_ContextResponse(tvb, offset, pinfo, tree);
+ break;
+ case 6: /* id-SecurityModeControl*/
+ offset = dissect_securityModeComplete(tvb, offset, pinfo, tree);
+ break;
+ case 7: /* id-DataVolumeReport*/
+ offset = dissect_dataVolumeReport(tvb, offset, pinfo, tree);
+ break;
+ case 9: /* id-Reset*/
+ offset = dissect_resetAcknowledge(tvb, offset, pinfo, tree);
+ break;
+ case 10: /* id-RAB-ReleaseRequest*/
+ offset = dissect_rAB_ReleaseRequest(tvb, offset, pinfo, tree);
+ break;
+ case 11: /* id-Iu-ReleaseRequest*/
+ offset = dissect_iu_ReleaseRequest(tvb, offset, pinfo, tree);
+ break;
+ case 12: /* id-RelocationDetect*/
+ offset = dissect_relocationDetect(tvb, offset, pinfo, tree);
+ break;
+ case 13: /* id-RelocationComplete*/
+ offset = dissect_relocationComplete(tvb, offset, pinfo, tree);
+ break;
+ case 14: /* id-Paging*/
+ offset = dissect_paging(tvb, offset, pinfo, tree);
+ break;
+ case 15: /* id-CommonID*/
+ offset = dissect_commonID(tvb, offset, pinfo, tree);
+ break;
+ case 16: /* id-CN-InvokeTrace*/
+ break;
+ case 17: /* id-LocationReportingControl*/
+ break;
+ case 18: /* id-LocationReport*/
+ break;
+ case 19: /* id-InitialUE-Message*/
+ break;
+ case 20: /* id-DirectTransfer*/
+ break;
+ case 21: /* id-OverloadControl*/
+ break;
+ case 22: /* id-ErrorIndication*/
+ break;
+ case 23: /* id-SRNS-DataForward*/
+ break;
+ case 24: /* id-ForwardSRNS-Context*/
+ break;
+ case 25: /* id-privateMessage*/
+ break;
+ case 26: /* id-CN-DeactivateTrace*/
+ break;
+ case 27: /* id-ResetResource*/
+ offset = dissect_resetResourceAcknowledge(tvb, offset, pinfo, tree);
+ break;
+ case 28: /* id-RANAP-Relocation*/
+ break;
+ case 29: /* id-RAB-ModifyRequest*/
+ break;
+ case 30: /* id-LocationRelatedData*/
+ offset = dissect_locationRelatedDataResponse(tvb, offset, pinfo, tree);
+ break;
+ case 31: /* id-InformationTransfer*/
+ offset = dissect_informationTransferConfirmation(tvb, offset, pinfo, tree);
+ break;
+ case 32: /* id-UESpecificInformation*/
+ break;
+ case 33: /* id-UplinkInformationExchange*/
+ offset = dissect_uplinkInformationExchangeResponse(tvb, offset, pinfo, tree);
+ break;
+ case 34: /* id-DirectInformationTransfer*/
+ break;
+ case 35: /* id-MBMSSessionStart*/
+ offset = dissect_mBMSSessionStartResponse(tvb, offset, pinfo, tree);
+ break;
+ case 36: /* id-MBMSSessionUpdate*/
+ offset = dissect_mBMSSessionUpdateResponse(tvb, offset, pinfo, tree);
+ break;
+ case 37: /* id-MBMSSessionStop*/
+ offset = dissect_mBMSSessionStopResponse(tvb, offset, pinfo, tree);
+ break;
+ case 38: /* id-MBMSUELinking*/
+ break;
+ case 39: /* id-MBMSRegistration*/
+ offset = dissect_mBMSRegistrationResponse(tvb, offset, pinfo, tree);
+ break;
+ case 40: /* id-MBMSCNDe-Registration-Procedure*/
+ offset = dissect_mBMSCNDeRegistrationResponse(tvb, offset, pinfo, tree);
+ break;
+ case 41: /* id-MBMSRABEstablishmentIndication*/
+ break;
+ case 42: /* id-MBMSRABRelease*/
+ offset = dissect_mBMSRABRelease(tvb, offset, pinfo, tree);
+ break;
+ default:
+ break;
+ }
+ break;
+ case 2:
+ /* unsuccessfulOutcome */
+ switch(ProcedureCode){
+ case 0: /* id-RAB-Assignment*/
+ break;
+ case 1: /* id-Iu-Release */
+ break;
+ case 2: /* id-RelocationPreparation*/
+ offset = dissect_relocationPreparationFailure(tvb, offset, pinfo, tree);
+ break;
+ case 3: /* id-RelocationResourceAllocation*/
+ offset = dissect_relocationFailure(tvb, offset, pinfo, tree);
+ break;
+ case 4: /* id-RelocationCancel*/
+ break;
+ case 5: /* id-SRNS-ContextTransfer*/
+ break;
+ case 6: /* id-SecurityModeControl*/
+ offset = dissect_securityModeReject(tvb, offset, pinfo, tree);
+ break;
+ case 7: /* id-DataVolumeReport*/
+ break;
+ case 9: /* id-Reset*/
+ break;
+ case 10: /* id-RAB-ReleaseRequest*/
+ break;
+ case 11: /* id-Iu-ReleaseRequest*/
+ break;
+ case 12: /* id-RelocationDetect*/
+ break;
+ case 13: /* id-RelocationComplete*/
+ break;
+ case 14: /* id-Paging*/
+ break;
+ case 15: /* id-CommonID*/
+ break;
+ case 16: /* id-CN-InvokeTrace*/
+ break;
+ case 17: /* id-LocationReportingControl*/
+ break;
+ case 18: /* id-LocationReport*/
+ break;
+ case 19: /* id-InitialUE-Message*/
+ break;
+ case 20: /* id-DirectTransfer*/
+ break;
+ case 21: /* id-OverloadControl*/
+ break;
+ case 22: /* id-ErrorIndication*/
+ break;
+ case 23: /* id-SRNS-DataForward*/
+ break;
+ case 24: /* id-ForwardSRNS-Context*/
+ break;
+ case 25: /* id-privateMessage*/
+ break;
+ case 26: /* id-CN-DeactivateTrace*/
+ break;
+ case 27: /* id-ResetResource*/
+ break;
+ case 28: /* id-RANAP-Relocation*/
+ break;
+ case 29: /* id-RAB-ModifyRequest*/
+ break;
+ case 30: /* id-LocationRelatedData*/
+ offset = dissect_locationRelatedDataFailure(tvb, offset, pinfo, tree);
+ break;
+ case 31: /* id-InformationTransfer*/
+ offset = dissect_informationTransferFailure(tvb, offset, pinfo, tree);
+ break;
+ case 32: /* id-UESpecificInformation*/
+ break;
+ case 33: /* id-UplinkInformationExchange*/
+ offset = dissect_uplinkInformationExchangeFailure(tvb, offset, pinfo, tree);
+ break;
+ case 34: /* id-DirectInformationTransfer*/
+ break;
+ case 35: /* id-MBMSSessionStart*/
+ offset = dissect_mBMSSessionStartFailure(tvb, offset, pinfo, tree);
+ break;
+ case 36: /* id-MBMSSessionUpdate*/
+ offset = dissect_mBMSSessionUpdateFailure(tvb, offset, pinfo, tree);
+ break;
+ case 37: /* id-MBMSSessionStop*/
+ break;
+ case 38: /* id-MBMSUELinking*/
+ break;
+ case 39: /* id-MBMSRegistration*/
+ offset = dissect_mBMSRegistrationFailure(tvb, offset, pinfo, tree);
+ break;
+ case 40: /* id-MBMSCNDe-Registration-Procedure*/
+ break;
+ case 41: /* id-MBMSRABEstablishmentIndication*/
+ break;
+ case 42: /* id-MBMSRABRelease*/
+ offset = dissect_mBMSRABReleaseFailure(tvb, offset, pinfo, tree);
+ break;
+ default:
+ break;
+ }
+ break;
+ case 3:
+ /* outcome */
+ switch(ProcedureCode){
+ case 0: /* id-RAB-Assignment*/
+ offset = dissect_rAB_AssignmentResponse(tvb, offset, pinfo, tree);
+ break;
+ case 1: /* id-Iu-Release */
+ offset = dissect_iu_ReleaseCommand(tvb, offset, pinfo, tree);
+ break;
+ case 2: /* id-RelocationPreparation*/
+ break;
+ case 3: /* id-RelocationResourceAllocation*/
+ break;
+ case 4: /* id-RelocationCancel*/
+ break;
+ case 5: /* id-SRNS-ContextTransfer*/
+ break;
+ case 6: /* id-SecurityModeControl*/
+ break;
+ case 7: /* id-DataVolumeReport*/
+ break;
+ case 9: /* id-Reset*/
+ break;
+ case 10: /* id-RAB-ReleaseRequest*/
+ break;
+ case 11: /* id-Iu-ReleaseRequest*/
+ break;
+ case 12: /* id-RelocationDetect*/
+ break;
+ case 13: /* id-RelocationComplete*/
+ break;
+ case 14: /* id-Paging*/
+ break;
+ case 15: /* id-CommonID*/
+ break;
+ case 16: /* id-CN-InvokeTrace*/
+ break;
+ case 17: /* id-LocationReportingControl*/
+ break;
+ case 18: /* id-LocationReport*/
+ break;
+ case 19: /* id-InitialUE-Message*/
+ break;
+ case 20: /* id-DirectTransfer*/
+ break;
+ case 21: /* id-OverloadControl*/
+ break;
+ case 22: /* id-ErrorIndication*/
+ break;
+ case 23: /* id-SRNS-DataForward*/
+ break;
+ case 24: /* id-ForwardSRNS-Context*/
+ break;
+ case 25: /* id-privateMessage*/
+ break;
+ case 26: /* id-CN-DeactivateTrace*/
+ break;
+ case 27: /* id-ResetResource*/
+ break;
+ case 28: /* id-RANAP-Relocation*/
+ break;
+ case 29: /* id-RAB-ModifyRequest*/
+ break;
+ case 30: /* id-LocationRelatedData*/
+ break;
+ case 31: /* id-InformationTransfer*/
+ break;
+ case 32: /* id-UESpecificInformation*/
+ break;
+ case 33: /* id-UplinkInformationExchange*/
+ break;
+ case 34: /* id-DirectInformationTransfer*/
+ break;
+ case 35: /* id-MBMSSessionStart*/
+ break;
+ case 36: /* id-MBMSSessionUpdate*/
+ break;
+ case 37: /* id-MBMSSessionStop*/
+ break;
+ case 38: /* id-MBMSUELinking*/
+ offset = dissect_mBMSUELinkingResponse(tvb, offset, pinfo, tree);
+ break;
+ case 39: /* id-MBMSRegistration*/
+ break;
+ case 40: /* id-MBMSCNDe-Registration-Procedure*/
+ break;
+ case 41: /* id-MBMSRABEstablishmentIndication*/
+ break;
+ case 42: /* id-MBMSRABRelease*/
+ break;
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+ return offset;
+}
+
static void
dissect_ranap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
- proto_item *ranap_item = NULL;
- proto_tree *ranap_tree = NULL;
-
- guint procedure_code;
- guint pdu_index;
- gint number_of_octets = 0;
- gint number_of_octets_size = 0;
- gint offset = 0;
- gint tmp_offset = 0;
- gint bitoffset = 0;
- gint tmp_bitoffset = 0;
- guint extension_present;
-
- tvbuff_t *ie_tvb;
-
-
- g_pinfo = pinfo;
-
- /* make entry in the Protocol column on summary display */
- if (check_col(pinfo->cinfo, COL_PROTOCOL))
- col_set_str(pinfo->cinfo, COL_PROTOCOL, "RANAP");
-
- /* extract header fields which are needed even if no tree exists */
-
- /* protocol_extension present ? */
- extension_present = extract_nbits(tvb, tmp_offset, tmp_bitoffset, 1);
- proceed_nbits(&tmp_offset, &tmp_bitoffset, 1);
- if (extension_present)
- {
- /* extended choice */
- /* decoding is not supported */
- if (check_col(pinfo->cinfo, COL_INFO))
- {
- col_append_str(pinfo->cinfo, COL_INFO, "RANAP-PDU Protocol extension present, dissection not supported");
- }
-
- if (tree)
- {
- proto_tree_add_text(tree, tvb, 0, -1, "RANAP Message");
- }
- return;
- }
-
- /* pdu_index choice 0..3 */
- pdu_index = extract_nbits(tvb, tmp_offset, tmp_bitoffset, 2);
- proceed_nbits(&tmp_offset, &tmp_bitoffset, 2);
-
- /* procedure code */
- allign(&tmp_offset, &tmp_bitoffset);
- procedure_code = tvb_get_guint8(tvb, tmp_offset);
- tmp_offset += 1;
-
- /* add Procedure Code to Info Column */
- if (check_col(pinfo->cinfo, COL_INFO))
- {
- if (procedure_code <= PC_max)
- {
- col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",
- val_to_str(pdu_index, ranap_message_names[procedure_code],
- "unknown message"));
- }
- }
+ proto_item *ranap_item = NULL;
+ proto_tree *ranap_tree = NULL;
+ int offset = 0;
- /* extract number of octets */
- tmp_offset += 1; /* leave out criticality byte */
- extract_length(tvb, tmp_offset, &number_of_octets, &number_of_octets_size);
+ top_tree = tree;
- /* In the interest of speed, if "tree" is NULL, don't do any work not
- necessary to generate protocol tree items. */
- if (tree)
- {
- g_tree = tree;
+ /* make entry in the Protocol column on summary display */
+ if (check_col(pinfo->cinfo, COL_PROTOCOL))
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "RANAP");
/* create the ranap protocol tree */
ranap_item = proto_tree_add_item(tree, proto_ranap, tvb, 0, -1, FALSE);
ranap_tree = proto_item_add_subtree(ranap_item, ett_ranap);
- /* Add fields to ranap protocol tree */
- /* PDU Index */
- proceed_nbits(&offset, &bitoffset, 1); /* leave out extension bit, checked above */
- proto_tree_add_uint_bits(ranap_tree, hf_ranap_pdu_index, tvb,
- offset, bitoffset, 2, 0);
- proceed_nbits(&offset, &bitoffset, 2);
-
-
- /* Procedure Code */
- allign(&offset, &bitoffset);
- proto_tree_add_item(ranap_tree, hf_ranap_procedure_code, tvb, offset, 1, FALSE);
- offset += 1;
-
- /* PDU Criticality */
- proto_tree_add_uint_bits(ranap_tree, hf_ranap_pdu_criticality, tvb,
- offset, bitoffset, 2, 0);
- proceed_nbits(&offset, &bitoffset, 2);
-
- /* number of octets */
- allign(&offset, &bitoffset);
- if (number_of_octets != 0)
- {
- proto_tree_add_uint(ranap_tree, hf_ranap_pdu_number_of_octets,
- tvb, offset,
- number_of_octets_size, number_of_octets);
- offset += number_of_octets_size;
- }
- else
- {
- /* decoding is not supported */
- proto_tree_add_text(ranap_tree, tvb, offset,
- 2, "Number of Octets greater than 0x3FFF, dissection not supported");
- return;
- }
- }
-
- /* set offset to the beginning of ProtocolIE-Container */
- /* in case we skipped "if(tree){...}" above */
- offset = PDU_NUMBER_OF_OCTETS_OFFSET + number_of_octets_size;
-
- /* create a tvb containing the remainder of the PDU */
- ie_tvb = tvb_new_subset(tvb, offset, -1, -1);
-
- /* dissect the ies */
- dissect_ranap_ie_container(ie_tvb, ranap_tree);
-}
+ offset = dissect_ranap_RANAP_PDU(tvb, offset, pinfo, ranap_tree, hf_ranap_RANAP_PDU);
+}
static gboolean
dissect_sccp_ranap_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
@@ -4163,719 +10739,2385 @@ dissect_sccp_ranap_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
return TRUE;
}
+/*--- proto_reg_handoff_ranap ---------------------------------------
+This proto is called directly from packet-gsm_a and needs to know component type */
+void proto_reg_handoff_ranap(void) {
+ dissector_handle_t ranap_handle;
-/*****************************************************************************/
-/* */
-/* Protocol Registration Functions */
-/* */
-/*****************************************************************************/
+ ranap_handle = create_dissector_handle(dissect_ranap, proto_ranap);
+ dissector_add("sccp.ssn", SCCP_SSN_RANAP, ranap_handle);
-void
-proto_register_ranap(void)
-{
- /* Setup list of header fields */
+ /* Add heuristic dissector
+ * Perhaps we want a preference whether the heuristic dissector
+ * is or isn't enabled
+ */
+ heur_dissector_add("sccp", dissect_sccp_ranap_heur, proto_ranap);
+
+
+}
+
+/*--- proto_register_ranap -------------------------------------------*/
+void proto_register_ranap(void) {
+
+ /* List of fields */
static hf_register_info hf[] = {
- { &hf_ranap_pdu_index,
- { "RANAP-PDU Index",
- "ranap.ranap_pdu_index",
- FT_UINT8, BASE_HEX, VALS(&ranap_pdu_index_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_procedure_code,
- { "Procedure Code",
- "ranap.procedure_code",
- FT_UINT8, BASE_DEC, VALS(&ranap_procedure_code_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_pdu_criticality,
- { "Criticality of PDU",
- "ranap.pdu.criticality",
- FT_UINT8, BASE_HEX, VALS(&ranap_criticality_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_pdu_number_of_octets,
- { "Number of Octets in PDU",
- "ranap.pdu.num_of_octets",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_ie_protocol_extension,
- { "Protocol Extension",
- "ranap.ie.protocol_extension_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_number_of_ies,
- { "Number of IEs in PDU",
- "ranap.pdu.number_of_ies",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_number_of_ies_in_list,
- { "Number of IEs in list",
- "ranap.number_of_ies",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_ie_ie_id,
- { "IE-ID",
- "ranap.ie.ie_id",
- FT_UINT16, BASE_DEC, VALS(&ranap_ie_id_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_ext_field_id,
- { "ProtocolExtensionField ID",
- "ranap.ie.ProtocolExtensionFields.Id",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_ie_criticality,
- { "Criticality of IE",
- "ranap.ie.criticality",
- FT_UINT8, BASE_HEX, VALS(&ranap_criticality_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_ext_field_criticality,
- { "Criticality of ProtocolExtensionField",
- "ranap.ie.ProtocolExtensionFields.criticality",
- FT_UINT8, BASE_HEX, VALS(&ranap_criticality_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_ie_pair_first_criticality,
- { "First Criticality",
- "ranap.ie_pair.first_criticality",
- FT_UINT8, BASE_HEX, VALS(&ranap_criticality_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_ie_pair_second_criticality,
- { "Second Criticality",
- "ranap.ie_pair.second_criticality",
- FT_UINT8, BASE_HEX, VALS(&ranap_criticality_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_ie_number_of_octets,
- { "Number of Octets in IE",
- "ranap.ie.number_of_octets",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_first_value_number_of_octets,
- { "Number of Octets in first value",
- "ranap.ie_pair.first_value.number_of_octets",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_second_value_number_of_octets,
- { "Number of Octets in second value",
- "ranap.ie_pair.second_value.number_of_octets",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_rab_id,
- { "RAB-ID",
- "ranap.RAB_ID",
- FT_UINT8, BASE_HEX, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_nas_pdu,
- { "NAS-PDU",
- "ranap.NAS_PDU",
- FT_BYTES, BASE_NONE, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_extension_field,
- { "Extension Field Value",
- "ranap.Extension_Field_Value",
- FT_BYTES, BASE_NONE, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_plmn_id,
- { "PLMN-ID",
- "ranap.PLMN_ID",
- FT_BYTES, BASE_NONE, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_lac,
- { "LAC",
- "ranap.LAC",
- FT_BYTES, BASE_NONE, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_sac,
- { "SAC",
- "ranap.SAC",
- FT_BYTES, BASE_NONE, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_rac,
- { "RAC",
- "ranap.RAC",
- FT_BYTES, BASE_NONE, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_num_rabs,
- { "Number of RABs",
- "ranap.number_of_RABs",
- FT_UINT8, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_nAS_SynchronisationIndicator_present,
- { "nAS-SynchronisationIndicator",
- "ranap.nAS-SynchronisationIndicator_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_rAB_Parameters_present,
- { "rAB-Parameters",
- "ranap.rAB_Parameters_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_userPlaneInformation_present,
- { "userPlaneInformation",
- "ranap.userPlaneInformation_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_transportLayerInformation_present,
- { "transportLayerInformation",
- "ranap.transportLayerInformation_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_service_Handover_present,
- { "service-Handover",
- "ranap.service_Handover_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_iE_Extensions_present,
- { "iE-Extensions",
- "ranap.ie.iE-Extensions_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
+ { &hf_ranap_RANAP_PDU,
+ { "RANAP_PDU", "ranap.ranap_pdu",
+ FT_UINT32, BASE_DEC, VALS(ranap_RANAP_PDU_vals), 0,
+ "RANAP_PDU", HFILL }},
+ { &hf_ranap_pdu_length,
+ { "PDU Length", "ranap.pdu_length", FT_UINT32, BASE_DEC,
+ NULL, 0, "Number of octets in the PDU", HFILL }},
+ { &hf_ranap_IE_length,
+ { "IE Length", "ranap.ie_length", FT_UINT32, BASE_DEC,
+ NULL, 0, "Number of octets in the IE", HFILL }},
+
+
+/*--- Included file: packet-ranap-hfarr.c ---*/
+
+ { &hf_ranap_initiatingMessage,
+ { "initiatingMessage", "ranap.initiatingMessage",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "RANAP-PDU/initiatingMessage", HFILL }},
+ { &hf_ranap_successfulOutcome,
+ { "successfulOutcome", "ranap.successfulOutcome",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "RANAP-PDU/successfulOutcome", HFILL }},
+ { &hf_ranap_unsuccessfulOutcome,
+ { "unsuccessfulOutcome", "ranap.unsuccessfulOutcome",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "RANAP-PDU/unsuccessfulOutcome", HFILL }},
+ { &hf_ranap_outcome,
+ { "outcome", "ranap.outcome",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "RANAP-PDU/outcome", HFILL }},
+ { &hf_ranap_procedureCode,
+ { "procedureCode", "ranap.procedureCode",
+ FT_UINT32, BASE_DEC, VALS(ranap_ProcedureCode_vals), 0,
+ "", HFILL }},
+ { &hf_ranap_criticality,
+ { "criticality", "ranap.criticality",
+ FT_UINT32, BASE_DEC, VALS(ranap_Criticality_vals), 0,
+ "", HFILL }},
+ { &hf_ranap_value,
+ { "value", "ranap.value",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_iu_ReleaseCommand,
+ { "iu-ReleaseCommand", "ranap.iu_ReleaseCommand",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_relocationRequired,
+ { "relocationRequired", "ranap.relocationRequired",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/relocationRequired", HFILL }},
+ { &hf_ranap_relocationRequest,
+ { "relocationRequest", "ranap.relocationRequest",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/relocationRequest", HFILL }},
+ { &hf_ranap_relocationCancel,
+ { "relocationCancel", "ranap.relocationCancel",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/relocationCancel", HFILL }},
+ { &hf_ranap_sRNS_ContextRequest,
+ { "sRNS-ContextRequest", "ranap.sRNS_ContextRequest",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/sRNS-ContextRequest", HFILL }},
+ { &hf_ranap_securityModeCommand,
+ { "securityModeCommand", "ranap.securityModeCommand",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/securityModeCommand", HFILL }},
+ { &hf_ranap_dataVolumeReportRequest,
+ { "dataVolumeReportRequest", "ranap.dataVolumeReportRequest",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/dataVolumeReportRequest", HFILL }},
+ { &hf_ranap_reset,
+ { "reset", "ranap.reset",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/reset", HFILL }},
+ { &hf_ranap_rAB_ReleaseRequest,
+ { "rAB-ReleaseRequest", "ranap.rAB_ReleaseRequest",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/rAB-ReleaseRequest", HFILL }},
+ { &hf_ranap_iu_ReleaseRequest,
+ { "iu-ReleaseRequest", "ranap.iu_ReleaseRequest",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/iu-ReleaseRequest", HFILL }},
+ { &hf_ranap_relocationDetect,
+ { "relocationDetect", "ranap.relocationDetect",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/relocationDetect", HFILL }},
+ { &hf_ranap_relocationComplete,
+ { "relocationComplete", "ranap.relocationComplete",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/relocationComplete", HFILL }},
+ { &hf_ranap_paging,
+ { "paging", "ranap.paging",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/paging", HFILL }},
+ { &hf_ranap_commonID,
+ { "commonID", "ranap.commonID",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/commonID", HFILL }},
+ { &hf_ranap_cN_InvokeTrace,
+ { "cN-InvokeTrace", "ranap.cN_InvokeTrace",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/cN-InvokeTrace", HFILL }},
+ { &hf_ranap_cN_DeactivateTrace,
+ { "cN-DeactivateTrace", "ranap.cN_DeactivateTrace",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/cN-DeactivateTrace", HFILL }},
+ { &hf_ranap_locationReportingControl,
+ { "locationReportingControl", "ranap.locationReportingControl",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/locationReportingControl", HFILL }},
+ { &hf_ranap_locationReport,
+ { "locationReport", "ranap.locationReport",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/locationReport", HFILL }},
+ { &hf_ranap_initialUE_Message,
+ { "initialUE-Message", "ranap.initialUE_Message",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/initialUE-Message", HFILL }},
+ { &hf_ranap_directTransfer,
+ { "directTransfer", "ranap.directTransfer",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/directTransfer", HFILL }},
+ { &hf_ranap_overload,
+ { "overload", "ranap.overload",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/overload", HFILL }},
+ { &hf_ranap_errorIndication,
+ { "errorIndication", "ranap.errorIndication",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/errorIndication", HFILL }},
+ { &hf_ranap_sRNS_DataForwardCommand,
+ { "sRNS-DataForwardCommand", "ranap.sRNS_DataForwardCommand",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/sRNS-DataForwardCommand", HFILL }},
+ { &hf_ranap_forwardSRNS_Context,
+ { "forwardSRNS-Context", "ranap.forwardSRNS_Context",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/forwardSRNS-Context", HFILL }},
+ { &hf_ranap_rAB_AssignmentRequest,
+ { "rAB-AssignmentRequest", "ranap.rAB_AssignmentRequest",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/rAB-AssignmentRequest", HFILL }},
+ { &hf_ranap_privateMessage,
+ { "privateMessage", "ranap.privateMessage",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/privateMessage", HFILL }},
+ { &hf_ranap_resetResource,
+ { "resetResource", "ranap.resetResource",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/resetResource", HFILL }},
+ { &hf_ranap_rANAP_RelocationInformation,
+ { "rANAP-RelocationInformation", "ranap.rANAP_RelocationInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/rANAP-RelocationInformation", HFILL }},
+ { &hf_ranap_rAB_ModifyRequest,
+ { "rAB-ModifyRequest", "ranap.rAB_ModifyRequest",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/rAB-ModifyRequest", HFILL }},
+ { &hf_ranap_locationRelatedDataRequest,
+ { "locationRelatedDataRequest", "ranap.locationRelatedDataRequest",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/locationRelatedDataRequest", HFILL }},
+ { &hf_ranap_informationTransferIndication,
+ { "informationTransferIndication", "ranap.informationTransferIndication",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/informationTransferIndication", HFILL }},
+ { &hf_ranap_uESpecificInformationIndication,
+ { "uESpecificInformationIndication", "ranap.uESpecificInformationIndication",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/uESpecificInformationIndication", HFILL }},
+ { &hf_ranap_directInformationTransfer,
+ { "directInformationTransfer", "ranap.directInformationTransfer",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/directInformationTransfer", HFILL }},
+ { &hf_ranap_uplinkInformationExchangeRequest,
+ { "uplinkInformationExchangeRequest", "ranap.uplinkInformationExchangeRequest",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/uplinkInformationExchangeRequest", HFILL }},
+ { &hf_ranap_mBMSSessionStart,
+ { "mBMSSessionStart", "ranap.mBMSSessionStart",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/mBMSSessionStart", HFILL }},
+ { &hf_ranap_mBMSSessionUpdate,
+ { "mBMSSessionUpdate", "ranap.mBMSSessionUpdate",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/mBMSSessionUpdate", HFILL }},
+ { &hf_ranap_mMBMSSessionStop,
+ { "mMBMSSessionStop", "ranap.mMBMSSessionStop",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/mMBMSSessionStop", HFILL }},
+ { &hf_ranap_mBMSUELinkingRequest,
+ { "mBMSUELinkingRequest", "ranap.mBMSUELinkingRequest",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/mBMSUELinkingRequest", HFILL }},
+ { &hf_ranap_mBMSRegistrationRequest,
+ { "mBMSRegistrationRequest", "ranap.mBMSRegistrationRequest",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/mBMSRegistrationRequest", HFILL }},
+ { &hf_ranap_mBMSCNDe_RegistrationRequest,
+ { "mBMSCNDe-RegistrationRequest", "ranap.mBMSCNDe_RegistrationRequest",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/mBMSCNDe-RegistrationRequest", HFILL }},
+ { &hf_ranap_mBMSRABEstablishmentIndication,
+ { "mBMSRABEstablishmentIndication", "ranap.mBMSRABEstablishmentIndication",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/mBMSRABEstablishmentIndication", HFILL }},
+ { &hf_ranap_mBMSRABReleaseRequest,
+ { "mBMSRABReleaseRequest", "ranap.mBMSRABReleaseRequest",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-initiating-messages/mBMSRABReleaseRequest", HFILL }},
+ { &hf_ranap_iu_ReleaseComplete,
+ { "iu-ReleaseComplete", "ranap.iu_ReleaseComplete",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-SuccessfulOutcome-messages/iu-ReleaseComplete", HFILL }},
+ { &hf_ranap_relocationCommand,
+ { "relocationCommand", "ranap.relocationCommand",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-SuccessfulOutcome-messages/relocationCommand", HFILL }},
+ { &hf_ranap_relocationRequestAcknowledge,
+ { "relocationRequestAcknowledge", "ranap.relocationRequestAcknowledge",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-SuccessfulOutcome-messages/relocationRequestAcknowledge", HFILL }},
+ { &hf_ranap_relocationCancelAcknowledge,
+ { "relocationCancelAcknowledge", "ranap.relocationCancelAcknowledge",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-SuccessfulOutcome-messages/relocationCancelAcknowledge", HFILL }},
+ { &hf_ranap_sRNS_ContextResponse,
+ { "sRNS-ContextResponse", "ranap.sRNS_ContextResponse",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-SuccessfulOutcome-messages/sRNS-ContextResponse", HFILL }},
+ { &hf_ranap_securityModeComplete,
+ { "securityModeComplete", "ranap.securityModeComplete",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-SuccessfulOutcome-messages/securityModeComplete", HFILL }},
+ { &hf_ranap_dataVolumeReport,
+ { "dataVolumeReport", "ranap.dataVolumeReport",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-SuccessfulOutcome-messages/dataVolumeReport", HFILL }},
+ { &hf_ranap_resetAcknowledge,
+ { "resetAcknowledge", "ranap.resetAcknowledge",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-SuccessfulOutcome-messages/resetAcknowledge", HFILL }},
+ { &hf_ranap_resetResourceAcknowledge,
+ { "resetResourceAcknowledge", "ranap.resetResourceAcknowledge",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-SuccessfulOutcome-messages/resetResourceAcknowledge", HFILL }},
+ { &hf_ranap_locationRelatedDataResponse,
+ { "locationRelatedDataResponse", "ranap.locationRelatedDataResponse",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-SuccessfulOutcome-messages/locationRelatedDataResponse", HFILL }},
+ { &hf_ranap_informationTransferConfirmation,
+ { "informationTransferConfirmation", "ranap.informationTransferConfirmation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-SuccessfulOutcome-messages/informationTransferConfirmation", HFILL }},
+ { &hf_ranap_uplinkInformationExchangeResponse,
+ { "uplinkInformationExchangeResponse", "ranap.uplinkInformationExchangeResponse",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-SuccessfulOutcome-messages/uplinkInformationExchangeResponse", HFILL }},
+ { &hf_ranap_mBMSSessionStartResponse,
+ { "mBMSSessionStartResponse", "ranap.mBMSSessionStartResponse",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-SuccessfulOutcome-messages/mBMSSessionStartResponse", HFILL }},
+ { &hf_ranap_mBMSSessionUpdateResponse,
+ { "mBMSSessionUpdateResponse", "ranap.mBMSSessionUpdateResponse",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-SuccessfulOutcome-messages/mBMSSessionUpdateResponse", HFILL }},
+ { &hf_ranap_mBMSSessionStopResponse,
+ { "mBMSSessionStopResponse", "ranap.mBMSSessionStopResponse",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-SuccessfulOutcome-messages/mBMSSessionStopResponse", HFILL }},
+ { &hf_ranap_mBMSRegistrationResponse,
+ { "mBMSRegistrationResponse", "ranap.mBMSRegistrationResponse",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-SuccessfulOutcome-messages/mBMSRegistrationResponse", HFILL }},
+ { &hf_ranap_mBMSCNDeRegistrationResponse,
+ { "mBMSCNDeRegistrationResponse", "ranap.mBMSCNDeRegistrationResponse",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-SuccessfulOutcome-messages/mBMSCNDeRegistrationResponse", HFILL }},
+ { &hf_ranap_mBMSRABRelease,
+ { "mBMSRABRelease", "ranap.mBMSRABRelease",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-SuccessfulOutcome-messages/mBMSRABRelease", HFILL }},
+ { &hf_ranap_relocationPreparationFailure,
+ { "relocationPreparationFailure", "ranap.relocationPreparationFailure",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-UnsuccessfulOutcome-messages/relocationPreparationFailure", HFILL }},
+ { &hf_ranap_relocationFailure,
+ { "relocationFailure", "ranap.relocationFailure",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-UnsuccessfulOutcome-messages/relocationFailure", HFILL }},
+ { &hf_ranap_securityModeReject,
+ { "securityModeReject", "ranap.securityModeReject",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-UnsuccessfulOutcome-messages/securityModeReject", HFILL }},
+ { &hf_ranap_locationRelatedDataFailure,
+ { "locationRelatedDataFailure", "ranap.locationRelatedDataFailure",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-UnsuccessfulOutcome-messages/locationRelatedDataFailure", HFILL }},
+ { &hf_ranap_informationTransferFailure,
+ { "informationTransferFailure", "ranap.informationTransferFailure",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-UnsuccessfulOutcome-messages/informationTransferFailure", HFILL }},
+ { &hf_ranap_uplinkInformationExchangeFailure,
+ { "uplinkInformationExchangeFailure", "ranap.uplinkInformationExchangeFailure",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-UnsuccessfulOutcome-messages/uplinkInformationExchangeFailure", HFILL }},
+ { &hf_ranap_mBMSSessionStartFailure,
+ { "mBMSSessionStartFailure", "ranap.mBMSSessionStartFailure",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-UnsuccessfulOutcome-messages/mBMSSessionStartFailure", HFILL }},
+ { &hf_ranap_mBMSSessionUpdateFailure,
+ { "mBMSSessionUpdateFailure", "ranap.mBMSSessionUpdateFailure",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-UnsuccessfulOutcome-messages/mBMSSessionUpdateFailure", HFILL }},
+ { &hf_ranap_mBMSRegistrationFailure,
+ { "mBMSRegistrationFailure", "ranap.mBMSRegistrationFailure",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-UnsuccessfulOutcome-messages/mBMSRegistrationFailure", HFILL }},
+ { &hf_ranap_mBMSRABReleaseFailure,
+ { "mBMSRABReleaseFailure", "ranap.mBMSRABReleaseFailure",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-UnsuccessfulOutcome-messages/mBMSRABReleaseFailure", HFILL }},
+ { &hf_ranap_rAB_AssignmentResponse,
+ { "rAB-AssignmentResponse", "ranap.rAB_AssignmentResponse",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-Outcome-messages/rAB-AssignmentResponse", HFILL }},
+ { &hf_ranap_mBMSUELinkingResponse,
+ { "mBMSUELinkingResponse", "ranap.mBMSUELinkingResponse",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dummy-Outcome-messages/mBMSUELinkingResponse", HFILL }},
+ { &hf_ranap_id_AccuracyFulfilmentIndicator,
+ { "id-AccuracyFulfilmentIndicator", "ranap.id_AccuracyFulfilmentIndicator",
+ FT_UINT32, BASE_DEC, VALS(ranap_AccuracyFulfilmentIndicator_vals), 0,
+ "Dymmy-ie-ids/id-AccuracyFulfilmentIndicator", HFILL }},
+ { &hf_ranap_id_APN,
+ { "id-APN", "ranap.id_APN",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-APN", HFILL }},
+ { &hf_ranap_id_AreaIdentity,
+ { "id-AreaIdentity", "ranap.id_AreaIdentity",
+ FT_UINT32, BASE_DEC, VALS(ranap_AreaIdentity_vals), 0,
+ "Dymmy-ie-ids/id-AreaIdentity", HFILL }},
+ { &hf_ranap_id_Alt_RAB_Parameters,
+ { "id-Alt-RAB-Parameters", "ranap.id_Alt_RAB_Parameters",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-Alt-RAB-Parameters", HFILL }},
+ { &hf_ranap_id_Ass_RAB_Parameters,
+ { "id-Ass-RAB-Parameters", "ranap.id_Ass_RAB_Parameters",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-Ass-RAB-Parameters", HFILL }},
+ { &hf_ranap_id_BroadcastAssistanceDataDecipheringKeys,
+ { "id-BroadcastAssistanceDataDecipheringKeys", "ranap.id_BroadcastAssistanceDataDecipheringKeys",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-BroadcastAssistanceDataDecipheringKeys", HFILL }},
+ { &hf_ranap_id_LocationRelatedDataRequestType,
+ { "id-LocationRelatedDataRequestType", "ranap.id_LocationRelatedDataRequestType",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-LocationRelatedDataRequestType", HFILL }},
+ { &hf_ranap_id_CN_DomainIndicator,
+ { "id-CN-DomainIndicator", "ranap.id_CN_DomainIndicator",
+ FT_UINT32, BASE_DEC, VALS(ranap_CN_DomainIndicator_vals), 0,
+ "Dymmy-ie-ids/id-CN-DomainIndicator", HFILL }},
+ { &hf_ranap_id_Cause,
+ { "id-Cause", "ranap.id_Cause",
+ FT_UINT32, BASE_DEC, VALS(ranap_Cause_vals), 0,
+ "Dymmy-ie-ids/id-Cause", HFILL }},
+ { &hf_ranap_id_ChosenEncryptionAlgorithm,
+ { "id-ChosenEncryptionAlgorithm", "ranap.id_ChosenEncryptionAlgorithm",
+ FT_UINT32, BASE_DEC, VALS(ranap_EncryptionAlgorithm_vals), 0,
+ "Dymmy-ie-ids/id-ChosenEncryptionAlgorithm", HFILL }},
+ { &hf_ranap_id_ChosenIntegrityProtectionAlgorithm,
+ { "id-ChosenIntegrityProtectionAlgorithm", "ranap.id_ChosenIntegrityProtectionAlgorithm",
+ FT_UINT32, BASE_DEC, VALS(ranap_IntegrityProtectionAlgorithm_vals), 0,
+ "Dymmy-ie-ids/id-ChosenIntegrityProtectionAlgorithm", HFILL }},
+ { &hf_ranap_id_ClassmarkInformation2,
+ { "id-ClassmarkInformation2", "ranap.id_ClassmarkInformation2",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-ClassmarkInformation2", HFILL }},
+ { &hf_ranap_id_ClassmarkInformation3,
+ { "id-ClassmarkInformation3", "ranap.id_ClassmarkInformation3",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-ClassmarkInformation3", HFILL }},
+ { &hf_ranap_id_ClientType,
+ { "id-ClientType", "ranap.id_ClientType",
+ FT_UINT32, BASE_DEC, VALS(ranap_ClientType_vals), 0,
+ "Dymmy-ie-ids/id-ClientType", HFILL }},
+ { &hf_ranap_id_CNMBMSLinkingInformation,
+ { "id-CNMBMSLinkingInformation", "ranap.id_CNMBMSLinkingInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-CNMBMSLinkingInformation", HFILL }},
+ { &hf_ranap_id_CriticalityDiagnostics,
+ { "id-CriticalityDiagnostics", "ranap.id_CriticalityDiagnostics",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-CriticalityDiagnostics", HFILL }},
+ { &hf_ranap_id_DeltaRAListofIdleModeUEs,
+ { "id-DeltaRAListofIdleModeUEs", "ranap.id_DeltaRAListofIdleModeUEs",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-DeltaRAListofIdleModeUEs", HFILL }},
+ { &hf_ranap_id_DRX_CycleLengthCoefficient,
+ { "id-DRX-CycleLengthCoefficient", "ranap.id_DRX_CycleLengthCoefficient",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-DRX-CycleLengthCoefficient", HFILL }},
+ { &hf_ranap_id_DirectTransferInformationItem_RANAP_RelocInf,
+ { "id-DirectTransferInformationItem-RANAP-RelocInf", "ranap.id_DirectTransferInformationItem_RANAP_RelocInf",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-DirectTransferInformationItem-RANAP-RelocInf", HFILL }},
+ { &hf_ranap_id_DirectTransferInformationList_RANAP_RelocInf,
+ { "id-DirectTransferInformationList-RANAP-RelocInf", "ranap.id_DirectTransferInformationList_RANAP_RelocInf",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-DirectTransferInformationList-RANAP-RelocInf", HFILL }},
+ { &hf_ranap_id_DL_GTP_PDU_SequenceNumber,
+ { "id-DL-GTP-PDU-SequenceNumber", "ranap.id_DL_GTP_PDU_SequenceNumber",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-DL-GTP-PDU-SequenceNumber", HFILL }},
+ { &hf_ranap_id_EncryptionInformation,
+ { "id-EncryptionInformation", "ranap.id_EncryptionInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-EncryptionInformation", HFILL }},
+ { &hf_ranap_id_FrequenceLayerConvergenceFlag,
+ { "id-FrequenceLayerConvergenceFlag", "ranap.id_FrequenceLayerConvergenceFlag",
+ FT_UINT32, BASE_DEC, VALS(ranap_FrequenceLayerConvergenceFlag_vals), 0,
+ "Dymmy-ie-ids/id-FrequenceLayerConvergenceFlag", HFILL }},
+ { &hf_ranap_id_GERAN_BSC_Container,
+ { "id-GERAN-BSC-Container", "ranap.id_GERAN_BSC_Container",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-GERAN-BSC-Container", HFILL }},
+ { &hf_ranap_id_GERAN_Classmark,
+ { "id-GERAN-Classmark", "ranap.id_GERAN_Classmark",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-GERAN-Classmark", HFILL }},
+ { &hf_ranap_id_GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item,
+ { "id-GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item", "ranap.id_GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item", HFILL }},
+ { &hf_ranap_id_GERAN_Iumode_RAB_FailedList_RABAssgntResponse,
+ { "id-GERAN-Iumode-RAB-FailedList-RABAssgntResponse", "ranap.id_GERAN_Iumode_RAB_FailedList_RABAssgntResponse",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-GERAN-Iumode-RAB-FailedList-RABAssgntResponse", HFILL }},
+ { &hf_ranap_id_GlobalCN_ID,
+ { "id-GlobalCN-ID", "ranap.id_GlobalCN_ID",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-GlobalCN-ID", HFILL }},
+ { &hf_ranap_id_GlobalRNC_ID,
+ { "id-GlobalRNC-ID", "ranap.id_GlobalRNC_ID",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-GlobalRNC-ID", HFILL }},
+ { &hf_ranap_id_InformationExchangeID,
+ { "id-InformationExchangeID", "ranap.id_InformationExchangeID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-InformationExchangeID", HFILL }},
+ { &hf_ranap_id_InformationExchangeType,
+ { "id-InformationExchangeType", "ranap.id_InformationExchangeType",
+ FT_UINT32, BASE_DEC, VALS(ranap_InformationExchangeType_vals), 0,
+ "Dymmy-ie-ids/id-InformationExchangeType", HFILL }},
+ { &hf_ranap_id_InformationRequested,
+ { "id-InformationRequested", "ranap.id_InformationRequested",
+ FT_UINT32, BASE_DEC, VALS(ranap_InformationRequested_vals), 0,
+ "Dymmy-ie-ids/id-InformationRequested", HFILL }},
+ { &hf_ranap_id_InformationRequestType,
+ { "id-InformationRequestType", "ranap.id_InformationRequestType",
+ FT_UINT32, BASE_DEC, VALS(ranap_InformationRequestType_vals), 0,
+ "Dymmy-ie-ids/id-InformationRequestType", HFILL }},
+ { &hf_ranap_id_InformationTransferID,
+ { "id-InformationTransferID", "ranap.id_InformationTransferID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-InformationTransferID", HFILL }},
+ { &hf_ranap_id_InformationTransferType,
+ { "id-InformationTransferType", "ranap.id_InformationTransferType",
+ FT_UINT32, BASE_DEC, VALS(ranap_InformationTransferType_vals), 0,
+ "Dymmy-ie-ids/id-InformationTransferType", HFILL }},
+ { &hf_ranap_id_TraceRecordingSessionInformation,
+ { "id-TraceRecordingSessionInformation", "ranap.id_TraceRecordingSessionInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-TraceRecordingSessionInformation", HFILL }},
+ { &hf_ranap_id_IntegrityProtectionInformation,
+ { "id-IntegrityProtectionInformation", "ranap.id_IntegrityProtectionInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-IntegrityProtectionInformation", HFILL }},
+ { &hf_ranap_id_InterSystemInformationTransferType,
+ { "id-InterSystemInformationTransferType", "ranap.id_InterSystemInformationTransferType",
+ FT_UINT32, BASE_DEC, VALS(ranap_InterSystemInformationTransferType_vals), 0,
+ "Dymmy-ie-ids/id-InterSystemInformationTransferType", HFILL }},
+ { &hf_ranap_id_InterSystemInformation_TransparentContainer,
+ { "id-InterSystemInformation-TransparentContainer", "ranap.id_InterSystemInformation_TransparentContainer",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-InterSystemInformation-TransparentContainer", HFILL }},
+ { &hf_ranap_id_IPMulticastAddress,
+ { "id-IPMulticastAddress", "ranap.id_IPMulticastAddress",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-IPMulticastAddress", HFILL }},
+ { &hf_ranap_id_IuSigConId,
+ { "id-IuSigConId", "ranap.id_IuSigConId",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-IuSigConId", HFILL }},
+ { &hf_ranap_id_IuSigConIdItem,
+ { "id-IuSigConIdItem", "ranap.id_IuSigConIdItem",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-IuSigConIdItem", HFILL }},
+ { &hf_ranap_id_IuSigConIdList,
+ { "id-IuSigConIdList", "ranap.id_IuSigConIdList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-IuSigConIdList", HFILL }},
+ { &hf_ranap_id_IuTransportAssociation,
+ { "id-IuTransportAssociation", "ranap.id_IuTransportAssociation",
+ FT_UINT32, BASE_DEC, VALS(ranap_IuTransportAssociation_vals), 0,
+ "Dymmy-ie-ids/id-IuTransportAssociation", HFILL }},
+ { &hf_ranap_id_JoinedMBMSBearerServicesList,
+ { "id-JoinedMBMSBearerServicesList", "ranap.id_JoinedMBMSBearerServicesList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-JoinedMBMSBearerServicesList", HFILL }},
+ { &hf_ranap_id_KeyStatus,
+ { "id-KeyStatus", "ranap.id_KeyStatus",
+ FT_UINT32, BASE_DEC, VALS(ranap_KeyStatus_vals), 0,
+ "Dymmy-ie-ids/id-KeyStatus", HFILL }},
+ { &hf_ranap_id_L3_Information,
+ { "id-L3-Information", "ranap.id_L3_Information",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-L3-Information", HFILL }},
+ { &hf_ranap_id_LAI,
+ { "id-LAI", "ranap.id_LAI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-LAI", HFILL }},
+ { &hf_ranap_id_LastKnownServiceArea,
+ { "id-LastKnownServiceArea", "ranap.id_LastKnownServiceArea",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-LastKnownServiceArea", HFILL }},
+ { &hf_ranap_id_SRB_TrCH_Mapping,
+ { "id-SRB-TrCH-Mapping", "ranap.id_SRB_TrCH_Mapping",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-SRB-TrCH-Mapping", HFILL }},
+ { &hf_ranap_id_LeftMBMSBearerServicesList,
+ { "id-LeftMBMSBearerServicesList", "ranap.id_LeftMBMSBearerServicesList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-LeftMBMSBearerServicesList", HFILL }},
+ { &hf_ranap_id_LocationRelatedDataRequestTypeSpecificToGERANIuMode,
+ { "id-LocationRelatedDataRequestTypeSpecificToGERANIuMode", "ranap.id_LocationRelatedDataRequestTypeSpecificToGERANIuMode",
+ FT_UINT32, BASE_DEC, VALS(ranap_LocationRelatedDataRequestTypeSpecificToGERANIuMode_vals), 0,
+ "Dymmy-ie-ids/id-LocationRelatedDataRequestTypeSpecificToGERANIuMode", HFILL }},
+ { &hf_ranap_id_SignallingIndication,
+ { "id-SignallingIndication", "ranap.id_SignallingIndication",
+ FT_UINT32, BASE_DEC, VALS(ranap_SignallingIndication_vals), 0,
+ "Dymmy-ie-ids/id-SignallingIndication", HFILL }},
+ { &hf_ranap_id_hS_DSCH_MAC_d_Flow_ID,
+ { "id-hS-DSCH-MAC-d-Flow-ID", "ranap.id_hS_DSCH_MAC_d_Flow_ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-hS-DSCH-MAC-d-Flow-ID", HFILL }},
+ { &hf_ranap_id_CellLoadInformationGroup,
+ { "id-CellLoadInformationGroup", "ranap.id_CellLoadInformationGroup",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-CellLoadInformationGroup", HFILL }},
+ { &hf_ranap_id_MBMSBearerServiceType,
+ { "id-MBMSBearerServiceType", "ranap.id_MBMSBearerServiceType",
+ FT_UINT32, BASE_DEC, VALS(ranap_MBMSBearerServiceType_vals), 0,
+ "Dymmy-ie-ids/id-MBMSBearerServiceType", HFILL }},
+ { &hf_ranap_id_MBMSCNDe_Registration,
+ { "id-MBMSCNDe-Registration", "ranap.id_MBMSCNDe_Registration",
+ FT_UINT32, BASE_DEC, VALS(ranap_MBMSCNDe_Registration_vals), 0,
+ "Dymmy-ie-ids/id-MBMSCNDe-Registration", HFILL }},
+ { &hf_ranap_id_MBMSRegistrationRequestType,
+ { "id-MBMSRegistrationRequestType", "ranap.id_MBMSRegistrationRequestType",
+ FT_UINT32, BASE_DEC, VALS(ranap_MBMSRegistrationRequestType_vals), 0,
+ "Dymmy-ie-ids/id-MBMSRegistrationRequestType", HFILL }},
+ { &hf_ranap_id_MBMSServiceArea,
+ { "id-MBMSServiceArea", "ranap.id_MBMSServiceArea",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-MBMSServiceArea", HFILL }},
+ { &hf_ranap_id_MBMSSessionDuration,
+ { "id-MBMSSessionDuration", "ranap.id_MBMSSessionDuration",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-MBMSSessionDuration", HFILL }},
+ { &hf_ranap_id_MBMSSessionIdentity,
+ { "id-MBMSSessionIdentity", "ranap.id_MBMSSessionIdentity",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-MBMSSessionIdentity", HFILL }},
+ { &hf_ranap_id_MBMSSessionRepetitionNumber,
+ { "id-MBMSSessionRepetitionNumber", "ranap.id_MBMSSessionRepetitionNumber",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-MBMSSessionRepetitionNumber", HFILL }},
+ { &hf_ranap_id_NAS_PDU,
+ { "id-NAS-PDU", "ranap.id_NAS_PDU",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-NAS-PDU", HFILL }},
+ { &hf_ranap_id_NAS_SequenceNumber,
+ { "id-NAS-SequenceNumber", "ranap.id_NAS_SequenceNumber",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-NAS-SequenceNumber", HFILL }},
+ { &hf_ranap_id_NewBSS_To_OldBSS_Information,
+ { "id-NewBSS-To-OldBSS-Information", "ranap.id_NewBSS_To_OldBSS_Information",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-NewBSS-To-OldBSS-Information", HFILL }},
+ { &hf_ranap_id_NonSearchingIndication,
+ { "id-NonSearchingIndication", "ranap.id_NonSearchingIndication",
+ FT_UINT32, BASE_DEC, VALS(ranap_NonSearchingIndication_vals), 0,
+ "Dymmy-ie-ids/id-NonSearchingIndication", HFILL }},
+ { &hf_ranap_id_NumberOfSteps,
+ { "id-NumberOfSteps", "ranap.id_NumberOfSteps",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-NumberOfSteps", HFILL }},
+ { &hf_ranap_id_OMC_ID,
+ { "id-OMC-ID", "ranap.id_OMC_ID",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-OMC-ID", HFILL }},
+ { &hf_ranap_id_OldBSS_ToNewBSS_Information,
+ { "id-OldBSS-ToNewBSS-Information", "ranap.id_OldBSS_ToNewBSS_Information",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-OldBSS-ToNewBSS-Information", HFILL }},
+ { &hf_ranap_id_PagingAreaID,
+ { "id-PagingAreaID", "ranap.id_PagingAreaID",
+ FT_UINT32, BASE_DEC, VALS(ranap_PagingAreaID_vals), 0,
+ "Dymmy-ie-ids/id-PagingAreaID", HFILL }},
+ { &hf_ranap_id_PagingCause,
+ { "id-PagingCause", "ranap.id_PagingCause",
+ FT_UINT32, BASE_DEC, VALS(ranap_PagingCause_vals), 0,
+ "Dymmy-ie-ids/id-PagingCause", HFILL }},
+ { &hf_ranap_id_PDP_TypeInformation,
+ { "id-PDP-TypeInformation", "ranap.id_PDP_TypeInformation",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-PDP-TypeInformation", HFILL }},
+ { &hf_ranap_id_PermanentNAS_UE_ID,
+ { "id-PermanentNAS-UE-ID", "ranap.id_PermanentNAS_UE_ID",
+ FT_UINT32, BASE_DEC, VALS(ranap_PermanentNAS_UE_ID_vals), 0,
+ "Dymmy-ie-ids/id-PermanentNAS-UE-ID", HFILL }},
+ { &hf_ranap_id_PositionData,
+ { "id-PositionData", "ranap.id_PositionData",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-PositionData", HFILL }},
+ { &hf_ranap_id_PositionDataSpecificToGERANIuMode,
+ { "id-PositionDataSpecificToGERANIuMode", "ranap.id_PositionDataSpecificToGERANIuMode",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-PositionDataSpecificToGERANIuMode", HFILL }},
+ { &hf_ranap_id_PositioningPriority,
+ { "id-PositioningPriority", "ranap.id_PositioningPriority",
+ FT_UINT32, BASE_DEC, VALS(ranap_PositioningPriority_vals), 0,
+ "Dymmy-ie-ids/id-PositioningPriority", HFILL }},
+ { &hf_ranap_id_ProvidedData,
+ { "id-ProvidedData", "ranap.id_ProvidedData",
+ FT_UINT32, BASE_DEC, VALS(ranap_ProvidedData_vals), 0,
+ "Dymmy-ie-ids/id-ProvidedData", HFILL }},
+ { &hf_ranap_id_RAB_ContextItem,
+ { "id-RAB-ContextItem", "ranap.id_RAB_ContextItem",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-ContextItem", HFILL }},
+ { &hf_ranap_id_RAB_ContextList,
+ { "id-RAB-ContextList", "ranap.id_RAB_ContextList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-ContextList", HFILL }},
+ { &hf_ranap_id_RAB_ContextFailedtoTransferItem,
+ { "id-RAB-ContextFailedtoTransferItem", "ranap.id_RAB_ContextFailedtoTransferItem",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-ContextFailedtoTransferItem", HFILL }},
+ { &hf_ranap_id_RAB_ContextFailedtoTransferList,
+ { "id-RAB-ContextFailedtoTransferList", "ranap.id_RAB_ContextFailedtoTransferList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-ContextFailedtoTransferList", HFILL }},
+ { &hf_ranap_id_RAB_ContextItem_RANAP_RelocInf,
+ { "id-RAB-ContextItem-RANAP-RelocInf", "ranap.id_RAB_ContextItem_RANAP_RelocInf",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-ContextItem-RANAP-RelocInf", HFILL }},
+ { &hf_ranap_id_RAB_ContextList_RANAP_RelocInf,
+ { "id-RAB-ContextList-RANAP-RelocInf", "ranap.id_RAB_ContextList_RANAP_RelocInf",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-ContextList-RANAP-RelocInf", HFILL }},
+ { &hf_ranap_id_RAB_DataForwardingItem,
+ { "id-RAB-DataForwardingItem", "ranap.id_RAB_DataForwardingItem",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-DataForwardingItem", HFILL }},
+ { &hf_ranap_id_RAB_DataForwardingItem_SRNS_CtxReq,
+ { "id-RAB-DataForwardingItem-SRNS-CtxReq", "ranap.id_RAB_DataForwardingItem_SRNS_CtxReq",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-DataForwardingItem-SRNS-CtxReq", HFILL }},
+ { &hf_ranap_id_RAB_DataForwardingList,
+ { "id-RAB-DataForwardingList", "ranap.id_RAB_DataForwardingList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-DataForwardingList", HFILL }},
+ { &hf_ranap_id_RAB_DataForwardingList_SRNS_CtxReq,
+ { "id-RAB-DataForwardingList-SRNS-CtxReq", "ranap.id_RAB_DataForwardingList_SRNS_CtxReq",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-DataForwardingList-SRNS-CtxReq", HFILL }},
+ { &hf_ranap_id_RAB_DataVolumeReportItem,
+ { "id-RAB-DataVolumeReportItem", "ranap.id_RAB_DataVolumeReportItem",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-DataVolumeReportItem", HFILL }},
+ { &hf_ranap_id_RAB_DataVolumeReportList,
+ { "id-RAB-DataVolumeReportList", "ranap.id_RAB_DataVolumeReportList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-DataVolumeReportList", HFILL }},
+ { &hf_ranap_id_RAB_DataVolumeReportRequestItem,
+ { "id-RAB-DataVolumeReportRequestItem", "ranap.id_RAB_DataVolumeReportRequestItem",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-DataVolumeReportRequestItem", HFILL }},
+ { &hf_ranap_id_RAB_DataVolumeReportRequestList,
+ { "id-RAB-DataVolumeReportRequestList", "ranap.id_RAB_DataVolumeReportRequestList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-DataVolumeReportRequestList", HFILL }},
+ { &hf_ranap_id_RAB_FailedItem,
+ { "id-RAB-FailedItem", "ranap.id_RAB_FailedItem",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-FailedItem", HFILL }},
+ { &hf_ranap_id_RAB_FailedList,
+ { "id-RAB-FailedList", "ranap.id_RAB_FailedList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-FailedList", HFILL }},
+ { &hf_ranap_id_RAB_FailedtoReportItem,
+ { "id-RAB-FailedtoReportItem", "ranap.id_RAB_FailedtoReportItem",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-FailedtoReportItem", HFILL }},
+ { &hf_ranap_id_RAB_FailedtoReportList,
+ { "id-RAB-FailedtoReportList", "ranap.id_RAB_FailedtoReportList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-FailedtoReportList", HFILL }},
+ { &hf_ranap_id_RAB_ID,
+ { "id-RAB-ID", "ranap.id_RAB_ID",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-ID", HFILL }},
+ { &hf_ranap_id_RAB_ModifyList,
+ { "id-RAB-ModifyList", "ranap.id_RAB_ModifyList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-ModifyList", HFILL }},
+ { &hf_ranap_id_RAB_ModifyItem,
+ { "id-RAB-ModifyItem", "ranap.id_RAB_ModifyItem",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-ModifyItem", HFILL }},
+ { &hf_ranap_id_TypeOfError,
+ { "id-TypeOfError", "ranap.id_TypeOfError",
+ FT_UINT32, BASE_DEC, VALS(ranap_TypeOfError_vals), 0,
+ "Dymmy-ie-ids/id-TypeOfError", HFILL }},
+ { &hf_ranap_id_RAB_Parameters,
+ { "id-RAB-Parameters", "ranap.id_RAB_Parameters",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-Parameters", HFILL }},
+ { &hf_ranap_id_RAB_QueuedItem,
+ { "id-RAB-QueuedItem", "ranap.id_RAB_QueuedItem",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-QueuedItem", HFILL }},
+ { &hf_ranap_id_RAB_QueuedList,
+ { "id-RAB-QueuedList", "ranap.id_RAB_QueuedList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-QueuedList", HFILL }},
+ { &hf_ranap_id_RAB_ReleaseFailedList,
+ { "id-RAB-ReleaseFailedList", "ranap.id_RAB_ReleaseFailedList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-ReleaseFailedList", HFILL }},
+ { &hf_ranap_id_RAB_ReleaseItem,
+ { "id-RAB-ReleaseItem", "ranap.id_RAB_ReleaseItem",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-ReleaseItem", HFILL }},
+ { &hf_ranap_id_RAB_ReleasedItem_IuRelComp,
+ { "id-RAB-ReleasedItem-IuRelComp", "ranap.id_RAB_ReleasedItem_IuRelComp",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-ReleasedItem-IuRelComp", HFILL }},
+ { &hf_ranap_id_MessageStructure,
+ { "id-MessageStructure", "ranap.id_MessageStructure",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-MessageStructure", HFILL }},
+ { &hf_ranap_id_RAB_ReleaseList,
+ { "id-RAB-ReleaseList", "ranap.id_RAB_ReleaseList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-ReleaseList", HFILL }},
+ { &hf_ranap_id_RAB_ReleasedItem,
+ { "id-RAB-ReleasedItem", "ranap.id_RAB_ReleasedItem",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-ReleasedItem", HFILL }},
+ { &hf_ranap_id_RAB_ReleasedList,
+ { "id-RAB-ReleasedList", "ranap.id_RAB_ReleasedList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-ReleasedList", HFILL }},
+ { &hf_ranap_id_RAB_ReleasedList_IuRelComp,
+ { "id-RAB-ReleasedList-IuRelComp", "ranap.id_RAB_ReleasedList_IuRelComp",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-ReleasedList-IuRelComp", HFILL }},
+ { &hf_ranap_id_RAB_RelocationReleaseItem,
+ { "id-RAB-RelocationReleaseItem", "ranap.id_RAB_RelocationReleaseItem",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-RelocationReleaseItem", HFILL }},
+ { &hf_ranap_id_RAB_RelocationReleaseList,
+ { "id-RAB-RelocationReleaseList", "ranap.id_RAB_RelocationReleaseList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-RelocationReleaseList", HFILL }},
+ { &hf_ranap_id_RAB_SetupItem_RelocReq,
+ { "id-RAB-SetupItem-RelocReq", "ranap.id_RAB_SetupItem_RelocReq",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-SetupItem-RelocReq", HFILL }},
+ { &hf_ranap_id_RAB_SetupItem_RelocReqAck,
+ { "id-RAB-SetupItem-RelocReqAck", "ranap.id_RAB_SetupItem_RelocReqAck",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-SetupItem-RelocReqAck", HFILL }},
+ { &hf_ranap_id_RAB_SetupList_RelocReq,
+ { "id-RAB-SetupList-RelocReq", "ranap.id_RAB_SetupList_RelocReq",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-SetupList-RelocReq", HFILL }},
+ { &hf_ranap_id_RAB_SetupList_RelocReqAck,
+ { "id-RAB-SetupList-RelocReqAck", "ranap.id_RAB_SetupList_RelocReqAck",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-SetupList-RelocReqAck", HFILL }},
+ { &hf_ranap_id_RAB_SetupOrModifiedItem,
+ { "id-RAB-SetupOrModifiedItem", "ranap.id_RAB_SetupOrModifiedItem",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-SetupOrModifiedItem", HFILL }},
+ { &hf_ranap_id_RAB_SetupOrModifiedList,
+ { "id-RAB-SetupOrModifiedList", "ranap.id_RAB_SetupOrModifiedList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-SetupOrModifiedList", HFILL }},
+ { &hf_ranap_id_RAB_SetupOrModifyList,
+ { "id-RAB-SetupOrModifyList", "ranap.id_RAB_SetupOrModifyList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-RAB-SetupOrModifyList", HFILL }},
+ { &hf_ranap_id_RAC,
+ { "id-RAC", "ranap.id_RAC",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-RAC", HFILL }},
+ { &hf_ranap_id_RAListofIdleModeUEs,
+ { "id-RAListofIdleModeUEs", "ranap.id_RAListofIdleModeUEs",
+ FT_UINT32, BASE_DEC, VALS(ranap_RAListofIdleModeUEs_vals), 0,
+ "Dymmy-ie-ids/id-RAListofIdleModeUEs", HFILL }},
+ { &hf_ranap_id_RedirectionCompleted,
+ { "id-RedirectionCompleted", "ranap.id_RedirectionCompleted",
+ FT_UINT32, BASE_DEC, VALS(ranap_RedirectionCompleted_vals), 0,
+ "Dymmy-ie-ids/id-RedirectionCompleted", HFILL }},
+ { &hf_ranap_id_RedirectionIndication,
+ { "id-RedirectionIndication", "ranap.id_RedirectionIndication",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-RedirectionIndication", HFILL }},
+ { &hf_ranap_id_RejectCauseValue,
+ { "id-RejectCauseValue", "ranap.id_RejectCauseValue",
+ FT_UINT32, BASE_DEC, VALS(ranap_RejectCauseValue_vals), 0,
+ "Dymmy-ie-ids/id-RejectCauseValue", HFILL }},
+ { &hf_ranap_id_RelocationType,
+ { "id-RelocationType", "ranap.id_RelocationType",
+ FT_UINT32, BASE_DEC, VALS(ranap_RelocationType_vals), 0,
+ "Dymmy-ie-ids/id-RelocationType", HFILL }},
+ { &hf_ranap_id_RequestType,
+ { "id-RequestType", "ranap.id_RequestType",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-RequestType", HFILL }},
+ { &hf_ranap_id_ResponseTime,
+ { "id-ResponseTime", "ranap.id_ResponseTime",
+ FT_UINT32, BASE_DEC, VALS(ranap_ResponseTime_vals), 0,
+ "Dymmy-ie-ids/id-ResponseTime", HFILL }},
+ { &hf_ranap_id_SAI,
+ { "id-SAI", "ranap.id_SAI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-SAI", HFILL }},
+ { &hf_ranap_id_SAPI,
+ { "id-SAPI", "ranap.id_SAPI",
+ FT_UINT32, BASE_DEC, VALS(ranap_SAPI_vals), 0,
+ "Dymmy-ie-ids/id-SAPI", HFILL }},
+ { &hf_ranap_id_SelectedPLMN_ID,
+ { "id-SelectedPLMN-ID", "ranap.id_SelectedPLMN_ID",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-SelectedPLMN-ID", HFILL }},
+ { &hf_ranap_id_SessionUpdateID,
+ { "id-SessionUpdateID", "ranap.id_SessionUpdateID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-SessionUpdateID", HFILL }},
+ { &hf_ranap_id_SNA_Access_Information,
+ { "id-SNA-Access-Information", "ranap.id_SNA_Access_Information",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-SNA-Access-Information", HFILL }},
+ { &hf_ranap_id_SourceID,
+ { "id-SourceID", "ranap.id_SourceID",
+ FT_UINT32, BASE_DEC, VALS(ranap_SourceID_vals), 0,
+ "Dymmy-ie-ids/id-SourceID", HFILL }},
+ { &hf_ranap_id_SourceRNC_ToTargetRNC_TransparentContainer,
+ { "id-SourceRNC-ToTargetRNC-TransparentContainer", "ranap.id_SourceRNC_ToTargetRNC_TransparentContainer",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-SourceRNC-ToTargetRNC-TransparentContainer", HFILL }},
+ { &hf_ranap_id_SourceRNC_PDCP_context_info,
+ { "id-SourceRNC-PDCP-context-info", "ranap.id_SourceRNC_PDCP_context_info",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-SourceRNC-PDCP-context-info", HFILL }},
+ { &hf_ranap_id_TargetID,
+ { "id-TargetID", "ranap.id_TargetID",
+ FT_UINT32, BASE_DEC, VALS(ranap_TargetID_vals), 0,
+ "Dymmy-ie-ids/id-TargetID", HFILL }},
+ { &hf_ranap_id_TargetRNC_ToSourceRNC_TransparentContainer,
+ { "id-TargetRNC-ToSourceRNC-TransparentContainer", "ranap.id_TargetRNC_ToSourceRNC_TransparentContainer",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-TargetRNC-ToSourceRNC-TransparentContainer", HFILL }},
+ { &hf_ranap_id_TemporaryUE_ID,
+ { "id-TemporaryUE-ID", "ranap.id_TemporaryUE_ID",
+ FT_UINT32, BASE_DEC, VALS(ranap_TemporaryUE_ID_vals), 0,
+ "Dymmy-ie-ids/id-TemporaryUE-ID", HFILL }},
+ { &hf_ranap_id_TMGI,
+ { "id-TMGI", "ranap.id_TMGI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-TMGI", HFILL }},
+ { &hf_ranap_id_TracePropagationParameters,
+ { "id-TracePropagationParameters", "ranap.id_TracePropagationParameters",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-TracePropagationParameters", HFILL }},
+ { &hf_ranap_id_TraceReference,
+ { "id-TraceReference", "ranap.id_TraceReference",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-TraceReference", HFILL }},
+ { &hf_ranap_id_TraceType,
+ { "id-TraceType", "ranap.id_TraceType",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-TraceType", HFILL }},
+ { &hf_ranap_id_TransportLayerAddress,
+ { "id-TransportLayerAddress", "ranap.id_TransportLayerAddress",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-TransportLayerAddress", HFILL }},
+ { &hf_ranap_id_TransportLayerInformation,
+ { "id-TransportLayerInformation", "ranap.id_TransportLayerInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-TransportLayerInformation", HFILL }},
+ { &hf_ranap_id_TriggerID,
+ { "id-TriggerID", "ranap.id_TriggerID",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "Dymmy-ie-ids/id-TriggerID", HFILL }},
+ { &hf_ranap_id_UE_ID,
+ { "id-UE-ID", "ranap.id_UE_ID",
+ FT_UINT32, BASE_DEC, VALS(ranap_UE_ID_vals), 0,
+ "Dymmy-ie-ids/id-UE-ID", HFILL }},
+ { &hf_ranap_id_UESBI_Iu,
+ { "id-UESBI-Iu", "ranap.id_UESBI_Iu",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-UESBI-Iu", HFILL }},
+ { &hf_ranap_id_UL_GTP_PDU_SequenceNumber,
+ { "id-UL-GTP-PDU-SequenceNumber", "ranap.id_UL_GTP_PDU_SequenceNumber",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-UL-GTP-PDU-SequenceNumber", HFILL }},
+ { &hf_ranap_id_UnsuccessfulLinkingList,
+ { "id-UnsuccessfulLinkingList", "ranap.id_UnsuccessfulLinkingList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-UnsuccessfulLinkingList", HFILL }},
+ { &hf_ranap_id_VerticalAccuracyCode,
+ { "id-VerticalAccuracyCode", "ranap.id_VerticalAccuracyCode",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-VerticalAccuracyCode", HFILL }},
+ { &hf_ranap_id_MBMSLinkingInformation,
+ { "id-MBMSLinkingInformation", "ranap.id_MBMSLinkingInformation",
+ FT_UINT32, BASE_DEC, VALS(ranap_MBMSLinkingInformation_vals), 0,
+ "Dymmy-ie-ids/id-MBMSLinkingInformation", HFILL }},
+ { &hf_ranap_id_AlternativeRABConfiguration,
+ { "id-AlternativeRABConfiguration", "ranap.id_AlternativeRABConfiguration",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-ie-ids/id-AlternativeRABConfiguration", HFILL }},
+ { &hf_ranap_id_AlternativeRABConfigurationRequest,
+ { "id-AlternativeRABConfigurationRequest", "ranap.id_AlternativeRABConfigurationRequest",
+ FT_UINT32, BASE_DEC, VALS(ranap_AlternativeRABConfigurationRequest_vals), 0,
+ "Dymmy-ie-ids/id-AlternativeRABConfigurationRequest", HFILL }},
+ { &hf_ranap_id_E_DCH_MAC_d_Flow_ID,
+ { "id-E-DCH-MAC-d-Flow-ID", "ranap.id_E_DCH_MAC_d_Flow_ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Dymmy-ie-ids/id-E-DCH-MAC-d-Flow-ID", HFILL }},
+ { &hf_ranap_id_RAB_SetupOrModifyItem1,
+ { "id-RAB-SetupOrModifyItem1", "ranap.id_RAB_SetupOrModifyItem1",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-firstvalue-ie-ids/id-RAB-SetupOrModifyItem1", HFILL }},
+ { &hf_ranap_id_RAB_SetupOrModifyItem2,
+ { "id-RAB-SetupOrModifyItem2", "ranap.id_RAB_SetupOrModifyItem2",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Dymmy-secondvalue-ie-ids/id-RAB-SetupOrModifyItem2", HFILL }},
+ { &hf_ranap_protocolIEs,
+ { "protocolIEs", "ranap.protocolIEs",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_protocolExtensions,
+ { "protocolExtensions", "ranap.protocolExtensions",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_rAB_ID,
+ { "rAB-ID", "ranap.rAB_ID",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_rab_dl_UnsuccessfullyTransmittedDataVolume,
+ { "dl-UnsuccessfullyTransmittedDataVolume", "ranap.dl_UnsuccessfullyTransmittedDataVolume",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "RAB-DataVolumeReportItem/dl-UnsuccessfullyTransmittedDataVolume", HFILL }},
+ { &hf_ranap_iE_Extensions,
+ { "iE-Extensions", "ranap.iE_Extensions",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_dL_GTP_PDU_SequenceNumber,
+ { "dL-GTP-PDU-SequenceNumber", "ranap.dL_GTP_PDU_SequenceNumber",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_uL_GTP_PDU_SequenceNumber,
+ { "uL-GTP-PDU-SequenceNumber", "ranap.uL_GTP_PDU_SequenceNumber",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_transportLayerAddress,
+ { "transportLayerAddress", "ranap.transportLayerAddress",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_iuTransportAssociation,
+ { "iuTransportAssociation", "ranap.iuTransportAssociation",
+ FT_UINT32, BASE_DEC, VALS(ranap_IuTransportAssociation_vals), 0,
+ "", HFILL }},
{ &hf_ranap_nAS_SynchronisationIndicator,
- { "nAS-SynchronisationIndicator",
- "ranap.nAS-SynchronisationIndicator",
- FT_UINT8, BASE_HEX, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_guaranteedBitRate_present,
- { "guaranteedBitRate",
- "ranap.guaranteedBitRate_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_transferDelay_present,
- { "transferDelay",
- "ranap.transferDelay_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_trafficHandlingPriority_present,
- { "trafficHandlingPriority",
- "ranap.trafficHandlingPriority_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_allocationOrRetentionPriority_present,
- { "allocationOrRetentionPriority",
- "ranap.allocationOrRetentionPriority_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_sourceStatisticsDescriptor_present,
- { "sourceStatisticsDescriptor",
- "ranap.sourceStatisticsDescriptor_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_relocationRequirement_present,
- { "relocationRequirement",
- "ranap.relocationRequirement_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_trafficClass,
- { "Traffic Class",
- "ranap.rab_Parameters.trafficClass",
- FT_UINT8, BASE_DEC, VALS(&ranap_trafficClass_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_rAB_AsymmetryIndicator,
- { "rAB_AsymmetryIndicator",
- "ranap.rab_Parameters.rAB_AsymmetryIndicator",
- FT_UINT8, BASE_DEC, VALS(&ranap_rAB_AsymmetryIndicator_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_maxBitrate,
- { "maxBitrate",
- "ranap.rab_Parameters.maxBitrate",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_guaranteedBitrate,
- { "guaranteedBitrate",
- "ranap.rab_Parameters.guaranteedBitrate",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_deliveryOrder,
- { "deliveryOrder",
- "ranap.rab_Parameters.deliveryOrder",
- FT_UINT8, BASE_DEC, VALS(&ranap_DeliveryOrder_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_maxSDU_Size,
- { "maxSDU_Size",
- "ranap.rab_Parameters.maxSDU_Size",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_sDU_ErrorRatio_mantissa,
- { "sDU_ErrorRatio: mantissa",
- "ranap.rab_Parameters.sDU_ErrorRatio.mantissa",
- FT_UINT8, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_sDU_ErrorRatio_exponent,
- { "sDU_ErrorRatio: exponent",
- "ranap.rab_Parameters.sDU_ErrorRatio.exponent",
- FT_UINT8, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_residualBitErrorRatio_mantissa,
- { "residualBitErrorRatio: mantissa",
- "ranap.rab_Parameters.residualBitErrorRatio.mantissa",
- FT_UINT8, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_residualBitErrorRatio_exponent,
- { "residualBitErrorRatio: exponent",
- "ranap.rab_Parameters.residualBitErrorRatio.exponent",
- FT_UINT8, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_deliveryOfErroneousSDU,
- { "deliveryOfErroneousSDU",
- "ranap.rab_Parameters.ranap_deliveryOfErroneousSDU",
- FT_UINT8, BASE_DEC, VALS(&ranap_deliveryOfErroneousSDU_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_subflowSDU_Size,
- { "subflowSDU_Size",
- "ranap.rab_Parameters.subflowSDU_Size",
- FT_UINT8, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_rAB_SubflowCombinationBitRate,
- { "rAB_SubflowCombinationBitRate",
- "ranap.rab_Parameters.rAB_SubflowCombinationBitRate",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_sDU_ErrorRatio_present,
- { "sDU_ErrorRatio",
- "ranap.sDU_ErrorRatio_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_sDU_FormatInformationParameters_present,
- { "sDU_FormatInformationParameters",
- "ranap.sDU_FormatInformationParameters_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_subflowSDU_Size_present,
- { "subflowSDU_Size",
- "ranap.subflowSDU_Size_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_rAB_SubflowCombinationBitRate_present,
- { "subflowSDU_Size",
- "ranap.rAB_SubflowCombinationBitRate_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_transferDelay,
- { "transferDelay",
- "ranap.rab_Parameters.transferDelay",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_trafficHandlingPriority,
- { "trafficHandlingPriority",
- "ranap.rab_Parameters.trafficHandlingPriority",
- FT_UINT8, BASE_DEC, VALS(&ranap_priority_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_priorityLevel,
- { "priorityLevel",
- "ranap.rab_Parameters.allocationOrRetentionPriority.priorityLevel",
- FT_UINT8, BASE_DEC, VALS(&ranap_priority_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_pre_emptionCapability,
- { "pre-emptionCapability",
- "ranap.rab_Parameters.allocationOrRetentionPriority.pre_emptionCapability",
- FT_UINT8, BASE_DEC, VALS(&ranap_pre_emptionCapability_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_pre_emptionVulnerability,
- { "pre-emptionVulnerability",
- "ranap.rab_Parameters.allocationOrRetentionPriority.pre_emptionVulnerability",
- FT_UINT8, BASE_DEC, VALS(&ranap_pre_emptionVulnerability_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_queuingAllowed,
- { "queuingAllowed",
- "ranap.rab_Parameters.allocationOrRetentionPriority.queuingAllowed",
- FT_UINT8, BASE_DEC, VALS(&ranap_queuingAllowed_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_sourceStatisticsDescriptor,
- { "sourceStatisticsDescriptor",
- "ranap.rab_Parameters.sourceStatisticsDescriptor",
- FT_UINT8, BASE_DEC, VALS(&ranap_sourceStatisticsDescriptor_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_relocationRequirement,
- { "relocationRequirement",
- "ranap.rab_Parameters.relocationRequirement",
- FT_UINT8, BASE_DEC, VALS(&ranap_relocationRequirement_values), 0x0,
- "", HFILL }
- },
+ { "nAS-SynchronisationIndicator", "ranap.nAS_SynchronisationIndicator",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_rAB_Parameters,
+ { "rAB-Parameters", "ranap.rAB_Parameters",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_dataVolumeReportingIndication,
+ { "dataVolumeReportingIndication", "ranap.dataVolumeReportingIndication",
+ FT_UINT32, BASE_DEC, VALS(ranap_DataVolumeReportingIndication_vals), 0,
+ "", HFILL }},
+ { &hf_ranap_pDP_TypeInformation,
+ { "pDP-TypeInformation", "ranap.pDP_TypeInformation",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_userPlaneInformation,
+ { "userPlaneInformation", "ranap.userPlaneInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_service_Handover,
+ { "service-Handover", "ranap.service_Handover",
+ FT_UINT32, BASE_DEC, VALS(ranap_Service_Handover_vals), 0,
+ "", HFILL }},
{ &hf_ranap_userPlaneMode,
- { "userPlaneMode",
- "ranap.userPlaneMode",
- FT_UINT8, BASE_DEC, VALS(&ranap_userPlaneMode_values), 0x0,
- "", HFILL }
- },
+ { "userPlaneMode", "ranap.userPlaneMode",
+ FT_UINT32, BASE_DEC, VALS(ranap_UserPlaneMode_vals), 0,
+ "UserPlaneInformation/userPlaneMode", HFILL }},
{ &hf_ranap_uP_ModeVersions,
- { "uP_ModeVersions",
- "ranap.uP_ModeVersions",
- FT_BYTES, BASE_NONE, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_number_of_ProtocolExtensionFields,
- { "Number of ProtocolExtensionFields",
- "ranap.number_of_ProtocolExtensionFields",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_ext_field_number_of_octets,
- { "Number of octets",
- "ranap.ProtocolExtensionFields.octets",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_transportLayerAddress_length,
- { "bit length of transportLayerAddress",
- "ranap.transportLayerAddress_length",
- FT_UINT8, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_transportLayerAddress,
- { "transportLayerAddress",
- "ranap.transportLayerAddress",
- FT_BYTES, BASE_NONE, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_gTP_TEI,
- { "gTP_TEI",
- "ranap.gTP_TEI",
- FT_BYTES, BASE_NONE, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_bindingID,
- { "bindingID",
- "ranap.bindingID",
- FT_BYTES, BASE_NONE, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_pDP_TypeInformation_present,
- { "pDP_TypeInformation",
- "ranap.pDP_TypeInformation_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_dataVolumeReportingIndication_present,
- { "dataVolumeReportingIndication",
- "ranap.dataVolumeReportingIndication_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_dl_GTP_PDU_SequenceNumber_present,
- { "dl_GTP_PDU_SequenceNumber",
- "ranap.dl_GTP_PDU_SequenceNumber_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_ul_GTP_PDU_SequenceNumber_present,
- { "ul_GTP_PDU_SequenceNumber",
- "ranap.ul_GTP_PDU_SequenceNumber_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_dl_N_PDU_SequenceNumber_present,
- { "dl_N_PDU_SequenceNumber",
- "ranap.dl_N_PDU_SequenceNumber_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_ul_N_PDU_SequenceNumber_present,
- { "ul_N_PDU_SequenceNumber",
- "ranap.ul_N_PDU_SequenceNumber_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_PDP_Type,
- { "PDP-Type",
- "ranap.RAB_SetupOrModifyItemSecond.PDP_Type",
- FT_UINT8, BASE_HEX, VALS(&ranap_PDP_Type_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_dataVolumeReportingIndication,
- { "dataVolumeReportingIndication",
- "ranap.RAB_SetupOrModifyItemSecond.dataVolumeReportingIndication",
- FT_UINT8, BASE_HEX, VALS(&ranap_dataVolumeReportingIndication_values), 0x0,
- "", HFILL }
- },
+ { "uP-ModeVersions", "ranap.uP_ModeVersions",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "UserPlaneInformation/uP-ModeVersions", HFILL }},
+ { &hf_ranap_joinedMBMSBearerService_IEs,
+ { "joinedMBMSBearerService-IEs", "ranap.joinedMBMSBearerService_IEs",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "CNMBMSLinkingInformation/joinedMBMSBearerService-IEs", HFILL }},
+ { &hf_ranap_JoinedMBMSBearerService_IEs_item,
+ { "Item", "ranap.JoinedMBMSBearerService_IEs_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "JoinedMBMSBearerService-IEs/_item", HFILL }},
+ { &hf_ranap_tMGI,
+ { "tMGI", "ranap.tMGI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_mBMS_PTP_RAB_ID,
+ { "mBMS-PTP-RAB-ID", "ranap.mBMS_PTP_RAB_ID",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "JoinedMBMSBearerService-IEs/_item/mBMS-PTP-RAB-ID", HFILL }},
+ { &hf_ranap_cause,
+ { "cause", "ranap.cause",
+ FT_UINT32, BASE_DEC, VALS(ranap_Cause_vals), 0,
+ "", HFILL }},
{ &hf_ranap_dl_GTP_PDU_SequenceNumber,
- { "dl_GTP_PDU_SequenceNumber",
- "ranap.RAB_SetupOrModifyItemSecond.dl_GTP_PDU_SequenceNumber",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
+ { "dl-GTP-PDU-SequenceNumber", "ranap.dl_GTP_PDU_SequenceNumber",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
{ &hf_ranap_ul_GTP_PDU_SequenceNumber,
- { "ul_GTP_PDU_SequenceNumber",
- "ranap.RAB_SetupOrModifyItemSecond.ul_GTP_PDU_SequenceNumber",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
+ { "ul-GTP-PDU-SequenceNumber", "ranap.ul_GTP_PDU_SequenceNumber",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
{ &hf_ranap_dl_N_PDU_SequenceNumber,
- { "ul_GTP_PDU_SequenceNumber",
- "ranap.RAB_SetupOrModifyItemSecond.ul_GTP_PDU_SequenceNumber",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
+ { "dl-N-PDU-SequenceNumber", "ranap.dl_N_PDU_SequenceNumber",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
{ &hf_ranap_ul_N_PDU_SequenceNumber,
- { "ul_GTP_PDU_SequenceNumber",
- "ranap.RAB_SetupOrModifyItemSecond.ul_GTP_PDU_SequenceNumber",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_cause_choice,
- { "cause choice",
- "ranap.cause_choice",
- FT_UINT8, BASE_HEX, VALS(&ranap_cause_choice_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_cause_value,
- { "cause value",
- "ranap.cause_value",
- FT_UINT8, BASE_DEC,VALS(&ranap_cause_value_str), 0x0,
- "", HFILL }
- },
- { &hf_ranap_transportLayerAddress_present,
- { "transportLayerAddress",
- "ranap.transportLayerAddress_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_iuTransportAssociation_present,
- { "iuTransportAssociation",
- "ranap.iuTransportAssociation_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_dl_dataVolumes_present,
- { "dl_dataVolumes",
- "ranap.dl_dataVolumes_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_dataVolumeReference_present,
- { "dataVolumeReference",
- "ranap.dataVolumeReference_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
+ { "ul-N-PDU-SequenceNumber", "ranap.ul_N_PDU_SequenceNumber",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_iuSigConId,
+ { "iuSigConId", "ranap.iuSigConId",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_transportLayerInformation,
+ { "transportLayerInformation", "ranap.transportLayerInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "RAB-SetupOrModifyItemFirst/transportLayerInformation", HFILL }},
+ { &hf_ranap_dl_dataVolumes,
+ { "dl-dataVolumes", "ranap.dl_dataVolumes",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_DataVolumeList_item,
+ { "Item", "ranap.DataVolumeList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "DataVolumeList/_item", HFILL }},
{ &hf_ranap_dl_UnsuccessfullyTransmittedDataVolume,
- { "dl-UnsuccessfullyTransmittedDataVolume",
- "ranap.dl-UnsuccessfullyTransmittedDataVolume",
- FT_UINT32, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
+ { "dl-UnsuccessfullyTransmittedDataVolume", "ranap.dl_UnsuccessfullyTransmittedDataVolume",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "DataVolumeList/_item/dl-UnsuccessfullyTransmittedDataVolume", HFILL }},
{ &hf_ranap_dataVolumeReference,
- { "dataVolumeReference",
- "ranap.dataVolumeReference",
- FT_UINT8, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_procedureCode_present,
- { "procedureCode",
- "ranap.procedureCode_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_triggeringMessage_present,
- { "triggeringMessage",
- "ranap.triggeringMessage_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_procedureCriticality_present,
- { "procedureCriticality",
- "ranap.procedureCriticality_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_iEsCriticalityDiagnostics_present,
- { "iEsCriticalityDiagnostics",
- "ranap.iEsCriticalityDiagnostics_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
+ { "dataVolumeReference", "ranap.dataVolumeReference",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "DataVolumeList/_item/dataVolumeReference", HFILL }},
+ { &hf_ranap_gERAN_Classmark,
+ { "gERAN-Classmark", "ranap.gERAN_Classmark",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "GERAN-Iumode-RAB-Failed-RABAssgntResponse-Item/gERAN-Classmark", HFILL }},
+ { &hf_ranap_privateIEs,
+ { "privateIEs", "ranap.privateIEs",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "PrivateMessage/privateIEs", HFILL }},
+ { &hf_ranap_nAS_PDU,
+ { "nAS-PDU", "ranap.nAS_PDU",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "DirectTransferInformationItem-RANAP-RelocInf/nAS-PDU", HFILL }},
+ { &hf_ranap_sAPI,
+ { "sAPI", "ranap.sAPI",
+ FT_UINT32, BASE_DEC, VALS(ranap_SAPI_vals), 0,
+ "DirectTransferInformationItem-RANAP-RelocInf/sAPI", HFILL }},
+ { &hf_ranap_cN_DomainIndicator,
+ { "cN-DomainIndicator", "ranap.cN_DomainIndicator",
+ FT_UINT32, BASE_DEC, VALS(ranap_CN_DomainIndicator_vals), 0,
+ "DirectTransferInformationItem-RANAP-RelocInf/cN-DomainIndicator", HFILL }},
+ { &hf_ranap_requested_RAB_Parameter_Values,
+ { "requested-RAB-Parameter-Values", "ranap.requested_RAB_Parameter_Values",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "RAB-ModifyItem/requested-RAB-Parameter-Values", HFILL }},
+ { &hf_ranap_LeftMBMSBearerService_IEs_item,
+ { "Item", "ranap.LeftMBMSBearerService_IEs_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "LeftMBMSBearerService-IEs/_item", HFILL }},
+ { &hf_ranap_UnsuccessfulLinking_IEs_item,
+ { "Item", "ranap.UnsuccessfulLinking_IEs_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "UnsuccessfulLinking-IEs/_item", HFILL }},
+ { &hf_ranap_priorityLevel,
+ { "priorityLevel", "ranap.priorityLevel",
+ FT_UINT32, BASE_DEC, VALS(ranap_PriorityLevel_vals), 0,
+ "AllocationOrRetentionPriority/priorityLevel", HFILL }},
+ { &hf_ranap_pre_emptionCapability,
+ { "pre-emptionCapability", "ranap.pre_emptionCapability",
+ FT_UINT32, BASE_DEC, VALS(ranap_Pre_emptionCapability_vals), 0,
+ "AllocationOrRetentionPriority/pre-emptionCapability", HFILL }},
+ { &hf_ranap_pre_emptionVulnerability,
+ { "pre-emptionVulnerability", "ranap.pre_emptionVulnerability",
+ FT_UINT32, BASE_DEC, VALS(ranap_Pre_emptionVulnerability_vals), 0,
+ "AllocationOrRetentionPriority/pre-emptionVulnerability", HFILL }},
+ { &hf_ranap_queuingAllowed,
+ { "queuingAllowed", "ranap.queuingAllowed",
+ FT_UINT32, BASE_DEC, VALS(ranap_QueuingAllowed_vals), 0,
+ "AllocationOrRetentionPriority/queuingAllowed", HFILL }},
+ { &hf_ranap_altMaxBitrateInf,
+ { "altMaxBitrateInf", "ranap.altMaxBitrateInf",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Alt-RAB-Parameters/altMaxBitrateInf", HFILL }},
+ { &hf_ranap_altGuaranteedBitRateInf,
+ { "altGuaranteedBitRateInf", "ranap.altGuaranteedBitRateInf",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Alt-RAB-Parameters/altGuaranteedBitRateInf", HFILL }},
+ { &hf_ranap_altGuaranteedBitrateType,
+ { "altGuaranteedBitrateType", "ranap.altGuaranteedBitrateType",
+ FT_UINT32, BASE_DEC, VALS(ranap_Alt_RAB_Parameter_GuaranteedBitrateType_vals), 0,
+ "Alt-RAB-Parameter-GuaranteedBitrateInf/altGuaranteedBitrateType", HFILL }},
+ { &hf_ranap_altGuaranteedBitrates,
+ { "altGuaranteedBitrates", "ranap.altGuaranteedBitrates",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Alt-RAB-Parameter-GuaranteedBitrateInf/altGuaranteedBitrates", HFILL }},
+ { &hf_ranap_Alt_RAB_Parameter_GuaranteedBitrates_item,
+ { "Item", "ranap.Alt_RAB_Parameter_GuaranteedBitrates_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Alt-RAB-Parameter-GuaranteedBitrates/_item", HFILL }},
+ { &hf_ranap_Alt_RAB_Parameter_GuaranteedBitrateList_item,
+ { "Item", "ranap.Alt_RAB_Parameter_GuaranteedBitrateList_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Alt-RAB-Parameter-GuaranteedBitrateList/_item", HFILL }},
+ { &hf_ranap_altMaxBitrateType,
+ { "altMaxBitrateType", "ranap.altMaxBitrateType",
+ FT_UINT32, BASE_DEC, VALS(ranap_Alt_RAB_Parameter_MaxBitrateType_vals), 0,
+ "Alt-RAB-Parameter-MaxBitrateInf/altMaxBitrateType", HFILL }},
+ { &hf_ranap_altMaxBitrates,
+ { "altMaxBitrates", "ranap.altMaxBitrates",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Alt-RAB-Parameter-MaxBitrateInf/altMaxBitrates", HFILL }},
+ { &hf_ranap_Alt_RAB_Parameter_MaxBitrates_item,
+ { "Item", "ranap.Alt_RAB_Parameter_MaxBitrates_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Alt-RAB-Parameter-MaxBitrates/_item", HFILL }},
+ { &hf_ranap_Alt_RAB_Parameter_MaxBitrateList_item,
+ { "Item", "ranap.Alt_RAB_Parameter_MaxBitrateList_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Alt-RAB-Parameter-MaxBitrateList/_item", HFILL }},
+ { &hf_ranap_sAI,
+ { "sAI", "ranap.sAI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_geographicalArea,
+ { "geographicalArea", "ranap.geographicalArea",
+ FT_UINT32, BASE_DEC, VALS(ranap_GeographicalArea_vals), 0,
+ "AreaIdentity/geographicalArea", HFILL }},
+ { &hf_ranap_assMaxBitrateInf,
+ { "assMaxBitrateInf", "ranap.assMaxBitrateInf",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Ass-RAB-Parameters/assMaxBitrateInf", HFILL }},
+ { &hf_ranap_assGuaranteedBitRateInf,
+ { "assGuaranteedBitRateInf", "ranap.assGuaranteedBitRateInf",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Ass-RAB-Parameters/assGuaranteedBitRateInf", HFILL }},
+ { &hf_ranap_Ass_RAB_Parameter_GuaranteedBitrateList_item,
+ { "Item", "ranap.Ass_RAB_Parameter_GuaranteedBitrateList_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Ass-RAB-Parameter-GuaranteedBitrateList/_item", HFILL }},
+ { &hf_ranap_Ass_RAB_Parameter_MaxBitrateList_item,
+ { "Item", "ranap.Ass_RAB_Parameter_MaxBitrateList_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Ass-RAB-Parameter-MaxBitrateList/_item", HFILL }},
+ { &hf_ranap_AuthorisedPLMNs_item,
+ { "Item", "ranap.AuthorisedPLMNs_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "AuthorisedPLMNs/_item", HFILL }},
+ { &hf_ranap_pLMNidentity,
+ { "pLMNidentity", "ranap.pLMNidentity",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_authorisedSNAsList,
+ { "authorisedSNAsList", "ranap.authorisedSNAsList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "AuthorisedPLMNs/_item/authorisedSNAsList", HFILL }},
+ { &hf_ranap_AuthorisedSNAs_item,
+ { "Item", "ranap.AuthorisedSNAs_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "AuthorisedSNAs/_item", HFILL }},
+ { &hf_ranap_cipheringKeyFlag,
+ { "cipheringKeyFlag", "ranap.cipheringKeyFlag",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "BroadcastAssistanceDataDecipheringKeys/cipheringKeyFlag", HFILL }},
+ { &hf_ranap_currentDecipheringKey,
+ { "currentDecipheringKey", "ranap.currentDecipheringKey",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "BroadcastAssistanceDataDecipheringKeys/currentDecipheringKey", HFILL }},
+ { &hf_ranap_nextDecipheringKey,
+ { "nextDecipheringKey", "ranap.nextDecipheringKey",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "BroadcastAssistanceDataDecipheringKeys/nextDecipheringKey", HFILL }},
+ { &hf_ranap_radioNetwork,
+ { "radioNetwork", "ranap.radioNetwork",
+ FT_UINT32, BASE_DEC, VALS(ranap_CauseRadioNetwork_vals), 0,
+ "Cause/radioNetwork", HFILL }},
+ { &hf_ranap_transmissionNetwork,
+ { "transmissionNetwork", "ranap.transmissionNetwork",
+ FT_UINT32, BASE_DEC, VALS(ranap_CauseTransmissionNetwork_vals), 0,
+ "Cause/transmissionNetwork", HFILL }},
+ { &hf_ranap_nAS,
+ { "nAS", "ranap.nAS",
+ FT_UINT32, BASE_DEC, VALS(ranap_CauseNAS_vals), 0,
+ "Cause/nAS", HFILL }},
+ { &hf_ranap_protocol,
+ { "protocol", "ranap.protocol",
+ FT_UINT32, BASE_DEC, VALS(ranap_CauseProtocol_vals), 0,
+ "Cause/protocol", HFILL }},
+ { &hf_ranap_misc,
+ { "misc", "ranap.misc",
+ FT_UINT32, BASE_DEC, VALS(ranap_CauseMisc_vals), 0,
+ "Cause/misc", HFILL }},
+ { &hf_ranap_non_Standard,
+ { "non-Standard", "ranap.non_Standard",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Cause/non-Standard", HFILL }},
+ { &hf_ranap_radioNetworkExtension,
+ { "radioNetworkExtension", "ranap.radioNetworkExtension",
+ FT_UINT32, BASE_DEC, VALS(ranap_CauseRadioNetworkExtension_vals), 0,
+ "Cause/radioNetworkExtension", HFILL }},
+ { &hf_ranap_cell_Capacity_Class_Value,
+ { "cell-Capacity-Class-Value", "ranap.cell_Capacity_Class_Value",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "CellLoadInformation/cell-Capacity-Class-Value", HFILL }},
+ { &hf_ranap_loadValue,
+ { "loadValue", "ranap.loadValue",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "CellLoadInformation/loadValue", HFILL }},
+ { &hf_ranap_rTLoadValue,
+ { "rTLoadValue", "ranap.rTLoadValue",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "CellLoadInformation/rTLoadValue", HFILL }},
+ { &hf_ranap_nRTLoadInformationValue,
+ { "nRTLoadInformationValue", "ranap.nRTLoadInformationValue",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "CellLoadInformation/nRTLoadInformationValue", HFILL }},
+ { &hf_ranap_sourceCellID,
+ { "sourceCellID", "ranap.sourceCellID",
+ FT_UINT32, BASE_DEC, VALS(ranap_SourceCellID_vals), 0,
+ "CellLoadInformationGroup/sourceCellID", HFILL }},
+ { &hf_ranap_uplinkCellLoadInformation,
+ { "uplinkCellLoadInformation", "ranap.uplinkCellLoadInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_downlinkCellLoadInformation,
+ { "downlinkCellLoadInformation", "ranap.downlinkCellLoadInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "", HFILL }},
{ &hf_ranap_triggeringMessage,
- { "triggeringMessage",
- "ranap.triggeringMessage",
- FT_UINT8, BASE_HEX, VALS(&ranap_pdu_index_values), 0x0,
- "", HFILL }
- },
+ { "triggeringMessage", "ranap.triggeringMessage",
+ FT_UINT32, BASE_DEC, VALS(ranap_TriggeringMessage_vals), 0,
+ "CriticalityDiagnostics/triggeringMessage", HFILL }},
{ &hf_ranap_procedureCriticality,
- { "procedureCriticality",
- "ranap.procedureCriticality",
- FT_UINT8, BASE_HEX, VALS(&ranap_criticality_values), 0x0,
- "", HFILL }
- },
+ { "procedureCriticality", "ranap.procedureCriticality",
+ FT_UINT32, BASE_DEC, VALS(ranap_Criticality_vals), 0,
+ "CriticalityDiagnostics/procedureCriticality", HFILL }},
+ { &hf_ranap_iEsCriticalityDiagnostics,
+ { "iEsCriticalityDiagnostics", "ranap.iEsCriticalityDiagnostics",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "CriticalityDiagnostics/iEsCriticalityDiagnostics", HFILL }},
+ { &hf_ranap_CriticalityDiagnostics_IE_List_item,
+ { "Item", "ranap.CriticalityDiagnostics_IE_List_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "CriticalityDiagnostics-IE-List/_item", HFILL }},
{ &hf_ranap_iECriticality,
- { "iECriticality",
- "ranap.iECriticality",
- FT_UINT8, BASE_HEX, VALS(&ranap_criticality_values), 0x0,
- "", HFILL }
- },
+ { "iECriticality", "ranap.iECriticality",
+ FT_UINT32, BASE_DEC, VALS(ranap_Criticality_vals), 0,
+ "CriticalityDiagnostics-IE-List/_item/iECriticality", HFILL }},
+ { &hf_ranap_iE_ID,
+ { "iE-ID", "ranap.iE_ID",
+ FT_UINT32, BASE_DEC, VALS(ranap_ProtocolIE_ID_vals), 0,
+ "", HFILL }},
{ &hf_ranap_repetitionNumber,
- { "repetitionNumber",
- "ranap.repetitionNumber",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_num_of_CriticalityDiagnostics_IEs,
- { "Number of CriticalityDiagnostics-IEs",
- "ranap.num_of_CriticalityDiagnostics_IEs",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_repetitionNumber_present,
- { "repetitionNumber",
- "ranap.repetitionNumber_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_dl_UnsuccessfullyTransmittedDataVolume_present,
- { "dl-UnsuccessfullyTransmittedDataVolume",
- "ranap.dl_UnsuccessfullyTransmittedDataVolume_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_CN_DomainIndicator,
- { "CN-DomainIndicator",
- "ranap.CN_DomainIndicator",
- FT_UINT8, BASE_HEX, VALS(&ranap_CN_DomainIndicator_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_service_Handover,
- { "service-Handover",
- "ranap.service_Handover",
- FT_UINT8, BASE_HEX, VALS(&ranap_service_Handover_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_IuSigConId,
- { "IuSigConId",
- "ranap.IuSigConId",
- FT_UINT24, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_SAPI,
- { "SAPI",
- "ranap.sapi",
- FT_UINT8, BASE_HEX, VALS(&ranap_SAPI_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_msg_extension_present,
- { "Message Extension",
- "ranap.msg_extension_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_ProtocolExtensionContainer_present,
- { "ProtocolExtensionContainer",
- "ranap.ProtocolExtensionContainer_present",
- FT_UINT8, BASE_HEX, VALS(&ranap_presence_values), 0x0,
- "", HFILL }
- },
- { &hf_ranap_nas_pdu_length,
- { "length of NAS-PDU",
- "ranap.nas_pdu_length",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- "", HFILL }
- },
- { &hf_ranap_RNC_ID,
- { "RNC ID",
- "ranap.RNC_ID",
- FT_UINT16, BASE_DEC, NULL, 0x0fff,
- "", HFILL }
- }
- };
+ { "repetitionNumber", "ranap.repetitionNumber",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "CriticalityDiagnostics-IE-List/_item/repetitionNumber", HFILL }},
+ { &hf_ranap_MessageStructure_item,
+ { "Item", "ranap.MessageStructure_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "MessageStructure/_item", HFILL }},
+ { &hf_ranap_item_repetitionNumber,
+ { "repetitionNumber", "ranap.repetitionNumber",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "MessageStructure/_item/repetitionNumber", HFILL }},
+ { &hf_ranap_lAC,
+ { "lAC", "ranap.lAC",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_cI,
+ { "cI", "ranap.cI",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_newRAListofIdleModeUEs,
+ { "newRAListofIdleModeUEs", "ranap.newRAListofIdleModeUEs",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "DeltaRAListofIdleModeUEs/newRAListofIdleModeUEs", HFILL }},
+ { &hf_ranap_rAListwithNoIdleModeUEsAnyMore,
+ { "rAListwithNoIdleModeUEsAnyMore", "ranap.rAListwithNoIdleModeUEsAnyMore",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "DeltaRAListofIdleModeUEs/rAListwithNoIdleModeUEsAnyMore", HFILL }},
+ { &hf_ranap_NewRAListofIdleModeUEs_item,
+ { "Item", "ranap.NewRAListofIdleModeUEs_item",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "NewRAListofIdleModeUEs/_item", HFILL }},
+ { &hf_ranap_RAListwithNoIdleModeUEsAnyMore_item,
+ { "Item", "ranap.RAListwithNoIdleModeUEsAnyMore_item",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "RAListwithNoIdleModeUEsAnyMore/_item", HFILL }},
+ { &hf_ranap_encryptionpermittedAlgorithms,
+ { "encryptionpermittedAlgorithms", "ranap.encryptionpermittedAlgorithms",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "EncryptionInformation/encryptionpermittedAlgorithms", HFILL }},
+ { &hf_ranap_encryptionkey,
+ { "encryptionkey", "ranap.encryptionkey",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "EncryptionInformation/encryptionkey", HFILL }},
+ { &hf_ranap_iMEIlist,
+ { "iMEIlist", "ranap.iMEIlist",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "EquipmentsToBeTraced/iMEIlist", HFILL }},
+ { &hf_ranap_iMEISVlist,
+ { "iMEISVlist", "ranap.iMEISVlist",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "EquipmentsToBeTraced/iMEISVlist", HFILL }},
+ { &hf_ranap_iMEIgroup,
+ { "iMEIgroup", "ranap.iMEIgroup",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "EquipmentsToBeTraced/iMEIgroup", HFILL }},
+ { &hf_ranap_iMEISVgroup,
+ { "iMEISVgroup", "ranap.iMEISVgroup",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "EquipmentsToBeTraced/iMEISVgroup", HFILL }},
+ { &hf_ranap_point,
+ { "point", "ranap.point",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "GeographicalArea/point", HFILL }},
+ { &hf_ranap_pointWithUnCertainty,
+ { "pointWithUnCertainty", "ranap.pointWithUnCertainty",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "GeographicalArea/pointWithUnCertainty", HFILL }},
+ { &hf_ranap_polygon,
+ { "polygon", "ranap.polygon",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "GeographicalArea/polygon", HFILL }},
+ { &hf_ranap_pointWithUncertaintyEllipse,
+ { "pointWithUncertaintyEllipse", "ranap.pointWithUncertaintyEllipse",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "GeographicalArea/pointWithUncertaintyEllipse", HFILL }},
+ { &hf_ranap_pointWithAltitude,
+ { "pointWithAltitude", "ranap.pointWithAltitude",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "GeographicalArea/pointWithAltitude", HFILL }},
+ { &hf_ranap_pointWithAltitudeAndUncertaintyEllipsoid,
+ { "pointWithAltitudeAndUncertaintyEllipsoid", "ranap.pointWithAltitudeAndUncertaintyEllipsoid",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "GeographicalArea/pointWithAltitudeAndUncertaintyEllipsoid", HFILL }},
+ { &hf_ranap_ellipsoidArc,
+ { "ellipsoidArc", "ranap.ellipsoidArc",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "GeographicalArea/ellipsoidArc", HFILL }},
+ { &hf_ranap_latitudeSign,
+ { "latitudeSign", "ranap.latitudeSign",
+ FT_UINT32, BASE_DEC, VALS(ranap_T_latitudeSign_vals), 0,
+ "GeographicalCoordinates/latitudeSign", HFILL }},
+ { &hf_ranap_latitude,
+ { "latitude", "ranap.latitude",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "GeographicalCoordinates/latitude", HFILL }},
+ { &hf_ranap_longitude,
+ { "longitude", "ranap.longitude",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "GeographicalCoordinates/longitude", HFILL }},
+ { &hf_ranap_directionOfAltitude,
+ { "directionOfAltitude", "ranap.directionOfAltitude",
+ FT_UINT32, BASE_DEC, VALS(ranap_T_directionOfAltitude_vals), 0,
+ "GA-AltitudeAndDirection/directionOfAltitude", HFILL }},
+ { &hf_ranap_altitude,
+ { "altitude", "ranap.altitude",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "GA-AltitudeAndDirection/altitude", HFILL }},
+ { &hf_ranap_geographicalCoordinates,
+ { "geographicalCoordinates", "ranap.geographicalCoordinates",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_innerRadius,
+ { "innerRadius", "ranap.innerRadius",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "GA-EllipsoidArc/innerRadius", HFILL }},
+ { &hf_ranap_uncertaintyRadius,
+ { "uncertaintyRadius", "ranap.uncertaintyRadius",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "GA-EllipsoidArc/uncertaintyRadius", HFILL }},
+ { &hf_ranap_offsetAngle,
+ { "offsetAngle", "ranap.offsetAngle",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "GA-EllipsoidArc/offsetAngle", HFILL }},
+ { &hf_ranap_includedAngle,
+ { "includedAngle", "ranap.includedAngle",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "GA-EllipsoidArc/includedAngle", HFILL }},
+ { &hf_ranap_confidence,
+ { "confidence", "ranap.confidence",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_altitudeAndDirection,
+ { "altitudeAndDirection", "ranap.altitudeAndDirection",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_uncertaintyEllipse,
+ { "uncertaintyEllipse", "ranap.uncertaintyEllipse",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_uncertaintyAltitude,
+ { "uncertaintyAltitude", "ranap.uncertaintyAltitude",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "GA-PointWithAltitudeAndUncertaintyEllipsoid/uncertaintyAltitude", HFILL }},
+ { &hf_ranap_uncertaintyCode,
+ { "uncertaintyCode", "ranap.uncertaintyCode",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "GA-PointWithUnCertainty/uncertaintyCode", HFILL }},
+ { &hf_ranap_GA_Polygon_item,
+ { "Item", "ranap.GA_Polygon_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "GA-Polygon/_item", HFILL }},
+ { &hf_ranap_uncertaintySemi_major,
+ { "uncertaintySemi-major", "ranap.uncertaintySemi_major",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "GA-UncertaintyEllipse/uncertaintySemi-major", HFILL }},
+ { &hf_ranap_uncertaintySemi_minor,
+ { "uncertaintySemi-minor", "ranap.uncertaintySemi_minor",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "GA-UncertaintyEllipse/uncertaintySemi-minor", HFILL }},
+ { &hf_ranap_orientationOfMajorAxis,
+ { "orientationOfMajorAxis", "ranap.orientationOfMajorAxis",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "GA-UncertaintyEllipse/orientationOfMajorAxis", HFILL }},
+ { &hf_ranap_lAI,
+ { "lAI", "ranap.lAI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_rAC,
+ { "rAC", "ranap.rAC",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_cN_ID,
+ { "cN-ID", "ranap.cN_ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "GlobalCN-ID/cN-ID", HFILL }},
+ { &hf_ranap_rNC_ID,
+ { "rNC-ID", "ranap.rNC_ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_iMEI,
+ { "iMEI", "ranap.iMEI",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "IMEIGroup/iMEI", HFILL }},
+ { &hf_ranap_iMEIMask,
+ { "iMEIMask", "ranap.iMEIMask",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "IMEIGroup/iMEIMask", HFILL }},
+ { &hf_ranap_IMEIList_item,
+ { "Item", "ranap.IMEIList_item",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "IMEIList/_item", HFILL }},
+ { &hf_ranap_iMEISV,
+ { "iMEISV", "ranap.iMEISV",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "IMEISVGroup/iMEISV", HFILL }},
+ { &hf_ranap_iMEISVMask,
+ { "iMEISVMask", "ranap.iMEISVMask",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "IMEISVGroup/iMEISVMask", HFILL }},
+ { &hf_ranap_IMEISVList_item,
+ { "Item", "ranap.IMEISVList_item",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "IMEISVList/_item", HFILL }},
+ { &hf_ranap_requestedMBMSIPMulticastAddressandAPNRequest,
+ { "requestedMBMSIPMulticastAddressandAPNRequest", "ranap.requestedMBMSIPMulticastAddressandAPNRequest",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "InformationRequested/requestedMBMSIPMulticastAddressandAPNRequest", HFILL }},
+ { &hf_ranap_requestedMulticastServiceList,
+ { "requestedMulticastServiceList", "ranap.requestedMulticastServiceList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "InformationRequested/requestedMulticastServiceList", HFILL }},
+ { &hf_ranap_mBMSIPMulticastAddressandAPNRequest,
+ { "mBMSIPMulticastAddressandAPNRequest", "ranap.mBMSIPMulticastAddressandAPNRequest",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "InformationRequestType/mBMSIPMulticastAddressandAPNRequest", HFILL }},
+ { &hf_ranap_permanentNAS_UE_ID,
+ { "permanentNAS-UE-ID", "ranap.permanentNAS_UE_ID",
+ FT_UINT32, BASE_DEC, VALS(ranap_PermanentNAS_UE_ID_vals), 0,
+ "InformationRequestType/permanentNAS-UE-ID", HFILL }},
+ { &hf_ranap_rNCTraceInformation,
+ { "rNCTraceInformation", "ranap.rNCTraceInformation",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "InformationTransferType/rNCTraceInformation", HFILL }},
+ { &hf_ranap_permittedAlgorithms,
+ { "permittedAlgorithms", "ranap.permittedAlgorithms",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "IntegrityProtectionInformation/permittedAlgorithms", HFILL }},
+ { &hf_ranap_key,
+ { "key", "ranap.key",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "IntegrityProtectionInformation/key", HFILL }},
+ { &hf_ranap_rIM_Transfer,
+ { "rIM-Transfer", "ranap.rIM_Transfer",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "InterSystemInformationTransferType/rIM-Transfer", HFILL }},
+ { &hf_ranap_gTP_TEI,
+ { "gTP-TEI", "ranap.gTP_TEI",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "IuTransportAssociation/gTP-TEI", HFILL }},
+ { &hf_ranap_bindingID,
+ { "bindingID", "ranap.bindingID",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "IuTransportAssociation/bindingID", HFILL }},
+ { &hf_ranap_LA_LIST_item,
+ { "Item", "ranap.LA_LIST_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "LA-LIST/_item", HFILL }},
+ { &hf_ranap_listOF_SNAs,
+ { "listOF-SNAs", "ranap.listOF_SNAs",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "LA-LIST/_item/listOF-SNAs", HFILL }},
+ { &hf_ranap_ageOfSAI,
+ { "ageOfSAI", "ranap.ageOfSAI",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "LastKnownServiceArea/ageOfSAI", HFILL }},
+ { &hf_ranap_ListOF_SNAs_item,
+ { "Item", "ranap.ListOF_SNAs_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "ListOF-SNAs/_item", HFILL }},
+ { &hf_ranap_ListOfInterfacesToTrace_item,
+ { "Item", "ranap.ListOfInterfacesToTrace_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ListOfInterfacesToTrace/_item", HFILL }},
+ { &hf_ranap_interface,
+ { "interface", "ranap.interface",
+ FT_UINT32, BASE_DEC, VALS(ranap_T_interface_vals), 0,
+ "InterfacesToTraceItem/interface", HFILL }},
+ { &hf_ranap_requestedLocationRelatedDataType,
+ { "requestedLocationRelatedDataType", "ranap.requestedLocationRelatedDataType",
+ FT_UINT32, BASE_DEC, VALS(ranap_RequestedLocationRelatedDataType_vals), 0,
+ "LocationRelatedDataRequestType/requestedLocationRelatedDataType", HFILL }},
+ { &hf_ranap_requestedGPSAssistanceData,
+ { "requestedGPSAssistanceData", "ranap.requestedGPSAssistanceData",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "LocationRelatedDataRequestType/requestedGPSAssistanceData", HFILL }},
+ { &hf_ranap_MBMSIPMulticastAddressandAPNRequest_item,
+ { "Item", "ranap.MBMSIPMulticastAddressandAPNRequest_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "MBMSIPMulticastAddressandAPNRequest/_item", HFILL }},
+ { &hf_ranap_mBMSServiceAreaList,
+ { "mBMSServiceAreaList", "ranap.mBMSServiceAreaList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "MBMSServiceArea/mBMSServiceAreaList", HFILL }},
+ { &hf_ranap_MBMSServiceAreaList_item,
+ { "Item", "ranap.MBMSServiceAreaList_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "MBMSServiceAreaList/_item", HFILL }},
+ { &hf_ranap_rAI,
+ { "rAI", "ranap.rAI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "PagingAreaID/rAI", HFILL }},
+ { &hf_ranap_PDP_TypeInformation_item,
+ { "Item", "ranap.PDP_TypeInformation_item",
+ FT_UINT32, BASE_DEC, VALS(ranap_PDP_Type_vals), 0,
+ "PDP-TypeInformation/_item", HFILL }},
+ { &hf_ranap_iMSI,
+ { "iMSI", "ranap.iMSI",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "PermanentNAS-UE-ID/iMSI", HFILL }},
+ { &hf_ranap_PermittedEncryptionAlgorithms_item,
+ { "Item", "ranap.PermittedEncryptionAlgorithms_item",
+ FT_UINT32, BASE_DEC, VALS(ranap_EncryptionAlgorithm_vals), 0,
+ "PermittedEncryptionAlgorithms/_item", HFILL }},
+ { &hf_ranap_PermittedIntegrityProtectionAlgorithms_item,
+ { "Item", "ranap.PermittedIntegrityProtectionAlgorithms_item",
+ FT_UINT32, BASE_DEC, VALS(ranap_IntegrityProtectionAlgorithm_vals), 0,
+ "PermittedIntegrityProtectionAlgorithms/_item", HFILL }},
+ { &hf_ranap_PLMNs_in_shared_network_item,
+ { "Item", "ranap.PLMNs_in_shared_network_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "PLMNs-in-shared-network/_item", HFILL }},
+ { &hf_ranap_lA_LIST,
+ { "lA-LIST", "ranap.lA_LIST",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "PLMNs-in-shared-network/_item/lA-LIST", HFILL }},
+ { &hf_ranap_PositioningDataSet_item,
+ { "Item", "ranap.PositioningDataSet_item",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "PositioningDataSet/_item", HFILL }},
+ { &hf_ranap_positioningDataDiscriminator,
+ { "positioningDataDiscriminator", "ranap.positioningDataDiscriminator",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "PositionData/positioningDataDiscriminator", HFILL }},
+ { &hf_ranap_positioningDataSet,
+ { "positioningDataSet", "ranap.positioningDataSet",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "PositionData/positioningDataSet", HFILL }},
+ { &hf_ranap_shared_network_information,
+ { "shared-network-information", "ranap.shared_network_information",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ProvidedData/shared-network-information", HFILL }},
+ { &hf_ranap_RAB_Parameter_GuaranteedBitrateList_item,
+ { "Item", "ranap.RAB_Parameter_GuaranteedBitrateList_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "RAB-Parameter-GuaranteedBitrateList/_item", HFILL }},
+ { &hf_ranap_RAB_Parameter_MaxBitrateList_item,
+ { "Item", "ranap.RAB_Parameter_MaxBitrateList_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "RAB-Parameter-MaxBitrateList/_item", HFILL }},
+ { &hf_ranap_trafficClass,
+ { "trafficClass", "ranap.trafficClass",
+ FT_UINT32, BASE_DEC, VALS(ranap_TrafficClass_vals), 0,
+ "RAB-Parameters/trafficClass", HFILL }},
+ { &hf_ranap_rAB_AsymmetryIndicator,
+ { "rAB-AsymmetryIndicator", "ranap.rAB_AsymmetryIndicator",
+ FT_UINT32, BASE_DEC, VALS(ranap_RAB_AsymmetryIndicator_vals), 0,
+ "RAB-Parameters/rAB-AsymmetryIndicator", HFILL }},
+ { &hf_ranap_maxBitrate,
+ { "maxBitrate", "ranap.maxBitrate",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "RAB-Parameters/maxBitrate", HFILL }},
+ { &hf_ranap_guaranteedBitRate,
+ { "guaranteedBitRate", "ranap.guaranteedBitRate",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "RAB-Parameters/guaranteedBitRate", HFILL }},
+ { &hf_ranap_deliveryOrder,
+ { "deliveryOrder", "ranap.deliveryOrder",
+ FT_UINT32, BASE_DEC, VALS(ranap_DeliveryOrder_vals), 0,
+ "RAB-Parameters/deliveryOrder", HFILL }},
+ { &hf_ranap_maxSDU_Size,
+ { "maxSDU-Size", "ranap.maxSDU_Size",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "RAB-Parameters/maxSDU-Size", HFILL }},
+ { &hf_ranap_sDU_Parameters,
+ { "sDU-Parameters", "ranap.sDU_Parameters",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "RAB-Parameters/sDU-Parameters", HFILL }},
+ { &hf_ranap_transferDelay,
+ { "transferDelay", "ranap.transferDelay",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "RAB-Parameters/transferDelay", HFILL }},
+ { &hf_ranap_trafficHandlingPriority,
+ { "trafficHandlingPriority", "ranap.trafficHandlingPriority",
+ FT_UINT32, BASE_DEC, VALS(ranap_TrafficHandlingPriority_vals), 0,
+ "RAB-Parameters/trafficHandlingPriority", HFILL }},
+ { &hf_ranap_allocationOrRetentionPriority,
+ { "allocationOrRetentionPriority", "ranap.allocationOrRetentionPriority",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "RAB-Parameters/allocationOrRetentionPriority", HFILL }},
+ { &hf_ranap_sourceStatisticsDescriptor,
+ { "sourceStatisticsDescriptor", "ranap.sourceStatisticsDescriptor",
+ FT_UINT32, BASE_DEC, VALS(ranap_SourceStatisticsDescriptor_vals), 0,
+ "RAB-Parameters/sourceStatisticsDescriptor", HFILL }},
+ { &hf_ranap_relocationRequirement,
+ { "relocationRequirement", "ranap.relocationRequirement",
+ FT_UINT32, BASE_DEC, VALS(ranap_RelocationRequirement_vals), 0,
+ "RAB-Parameters/relocationRequirement", HFILL }},
+ { &hf_ranap_RAB_TrCH_Mapping_item,
+ { "Item", "ranap.RAB_TrCH_Mapping_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "RAB-TrCH-Mapping/_item", HFILL }},
+ { &hf_ranap_trCH_ID_List,
+ { "trCH-ID-List", "ranap.trCH_ID_List",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "RAB-TrCH-MappingItem/trCH-ID-List", HFILL }},
+ { &hf_ranap_notEmptyRAListofIdleModeUEs,
+ { "notEmptyRAListofIdleModeUEs", "ranap.notEmptyRAListofIdleModeUEs",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "RAListofIdleModeUEs/notEmptyRAListofIdleModeUEs", HFILL }},
+ { &hf_ranap_emptyFullRAListofIdleModeUEs,
+ { "emptyFullRAListofIdleModeUEs", "ranap.emptyFullRAListofIdleModeUEs",
+ FT_UINT32, BASE_DEC, VALS(ranap_T_emptyFullRAListofIdleModeUEs_vals), 0,
+ "RAListofIdleModeUEs/emptyFullRAListofIdleModeUEs", HFILL }},
+ { &hf_ranap_rAofIdleModeUEs,
+ { "rAofIdleModeUEs", "ranap.rAofIdleModeUEs",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "NotEmptyRAListofIdleModeUEs/rAofIdleModeUEs", HFILL }},
+ { &hf_ranap_RAofIdleModeUEs_item,
+ { "Item", "ranap.RAofIdleModeUEs_item",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "RAofIdleModeUEs/_item", HFILL }},
+ { &hf_ranap_RequestedMBMSIPMulticastAddressandAPNRequest_item,
+ { "Item", "ranap.RequestedMBMSIPMulticastAddressandAPNRequest_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "RequestedMBMSIPMulticastAddressandAPNRequest/_item", HFILL }},
+ { &hf_ranap_iPMulticastAddress,
+ { "iPMulticastAddress", "ranap.iPMulticastAddress",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "MBMSIPMulticastAddressandAPNlist/iPMulticastAddress", HFILL }},
+ { &hf_ranap_aPN,
+ { "aPN", "ranap.aPN",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "MBMSIPMulticastAddressandAPNlist/aPN", HFILL }},
+ { &hf_ranap_RequestedMulticastServiceList_item,
+ { "Item", "ranap.RequestedMulticastServiceList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "RequestedMulticastServiceList/_item", HFILL }},
+ { &hf_ranap_requestedMaxBitrates,
+ { "requestedMaxBitrates", "ranap.requestedMaxBitrates",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Requested-RAB-Parameter-Values/requestedMaxBitrates", HFILL }},
+ { &hf_ranap_requestedGuaranteedBitrates,
+ { "requestedGuaranteedBitrates", "ranap.requestedGuaranteedBitrates",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Requested-RAB-Parameter-Values/requestedGuaranteedBitrates", HFILL }},
+ { &hf_ranap_Requested_RAB_Parameter_MaxBitrateList_item,
+ { "Item", "ranap.Requested_RAB_Parameter_MaxBitrateList_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Requested-RAB-Parameter-MaxBitrateList/_item", HFILL }},
+ { &hf_ranap_Requested_RAB_Parameter_GuaranteedBitrateList_item,
+ { "Item", "ranap.Requested_RAB_Parameter_GuaranteedBitrateList_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Requested-RAB-Parameter-GuaranteedBitrateList/_item", HFILL }},
+ { &hf_ranap_event,
+ { "event", "ranap.event",
+ FT_UINT32, BASE_DEC, VALS(ranap_Event_vals), 0,
+ "RequestType/event", HFILL }},
+ { &hf_ranap_reportArea,
+ { "reportArea", "ranap.reportArea",
+ FT_UINT32, BASE_DEC, VALS(ranap_ReportArea_vals), 0,
+ "RequestType/reportArea", HFILL }},
+ { &hf_ranap_accuracyCode,
+ { "accuracyCode", "ranap.accuracyCode",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "RequestType/accuracyCode", HFILL }},
+ { &hf_ranap_mantissa,
+ { "mantissa", "ranap.mantissa",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_exponent,
+ { "exponent", "ranap.exponent",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "ResidualBitErrorRatio/exponent", HFILL }},
+ { &hf_ranap_rIMInformation,
+ { "rIMInformation", "ranap.rIMInformation",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "RIM-Transfer/rIMInformation", HFILL }},
+ { &hf_ranap_rIMRoutingAddress,
+ { "rIMRoutingAddress", "ranap.rIMRoutingAddress",
+ FT_UINT32, BASE_DEC, VALS(ranap_RIMRoutingAddress_vals), 0,
+ "RIM-Transfer/rIMRoutingAddress", HFILL }},
+ { &hf_ranap_globalRNC_ID,
+ { "globalRNC-ID", "ranap.globalRNC_ID",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "RIMRoutingAddress/globalRNC-ID", HFILL }},
+ { &hf_ranap_gERAN_Cell_ID,
+ { "gERAN-Cell-ID", "ranap.gERAN_Cell_ID",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "RIMRoutingAddress/gERAN-Cell-ID", HFILL }},
+ { &hf_ranap_traceReference,
+ { "traceReference", "ranap.traceReference",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_traceActivationIndicator,
+ { "traceActivationIndicator", "ranap.traceActivationIndicator",
+ FT_UINT32, BASE_DEC, VALS(ranap_T_traceActivationIndicator_vals), 0,
+ "RNCTraceInformation/traceActivationIndicator", HFILL }},
+ { &hf_ranap_equipmentsToBeTraced,
+ { "equipmentsToBeTraced", "ranap.equipmentsToBeTraced",
+ FT_UINT32, BASE_DEC, VALS(ranap_EquipmentsToBeTraced_vals), 0,
+ "RNCTraceInformation/equipmentsToBeTraced", HFILL }},
+ { &hf_ranap_sAC,
+ { "sAC", "ranap.sAC",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "SAI/sAC", HFILL }},
+ { &hf_ranap_pLMNs_in_shared_network,
+ { "pLMNs-in-shared-network", "ranap.pLMNs_in_shared_network",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "Shared-Network-Information/pLMNs-in-shared-network", HFILL }},
+ { &hf_ranap_exponent_1_8,
+ { "exponent", "ranap.exponent",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SDU-ErrorRatio/exponent", HFILL }},
+ { &hf_ranap_SDU_FormatInformationParameters_item,
+ { "Item", "ranap.SDU_FormatInformationParameters_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SDU-FormatInformationParameters/_item", HFILL }},
+ { &hf_ranap_subflowSDU_Size,
+ { "subflowSDU-Size", "ranap.subflowSDU_Size",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SDU-FormatInformationParameters/_item/subflowSDU-Size", HFILL }},
+ { &hf_ranap_rAB_SubflowCombinationBitRate,
+ { "rAB-SubflowCombinationBitRate", "ranap.rAB_SubflowCombinationBitRate",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SDU-FormatInformationParameters/_item/rAB-SubflowCombinationBitRate", HFILL }},
+ { &hf_ranap_SDU_Parameters_item,
+ { "Item", "ranap.SDU_Parameters_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SDU-Parameters/_item", HFILL }},
+ { &hf_ranap_sDU_ErrorRatio,
+ { "sDU-ErrorRatio", "ranap.sDU_ErrorRatio",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SDU-Parameters/_item/sDU-ErrorRatio", HFILL }},
+ { &hf_ranap_residualBitErrorRatio,
+ { "residualBitErrorRatio", "ranap.residualBitErrorRatio",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SDU-Parameters/_item/residualBitErrorRatio", HFILL }},
+ { &hf_ranap_deliveryOfErroneousSDU,
+ { "deliveryOfErroneousSDU", "ranap.deliveryOfErroneousSDU",
+ FT_UINT32, BASE_DEC, VALS(ranap_DeliveryOfErroneousSDU_vals), 0,
+ "SDU-Parameters/_item/deliveryOfErroneousSDU", HFILL }},
+ { &hf_ranap_sDU_FormatInformationParameters,
+ { "sDU-FormatInformationParameters", "ranap.sDU_FormatInformationParameters",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SDU-Parameters/_item/sDU-FormatInformationParameters", HFILL }},
+ { &hf_ranap_authorisedPLMNs,
+ { "authorisedPLMNs", "ranap.authorisedPLMNs",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SNA-Access-Information/authorisedPLMNs", HFILL }},
+ { &hf_ranap_sourceUTRANCellID,
+ { "sourceUTRANCellID", "ranap.sourceUTRANCellID",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SourceCellID/sourceUTRANCellID", HFILL }},
+ { &hf_ranap_sourceGERANCellID,
+ { "sourceGERANCellID", "ranap.sourceGERANCellID",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SourceCellID/sourceGERANCellID", HFILL }},
+ { &hf_ranap_sourceRNC_ID,
+ { "sourceRNC-ID", "ranap.sourceRNC_ID",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SourceID/sourceRNC-ID", HFILL }},
+ { &hf_ranap_rRC_Container,
+ { "rRC-Container", "ranap.rRC_Container",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_numberOfIuInstances,
+ { "numberOfIuInstances", "ranap.numberOfIuInstances",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SourceRNC-ToTargetRNC-TransparentContainer/numberOfIuInstances", HFILL }},
+ { &hf_ranap_relocationType,
+ { "relocationType", "ranap.relocationType",
+ FT_UINT32, BASE_DEC, VALS(ranap_RelocationType_vals), 0,
+ "SourceRNC-ToTargetRNC-TransparentContainer/relocationType", HFILL }},
+ { &hf_ranap_chosenIntegrityProtectionAlgorithm,
+ { "chosenIntegrityProtectionAlgorithm", "ranap.chosenIntegrityProtectionAlgorithm",
+ FT_UINT32, BASE_DEC, VALS(ranap_IntegrityProtectionAlgorithm_vals), 0,
+ "SourceRNC-ToTargetRNC-TransparentContainer/chosenIntegrityProtectionAlgorithm", HFILL }},
+ { &hf_ranap_integrityProtectionKey,
+ { "integrityProtectionKey", "ranap.integrityProtectionKey",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "SourceRNC-ToTargetRNC-TransparentContainer/integrityProtectionKey", HFILL }},
+ { &hf_ranap_chosenEncryptionAlgorithForSignalling,
+ { "chosenEncryptionAlgorithForSignalling", "ranap.chosenEncryptionAlgorithForSignalling",
+ FT_UINT32, BASE_DEC, VALS(ranap_EncryptionAlgorithm_vals), 0,
+ "SourceRNC-ToTargetRNC-TransparentContainer/chosenEncryptionAlgorithForSignalling", HFILL }},
+ { &hf_ranap_cipheringKey,
+ { "cipheringKey", "ranap.cipheringKey",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "SourceRNC-ToTargetRNC-TransparentContainer/cipheringKey", HFILL }},
+ { &hf_ranap_chosenEncryptionAlgorithForCS,
+ { "chosenEncryptionAlgorithForCS", "ranap.chosenEncryptionAlgorithForCS",
+ FT_UINT32, BASE_DEC, VALS(ranap_EncryptionAlgorithm_vals), 0,
+ "SourceRNC-ToTargetRNC-TransparentContainer/chosenEncryptionAlgorithForCS", HFILL }},
+ { &hf_ranap_chosenEncryptionAlgorithForPS,
+ { "chosenEncryptionAlgorithForPS", "ranap.chosenEncryptionAlgorithForPS",
+ FT_UINT32, BASE_DEC, VALS(ranap_EncryptionAlgorithm_vals), 0,
+ "SourceRNC-ToTargetRNC-TransparentContainer/chosenEncryptionAlgorithForPS", HFILL }},
+ { &hf_ranap_d_RNTI,
+ { "d-RNTI", "ranap.d_RNTI",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_targetCellId,
+ { "targetCellId", "ranap.targetCellId",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SourceRNC-ToTargetRNC-TransparentContainer/targetCellId", HFILL }},
+ { &hf_ranap_rAB_TrCH_Mapping,
+ { "rAB-TrCH-Mapping", "ranap.rAB_TrCH_Mapping",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SourceRNC-ToTargetRNC-TransparentContainer/rAB-TrCH-Mapping", HFILL }},
+ { &hf_ranap_uTRANcellID,
+ { "uTRANcellID", "ranap.uTRANcellID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SourceUTRANCellID/uTRANcellID", HFILL }},
+ { &hf_ranap_SRB_TrCH_Mapping_item,
+ { "Item", "ranap.SRB_TrCH_Mapping_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SRB-TrCH-Mapping/_item", HFILL }},
+ { &hf_ranap_sRB_ID,
+ { "sRB-ID", "ranap.sRB_ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SRB-TrCH-MappingItem/sRB-ID", HFILL }},
+ { &hf_ranap_trCH_ID,
+ { "trCH-ID", "ranap.trCH_ID",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SRB-TrCH-MappingItem/trCH-ID", HFILL }},
+ { &hf_ranap_targetRNC_ID,
+ { "targetRNC-ID", "ranap.targetRNC_ID",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "TargetID/targetRNC-ID", HFILL }},
+ { &hf_ranap_cGI,
+ { "cGI", "ranap.cGI",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "TargetID/cGI", HFILL }},
+ { &hf_ranap_tMSI,
+ { "tMSI", "ranap.tMSI",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "TemporaryUE-ID/tMSI", HFILL }},
+ { &hf_ranap_p_TMSI,
+ { "p-TMSI", "ranap.p_TMSI",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "TemporaryUE-ID/p-TMSI", HFILL }},
+ { &hf_ranap_serviceID,
+ { "serviceID", "ranap.serviceID",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "TMGI/serviceID", HFILL }},
+ { &hf_ranap_traceRecordingSessionReference,
+ { "traceRecordingSessionReference", "ranap.traceRecordingSessionReference",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
+ { &hf_ranap_traceDepth,
+ { "traceDepth", "ranap.traceDepth",
+ FT_UINT32, BASE_DEC, VALS(ranap_TraceDepth_vals), 0,
+ "TracePropagationParameters/traceDepth", HFILL }},
+ { &hf_ranap_listOfInterfacesToTrace,
+ { "listOfInterfacesToTrace", "ranap.listOfInterfacesToTrace",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "TracePropagationParameters/listOfInterfacesToTrace", HFILL }},
+ { &hf_ranap_dCH_ID,
+ { "dCH-ID", "ranap.dCH_ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "TrCH-ID/dCH-ID", HFILL }},
+ { &hf_ranap_dSCH_ID,
+ { "dSCH-ID", "ranap.dSCH_ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "TrCH-ID/dSCH-ID", HFILL }},
+ { &hf_ranap_uSCH_ID,
+ { "uSCH-ID", "ranap.uSCH_ID",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "TrCH-ID/uSCH-ID", HFILL }},
+ { &hf_ranap_TrCH_ID_List_item,
+ { "Item", "ranap.TrCH_ID_List_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "TrCH-ID-List/_item", HFILL }},
+ { &hf_ranap_imsi,
+ { "imsi", "ranap.imsi",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "UE-ID/imsi", HFILL }},
+ { &hf_ranap_imei,
+ { "imei", "ranap.imei",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "UE-ID/imei", HFILL }},
+ { &hf_ranap_imeisv,
+ { "imeisv", "ranap.imeisv",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "UE-ID/imeisv", HFILL }},
+ { &hf_ranap_uESBI_IuA,
+ { "uESBI-IuA", "ranap.uESBI_IuA",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "UESBI-Iu/uESBI-IuA", HFILL }},
+ { &hf_ranap_uESBI_IuB,
+ { "uESBI-IuB", "ranap.uESBI_IuB",
+ FT_BYTES, BASE_HEX, NULL, 0,
+ "UESBI-Iu/uESBI-IuB", HFILL }},
+ { &hf_ranap_local,
+ { "local", "ranap.local",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "PrivateIE-ID/local", HFILL }},
+ { &hf_ranap_global,
+ { "global", "ranap.global",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "PrivateIE-ID/global", HFILL }},
+ { &hf_ranap_ProtocolIE_Container_item,
+ { "Item", "ranap.ProtocolIE_Container_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ProtocolIE-Container/_item", HFILL }},
+ { &hf_ranap_id,
+ { "id", "ranap.id",
+ FT_UINT32, BASE_DEC, VALS(ranap_ProtocolIE_ID_vals), 0,
+ "", HFILL }},
+ { &hf_ranap_ie_field_value,
+ { "value", "ranap.value",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ProtocolIE-Field/value", HFILL }},
+ { &hf_ranap_ProtocolIE_ContainerPair_item,
+ { "Item", "ranap.ProtocolIE_ContainerPair_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ProtocolIE-ContainerPair/_item", HFILL }},
+ { &hf_ranap_firstCriticality,
+ { "firstCriticality", "ranap.firstCriticality",
+ FT_UINT32, BASE_DEC, VALS(ranap_Criticality_vals), 0,
+ "ProtocolIE-FieldPair/firstCriticality", HFILL }},
+ { &hf_ranap_firstValue,
+ { "firstValue", "ranap.firstValue",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ProtocolIE-FieldPair/firstValue", HFILL }},
+ { &hf_ranap_secondCriticality,
+ { "secondCriticality", "ranap.secondCriticality",
+ FT_UINT32, BASE_DEC, VALS(ranap_Criticality_vals), 0,
+ "ProtocolIE-FieldPair/secondCriticality", HFILL }},
+ { &hf_ranap_secondValue,
+ { "secondValue", "ranap.secondValue",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ProtocolIE-FieldPair/secondValue", HFILL }},
+ { &hf_ranap_ProtocolIE_ContainerList_item,
+ { "Item", "ranap.ProtocolIE_ContainerList_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "ProtocolIE-ContainerList/_item", HFILL }},
+ { &hf_ranap_ProtocolIE_ContainerList15_item,
+ { "Item", "ranap.ProtocolIE_ContainerList15_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "ProtocolIE-ContainerList15/_item", HFILL }},
+ { &hf_ranap_ProtocolIE_ContainerList256_item,
+ { "Item", "ranap.ProtocolIE_ContainerList256_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "ProtocolIE-ContainerList256/_item", HFILL }},
+ { &hf_ranap_ProtocolIE_ContainerList250_item,
+ { "Item", "ranap.ProtocolIE_ContainerList250_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "ProtocolIE-ContainerList250/_item", HFILL }},
+ { &hf_ranap_ProtocolIE_ContainerPairList_item,
+ { "Item", "ranap.ProtocolIE_ContainerPairList_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "ProtocolIE-ContainerPairList/_item", HFILL }},
+ { &hf_ranap_ProtocolIE_ContainerPairList256_item,
+ { "Item", "ranap.ProtocolIE_ContainerPairList256_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "ProtocolIE-ContainerPairList256/_item", HFILL }},
+ { &hf_ranap_ProtocolExtensionContainer_item,
+ { "Item", "ranap.ProtocolExtensionContainer_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ProtocolExtensionContainer/_item", HFILL }},
+ { &hf_ranap_ext_id,
+ { "id", "ranap.id",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "ProtocolExtensionField/id", HFILL }},
+ { &hf_ranap_extensionValue,
+ { "extensionValue", "ranap.extensionValue",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ProtocolExtensionField/extensionValue", HFILL }},
+ { &hf_ranap_PrivateIE_Container_item,
+ { "Item", "ranap.PrivateIE_Container_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "PrivateIE-Container/_item", HFILL }},
+ { &hf_ranap_private_id,
+ { "id", "ranap.id",
+ FT_UINT32, BASE_DEC, VALS(ranap_PrivateIE_ID_vals), 0,
+ "PrivateIE-Field/id", HFILL }},
+ { &hf_ranap_private_value,
+ { "value", "ranap.value",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "PrivateIE-Field/value", HFILL }},
+
+/*--- End of included file: packet-ranap-hfarr.c ---*/
- /* Setup protocol subtree array */
- static gint *ett[] = {
- &ett_ranap,
- &ett_ranap_optionals,
- &ett_ranap_iE_Extension,
- &ett_ranap_ie,
- &ett_ranap_ie_pair,
- &ett_ranap_rab,
- &ett_ranap_ie_pair_first_value,
- &ett_ranap_ie_pair_second_value,
- &ett_ranap_sDU,
- &ett_ranap_rAB_Parameters,
- &ett_ranap_allocationOrRetentionPriority ,
- &ett_ranap_CriticalityDiagnostics_IE
};
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_ranap,
+
+/*--- Included file: packet-ranap-ettarr.c ---*/
+
+ &ett_ranap_RANAP_PDU,
+ &ett_ranap_InitiatingMessage,
+ &ett_ranap_SuccessfulOutcome,
+ &ett_ranap_UnsuccessfulOutcome,
+ &ett_ranap_Outcome,
+ &ett_ranap_Dummy_initiating_messages,
+ &ett_ranap_Dummy_SuccessfulOutcome_messages,
+ &ett_ranap_Dummy_UnsuccessfulOutcome_messages,
+ &ett_ranap_Dummy_Outcome_messages,
+ &ett_ranap_Dymmy_ie_ids,
+ &ett_ranap_Dymmy_firstvalue_ie_ids,
+ &ett_ranap_Dymmy_secondvalue_ie_ids,
+ &ett_ranap_Iu_ReleaseCommand,
+ &ett_ranap_Iu_ReleaseComplete,
+ &ett_ranap_RAB_DataVolumeReportItem,
+ &ett_ranap_RAB_ReleasedItem_IuRelComp,
+ &ett_ranap_RelocationRequired,
+ &ett_ranap_RelocationCommand,
+ &ett_ranap_RAB_RelocationReleaseItem,
+ &ett_ranap_RAB_DataForwardingItem,
+ &ett_ranap_RelocationPreparationFailure,
+ &ett_ranap_RelocationRequest,
+ &ett_ranap_RAB_SetupItem_RelocReq,
+ &ett_ranap_UserPlaneInformation,
+ &ett_ranap_CNMBMSLinkingInformation,
+ &ett_ranap_JoinedMBMSBearerService_IEs,
+ &ett_ranap_JoinedMBMSBearerService_IEs_item,
+ &ett_ranap_RelocationRequestAcknowledge,
+ &ett_ranap_RAB_SetupItem_RelocReqAck,
+ &ett_ranap_RAB_FailedItem,
+ &ett_ranap_RelocationFailure,
+ &ett_ranap_RelocationCancel,
+ &ett_ranap_RelocationCancelAcknowledge,
+ &ett_ranap_SRNS_ContextRequest,
+ &ett_ranap_RAB_DataForwardingItem_SRNS_CtxReq,
+ &ett_ranap_SRNS_ContextResponse,
+ &ett_ranap_RAB_ContextItem,
+ &ett_ranap_RABs_ContextFailedtoTransferItem,
+ &ett_ranap_SecurityModeCommand,
+ &ett_ranap_SecurityModeComplete,
+ &ett_ranap_SecurityModeReject,
+ &ett_ranap_DataVolumeReportRequest,
+ &ett_ranap_RAB_DataVolumeReportRequestItem,
+ &ett_ranap_DataVolumeReport,
+ &ett_ranap_RABs_failed_to_reportItem,
+ &ett_ranap_Reset,
+ &ett_ranap_ResetAcknowledge,
+ &ett_ranap_ResetResource,
+ &ett_ranap_ResetResourceItem,
+ &ett_ranap_ResetResourceAcknowledge,
+ &ett_ranap_ResetResourceAckItem,
+ &ett_ranap_RAB_ReleaseRequest,
+ &ett_ranap_RAB_ReleaseItem,
+ &ett_ranap_Iu_ReleaseRequest,
+ &ett_ranap_RelocationDetect,
+ &ett_ranap_RelocationComplete,
+ &ett_ranap_Paging,
+ &ett_ranap_CommonID,
+ &ett_ranap_CN_InvokeTrace,
+ &ett_ranap_CN_DeactivateTrace,
+ &ett_ranap_LocationReportingControl,
+ &ett_ranap_LocationReport,
+ &ett_ranap_InitialUE_Message,
+ &ett_ranap_DirectTransfer,
+ &ett_ranap_Overload,
+ &ett_ranap_ErrorIndication,
+ &ett_ranap_SRNS_DataForwardCommand,
+ &ett_ranap_ForwardSRNS_Context,
+ &ett_ranap_RAB_AssignmentRequest,
+ &ett_ranap_RAB_SetupOrModifyItemFirst,
+ &ett_ranap_TransportLayerInformation,
+ &ett_ranap_RAB_SetupOrModifyItemSecond,
+ &ett_ranap_RAB_AssignmentResponse,
+ &ett_ranap_RAB_SetupOrModifiedItem,
+ &ett_ranap_RAB_ReleasedItem,
+ &ett_ranap_DataVolumeList,
+ &ett_ranap_DataVolumeList_item,
+ &ett_ranap_RAB_QueuedItem,
+ &ett_ranap_GERAN_Iumode_RAB_Failed_RABAssgntResponse_Item,
+ &ett_ranap_PrivateMessage,
+ &ett_ranap_RANAP_RelocationInformation,
+ &ett_ranap_DirectTransferInformationItem_RANAP_RelocInf,
+ &ett_ranap_RAB_ContextItem_RANAP_RelocInf,
+ &ett_ranap_RAB_ModifyRequest,
+ &ett_ranap_RAB_ModifyItem,
+ &ett_ranap_LocationRelatedDataRequest,
+ &ett_ranap_LocationRelatedDataResponse,
+ &ett_ranap_LocationRelatedDataFailure,
+ &ett_ranap_InformationTransferIndication,
+ &ett_ranap_InformationTransferConfirmation,
+ &ett_ranap_InformationTransferFailure,
+ &ett_ranap_UESpecificInformationIndication,
+ &ett_ranap_DirectInformationTransfer,
+ &ett_ranap_UplinkInformationExchangeRequest,
+ &ett_ranap_UplinkInformationExchangeResponse,
+ &ett_ranap_UplinkInformationExchangeFailure,
+ &ett_ranap_MBMSSessionStart,
+ &ett_ranap_MBMSSessionStartResponse,
+ &ett_ranap_MBMSSessionStartFailure,
+ &ett_ranap_MBMSSessionUpdate,
+ &ett_ranap_MBMSSessionUpdateResponse,
+ &ett_ranap_MBMSSessionUpdateFailure,
+ &ett_ranap_MBMSSessionStop,
+ &ett_ranap_MBMSSessionStopResponse,
+ &ett_ranap_MBMSUELinkingRequest,
+ &ett_ranap_LeftMBMSBearerService_IEs,
+ &ett_ranap_LeftMBMSBearerService_IEs_item,
+ &ett_ranap_MBMSUELinkingResponse,
+ &ett_ranap_UnsuccessfulLinking_IEs,
+ &ett_ranap_UnsuccessfulLinking_IEs_item,
+ &ett_ranap_MBMSRegistrationRequest,
+ &ett_ranap_MBMSRegistrationResponse,
+ &ett_ranap_MBMSRegistrationFailure,
+ &ett_ranap_MBMSCNDe_RegistrationRequest,
+ &ett_ranap_MBMSCNDe_RegistrationResponse,
+ &ett_ranap_MBMSRABEstablishmentIndication,
+ &ett_ranap_MBMSRABReleaseRequest,
+ &ett_ranap_MBMSRABRelease,
+ &ett_ranap_MBMSRABReleaseFailure,
+ &ett_ranap_AllocationOrRetentionPriority,
+ &ett_ranap_Alt_RAB_Parameters,
+ &ett_ranap_Alt_RAB_Parameter_GuaranteedBitrateInf,
+ &ett_ranap_Alt_RAB_Parameter_GuaranteedBitrates,
+ &ett_ranap_Alt_RAB_Parameter_GuaranteedBitrateList,
+ &ett_ranap_Alt_RAB_Parameter_MaxBitrateInf,
+ &ett_ranap_Alt_RAB_Parameter_MaxBitrates,
+ &ett_ranap_Alt_RAB_Parameter_MaxBitrateList,
+ &ett_ranap_AreaIdentity,
+ &ett_ranap_Ass_RAB_Parameters,
+ &ett_ranap_Ass_RAB_Parameter_GuaranteedBitrateList,
+ &ett_ranap_Ass_RAB_Parameter_MaxBitrateList,
+ &ett_ranap_AuthorisedPLMNs,
+ &ett_ranap_AuthorisedPLMNs_item,
+ &ett_ranap_AuthorisedSNAs,
+ &ett_ranap_BroadcastAssistanceDataDecipheringKeys,
+ &ett_ranap_Cause,
+ &ett_ranap_CellLoadInformation,
+ &ett_ranap_CellLoadInformationGroup,
+ &ett_ranap_CriticalityDiagnostics,
+ &ett_ranap_CriticalityDiagnostics_IE_List,
+ &ett_ranap_CriticalityDiagnostics_IE_List_item,
+ &ett_ranap_MessageStructure,
+ &ett_ranap_MessageStructure_item,
+ &ett_ranap_CGI,
+ &ett_ranap_DeltaRAListofIdleModeUEs,
+ &ett_ranap_NewRAListofIdleModeUEs,
+ &ett_ranap_RAListwithNoIdleModeUEsAnyMore,
+ &ett_ranap_EncryptionInformation,
+ &ett_ranap_EquipmentsToBeTraced,
+ &ett_ranap_GeographicalArea,
+ &ett_ranap_GeographicalCoordinates,
+ &ett_ranap_GA_AltitudeAndDirection,
+ &ett_ranap_GA_EllipsoidArc,
+ &ett_ranap_GA_Point,
+ &ett_ranap_GA_PointWithAltitude,
+ &ett_ranap_GA_PointWithAltitudeAndUncertaintyEllipsoid,
+ &ett_ranap_GA_PointWithUnCertainty,
+ &ett_ranap_GA_PointWithUnCertaintyEllipse,
+ &ett_ranap_GA_Polygon,
+ &ett_ranap_GA_Polygon_item,
+ &ett_ranap_GA_UncertaintyEllipse,
+ &ett_ranap_GERAN_Cell_ID,
+ &ett_ranap_GlobalCN_ID,
+ &ett_ranap_GlobalRNC_ID,
+ &ett_ranap_IMEIGroup,
+ &ett_ranap_IMEIList,
+ &ett_ranap_IMEISVGroup,
+ &ett_ranap_IMEISVList,
+ &ett_ranap_InformationRequested,
+ &ett_ranap_InformationRequestType,
+ &ett_ranap_InformationTransferType,
+ &ett_ranap_IntegrityProtectionInformation,
+ &ett_ranap_InterSystemInformationTransferType,
+ &ett_ranap_InterSystemInformation_TransparentContainer,
+ &ett_ranap_IuTransportAssociation,
+ &ett_ranap_LA_LIST,
+ &ett_ranap_LA_LIST_item,
+ &ett_ranap_LAI,
+ &ett_ranap_LastKnownServiceArea,
+ &ett_ranap_ListOF_SNAs,
+ &ett_ranap_ListOfInterfacesToTrace,
+ &ett_ranap_InterfacesToTraceItem,
+ &ett_ranap_LocationRelatedDataRequestType,
+ &ett_ranap_MBMSIPMulticastAddressandAPNRequest,
+ &ett_ranap_MBMSServiceArea,
+ &ett_ranap_MBMSServiceAreaList,
+ &ett_ranap_PagingAreaID,
+ &ett_ranap_PDP_TypeInformation,
+ &ett_ranap_PermanentNAS_UE_ID,
+ &ett_ranap_PermittedEncryptionAlgorithms,
+ &ett_ranap_PermittedIntegrityProtectionAlgorithms,
+ &ett_ranap_PLMNs_in_shared_network,
+ &ett_ranap_PLMNs_in_shared_network_item,
+ &ett_ranap_PositioningDataSet,
+ &ett_ranap_PositionData,
+ &ett_ranap_ProvidedData,
+ &ett_ranap_RAB_Parameter_GuaranteedBitrateList,
+ &ett_ranap_RAB_Parameter_MaxBitrateList,
+ &ett_ranap_RAB_Parameters,
+ &ett_ranap_RAB_TrCH_Mapping,
+ &ett_ranap_RAB_TrCH_MappingItem,
+ &ett_ranap_RAI,
+ &ett_ranap_RAListofIdleModeUEs,
+ &ett_ranap_NotEmptyRAListofIdleModeUEs,
+ &ett_ranap_RAofIdleModeUEs,
+ &ett_ranap_RequestedMBMSIPMulticastAddressandAPNRequest,
+ &ett_ranap_MBMSIPMulticastAddressandAPNlist,
+ &ett_ranap_RequestedMulticastServiceList,
+ &ett_ranap_Requested_RAB_Parameter_Values,
+ &ett_ranap_Requested_RAB_Parameter_MaxBitrateList,
+ &ett_ranap_Requested_RAB_Parameter_GuaranteedBitrateList,
+ &ett_ranap_RequestType,
+ &ett_ranap_ResidualBitErrorRatio,
+ &ett_ranap_RIM_Transfer,
+ &ett_ranap_RIMRoutingAddress,
+ &ett_ranap_RNCTraceInformation,
+ &ett_ranap_SAI,
+ &ett_ranap_Shared_Network_Information,
+ &ett_ranap_SDU_ErrorRatio,
+ &ett_ranap_SDU_FormatInformationParameters,
+ &ett_ranap_SDU_FormatInformationParameters_item,
+ &ett_ranap_SDU_Parameters,
+ &ett_ranap_SDU_Parameters_item,
+ &ett_ranap_SNA_Access_Information,
+ &ett_ranap_SourceCellID,
+ &ett_ranap_SourceID,
+ &ett_ranap_SourceRNC_ID,
+ &ett_ranap_SourceRNC_ToTargetRNC_TransparentContainer,
+ &ett_ranap_SourceUTRANCellID,
+ &ett_ranap_SRB_TrCH_Mapping,
+ &ett_ranap_SRB_TrCH_MappingItem,
+ &ett_ranap_TargetID,
+ &ett_ranap_TargetRNC_ID,
+ &ett_ranap_TargetRNC_ToSourceRNC_TransparentContainer,
+ &ett_ranap_TemporaryUE_ID,
+ &ett_ranap_TMGI,
+ &ett_ranap_TracePropagationParameters,
+ &ett_ranap_TraceRecordingSessionInformation,
+ &ett_ranap_TrCH_ID,
+ &ett_ranap_TrCH_ID_List,
+ &ett_ranap_UE_ID,
+ &ett_ranap_UESBI_Iu,
+ &ett_ranap_PrivateIE_ID,
+ &ett_ranap_ProtocolIE_Container,
+ &ett_ranap_ProtocolIE_Field,
+ &ett_ranap_ProtocolIE_ContainerPair,
+ &ett_ranap_ProtocolIE_FieldPair,
+ &ett_ranap_ProtocolIE_ContainerList,
+ &ett_ranap_ProtocolIE_ContainerList15,
+ &ett_ranap_ProtocolIE_ContainerList256,
+ &ett_ranap_ProtocolIE_ContainerList250,
+ &ett_ranap_ProtocolIE_ContainerPairList,
+ &ett_ranap_ProtocolIE_ContainerPairList256,
+ &ett_ranap_ProtocolExtensionContainer,
+ &ett_ranap_ProtocolExtensionField,
+ &ett_ranap_PrivateIE_Container,
+ &ett_ranap_PrivateIE_Field,
+
+/*--- End of included file: packet-ranap-ettarr.c ---*/
- /* Register the protocol name and description */
- proto_ranap = proto_register_protocol("Radio Access Network Application Part",
- "RANAP", "ranap");
+ };
- /* Register the header fields and subtrees */
+ /* Register protocol */
+ proto_ranap = proto_register_protocol(PNAME, PSNAME, PFNAME);
+/*XXX register_dissector("ranap", dissect_ranap, proto_ranap);*/
+ /* Register fields and subtrees */
proto_register_field_array(proto_ranap, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
-
- nas_pdu_dissector_table = register_dissector_table("ranap.nas_pdu", "RANAP NAS PDU", FT_UINT8, BASE_DEC);
register_dissector("ranap", dissect_ranap, proto_ranap);
-
-}
+ nas_pdu_dissector_table = register_dissector_table("ranap.nas_pdu", "RANAP NAS PDU", FT_UINT8, BASE_DEC);
-void
-proto_reg_handoff_ranap(void)
-{
- dissector_handle_t ranap_handle;
+}
- ranap_handle = find_dissector("ranap");;
- /*
- dissector_add("sua.ssn", SCCP_SSN_RANAP, ranap_handle);
- */
- dissector_add("sccp.ssn", SCCP_SSN_RANAP, ranap_handle);
- /* Add heuristic dissector
- * Perhaps we want a preference whether the heuristic dissector
- * is or isn't enabled
- */
- heur_dissector_add("sccp", dissect_sccp_ranap_heur, proto_ranap);
-}
diff --git a/epan/dissectors/packet-ranap.h b/epan/dissectors/packet-ranap.h
new file mode 100644
index 0000000000..a9c3ddc247
--- /dev/null
+++ b/epan/dissectors/packet-ranap.h
@@ -0,0 +1,35 @@
+/* Do not modify this file. */
+/* It is created automatically by the ASN.1 to Ethereal dissector compiler */
+/* .\packet-ranap.h */
+/* ../../tools/asn2eth.py -X -e -p ranap -c ranap.cnf -s packet-ranap-template ranap.asn */
+
+/* Input file: packet-ranap-template.h */
+
+/* packet-ranap-template.h
+ * Routines for GSM Supplementary Services dissection
+ * Copyright 2005, Anders Broman <anders.broman@ericsson.com>
+ * $Id$ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PACKET_RANAP_H
+#define PACKET_RANAP_H
+/* #include "packet-ranap-exp.h"*/
+
+#endif /* PACKET_RANAP_H */