diff options
-rw-r--r-- | docbook/release-notes.asciidoc | 1 | ||||
-rw-r--r-- | epan/dissectors/CMakeLists.txt | 1 | ||||
-rw-r--r-- | epan/dissectors/asn1/CMakeLists.txt | 1 | ||||
-rw-r--r-- | epan/dissectors/asn1/nr-rrc/nr-rrc.cnf | 4 | ||||
-rw-r--r-- | epan/dissectors/asn1/xnap/CMakeLists.txt | 39 | ||||
-rw-r--r-- | epan/dissectors/asn1/xnap/XnAP-CommonDataTypes.asn | 50 | ||||
-rw-r--r-- | epan/dissectors/asn1/xnap/XnAP-Constants.asn | 157 | ||||
-rw-r--r-- | epan/dissectors/asn1/xnap/XnAP-Containers.asn | 196 | ||||
-rw-r--r-- | epan/dissectors/asn1/xnap/XnAP-IEs.asn | 1941 | ||||
-rw-r--r-- | epan/dissectors/asn1/xnap/XnAP-PDU-Contents.asn | 1086 | ||||
-rw-r--r-- | epan/dissectors/asn1/xnap/XnAP-PDU-Descriptions.asn | 390 | ||||
-rw-r--r-- | epan/dissectors/asn1/xnap/packet-xnap-template.c | 278 | ||||
-rw-r--r-- | epan/dissectors/asn1/xnap/xnap.cnf | 688 | ||||
-rw-r--r-- | epan/dissectors/packet-nr-rrc.c | 672 | ||||
-rw-r--r-- | epan/dissectors/packet-nr-rrc.h | 1 | ||||
-rw-r--r-- | epan/dissectors/packet-xnap.c | 9573 |
16 files changed, 14824 insertions, 254 deletions
diff --git a/docbook/release-notes.asciidoc b/docbook/release-notes.asciidoc index 20106a7e97..a55c49c759 100644 --- a/docbook/release-notes.asciidoc +++ b/docbook/release-notes.asciidoc @@ -77,6 +77,7 @@ STCSIG (Spirent Test Center Signature decoding for Ethernet and FibreChannel, di Exablaze trailers Ubiquiti Discovery Protocol (UBDP) Cisco Meraki Discovery Protocol (MDP) +XnAP (5G) protocol -- === Updated Protocol Support diff --git a/epan/dissectors/CMakeLists.txt b/epan/dissectors/CMakeLists.txt index 165673ac65..64dcc0f2b6 100644 --- a/epan/dissectors/CMakeLists.txt +++ b/epan/dissectors/CMakeLists.txt @@ -180,6 +180,7 @@ set(CLEAN_ASN1_DISSECTOR_SRC ${CMAKE_CURRENT_SOURCE_DIR}/packet-x509ce.c ${CMAKE_CURRENT_SOURCE_DIR}/packet-x509if.c ${CMAKE_CURRENT_SOURCE_DIR}/packet-x509sat.c + ${CMAKE_CURRENT_SOURCE_DIR}/packet-xnap.c ) set(DIRTY_ASN1_DISSECTOR_SRC diff --git a/epan/dissectors/asn1/CMakeLists.txt b/epan/dissectors/asn1/CMakeLists.txt index c748b88345..149e744b37 100644 --- a/epan/dissectors/asn1/CMakeLists.txt +++ b/epan/dissectors/asn1/CMakeLists.txt @@ -118,6 +118,7 @@ set(ASN1_SRC_DIRS x509ce x509if x509sat + xnap ${CUSTOM_ASN1_SRC_DIR} ) diff --git a/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf b/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf index 02e91017b4..625f456ca6 100644 --- a/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf +++ b/epan/dissectors/asn1/nr-rrc/nr-rrc.cnf @@ -38,6 +38,7 @@ CellGroupConfig_PDU CG-ConfigInfo_PDU ConfigRestrictInfoSCG_PDU FreqBandList_PDU +HandoverCommand_PDU HandoverPreparationInformation_PDU MeasConfig_PDU MeasGapConfig_PDU @@ -61,6 +62,7 @@ CG-ConfigInfo ConfigRestrictInfoSCG DL-DCCH-Message @dl.dcch FreqBandList +HandoverCommand HandoverPreparationInformation MeasConfig MeasGapConfig @@ -85,8 +87,6 @@ CG-Config-IEs ConfigRestrictModReqSCG FR-Info FR-InfoList -HandoverCommand -HandoverCommand-IEs MeasConfigSN VarMeasConfig VarMeasReportList diff --git a/epan/dissectors/asn1/xnap/CMakeLists.txt b/epan/dissectors/asn1/xnap/CMakeLists.txt new file mode 100644 index 0000000000..e479d16ae0 --- /dev/null +++ b/epan/dissectors/asn1/xnap/CMakeLists.txt @@ -0,0 +1,39 @@ +# CMakeLists.txt +# +# Wireshark - Network traffic analyzer +# By Gerald Combs <gerald@wireshark.org> +# Copyright 1998 Gerald Combs +# +# SPDX-License-Identifier: GPL-2.0-or-later +# + +set( PROTOCOL_NAME xnap ) + +set( PROTO_OPT ) + +set( EXT_ASN_FILE_LIST +) + +set( ASN_FILE_LIST + XnAP-CommonDataTypes.asn + XnAP-Constants.asn + XnAP-Containers.asn + XnAP-IEs.asn + XnAP-PDU-Contents.asn + XnAP-PDU-Descriptions.asn +) + +set( EXTRA_DIST + ${ASN_FILE_LIST} + packet-${PROTOCOL_NAME}-template.c + ${PROTOCOL_NAME}.cnf +) + +set( SRC_FILES + ${EXTRA_DIST} + ${EXT_ASN_FILE_LIST} +) + +set( A2W_FLAGS ) + +ASN2WRS() diff --git a/epan/dissectors/asn1/xnap/XnAP-CommonDataTypes.asn b/epan/dissectors/asn1/xnap/XnAP-CommonDataTypes.asn new file mode 100644 index 0000000000..3b136abeae --- /dev/null +++ b/epan/dissectors/asn1/xnap/XnAP-CommonDataTypes.asn @@ -0,0 +1,50 @@ +-- 3GPP TS 38.423 V15.0.0 (2018-06) +-- 9.3.6 Common definitions +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +XnAP-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +ngran-access (22) modules (3) xnap (2) version1 (1) xnap-CommonDataTypes (3) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +maxPrivateIEs INTEGER ::= 65535 +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 + +-- ************************************************************** +-- +-- Common Data Types +-- +-- ************************************************************** + +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +PrivateIE-ID ::= CHOICE { + local INTEGER (0.. maxPrivateIEs), + global OBJECT IDENTIFIER +} + +ProcedureCode ::= INTEGER (0..255) + + +ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs) + + +TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome} + +END diff --git a/epan/dissectors/asn1/xnap/XnAP-Constants.asn b/epan/dissectors/asn1/xnap/XnAP-Constants.asn new file mode 100644 index 0000000000..c30c6cb084 --- /dev/null +++ b/epan/dissectors/asn1/xnap/XnAP-Constants.asn @@ -0,0 +1,157 @@ +-- 3GPP TS 38.423 V15.0.0 (2018-06) +-- 9.3.7 Constant definitions +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +XnAP-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +ngran-Access (22) modules (3) xnap (2) version1 (1) xnap-Constants (4) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + ProcedureCode, + ProtocolIE-ID +FROM XnAP-CommonDataTypes; + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-handoverPreparation ProcedureCode ::= 0 +id-sNStatusTransfer ProcedureCode ::= 1 +id-handoverCancel ProcedureCode ::= 2 +id-retrieveUEContext ProcedureCode ::= 3 +id-rANPaging ProcedureCode ::= 4 +id-dataForwardingAddressIndication ProcedureCode ::= 5 +id-uEContextRelease ProcedureCode ::= 6 +id-sNGRANnodeAdditionPreparation ProcedureCode ::= 7 +id-sNGRANnodeReconfigurationCompletion ProcedureCode ::= 8 +id-mNGRANnodeinitiatedSNGRANnodeModificationPreparation ProcedureCode ::= 9 +id-sNGRANnodeinitiatedSNGRANnodeModificationPreparation ProcedureCode ::= 10 +id-mNGRANnodeinitiatedSNGRANnodeRelease ProcedureCode ::= 11 +id-sNGRANnodeinitiatedSNGRANnodeRelease ProcedureCode ::= 12 +id-sNGRANnodeCounterCheck ProcedureCode ::= 13 +id-sNGRANnodeChange ProcedureCode ::= 14 +id-rRCTransfer ProcedureCode ::= 15 +id-xnRemoval ProcedureCode ::= 16 +id-xnSetup ProcedureCode ::= 17 +id-nGRANnodeConfigurationUpdate ProcedureCode ::= 18 +id-cellActivation ProcedureCode ::= 19 +id-reset ProcedureCode ::= 20 +id-errorIndication ProcedureCode ::= 21 +id-privateMessage ProcedureCode ::= 22 + + + +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxEARFCN INTEGER ::= 262143 +maxnoofAllowedAreas INTEGER ::= 16 +maxnoofAoIs INTEGER ::= 64 +maxnoofBPLMNs INTEGER ::= 6 -- This IE may need to be refined. +maxnoofCellsinAoI INTEGER ::= 256 +maxnoofCellsinNGRANnode INTEGER ::= 16384 +maxnoofCellsinRNA INTEGER ::= 32 +maxnoofDRBs INTEGER ::= 32 +maxnoofEUTRABands INTEGER ::= 16 +maxnoofEPLMNs INTEGER ::= 15 +maxnoofForbiddenTACs INTEGER ::= 4096 +maxnoofMBSFNEUTRA INTEGER ::= 8 +maxnoofNeighbours INTEGER ::= 1024 +maxnoofNRCellBands INTEGER ::= 32 +maxnoofPLMNs INTEGER ::= 16 +maxnoofPDUSessions INTEGER ::= 256 +maxnoofQoSFlows INTEGER ::= 64 +maxnoofRANAreaCodes INTEGER ::= 32 +maxnoofRANAreasinRNA INTEGER ::= 16 +maxnoofSliceItems INTEGER ::= 1024 +maxnoofsupportedPLMNs INTEGER ::= 16 -- This IE may need to be refined. +maxnoofsupportedTACs INTEGER ::= 1024 -- This IE may need to be refined. +maxnoofTAI INTEGER ::= 16 +maxnoofTAIsinAoI INTEGER ::= 16 +maxnoofUEContexts INTEGER ::= 8292 +maxNRARFCN INTEGER ::= 3279165 +maxNrOfErrors INTEGER ::= 256 + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-ActivatedServedCells ProtocolIE-ID ::= 0 +id-ActivationIDforCellActivation ProtocolIE-ID ::= 1 +id-AMF-Pool-Information ProtocolIE-ID ::= 2 +id-AreaOfInterest-Item ProtocolIE-ID ::= 3 +id-AssistanceDataForRANPaging ProtocolIE-ID ::= 4 +id-Cause ProtocolIE-ID ::= 5 +id-cellAssistanceInfo-NR ProtocolIE-ID ::= 6 +id-ConfigurationUpdateInitiatingNodeChoice ProtocolIE-ID ::= 7 +id-CriticalityDiagnostics ProtocolIE-ID ::= 8 +id-dataforwardingInfoperPDUSession ProtocolIE-ID ::= 9 +id-dataforwardingInfoperPDUSession-Item ProtocolIE-ID ::= 10 +id-DataForwardingResponseDRBItem ProtocolIE-ID ::= 11 +id-DRBsSubjectToStatusTransfer-Item ProtocolIE-ID ::= 12 +id-DRBsSubjectToStatusTransfer-List ProtocolIE-ID ::= 13 +id-DRBToQoSFlowMapping-Item ProtocolIE-ID ::= 14 +id-GlobalNG-RAN-node-ID ProtocolIE-ID ::= 15 +id-GUAMI ProtocolIE-ID ::= 16 +id-List-of-served-cells-E-UTRA ProtocolIE-ID ::= 17 +id-List-of-served-cells-NR ProtocolIE-ID ::= 18 +id-LocationReportingInformation ProtocolIE-ID ::= 19 +id-MAC-I ProtocolIE-ID ::= 20 +id-MaskedIMEISV ProtocolIE-ID ::= 21 +id-new-NG-RAN-Cell-Identity ProtocolIE-ID ::= 22 +id-newNG-RANnodeUEXnAPID ProtocolIE-ID ::= 23 +id-oldNG-RANnodeUEXnAPID ProtocolIE-ID ::= 24 +id-PagingDRX ProtocolIE-ID ::= 25 +id-PDUSessionResourceAdmittedResponseTransferItem ProtocolIE-ID ::= 26 +id-PDUSessionResourcesAdmitted-Item ProtocolIE-ID ::= 27 +id-PDUSessionResourcesAdmitted-List ProtocolIE-ID ::= 28 +id-PDUSessionResourcesNotAdmitted-Item ProtocolIE-ID ::= 29 +id-PDUSessionResourcesNotAdmitted-List ProtocolIE-ID ::= 30 +id-PDUSessionResourcesToBeSetup-Item ProtocolIE-ID ::= 31 +id-QoSFlowAdmitted-Item ProtocolIE-ID ::= 32 +id-QoSFlow-Item ProtocolIE-ID ::= 33 +id-QoSFlowNotAdmitted-Item ProtocolIE-ID ::= 34 +id-QoSFlowsToBeSetup-Item ProtocolIE-ID ::= 35 +id-RANPagingArea ProtocolIE-ID ::= 36 +id-RANPagingPriority ProtocolIE-ID ::= 37 +id-ResetRequestPartialReleaseItem ProtocolIE-ID ::= 38 +id-ResetRequestTypeInfo ProtocolIE-ID ::= 39 +id-ResetResponsePartialReleaseItem ProtocolIE-ID ::= 40 +id-ResetResponseTypeInfo ProtocolIE-ID ::= 41 +id-RespondingNodeTypeConfigUpdateAck ProtocolIE-ID ::= 42 +id-ServedCellsToActivate ProtocolIE-ID ::= 43 +id-servedCellsToUpdate-E-UTRA ProtocolIE-ID ::= 44 +id-ServedCellsToUpdateInitiatingNodeChoice ProtocolIE-ID ::= 45 +id-servedCellsToUpdate-NR ProtocolIE-ID ::= 46 +id-sourceNG-RANnodeUEXnAPID ProtocolIE-ID ::= 47 +id-TAISupport-Item ProtocolIE-ID ::= 48 +-- WS modification: fix a typo +-- id-TAISupport-list ProtocolIE-ID ::= 40 +id-TAISupport-list ProtocolIE-ID ::= 49 +id-Target2SourceNG-RANnodeTranspContainer ProtocolIE-ID ::= 50 +id-targetCellGlobalID ProtocolIE-ID ::= 51 +id-targetNG-RANnodeUEXnAPID ProtocolIE-ID ::= 52 +id-TraceActivation ProtocolIE-ID ::= 53 +id-UEContextID ProtocolIE-ID ::= 54 +id-UEContextInfoHORequest ProtocolIE-ID ::= 55 +id-UEContextInfoRetrUECtxtResp ProtocolIE-ID ::= 56 +id-UEIdentityIndexValue ProtocolIE-ID ::= 57 +id-UERANPagingIdentity ProtocolIE-ID ::= 58 +id-XnRemovalThreshold ProtocolIE-ID ::= 59 + +END diff --git a/epan/dissectors/asn1/xnap/XnAP-Containers.asn b/epan/dissectors/asn1/xnap/XnAP-Containers.asn new file mode 100644 index 0000000000..1d2b801adf --- /dev/null +++ b/epan/dissectors/asn1/xnap/XnAP-Containers.asn @@ -0,0 +1,196 @@ +-- 3GPP TS 38.423 V15.0.0 (2018-06) +-- 9.3.8 Container definitions +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +XnAP-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +ngran-access (22) modules (3) xnap (2) version1 (1) xnap-Containers (5) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + maxPrivateIEs, + maxProtocolExtensions, + maxProtocolIEs, + Criticality, + Presence, + PrivateIE-ID, + ProtocolIE-ID +FROM XnAP-CommonDataTypes; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +XNAP-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol IE pairs +-- +-- ************************************************************** + +XNAP-PROTOCOL-IES-PAIR ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &firstCriticality Criticality, + &FirstValue, + &secondCriticality Criticality, + &SecondValue, + &presence Presence +} +WITH SYNTAX { + ID &id + FIRST CRITICALITY &firstCriticality + FIRST TYPE &FirstValue + SECOND CRITICALITY &secondCriticality + SECOND TYPE &SecondValue + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +XNAP-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Private IEs +-- +-- ************************************************************** + +XNAP-PRIVATE-IES ::= CLASS { + &id PrivateIE-ID, + &criticality Criticality, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container {XNAP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Single-Container {XNAP-PROTOCOL-IES : IEsSetParam} ::= + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field {XNAP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id XNAP-PROTOCOL-IES.&id ({IEsSetParam}), + criticality XNAP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value XNAP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Protocol IE Pairs +-- +-- ************************************************************** + +ProtocolIE-ContainerPair {XNAP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-FieldPair {{IEsSetParam}} + +ProtocolIE-FieldPair {XNAP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE { + id XNAP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}), + firstCriticality XNAP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}), + firstValue XNAP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}), + secondCriticality XNAP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}), + secondValue XNAP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, XNAP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-Container {{IEsSetParam}} + +ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, XNAP-PROTOCOL-IES-PAIR : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-ContainerPair {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer {XNAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField {XNAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id XNAP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality XNAP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue XNAP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container for Private IEs +-- +-- ************************************************************** + +PrivateIE-Container {XNAP-PRIVATE-IES : IEsSetParam} ::= + SEQUENCE (SIZE (1..maxPrivateIEs)) OF + PrivateIE-Field {{IEsSetParam}} + +PrivateIE-Field {XNAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE { + id XNAP-PRIVATE-IES.&id ({IEsSetParam}), + criticality XNAP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}), + value XNAP-PRIVATE-IES.&Value ({IEsSetParam}{@id}) +} + +END diff --git a/epan/dissectors/asn1/xnap/XnAP-IEs.asn b/epan/dissectors/asn1/xnap/XnAP-IEs.asn new file mode 100644 index 0000000000..9bcf3a07b1 --- /dev/null +++ b/epan/dissectors/asn1/xnap/XnAP-IEs.asn @@ -0,0 +1,1941 @@ +-- 3GPP TS 38.423 V15.0.0 (2018-06) +-- 9.3.5 Information Element definitions +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +XnAP-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +ngran-access (22) modules (3) xnap (2) version1 (1) xnap-IEs (2) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + + id-AreaOfInterest-Item, + id-dataforwardingInfoperPDUSession-Item, + id-DataForwardingResponseDRBItem, + id-DRBsSubjectToStatusTransfer-Item, + id-DRBToQoSFlowMapping-Item, + id-PDUSessionResourceAdmittedResponseTransferItem, + id-PDUSessionResourcesAdmitted-Item, + id-PDUSessionResourcesNotAdmitted-Item, + id-PDUSessionResourcesToBeSetup-Item, + id-QoSFlowAdmitted-Item, + id-QoSFlow-Item, + id-QoSFlowNotAdmitted-Item, + id-QoSFlowsToBeSetup-Item, + id-ResetRequestPartialReleaseItem, + id-ResetResponsePartialReleaseItem, + id-TAISupport-Item, + + + maxEARFCN, + maxnoofAllowedAreas, + maxnoofAoIs, + maxnoofBPLMNs, + maxnoofCellsinAoI, + maxnoofCellsinNGRANnode, + maxnoofCellsinRNA, + maxnoofDRBs, + maxnoofEPLMNs, + maxnoofEUTRABands, + maxnoofForbiddenTACs, + maxnoofMBSFNEUTRA, + maxnoofNeighbours, + maxnoofNRCellBands, + maxnoofPDUSessions, + maxnoofPLMNs, + maxnoofQoSFlows, + maxnoofRANAreaCodes, + maxnoofRANAreasinRNA, + maxnoofSliceItems, + maxnoofsupportedTACs, + maxnoofsupportedPLMNs, + maxnoofTAI, + maxnoofTAIsinAoI, + maxnoofUEContexts, + maxNRARFCN, + maxNrOfErrors + +FROM XnAP-Constants + + Criticality, + ProcedureCode, + ProtocolIE-ID, + TriggeringMessage +FROM XnAP-CommonDataTypes + + ProtocolExtensionContainer{}, + ProtocolIE-Single-Container{}, + + XNAP-PROTOCOL-EXTENSION, + XNAP-PROTOCOL-IES +FROM XnAP-Containers; + + +-- A + + +ActivationIDforCellActivation ::= INTEGER (0..255) + + +AllocationandRetentionPriority ::= SEQUENCE { + priorityLevel INTEGER (0..15,...), + pre-emption-capability ENUMERATED {shall-not-trigger-preemptdatDion, may-trigger-preemption, ...}, + pre-emption-vulnerability ENUMERATED {not-preemptable, preemptable, ...}, + iE-Extensions ProtocolExtensionContainer { {AllocationandRetentionPriority-ExtIEs} } OPTIONAL, + ... +} + +AllocationandRetentionPriority-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +AMF-Pool-Information ::= OCTET STRING -- This IE may need to be refined. + + +AMF-UE-NGAP-ID ::= INTEGER (0..4294967295) + + +AreaOfInterest ::= SEQUENCE (SIZE(1..maxnoofAoIs)) OF ProtocolIE-Single-Container { {AreaOfInterest-ItemIEs} } + +AreaOfInterest-ItemIEs XNAP-PROTOCOL-IES ::= { + { ID id-AreaOfInterest-Item CRITICALITY ignore TYPE AreaOfInterest-Item PRESENCE mandatory }, + ... +} + +AreaOfInterest-Item ::= SEQUENCE { + listOfTAIs ListOfTAIsinAoI OPTIONAL, + listOfCells ListOfCells OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {AreaOfInterest-Item-ExtIEs} } OPTIONAL, + ... +} + +AreaOfInterest-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +AS-SecurityInformation ::= SEQUENCE { + key-NG-RAN-Star BIT STRING (SIZE(256)), + ncc INTEGER (0..7), + iE-Extensions ProtocolExtensionContainer { {AS-SecurityInformation-ExtIEs} } OPTIONAL, + ... +} + +AS-SecurityInformation-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +AssistanceDataForRANPaging ::= SEQUENCE { + ran-paging-attempt-info RANPagingAttemptInfo OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {AssistanceDataForRANPaging-ExtIEs} } OPTIONAL, + ... +} + +AssistanceDataForRANPaging-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +AveragingWindow ::= INTEGER (0..63) + + +-- B + + +BitRate ::= INTEGER (0..4000000000000,...) + + +BroadcastPLMNs ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity + + +BroadcastPLMNinTAISupport-Item ::= SEQUENCE { + plmn-id PLMN-Identity, + tAISliceSupport-List SliceSupport-List OPTIONAL, + iE-Extension ProtocolExtensionContainer { {BroadcastPLMNinTAISupport-Item-ExtIEs} } OPTIONAL, + ... +} + +BroadcastPLMNinTAISupport-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- C + + +Cause ::= CHOICE { + radioNetwork CauseRadioNetworkLayer, + transport CauseTransportLayer, + protocol CauseProtocol, + misc CauseMisc, + choice-extension ProtocolExtensionContainer { {Cause-ExtIEs} }, -- This IE may need to be refined -- + ... +} + +Cause-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + +CauseRadioNetworkLayer ::= ENUMERATED { + cell-not-available, + handover-desirable-for-radio-reasons, + handover-target-not-allowed, + invalid-AMF-Region-ID, + no-radio-resources-available-in-target-cell, + partial-handover, + reduce-load-in-serving-cell, + resource-optimisation-handover, + time-critical-handover, + tXnRELOCoverall-expiry, + tTXnRELOCprep-expiry, + unknown-GUAMI-ID, + unknown-local-NG-RAN-node-UE-XnAP-ID, + inconsistent-remote-NG-RAN-node-UE-XnAP-ID, + encryption-and-or-integrity-protection-algorithms-not-supported, + protection-algorithms-not-supported, + multiple-PDU-session-ID-instances, + unknown-PDU-session-ID, + unknown-QoS-Flow-ID, + multiple-QoS-Flow-ID-instances, + switch-off-ongoing, + not-supported-5QI-value, + tXnDCoverall-expiry, + tXnDCprep-expiry, + action-desirable-for-radio-reasons, + reduce-load, + resource-optimisation, + time-critical-action, + target-not-allowed, + no-radio-resources-available, + invalid-QoS-combination, + encryption-algorithms-not-supported, + procedure-cancelled, + rRM-purpose, + improve-user-bit-rate, + user-inactivity, + radio-connection-with-UE-lost, + failure-in-the-radio-interface-procedure, + bearer-option-not-supported, + up-integrity-protection-not-possible, + up-confidentiality-protection-not-possible, + unspecified, + ... +} + +CauseTransportLayer ::= ENUMERATED { + transport-resource-unavailable, + unspecified, + ... +} + +CauseProtocol ::= ENUMERATED { + transfer-syntax-error, + abstract-syntax-error-reject, + abstract-syntax-error-ignore-and-notify, + message-not-compatible-with-receiver-state, + semantic-error, + abstract-syntax-error-falsely-constructed-message, + unspecified, + ... +} + +CauseMisc ::= ENUMERATED { + control-processing-overload, + hardware-failure, + o-and-M-intervention, + not-enough-user-plane-processing-resources, + unspecified, + ... +} + +CellAssistanceInfo-NR ::= CHOICE { + limitedNR-List SEQUENCE (SIZE(1..maxnoofCellsinNGRANnode)) OF NR-CGI, + full-List ENUMERATED {all-served-cells-NR, ...}, + choice-extension ProtocolExtensionContainer { {CellAssistanceInfo-NR-ExtIEs} }, -- This IE may need to be refined -- + ... +} + +CellAssistanceInfo-NR-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +COUNT-PDCP-SN12 ::= SEQUENCE { + pdcp-SN12 INTEGER (0..4095), + hfn-PDCP-SN12 INTEGER (0..1048575), + iE-Extensions ProtocolExtensionContainer { {COUNT-PDCP-SN12-ExtIEs} } OPTIONAL, + ... +} + +COUNT-PDCP-SN12-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +COUNT-PDCP-SN18 ::= SEQUENCE { + pdcp-SN18 INTEGER (0..262143), + hfn-PDCP-SN18 INTEGER (0..16383), + iE-Extensions ProtocolExtensionContainer { {COUNT-PDCP-SN18-ExtIEs} } OPTIONAL, + ... +} + +COUNT-PDCP-SN18-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +CPTransportLayerInformation ::= CHOICE { + endpointIPAddress TransportLayerAddress, + choice-extension ProtocolExtensionContainer { {CPTransportLayerInformation-ExtIEs} }, -- This IE may need to be refined -- + ... +} + +CPTransportLayerInformation-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +CriticalityDiagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL, + ... +} + +CriticalityDiagnostics-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF + SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-List-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +C-RNTI ::= BIT STRING (SIZE(16)) + + +CyclicPrefix-E-UTRA-DL ::= ENUMERATED { + normal, + extended, + ... +} + + +CyclicPrefix-E-UTRA-UL ::= ENUMERATED { + normal, + extended, + ... +} + + +-- D + + +DataforwardingInfoperPDUSession ::= SEQUENCE (SIZE(1..maxnoofPDUSessions)) OF ProtocolIE-Single-Container { {DataForwardingInfoperPDUSessionItem-IEs} } + +DataForwardingInfoperPDUSessionItem-IEs XNAP-PROTOCOL-IES ::= { + { ID id-dataforwardingInfoperPDUSession-Item CRITICALITY reject TYPE DataforwardingInfoperPDUSession-Item PRESENCE mandatory }, + ... +} + +DataforwardingInfoperPDUSession-Item ::= SEQUENCE { + pduSession-ID PDUSession-ID, + dlForwardingUPTNL UPTransportLayerInformation OPTIONAL, + iE-Extension ProtocolExtensionContainer { { DataforwardingInfoperPDUSession-Item-ExtIEs} } OPTIONAL, + ... +} + +DataforwardingInfoperPDUSession-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + +DataForwardingAccepted ::= ENUMERATED {data-forwarding-accepted, ...} +DataForwardingInfoFromTargetNGRANnode ::= SEQUENCE { + pduSessionLevelDLDataForwardingInfo UPTransportLayerInformation OPTIONAL, + dataForwardingResponseDRBItemList DataForwardingResponseDRBItemList OPTIONAL, + iE-Extension ProtocolExtensionContainer { {DataForwardingInfoFromTargetNGRANnode-ExtIEs} } OPTIONAL, + ... +} + +DataForwardingInfoFromTargetNGRANnode-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +DataForwardingResponseDRBItemList ::= SEQUENCE (SIZE(1..maxnoofDRBs)) OF ProtocolIE-Single-Container { {DataForwardingResponseDRBItem-IEs} } + +DataForwardingResponseDRBItem-IEs XNAP-PROTOCOL-IES ::= { + { ID id-DataForwardingResponseDRBItem CRITICALITY reject TYPE DataForwardingResponseDRBItem PRESENCE mandatory }, + ... +} + +DataForwardingResponseDRBItem ::= SEQUENCE { + drb-ID DRB-ID, + dlForwardingUPTNL UPTransportLayerInformation OPTIONAL, + ulForwardingUPTNL UPTransportLayerInformation OPTIONAL, + iE-Extension ProtocolExtensionContainer { {DataForwardingResponseDRBItem-ExtIEs} } OPTIONAL, + ... +} + +DataForwardingResponseDRBItem-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +DeliveryStatus ::= INTEGER (0..4095, ...) + + +DLForwarding ::= ENUMERATED {dl-forwarding-proposed, ...} + + +DRB-ID ::= INTEGER (1..32, ...) + + +DRBsSubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofDRBs)) OF ProtocolIE-Single-Container { {DRBsSubjectToStatusTransfer-ItemIEs} } + +DRBsSubjectToStatusTransfer-ItemIEs XNAP-PROTOCOL-IES ::= { + { ID id-DRBsSubjectToStatusTransfer-Item CRITICALITY ignore TYPE DRBsSubjectToStatusTransfer-Item PRESENCE mandatory }, + ... +} + +DRBsSubjectToStatusTransfer-Item ::= SEQUENCE { + drbID DRB-ID, + statusTransfer DRBBStatusTransferChoice, + iE-Extension ProtocolExtensionContainer { {DRBsSubjectToStatusTransfer-Item-ExtIEs} } OPTIONAL, + ... +} + +DRBsSubjectToStatusTransfer-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +DRBBStatusTransferChoice ::= CHOICE { + pdcp-sn-12bits DRBBStatusTransfer12bitsSN, + pdcp-sn-18bits DRBBStatusTransfer18bitsSN, + choice-extension ProtocolExtensionContainer { {DRBBStatusTransferChoice-ExtIEs} }, -- This IE may need to be refined -- + ... +} + +DRBBStatusTransferChoice-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +DRBBStatusTransfer12bitsSN ::= SEQUENCE { + receiveStatusofPDCPSDU BIT STRING (SIZE(1..2048)) OPTIONAL, + ulCOUNTValue COUNT-PDCP-SN12, + dlCOUNTValue COUNT-PDCP-SN12, + iE-Extension ProtocolExtensionContainer { {DRBBStatusTransfer12bitsSN-ExtIEs} } OPTIONAL, + ... +} + +DRBBStatusTransfer12bitsSN-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +DRBBStatusTransfer18bitsSN ::= SEQUENCE { + receiveStatusofPDCPSDU BIT STRING (SIZE(1..131072)) OPTIONAL, + ulCOUNTValue COUNT-PDCP-SN18, + dlCOUNTValue COUNT-PDCP-SN18, + iE-Extension ProtocolExtensionContainer { {DRBBStatusTransfer18bitsSN-ExtIEs} } OPTIONAL, + ... +} + +DRBBStatusTransfer18bitsSN-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +DRBToQoSFlowMapping-List ::= SEQUENCE (SIZE (1..maxnoofDRBs)) OF ProtocolIE-Single-Container { {DRBToQoSFlowMapping-ItemIEs} } + +DRBToQoSFlowMapping-ItemIEs XNAP-PROTOCOL-IES ::= { + { ID id-DRBToQoSFlowMapping-Item CRITICALITY ignore TYPE DRBToQoSFlowMapping-Item PRESENCE mandatory }, + ... +} + +DRBToQoSFlowMapping-Item ::= SEQUENCE { + drb-ID DRB-ID, + qosFlows-List QoSFlows-List, + iE-Extension ProtocolExtensionContainer { {DRBToQoSFlowMapping-Item-ExtIEs} } OPTIONAL, + ... +} + +DRBToQoSFlowMapping-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +Dynamic5QIDescriptor ::= SEQUENCE { + priorityLevel INTEGER (1..128), + packetDelayBudget PacketDelayBudget, + packetErrorRate PacketErrorRate, + delayCritical ENUMERATED {delay-critical, non-delay-critical, ...} OPTIONAL, +-- This IE shall be present if the GBR QoS Flow Information IE is present in the QoS Flow Level QoS Parameters IE. + averagingWindow AveragingWindow OPTIONAL, +-- This IE shall be present if the GBR QoS Flow Information IE is present in the QoS Flow Level QoS Parameters IE. + maximumDataBurstVolume MaximumDataBurstVolume OPTIONAL, + iE-Extension ProtocolExtensionContainer { {Dynamic5QIDescriptor-ExtIEs } } OPTIONAL, + ... +} + +Dynamic5QIDescriptor-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- E + + +E-RAB-ID ::= INTEGER (0..15, ...) + + +E-UTRAARFCN ::= INTEGER (0..maxEARFCN) + + +E-UTRA-Cell-Identity ::= BIT STRING (SIZE(28)) + + +E-UTRA-CGI ::= SEQUENCE { + plmn-id PLMN-Identity, + e-utra-CI E-UTRA-Cell-Identity, + iE-Extension ProtocolExtensionContainer { {E-UTRA-CGI-ExtIEs} } OPTIONAL, + ... +} + +E-UTRA-CGI-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +E-UTRAFrequencyBandIndicator ::= INTEGER (1..256, ...) + + +E-UTRAMultibandInfoList ::= SEQUENCE (SIZE(1..maxnoofEUTRABands)) OF E-UTRAFrequencyBandIndicator + + +E-UTRAPCI ::= INTEGER (0..503, ...) + + +E-UTRAPRACHConfiguration ::= SEQUENCE { + rootSequenceIndex INTEGER (0..837), + zeroCorrelationIndex INTEGER (0..15), + highSpeedFlag ENUMERATED {true, false, ...}, + prach-FreqOffset INTEGER (0..94), + prach-ConfigIndex INTEGER (0..63) OPTIONAL, -- present for TDD -- + iE-Extensions ProtocolExtensionContainer { {E-UTRAPRACHConfiguration-ExtIEs} } OPTIONAL, + ... +} + +E-UTRAPRACHConfiguration-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +E-UTRATransmissionBandwidth ::= ENUMERATED {bw6, bw15, bw25, bw50, bw75, bw100, ..., bw1} + +EventType ::= ENUMERATED { + report-upon-change-of-serving-cell, + report-UE-moving-presence-into-or-out-of-the-Area-of-Interest, + ... +} + + +-- F + + +-- G + + +GBRQoSFlowInfo ::= SEQUENCE { + maxFlowBitRateDL BitRate, + maxFlowBitRateUL BitRate, + guaranteedFlowBitRateDL BitRate, + guaranteedFlowBitRateUL BitRate, + notificationControl ENUMERATED {notification-requested, ...} OPTIONAL, + maxPacketLossRateDL PacketLossRate OPTIONAL, + maxPacketLossRateUL PacketLossRate OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {GBRQoSFlowInfo-ExtIEs} } OPTIONAL, + ... +} + +GBRQoSFlowInfo-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + +GlobalgNB-ID ::= SEQUENCE { + plmn-id PLMN-Identity, + gnb-id GNB-ID-Choice, + iE-Extensions ProtocolExtensionContainer { {GlobalgNB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobalgNB-ID-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +GNB-ID-Choice ::= CHOICE { + gnb-ID BIT STRING (SIZE(22..32)), + choice-extension ProtocolExtensionContainer { {GNB-ID-Choice-ExtIEs} }, -- This IE may need to be refined -- + ... +} + +GNB-ID-Choice-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +GlobalngeNB-ID ::= SEQUENCE { + plmn-id PLMN-Identity, + enb-id ENB-ID-Choice, + iE-Extensions ProtocolExtensionContainer { {GlobaleNB-ID-ExtIEs} } OPTIONAL, + ... +} + +GlobaleNB-ID-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +ENB-ID-Choice ::= CHOICE { + enb-ID-macro BIT STRING (SIZE(20)), + enb-ID-shortmacro BIT STRING (SIZE(18)), + enb-ID-longmacro BIT STRING (SIZE(21)), + choice-extension ProtocolExtensionContainer { {ENB-ID-Choice-ExtIEs} }, -- This IE may need to be refined -- + ... +} + +ENB-ID-Choice-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +GlobalNG-RANNode-ID ::= CHOICE { + gNB GlobalgNB-ID, + ng-eNB GlobalngeNB-ID, + choice-extension ProtocolExtensionContainer { {GlobalNG-RANNode-ID-ExtIEs} }, -- This IE may need to be refined -- + ... +} + +GlobalNG-RANNode-ID-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +GTP-TEID ::= OCTET STRING (SIZE(4)) + + +GTPtunnelTransportLayerInformation ::= SEQUENCE { + tnl-address TransportLayerAddress, + gtp-teid GTP-TEID, + iE-Extensions ProtocolExtensionContainer { {GTPtunnelTransportLayerInformation-ExtIEs} } OPTIONAL, + ... +} + +GTPtunnelTransportLayerInformation-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +GUAMI ::= SEQUENCE { + plmn-ID PLMN-Identity, + amf-region-if OCTET STRING (SIZE (2)), + amf-set-id BIT STRING (SIZE (4)), + amf-pointer BIT STRING (SIZE (4)), + iE-Extensions ProtocolExtensionContainer { {GUAMI-ExtIEs} } OPTIONAL, + ... +} + +GUAMI-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + +-- H + + +-- I + + +I-RNTI ::= BIT STRING (SIZE(40)) -- This IE may need to be refined + + +-- J + + +-- K + + +-- L + + +ListOfTAI::= SEQUENCE (SIZE(1..maxnoofTAI)) OF TAI-Item + +TAI-Item ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + tAC TAC, + iE-Extensions ProtocolExtensionContainer { {TAI-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +ListOfCells ::= SEQUENCE (SIZE(1..maxnoofCellsinAoI)) OF CellsinAoI-Item + +CellsinAoI-Item ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + ng-ran-cell-id NG-RAN-Cell-Identity, + iE-Extensions ProtocolExtensionContainer { {CellsinAoI-Item-ExtIEs} } OPTIONAL, + ... +} + +CellsinAoI-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +ListOfTAIsinAoI ::= SEQUENCE (SIZE(1..maxnoofTAIsinAoI)) OF TAIsinAoI-Item + +TAIsinAoI-Item ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + tAC TAC, + iE-Extensions ProtocolExtensionContainer { {TAIsinAoI-Item-ExtIEs} } OPTIONAL, + ... +} + +TAIsinAoI-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +LocationReportingInformation ::= SEQUENCE { + eventType EventType, + reportArea ReportArea, + areaOfInterest AreaOfInterest OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {LocationReportingInformation-ExtIEs} } OPTIONAL, + ... +} + +LocationReportingInformation-ExtIEs XNAP-PROTOCOL-EXTENSION ::={ + ... +} + + +-- M + + +MAC-I ::= BIT STRING (SIZE(16)) + + +MaskedIMEISV ::= BIT STRING (SIZE(64)) + + +MaximumDataBurstVolume ::= INTEGER (0..63) + + +MBSFNSubframeAllocation-E-UTRA ::= CHOICE { + oneframe BIT STRING (SIZE(6)), + fourframes BIT STRING (SIZE(24)), + choice-extension ProtocolExtensionContainer { {MBSFNSubframeAllocation-E-UTRA-ExtIEs} },-- This IE may need to be refined -- + ... +} + +MBSFNSubframeAllocation-E-UTRA-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +MBSFNSubframeInfo-E-UTRA ::= SEQUENCE (SIZE(1..maxnoofMBSFNEUTRA)) OF MBSFNSubframeInfo-E-UTRA-Item + + +MBSFNSubframeInfo-E-UTRA-Item ::= SEQUENCE { + radioframeAllocationPeriod ENUMERATED{n1,n2,n4,n8,n16,n32,...}, + radioframeAllocationOffset INTEGER (0..7, ...), + subframeAllocation MBSFNSubframeAllocation-E-UTRA, + iE-Extensions ProtocolExtensionContainer { {MBSFNSubframeInfo-E-UTRA-Item-ExtIEs} } OPTIONAL, + ... +} + +MBSFNSubframeInfo-E-UTRA-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::={ + ... +} + + +MobilityRestrictionList ::= SEQUENCE { + serving-PLMN PLMN-Identity, + equivalent-PLMNs SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity OPTIONAL, + rat-Restrictions RAT-RestrictionsList OPTIONAL, + forbiddenAreaInformation ForbiddenAreaList OPTIONAL, + serviceAreaInformation ServiceAreaList OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {MobilityRestrictionList-ExtIEs} } OPTIONAL, + ... +} + +MobilityRestrictionList-ExtIEs XNAP-PROTOCOL-EXTENSION ::={ + ... +} + + +RAT-RestrictionsList ::= SEQUENCE (SIZE(1..maxnoofPLMNs)) OF RAT-RestrictionsItem + + +RAT-RestrictionsItem ::= SEQUENCE { + plmn-Identity PLMN-Identity, + rat-RestrictionInformation RAT-RestrictionInformation, + iE-Extensions ProtocolExtensionContainer { {RAT-RestrictionsItem-ExtIEs} } OPTIONAL, + ... +} + +RAT-RestrictionsItem-ExtIEs XNAP-PROTOCOL-EXTENSION ::={ + ... +} + + +RAT-RestrictionInformation ::= BIT STRING {e-UTRA (0),nR (1)} (SIZE(8, ...)) + + +ForbiddenAreaList ::= SEQUENCE (SIZE(1..maxnoofPLMNs)) OF ForbiddenAreaItem + + +ForbiddenAreaItem ::= SEQUENCE { + plmn-Identity PLMN-Identity, + forbidden-TACs SEQUENCE (SIZE(1..maxnoofForbiddenTACs)) OF TAC, + iE-Extensions ProtocolExtensionContainer { {ForbiddenAreaItem-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenAreaItem-ExtIEs XNAP-PROTOCOL-EXTENSION ::={ + ... +} + + +ServiceAreaList ::= SEQUENCE (SIZE(1..maxnoofPLMNs)) OF ServiceAreaItem + + +ServiceAreaItem ::= SEQUENCE { + plmn-Identity PLMN-Identity, + allowed-TACs-ServiceArea SEQUENCE (SIZE(1..maxnoofAllowedAreas)) OF TAC, + not-allowed-TACs-ServiceArea SEQUENCE (SIZE(1..maxnoofAllowedAreas)) OF TAC, + iE-Extensions ProtocolExtensionContainer { {ServiceAreaItem-ExtIEs} } OPTIONAL, + ... +} + +ServiceAreaItem-ExtIEs XNAP-PROTOCOL-EXTENSION ::={ + ... +} + + +-- N + + +NeighbourInformation-E-UTRA ::= SEQUENCE (SIZE(1..maxnoofNeighbours)) OF NeighbourInformation-E-UTRA-Item + +NeighbourInformation-E-UTRA-Item ::= SEQUENCE { + e-utra-PCI E-UTRAPCI, + e-utra-cgi E-UTRA-CGI, + earfcn E-UTRAARFCN, + tac TAC, + iE-Extensions ProtocolExtensionContainer { {NeighbourInformation-E-UTRA-Item-ExtIEs} } OPTIONAL, + ... +} + +NeighbourInformation-E-UTRA-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::={ + ... +} + + +NeighbourInformation-NR ::= SEQUENCE (SIZE(1..maxnoofNeighbours)) OF NeighbourInformation-NR-Item + +NeighbourInformation-NR-Item ::= SEQUENCE { + e-utra-cgi E-UTRA-CGI, + e-utra-PCI E-UTRAPCI, + earfcn E-UTRAARFCN, + tac TAC, + nr-mode-info NeighbourInformation-NR-ModeInfo, + iE-Extensions ProtocolExtensionContainer { {NeighbourInformation-NR-Item-ExtIEs} } OPTIONAL, + ... +} + +NeighbourInformation-NR-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::={ + ... +} + + +NeighbourInformation-NR-ModeInfo ::= CHOICE { + fdd-info NeighbourInformation-NR-ModeFDDInfo, + tdd-info NeighbourInformation-NR-ModeTDDInfo, + choice-extension ProtocolExtensionContainer { {NeighbourInformation-NR-ModeInfo-ExtIEs} }, -- This IE may need to be refined -- + ... +} + +NeighbourInformation-NR-ModeInfo-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +NeighbourInformation-NR-ModeFDDInfo ::= SEQUENCE { + ul-NR-FreqInfo NRFrequencyInfo, + dl-NR-FequInfo NRFrequencyInfo, + ie-Extensions ProtocolExtensionContainer { {NeighbourInformation-NR-ModeFDDInfo-ExtIEs} } OPTIONAL, + ... +} + +NeighbourInformation-NR-ModeFDDInfo-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +NeighbourInformation-NR-ModeTDDInfo ::= SEQUENCE { + nr-FreqInfo NRFrequencyInfo, + ie-Extensions ProtocolExtensionContainer { {NeighbourInformation-NR-ModeTDDInfo-ExtIEs} } OPTIONAL, + ... +} + +NeighbourInformation-NR-ModeTDDInfo-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +NG-RAN-Cell-Identity ::= CHOICE { + nr NR-Cell-Identity, + e-utra E-UTRA-Cell-Identity, + choice-extension ProtocolExtensionContainer { {NG-RAN-Cell-Identity-ExtIEs} }, -- This IE may need to be refined -- + ... +} + +NG-RAN-Cell-Identity-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +NG-RAN-CellPCI ::= CHOICE { + nr NRPCI, + e-utra E-UTRAPCI, + choice-extension ProtocolExtensionContainer { {NG-RAN-CellPCI-ExtIEs} }, -- This IE may need to be refined -- + ... +} + +NG-RAN-CellPCI-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +NG-RANnodeUEXnAPID ::= INTEGER (0.. 4294967295) + + +NonDynamic5QIDescriptor ::= SEQUENCE { + fiveQI INTEGER (0..255), + priorityLevel INTEGER (1..128) OPTIONAL, + averagingWindow AveragingWindow OPTIONAL, + maximumDataBurstVolume MaximumDataBurstVolume OPTIONAL, + iE-Extension ProtocolExtensionContainer { {NonDynamic5QIDescriptor-ExtIEs } } OPTIONAL, + ... +} + +NonDynamic5QIDescriptor-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +NRARFCN ::= INTEGER (0.. maxNRARFCN) + + +NR-Cell-Identity ::= BIT STRING (SIZE (36)) + + +NG-RAN-Cell-Identity-ListinRANPagingArea ::= SEQUENCE (SIZE (1..maxnoofCellsinRNA)) OF NG-RAN-Cell-Identity + + +NR-CGI ::= SEQUENCE { + plmn-id PLMN-Identity, + nr-CI NR-Cell-Identity, + iE-Extension ProtocolExtensionContainer { {NR-CGI-ExtIEs} } OPTIONAL, + ... +} + +NR-CGI-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +NRFrequencyBand ::= INTEGER (1..1024, ...) + + +NRFrequencyBand-List ::= SEQUENCE (SIZE(1..maxnoofNRCellBands)) OF NRFrequencyBandItem + +NRFrequencyBandItem ::= SEQUENCE { + nr-frequency-band NRFrequencyBand, + supported-SUL-Band-List SupportedSULBandList OPTIONAL, + iE-Extension ProtocolExtensionContainer { {NRFrequencyBandItem-ExtIEs} } OPTIONAL, + ... +} + +NRFrequencyBandItem-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + + +NRFrequencyInfo ::= SEQUENCE { + nrARFCN NRARFCN, + sul-information SUL-Information OPTIONAL, + frequencyBand-List NRFrequencyBand-List, + iE-Extension ProtocolExtensionContainer { {NRFrequencyInfo-ExtIEs} } OPTIONAL, + ... +} + +NRFrequencyInfo-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +NRModeInfo ::= CHOICE { + fdd NRModeInfoFDD, + tdd NRModeInfoTDD, + choice-extension ProtocolExtensionContainer { {NRModenInfor-ExtIEs} }, -- This IE may need to be refined -- + ... +} + +NRModeInfoFDD-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + +NRModeInfoFDD ::= SEQUENCE { + ulNRFrequencyInfo NRFrequencyInfo, + dlNRFrequencyInfo NRFrequencyInfo, + ulNRTransmissonBandwidth NRTransmissionBandwidth, + dlNRTransmissonBandwidth NRTransmissionBandwidth, + iE-Extension ProtocolExtensionContainer { {NRModeInfoFDD-ExtIEs} } OPTIONAL, + ... +} + +NRModeInfoTDD ::= SEQUENCE { + nrFrequencyInfo NRFrequencyInfo, + nrTransmissonBandwidth NRTransmissionBandwidth, + iE-Extension ProtocolExtensionContainer { {NRModeInfoTDD-ExtIEs} } OPTIONAL, + ... +} + +NRModeInfoTDD-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +NRModenInfor-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + +NRPCI ::= INTEGER (0..1007, ...) + +NRTransmissionBandwidth ::= INTEGER (0..65535, ...) + + +NumberOfAntennaPorts-E-UTRA ::= ENUMERATED {an1, an2, an3, ...} + + +-- O + + +-- P + + +PacketDelayBudget ::= INTEGER (0..63) + + +PacketErrorRate ::= INTEGER (0..63) + + +PacketLossRate ::= INTEGER (0..1000) + + +PagingDRX ::= INTEGER (0..63) -- This IE may need to be refined + + +PDUSessionResourcesAdmitted-List ::= SEQUENCE (SIZE(1..maxnoofPDUSessions))OF ProtocolIE-Single-Container { {PDUSessionResourcesAdmitted-ItemIEs} } + +PDUSessionResourcesAdmitted-ItemIEs XNAP-PROTOCOL-IES ::= { + { ID id-PDUSessionResourcesAdmitted-Item CRITICALITY reject TYPE PDUSessionResourcesAdmitted-Item PRESENCE mandatory }, + ... +} + +PDUSessionResourcesAdmitted-Item ::= SEQUENCE { + pduSessionId PDUSession-ID, + pduSessionResourceAdmittedInfo PDUSessionResourceAdmittedInfo OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {PDUSessionResourcesAdmitted-Item-ExtIEs} } OPTIONAL, + ... +} + +PDUSessionResourcesAdmitted-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +PDUSessionResourceAdmittedInfo ::= SEQUENCE { + qosFlowsAdmitted-List QoSFlowsAdmitted-List OPTIONAL, + qosFlowsNotAdmitted-List QoSFlowsNotAdmitted-List OPTIONAL, + dataForwardingInfoFromTarget DataForwardingInfoFromTargetNGRANnode OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {PDUSessionResourceAdmittedResponseTransferItem-ExtIEs} } OPTIONAL, + ... +} + +PDUSessionResourceAdmittedResponseTransferItem-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +PDUSessionResourcesNotAdmitted-List ::= SEQUENCE (SIZE (1..maxnoofPDUSessions)) OF ProtocolIE-Single-Container { {PDUSessionResourcesNotAdmitted-ItemIEs} } + +PDUSessionResourcesNotAdmitted-ItemIEs XNAP-PROTOCOL-IES ::= { + { ID id-PDUSessionResourcesNotAdmitted-Item CRITICALITY reject TYPE PDUSessionResourcesNotAdmitted-Item PRESENCE mandatory }, + ... +} + +PDUSessionResourcesNotAdmitted-Item ::= SEQUENCE { + pduSessionId PDUSession-ID, + cause Cause OPTIONAL, + iE-Extension ProtocolExtensionContainer { {PDUSessionResourcesNotAdmitted-Item-Item-ExtIEs} } OPTIONAL, + ... +} + +PDUSessionResourcesNotAdmitted-Item-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +PDUSessionResourcesToBeSetup-List ::= SEQUENCE (SIZE(1..maxnoofPDUSessions))OF ProtocolIE-Single-Container { {PDUSessionResourcesToBeSetup-ItemIEs} } + +PDUSessionResourcesToBeSetup-ItemIEs XNAP-PROTOCOL-IES ::= { + { ID id-PDUSessionResourcesToBeSetup-Item CRITICALITY reject TYPE PDUSessionResourcesToBeSetup-Item PRESENCE mandatory }, + ... +} + +PDUSessionResourcesToBeSetup-Item ::= SEQUENCE { + pduSessionId PDUSession-ID, + s-NSSAI S-NSSAI, + pduSessionAMBR OCTET STRING, -- This IE may need to be refined + uL-NG-U-TNLatUPF UPTransportLayerInformation, + securityIndication SecurityIndication OPTIONAL, + pduSessionType PDUSessionType, + qosFlowsToBeSetup-List QoSFlowsToBeSetup-List, + sourceDRBtoQoSFlowMapping DRBToQoSFlowMapping-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {PDUSessionResourcesToBeSetup-Item-ExtIEs} } OPTIONAL, + ... +} + +PDUSessionResourcesToBeSetup-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +PDUSessionType ::= ENUMERATED {ipv4, ipv6, ipv4v6, ethernet, unstructured, ...} + +PDUSession-ID ::= INTEGER (0..255) + + +PLMN-Identity ::= OCTET STRING (SIZE(3)) + + +-- Q + + +QoSCharacteristics ::= CHOICE { + non-dynamic NonDynamic5QIDescriptor, + dynamic Dynamic5QIDescriptor, + choice-extension ProtocolExtensionContainer { {QoSCharacteristics-ExtIEs} }, -- This IE may need to be refined -- + ... +} + +QoSCharacteristics-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +QoSFlowIndicator ::= INTEGER (0..63, ...) + + +QoSFlowLevelQoSParameters ::= SEQUENCE { + qos-characteristics QoSCharacteristics, + allocationAndRetentionPrio AllocationandRetentionPriority, + gBRQoSFlowInfo GBRQoSFlowInfo OPTIONAL, + relectiveQoS ReflectiveQoSAttribute OPTIONAL, + additionalQoSflowInfo ENUMERATED {more-likely, ...} OPTIONAL, + pPI INTEGER(1..8, ...) OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {QoSFlowLevelQoSParameters-ExtIEs} } OPTIONAL, + ... +} + +QoSFlowLevelQoSParameters-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +QoSFlows-List ::= SEQUENCE (SIZE (1..maxnoofQoSFlows)) OF ProtocolIE-Single-Container { {QoSFlow-ItemIEs} } + +QoSFlow-ItemIEs XNAP-PROTOCOL-IES ::= { + { ID id-QoSFlow-Item CRITICALITY reject TYPE QoSFlow-Item PRESENCE mandatory }, + ... +} + +QoSFlow-Item ::= SEQUENCE { + qfi QoSFlowIndicator, + iE-Extension ProtocolExtensionContainer { {QoSFlow-Item-ExtIEs} } OPTIONAL, + ... +} + +QoSFlow-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +QoSFlowsAdmitted-List ::= SEQUENCE (SIZE (1..maxnoofQoSFlows)) OF ProtocolIE-Single-Container { {QoSFlowAdmitted-ItemIEs} } + +QoSFlowAdmitted-ItemIEs XNAP-PROTOCOL-IES ::= { + { ID id-QoSFlowAdmitted-Item CRITICALITY reject TYPE QoSFlowAdmitted-Item PRESENCE mandatory }, + ... +} + +QoSFlowAdmitted-Item ::= SEQUENCE { + qfi QoSFlowIndicator, + dataForwardingAccepted DataForwardingAccepted OPTIONAL, + iE-Extension ProtocolExtensionContainer { {QoSFlowAdmitted-Item-ExtIEs} } OPTIONAL, + ... +} + +QoSFlowAdmitted-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +QoSFlowsNotAdmitted-List ::= SEQUENCE (SIZE (1..maxnoofQoSFlows)) OF ProtocolIE-Single-Container { {QoSFlowNotAdmitted-ItemIEs} } + +QoSFlowNotAdmitted-ItemIEs XNAP-PROTOCOL-IES ::= { + { ID id-QoSFlowNotAdmitted-Item CRITICALITY reject TYPE QoSFlowNotAdmitted-Item PRESENCE mandatory }, + ... +} + +QoSFlowNotAdmitted-Item ::= SEQUENCE { + qfi QoSFlowIndicator, + cause Cause, + iE-Extension ProtocolExtensionContainer { {QoSFlowNotAdmitted-Item-ExtIEs} } OPTIONAL, + ... +} + +QoSFlowNotAdmitted-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +QoSFlowsToBeSetup-List ::= SEQUENCE (SIZE (1..maxnoofQoSFlows)) OF ProtocolIE-Single-Container { {QoSFlowsToBeSetup-ItemIEs} } + +QoSFlowsToBeSetup-ItemIEs XNAP-PROTOCOL-IES ::= { + { ID id-QoSFlowsToBeSetup-Item CRITICALITY reject TYPE QoSFlowsToBeSetup-Item PRESENCE mandatory }, + ... +} + +QoSFlowsToBeSetup-Item ::= SEQUENCE { + qfi QoSFlowIndicator, + dlDataForwarding DLForwarding OPTIONAL, + qosFlowLevelQoSParameters QoSFlowLevelQoSParameters, + e-RAB-ID E-RAB-ID OPTIONAL, + iE-Extension ProtocolExtensionContainer { {QoSFlowsToBeSetup-Item-ExtIEs} } OPTIONAL, + ... +} + +QoSFlowsToBeSetup-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- R + + +RANAC ::= BIT STRING (SIZE(6)) + + +RANAreaID ::= SEQUENCE { + tAC TAC, + rANAC RANAC OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {RANAreaID-ExtIEs} } OPTIONAL, + ... +} + +RANAreaID-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +RANAreaID-List ::= SEQUENCE (SIZE(1..maxnoofRANAreasinRNA)) OF RANAreaID + + +RANAC-Item ::= SEQUENCE { + rANAC RANAC, + iE-Extensions ProtocolExtensionContainer { {RANAC-Item-ExtIEs} } OPTIONAL, + ... +} + +RANAC-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +RANPagingArea ::= SEQUENCE { + pLMN-Identity PLMN-Identity, + rANPagingAreaChoice RANPagingAreaChoice, + iE-Extensions ProtocolExtensionContainer { {RANPagingArea-ExtIEs} } OPTIONAL, + ... +} + +RANPagingArea-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + +RANPagingAreaChoice ::= CHOICE { + cell-List NG-RAN-Cell-Identity-ListinRANPagingArea, + rANAreaID-List RANAreaID-List, + choice-extension ProtocolExtensionContainer { {RANPagingAreaChoice-ExtIEs} }, -- This IE may need to be refined -- + ... +} + +RANPagingAreaChoice-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +RANPagingAttemptInfo ::= SEQUENCE { + pagingAttemptCount INTEGER (1..16, ...), + intendedNumberOfPagingAttempts INTEGER (1..16, ...), + nextPagingAreaScope ENUMERATED {same, changed, ...} OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {RANPagingAttemptInfo-ExtIEs} } OPTIONAL, + ... +} + +RANPagingAttemptInfo-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +RANPagingPriority ::= INTEGER (1..256) + + +ReferenceID ::= INTEGER (1..64, ...) -- This IE may need to be refined. + + +ReflectiveQoSAttribute ::= ENUMERATED {subject-to-reflective-QoS, ...} + + +ReportArea ::= ENUMERATED { + cell, + ... +} + + +ResetRequestTypeInfo ::= CHOICE { + fullReset ResetRequestTypeInfo-Full, + partialReset ResetRequestTypeInfo-Partial, + choice-extension ProtocolExtensionContainer { {ResetRequestTypeInfo-ExtIEs} }, -- This IE may need to be refined -- + ... +} + +ResetRequestTypeInfo-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + +ResetRequestTypeInfo-Full ::= SEQUENCE { + iE-Extension ProtocolExtensionContainer { {ResetRequestTypeInfo-Full-ExtIEs} } OPTIONAL, + ... +} + +ResetRequestTypeInfo-Full-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + +ResetRequestTypeInfo-Partial ::= SEQUENCE { + ue-contexts-ToBeReleasedList ResetRequestPartialReleaseList, + iE-Extension ProtocolExtensionContainer { {ResetRequestTypeInfo-Partial-ExtIEs} } OPTIONAL, + ... +} + +ResetRequestTypeInfo-Partial-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + +ResetRequestPartialReleaseList ::= SEQUENCE (SIZE(1..maxnoofUEContexts)) OF ProtocolIE-Single-Container { {ResetRequestPartialReleaseItemIEs} } + +ResetRequestPartialReleaseItemIEs XNAP-PROTOCOL-IES ::= { + { ID id-ResetRequestPartialReleaseItem CRITICALITY reject TYPE ResetRequestPartialReleaseItem PRESENCE mandatory}, + ... +} + +ResetRequestPartialReleaseItem ::= SEQUENCE { + ng-ran-node1UEXnAPID NG-RANnodeUEXnAPID, + ng-ran-node2UEXnAPID NG-RANnodeUEXnAPID, + iE-Extensions ProtocolExtensionContainer { {ResetRequestPartialReleaseItem-ExtIEs} } OPTIONAL, + ... +} + +ResetRequestPartialReleaseItem-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +ResetResponseTypeInfo ::= CHOICE { + fullReset ResetResponseTypeInfo-Full, + partialReset ResetResponseTypeInfo-Partial, + choice-extension ProtocolExtensionContainer { {ResetResponseTypeInfo-ExtIEs} }, -- This IE may need to be refined -- + ... +} + +ResetResponseTypeInfo-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + +ResetResponseTypeInfo-Full ::= SEQUENCE { + iE-Extension ProtocolExtensionContainer { {ResetResponseTypeInfo-Full-ExtIEs} } OPTIONAL, + ... +} + +ResetResponseTypeInfo-Full-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + +ResetResponseTypeInfo-Partial ::= SEQUENCE { + ue-contexts-AdmittedToBeReleasedList ResetResponsePartialReleaseList, + iE-Extension ProtocolExtensionContainer { {ResetResponseTypeInfo-Partial-ExtIEs} } OPTIONAL, + ... +} + +ResetResponseTypeInfo-Partial-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + +ResetResponsePartialReleaseList ::= SEQUENCE (SIZE(1..maxnoofUEContexts)) OF ProtocolIE-Single-Container { {ResetResponsePartialReleaseItemIEs} } + +ResetResponsePartialReleaseItemIEs XNAP-PROTOCOL-IES ::= { + { ID id-ResetResponsePartialReleaseItem CRITICALITY reject TYPE ResetResponsePartialReleaseItem PRESENCE mandatory}, + ... +} + +ResetResponsePartialReleaseItem ::= SEQUENCE { + ng-ran-node1UEXnAPID NG-RANnodeUEXnAPID, + ng-ran-node2UEXnAPID NG-RANnodeUEXnAPID, + iE-Extensions ProtocolExtensionContainer { {ResetResponsePartialReleaseItem-ExtIEs} } OPTIONAL, + ... +} + +ResetResponsePartialReleaseItem-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +RLCMode ::= ENUMERATED {rlc-am, rlc-um} + + +RFSP-Index ::= INTEGER (1..256) + + +-- S + + +SCGConfigurationQuery ::= ENUMERATED {true, ...} + + +SecurityIndication ::= SEQUENCE { + integrityProtectionIndication ENUMERATED {required, preferred, not-needed, ...}, + confidentialityProtectionIndication ENUMERATED {required, preferred, not-needed, ...}, + iE-Extensions ProtocolExtensionContainer { {SecurityIndication-ExtIEs} } OPTIONAL, + ... +} + +SecurityIndication-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- Served Cells E-UTRA IEs + + +ServedCellInformation-E-UTRA ::= SEQUENCE { + e-utra-pci E-UTRAPCI, + e-utra-cgi E-UTRA-CGI, + tac TAC, + broadcastPLMNs SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF ServedCellInformation-E-UTRA-perBPLMN, + numberofAntennaPorts NumberOfAntennaPorts-E-UTRA OPTIONAL, + prach-configuration E-UTRAPRACHConfiguration OPTIONAL, + mBSFNsubframeInfo MBSFNSubframeInfo-E-UTRA OPTIONAL, + multibandInfo E-UTRAMultibandInfoList OPTIONAL, + freqBandIndicatorPriority ENUMERATED {not-broadcast, broadcast, ...} OPTIONAL, + bandwidthReducedSI ENUMERATED {scheduled, ...} OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ServedCellInformation-E-UTRA-ExtIEs} } OPTIONAL, + ... +} + +ServedCellInformation-E-UTRA-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +ServedCellInformation-E-UTRA-perBPLMN ::= SEQUENCE { + plmn-id PLMN-Identity, + e-utra-mode-info ServedCellInformation-E-UTRA-perBPLMN-ModeInfo, + iE-Extensions ProtocolExtensionContainer { {ServedCellInformation-E-UTRA-perBPLMN-ExtIEs} } OPTIONAL, + ... +} + +ServedCellInformation-E-UTRA-perBPLMN-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +ServedCellInformation-E-UTRA-perBPLMN-ModeInfo ::= CHOICE { + fdd ServedCellInformation-E-UTRA-perBPLMN-FDDInfo, + tdd ServedCellInformation-E-UTRA-perBPLMN-TDDInfo, + choice-extension ProtocolExtensionContainer { {ServedCellInformation-E-UTRA-perBPLMN-ModeInfo-ExtIEs} },-- This IE may need to be refined + ... +} + +ServedCellInformation-E-UTRA-perBPLMN-ModeInfo-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +ServedCellInformation-E-UTRA-perBPLMN-FDDInfo ::= SEQUENCE { + ul-earfcn E-UTRAARFCN, + dl-earfcn E-UTRAARFCN, + ul-e-utraTxBW E-UTRATransmissionBandwidth, + dl-e-utraTxBW E-UTRATransmissionBandwidth, + iE-Extensions ProtocolExtensionContainer { {ServedCellInformation-E-UTRA-perBPLMN-FDDInfo-ExtIEs} } OPTIONAL, + ... +} + +ServedCellInformation-E-UTRA-perBPLMN-FDDInfo-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +ServedCellInformation-E-UTRA-perBPLMN-TDDInfo ::= SEQUENCE { + earfcn E-UTRAARFCN, + e-utraTxBW E-UTRATransmissionBandwidth, + subframeAssignmnet ENUMERATED {sa0,sa1,sa2,sa3,sa4,sa5,sa6,...}, + specialSubframeInfo SpecialSubframeInfo-E-UTRA, + iE-Extensions ProtocolExtensionContainer { {ServedCellInformation-E-UTRA-perBPLMN-TDDInfo-ExtIEs} } OPTIONAL, + ... +} + +ServedCellInformation-E-UTRA-perBPLMN-TDDInfo-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +ServedCells-E-UTRA ::= SEQUENCE (SIZE (1..maxnoofCellsinNGRANnode)) OF ServedCells-E-UTRA-Item + +ServedCells-E-UTRA-Item ::= SEQUENCE { + served-cell-info-E-UTRA ServedCellInformation-E-UTRA, + neighbour-info-NR NeighbourInformation-NR OPTIONAL, + neighbour-info-E-UTRA NeighbourInformation-E-UTRA OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ServedCells-E-UTRA-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedCells-E-UTRA-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +ServedCellsToUpdate-E-UTRA ::= SEQUENCE { + served-Cells-ToAdd-E-UTRA ServedCells-E-UTRA OPTIONAL, + served-Cells-ToModify-E-UTRA ServedCells-ToModify-E-UTRA OPTIONAL, + served-Cells-ToDelete-E-UTRA SEQUENCE (SIZE (1..maxnoofCellsinNGRANnode)) OF E-UTRA-CGI OPTIONAL, +iE-Extensions ProtocolExtensionContainer { {ServedCellsToUpdate-E-UTRA-ExtIEs} } OPTIONAL, + ... +} + +ServedCellsToUpdate-E-UTRA-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +ServedCells-ToModify-E-UTRA ::= SEQUENCE (SIZE (1..maxnoofCellsinNGRANnode)) OF ServedCells-ToModify-E-UTRA-Item + +ServedCells-ToModify-E-UTRA-Item ::= SEQUENCE { + old-ECGI E-UTRA-CGI, + served-cell-info-E-UTRA ServedCellInformation-E-UTRA, + neighbour-info-NR NeighbourInformation-NR OPTIONAL, + neighbour-info-E-UTRA NeighbourInformation-E-UTRA OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Served-cells-ToModify-E-UTRA-Item-ExtIEs} } OPTIONAL, + ... +} + +Served-cells-ToModify-E-UTRA-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- Served Cells NR IEs + + +ServedCellInformation-NR ::= SEQUENCE { + nrPCI NRPCI, + cellID NR-CGI, + tac TAC, + ranac RANAC OPTIONAL, + broadcastPLMN BroadcastPLMNs, + nrModeInfo NRModeInfo, + measurementTimingConfiguration OCTET STRING, + iE-Extensions ProtocolExtensionContainer { {ServedCellInformation-NR-ExtIEs} } OPTIONAL, + ... +} + +ServedCellInformation-NR-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +ServedCells-NR ::= SEQUENCE (SIZE (1..maxnoofCellsinNGRANnode)) OF ServedCells-NR-Item + +ServedCells-NR-Item ::= SEQUENCE { + served-cell-info-NR ServedCellInformation-NR, + neighbour-info-NR NeighbourInformation-NR OPTIONAL, + neighbour-info-E-UTRA NeighbourInformation-E-UTRA OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ServedCells-NR-Item-ExtIEs} } OPTIONAL, + ... +} + +ServedCells-NR-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +ServedCells-ToModify-NR ::= SEQUENCE (SIZE (1..maxnoofCellsinNGRANnode)) OF ServedCells-ToModify-NR-Item + +ServedCells-ToModify-NR-Item ::= SEQUENCE { + old-NR-CGI NR-CGI, + served-cell-info-NR ServedCellInformation-NR, + neighbour-info-NR NeighbourInformation-NR OPTIONAL, + neighbour-info-E-UTRA NeighbourInformation-E-UTRA OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {Served-cells-ToModify-NR-Item-ExtIEs} } OPTIONAL, + ... +} + +Served-cells-ToModify-NR-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +ServedCellsToUpdate-NR ::= SEQUENCE { + served-Cells-ToAdd-NR ServedCells-NR OPTIONAL, + served-Cells-ToModify-NR ServedCells-ToModify-NR OPTIONAL, + served-Cells-ToDelete-NR SEQUENCE (SIZE (1..maxnoofCellsinNGRANnode)) OF NR-CGI OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {ServedCellsToUpdate-NR-ExtIEs} } OPTIONAL, + ... +} + +ServedCellsToUpdate-NR-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +SliceSupport-List ::= SEQUENCE (SIZE(1..maxnoofSliceItems)) OF S-NSSAI + + +S-NG-RANnode-SecurityKey ::= BIT STRING (SIZE(256)) + + +S-NSSAI ::= SEQUENCE { + sst OCTET STRING (SIZE(1)), + sd OCTET STRING (SIZE(3)), + iE-Extensions ProtocolExtensionContainer { {S-NSSAI-ExtIEs} } OPTIONAL, + ... +} + +S-NSSAI-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +SpecialSubframeInfo-E-UTRA ::= SEQUENCE { + specialSubframePattern SpecialSubframePatterns-E-UTRA, + cyclicPrefixDL CyclicPrefix-E-UTRA-DL, + cyclicPrefixUL CyclicPrefix-E-UTRA-UL, + iE-Extensions ProtocolExtensionContainer { {SpecialSubframeInfo-E-UTRA-ExtIEs} } OPTIONAL, + ... +} + +SpecialSubframeInfo-E-UTRA-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +SpecialSubframePatterns-E-UTRA ::= ENUMERATED { + ssp0, + ssp1, + ssp2, + ssp3, + ssp4, + ssp5, + ssp6, + ssp7, + ssp8, + ssp9, + ssp10, + ... +} + + +SUL-FrequencyBand ::= INTEGER (1..1024) + + +SUL-Information ::= SEQUENCE { + sulFrequencyInfo NRARFCN, + sulTransmissionBandwidth NRTransmissionBandwidth, + iE-Extensions ProtocolExtensionContainer { {SUL-Information-ExtIEs} } OPTIONAL, + ... +} + +SUL-Information-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +SupportedSULBandList ::= SEQUENCE (SIZE(1..maxnoofNRCellBands)) OF SupportedSULBandItem + +SupportedSULBandItem ::= SEQUENCE { + sulBandItem SUL-FrequencyBand, + iE-Extensions ProtocolExtensionContainer { {SupportedSULBandItem-ExtIEs} } OPTIONAL, + ... +} + +SupportedSULBandItem-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- T + + +TAC ::= OCTET STRING (SIZE (3)) + + +TAISupport-List ::= SEQUENCE (SIZE(1..maxnoofsupportedTACs)) OF ProtocolIE-Single-Container { {TAISupport-ItemIEs} } + +TAISupport-ItemIEs XNAP-PROTOCOL-IES ::= { + { ID id-TAISupport-Item CRITICALITY reject TYPE TAISupport-Item PRESENCE mandatory }, + ... +} + +TAISupport-Item ::= SEQUENCE { + tac TAC, + broadcastPLMNs SEQUENCE (SIZE(1..maxnoofsupportedPLMNs)) OF BroadcastPLMNinTAISupport-Item, + iE-Extensions ProtocolExtensionContainer { {TAISupport-Item-ExtIEs} } OPTIONAL, + ... +} + +TAISupport-Item-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +Target-CGI ::= CHOICE { + nr NR-CGI, + e-utra E-UTRA-CGI, + choice-extension ProtocolExtensionContainer { {TargetCGI-ExtIEs} },-- This IE may need to be refined -- + ... +} + +TargetCGI-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) + + +TraceActivation ::= SEQUENCE { + ng-ran-TraceID OCTET STRING (SIZE (8)), + interfaces-to-trace BIT STRING { ng-c (0), x-nc (1), uu (2), f1-c (3), e1 (4)} (SIZE(8)), + trace-depth Trace-Depth, + trace-coll-address TransportLayerAddress, + ie-Extension ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL, + ... +} + +TraceActivation-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +Trace-Depth ::= ENUMERATED { + minimum, + medium, + maximum, + minimumWithoutVendorSpecificExtension, + mediumWithoutVendorSpecificExtension, + maximumWithoutVendorSpecificExtension, + ... +} + + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + + +-- U + + +UEAggregateMaximumBitRate ::= SEQUENCE { + dl-UE-AMBR BitRate, + ul-UE-AMBR BitRate, + iE-Extension ProtocolExtensionContainer { {UEAggregateMaximumBitRate-ExtIEs} } OPTIONAL, + ... +} + +UEAggregateMaximumBitRate-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +UEContextID ::= CHOICE { + rRCResume UEContextIDforRRCResume, + rRRCReestablishment UEContextIDforRRCReestablishment, + choice-extension ProtocolExtensionContainer { {UEContextID-ExtIEs} },-- This IE may need to be refined – + ... +} + +UEContextID-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +UEContextIDforRRCResume ::= SEQUENCE { + i-rnti I-RNTI, + iE-Extension ProtocolExtensionContainer { {UEContextIDforRRCResume-ExtIEs} } OPTIONAL, + ... +} + +UEContextIDforRRCResume-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +UEContextIDforRRCReestablishment ::= SEQUENCE { + c-rnti C-RNTI, + failureCellPCI NG-RAN-CellPCI, + iE-Extension ProtocolExtensionContainer { {UEContextIDforRRCReestablishment-ExtIEs} } OPTIONAL, + ... +} + +UEContextIDforRRCReestablishment-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +UEContextInfoRetrUECtxtResp ::= SEQUENCE { + ng-c-UE-signalling-ref AMF-UE-NGAP-ID, + signalling-TNL-at-source CPTransportLayerInformation, + ueSecurityCapabilities UESecurityCapabilities, + securityInformation AS-SecurityInformation, + ue-AMBR UEAggregateMaximumBitRate, + pduSessionResourcesToBeSet-List PDUSessionResourcesToBeSetup-List, + rrc-Context OCTET STRING, + mobilityRestrictionList MobilityRestrictionList OPTIONAL, + indexToRatFrequencySelectionPriority RFSP-Index OPTIONAL, + iE-Extension ProtocolExtensionContainer { {UEContextInfoRetrUECtxtResp-ExtIEs} } OPTIONAL, + ... +} + +UEContextInfoRetrUECtxtResp-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +UEIdentityIndexValue ::= INTEGER (0..63) -- This IE may need to be refined + + +UERANPagingIdentity ::= CHOICE { + i-RNTI I-RNTI, + choice-extension ProtocolExtensionContainer { {UERANPagingIdentity-ExtIEs} },-- This IE may need to be refined – + ... +} + +UERANPagingIdentity-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +UESecurityCapabilities ::= SEQUENCE { + nr-EncyptionAlgorithms BIT STRING {nea1-128(1), + nea2-128(2), + nea3-128(3)} (SIZE(16, ...)), + nr-IntegrityProtectionAlgorithms BIT STRING {nia1-128(1), + nia2-128(2), + nia3-128(3)} (SIZE(16, ...)), + e-utra-EncyptionAlgorithms BIT STRING {eea1-128(1), + eea2-128(2), + eea3-128(3)} (SIZE(16, ...)), + e-utra-IntegrityProtectionAlgorithms BIT STRING {eia1-128(1), + eia2-128(2), + eia3-128(3)} (SIZE(16, ...)), + iE-Extension ProtocolExtensionContainer { {UESecurityCapabilities-ExtIEs} } OPTIONAL, + ... +} + +UESecurityCapabilities-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +UPTransportLayerInformation ::= CHOICE { + gtpTunnel GTPtunnelTransportLayerInformation, + choice-extension ProtocolExtensionContainer { {UPTransportLayerInformation-ExtIEs} },-- This IE may need to be refined -- + ... +} + +UPTransportLayerInformation-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- V + + +-- W + + +-- X + +XnBenefitValue ::= INTEGER (1..8, ...) + + +-- Y + + +-- Z + + +END diff --git a/epan/dissectors/asn1/xnap/XnAP-PDU-Contents.asn b/epan/dissectors/asn1/xnap/XnAP-PDU-Contents.asn new file mode 100644 index 0000000000..bcb97ccbc9 --- /dev/null +++ b/epan/dissectors/asn1/xnap/XnAP-PDU-Contents.asn @@ -0,0 +1,1086 @@ +-- 3GPP TS 38.423 V15.0.0 (2018-06) +-- 9.3.4 PDU Definitions +-- ************************************************************** +-- +-- PDU definitions for XnAP. +-- +-- ************************************************************** + +XnAP-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +ngran-access (22) modules (3) xnap (2) version1 (1) xnap-PDU-Contents (1) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + + ActivationIDforCellActivation, + ActivationIDforCellActivation, + AMF-Pool-Information, + AMF-UE-NGAP-ID, + AS-SecurityInformation, + AssistanceDataForRANPaging, + Cause, + CellAssistanceInfo-NR, + CPTransportLayerInformation, + CriticalityDiagnostics, + DataforwardingInfoperPDUSession, + DRBsSubjectToStatusTransfer-List, + DRBToQoSFlowMapping-List, + E-UTRA-CGI, + GlobalNG-RANNode-ID, + GUAMI, + I-RNTI, + LocationReportingInformation, + ServedCells-E-UTRA, + ServedCells-NR, + ServedCellsToUpdate-E-UTRA, + ServedCellsToUpdate-NR, + MAC-I, + MaskedIMEISV, + MobilityRestrictionList, + NG-RAN-Cell-Identity, + NG-RANnodeUEXnAPID, + NR-CGI, + PagingDRX, + PDUSession-ID, + PDUSessionResourcesAdmitted-List, + PDUSessionResourcesNotAdmitted-List, + PDUSessionResourcesToBeSetup-List, + PDUSessionType, + QoSFlows-List, + RANPagingArea, + RANPagingPriority, + ResetRequestTypeInfo, + ResetResponseTypeInfo, + RFSP-Index, + SecurityIndication, + ServedCells-NR, + S-NSSAI, + TAISupport-List, + Target-CGI, + TraceActivation, + TraceActivation, + UEAggregateMaximumBitRate, + UEContextID, + UEContextInfoRetrUECtxtResp, + UEIdentityIndexValue, + UERANPagingIdentity, + UESecurityCapabilities, + UPTransportLayerInformation, + XnBenefitValue + + +FROM XnAP-IEs + + PrivateIE-Container{}, + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + ProtocolIE-ContainerList{}, + ProtocolIE-ContainerPair{}, + ProtocolIE-ContainerPairList{}, + ProtocolIE-Single-Container{}, + XNAP-PRIVATE-IES, + XNAP-PROTOCOL-EXTENSION, + XNAP-PROTOCOL-IES, + XNAP-PROTOCOL-IES-PAIR +FROM XnAP-Containers + + + id-ActivatedServedCells, + id-ActivationIDforCellActivation, + id-AMF-Pool-Information, + id-AssistanceDataForRANPaging, + id-Cause, + id-cellAssistanceInfo-NR, + id-ConfigurationUpdateInitiatingNodeChoice, + id-UEContextID, + id-CriticalityDiagnostics, + id-dataforwardingInfoperPDUSession, id-DRBsSubjectToStatusTransfer-List, + id-GlobalNG-RAN-node-ID, + id-GUAMI, + id-List-of-served-cells-E-UTRA, + id-List-of-served-cells-NR, + id-LocationReportingInformation, + id-MAC-I, + id-MaskedIMEISV, + id-new-NG-RAN-Cell-Identity, + id-newNG-RANnodeUEXnAPID, + id-oldNG-RANnodeUEXnAPID, + id-PagingDRX, + id-PDUSessionResourcesAdmitted-List, + id-PDUSessionResourcesNotAdmitted-List, + id-RANPagingArea, + id-RANPagingPriority, + id-ResetRequestTypeInfo, + id-ResetResponseTypeInfo, + id-RespondingNodeTypeConfigUpdateAck, + id-ServedCellsToActivate, + id-servedCellsToUpdate-E-UTRA, + id-ServedCellsToUpdateInitiatingNodeChoice, + id-servedCellsToUpdate-NR, + id-sourceNG-RANnodeUEXnAPID, + id-TAISupport-list, + id-Target2SourceNG-RANnodeTranspContainer, + id-targetCellGlobalID, + id-targetNG-RANnodeUEXnAPID, + id-TraceActivation, + id-TraceActivation, + id-UEContextInfoHORequest, + id-UEContextInfoRetrUECtxtResp, + id-UEIdentityIndexValue, + id-UERANPagingIdentity, + id-XnRemovalThreshold, + + + maxnoofCellsinNGRANnode, + maxnoofPDUSessions +FROM XnAP-Constants; + +-- ************************************************************** +-- +-- HANDOVER REQUEST +-- +-- ************************************************************** + +HandoverRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverRequest-IEs}}, + ... +} + +HandoverRequest-IEs XNAP-PROTOCOL-IES ::= { + { ID id-sourceNG-RANnodeUEXnAPID CRITICALITY reject TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}| + { ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory}| + { ID id-targetCellGlobalID CRITICALITY reject TYPE Target-CGI PRESENCE mandatory}| + { ID id-GUAMI CRITICALITY reject TYPE GUAMI PRESENCE mandatory}| + { ID id-UEContextInfoHORequest CRITICALITY reject TYPE UEContextInfoHORequest PRESENCE mandatory}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional }| + { ID id-MaskedIMEISV CRITICALITY ignore TYPE MaskedIMEISV PRESENCE optional }, + ... +} + +UEContextInfoHORequest ::= SEQUENCE { + ng-c-UE-reference AMF-UE-NGAP-ID, + cp-TNL-info-source CPTransportLayerInformation, + ueSecurityCapabilities UESecurityCapabilities, + securityInformation AS-SecurityInformation, + indexToRatFrequencySelectionPriority RFSP-Index OPTIONAL, ue-AMBR UEAggregateMaximumBitRate, + pduSessionResourcesToBeSetup-List PDUSessionResourcesToBeSetup-List, + rrc-Context OCTET STRING, + locationReportingInformation LocationReportingInformation OPTIONAL, + hlr MobilityRestrictionList OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {UEContextInfoHORequest-ExtIEs} } OPTIONAL, + ... +} + +UEContextInfoHORequest-ExtIEs XNAP-PROTOCOL-EXTENSION ::={ + ... +} + +-- ************************************************************** +-- +-- HANDOVER REQUEST ACKNOWLEDGE +-- +-- ************************************************************** + +HandoverRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverRequestAcknowledge-IEs}}, + ... +} + +-- WS modification: defien a dedicated type +Target2SourceNG-RANnodeTranspContainer ::= OCTET STRING + +HandoverRequestAcknowledge-IEs XNAP-PROTOCOL-IES ::= { + { ID id-sourceNG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}| + { ID id-targetNG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}| + { ID id-PDUSessionResourcesAdmitted-List CRITICALITY ignore TYPE PDUSessionResourcesAdmitted-List PRESENCE mandatory}| + { ID id-PDUSessionResourcesNotAdmitted-List CRITICALITY ignore TYPE PDUSessionResourcesNotAdmitted-List PRESENCE optional }| +-- WS modification: define a dedicated type +-- { ID id-Target2SourceNG-RANnodeTranspContainer CRITICALITY ignore TYPE OCTET STRING PRESENCE mandatory}| + { ID id-Target2SourceNG-RANnodeTranspContainer CRITICALITY ignore TYPE Target2SourceNG-RANnodeTranspContainer PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- HANDOVER PREPARATION FAILURE +-- +-- ************************************************************** + +HandoverPreparationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverPreparationFailure-IEs}}, + ... +} + +HandoverPreparationFailure-IEs XNAP-PROTOCOL-IES ::= { + { ID id-sourceNG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- SN STATUS TRANSFER +-- +-- ************************************************************** + +SNStatusTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{SNStatusTransfer-IEs}}, + ... +} + +SNStatusTransfer-IEs XNAP-PROTOCOL-IES ::= { + { ID id-sourceNG-RANnodeUEXnAPID CRITICALITY reject TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}| + { ID id-targetNG-RANnodeUEXnAPID CRITICALITY reject TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}| + { ID id-DRBsSubjectToStatusTransfer-List CRITICALITY ignore TYPE DRBsSubjectToStatusTransfer-List PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- UE CONTEXT RELEASE +-- +-- ************************************************************** + +UEContextRelease ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{UEContextRelease-IEs}}, + ... +} + +UEContextRelease-IEs XNAP-PROTOCOL-IES ::= { + { ID id-sourceNG-RANnodeUEXnAPID CRITICALITY reject TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}| + { ID id-targetNG-RANnodeUEXnAPID CRITICALITY reject TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- HANDOVER CANCEL +-- +-- ************************************************************** + +HandoverCancel ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{HandoverCancel-IEs}}, + ... +} + +HandoverCancel-IEs XNAP-PROTOCOL-IES ::= { + { ID id-sourceNG-RANnodeUEXnAPID CRITICALITY reject TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}| + { ID id-targetNG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE optional }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- RAN PAGING +-- +-- ************************************************************** + +RANPaging ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RANPaging-IEs}}, + ... +} + +RANPaging-IEs XNAP-PROTOCOL-IES ::= { + { ID id-UEIdentityIndexValue CRITICALITY reject TYPE UEIdentityIndexValue PRESENCE mandatory}| + { ID id-UERANPagingIdentity CRITICALITY ignore TYPE UERANPagingIdentity PRESENCE mandatory}| + { ID id-PagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE mandatory}| + { ID id-RANPagingArea CRITICALITY reject TYPE RANPagingArea PRESENCE mandatory}| + { ID id-RANPagingPriority CRITICALITY ignore TYPE RANPagingPriority PRESENCE optional }| + { ID id-AssistanceDataForRANPaging CRITICALITY ignore TYPE AssistanceDataForRANPaging PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- RETRIEVE UE CONTEXT REQUEST +-- +-- ************************************************************** + +RetrieveUEContextRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{RetrieveUEContextRequest-IEs}}, + ... +} + +RetrieveUEContextRequest-IEs XNAP-PROTOCOL-IES ::= { + { ID id-newNG-RANnodeUEXnAPID CRITICALITY reject TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}| + { ID id-UEContextID CRITICALITY reject TYPE UEContextID PRESENCE mandatory}| + { ID id-MAC-I CRITICALITY reject TYPE MAC-I PRESENCE mandatory}| + { ID id-new-NG-RAN-Cell-Identity CRITICALITY reject TYPE NG-RAN-Cell-Identity PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- RETRIEVE UE CONTEXT RESPONSE +-- +-- ************************************************************** + +RetrieveUEContextResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ RetrieveUEContextResponse-IEs}}, + ... +} + +RetrieveUEContextResponse-IEs XNAP-PROTOCOL-IES ::= { + { ID id-newNG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}| + { ID id-oldNG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}| + { ID id-GUAMI CRITICALITY reject TYPE GUAMI PRESENCE mandatory}| + { ID id-UEContextInfoRetrUECtxtResp CRITICALITY reject TYPE UEContextInfoRetrUECtxtResp PRESENCE mandatory}| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional }| + { ID id-MaskedIMEISV CRITICALITY ignore TYPE MaskedIMEISV PRESENCE optional }| + { ID id-LocationReportingInformation CRITICALITY ignore TYPE LocationReportingInformation PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- RETRIEVE UE CONTEXT FAILURE +-- +-- ************************************************************** + +RetrieveUEContextFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ RetrieveUEContextFailure-IEs}}, + ... +} + +RetrieveUEContextFailure-IEs XNAP-PROTOCOL-IES ::= { + { ID id-newNG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- DATA FORWARDING ADDRESS INDICATION +-- +-- ************************************************************** + +DataForwardingAddressIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ DataForwardingAddressIndication-IEs}}, + ... +} + +DataForwardingAddressIndication-IEs XNAP-PROTOCOL-IES ::= { + { ID id-newNG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}| + { ID id-oldNG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE mandatory}| + { ID id-dataforwardingInfoperPDUSession CRITICALITY reject TYPE DataforwardingInfoperPDUSession PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- S-NODE ADDITION REQUEST +-- +-- ************************************************************** +-- Editor’s Note: Dual Connectivity is not complete and is targeted for completion in December 2018. +-- ASN.1 for this message is FFS. + +SNodeAdditionRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SNodeAdditionRequest-IEs}}, + ... +} + +SNodeAdditionRequest-IEs XNAP-PROTOCOL-IES ::= { + ... +} + +-- ************************************************************** +-- +-- S-NODE ADDITION REQUEST ACKNOWLEDGE +-- +-- ************************************************************** +-- Editor’s Note: Dual Connectivity is not complete and is targeted for completion in December 2018. +-- ASN.1 for this message is FFS. + +SNodeAdditionRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SNodeAdditionRequestAcknowledge-IEs}}, + ... +} + +SNodeAdditionRequestAcknowledge-IEs XNAP-PROTOCOL-IES ::= { + ... +} + +-- ************************************************************** +-- +-- S-NODE ADDITION REQUEST REJECT +-- +-- ************************************************************** +-- Editor’s Note: Dual Connectivity is not complete and is targeted for completion in December 2018. +-- ASN.1 for this message is FFS. + +SNodeAdditionRequestReject ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SNodeAdditionRequestReject-IEs}}, + ... +} + +SNodeAdditionRequestReject-IEs XNAP-PROTOCOL-IES ::= { + ... +} + +-- ************************************************************** +-- +-- S-NODE RECONFIGURATION COMPLETE +-- +-- ************************************************************** +-- Editor’s Note: Dual Connectivity is not complete and is targeted for completion in December 2018. +-- ASN.1 for this message is FFS. + +SNodeReconfigurationComplete ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SNodeReconfigurationComplete-IEs}}, + ... +} + +SNodeReconfigurationComplete-IEs XNAP-PROTOCOL-IES ::= { + ... +} + +-- ************************************************************** +-- +-- S-NODE MODIFICATION REQUEST +-- +-- ************************************************************** +-- Editor’s Note: Dual Connectivity is not complete and is targeted for completion in December 2018. +-- ASN.1 for this message is FFS. + +SNodeModificationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SNodeModificationRequest-IEs}}, + ... +} + +SNodeModificationRequest-IEs XNAP-PROTOCOL-IES ::= { + ... +} + +-- ************************************************************** +-- +-- S-NODE MODIFICATION REQUEST ACKNOWLEDGE +-- +-- ************************************************************** +-- Editor’s Note: Dual Connectivity is not complete and is targeted for completion in December 2018. +-- ASN.1 for this message is FFS. + +SNodeModificationRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SNodeModificationRequestAcknowledge-IEs}}, + ... +} + +SNodeModificationRequestAcknowledge-IEs XNAP-PROTOCOL-IES ::= { + ... +} + +-- ************************************************************** +-- +-- S-NODE MODIFICATION REQUEST REJECT +-- +-- ************************************************************** +-- Editor’s Note: Dual Connectivity is not complete and is targeted for completion in December 2018. +-- ASN.1 for this message is FFS. + +SNodeModificationRequestReject ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SNodeModificationRequestReject-IEs}}, + ... +} + +SNodeModificationRequestReject-IEs XNAP-PROTOCOL-IES ::= { + ... +} + +-- ************************************************************** +-- +-- S-NODE MODIFICATION REQUIRED +-- +-- ************************************************************** +-- Editor’s Note: Dual Connectivity is not complete and is targeted for completion in December 2018. +-- ASN.1 for this message is FFS. + +SNodeModificationRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SNodeModificationRequired-IEs}}, + ... +} + +SNodeModificationRequired-IEs XNAP-PROTOCOL-IES ::= { + ... +} + +-- ************************************************************** +-- +-- S-NODE MODIFICATION CONFIRM +-- +-- ************************************************************** +-- Editor’s Note: Dual Connectivity is not complete and is targeted for completion in December 2018. +-- ASN.1 for this message is FFS. + +SNodeModificationConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SNodeModificationConfirm-IEs}}, + ... +} + +SNodeModificationConfirm-IEs XNAP-PROTOCOL-IES ::= { + ... +} + +-- ************************************************************** +-- +-- S-NODE MODIFICATION REFUSE +-- +-- ************************************************************** +-- Editor’s Note: Dual Connectivity is not complete and is targeted for completion in December 2018. +-- ASN.1 for this message is FFS. + +SNodeModificationRefuse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SNodeModificationRefuse-IEs}}, + ... +} + +SNodeModificationRefuse-IEs XNAP-PROTOCOL-IES ::= { + ... +} + +-- ************************************************************** +-- +-- S-NODE RELEASE REQUEST +-- +-- ************************************************************** +-- Editor’s Note: Dual Connectivity is not complete and is targeted for completion in December 2018. +-- ASN.1 for this message is FFS. + +SNodeReleaseRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SNodeReleaseRequest-IEs}}, + ... +} + +SNodeReleaseRequest-IEs XNAP-PROTOCOL-IES ::= { + ... +} + +-- ************************************************************** +-- +-- S-NODE RELEASE REQUEST ACKNOWLEDGE +-- +-- ************************************************************** +-- Editor’s Note: Dual Connectivity is not complete and is targeted for completion in December 2018. +-- ASN.1 for this message is FFS. + +SNodeReleaseRequestAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SNodeReleaseRequestAcknowledge-IEs}}, + ... +} + +SNodeReleaseRequestAcknowledge-IEs XNAP-PROTOCOL-IES ::= { + ... +} + +-- ************************************************************** +-- +-- S-NODE RELEASE REJECT +-- +-- ************************************************************** +-- Editor’s Note: Dual Connectivity is not complete and is targeted for completion in December 2018. +-- ASN.1 for this message is FFS. + +SNodeReleaseReject ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SNodeReleaseReject-IEs}}, + ... +} + +SNodeReleaseReject-IEs XNAP-PROTOCOL-IES ::= { + ... +} + +-- ************************************************************** +-- +-- S-NODE RELEASE REQUIRED +-- +-- ************************************************************** +-- Editor’s Note: Dual Connectivity is not complete and is targeted for completion in December 2018. +-- ASN.1 for this message is FFS. + +SNodeReleaseRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SNodeReleaseRequired-IEs}}, + ... +} + +SNodeReleaseRequired-IEs XNAP-PROTOCOL-IES ::= { + ... +} + +-- ************************************************************** +-- +-- S-NODE RELEASE CONFIRM +-- +-- ************************************************************** +-- Editor’s Note: Dual Connectivity is not complete and is targeted for completion in December 2018. +-- ASN.1 for this message is FFS. + +SNodeReleaseConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SNodeReleaseConfirm-IEs}}, + ... +} + +SNodeReleaseConfirm-IEs XNAP-PROTOCOL-IES ::= { + ... +} + +-- ************************************************************** +-- +-- S-NODE COUNTER CHECK REQUEST +-- +-- ************************************************************** + +-- Editor’s Note: Dual Connectivity is not complete and is targeted for completion in December 2018. +-- ASN.1 for this message is FFS. + +SNodeCounterCheckRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SNodeCounterCheckRequest-IEs}}, + ... +} + +SNodeCounterCheckRequest-IEs XNAP-PROTOCOL-IES ::= { + ... +} + +-- ************************************************************** +-- +-- S-NODE CHANGE REQUIRED +-- +-- ************************************************************** +-- Editor’s Note: Dual Connectivity is not complete and is targeted for completion in December 2018. +-- ASN.1 for this message is FFS. + +SNodeChangeRequired ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SNodeChangeRequired-IEs}}, + ... +} + +SNodeChangeRequired-IEs XNAP-PROTOCOL-IES ::= { + ... +} + +-- ************************************************************** +-- +-- S-NODE CHANGE CONFIRM +-- +-- ************************************************************** +-- Editor’s Note: Dual Connectivity is not complete and is targeted for completion in December 2018. +-- ASN.1 for this message is FFS. + +SNodeChangeConfirm ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SNodeChangeConfirm-IEs}}, + ... +} + +SNodeChangeConfirm-IEs XNAP-PROTOCOL-IES ::= { + ... +} + +-- ************************************************************** +-- +-- S-NODE CHANGE REFUSE +-- +-- ************************************************************** +-- Editor’s Note: Dual Connectivity is not complete and is targeted for completion in December 2018. +-- ASN.1 for this message is FFS. + +SNodeChangeRefuse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ SNodeChangeRefuse-IEs}}, + ... +} + +SNodeChangeRefuse-IEs XNAP-PROTOCOL-IES ::= { + ... +} + +-- ************************************************************** +-- +-- RRC TRANSFER +-- +-- ************************************************************** +-- Editor’s Note: Dual Connectivity is not complete and is targeted for completion in December 2018. +-- ASN.1 for this message is FFS. + +RRCTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ RRCTransfer-IEs}}, + ... +} + +RRCTransfer-IEs XNAP-PROTOCOL-IES ::= { + ... +} + +-- ************************************************************** +-- +-- XN SETUP REQUEST +-- +-- ************************************************************** + +XnSetupRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ XnSetupRequest-IEs}}, + ... +} + +XnSetupRequest-IEs XNAP-PROTOCOL-IES ::= { + { ID id-GlobalNG-RAN-node-ID CRITICALITY reject TYPE GlobalNG-RANNode-ID PRESENCE mandatory}| + { ID id-TAISupport-list CRITICALITY reject TYPE TAISupport-List PRESENCE optional }| + { ID id-AMF-Pool-Information CRITICALITY reject TYPE AMF-Pool-Information PRESENCE mandatory}| + { ID id-List-of-served-cells-NR CRITICALITY reject TYPE ServedCells-NR PRESENCE optional }| + { ID id-List-of-served-cells-E-UTRA CRITICALITY reject TYPE ServedCells-E-UTRA PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- XN SETUP RESPONSE +-- +-- ************************************************************** + +XnSetupResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ XnSetupResponse-IEs}}, + ... +} + +XnSetupResponse-IEs XNAP-PROTOCOL-IES ::= { + { ID id-GlobalNG-RAN-node-ID CRITICALITY reject TYPE GlobalNG-RANNode-ID PRESENCE mandatory}| + { ID id-TAISupport-list CRITICALITY reject TYPE TAISupport-List PRESENCE optional }| + { ID id-List-of-served-cells-NR CRITICALITY reject TYPE ServedCells-NR PRESENCE optional }| + { ID id-List-of-served-cells-E-UTRA CRITICALITY reject TYPE ServedCells-E-UTRA PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- XN SETUP FAILURE +-- +-- ************************************************************** + +XnSetupFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ XnSetupFailure-IEs}}, + ... +} + +XnSetupFailure-IEs XNAP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- NG-RAN NODE CONFIGURATION UPDATE +-- +-- ************************************************************** + +NGRANNodeConfigurationUpdate ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ NGRANNodeConfigurationUpdate-IEs}}, + ... +} + +NGRANNodeConfigurationUpdate-IEs XNAP-PROTOCOL-IES ::= { + { ID id-TAISupport-list CRITICALITY reject TYPE TAISupport-List PRESENCE optional }| + { ID id-ConfigurationUpdateInitiatingNodeChoice CRITICALITY ignore TYPE ConfigurationUpdateInitiatingNodeChoice PRESENCE mandatory}, + ... +} + +ConfigurationUpdateInitiatingNodeChoice ::= CHOICE { + gNB ProtocolIE-Container { {ConfigurationUpdate-gNB} }, + ng-eNB ProtocolIE-Container { {ConfigurationUpdate-ng-eNB} }, + choice-extension ProtocolExtensionContainer { {ServedCellsToUpdateInitiatingNodeChoice-ExtIEs} }, + -- This IE may need to be refined -- ... +} + +ServedCellsToUpdateInitiatingNodeChoice-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + +ConfigurationUpdate-gNB XNAP-PROTOCOL-IES ::= { + { ID id-servedCellsToUpdate-NR CRITICALITY ignore TYPE ServedCellsToUpdate-NR PRESENCE optional }| + { ID id-cellAssistanceInfo-NR CRITICALITY ignore TYPE CellAssistanceInfo-NR PRESENCE optional }, + ... +} + + +ConfigurationUpdate-ng-eNB XNAP-PROTOCOL-IES ::= { + { ID id-servedCellsToUpdate-E-UTRA CRITICALITY ignore TYPE ServedCellsToUpdate-E-UTRA PRESENCE optional }| + { ID id-cellAssistanceInfo-NR CRITICALITY ignore TYPE CellAssistanceInfo-NR PRESENCE optional }, + ... +} + + + +-- ************************************************************** +-- +-- NG-RAN NODE CONFIGURATION UPDATE ACKNOWLEDGE +-- +-- ************************************************************** + +NGRANNodeConfigurationUpdateAcknowledge ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ NGRANNodeConfigurationUpdateAcknowledge-IEs}}, + ... +} + +NGRANNodeConfigurationUpdateAcknowledge-IEs XNAP-PROTOCOL-IES ::= { + { ID id-RespondingNodeTypeConfigUpdateAck CRITICALITY ignore TYPE RespondingNodeTypeConfigUpdateAck PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} +RespondingNodeTypeConfigUpdateAck ::= CHOICE { + ng-eNB RespondingNodeTypeConfigUpdateAck-ng-eNB, + gNB RespondingNodeTypeConfigUpdateAck-gNB, + choice-extension ProtocolExtensionContainer { {RespondingNodeTypeConfigUpdateAck-ExtIEs} }, -- This IE may need to be refined -- + ... +} + +RespondingNodeTypeConfigUpdateAck-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + +RespondingNodeTypeConfigUpdateAck-ng-eNB ::= SEQUENCE { + iE-Extension ProtocolExtensionContainer { {RespondingNodeTypeConfigUpdateAck-ng-eNB-ExtIEs} } OPTIONAL, + ... +} + +RespondingNodeTypeConfigUpdateAck-ng-eNB-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +RespondingNodeTypeConfigUpdateAck-gNB ::= SEQUENCE { + served-NR-Cells ServedCells-NR OPTIONAL, + iE-Extension ProtocolExtensionContainer { {RespondingNodeTypeConfigUpdateAck-gNB-ExtIEs} } OPTIONAL, + ... +} + +RespondingNodeTypeConfigUpdateAck-gNB-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- NG-RAN NODE CONFIGURATION UPDATE FAILURE +-- +-- ************************************************************** + +NGRANNodeConfigurationUpdateFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ NGRANNodeConfigurationUpdateFailure-IEs}}, + ... +} + +NGRANNodeConfigurationUpdateFailure-IEs XNAP-PROTOCOL-IES ::= { + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- XN REMOVAL REQUEST +-- +-- ************************************************************** + +XnRemovalRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ XnRemovalRequest-IEs}}, + ... +} + +XnRemovalRequest-IEs XNAP-PROTOCOL-IES ::= { + { ID id-GlobalNG-RAN-node-ID CRITICALITY reject TYPE GlobalNG-RANNode-ID PRESENCE mandatory}| + { ID id-XnRemovalThreshold CRITICALITY reject TYPE XnBenefitValue PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- XN REMOVAL RESPONSE +-- +-- ************************************************************** + +XnRemovalResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ XnRemovalResponse-IEs}}, + ... +} + +XnRemovalResponse-IEs XNAP-PROTOCOL-IES ::= { + { ID id-GlobalNG-RAN-node-ID CRITICALITY reject TYPE GlobalNG-RANNode-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- XN REMOVAL FAILURE +-- +-- ************************************************************** + +XnRemovalFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ XnRemovalFailure-IEs}}, + ... +} + +XnRemovalFailure-IEs XNAP-PROTOCOL-IES ::= { + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- CELL ACTIVATION REQUEST +-- +-- ************************************************************** + +CellActivationRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ CellActivationRequest-IEs}}, + ... +} + +CellActivationRequest-IEs XNAP-PROTOCOL-IES ::= { + { ID id-ServedCellsToActivate CRITICALITY reject TYPE ServedCellsToActivate PRESENCE mandatory}| + { ID id-ActivationIDforCellActivation CRITICALITY reject TYPE ActivationIDforCellActivation PRESENCE mandatory}, + ... +} + +ServedCellsToActivate ::= CHOICE { + nr-cells SEQUENCE (SIZE(1..maxnoofCellsinNGRANnode)) OF NR-CGI, + e-utra-cells SEQUENCE (SIZE(1..maxnoofCellsinNGRANnode)) OF E-UTRA-CGI, + choice-extension ProtocolExtensionContainer { {ServedCellsToActivate-ExtIEs} }, -- This IE may need to be refined -- + ... +} + +ServedCellsToActivate-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- CELL ACTIVATION RESPONSE +-- +-- ************************************************************** + +CellActivationResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationResponse-IEs}}, + ... +} + +CellActivationResponse-IEs XNAP-PROTOCOL-IES ::= { + { ID id-ActivatedServedCells CRITICALITY reject TYPE ActivatedServedCells PRESENCE mandatory}| + { ID id-ActivationIDforCellActivation CRITICALITY reject TYPE ActivationIDforCellActivation PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +ActivatedServedCells ::= CHOICE { + nr-cells SEQUENCE (SIZE(1..maxnoofCellsinNGRANnode)) OF NR-CGI, + e-utra-cells SEQUENCE (SIZE(1..maxnoofCellsinNGRANnode)) OF E-UTRA-CGI, + choice-extension ProtocolExtensionContainer { {ActivatedServedCells-ExtIEs} }, -- This IE may need to be refined – + ... +} + +ActivatedServedCells-ExtIEs XNAP-PROTOCOL-EXTENSION ::= { + ... +} + + +-- ************************************************************** +-- +-- CELL ACTIVATION FAILURE +-- +-- ************************************************************** + +CellActivationFailure ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{CellActivationFailure-IEs}}, + ... +} + +CellActivationFailure-IEs XNAP-PROTOCOL-IES ::= { + { ID id-ActivationIDforCellActivation CRITICALITY reject TYPE ActivationIDforCellActivation PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- RESET REQUEST +-- +-- ************************************************************** + +ResetRequest ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResetRequest-IEs}}, + ... +} + +ResetRequest-IEs XNAP-PROTOCOL-IES ::= { + { ID id-ResetRequestTypeInfo CRITICALITY reject TYPE ResetRequestTypeInfo PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}, + ... +} + +-- ************************************************************** +-- +-- RESET RESPONSE +-- +-- ************************************************************** + +ResetResponse ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ResetResponse-IEs}}, + ... +} + +ResetResponse-IEs XNAP-PROTOCOL-IES ::= { + { ID id-ResetResponseTypeInfo CRITICALITY reject TYPE ResetResponseTypeInfo PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- ERROR INDICATION +-- +-- ************************************************************** + +ErrorIndication ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}}, + ... +} + +ErrorIndication-IEs XNAP-PROTOCOL-IES ::= { + { ID id-oldNG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE optional }| + { ID id-newNG-RANnodeUEXnAPID CRITICALITY ignore TYPE NG-RANnodeUEXnAPID PRESENCE optional }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + ... +} + +-- ************************************************************** +-- +-- PRIVATE MESSAGE +-- +-- ************************************************************** + +PrivateMessage ::= SEQUENCE { + privateIEs PrivateIE-Container {{PrivateMessage-IEs}}, + ... +} + +PrivateMessage-IEs XNAP-PRIVATE-IES ::= { + ... +} + + +END diff --git a/epan/dissectors/asn1/xnap/XnAP-PDU-Descriptions.asn b/epan/dissectors/asn1/xnap/XnAP-PDU-Descriptions.asn new file mode 100644 index 0000000000..85e632036c --- /dev/null +++ b/epan/dissectors/asn1/xnap/XnAP-PDU-Descriptions.asn @@ -0,0 +1,390 @@ +-- 3GPP TS 38.423 V15.0.0 (2018-06) +-- 9.3.3 Elementary Procedure Definitions +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- +-- ************************************************************** + +XnAP-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +ngran-access (22) modules (3) xnap (2) version1 (1) xnap-PDU-Descriptions (0) } + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode + +FROM XnAP-CommonDataTypes + + HandoverRequest, + HandoverRequestAcknowledge, + HandoverPreparationFailure, + SNStatusTransfer, + UEContextRelease, + HandoverCancel, + RANPaging, + RetrieveUEContextRequest, + RetrieveUEContextResponse, + RetrieveUEContextFailure, + DataForwardingAddressIndication, + SNodeAdditionRequest, + SNodeAdditionRequestAcknowledge, + SNodeAdditionRequestReject, + SNodeReconfigurationComplete, + SNodeModificationRequest, + SNodeModificationRequestAcknowledge, + SNodeModificationRequestReject, + SNodeModificationRequired, + SNodeModificationConfirm, + SNodeModificationRefuse, + SNodeReleaseRequest, + SNodeReleaseRequestAcknowledge, + SNodeReleaseReject, + SNodeReleaseRequired, + SNodeReleaseConfirm, + SNodeCounterCheckRequest, + SNodeChangeRequired, + SNodeChangeConfirm, + SNodeChangeRefuse, + RRCTransfer, + XnRemovalRequest, + XnRemovalResponse, + XnRemovalFailure, + XnSetupRequest, + XnSetupResponse, + XnSetupFailure, + NGRANNodeConfigurationUpdate, + NGRANNodeConfigurationUpdateAcknowledge, + NGRANNodeConfigurationUpdateFailure, + CellActivationRequest, + CellActivationResponse, + CellActivationFailure, + ResetRequest, + ResetResponse, + ErrorIndication, + PrivateMessage + +FROM XnAP-PDU-Contents + + id-handoverPreparation, + id-sNStatusTransfer, + id-handoverCancel, + id-retrieveUEContext, + id-rANPaging, + id-dataForwardingAddressIndication, + id-uEContextRelease, + id-sNGRANnodeAdditionPreparation, + id-sNGRANnodeReconfigurationCompletion, + id-mNGRANnodeinitiatedSNGRANnodeModificationPreparation, + id-sNGRANnodeinitiatedSNGRANnodeModificationPreparation, + id-mNGRANnodeinitiatedSNGRANnodeRelease, + id-sNGRANnodeinitiatedSNGRANnodeRelease, + id-sNGRANnodeCounterCheck, + id-sNGRANnodeChange, + id-rRCTransfer, + id-xnRemoval, + id-xnSetup, + id-nGRANnodeConfigurationUpdate, + id-cellActivation, + id-reset, + id-errorIndication, + id-privateMessage + +FROM XnAP-Constants; + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +XNAP-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +XnAP-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode XNAP-ELEMENTARY-PROCEDURE.&procedureCode ({XNAP-ELEMENTARY-PROCEDURES}), + criticality XNAP-ELEMENTARY-PROCEDURE.&criticality ({XNAP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value XNAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({XNAP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode XNAP-ELEMENTARY-PROCEDURE.&procedureCode ({XNAP-ELEMENTARY-PROCEDURES}), + criticality XNAP-ELEMENTARY-PROCEDURE.&criticality ({XNAP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value XNAP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({XNAP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode XNAP-ELEMENTARY-PROCEDURE.&procedureCode ({XNAP-ELEMENTARY-PROCEDURES}), + criticality XNAP-ELEMENTARY-PROCEDURE.&criticality ({XNAP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value XNAP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({XNAP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +XNAP-ELEMENTARY-PROCEDURES XNAP-ELEMENTARY-PROCEDURE ::= { + XNAP-ELEMENTARY-PROCEDURES-CLASS-1 | + XNAP-ELEMENTARY-PROCEDURES-CLASS-2 , + ... +} + +XNAP-ELEMENTARY-PROCEDURES-CLASS-1 XNAP-ELEMENTARY-PROCEDURE ::= { + handoverPreparation | + retrieveUEContext | + sNGRANnodeAdditionPreparation | + mNGRANnodeinitiatedSNGRANnodeModificationPreparation | + sNGRANnodeinitiatedSNGRANnodeModificationPreparation | + mNGRANnodeinitiatedSNGRANnodeRelease | + sNGRANnodeinitiatedSNGRANnodeRelease | + sNGRANnodeChange | + xnRemoval | + xnSetup | + nGRANnodeConfigurationUpdate | + cellActivation | + reset , + ... +} + +XNAP-ELEMENTARY-PROCEDURES-CLASS-2 XNAP-ELEMENTARY-PROCEDURE ::= { + sNStatusTransfer | + handoverCancel | + rANPaging | + dataForwardingAddressIndication | + uEContextRelease | + sNGRANnodeReconfigurationCompletion | + sNGRANnodeCounterCheck | + rRCTransfer | + errorIndication | + privateMessage , +... + +} + +-- ************************************************************** +-- +-- Interface Elementary Procedures +-- +-- ************************************************************** + +handoverPreparation XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverRequest + SUCCESSFUL OUTCOME HandoverRequestAcknowledge + UNSUCCESSFUL OUTCOME HandoverPreparationFailure + PROCEDURE CODE id-handoverPreparation + CRITICALITY reject +} + + +sNStatusTransfer XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SNStatusTransfer + PROCEDURE CODE id-sNStatusTransfer + CRITICALITY ignore +} + + +handoverCancel XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE HandoverCancel + PROCEDURE CODE id-handoverCancel + CRITICALITY ignore +} + + +retrieveUEContext XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RetrieveUEContextRequest + SUCCESSFUL OUTCOME RetrieveUEContextResponse + UNSUCCESSFUL OUTCOME RetrieveUEContextFailure + PROCEDURE CODE id-retrieveUEContext + CRITICALITY reject +} + + +rANPaging XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RANPaging + PROCEDURE CODE id-rANPaging + CRITICALITY reject +} + + +dataForwardingAddressIndication XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE DataForwardingAddressIndication + PROCEDURE CODE id-dataForwardingAddressIndication + CRITICALITY reject +} + + +uEContextRelease XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE UEContextRelease + PROCEDURE CODE id-uEContextRelease + CRITICALITY reject +} + + +sNGRANnodeAdditionPreparation XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SNodeAdditionRequest + SUCCESSFUL OUTCOME SNodeAdditionRequestAcknowledge + UNSUCCESSFUL OUTCOME SNodeAdditionRequestReject + PROCEDURE CODE id-sNGRANnodeAdditionPreparation + CRITICALITY reject +} + + +sNGRANnodeReconfigurationCompletion XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SNodeReconfigurationComplete + PROCEDURE CODE id-sNGRANnodeReconfigurationCompletion + CRITICALITY reject +} + + +mNGRANnodeinitiatedSNGRANnodeModificationPreparation XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SNodeModificationRequest + SUCCESSFUL OUTCOME SNodeModificationRequestAcknowledge + UNSUCCESSFUL OUTCOME SNodeModificationRequestReject + PROCEDURE CODE id-mNGRANnodeinitiatedSNGRANnodeModificationPreparation + CRITICALITY reject +} + + +sNGRANnodeinitiatedSNGRANnodeModificationPreparation XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SNodeModificationRequired + SUCCESSFUL OUTCOME SNodeModificationConfirm + UNSUCCESSFUL OUTCOME SNodeModificationRefuse + PROCEDURE CODE id-sNGRANnodeinitiatedSNGRANnodeModificationPreparation + CRITICALITY reject +} + + +mNGRANnodeinitiatedSNGRANnodeRelease XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SNodeReleaseRequest + SUCCESSFUL OUTCOME SNodeReleaseRequestAcknowledge + UNSUCCESSFUL OUTCOME SNodeReleaseReject + PROCEDURE CODE id-mNGRANnodeinitiatedSNGRANnodeRelease + CRITICALITY reject +} + + +sNGRANnodeinitiatedSNGRANnodeRelease XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SNodeReleaseRequired + SUCCESSFUL OUTCOME SNodeReleaseConfirm + PROCEDURE CODE id-sNGRANnodeinitiatedSNGRANnodeRelease + CRITICALITY reject +} + + +sNGRANnodeCounterCheck XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SNodeCounterCheckRequest + PROCEDURE CODE id-sNGRANnodeCounterCheck + CRITICALITY reject +} + + +sNGRANnodeChange XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE SNodeChangeRequired + SUCCESSFUL OUTCOME SNodeChangeConfirm + UNSUCCESSFUL OUTCOME SNodeChangeRefuse + PROCEDURE CODE id-sNGRANnodeChange + CRITICALITY reject +} + + +rRCTransfer XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE RRCTransfer + PROCEDURE CODE id-rRCTransfer + CRITICALITY ignore +} + + +xnRemoval XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE XnRemovalRequest + SUCCESSFUL OUTCOME XnRemovalResponse + UNSUCCESSFUL OUTCOME XnRemovalFailure + PROCEDURE CODE id-xnRemoval + CRITICALITY reject +} + + +xnSetup XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE XnSetupRequest + SUCCESSFUL OUTCOME XnSetupResponse + UNSUCCESSFUL OUTCOME XnSetupFailure + PROCEDURE CODE id-xnSetup + CRITICALITY reject +} + + +nGRANnodeConfigurationUpdate XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE NGRANNodeConfigurationUpdate + SUCCESSFUL OUTCOME NGRANNodeConfigurationUpdateAcknowledge + UNSUCCESSFUL OUTCOME NGRANNodeConfigurationUpdateFailure + PROCEDURE CODE id-nGRANnodeConfigurationUpdate + CRITICALITY reject +} + + +cellActivation XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE CellActivationRequest + SUCCESSFUL OUTCOME CellActivationResponse + UNSUCCESSFUL OUTCOME CellActivationFailure + PROCEDURE CODE id-cellActivation + CRITICALITY reject +} + + +reset XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ResetRequest + SUCCESSFUL OUTCOME ResetResponse + PROCEDURE CODE id-reset + CRITICALITY reject +} + + +errorIndication XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ErrorIndication + PROCEDURE CODE id-errorIndication + CRITICALITY ignore +} + +privateMessage XNAP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE PrivateMessage + PROCEDURE CODE id-privateMessage + CRITICALITY ignore +} + +END diff --git a/epan/dissectors/asn1/xnap/packet-xnap-template.c b/epan/dissectors/asn1/xnap/packet-xnap-template.c new file mode 100644 index 0000000000..75803fd3fe --- /dev/null +++ b/epan/dissectors/asn1/xnap/packet-xnap-template.c @@ -0,0 +1,278 @@ +/* packet-xnap.c + * Routines for dissecting NG-RAN Xn application protocol (XnAP) + * 3GPP TS 38.423 packet dissection + * Copyright 2018, Pascal Quantin <pascal.quantin@gmail.com> + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0-or-later + * + * Ref: + * 3GPP TS 38.423 V15.0.0 (2018-06) + */ + +#include "config.h" + +#include <epan/packet.h> +#include <epan/asn1.h> +#include <epan/prefs.h> +#include <epan/sctpppids.h> +#include <epan/proto_data.h> +#include <epan/conversation.h> + +#include "packet-per.h" +#include "packet-lte-rrc.h" +#include "packet-nr-rrc.h" +#include "packet-e212.h" + +#ifdef _MSC_VER +/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */ +#pragma warning(disable:4146) +#endif + +#define PNAME "NG-RAN Xn Application Protocol (XnAP)" +#define PSNAME "XnAP" +#define PFNAME "xnap" + +/* Dissector will use SCTP PPID 61 or SCTP port. IANA assigned port = 38422 */ +#define SCTP_PORT_XnAP 38422 + +#include "packet-xnap-val.h" + +/* Initialize the protocol and registered fields */ +static int proto_xnap = -1; +static int hf_xnap_transportLayerAddressIPv4 = -1; +static int hf_xnap_transportLayerAddressIPv6 = -1; +static int hf_xnap_ng_ran_TraceID_TraceID = -1; +static int hf_xnap_ng_ran_TraceID_TraceRecordingSessionReference = -1; +#include "packet-xnap-hf.c" + +/* Initialize the subtree pointers */ +static gint ett_xnap = -1; +static gint ett_xnap_RRC_Context = -1; +static gint ett_nxap_container = -1; +static gint ett_xnap_PLMN_Identity = -1; +static gint ett_xnap_measurementTimingConfiguration = -1; +static gint ett_xnap_TransportLayerAddress = -1; +static gint ett_xnap_nr_EncyptionAlgorithms = -1; +static gint ett_xnap_nr_IntegrityProtectionAlgorithms = -1; +static gint ett_xnap_e_utra_EncyptionAlgorithms = -1; +static gint ett_xnap_e_utra_IntegrityProtectionAlgorithms = -1; +static gint ett_xnap_ng_ran_TraceID = -1; +static gint ett_xnap_interfaces_to_trace = -1; +#include "packet-xnap-ett.c" + +/* Global variables */ +static guint xnap_sctp_port = SCTP_PORT_XnAP; + +/* Dissector tables */ +static dissector_table_t xnap_ies_dissector_table; +static dissector_table_t xnap_extension_dissector_table; +static dissector_table_t xnap_proc_imsg_dissector_table; +static dissector_table_t xnap_proc_sout_dissector_table; +static dissector_table_t xnap_proc_uout_dissector_table; + +void proto_register_xnap(void); +void proto_reg_handoff_xnap(void); +static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +static int dissect_XnAP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); + +static dissector_handle_t xnap_handle; + +static void +xnap_PacketLossRate_fmt(gchar *s, guint32 v) +{ + g_snprintf(s, ITEM_LABEL_LENGTH, "%.1f %% (%u)", (float)v/10, v); +} + +typedef enum { + INITIATING_MESSAGE, + SUCCESSFUL_OUTCOME, + UNSUCCESSFUL_OUTCOME +} xnap_message_type; + +struct xnap_conv_info { + address addr_a; + GlobalNG_RANNode_ID_enum ranmode_id_a; + address addr_b; + GlobalNG_RANNode_ID_enum ranmode_id_b; +}; + +struct xnap_private_data { + struct xnap_conv_info *xnap_conv; + xnap_message_type message_type; + guint32 procedure_code; + guint32 protocol_ie_id; + guint32 triggering_message; +}; + +static struct xnap_private_data* +xnap_get_private_data(packet_info *pinfo) +{ + struct xnap_private_data *xnap_data = (struct xnap_private_data*)p_get_proto_data(pinfo->pool, pinfo, proto_xnap, 0); + if (!xnap_data) { + xnap_data = wmem_new0(pinfo->pool, struct xnap_private_data); + p_add_proto_data(pinfo->pool, pinfo, proto_xnap, 0, xnap_data); + } + return xnap_data; +} + +#include "packet-xnap-fn.c" + +static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) +{ + struct xnap_private_data *xnap_data = xnap_get_private_data(pinfo); + + return (dissector_try_uint_new(xnap_ies_dissector_table, xnap_data->protocol_ie_id, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0; +} + +static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) +{ + struct xnap_private_data *xnap_data = xnap_get_private_data(pinfo); + + return (dissector_try_uint_new(xnap_extension_dissector_table, xnap_data->protocol_ie_id, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0; +} + +static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) +{ + struct xnap_private_data *xnap_data = xnap_get_private_data(pinfo); + + return (dissector_try_uint_new(xnap_proc_imsg_dissector_table, xnap_data->procedure_code, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0; +} + +static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) +{ + struct xnap_private_data *xnap_data = xnap_get_private_data(pinfo); + + return (dissector_try_uint_new(xnap_proc_sout_dissector_table, xnap_data->procedure_code, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0; +} + +static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) +{ + struct xnap_private_data *xnap_data = xnap_get_private_data(pinfo); + + return (dissector_try_uint_new(xnap_proc_uout_dissector_table, xnap_data->procedure_code, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0; +} + +static int +dissect_xnap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) +{ + proto_item *xnap_item; + proto_tree *xnap_tree; + conversation_t *conversation; + struct xnap_private_data* xnap_data; + + col_set_str(pinfo->cinfo, COL_PROTOCOL, "XnAP"); + col_clear_fence(pinfo->cinfo, COL_INFO); + col_clear(pinfo->cinfo, COL_INFO); + + xnap_item = proto_tree_add_item(tree, proto_xnap, tvb, 0, -1, ENC_NA); + xnap_tree = proto_item_add_subtree(xnap_item, ett_xnap); + + xnap_data = xnap_get_private_data(pinfo); + conversation = find_or_create_conversation(pinfo); + xnap_data->xnap_conv = (struct xnap_conv_info *)conversation_get_proto_data(conversation, proto_xnap); + if (!xnap_data->xnap_conv) { + xnap_data->xnap_conv = wmem_new0(wmem_file_scope(), struct xnap_conv_info); + copy_address_wmem(wmem_packet_scope(), &xnap_data->xnap_conv->addr_a, &pinfo->src); + xnap_data->xnap_conv->ranmode_id_a = (GlobalNG_RANNode_ID_enum)-1; + copy_address_wmem(wmem_packet_scope(), &xnap_data->xnap_conv->addr_b, &pinfo->dst); + xnap_data->xnap_conv->ranmode_id_b = (GlobalNG_RANNode_ID_enum)-1; + conversation_add_proto_data(conversation, proto_xnap, xnap_data->xnap_conv); + } + + return dissect_XnAP_PDU_PDU(tvb, pinfo, xnap_tree, data); +} + +void proto_register_xnap(void) { + + /* List of fields */ + + static hf_register_info hf[] = { + { &hf_xnap_transportLayerAddressIPv4, + { "transportLayerAddress (IPv4)", "xnap.transportLayerAddressIPv4", + FT_IPv4, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_transportLayerAddressIPv6, + { "transportLayerAddress (IPv6)", "xnap.transportLayerAddressIPv6", + FT_IPv6, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ng_ran_TraceID_TraceID, + { "TraceID", "xnap.ng_ran_TraceID.TraceID", + FT_UINT24, BASE_HEX, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ng_ran_TraceID_TraceRecordingSessionReference, + { "TraceRecordingSessionReference", "xnap.ng_ran_TraceID.TraceRecordingSessionReference", + FT_UINT16, BASE_HEX, NULL, 0, + NULL, HFILL }}, +#include "packet-xnap-hfarr.c" + }; + + /* List of subtrees */ + static gint *ett[] = { + &ett_xnap, + &ett_xnap_RRC_Context, + &ett_nxap_container, + &ett_xnap_PLMN_Identity, + &ett_xnap_measurementTimingConfiguration, + &ett_xnap_TransportLayerAddress, + &ett_xnap_nr_EncyptionAlgorithms, + &ett_xnap_nr_IntegrityProtectionAlgorithms, + &ett_xnap_e_utra_EncyptionAlgorithms, + &ett_xnap_e_utra_IntegrityProtectionAlgorithms, + &ett_xnap_ng_ran_TraceID, + &ett_xnap_interfaces_to_trace, +#include "packet-xnap-ettarr.c" + }; + + module_t *xnap_module; + + proto_xnap = proto_register_protocol(PNAME, PSNAME, PFNAME); + proto_register_field_array(proto_xnap, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); + + xnap_handle = register_dissector("xnap", dissect_xnap, proto_xnap); + + xnap_ies_dissector_table = register_dissector_table("xnap.ies", "XNAP-PROTOCOL-IES", proto_xnap, FT_UINT32, BASE_DEC); + xnap_extension_dissector_table = register_dissector_table("xnap.extension", "XNAP-PROTOCOL-EXTENSION", proto_xnap, FT_UINT32, BASE_DEC); + xnap_proc_imsg_dissector_table = register_dissector_table("xnap.proc.imsg", "XNAP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_xnap, FT_UINT32, BASE_DEC); + xnap_proc_sout_dissector_table = register_dissector_table("xnap.proc.sout", "XNAP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_xnap, FT_UINT32, BASE_DEC); + xnap_proc_uout_dissector_table = register_dissector_table("xnap.proc.uout", "XNAP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_xnap, FT_UINT32, BASE_DEC); + + xnap_module = prefs_register_protocol(proto_xnap, proto_reg_handoff_xnap); + + prefs_register_uint_preference(xnap_module, "sctp.port", + "XnAP SCTP Port", + "Set the SCTP port for XnAP messages", + 10, + &xnap_sctp_port); +} + + +void +proto_reg_handoff_xnap(void) +{ + static gboolean initialized = FALSE; + static guint sctp_port; + + if (!initialized) { + dissector_add_for_decode_as("sctp.port", xnap_handle); + dissector_add_uint("sctp.ppi", XNAP_PROTOCOL_ID, xnap_handle); + initialized = TRUE; +#include "packet-xnap-dis-tab.c" + } else { + if (sctp_port != 0) { + dissector_delete_uint("sctp.port", sctp_port, xnap_handle); + } + } + sctp_port = xnap_sctp_port; + if (sctp_port != 0) { + dissector_add_uint("sctp.port", sctp_port, xnap_handle); + } +} diff --git a/epan/dissectors/asn1/xnap/xnap.cnf b/epan/dissectors/asn1/xnap/xnap.cnf new file mode 100644 index 0000000000..3669e7bcb1 --- /dev/null +++ b/epan/dissectors/asn1/xnap/xnap.cnf @@ -0,0 +1,688 @@ +# xnap.cnf +# xnap conformation file +# Copyright 2018 Pascal Quantin + +#.OPT +PER +ALIGNED +#.END + +#.OMIT_ASSIGNMENT +# Get rid of unused code warnings +#.END + +#.MAKE_ENUM +GlobalNG-RANNode-ID TYPE_PREFIX +ProtocolIE-ID +ProcedureCode +TriggeringMessage + +#.USE_VALS_EXT +ProcedureCode +ProtocolIE-ID + +#.EXPORTS + +#.PDU +XnAP-PDU + +#.TYPE_RENAME +ProtocolIE-Field/value ProtocolIE_Field_value +PrivateIE-Field/value PrivateIE_Field_value +InitiatingMessage/value InitiatingMessage_value +SuccessfulOutcome/value SuccessfulOutcome_value +UnsuccessfulOutcome/value UnsuccessfulOutcome_value + +#.FIELD_RENAME +ProtocolExtensionField/id extension_id +PrivateIE-Field/id private_id +InitiatingMessage/value initiatingMessage_value + +ProtocolIE-Field/value protocolIE_Field_value +SuccessfulOutcome/value successfulOutcome_value +PrivateIE-Field/value privateIE_Field_value + +#.OMIT_ASSIGNMENT +DeliveryStatus +ListOfTAI +Presence +ProtocolIE-FieldPair +ProtocolIE-ContainerList +ProtocolIE-ContainerPair +ProtocolIE-ContainerPairList +RANAC-Item +ReferenceID +RLCMode +S-NG-RANnode-SecurityKey +SCGConfigurationQuery +TAI-Item +#.END + +#.FN_BODY ProtocolIE-ID VAL_PTR = &xnap_data->protocol_ie_id + struct xnap_private_data *xnap_data = xnap_get_private_data(actx->pinfo); +%(DEFAULT_BODY)s +#.FN_FTR ProtocolIE-ID + if (tree) { + proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(xnap_data->protocol_ie_id, &xnap_ProtocolIE_ID_vals_ext, "unknown (%d)")); + } +#.END + +#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue + +#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue + +#.FN_BODY ProcedureCode VAL_PTR = &xnap_data->procedure_code + struct xnap_private_data *xnap_data = xnap_get_private_data(actx->pinfo); +%(DEFAULT_BODY)s + +#.FN_BODY TriggeringMessage VAL_PTR = &xnap_data->triggering_message + struct xnap_private_data *xnap_data = xnap_get_private_data(actx->pinfo); +%(DEFAULT_BODY)s +#.END + +#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue +#.FN_HDR InitiatingMessage/value + struct xnap_private_data *xnap_data = xnap_get_private_data(actx->pinfo); + xnap_data->message_type = INITIATING_MESSAGE; + +#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue +#.FN_HDR SuccessfulOutcome/value + struct xnap_private_data *xnap_data = xnap_get_private_data(actx->pinfo); + xnap_data->message_type = SUCCESSFUL_OUTCOME; + +#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue +#.FN_HDR UnsuccessfulOutcome/value + struct xnap_private_data *xnap_data = xnap_get_private_data(actx->pinfo); + xnap_data->message_type = UNSUCCESSFUL_OUTCOME; + +#.TYPE_ATTR +ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS = &xnap_ProtocolIE_ID_vals_ext +#.END + +#.FN_BODY GlobalNG-RANNode-ID VAL_PTR = &value + gint value; + struct xnap_private_data *xnap_data = xnap_get_private_data(actx->pinfo); + +%(DEFAULT_BODY)s + if (xnap_data->xnap_conv && xnap_data->procedure_code == id_xnSetup) { + if (addresses_equal(&actx->pinfo->src, &xnap_data->xnap_conv->addr_a)) { + xnap_data->xnap_conv->ranmode_id_a = (GlobalNG_RANNode_ID_enum)value; + } else if (addresses_equal(&actx->pinfo->src, &xnap_data->xnap_conv->addr_b)) { + xnap_data->xnap_conv->ranmode_id_b = (GlobalNG_RANNode_ID_enum)value; + } + } + +#.FN_BODY UEContextInfoHORequest/rrc-Context VAL_PTR = ¶meter_tvb + tvbuff_t *parameter_tvb = NULL; + +%(DEFAULT_BODY)s + if (parameter_tvb) { + struct xnap_private_data *xnap_data = xnap_get_private_data(actx->pinfo); + proto_tree *subtree; + GlobalNG_RANNode_ID_enum target_ranmode_id = (GlobalNG_RANNode_ID_enum)-1; + + if (xnap_data->xnap_conv) { + if (addresses_equal(&actx->pinfo->dst, &xnap_data->xnap_conv->addr_a)) { + target_ranmode_id = xnap_data->xnap_conv->ranmode_id_a; + } else if (addresses_equal(&actx->pinfo->dst, &xnap_data->xnap_conv->addr_b)) { + target_ranmode_id = xnap_data->xnap_conv->ranmode_id_b; + } + } + subtree = proto_item_add_subtree(actx->created_item, ett_xnap_RRC_Context); + if (target_ranmode_id == GlobalNG_RANNode_ID_gNB) { + dissect_nr_rrc_HandoverPreparationInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } else if (target_ranmode_id == GlobalNG_RANNode_ID_ng_eNB) { + dissect_lte_rrc_HandoverPreparationInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } + } + +#.FN_BODY Target2SourceNG-RANnodeTranspContainer VAL_PTR = ¶meter_tvb + tvbuff_t *parameter_tvb = NULL; + +%(DEFAULT_BODY)s + if (parameter_tvb) { + struct xnap_private_data *xnap_data = xnap_get_private_data(actx->pinfo); + proto_tree *subtree; + GlobalNG_RANNode_ID_enum target_ranmode_id = (GlobalNG_RANNode_ID_enum)-1; + + if (xnap_data->xnap_conv) { + if (addresses_equal(&actx->pinfo->dst, &xnap_data->xnap_conv->addr_a)) { + target_ranmode_id = xnap_data->xnap_conv->ranmode_id_a; + } else if (addresses_equal(&actx->pinfo->dst, &xnap_data->xnap_conv->addr_b)) { + target_ranmode_id = xnap_data->xnap_conv->ranmode_id_b; + } + } + subtree = proto_item_add_subtree(actx->created_item, ett_nxap_container); + if (target_ranmode_id == GlobalNG_RANNode_ID_gNB) { + dissect_nr_rrc_HandoverCommand_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } else if (target_ranmode_id == GlobalNG_RANNode_ID_ng_eNB) { + dissect_lte_rrc_HandoverCommand_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } + } + +#.FN_BODY UEContextInfoRetrUECtxtResp/rrc-Context VAL_PTR = ¶meter_tvb + tvbuff_t *parameter_tvb = NULL; + +%(DEFAULT_BODY)s + if (parameter_tvb) { + struct xnap_private_data *xnap_data = xnap_get_private_data(actx->pinfo); + proto_tree *subtree; + GlobalNG_RANNode_ID_enum target_ranmode_id = (GlobalNG_RANNode_ID_enum)-1; + + if (xnap_data->xnap_conv) { + if (addresses_equal(&actx->pinfo->dst, &xnap_data->xnap_conv->addr_a)) { + target_ranmode_id = xnap_data->xnap_conv->ranmode_id_a; + } else if (addresses_equal(&actx->pinfo->dst, &xnap_data->xnap_conv->addr_b)) { + target_ranmode_id = xnap_data->xnap_conv->ranmode_id_b; + } + } + subtree = proto_item_add_subtree(actx->created_item, ett_xnap_RRC_Context); + if (target_ranmode_id == GlobalNG_RANNode_ID_gNB) { + dissect_nr_rrc_HandoverPreparationInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } else if (target_ranmode_id == GlobalNG_RANNode_ID_ng_eNB) { + dissect_lte_rrc_HandoverPreparationInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } + } + +#.FN_BODY PLMN-Identity VAL_PTR = ¶meter_tvb + tvbuff_t *parameter_tvb = NULL; + proto_tree *subtree; +%(DEFAULT_BODY)s + if (!parameter_tvb) + return offset; + + subtree = proto_item_add_subtree(actx->created_item, ett_xnap_PLMN_Identity); + dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_NONE, FALSE); + +#.TYPE_ATTR +TAC TYPE = FT_UINT24 DISPLAY = BASE_DEC_HEX +#.FN_BODY TAC VAL_PTR = ¶meter_tvb HF_INDEX = -1 + tvbuff_t *parameter_tvb = NULL; +%(DEFAULT_BODY)s + if (parameter_tvb) { + actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 3, ENC_BIG_ENDIAN); + } + +#.FIELD_ATTR +NG-RAN-Cell-Identity/nr ABBREV=NR-Cell-Identity TYPE=FT_UINT40 DISPLAY=BASE_HEX + +#.FIELD_ATTR +NR-CGI/nr-CI ABBREV=NR-Cell-Identity TYPE=FT_UINT40 DISPLAY=BASE_HEX + +#.FN_BODY NR-Cell-Identity VAL_PTR = &cell_id_tvb HF_INDEX=-1 + tvbuff_t *cell_id_tvb = NULL; +%(DEFAULT_BODY)s + if (cell_id_tvb) { + guint64 cell_id = tvb_get_bits64(cell_id_tvb, 0, 36, ENC_BIG_ENDIAN); + actx->created_item = proto_tree_add_uint64(tree, hf_index, cell_id_tvb, 0, 5, cell_id); + } + +#.FIELD_ATTR +E-UTRA-CGI/e-utra-CI ABBREV=E-UTRA-Cell-Identity TYPE=FT_UINT32 DISPLAY=BASE_HEX + +#.FIELD_ATTR +NG-RAN-Cell-Identity/e-utra ABBREV=E-UTRA-Cell-Identity TYPE=FT_UINT32 DISPLAY=BASE_HEX + +#.FN_BODY E-UTRA-Cell-Identity VAL_PTR = &cell_id_tvb HF_INDEX=-1 + tvbuff_t *cell_id_tvb = NULL; +%(DEFAULT_BODY)s + if (cell_id_tvb) { + guint32 cell_id = tvb_get_bits32(cell_id_tvb, 0, 28, ENC_BIG_ENDIAN); + actx->created_item = proto_tree_add_uint(tree, hf_index, cell_id_tvb, 0, 4, cell_id); + } + +#.FN_BODY ServedCellInformation-NR/measurementTimingConfiguration VAL_PTR = ¶m_tvb + tvbuff_t *param_tvb = NULL; +%(DEFAULT_BODY)s + if (param_tvb) { + proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_measurementTimingConfiguration); + dissect_nr_rrc_MeasurementTimingConfiguration_PDU(param_tvb, actx->pinfo, subtree, NULL); + } + +#.TYPE_ATTR +BitRate DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_bit_sec + +#.TYPE_ATTR +PacketLossRate DISPLAY = BASE_CUSTOM STRINGS = CF_FUNC(xnap_PacketLossRate_fmt) + +#.FN_BODY TransportLayerAddress VAL_PTR = ¶meter_tvb LEN_PTR = &len + tvbuff_t *parameter_tvb = NULL; + proto_tree *subtree; + int len; + +%(DEFAULT_BODY)s + if (!parameter_tvb) + return offset; + + subtree = proto_item_add_subtree(actx->created_item, ett_xnap_TransportLayerAddress); + if (len == 32) { + /* IPv4 */ + proto_tree_add_item(subtree, hf_xnap_transportLayerAddressIPv4, parameter_tvb, 0, 4, ENC_BIG_ENDIAN); + } else if (len == 128) { + /* IPv6 */ + proto_tree_add_item(subtree, hf_xnap_transportLayerAddressIPv6, parameter_tvb, 0, 16, ENC_NA); + } else if (len == 160) { + /* IPv4 */ + proto_tree_add_item(subtree, hf_xnap_transportLayerAddressIPv4, parameter_tvb, 0, 4, ENC_BIG_ENDIAN); + /* IPv6 */ + proto_tree_add_item(subtree, hf_xnap_transportLayerAddressIPv6, parameter_tvb, 4, 16, ENC_NA); + } + +#.FN_BODY UESecurityCapabilities/nr-EncyptionAlgorithms VAL_PTR=¶meter_tvb + tvbuff_t *parameter_tvb = NULL; +%(DEFAULT_BODY)s + if (parameter_tvb) { + const gint *fields[] = { + &hf_xnap_T_nr_EncyptionAlgorithms_nea1_128, + &hf_xnap_T_nr_EncyptionAlgorithms_nea2_128, + &hf_xnap_T_nr_EncyptionAlgorithms_nea3_128, + NULL + }; + proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_nr_EncyptionAlgorithms); + proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 2, fields, ENC_BIG_ENDIAN); + } + +#.FN_BODY UESecurityCapabilities/nr-IntegrityProtectionAlgorithms VAL_PTR=¶meter_tvb + tvbuff_t *parameter_tvb = NULL; +%(DEFAULT_BODY)s + if (parameter_tvb) { + const gint *fields[] = { + &hf_xnap_T_nr_IntegrityProtectionAlgorithms_nia1_128, + &hf_xnap_T_nr_IntegrityProtectionAlgorithms_nia2_128, + &hf_xnap_T_nr_IntegrityProtectionAlgorithms_nia3_128, + NULL + }; + proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_nr_IntegrityProtectionAlgorithms); + proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 2, fields, ENC_BIG_ENDIAN); + } + +#.FN_BODY UESecurityCapabilities/e-utra-EncyptionAlgorithms VAL_PTR=¶meter_tvb + tvbuff_t *parameter_tvb = NULL; +%(DEFAULT_BODY)s + if (parameter_tvb) { + const gint *fields[] = { + &hf_xnap_T_e_utra_EncyptionAlgorithms_eea1_128, + &hf_xnap_T_e_utra_EncyptionAlgorithms_eea2_128, + &hf_xnap_T_e_utra_EncyptionAlgorithms_eea3_128, + NULL + }; + proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_e_utra_EncyptionAlgorithms); + proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 2, fields, ENC_BIG_ENDIAN); + } + +#.FN_BODY UESecurityCapabilities/e-utra-IntegrityProtectionAlgorithms VAL_PTR=¶meter_tvb + tvbuff_t *parameter_tvb = NULL; +%(DEFAULT_BODY)s + if (parameter_tvb) { + const gint *fields[] = { + &hf_xnap_T_e_utra_IntegrityProtectionAlgorithms_eia1_128, + &hf_xnap_T_e_utra_IntegrityProtectionAlgorithms_eia2_128, + &hf_xnap_T_e_utra_IntegrityProtectionAlgorithms_eia3_128, + NULL + }; + proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_e_utra_IntegrityProtectionAlgorithms); + proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 2, fields, ENC_BIG_ENDIAN); + } + +#.FN_BODY RAT-RestrictionInformation VAL_PTR=¶meter_tvb + tvbuff_t *parameter_tvb = NULL; +%(DEFAULT_BODY)s + if (parameter_tvb) { + const gint *fields[] = { + &hf_xnap_RAT_RestrictionInformation_e_UTRA, + &hf_xnap_RAT_RestrictionInformation_nR, + NULL + }; + proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_RAT_RestrictionInformation); + proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 1, fields, ENC_BIG_ENDIAN); + } + +#.FN_BODY TraceActivation/ng-ran-TraceID VAL_PTR = ¶meter_tvb + tvbuff_t *parameter_tvb; + proto_tree *subtree = NULL; +%(DEFAULT_BODY)s + if (!parameter_tvb) + return offset; + subtree = proto_item_add_subtree(actx->created_item, ett_xnap_ng_ran_TraceID); + dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_NONE, FALSE); + proto_tree_add_item(subtree, hf_xnap_ng_ran_TraceID_TraceID, parameter_tvb, 3, 3, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_xnap_ng_ran_TraceID_TraceRecordingSessionReference, parameter_tvb, 6, 2, ENC_BIG_ENDIAN); + +#.FN_BODY TraceActivation/interfaces-to-trace VAL_PTR = ¶meter_tvb + tvbuff_t *parameter_tvb = NULL; +%(DEFAULT_BODY)s + if (parameter_tvb) { + const gint *fields[] = { + &hf_xnap_T_interfaces_to_trace_ng_c, + &hf_xnap_T_interfaces_to_trace_x_nc, + &hf_xnap_T_interfaces_to_trace_uu, + &hf_xnap_T_interfaces_to_trace_f1_c, + &hf_xnap_T_interfaces_to_trace_e1, + NULL + }; + proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_interfaces_to_trace); + proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 1, fields, ENC_BIG_ENDIAN); + } + +#.END + +#.FN_HDR HandoverRequest + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequest"); +#.FN_HDR HandoverRequestAcknowledge + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequestAcknowledge"); +#.FN_HDR HandoverPreparationFailure + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverPreparationFailure"); +#.FN_HDR SNStatusTransfer + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNStatusTransfer"); +#.FN_HDR HandoverCancel + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancel"); +#.FN_HDR RetrieveUEContextRequest + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RetrieveUEContextRequest"); +#.FN_HDR RetrieveUEContextResponse + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RetrieveUEContextResponse"); +#.FN_HDR RetrieveUEContextFailure + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RetrieveUEContextFailure"); +#.FN_HDR RANPaging + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RANPaging"); +#.FN_HDR DataForwardingAddressIndication + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DataForwardingAddressIndication"); +#.FN_HDR UEContextRelease + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextRelease"); +#.FN_HDR SNodeAdditionRequest + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeAdditionRequest"); +#.FN_HDR SNodeAdditionRequestAcknowledge + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeAdditionRequestAcknowledge"); +#.FN_HDR SNodeAdditionRequestReject + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeAdditionRequestReject"); +#.FN_HDR SNodeReconfigurationComplete + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeReconfigurationComplete"); +#.FN_HDR SNodeModificationRequest + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeModificationRequest"); +#.FN_HDR SNodeModificationRequestAcknowledge + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeModificationRequestAcknowledge"); +#.FN_HDR SNodeModificationRequestReject + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeModificationRequestReject"); +#.FN_HDR SNodeModificationRequired + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeModificationRequired"); +#.FN_HDR SNodeModificationConfirm + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeModificationConfirm"); +#.FN_HDR SNodeModificationRefuse + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeModificationRefuse"); +#.FN_HDR SNodeReleaseRequest + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeReleaseRequest"); +#.FN_HDR SNodeReleaseRequestAcknowledge + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeReleaseRequestAcknowledge"); +#.FN_HDR SNodeReleaseReject + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeReleaseReject"); +#.FN_HDR SNodeReleaseRequired + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeReleaseRequired"); +#.FN_HDR SNodeReleaseConfirm + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeReleaseConfirm"); +#.FN_HDR SNodeCounterCheckRequest + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeCounterCheckRequest"); +#.FN_HDR SNodeChangeRequired + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeChangeRequired"); +#.FN_HDR SNodeChangeConfirm + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeChangeConfirm"); +#.FN_HDR SNodeChangeRefuse + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeChangeRefuse"); +#.FN_HDR RRCTransfer + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRCTransfer"); +#.FN_HDR XnRemovalRequest + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "XnRemovalRequest"); +#.FN_HDR XnRemovalResponse + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "XnRemovalResponse"); +#.FN_HDR XnRemovalFailure + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "XnRemovalFailure"); +#.FN_HDR XnSetupRequest + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "XnSetupRequest"); +#.FN_HDR XnSetupResponse + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "XnSetupResponse"); +#.FN_HDR XnSetupFailure + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "XnSetupFailure"); +#.FN_HDR NGRANNodeConfigurationUpdate + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NGRANNodeConfigurationUpdate"); +#.FN_HDR NGRANNodeConfigurationUpdateAcknowledge + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NGRANNodeConfigurationUpdateAcknowledge"); +#.FN_HDR NGRANNodeConfigurationUpdateFailure + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NGRANNodeConfigurationUpdateFailure"); +#.FN_HDR CellActivationRequest + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CellActivationRequest"); +#.FN_HDR CellActivationResponse + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CellActivationResponse"); +#.FN_HDR CellActivationFailure + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CellActivationFailure"); +#.FN_HDR ResetRequest + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetRequest"); +#.FN_HDR ResetResponse + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetResponse"); +#.FN_HDR ErrorIndication + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ErrorIndication"); +#.FN_HDR PrivateMessage + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PrivateMessage"); + +#.ASSIGN_VALUE_TO_TYPE # XnAP does not have constants assigned to types, they are pure INTEGER +# ProcedureCode +id-handoverPreparation ProcedureCode +id-sNStatusTransfer ProcedureCode +id-handoverCancel ProcedureCode +id-retrieveUEContext ProcedureCode +id-rANPaging ProcedureCode +id-dataForwardingAddressIndication ProcedureCode +id-uEContextRelease ProcedureCode +id-sNGRANnodeAdditionPreparation ProcedureCode +id-sNGRANnodeReconfigurationCompletion ProcedureCode +id-mNGRANnodeinitiatedSNGRANnodeModificationPreparation ProcedureCode +id-sNGRANnodeinitiatedSNGRANnodeModificationPreparation ProcedureCode +id-mNGRANnodeinitiatedSNGRANnodeRelease ProcedureCode +id-sNGRANnodeinitiatedSNGRANnodeRelease ProcedureCode +id-sNGRANnodeCounterCheck ProcedureCode +id-sNGRANnodeChange ProcedureCode +id-rRCTransfer ProcedureCode +id-xnRemoval ProcedureCode +id-xnSetup ProcedureCode +id-nGRANnodeConfigurationUpdate ProcedureCode +id-cellActivation ProcedureCode +id-reset ProcedureCode +id-errorIndication ProcedureCode +id-privateMessage ProcedureCode + +# ProtocolIE-ID +id-ActivatedServedCells ProtocolIE-ID +id-ActivationIDforCellActivation ProtocolIE-ID +id-AMF-Pool-Information ProtocolIE-ID +id-AreaOfInterest-Item ProtocolIE-ID +id-AssistanceDataForRANPaging ProtocolIE-ID +id-Cause ProtocolIE-ID +id-cellAssistanceInfo-NR ProtocolIE-ID +id-ConfigurationUpdateInitiatingNodeChoice ProtocolIE-ID +id-CriticalityDiagnostics ProtocolIE-ID +id-dataforwardingInfoperPDUSession ProtocolIE-ID +id-dataforwardingInfoperPDUSession-Item ProtocolIE-ID +id-DataForwardingResponseDRBItem ProtocolIE-ID +id-DRBsSubjectToStatusTransfer-Item ProtocolIE-ID +id-DRBsSubjectToStatusTransfer-List ProtocolIE-ID +id-DRBToQoSFlowMapping-Item ProtocolIE-ID +id-GlobalNG-RAN-node-ID ProtocolIE-ID +id-GUAMI ProtocolIE-ID +id-List-of-served-cells-E-UTRA ProtocolIE-ID +id-List-of-served-cells-NR ProtocolIE-ID +id-LocationReportingInformation ProtocolIE-ID +id-MAC-I ProtocolIE-ID +id-MaskedIMEISV ProtocolIE-ID +id-new-NG-RAN-Cell-Identity ProtocolIE-ID +id-newNG-RANnodeUEXnAPID ProtocolIE-ID +id-oldNG-RANnodeUEXnAPID ProtocolIE-ID +id-PagingDRX ProtocolIE-ID +id-PDUSessionResourceAdmittedResponseTransferItem ProtocolIE-ID +id-PDUSessionResourcesAdmitted-Item ProtocolIE-ID +id-PDUSessionResourcesAdmitted-List ProtocolIE-ID +id-PDUSessionResourcesNotAdmitted-Item ProtocolIE-ID +id-PDUSessionResourcesNotAdmitted-List ProtocolIE-ID +id-PDUSessionResourcesToBeSetup-Item ProtocolIE-ID +id-QoSFlowAdmitted-Item ProtocolIE-ID +id-QoSFlow-Item ProtocolIE-ID +id-QoSFlowNotAdmitted-Item ProtocolIE-ID +id-QoSFlowsToBeSetup-Item ProtocolIE-ID +id-RANPagingArea ProtocolIE-ID +id-RANPagingPriority ProtocolIE-ID +id-ResetRequestPartialReleaseItem ProtocolIE-ID +id-ResetRequestTypeInfo ProtocolIE-ID +id-ResetResponsePartialReleaseItem ProtocolIE-ID +id-ResetResponseTypeInfo ProtocolIE-ID +id-RespondingNodeTypeConfigUpdateAck ProtocolIE-ID +id-ServedCellsToActivate ProtocolIE-ID +id-servedCellsToUpdate-E-UTRA ProtocolIE-ID +id-ServedCellsToUpdateInitiatingNodeChoice ProtocolIE-ID +id-servedCellsToUpdate-NR ProtocolIE-ID +id-sourceNG-RANnodeUEXnAPID ProtocolIE-ID +id-TAISupport-Item ProtocolIE-ID +id-TAISupport-list ProtocolIE-ID +id-Target2SourceNG-RANnodeTranspContainer ProtocolIE-ID +id-targetCellGlobalID ProtocolIE-ID +id-targetNG-RANnodeUEXnAPID ProtocolIE-ID +id-TraceActivation ProtocolIE-ID +id-UEContextID ProtocolIE-ID +id-UEContextInfoHORequest ProtocolIE-ID +id-UEContextInfoRetrUECtxtResp ProtocolIE-ID +id-UEIdentityIndexValue ProtocolIE-ID +id-UERANPagingIdentity ProtocolIE-ID +id-XnRemovalThreshold ProtocolIE-ID + +#.REGISTER + +#XNAP-PROTOCOL-IES +ActivatedServedCells N xnap.ies id-ActivatedServedCells +ActivationIDforCellActivation N xnap.ies id-ActivationIDforCellActivation +AMF-Pool-Information N xnap.ies id-AMF-Pool-Information +AreaOfInterest-Item N xnap.ies id-AreaOfInterest-Item +AssistanceDataForRANPaging N xnap.ies id-AssistanceDataForRANPaging +Cause N xnap.ies id-Cause +CellAssistanceInfo-NR N xnap.ies id-cellAssistanceInfo-NR +ConfigurationUpdateInitiatingNodeChoice N xnap.ies id-ConfigurationUpdateInitiatingNodeChoice +CriticalityDiagnostics N xnap.ies id-CriticalityDiagnostics +DataforwardingInfoperPDUSession N xnap.ies id-dataforwardingInfoperPDUSession +DataforwardingInfoperPDUSession-Item N xnap.ies id-dataforwardingInfoperPDUSession-Item +DataForwardingResponseDRBItem N xnap.ies id-DataForwardingResponseDRBItem +DRBsSubjectToStatusTransfer-Item N xnap.ies id-DRBsSubjectToStatusTransfer-Item +DRBsSubjectToStatusTransfer-List N xnap.ies id-DRBsSubjectToStatusTransfer-List +DRBToQoSFlowMapping-Item N xnap.ies id-DRBToQoSFlowMapping-Item +GlobalNG-RANNode-ID N xnap.ies id-GlobalNG-RAN-node-ID +GUAMI N xnap.ies id-GUAMI +ServedCells-E-UTRA N xnap.ies id-List-of-served-cells-E-UTRA +ServedCells-NR N xnap.ies id-List-of-served-cells-NR +LocationReportingInformation N xnap.ies id-LocationReportingInformation +MAC-I N xnap.ies id-MAC-I +MaskedIMEISV N xnap.ies id-MaskedIMEISV +NG-RAN-Cell-Identity N xnap.ies id-new-NG-RAN-Cell-Identity +NG-RANnodeUEXnAPID N xnap.ies id-newNG-RANnodeUEXnAPID +NG-RANnodeUEXnAPID N xnap.ies id-oldNG-RANnodeUEXnAPID +PagingDRX N xnap.ies id-PagingDRX +#id-PDUSessionResourceAdmittedResponseTransferItem +PDUSessionResourcesAdmitted-Item N xnap.ies id-PDUSessionResourcesAdmitted-Item +PDUSessionResourcesAdmitted-List N xnap.ies id-PDUSessionResourcesAdmitted-List +PDUSessionResourcesNotAdmitted-Item N xnap.ies id-PDUSessionResourcesNotAdmitted-Item +PDUSessionResourcesNotAdmitted-List N xnap.ies id-PDUSessionResourcesNotAdmitted-List +PDUSessionResourcesToBeSetup-Item N xnap.ies id-PDUSessionResourcesToBeSetup-Item +QoSFlowAdmitted-Item N xnap.ies id-QoSFlowAdmitted-Item +QoSFlow-Item N xnap.ies id-QoSFlow-Item +QoSFlowNotAdmitted-Item N xnap.ies id-QoSFlowNotAdmitted-Item +QoSFlowsToBeSetup-Item N xnap.ies id-QoSFlowsToBeSetup-Item +RANPagingArea N xnap.ies id-RANPagingArea +RANPagingPriority N xnap.ies id-RANPagingPriority +ResetRequestPartialReleaseItem N xnap.ies id-ResetRequestPartialReleaseItem +ResetRequestTypeInfo N xnap.ies id-ResetRequestTypeInfo +ResetResponsePartialReleaseItem N xnap.ies id-ResetResponsePartialReleaseItem +ResetResponseTypeInfo N xnap.ies id-ResetResponseTypeInfo +RespondingNodeTypeConfigUpdateAck N xnap.ies id-RespondingNodeTypeConfigUpdateAck +ServedCellsToActivate N xnap.ies id-ServedCellsToActivate +ServedCellsToUpdate-E-UTRA N xnap.ies id-servedCellsToUpdate-E-UTRA +#id-ServedCellsToUpdateInitiatingNodeChoice +ServedCellsToUpdate-NR N xnap.ies id-servedCellsToUpdate-NR +NG-RANnodeUEXnAPID N xnap.ies id-sourceNG-RANnodeUEXnAPID +TAISupport-Item N xnap.ies id-TAISupport-Item +TAISupport-List N xnap.ies id-TAISupport-list +Target2SourceNG-RANnodeTranspContainer N xnap.ies id-Target2SourceNG-RANnodeTranspContainer +Target-CGI N xnap.ies id-targetCellGlobalID +NG-RANnodeUEXnAPID N xnap.ies id-targetNG-RANnodeUEXnAPID +TraceActivation N xnap.ies id-TraceActivation +UEContextID N xnap.ies id-UEContextID +UEContextInfoHORequest N xnap.ies id-UEContextInfoHORequest +UEContextInfoRetrUECtxtResp N xnap.ies id-UEContextInfoRetrUECtxtResp +UEIdentityIndexValue N xnap.ies id-UEIdentityIndexValue +UERANPagingIdentity N xnap.ies id-UERANPagingIdentity +XnBenefitValue N xnap.ies id-XnRemovalThreshold + +#XNAP-PROTOCOL-EXTENSION + +#XNAP-ELEMENTARY-PROCEDURE +HandoverRequest N xnap.proc.imsg id-handoverPreparation +HandoverRequestAcknowledge N xnap.proc.sout id-handoverPreparation +HandoverPreparationFailure N xnap.proc.uout id-handoverPreparation + +SNStatusTransfer N xnap.proc.imsg id-sNStatusTransfer + +HandoverCancel N xnap.proc.imsg id-handoverCancel + +RetrieveUEContextRequest N xnap.proc.imsg id-retrieveUEContext +RetrieveUEContextResponse N xnap.proc.sout id-retrieveUEContext +RetrieveUEContextFailure N xnap.proc.uout id-retrieveUEContext + +RANPaging N xnap.proc.imsg id-rANPaging + +DataForwardingAddressIndication N xnap.proc.imsg id-dataForwardingAddressIndication + +UEContextRelease N xnap.proc.imsg id-uEContextRelease + +SNodeAdditionRequest N xnap.proc.imsg id-sNGRANnodeAdditionPreparation +SNodeAdditionRequestAcknowledge N xnap.proc.sout id-sNGRANnodeAdditionPreparation +SNodeAdditionRequestReject N xnap.proc.uout id-sNGRANnodeAdditionPreparation + +SNodeReconfigurationComplete N xnap.proc.imsg id-sNGRANnodeReconfigurationCompletion + +SNodeModificationRequest N xnap.proc.imsg id-mNGRANnodeinitiatedSNGRANnodeModificationPreparation +SNodeModificationRequestAcknowledge N xnap.proc.sout id-mNGRANnodeinitiatedSNGRANnodeModificationPreparation +SNodeModificationRequestReject N xnap.proc.uout id-mNGRANnodeinitiatedSNGRANnodeModificationPreparation + +SNodeModificationRequired N xnap.proc.imsg id-sNGRANnodeinitiatedSNGRANnodeModificationPreparation +SNodeModificationConfirm N xnap.proc.sout id-sNGRANnodeinitiatedSNGRANnodeModificationPreparation +SNodeModificationRefuse N xnap.proc.uout id-sNGRANnodeinitiatedSNGRANnodeModificationPreparation + +SNodeReleaseRequest N xnap.proc.imsg id-mNGRANnodeinitiatedSNGRANnodeRelease +SNodeReleaseRequestAcknowledge N xnap.proc.sout id-mNGRANnodeinitiatedSNGRANnodeRelease +SNodeReleaseReject N xnap.proc.uout id-mNGRANnodeinitiatedSNGRANnodeRelease + +SNodeReleaseRequired N xnap.proc.imsg id-sNGRANnodeinitiatedSNGRANnodeRelease +SNodeReleaseConfirm N xnap.proc.sout id-sNGRANnodeinitiatedSNGRANnodeRelease + +SNodeCounterCheckRequest N xnap.proc.imsg id-sNGRANnodeCounterCheck + +SNodeChangeRequired N xnap.proc.imsg id-sNGRANnodeChange +SNodeChangeConfirm N xnap.proc.sout id-sNGRANnodeChange +SNodeChangeRefuse N xnap.proc.uout id-sNGRANnodeChange + +RRCTransfer N xnap.proc.imsg id-rRCTransfer + +XnRemovalRequest N xnap.proc.imsg id-xnRemoval +XnRemovalResponse N xnap.proc.sout id-xnRemoval +XnRemovalFailure N xnap.proc.uout id-xnRemoval + +XnSetupRequest N xnap.proc.imsg id-xnSetup +XnSetupResponse N xnap.proc.sout id-xnSetup +XnSetupFailure N xnap.proc.uout id-xnSetup + +NGRANNodeConfigurationUpdate N xnap.proc.imsg id-nGRANnodeConfigurationUpdate +NGRANNodeConfigurationUpdateAcknowledge N xnap.proc.sout id-nGRANnodeConfigurationUpdate +NGRANNodeConfigurationUpdateFailure N xnap.proc.uout id-nGRANnodeConfigurationUpdate + +CellActivationRequest N xnap.proc.imsg id-cellActivation +CellActivationResponse N xnap.proc.sout id-cellActivation +CellActivationFailure N xnap.proc.uout id-cellActivation + +ResetRequest N xnap.proc.imsg id-reset +ResetResponse N xnap.proc.sout id-reset + +ErrorIndication N xnap.proc.imsg id-errorIndication + +PrivateMessage N xnap.proc.imsg id-privateMessage +#.END diff --git a/epan/dissectors/packet-nr-rrc.c b/epan/dissectors/packet-nr-rrc.c index f3acf69dca..44462ed053 100644 --- a/epan/dissectors/packet-nr-rrc.c +++ b/epan/dissectors/packet-nr-rrc.c @@ -201,6 +201,7 @@ static int proto_nr_rrc = -1; /*--- Included file: packet-nr-rrc-hf.c ---*/ #line 1 "./asn1/nr-rrc/packet-nr-rrc-hf.c" +static int hf_nr_rrc_nr_rrc_HandoverCommand_PDU = -1; /* HandoverCommand */ static int hf_nr_rrc_nr_rrc_HandoverPreparationInformation_PDU = -1; /* HandoverPreparationInformation */ static int hf_nr_rrc_nr_rrc_CG_ConfigInfo_PDU = -1; /* CG_ConfigInfo */ static int hf_nr_rrc_nr_rrc_ConfigRestrictInfoSCG_PDU = -1; /* ConfigRestrictInfoSCG */ @@ -226,16 +227,22 @@ static int hf_nr_rrc_MeasResultList2NR_PDU = -1; /* MeasResultList2NR */ static int hf_nr_rrc_MeasResultSCG_Failure_PDU = -1; /* MeasResultSCG_Failure */ static int hf_nr_rrc_criticalExtensions = -1; /* T_criticalExtensions */ static int hf_nr_rrc_c1 = -1; /* T_c1 */ -static int hf_nr_rrc_handoverPreparationInformation = -1; /* HandoverPreparationInformation_IEs */ +static int hf_nr_rrc_handoverCommand = -1; /* HandoverCommand_IEs */ static int hf_nr_rrc_spare3 = -1; /* NULL */ static int hf_nr_rrc_spare2 = -1; /* NULL */ static int hf_nr_rrc_spare1 = -1; /* NULL */ static int hf_nr_rrc_criticalExtensionsFuture = -1; /* T_criticalExtensionsFuture */ +static int hf_nr_rrc_handoverCommandMessage = -1; /* T_handoverCommandMessage */ +static int hf_nr_rrc_nonCriticalExtension = -1; /* T_nonCriticalExtension */ +static int hf_nr_rrc_criticalExtensions_01 = -1; /* T_criticalExtensions_01 */ +static int hf_nr_rrc_c1_01 = -1; /* T_c1_01 */ +static int hf_nr_rrc_handoverPreparationInformation = -1; /* HandoverPreparationInformation_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_01 = -1; /* T_criticalExtensionsFuture_01 */ static int hf_nr_rrc_ue_CapabilityRAT_List = -1; /* UE_CapabilityRAT_ContainerList */ static int hf_nr_rrc_sourceConfig = -1; /* T_sourceConfig */ static int hf_nr_rrc_rrm_Config = -1; /* RRM_Config */ static int hf_nr_rrc_as_Context = -1; /* AS_Context */ -static int hf_nr_rrc_nonCriticalExtension = -1; /* T_nonCriticalExtension */ +static int hf_nr_rrc_nonCriticalExtension_01 = -1; /* T_nonCriticalExtension_01 */ static int hf_nr_rrc_reestablishmentInfo = -1; /* T_reestablishmentInfo */ static int hf_nr_rrc_sourcePhysCellId = -1; /* PhysCellId */ static int hf_nr_rrc_targetCellShortMAC_I = -1; /* ShortMAC_I */ @@ -248,10 +255,10 @@ static int hf_nr_rrc_shortMAC_I = -1; /* ShortMAC_I */ static int hf_nr_rrc_ue_InactiveTime = -1; /* T_ue_InactiveTime */ static int hf_nr_rrc_candidateCellInfoList = -1; /* MeasResultList2NR */ static int hf_nr_rrc_measuredFrequency = -1; /* ARFCN_ValueNR */ -static int hf_nr_rrc_criticalExtensions_01 = -1; /* T_criticalExtensions_01 */ -static int hf_nr_rrc_c1_01 = -1; /* T_c1_01 */ +static int hf_nr_rrc_criticalExtensions_02 = -1; /* T_criticalExtensions_02 */ +static int hf_nr_rrc_c1_02 = -1; /* T_c1_02 */ static int hf_nr_rrc_cg_ConfigInfo = -1; /* CG_ConfigInfo_IEs */ -static int hf_nr_rrc_criticalExtensionsFuture_01 = -1; /* T_criticalExtensionsFuture_01 */ +static int hf_nr_rrc_criticalExtensionsFuture_02 = -1; /* T_criticalExtensionsFuture_02 */ static int hf_nr_rrc_ue_CapabilityInfo = -1; /* T_ue_CapabilityInfo */ static int hf_nr_rrc_candidateCellInfoListMN = -1; /* MeasResultList2NR */ static int hf_nr_rrc_candidateCellInfoListSN = -1; /* T_candidateCellInfoListSN */ @@ -264,7 +271,7 @@ static int hf_nr_rrc_measConfigMN = -1; /* MeasConfigMN */ static int hf_nr_rrc_sourceConfigSCG = -1; /* T_sourceConfigSCG */ static int hf_nr_rrc_scg_RB_Config = -1; /* T_scg_RB_Config */ static int hf_nr_rrc_mcg_RB_Config = -1; /* T_mcg_RB_Config */ -static int hf_nr_rrc_nonCriticalExtension_01 = -1; /* T_nonCriticalExtension_01 */ +static int hf_nr_rrc_nonCriticalExtension_02 = -1; /* T_nonCriticalExtension_02 */ static int hf_nr_rrc_allowedBC_ListMRDC = -1; /* BandCombinationIndexList */ static int hf_nr_rrc_powerCoordination_FR1 = -1; /* T_powerCoordination_FR1 */ static int hf_nr_rrc_p_maxNR = -1; /* P_Max */ @@ -305,12 +312,12 @@ static int hf_nr_rrc_measGapConfig = -1; /* T_measGapConfig */ static int hf_nr_rrc_release = -1; /* NULL */ static int hf_nr_rrc_setup = -1; /* GapConfig */ static int hf_nr_rrc_gapPurpose = -1; /* T_gapPurpose */ -static int hf_nr_rrc_criticalExtensions_02 = -1; /* T_criticalExtensions_02 */ -static int hf_nr_rrc_c1_02 = -1; /* T_c1_02 */ +static int hf_nr_rrc_criticalExtensions_03 = -1; /* T_criticalExtensions_03 */ +static int hf_nr_rrc_c1_03 = -1; /* T_c1_03 */ static int hf_nr_rrc_measTimingConf = -1; /* MeasurementTimingConfiguration_IEs */ -static int hf_nr_rrc_criticalExtensionsFuture_02 = -1; /* T_criticalExtensionsFuture_02 */ +static int hf_nr_rrc_criticalExtensionsFuture_03 = -1; /* T_criticalExtensionsFuture_03 */ static int hf_nr_rrc_measTiming = -1; /* MeasTimingList */ -static int hf_nr_rrc_nonCriticalExtension_02 = -1; /* T_nonCriticalExtension_02 */ +static int hf_nr_rrc_nonCriticalExtension_03 = -1; /* T_nonCriticalExtension_03 */ static int hf_nr_rrc_MeasTimingList_item = -1; /* MeasTiming */ static int hf_nr_rrc_frequencyAndTiming = -1; /* T_frequencyAndTiming */ static int hf_nr_rrc_carrierFreq = -1; /* ARFCN_ValueNR */ @@ -319,7 +326,7 @@ static int hf_nr_rrc_message = -1; /* BCCH_BCH_MessageType */ static int hf_nr_rrc_mib = -1; /* MIB */ static int hf_nr_rrc_messageClassExtension = -1; /* T_messageClassExtension */ static int hf_nr_rrc_message_01 = -1; /* DL_DCCH_MessageType */ -static int hf_nr_rrc_c1_03 = -1; /* T_c1_03 */ +static int hf_nr_rrc_c1_04 = -1; /* T_c1_04 */ static int hf_nr_rrc_rrcReconfiguration = -1; /* RRCReconfiguration */ static int hf_nr_rrc_spare15 = -1; /* NULL */ static int hf_nr_rrc_spare14 = -1; /* NULL */ @@ -335,7 +342,7 @@ static int hf_nr_rrc_spare5 = -1; /* NULL */ static int hf_nr_rrc_spare4 = -1; /* NULL */ static int hf_nr_rrc_messageClassExtension_01 = -1; /* T_messageClassExtension_01 */ static int hf_nr_rrc_message_02 = -1; /* UL_DCCH_MessageType */ -static int hf_nr_rrc_c1_04 = -1; /* T_c1_04 */ +static int hf_nr_rrc_c1_05 = -1; /* T_c1_05 */ static int hf_nr_rrc_measurementReport = -1; /* MeasurementReport */ static int hf_nr_rrc_rrcReconfigurationComplete = -1; /* RRCReconfigurationComplete */ static int hf_nr_rrc_messageClassExtension_02 = -1; /* T_messageClassExtension_02 */ @@ -347,24 +354,24 @@ static int hf_nr_rrc_pdcch_ConfigSIB1 = -1; /* INTEGER_0_255 */ static int hf_nr_rrc_cellBarred = -1; /* T_cellBarred */ static int hf_nr_rrc_intraFreqReselection = -1; /* T_intraFreqReselection */ static int hf_nr_rrc_spare = -1; /* BIT_STRING_SIZE_1 */ -static int hf_nr_rrc_criticalExtensions_03 = -1; /* T_criticalExtensions_03 */ +static int hf_nr_rrc_criticalExtensions_04 = -1; /* T_criticalExtensions_04 */ static int hf_nr_rrc_measurementReport_01 = -1; /* MeasurementReport_IEs */ -static int hf_nr_rrc_criticalExtensionsFuture_03 = -1; /* T_criticalExtensionsFuture_03 */ +static int hf_nr_rrc_criticalExtensionsFuture_04 = -1; /* T_criticalExtensionsFuture_04 */ static int hf_nr_rrc_measResults = -1; /* MeasResults */ static int hf_nr_rrc_lateNonCriticalExtension = -1; /* OCTET_STRING */ -static int hf_nr_rrc_nonCriticalExtension_03 = -1; /* T_nonCriticalExtension_03 */ +static int hf_nr_rrc_nonCriticalExtension_04 = -1; /* T_nonCriticalExtension_04 */ static int hf_nr_rrc_rrc_TransactionIdentifier = -1; /* RRC_TransactionIdentifier */ -static int hf_nr_rrc_criticalExtensions_04 = -1; /* T_criticalExtensions_04 */ +static int hf_nr_rrc_criticalExtensions_05 = -1; /* T_criticalExtensions_05 */ static int hf_nr_rrc_rrcReconfiguration_01 = -1; /* RRCReconfiguration_IEs */ -static int hf_nr_rrc_criticalExtensionsFuture_04 = -1; /* T_criticalExtensionsFuture_04 */ +static int hf_nr_rrc_criticalExtensionsFuture_05 = -1; /* T_criticalExtensionsFuture_05 */ static int hf_nr_rrc_radioBearerConfig = -1; /* RadioBearerConfig */ static int hf_nr_rrc_secondaryCellGroup = -1; /* T_secondaryCellGroup */ static int hf_nr_rrc_measConfig = -1; /* MeasConfig */ -static int hf_nr_rrc_nonCriticalExtension_04 = -1; /* T_nonCriticalExtension_04 */ -static int hf_nr_rrc_criticalExtensions_05 = -1; /* T_criticalExtensions_05 */ -static int hf_nr_rrc_rrcReconfigurationComplete_01 = -1; /* RRCReconfigurationComplete_IEs */ -static int hf_nr_rrc_criticalExtensionsFuture_05 = -1; /* T_criticalExtensionsFuture_05 */ static int hf_nr_rrc_nonCriticalExtension_05 = -1; /* T_nonCriticalExtension_05 */ +static int hf_nr_rrc_criticalExtensions_06 = -1; /* T_criticalExtensions_06 */ +static int hf_nr_rrc_rrcReconfigurationComplete_01 = -1; /* RRCReconfigurationComplete_IEs */ +static int hf_nr_rrc_criticalExtensionsFuture_06 = -1; /* T_criticalExtensionsFuture_06 */ +static int hf_nr_rrc_nonCriticalExtension_06 = -1; /* T_nonCriticalExtension_06 */ static int hf_nr_rrc_frequencyOffsetSSB = -1; /* T_frequencyOffsetSSB */ static int hf_nr_rrc_ssb_PositionsInBurst = -1; /* T_ssb_PositionsInBurst */ static int hf_nr_rrc_inOneGroup = -1; /* BIT_STRING_SIZE_8 */ @@ -377,7 +384,7 @@ static int hf_nr_rrc_tdd_UL_DL_Configuration = -1; /* TDD_UL_DL_ConfigCommon */ static int hf_nr_rrc_tdd_UL_DL_configurationCommon2 = -1; /* TDD_UL_DL_ConfigCommon */ static int hf_nr_rrc_pdcch_ConfigCommon = -1; /* PDCCH_ConfigCommon */ static int hf_nr_rrc_pucch_ConfigCommon = -1; /* PUCCH_ConfigCommon */ -static int hf_nr_rrc_nonCriticalExtension_06 = -1; /* T_nonCriticalExtension_06 */ +static int hf_nr_rrc_nonCriticalExtension_07 = -1; /* T_nonCriticalExtension_07 */ static int hf_nr_rrc_locationAndBandwidth = -1; /* INTEGER_0_37949 */ static int hf_nr_rrc_subcarrierSpacing = -1; /* SubcarrierSpacing */ static int hf_nr_rrc_cyclicPrefix = -1; /* T_cyclicPrefix */ @@ -1859,7 +1866,7 @@ static int hf_nr_rrc_fr1_Add_UE_MRDC_Capabilities = -1; /* UE_MRDC_CapabilityAd static int hf_nr_rrc_fr2_Add_UE_MRDC_Capabilities = -1; /* UE_MRDC_CapabilityAddFRX_Mode */ static int hf_nr_rrc_featureSetCombinations = -1; /* SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination */ static int hf_nr_rrc_featureSetCombinations_item = -1; /* FeatureSetCombination */ -static int hf_nr_rrc_nonCriticalExtension_07 = -1; /* T_nonCriticalExtension_07 */ +static int hf_nr_rrc_nonCriticalExtension_08 = -1; /* T_nonCriticalExtension_08 */ static int hf_nr_rrc_measParametersMRDC_XDD_Diff = -1; /* MeasParametersMRDC_XDD_Diff */ static int hf_nr_rrc_generalParametersMRDC_XDD_Diff = -1; /* GeneralParametersMRDC_XDD_Diff */ static int hf_nr_rrc_measParametersMRDC_FRX_Diff = -1; /* MeasParametersMRDC_FRX_Diff */ @@ -1885,7 +1892,7 @@ static int hf_nr_rrc_tdd_Add_UE_NR_Capabilities = -1; /* UE_NR_CapabilityAddXDD static int hf_nr_rrc_fr1_Add_UE_NR_Capabilities = -1; /* UE_NR_CapabilityAddFRX_Mode */ static int hf_nr_rrc_fr2_Add_UE_NR_Capabilities = -1; /* UE_NR_CapabilityAddFRX_Mode */ static int hf_nr_rrc_featureSets = -1; /* FeatureSets */ -static int hf_nr_rrc_nonCriticalExtension_08 = -1; /* T_nonCriticalExtension_08 */ +static int hf_nr_rrc_nonCriticalExtension_09 = -1; /* T_nonCriticalExtension_09 */ static int hf_nr_rrc_phy_ParametersXDD_Diff = -1; /* Phy_ParametersXDD_Diff */ static int hf_nr_rrc_mac_ParametersXDD_Diff = -1; /* MAC_ParametersXDD_Diff */ static int hf_nr_rrc_measParametersXDD_Diff = -1; /* MeasParametersXDD_Diff */ @@ -2099,12 +2106,18 @@ static gint ett_nr_rrc = -1; /*--- Included file: packet-nr-rrc-ett.c ---*/ #line 1 "./asn1/nr-rrc/packet-nr-rrc-ett.c" -static gint ett_nr_rrc_HandoverPreparationInformation = -1; +static gint ett_nr_rrc_HandoverCommand = -1; static gint ett_nr_rrc_T_criticalExtensions = -1; static gint ett_nr_rrc_T_c1 = -1; static gint ett_nr_rrc_T_criticalExtensionsFuture = -1; -static gint ett_nr_rrc_HandoverPreparationInformation_IEs = -1; +static gint ett_nr_rrc_HandoverCommand_IEs = -1; static gint ett_nr_rrc_T_nonCriticalExtension = -1; +static gint ett_nr_rrc_HandoverPreparationInformation = -1; +static gint ett_nr_rrc_T_criticalExtensions_01 = -1; +static gint ett_nr_rrc_T_c1_01 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_01 = -1; +static gint ett_nr_rrc_HandoverPreparationInformation_IEs = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_01 = -1; static gint ett_nr_rrc_AS_Context = -1; static gint ett_nr_rrc_T_reestablishmentInfo = -1; static gint ett_nr_rrc_ReestabNCellInfoList = -1; @@ -2112,12 +2125,12 @@ static gint ett_nr_rrc_ReestabNCellInfo = -1; static gint ett_nr_rrc_RRM_Config = -1; static gint ett_nr_rrc_NR_FreqInfo = -1; static gint ett_nr_rrc_CG_ConfigInfo = -1; -static gint ett_nr_rrc_T_criticalExtensions_01 = -1; -static gint ett_nr_rrc_T_c1_01 = -1; -static gint ett_nr_rrc_T_criticalExtensionsFuture_01 = -1; +static gint ett_nr_rrc_T_criticalExtensions_02 = -1; +static gint ett_nr_rrc_T_c1_02 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_02 = -1; static gint ett_nr_rrc_CG_ConfigInfo_IEs = -1; static gint ett_nr_rrc_T_scgFailureInfo = -1; -static gint ett_nr_rrc_T_nonCriticalExtension_01 = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_02 = -1; static gint ett_nr_rrc_ConfigRestrictInfoSCG = -1; static gint ett_nr_rrc_T_powerCoordination_FR1 = -1; static gint ett_nr_rrc_T_servCellIndexRangeSCG = -1; @@ -2129,11 +2142,11 @@ static gint ett_nr_rrc_MeasConfigMN = -1; static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxMeasFreqsMN_OF_NR_FreqInfo = -1; static gint ett_nr_rrc_T_measGapConfig = -1; static gint ett_nr_rrc_MeasurementTimingConfiguration = -1; -static gint ett_nr_rrc_T_criticalExtensions_02 = -1; -static gint ett_nr_rrc_T_c1_02 = -1; -static gint ett_nr_rrc_T_criticalExtensionsFuture_02 = -1; +static gint ett_nr_rrc_T_criticalExtensions_03 = -1; +static gint ett_nr_rrc_T_c1_03 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_03 = -1; static gint ett_nr_rrc_MeasurementTimingConfiguration_IEs = -1; -static gint ett_nr_rrc_T_nonCriticalExtension_02 = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_03 = -1; static gint ett_nr_rrc_MeasTimingList = -1; static gint ett_nr_rrc_MeasTiming = -1; static gint ett_nr_rrc_T_frequencyAndTiming = -1; @@ -2142,32 +2155,32 @@ static gint ett_nr_rrc_BCCH_BCH_MessageType = -1; static gint ett_nr_rrc_T_messageClassExtension = -1; static gint ett_nr_rrc_DL_DCCH_Message = -1; static gint ett_nr_rrc_DL_DCCH_MessageType = -1; -static gint ett_nr_rrc_T_c1_03 = -1; +static gint ett_nr_rrc_T_c1_04 = -1; static gint ett_nr_rrc_T_messageClassExtension_01 = -1; static gint ett_nr_rrc_UL_DCCH_Message = -1; static gint ett_nr_rrc_UL_DCCH_MessageType = -1; -static gint ett_nr_rrc_T_c1_04 = -1; +static gint ett_nr_rrc_T_c1_05 = -1; static gint ett_nr_rrc_T_messageClassExtension_02 = -1; static gint ett_nr_rrc_MIB = -1; static gint ett_nr_rrc_MeasurementReport = -1; -static gint ett_nr_rrc_T_criticalExtensions_03 = -1; -static gint ett_nr_rrc_T_criticalExtensionsFuture_03 = -1; -static gint ett_nr_rrc_MeasurementReport_IEs = -1; -static gint ett_nr_rrc_T_nonCriticalExtension_03 = -1; -static gint ett_nr_rrc_RRCReconfiguration = -1; static gint ett_nr_rrc_T_criticalExtensions_04 = -1; static gint ett_nr_rrc_T_criticalExtensionsFuture_04 = -1; -static gint ett_nr_rrc_RRCReconfiguration_IEs = -1; +static gint ett_nr_rrc_MeasurementReport_IEs = -1; static gint ett_nr_rrc_T_nonCriticalExtension_04 = -1; -static gint ett_nr_rrc_RRCReconfigurationComplete = -1; +static gint ett_nr_rrc_RRCReconfiguration = -1; static gint ett_nr_rrc_T_criticalExtensions_05 = -1; static gint ett_nr_rrc_T_criticalExtensionsFuture_05 = -1; -static gint ett_nr_rrc_RRCReconfigurationComplete_IEs = -1; +static gint ett_nr_rrc_RRCReconfiguration_IEs = -1; static gint ett_nr_rrc_T_nonCriticalExtension_05 = -1; +static gint ett_nr_rrc_RRCReconfigurationComplete = -1; +static gint ett_nr_rrc_T_criticalExtensions_06 = -1; +static gint ett_nr_rrc_T_criticalExtensionsFuture_06 = -1; +static gint ett_nr_rrc_RRCReconfigurationComplete_IEs = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_06 = -1; static gint ett_nr_rrc_SIB1 = -1; static gint ett_nr_rrc_T_ssb_PositionsInBurst = -1; static gint ett_nr_rrc_T_supplementaryUplink = -1; -static gint ett_nr_rrc_T_nonCriticalExtension_06 = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_07 = -1; static gint ett_nr_rrc_BWP = -1; static gint ett_nr_rrc_BWP_Uplink = -1; static gint ett_nr_rrc_BWP_UplinkCommon = -1; @@ -2744,7 +2757,7 @@ static gint ett_nr_rrc_UE_CapabilityRAT_ContainerList = -1; static gint ett_nr_rrc_UE_CapabilityRAT_Container = -1; static gint ett_nr_rrc_UE_MRDC_Capability = -1; static gint ett_nr_rrc_SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination = -1; -static gint ett_nr_rrc_T_nonCriticalExtension_07 = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_08 = -1; static gint ett_nr_rrc_UE_MRDC_CapabilityAddXDD_Mode = -1; static gint ett_nr_rrc_UE_MRDC_CapabilityAddFRX_Mode = -1; static gint ett_nr_rrc_GeneralParametersMRDC_XDD_Diff = -1; @@ -2754,7 +2767,7 @@ static gint ett_nr_rrc_MeasParametersMRDC_Common = -1; static gint ett_nr_rrc_MeasParametersMRDC_XDD_Diff = -1; static gint ett_nr_rrc_MeasParametersMRDC_FRX_Diff = -1; static gint ett_nr_rrc_UE_NR_Capability = -1; -static gint ett_nr_rrc_T_nonCriticalExtension_08 = -1; +static gint ett_nr_rrc_T_nonCriticalExtension_09 = -1; static gint ett_nr_rrc_UE_NR_CapabilityAddXDD_Mode = -1; static gint ett_nr_rrc_UE_NR_CapabilityAddFRX_Mode = -1; static gint ett_nr_rrc_Phy_Parameters = -1; @@ -2827,6 +2840,128 @@ static int dissect_MeasResultList2NR_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _ static int dissect_MeasResultSCG_Failure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); + +static int +dissect_nr_rrc_T_handoverCommandMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string_containing_pdu_new(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, dissect_nr_rrc_RRCReconfiguration_PDU); + + return offset; +} + + +static const per_sequence_t T_nonCriticalExtension_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_nonCriticalExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_nonCriticalExtension, T_nonCriticalExtension_sequence); + + return offset; +} + + +static const per_sequence_t HandoverCommand_IEs_sequence[] = { + { &hf_nr_rrc_handoverCommandMessage, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_handoverCommandMessage }, + { &hf_nr_rrc_nonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_HandoverCommand_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_HandoverCommand_IEs, HandoverCommand_IEs_sequence); + + return offset; +} + + + +static int +dissect_nr_rrc_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_null(tvb, offset, actx, tree, hf_index); + + return offset; +} + + +static const value_string nr_rrc_T_c1_vals[] = { + { 0, "handoverCommand" }, + { 1, "spare3" }, + { 2, "spare2" }, + { 3, "spare1" }, + { 0, NULL } +}; + +static const per_choice_t T_c1_choice[] = { + { 0, &hf_nr_rrc_handoverCommand, ASN1_NO_EXTENSIONS , dissect_nr_rrc_HandoverCommand_IEs }, + { 1, &hf_nr_rrc_spare3 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 2, &hf_nr_rrc_spare2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 3, &hf_nr_rrc_spare1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_c1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_c1, T_c1_choice, + NULL); + + return offset; +} + + +static const per_sequence_t T_criticalExtensionsFuture_sequence[] = { + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensionsFuture(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_criticalExtensionsFuture, T_criticalExtensionsFuture_sequence); + + return offset; +} + + +static const value_string nr_rrc_T_criticalExtensions_vals[] = { + { 0, "c1" }, + { 1, "criticalExtensionsFuture" }, + { 0, NULL } +}; + +static const per_choice_t T_criticalExtensions_choice[] = { + { 0, &hf_nr_rrc_c1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1 }, + { 1, &hf_nr_rrc_criticalExtensionsFuture, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_nr_rrc_T_criticalExtensions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_T_criticalExtensions, T_criticalExtensions_choice, + NULL); + + return offset; +} + + +static const per_sequence_t HandoverCommand_sequence[] = { + { &hf_nr_rrc_criticalExtensions, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_nr_rrc_HandoverCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_nr_rrc_HandoverCommand, HandoverCommand_sequence); + + return offset; +} + + static const value_string nr_rrc_RAT_Type_vals[] = { { RAT_Type_nr, "nr" }, { RAT_Type_eutra_nr, "eutra-nr" }, @@ -3475,14 +3610,14 @@ dissect_nr_rrc_AS_Context(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U } -static const per_sequence_t T_nonCriticalExtension_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_01_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_nonCriticalExtension(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_nonCriticalExtension_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_nonCriticalExtension, T_nonCriticalExtension_sequence); + ett_nr_rrc_T_nonCriticalExtension_01, T_nonCriticalExtension_01_sequence); return offset; } @@ -3493,7 +3628,7 @@ static const per_sequence_t HandoverPreparationInformation_IEs_sequence[] = { { &hf_nr_rrc_sourceConfig , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_sourceConfig }, { &hf_nr_rrc_rrm_Config , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_RRM_Config }, { &hf_nr_rrc_as_Context , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_AS_Context }, - { &hf_nr_rrc_nonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension }, + { &hf_nr_rrc_nonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_01 }, { NULL, 0, 0, NULL } }; @@ -3506,16 +3641,7 @@ dissect_nr_rrc_HandoverPreparationInformation_IEs(tvbuff_t *tvb _U_, int offset } - -static int -dissect_nr_rrc_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_null(tvb, offset, actx, tree, hf_index); - - return offset; -} - - -static const value_string nr_rrc_T_c1_vals[] = { +static const value_string nr_rrc_T_c1_01_vals[] = { { 0, "handoverPreparationInformation" }, { 1, "spare3" }, { 2, "spare2" }, @@ -3523,7 +3649,7 @@ static const value_string nr_rrc_T_c1_vals[] = { { 0, NULL } }; -static const per_choice_t T_c1_choice[] = { +static const per_choice_t T_c1_01_choice[] = { { 0, &hf_nr_rrc_handoverPreparationInformation, ASN1_NO_EXTENSIONS , dissect_nr_rrc_HandoverPreparationInformation_IEs }, { 1, &hf_nr_rrc_spare3 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, { 2, &hf_nr_rrc_spare2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, @@ -3532,44 +3658,44 @@ static const per_choice_t T_c1_choice[] = { }; static int -dissect_nr_rrc_T_c1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_c1_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_c1, T_c1_choice, + ett_nr_rrc_T_c1_01, T_c1_01_choice, NULL); return offset; } -static const per_sequence_t T_criticalExtensionsFuture_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_01_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_criticalExtensionsFuture(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_criticalExtensionsFuture_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_criticalExtensionsFuture, T_criticalExtensionsFuture_sequence); + ett_nr_rrc_T_criticalExtensionsFuture_01, T_criticalExtensionsFuture_01_sequence); return offset; } -static const value_string nr_rrc_T_criticalExtensions_vals[] = { +static const value_string nr_rrc_T_criticalExtensions_01_vals[] = { { 0, "c1" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_choice[] = { - { 0, &hf_nr_rrc_c1 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1 }, - { 1, &hf_nr_rrc_criticalExtensionsFuture, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture }, +static const per_choice_t T_criticalExtensions_01_choice[] = { + { 0, &hf_nr_rrc_c1_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_01 }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_01 }, { 0, NULL, 0, NULL } }; static int -dissect_nr_rrc_T_criticalExtensions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_criticalExtensions_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_criticalExtensions, T_criticalExtensions_choice, + ett_nr_rrc_T_criticalExtensions_01, T_criticalExtensions_01_choice, NULL); return offset; @@ -3577,7 +3703,7 @@ dissect_nr_rrc_T_criticalExtensions(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ static const per_sequence_t HandoverPreparationInformation_sequence[] = { - { &hf_nr_rrc_criticalExtensions, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions }, + { &hf_nr_rrc_criticalExtensions_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_01 }, { NULL, 0, 0, NULL } }; @@ -4228,14 +4354,14 @@ dissect_nr_rrc_T_mcg_RB_Config(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac } -static const per_sequence_t T_nonCriticalExtension_01_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_02_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_nonCriticalExtension_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_nonCriticalExtension_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_nonCriticalExtension_01, T_nonCriticalExtension_01_sequence); + ett_nr_rrc_T_nonCriticalExtension_02, T_nonCriticalExtension_02_sequence); return offset; } @@ -4253,7 +4379,7 @@ static const per_sequence_t CG_ConfigInfo_IEs_sequence[] = { { &hf_nr_rrc_sourceConfigSCG, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_sourceConfigSCG }, { &hf_nr_rrc_scg_RB_Config, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_scg_RB_Config }, { &hf_nr_rrc_mcg_RB_Config, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_mcg_RB_Config }, - { &hf_nr_rrc_nonCriticalExtension_01, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_01 }, + { &hf_nr_rrc_nonCriticalExtension_02, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_02 }, { NULL, 0, 0, NULL } }; @@ -4266,7 +4392,7 @@ dissect_nr_rrc_CG_ConfigInfo_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * } -static const value_string nr_rrc_T_c1_01_vals[] = { +static const value_string nr_rrc_T_c1_02_vals[] = { { 0, "cg-ConfigInfo" }, { 1, "spare3" }, { 2, "spare2" }, @@ -4274,7 +4400,7 @@ static const value_string nr_rrc_T_c1_01_vals[] = { { 0, NULL } }; -static const per_choice_t T_c1_01_choice[] = { +static const per_choice_t T_c1_02_choice[] = { { 0, &hf_nr_rrc_cg_ConfigInfo, ASN1_NO_EXTENSIONS , dissect_nr_rrc_CG_ConfigInfo_IEs }, { 1, &hf_nr_rrc_spare3 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, { 2, &hf_nr_rrc_spare2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, @@ -4283,44 +4409,44 @@ static const per_choice_t T_c1_01_choice[] = { }; static int -dissect_nr_rrc_T_c1_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_c1_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_c1_01, T_c1_01_choice, + ett_nr_rrc_T_c1_02, T_c1_02_choice, NULL); return offset; } -static const per_sequence_t T_criticalExtensionsFuture_01_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_02_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_criticalExtensionsFuture_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_criticalExtensionsFuture_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_criticalExtensionsFuture_01, T_criticalExtensionsFuture_01_sequence); + ett_nr_rrc_T_criticalExtensionsFuture_02, T_criticalExtensionsFuture_02_sequence); return offset; } -static const value_string nr_rrc_T_criticalExtensions_01_vals[] = { +static const value_string nr_rrc_T_criticalExtensions_02_vals[] = { { 0, "c1" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_01_choice[] = { - { 0, &hf_nr_rrc_c1_01 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_01 }, - { 1, &hf_nr_rrc_criticalExtensionsFuture_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_01 }, +static const per_choice_t T_criticalExtensions_02_choice[] = { + { 0, &hf_nr_rrc_c1_02 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_02 }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_02, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_02 }, { 0, NULL, 0, NULL } }; static int -dissect_nr_rrc_T_criticalExtensions_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_criticalExtensions_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_criticalExtensions_01, T_criticalExtensions_01_choice, + ett_nr_rrc_T_criticalExtensions_02, T_criticalExtensions_02_choice, NULL); return offset; @@ -4328,7 +4454,7 @@ dissect_nr_rrc_T_criticalExtensions_01(tvbuff_t *tvb _U_, int offset _U_, asn1_c static const per_sequence_t CG_ConfigInfo_sequence[] = { - { &hf_nr_rrc_criticalExtensions_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_01 }, + { &hf_nr_rrc_criticalExtensions_02, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_02 }, { NULL, 0, 0, NULL } }; @@ -4458,14 +4584,14 @@ dissect_nr_rrc_MeasTimingList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act } -static const per_sequence_t T_nonCriticalExtension_02_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_03_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_nonCriticalExtension_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_nonCriticalExtension_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_nonCriticalExtension_02, T_nonCriticalExtension_02_sequence); + ett_nr_rrc_T_nonCriticalExtension_03, T_nonCriticalExtension_03_sequence); return offset; } @@ -4473,7 +4599,7 @@ dissect_nr_rrc_T_nonCriticalExtension_02(tvbuff_t *tvb _U_, int offset _U_, asn1 static const per_sequence_t MeasurementTimingConfiguration_IEs_sequence[] = { { &hf_nr_rrc_measTiming , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasTimingList }, - { &hf_nr_rrc_nonCriticalExtension_02, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_02 }, + { &hf_nr_rrc_nonCriticalExtension_03, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_03 }, { NULL, 0, 0, NULL } }; @@ -4486,7 +4612,7 @@ dissect_nr_rrc_MeasurementTimingConfiguration_IEs(tvbuff_t *tvb _U_, int offset } -static const value_string nr_rrc_T_c1_02_vals[] = { +static const value_string nr_rrc_T_c1_03_vals[] = { { 0, "measTimingConf" }, { 1, "spare3" }, { 2, "spare2" }, @@ -4494,7 +4620,7 @@ static const value_string nr_rrc_T_c1_02_vals[] = { { 0, NULL } }; -static const per_choice_t T_c1_02_choice[] = { +static const per_choice_t T_c1_03_choice[] = { { 0, &hf_nr_rrc_measTimingConf, ASN1_NO_EXTENSIONS , dissect_nr_rrc_MeasurementTimingConfiguration_IEs }, { 1, &hf_nr_rrc_spare3 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, { 2, &hf_nr_rrc_spare2 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, @@ -4503,44 +4629,44 @@ static const per_choice_t T_c1_02_choice[] = { }; static int -dissect_nr_rrc_T_c1_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_c1_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_c1_02, T_c1_02_choice, + ett_nr_rrc_T_c1_03, T_c1_03_choice, NULL); return offset; } -static const per_sequence_t T_criticalExtensionsFuture_02_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_03_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_criticalExtensionsFuture_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_criticalExtensionsFuture_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_criticalExtensionsFuture_02, T_criticalExtensionsFuture_02_sequence); + ett_nr_rrc_T_criticalExtensionsFuture_03, T_criticalExtensionsFuture_03_sequence); return offset; } -static const value_string nr_rrc_T_criticalExtensions_02_vals[] = { +static const value_string nr_rrc_T_criticalExtensions_03_vals[] = { { 0, "c1" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_02_choice[] = { - { 0, &hf_nr_rrc_c1_02 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_02 }, - { 1, &hf_nr_rrc_criticalExtensionsFuture_02, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_02 }, +static const per_choice_t T_criticalExtensions_03_choice[] = { + { 0, &hf_nr_rrc_c1_03 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_03 }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_03, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_03 }, { 0, NULL, 0, NULL } }; static int -dissect_nr_rrc_T_criticalExtensions_02(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_criticalExtensions_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_criticalExtensions_02, T_criticalExtensions_02_choice, + ett_nr_rrc_T_criticalExtensions_03, T_criticalExtensions_03_choice, NULL); return offset; @@ -4548,7 +4674,7 @@ dissect_nr_rrc_T_criticalExtensions_02(tvbuff_t *tvb _U_, int offset _U_, asn1_c static const per_sequence_t MeasurementTimingConfiguration_sequence[] = { - { &hf_nr_rrc_criticalExtensions_02, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_02 }, + { &hf_nr_rrc_criticalExtensions_03, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_03 }, { NULL, 0, 0, NULL } }; @@ -7254,14 +7380,14 @@ dissect_nr_rrc_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } -static const per_sequence_t T_nonCriticalExtension_04_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_05_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_nonCriticalExtension_04(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_nonCriticalExtension_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_nonCriticalExtension_04, T_nonCriticalExtension_04_sequence); + ett_nr_rrc_T_nonCriticalExtension_05, T_nonCriticalExtension_05_sequence); return offset; } @@ -7272,7 +7398,7 @@ static const per_sequence_t RRCReconfiguration_IEs_sequence[] = { { &hf_nr_rrc_secondaryCellGroup, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_secondaryCellGroup }, { &hf_nr_rrc_measConfig , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_MeasConfig }, { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, - { &hf_nr_rrc_nonCriticalExtension_04, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_04 }, + { &hf_nr_rrc_nonCriticalExtension_05, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_05 }, { NULL, 0, 0, NULL } }; @@ -7285,35 +7411,35 @@ dissect_nr_rrc_RRCReconfiguration_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ct } -static const per_sequence_t T_criticalExtensionsFuture_04_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_05_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_criticalExtensionsFuture_04(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_criticalExtensionsFuture_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_criticalExtensionsFuture_04, T_criticalExtensionsFuture_04_sequence); + ett_nr_rrc_T_criticalExtensionsFuture_05, T_criticalExtensionsFuture_05_sequence); return offset; } -static const value_string nr_rrc_T_criticalExtensions_04_vals[] = { +static const value_string nr_rrc_T_criticalExtensions_05_vals[] = { { 0, "rrcReconfiguration" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_04_choice[] = { +static const per_choice_t T_criticalExtensions_05_choice[] = { { 0, &hf_nr_rrc_rrcReconfiguration_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReconfiguration_IEs }, - { 1, &hf_nr_rrc_criticalExtensionsFuture_04, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_04 }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_05, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_05 }, { 0, NULL, 0, NULL } }; static int -dissect_nr_rrc_T_criticalExtensions_04(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_criticalExtensions_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_criticalExtensions_04, T_criticalExtensions_04_choice, + ett_nr_rrc_T_criticalExtensions_05, T_criticalExtensions_05_choice, NULL); return offset; @@ -7322,7 +7448,7 @@ dissect_nr_rrc_T_criticalExtensions_04(tvbuff_t *tvb _U_, int offset _U_, asn1_c static const per_sequence_t RRCReconfiguration_sequence[] = { { &hf_nr_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRC_TransactionIdentifier }, - { &hf_nr_rrc_criticalExtensions_04, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_04 }, + { &hf_nr_rrc_criticalExtensions_05, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_05 }, { NULL, 0, 0, NULL } }; @@ -7337,7 +7463,7 @@ dissect_nr_rrc_RRCReconfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } -static const value_string nr_rrc_T_c1_03_vals[] = { +static const value_string nr_rrc_T_c1_04_vals[] = { { 0, "rrcReconfiguration" }, { 1, "spare15" }, { 2, "spare14" }, @@ -7357,7 +7483,7 @@ static const value_string nr_rrc_T_c1_03_vals[] = { { 0, NULL } }; -static const per_choice_t T_c1_03_choice[] = { +static const per_choice_t T_c1_04_choice[] = { { 0, &hf_nr_rrc_rrcReconfiguration, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReconfiguration }, { 1, &hf_nr_rrc_spare15 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, { 2, &hf_nr_rrc_spare14 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, @@ -7378,9 +7504,9 @@ static const per_choice_t T_c1_03_choice[] = { }; static int -dissect_nr_rrc_T_c1_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_c1_04(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_c1_03, T_c1_03_choice, + ett_nr_rrc_T_c1_04, T_c1_04_choice, NULL); return offset; @@ -7407,7 +7533,7 @@ static const value_string nr_rrc_DL_DCCH_MessageType_vals[] = { }; static const per_choice_t DL_DCCH_MessageType_choice[] = { - { 0, &hf_nr_rrc_c1_03 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_03 }, + { 0, &hf_nr_rrc_c1_04 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_04 }, { 1, &hf_nr_rrc_messageClassExtension_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_messageClassExtension_01 }, { 0, NULL, 0, NULL } }; @@ -7512,14 +7638,14 @@ dissect_nr_rrc_MeasResults(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ } -static const per_sequence_t T_nonCriticalExtension_03_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_04_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_nonCriticalExtension_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_nonCriticalExtension_04(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_nonCriticalExtension_03, T_nonCriticalExtension_03_sequence); + ett_nr_rrc_T_nonCriticalExtension_04, T_nonCriticalExtension_04_sequence); return offset; } @@ -7528,7 +7654,7 @@ dissect_nr_rrc_T_nonCriticalExtension_03(tvbuff_t *tvb _U_, int offset _U_, asn1 static const per_sequence_t MeasurementReport_IEs_sequence[] = { { &hf_nr_rrc_measResults , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_MeasResults }, { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, - { &hf_nr_rrc_nonCriticalExtension_03, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_03 }, + { &hf_nr_rrc_nonCriticalExtension_04, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_04 }, { NULL, 0, 0, NULL } }; @@ -7541,35 +7667,35 @@ dissect_nr_rrc_MeasurementReport_IEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx } -static const per_sequence_t T_criticalExtensionsFuture_03_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_04_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_criticalExtensionsFuture_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_criticalExtensionsFuture_04(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_criticalExtensionsFuture_03, T_criticalExtensionsFuture_03_sequence); + ett_nr_rrc_T_criticalExtensionsFuture_04, T_criticalExtensionsFuture_04_sequence); return offset; } -static const value_string nr_rrc_T_criticalExtensions_03_vals[] = { +static const value_string nr_rrc_T_criticalExtensions_04_vals[] = { { 0, "measurementReport" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_03_choice[] = { +static const per_choice_t T_criticalExtensions_04_choice[] = { { 0, &hf_nr_rrc_measurementReport_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_MeasurementReport_IEs }, - { 1, &hf_nr_rrc_criticalExtensionsFuture_03, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_03 }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_04, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_04 }, { 0, NULL, 0, NULL } }; static int -dissect_nr_rrc_T_criticalExtensions_03(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_criticalExtensions_04(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_criticalExtensions_03, T_criticalExtensions_03_choice, + ett_nr_rrc_T_criticalExtensions_04, T_criticalExtensions_04_choice, NULL); return offset; @@ -7577,7 +7703,7 @@ dissect_nr_rrc_T_criticalExtensions_03(tvbuff_t *tvb _U_, int offset _U_, asn1_c static const per_sequence_t MeasurementReport_sequence[] = { - { &hf_nr_rrc_criticalExtensions_03, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_03 }, + { &hf_nr_rrc_criticalExtensions_04, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_04 }, { NULL, 0, 0, NULL } }; @@ -7592,14 +7718,14 @@ dissect_nr_rrc_MeasurementReport(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * } -static const per_sequence_t T_nonCriticalExtension_05_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_06_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_nonCriticalExtension_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_nonCriticalExtension_06(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_nonCriticalExtension_05, T_nonCriticalExtension_05_sequence); + ett_nr_rrc_T_nonCriticalExtension_06, T_nonCriticalExtension_06_sequence); return offset; } @@ -7607,7 +7733,7 @@ dissect_nr_rrc_T_nonCriticalExtension_05(tvbuff_t *tvb _U_, int offset _U_, asn1 static const per_sequence_t RRCReconfigurationComplete_IEs_sequence[] = { { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, - { &hf_nr_rrc_nonCriticalExtension_05, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_05 }, + { &hf_nr_rrc_nonCriticalExtension_06, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_06 }, { NULL, 0, 0, NULL } }; @@ -7620,35 +7746,35 @@ dissect_nr_rrc_RRCReconfigurationComplete_IEs(tvbuff_t *tvb _U_, int offset _U_, } -static const per_sequence_t T_criticalExtensionsFuture_05_sequence[] = { +static const per_sequence_t T_criticalExtensionsFuture_06_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_criticalExtensionsFuture_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_criticalExtensionsFuture_06(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_criticalExtensionsFuture_05, T_criticalExtensionsFuture_05_sequence); + ett_nr_rrc_T_criticalExtensionsFuture_06, T_criticalExtensionsFuture_06_sequence); return offset; } -static const value_string nr_rrc_T_criticalExtensions_05_vals[] = { +static const value_string nr_rrc_T_criticalExtensions_06_vals[] = { { 0, "rrcReconfigurationComplete" }, { 1, "criticalExtensionsFuture" }, { 0, NULL } }; -static const per_choice_t T_criticalExtensions_05_choice[] = { +static const per_choice_t T_criticalExtensions_06_choice[] = { { 0, &hf_nr_rrc_rrcReconfigurationComplete_01, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReconfigurationComplete_IEs }, - { 1, &hf_nr_rrc_criticalExtensionsFuture_05, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_05 }, + { 1, &hf_nr_rrc_criticalExtensionsFuture_06, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_criticalExtensionsFuture_06 }, { 0, NULL, 0, NULL } }; static int -dissect_nr_rrc_T_criticalExtensions_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_criticalExtensions_06(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_criticalExtensions_05, T_criticalExtensions_05_choice, + ett_nr_rrc_T_criticalExtensions_06, T_criticalExtensions_06_choice, NULL); return offset; @@ -7657,7 +7783,7 @@ dissect_nr_rrc_T_criticalExtensions_05(tvbuff_t *tvb _U_, int offset _U_, asn1_c static const per_sequence_t RRCReconfigurationComplete_sequence[] = { { &hf_nr_rrc_rrc_TransactionIdentifier, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_RRC_TransactionIdentifier }, - { &hf_nr_rrc_criticalExtensions_05, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_05 }, + { &hf_nr_rrc_criticalExtensions_06, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_nr_rrc_T_criticalExtensions_06 }, { NULL, 0, 0, NULL } }; @@ -7672,7 +7798,7 @@ dissect_nr_rrc_RRCReconfigurationComplete(tvbuff_t *tvb _U_, int offset _U_, asn } -static const value_string nr_rrc_T_c1_04_vals[] = { +static const value_string nr_rrc_T_c1_05_vals[] = { { 0, "measurementReport" }, { 1, "rrcReconfigurationComplete" }, { 2, "spare14" }, @@ -7692,7 +7818,7 @@ static const value_string nr_rrc_T_c1_04_vals[] = { { 0, NULL } }; -static const per_choice_t T_c1_04_choice[] = { +static const per_choice_t T_c1_05_choice[] = { { 0, &hf_nr_rrc_measurementReport, ASN1_NO_EXTENSIONS , dissect_nr_rrc_MeasurementReport }, { 1, &hf_nr_rrc_rrcReconfigurationComplete, ASN1_NO_EXTENSIONS , dissect_nr_rrc_RRCReconfigurationComplete }, { 2, &hf_nr_rrc_spare14 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_NULL }, @@ -7713,9 +7839,9 @@ static const per_choice_t T_c1_04_choice[] = { }; static int -dissect_nr_rrc_T_c1_04(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_c1_05(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_c1_04, T_c1_04_choice, + ett_nr_rrc_T_c1_05, T_c1_05_choice, NULL); return offset; @@ -7742,7 +7868,7 @@ static const value_string nr_rrc_UL_DCCH_MessageType_vals[] = { }; static const per_choice_t UL_DCCH_MessageType_choice[] = { - { 0, &hf_nr_rrc_c1_04 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_04 }, + { 0, &hf_nr_rrc_c1_05 , ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_c1_05 }, { 1, &hf_nr_rrc_messageClassExtension_02, ASN1_NO_EXTENSIONS , dissect_nr_rrc_T_messageClassExtension_02 }, { 0, NULL, 0, NULL } }; @@ -9638,14 +9764,14 @@ dissect_nr_rrc_PDCCH_ConfigCommon(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } -static const per_sequence_t T_nonCriticalExtension_06_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_07_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_nonCriticalExtension_06(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_nonCriticalExtension_07(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_nonCriticalExtension_06, T_nonCriticalExtension_06_sequence); + ett_nr_rrc_T_nonCriticalExtension_07, T_nonCriticalExtension_07_sequence); return offset; } @@ -9663,7 +9789,7 @@ static const per_sequence_t SIB1_sequence[] = { { &hf_nr_rrc_pdcch_ConfigCommon, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PDCCH_ConfigCommon }, { &hf_nr_rrc_pucch_ConfigCommon, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_PUCCH_ConfigCommon }, { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, - { &hf_nr_rrc_nonCriticalExtension_06, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_06 }, + { &hf_nr_rrc_nonCriticalExtension_07, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_07 }, { NULL, 0, 0, NULL } }; @@ -23415,14 +23541,14 @@ dissect_nr_rrc_SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombinatio } -static const per_sequence_t T_nonCriticalExtension_07_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_08_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_nonCriticalExtension_07(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_nonCriticalExtension_08(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_nonCriticalExtension_07, T_nonCriticalExtension_07_sequence); + ett_nr_rrc_T_nonCriticalExtension_08, T_nonCriticalExtension_08_sequence); return offset; } @@ -23438,7 +23564,7 @@ static const per_sequence_t UE_MRDC_Capability_sequence[] = { { &hf_nr_rrc_fr2_Add_UE_MRDC_Capabilities, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_UE_MRDC_CapabilityAddFRX_Mode }, { &hf_nr_rrc_featureSetCombinations, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination }, { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, - { &hf_nr_rrc_nonCriticalExtension_07, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_07 }, + { &hf_nr_rrc_nonCriticalExtension_08, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_08 }, { NULL, 0, 0, NULL } }; @@ -26246,14 +26372,14 @@ dissect_nr_rrc_UE_NR_CapabilityAddFRX_Mode(tvbuff_t *tvb _U_, int offset _U_, as } -static const per_sequence_t T_nonCriticalExtension_08_sequence[] = { +static const per_sequence_t T_nonCriticalExtension_09_sequence[] = { { NULL, 0, 0, NULL } }; static int -dissect_nr_rrc_T_nonCriticalExtension_08(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_nr_rrc_T_nonCriticalExtension_09(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_nr_rrc_T_nonCriticalExtension_08, T_nonCriticalExtension_08_sequence); + ett_nr_rrc_T_nonCriticalExtension_09, T_nonCriticalExtension_09_sequence); return offset; } @@ -26274,7 +26400,7 @@ static const per_sequence_t UE_NR_Capability_sequence[] = { { &hf_nr_rrc_featureSets , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_FeatureSets }, { &hf_nr_rrc_featureSetCombinations, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination }, { &hf_nr_rrc_lateNonCriticalExtension, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_OCTET_STRING }, - { &hf_nr_rrc_nonCriticalExtension_08, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_08 }, + { &hf_nr_rrc_nonCriticalExtension_09, ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_nr_rrc_T_nonCriticalExtension_09 }, { NULL, 0, 0, NULL } }; @@ -26288,6 +26414,14 @@ dissect_nr_rrc_UE_NR_Capability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a /*--- PDUs ---*/ +int dissect_nr_rrc_HandoverCommand_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo); + offset = dissect_nr_rrc_HandoverCommand(tvb, offset, &asn1_ctx, tree, hf_nr_rrc_nr_rrc_HandoverCommand_PDU); + offset += 7; offset >>= 3; + return offset; +} int dissect_nr_rrc_HandoverPreparationInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -26485,6 +26619,10 @@ void proto_register_nr_rrc(void) { /*--- Included file: packet-nr-rrc-hfarr.c ---*/ #line 1 "./asn1/nr-rrc/packet-nr-rrc-hfarr.c" + { &hf_nr_rrc_nr_rrc_HandoverCommand_PDU, + { "HandoverCommand", "nr-rrc.HandoverCommand_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_nr_rrc_nr_rrc_HandoverPreparationInformation_PDU, { "HandoverPreparationInformation", "nr-rrc.HandoverPreparationInformation_element", FT_NONE, BASE_NONE, NULL, 0, @@ -26585,10 +26723,10 @@ void proto_register_nr_rrc(void) { { "c1", "nr-rrc.c1", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_handoverPreparationInformation, - { "handoverPreparationInformation", "nr-rrc.handoverPreparationInformation_element", + { &hf_nr_rrc_handoverCommand, + { "handoverCommand", "nr-rrc.handoverCommand_element", FT_NONE, BASE_NONE, NULL, 0, - "HandoverPreparationInformation_IEs", HFILL }}, + "HandoverCommand_IEs", HFILL }}, { &hf_nr_rrc_spare3, { "spare3", "nr-rrc.spare3_element", FT_NONE, BASE_NONE, NULL, 0, @@ -26605,6 +26743,30 @@ void proto_register_nr_rrc(void) { { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_nr_rrc_handoverCommandMessage, + { "handoverCommandMessage", "nr-rrc.handoverCommandMessage", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_nonCriticalExtension, + { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_nr_rrc_criticalExtensions_01, + { "criticalExtensions", "nr-rrc.criticalExtensions", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_01_vals), 0, + "T_criticalExtensions_01", HFILL }}, + { &hf_nr_rrc_c1_01, + { "c1", "nr-rrc.c1", + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_01_vals), 0, + "T_c1_01", HFILL }}, + { &hf_nr_rrc_handoverPreparationInformation, + { "handoverPreparationInformation", "nr-rrc.handoverPreparationInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + "HandoverPreparationInformation_IEs", HFILL }}, + { &hf_nr_rrc_criticalExtensionsFuture_01, + { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", + FT_NONE, BASE_NONE, NULL, 0, + "T_criticalExtensionsFuture_01", HFILL }}, { &hf_nr_rrc_ue_CapabilityRAT_List, { "ue-CapabilityRAT-List", "nr-rrc.ue_CapabilityRAT_List", FT_UINT32, BASE_DEC, NULL, 0, @@ -26621,10 +26783,10 @@ void proto_register_nr_rrc(void) { { "as-Context", "nr-rrc.as_Context_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_nonCriticalExtension, + { &hf_nr_rrc_nonCriticalExtension_01, { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - NULL, HFILL }}, + "T_nonCriticalExtension_01", HFILL }}, { &hf_nr_rrc_reestablishmentInfo, { "reestablishmentInfo", "nr-rrc.reestablishmentInfo_element", FT_NONE, BASE_NONE, NULL, 0, @@ -26673,22 +26835,22 @@ void proto_register_nr_rrc(void) { { "measuredFrequency", "nr-rrc.measuredFrequency", FT_UINT32, BASE_DEC, NULL, 0, "ARFCN_ValueNR", HFILL }}, - { &hf_nr_rrc_criticalExtensions_01, + { &hf_nr_rrc_criticalExtensions_02, { "criticalExtensions", "nr-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_01_vals), 0, - "T_criticalExtensions_01", HFILL }}, - { &hf_nr_rrc_c1_01, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_02_vals), 0, + "T_criticalExtensions_02", HFILL }}, + { &hf_nr_rrc_c1_02, { "c1", "nr-rrc.c1", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_01_vals), 0, - "T_c1_01", HFILL }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_02_vals), 0, + "T_c1_02", HFILL }}, { &hf_nr_rrc_cg_ConfigInfo, { "cg-ConfigInfo", "nr-rrc.cg_ConfigInfo_element", FT_NONE, BASE_NONE, NULL, 0, "CG_ConfigInfo_IEs", HFILL }}, - { &hf_nr_rrc_criticalExtensionsFuture_01, + { &hf_nr_rrc_criticalExtensionsFuture_02, { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_01", HFILL }}, + "T_criticalExtensionsFuture_02", HFILL }}, { &hf_nr_rrc_ue_CapabilityInfo, { "ue-CapabilityInfo", "nr-rrc.ue_CapabilityInfo", FT_BYTES, BASE_NONE, NULL, 0, @@ -26737,10 +26899,10 @@ void proto_register_nr_rrc(void) { { "mcg-RB-Config", "nr-rrc.mcg_RB_Config", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_nonCriticalExtension_01, + { &hf_nr_rrc_nonCriticalExtension_02, { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_01", HFILL }}, + "T_nonCriticalExtension_02", HFILL }}, { &hf_nr_rrc_allowedBC_ListMRDC, { "allowedBC-ListMRDC", "nr-rrc.allowedBC_ListMRDC", FT_UINT32, BASE_DEC, NULL, 0, @@ -26901,30 +27063,30 @@ void proto_register_nr_rrc(void) { { "gapPurpose", "nr-rrc.gapPurpose", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_gapPurpose_vals), 0, NULL, HFILL }}, - { &hf_nr_rrc_criticalExtensions_02, + { &hf_nr_rrc_criticalExtensions_03, { "criticalExtensions", "nr-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_02_vals), 0, - "T_criticalExtensions_02", HFILL }}, - { &hf_nr_rrc_c1_02, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_03_vals), 0, + "T_criticalExtensions_03", HFILL }}, + { &hf_nr_rrc_c1_03, { "c1", "nr-rrc.c1", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_02_vals), 0, - "T_c1_02", HFILL }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_03_vals), 0, + "T_c1_03", HFILL }}, { &hf_nr_rrc_measTimingConf, { "measTimingConf", "nr-rrc.measTimingConf_element", FT_NONE, BASE_NONE, NULL, 0, "MeasurementTimingConfiguration_IEs", HFILL }}, - { &hf_nr_rrc_criticalExtensionsFuture_02, + { &hf_nr_rrc_criticalExtensionsFuture_03, { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_02", HFILL }}, + "T_criticalExtensionsFuture_03", HFILL }}, { &hf_nr_rrc_measTiming, { "measTiming", "nr-rrc.measTiming", FT_UINT32, BASE_DEC, NULL, 0, "MeasTimingList", HFILL }}, - { &hf_nr_rrc_nonCriticalExtension_02, + { &hf_nr_rrc_nonCriticalExtension_03, { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_02", HFILL }}, + "T_nonCriticalExtension_03", HFILL }}, { &hf_nr_rrc_MeasTimingList_item, { "MeasTiming", "nr-rrc.MeasTiming_element", FT_NONE, BASE_NONE, NULL, 0, @@ -26957,10 +27119,10 @@ void proto_register_nr_rrc(void) { { "message", "nr-rrc.message", FT_UINT32, BASE_DEC, VALS(nr_rrc_DL_DCCH_MessageType_vals), 0, "DL_DCCH_MessageType", HFILL }}, - { &hf_nr_rrc_c1_03, + { &hf_nr_rrc_c1_04, { "c1", "nr-rrc.c1", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_03_vals), 0, - "T_c1_03", HFILL }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_04_vals), 0, + "T_c1_04", HFILL }}, { &hf_nr_rrc_rrcReconfiguration, { "rrcReconfiguration", "nr-rrc.rrcReconfiguration_element", FT_NONE, BASE_NONE, NULL, 0, @@ -27021,10 +27183,10 @@ void proto_register_nr_rrc(void) { { "message", "nr-rrc.message", FT_UINT32, BASE_DEC, VALS(nr_rrc_UL_DCCH_MessageType_vals), 0, "UL_DCCH_MessageType", HFILL }}, - { &hf_nr_rrc_c1_04, + { &hf_nr_rrc_c1_05, { "c1", "nr-rrc.c1", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_04_vals), 0, - "T_c1_04", HFILL }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_c1_05_vals), 0, + "T_c1_05", HFILL }}, { &hf_nr_rrc_measurementReport, { "measurementReport", "nr-rrc.measurementReport_element", FT_NONE, BASE_NONE, NULL, 0, @@ -27069,18 +27231,18 @@ void proto_register_nr_rrc(void) { { "spare", "nr-rrc.spare", FT_BYTES, BASE_NONE, NULL, 0, "BIT_STRING_SIZE_1", HFILL }}, - { &hf_nr_rrc_criticalExtensions_03, + { &hf_nr_rrc_criticalExtensions_04, { "criticalExtensions", "nr-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_03_vals), 0, - "T_criticalExtensions_03", HFILL }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_04_vals), 0, + "T_criticalExtensions_04", HFILL }}, { &hf_nr_rrc_measurementReport_01, { "measurementReport", "nr-rrc.measurementReport_element", FT_NONE, BASE_NONE, NULL, 0, "MeasurementReport_IEs", HFILL }}, - { &hf_nr_rrc_criticalExtensionsFuture_03, + { &hf_nr_rrc_criticalExtensionsFuture_04, { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_03", HFILL }}, + "T_criticalExtensionsFuture_04", HFILL }}, { &hf_nr_rrc_measResults, { "measResults", "nr-rrc.measResults_element", FT_NONE, BASE_NONE, NULL, 0, @@ -27089,26 +27251,26 @@ void proto_register_nr_rrc(void) { { "lateNonCriticalExtension", "nr-rrc.lateNonCriticalExtension", FT_BYTES, BASE_NONE, NULL, 0, "OCTET_STRING", HFILL }}, - { &hf_nr_rrc_nonCriticalExtension_03, + { &hf_nr_rrc_nonCriticalExtension_04, { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_03", HFILL }}, + "T_nonCriticalExtension_04", HFILL }}, { &hf_nr_rrc_rrc_TransactionIdentifier, { "rrc-TransactionIdentifier", "nr-rrc.rrc_TransactionIdentifier", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_criticalExtensions_04, + { &hf_nr_rrc_criticalExtensions_05, { "criticalExtensions", "nr-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_04_vals), 0, - "T_criticalExtensions_04", HFILL }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_05_vals), 0, + "T_criticalExtensions_05", HFILL }}, { &hf_nr_rrc_rrcReconfiguration_01, { "rrcReconfiguration", "nr-rrc.rrcReconfiguration_element", FT_NONE, BASE_NONE, NULL, 0, "RRCReconfiguration_IEs", HFILL }}, - { &hf_nr_rrc_criticalExtensionsFuture_04, + { &hf_nr_rrc_criticalExtensionsFuture_05, { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_04", HFILL }}, + "T_criticalExtensionsFuture_05", HFILL }}, { &hf_nr_rrc_radioBearerConfig, { "radioBearerConfig", "nr-rrc.radioBearerConfig_element", FT_NONE, BASE_NONE, NULL, 0, @@ -27121,26 +27283,26 @@ void proto_register_nr_rrc(void) { { "measConfig", "nr-rrc.measConfig_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_nonCriticalExtension_04, + { &hf_nr_rrc_nonCriticalExtension_05, { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_04", HFILL }}, - { &hf_nr_rrc_criticalExtensions_05, + "T_nonCriticalExtension_05", HFILL }}, + { &hf_nr_rrc_criticalExtensions_06, { "criticalExtensions", "nr-rrc.criticalExtensions", - FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_05_vals), 0, - "T_criticalExtensions_05", HFILL }}, + FT_UINT32, BASE_DEC, VALS(nr_rrc_T_criticalExtensions_06_vals), 0, + "T_criticalExtensions_06", HFILL }}, { &hf_nr_rrc_rrcReconfigurationComplete_01, { "rrcReconfigurationComplete", "nr-rrc.rrcReconfigurationComplete_element", FT_NONE, BASE_NONE, NULL, 0, "RRCReconfigurationComplete_IEs", HFILL }}, - { &hf_nr_rrc_criticalExtensionsFuture_05, + { &hf_nr_rrc_criticalExtensionsFuture_06, { "criticalExtensionsFuture", "nr-rrc.criticalExtensionsFuture_element", FT_NONE, BASE_NONE, NULL, 0, - "T_criticalExtensionsFuture_05", HFILL }}, - { &hf_nr_rrc_nonCriticalExtension_05, + "T_criticalExtensionsFuture_06", HFILL }}, + { &hf_nr_rrc_nonCriticalExtension_06, { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_05", HFILL }}, + "T_nonCriticalExtension_06", HFILL }}, { &hf_nr_rrc_frequencyOffsetSSB, { "frequencyOffsetSSB", "nr-rrc.frequencyOffsetSSB", FT_UINT32, BASE_DEC, VALS(nr_rrc_T_frequencyOffsetSSB_vals), 0, @@ -27189,10 +27351,10 @@ void proto_register_nr_rrc(void) { { "pucch-ConfigCommon", "nr-rrc.pucch_ConfigCommon_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_nonCriticalExtension_06, + { &hf_nr_rrc_nonCriticalExtension_07, { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_06", HFILL }}, + "T_nonCriticalExtension_07", HFILL }}, { &hf_nr_rrc_locationAndBandwidth, { "locationAndBandwidth", "nr-rrc.locationAndBandwidth", FT_UINT32, BASE_DEC, NULL, 0, @@ -33117,10 +33279,10 @@ void proto_register_nr_rrc(void) { { "FeatureSetCombination", "nr-rrc.FeatureSetCombination", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_nonCriticalExtension_07, + { &hf_nr_rrc_nonCriticalExtension_08, { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_07", HFILL }}, + "T_nonCriticalExtension_08", HFILL }}, { &hf_nr_rrc_measParametersMRDC_XDD_Diff, { "measParametersMRDC-XDD-Diff", "nr-rrc.measParametersMRDC_XDD_Diff_element", FT_NONE, BASE_NONE, NULL, 0, @@ -33221,10 +33383,10 @@ void proto_register_nr_rrc(void) { { "featureSets", "nr-rrc.featureSets_element", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_nr_rrc_nonCriticalExtension_08, + { &hf_nr_rrc_nonCriticalExtension_09, { "nonCriticalExtension", "nr-rrc.nonCriticalExtension_element", FT_NONE, BASE_NONE, NULL, 0, - "T_nonCriticalExtension_08", HFILL }}, + "T_nonCriticalExtension_09", HFILL }}, { &hf_nr_rrc_phy_ParametersXDD_Diff, { "phy-ParametersXDD-Diff", "nr-rrc.phy_ParametersXDD_Diff_element", FT_NONE, BASE_NONE, NULL, 0, @@ -34052,12 +34214,18 @@ void proto_register_nr_rrc(void) { /*--- Included file: packet-nr-rrc-ettarr.c ---*/ #line 1 "./asn1/nr-rrc/packet-nr-rrc-ettarr.c" - &ett_nr_rrc_HandoverPreparationInformation, + &ett_nr_rrc_HandoverCommand, &ett_nr_rrc_T_criticalExtensions, &ett_nr_rrc_T_c1, &ett_nr_rrc_T_criticalExtensionsFuture, - &ett_nr_rrc_HandoverPreparationInformation_IEs, + &ett_nr_rrc_HandoverCommand_IEs, &ett_nr_rrc_T_nonCriticalExtension, + &ett_nr_rrc_HandoverPreparationInformation, + &ett_nr_rrc_T_criticalExtensions_01, + &ett_nr_rrc_T_c1_01, + &ett_nr_rrc_T_criticalExtensionsFuture_01, + &ett_nr_rrc_HandoverPreparationInformation_IEs, + &ett_nr_rrc_T_nonCriticalExtension_01, &ett_nr_rrc_AS_Context, &ett_nr_rrc_T_reestablishmentInfo, &ett_nr_rrc_ReestabNCellInfoList, @@ -34065,12 +34233,12 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_RRM_Config, &ett_nr_rrc_NR_FreqInfo, &ett_nr_rrc_CG_ConfigInfo, - &ett_nr_rrc_T_criticalExtensions_01, - &ett_nr_rrc_T_c1_01, - &ett_nr_rrc_T_criticalExtensionsFuture_01, + &ett_nr_rrc_T_criticalExtensions_02, + &ett_nr_rrc_T_c1_02, + &ett_nr_rrc_T_criticalExtensionsFuture_02, &ett_nr_rrc_CG_ConfigInfo_IEs, &ett_nr_rrc_T_scgFailureInfo, - &ett_nr_rrc_T_nonCriticalExtension_01, + &ett_nr_rrc_T_nonCriticalExtension_02, &ett_nr_rrc_ConfigRestrictInfoSCG, &ett_nr_rrc_T_powerCoordination_FR1, &ett_nr_rrc_T_servCellIndexRangeSCG, @@ -34082,11 +34250,11 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_SEQUENCE_SIZE_1_maxMeasFreqsMN_OF_NR_FreqInfo, &ett_nr_rrc_T_measGapConfig, &ett_nr_rrc_MeasurementTimingConfiguration, - &ett_nr_rrc_T_criticalExtensions_02, - &ett_nr_rrc_T_c1_02, - &ett_nr_rrc_T_criticalExtensionsFuture_02, + &ett_nr_rrc_T_criticalExtensions_03, + &ett_nr_rrc_T_c1_03, + &ett_nr_rrc_T_criticalExtensionsFuture_03, &ett_nr_rrc_MeasurementTimingConfiguration_IEs, - &ett_nr_rrc_T_nonCriticalExtension_02, + &ett_nr_rrc_T_nonCriticalExtension_03, &ett_nr_rrc_MeasTimingList, &ett_nr_rrc_MeasTiming, &ett_nr_rrc_T_frequencyAndTiming, @@ -34095,32 +34263,32 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_T_messageClassExtension, &ett_nr_rrc_DL_DCCH_Message, &ett_nr_rrc_DL_DCCH_MessageType, - &ett_nr_rrc_T_c1_03, + &ett_nr_rrc_T_c1_04, &ett_nr_rrc_T_messageClassExtension_01, &ett_nr_rrc_UL_DCCH_Message, &ett_nr_rrc_UL_DCCH_MessageType, - &ett_nr_rrc_T_c1_04, + &ett_nr_rrc_T_c1_05, &ett_nr_rrc_T_messageClassExtension_02, &ett_nr_rrc_MIB, &ett_nr_rrc_MeasurementReport, - &ett_nr_rrc_T_criticalExtensions_03, - &ett_nr_rrc_T_criticalExtensionsFuture_03, - &ett_nr_rrc_MeasurementReport_IEs, - &ett_nr_rrc_T_nonCriticalExtension_03, - &ett_nr_rrc_RRCReconfiguration, &ett_nr_rrc_T_criticalExtensions_04, &ett_nr_rrc_T_criticalExtensionsFuture_04, - &ett_nr_rrc_RRCReconfiguration_IEs, + &ett_nr_rrc_MeasurementReport_IEs, &ett_nr_rrc_T_nonCriticalExtension_04, - &ett_nr_rrc_RRCReconfigurationComplete, + &ett_nr_rrc_RRCReconfiguration, &ett_nr_rrc_T_criticalExtensions_05, &ett_nr_rrc_T_criticalExtensionsFuture_05, - &ett_nr_rrc_RRCReconfigurationComplete_IEs, + &ett_nr_rrc_RRCReconfiguration_IEs, &ett_nr_rrc_T_nonCriticalExtension_05, + &ett_nr_rrc_RRCReconfigurationComplete, + &ett_nr_rrc_T_criticalExtensions_06, + &ett_nr_rrc_T_criticalExtensionsFuture_06, + &ett_nr_rrc_RRCReconfigurationComplete_IEs, + &ett_nr_rrc_T_nonCriticalExtension_06, &ett_nr_rrc_SIB1, &ett_nr_rrc_T_ssb_PositionsInBurst, &ett_nr_rrc_T_supplementaryUplink, - &ett_nr_rrc_T_nonCriticalExtension_06, + &ett_nr_rrc_T_nonCriticalExtension_07, &ett_nr_rrc_BWP, &ett_nr_rrc_BWP_Uplink, &ett_nr_rrc_BWP_UplinkCommon, @@ -34697,7 +34865,7 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_UE_CapabilityRAT_Container, &ett_nr_rrc_UE_MRDC_Capability, &ett_nr_rrc_SEQUENCE_SIZE_1_maxFeatureSetCombinations_OF_FeatureSetCombination, - &ett_nr_rrc_T_nonCriticalExtension_07, + &ett_nr_rrc_T_nonCriticalExtension_08, &ett_nr_rrc_UE_MRDC_CapabilityAddXDD_Mode, &ett_nr_rrc_UE_MRDC_CapabilityAddFRX_Mode, &ett_nr_rrc_GeneralParametersMRDC_XDD_Diff, @@ -34707,7 +34875,7 @@ void proto_register_nr_rrc(void) { &ett_nr_rrc_MeasParametersMRDC_XDD_Diff, &ett_nr_rrc_MeasParametersMRDC_FRX_Diff, &ett_nr_rrc_UE_NR_Capability, - &ett_nr_rrc_T_nonCriticalExtension_08, + &ett_nr_rrc_T_nonCriticalExtension_09, &ett_nr_rrc_UE_NR_CapabilityAddXDD_Mode, &ett_nr_rrc_UE_NR_CapabilityAddFRX_Mode, &ett_nr_rrc_Phy_Parameters, diff --git a/epan/dissectors/packet-nr-rrc.h b/epan/dissectors/packet-nr-rrc.h index b390e30be4..338159e526 100644 --- a/epan/dissectors/packet-nr-rrc.h +++ b/epan/dissectors/packet-nr-rrc.h @@ -22,6 +22,7 @@ /*--- Included file: packet-nr-rrc-exp.h ---*/ #line 1 "./asn1/nr-rrc/packet-nr-rrc-exp.h" +int dissect_nr_rrc_HandoverCommand_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_nr_rrc_HandoverPreparationInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_nr_rrc_CG_ConfigInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); int dissect_nr_rrc_ConfigRestrictInfoSCG_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); diff --git a/epan/dissectors/packet-xnap.c b/epan/dissectors/packet-xnap.c new file mode 100644 index 0000000000..5970d9841d --- /dev/null +++ b/epan/dissectors/packet-xnap.c @@ -0,0 +1,9573 @@ +/* Do not modify this file. Changes will be overwritten. */ +/* Generated automatically by the ASN.1 to Wireshark dissector compiler */ +/* packet-xnap.c */ +/* asn2wrs.py -p xnap -c ./xnap.cnf -s ./packet-xnap-template -D . -O ../.. XnAP-CommonDataTypes.asn XnAP-Constants.asn XnAP-Containers.asn XnAP-IEs.asn XnAP-PDU-Contents.asn XnAP-PDU-Descriptions.asn */ + +/* Input file: packet-xnap-template.c */ + +#line 1 "./asn1/xnap/packet-xnap-template.c" +/* packet-xnap.c + * Routines for dissecting NG-RAN Xn application protocol (XnAP) + * 3GPP TS 38.423 packet dissection + * Copyright 2018, Pascal Quantin <pascal.quantin@gmail.com> + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0-or-later + * + * Ref: + * 3GPP TS 38.423 V15.0.0 (2018-06) + */ + +#include "config.h" + +#include <epan/packet.h> +#include <epan/asn1.h> +#include <epan/prefs.h> +#include <epan/sctpppids.h> +#include <epan/proto_data.h> +#include <epan/conversation.h> + +#include "packet-per.h" +#include "packet-lte-rrc.h" +#include "packet-nr-rrc.h" +#include "packet-e212.h" + +#ifdef _MSC_VER +/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */ +#pragma warning(disable:4146) +#endif + +#define PNAME "NG-RAN Xn Application Protocol (XnAP)" +#define PSNAME "XnAP" +#define PFNAME "xnap" + +/* Dissector will use SCTP PPID 61 or SCTP port. IANA assigned port = 38422 */ +#define SCTP_PORT_XnAP 38422 + + +/*--- Included file: packet-xnap-val.h ---*/ +#line 1 "./asn1/xnap/packet-xnap-val.h" +#define maxPrivateIEs 65535 +#define maxProtocolExtensions 65535 +#define maxProtocolIEs 65535 +#define maxEARFCN 262143 +#define maxnoofAllowedAreas 16 +#define maxnoofAoIs 64 +#define maxnoofBPLMNs 6 +#define maxnoofCellsinAoI 256 +#define maxnoofCellsinNGRANnode 16384 +#define maxnoofCellsinRNA 32 +#define maxnoofDRBs 32 +#define maxnoofEUTRABands 16 +#define maxnoofEPLMNs 15 +#define maxnoofForbiddenTACs 4096 +#define maxnoofMBSFNEUTRA 8 +#define maxnoofNeighbours 1024 +#define maxnoofNRCellBands 32 +#define maxnoofPLMNs 16 +#define maxnoofPDUSessions 256 +#define maxnoofQoSFlows 64 +#define maxnoofRANAreaCodes 32 +#define maxnoofRANAreasinRNA 16 +#define maxnoofSliceItems 1024 +#define maxnoofsupportedPLMNs 16 +#define maxnoofsupportedTACs 1024 +#define maxnoofTAI 16 +#define maxnoofTAIsinAoI 16 +#define maxnoofUEContexts 8292 +#define maxNRARFCN 3279165 +#define maxNrOfErrors 256 + +typedef enum _ProcedureCode_enum { + id_handoverPreparation = 0, + id_sNStatusTransfer = 1, + id_handoverCancel = 2, + id_retrieveUEContext = 3, + id_rANPaging = 4, + id_dataForwardingAddressIndication = 5, + id_uEContextRelease = 6, + id_sNGRANnodeAdditionPreparation = 7, + id_sNGRANnodeReconfigurationCompletion = 8, + id_mNGRANnodeinitiatedSNGRANnodeModificationPreparation = 9, + id_sNGRANnodeinitiatedSNGRANnodeModificationPreparation = 10, + id_mNGRANnodeinitiatedSNGRANnodeRelease = 11, + id_sNGRANnodeinitiatedSNGRANnodeRelease = 12, + id_sNGRANnodeCounterCheck = 13, + id_sNGRANnodeChange = 14, + id_rRCTransfer = 15, + id_xnRemoval = 16, + id_xnSetup = 17, + id_nGRANnodeConfigurationUpdate = 18, + id_cellActivation = 19, + id_reset = 20, + id_errorIndication = 21, + id_privateMessage = 22 +} ProcedureCode_enum; + +typedef enum _ProtocolIE_ID_enum { + id_ActivatedServedCells = 0, + id_ActivationIDforCellActivation = 1, + id_AMF_Pool_Information = 2, + id_AreaOfInterest_Item = 3, + id_AssistanceDataForRANPaging = 4, + id_Cause = 5, + id_cellAssistanceInfo_NR = 6, + id_ConfigurationUpdateInitiatingNodeChoice = 7, + id_CriticalityDiagnostics = 8, + id_dataforwardingInfoperPDUSession = 9, + id_dataforwardingInfoperPDUSession_Item = 10, + id_DataForwardingResponseDRBItem = 11, + id_DRBsSubjectToStatusTransfer_Item = 12, + id_DRBsSubjectToStatusTransfer_List = 13, + id_DRBToQoSFlowMapping_Item = 14, + id_GlobalNG_RAN_node_ID = 15, + id_GUAMI = 16, + id_List_of_served_cells_E_UTRA = 17, + id_List_of_served_cells_NR = 18, + id_LocationReportingInformation = 19, + id_MAC_I = 20, + id_MaskedIMEISV = 21, + id_new_NG_RAN_Cell_Identity = 22, + id_newNG_RANnodeUEXnAPID = 23, + id_oldNG_RANnodeUEXnAPID = 24, + id_PagingDRX = 25, + id_PDUSessionResourceAdmittedResponseTransferItem = 26, + id_PDUSessionResourcesAdmitted_Item = 27, + id_PDUSessionResourcesAdmitted_List = 28, + id_PDUSessionResourcesNotAdmitted_Item = 29, + id_PDUSessionResourcesNotAdmitted_List = 30, + id_PDUSessionResourcesToBeSetup_Item = 31, + id_QoSFlowAdmitted_Item = 32, + id_QoSFlow_Item = 33, + id_QoSFlowNotAdmitted_Item = 34, + id_QoSFlowsToBeSetup_Item = 35, + id_RANPagingArea = 36, + id_RANPagingPriority = 37, + id_ResetRequestPartialReleaseItem = 38, + id_ResetRequestTypeInfo = 39, + id_ResetResponsePartialReleaseItem = 40, + id_ResetResponseTypeInfo = 41, + id_RespondingNodeTypeConfigUpdateAck = 42, + id_ServedCellsToActivate = 43, + id_servedCellsToUpdate_E_UTRA = 44, + id_ServedCellsToUpdateInitiatingNodeChoice = 45, + id_servedCellsToUpdate_NR = 46, + id_sourceNG_RANnodeUEXnAPID = 47, + id_TAISupport_Item = 48, + id_TAISupport_list = 49, + id_Target2SourceNG_RANnodeTranspContainer = 50, + id_targetCellGlobalID = 51, + id_targetNG_RANnodeUEXnAPID = 52, + id_TraceActivation = 53, + id_UEContextID = 54, + id_UEContextInfoHORequest = 55, + id_UEContextInfoRetrUECtxtResp = 56, + id_UEIdentityIndexValue = 57, + id_UERANPagingIdentity = 58, + id_XnRemovalThreshold = 59 +} ProtocolIE_ID_enum; + +typedef enum _TriggeringMessage_enum { + initiating_message = 0, + successful_outcome = 1, + unsuccessful_outcome = 2 +} TriggeringMessage_enum; + +typedef enum _GlobalNG_RANNode_ID_enum { + GlobalNG_RANNode_ID_gNB = 0, + GlobalNG_RANNode_ID_ng_eNB = 1, + GlobalNG_RANNode_ID_choice_extension = 2 +} GlobalNG_RANNode_ID_enum; + +/*--- End of included file: packet-xnap-val.h ---*/ +#line 43 "./asn1/xnap/packet-xnap-template.c" + +/* Initialize the protocol and registered fields */ +static int proto_xnap = -1; +static int hf_xnap_transportLayerAddressIPv4 = -1; +static int hf_xnap_transportLayerAddressIPv6 = -1; +static int hf_xnap_ng_ran_TraceID_TraceID = -1; +static int hf_xnap_ng_ran_TraceID_TraceRecordingSessionReference = -1; + +/*--- Included file: packet-xnap-hf.c ---*/ +#line 1 "./asn1/xnap/packet-xnap-hf.c" +static int hf_xnap_ActivationIDforCellActivation_PDU = -1; /* ActivationIDforCellActivation */ +static int hf_xnap_AMF_Pool_Information_PDU = -1; /* AMF_Pool_Information */ +static int hf_xnap_AreaOfInterest_Item_PDU = -1; /* AreaOfInterest_Item */ +static int hf_xnap_AssistanceDataForRANPaging_PDU = -1; /* AssistanceDataForRANPaging */ +static int hf_xnap_Cause_PDU = -1; /* Cause */ +static int hf_xnap_CellAssistanceInfo_NR_PDU = -1; /* CellAssistanceInfo_NR */ +static int hf_xnap_CriticalityDiagnostics_PDU = -1; /* CriticalityDiagnostics */ +static int hf_xnap_DataforwardingInfoperPDUSession_PDU = -1; /* DataforwardingInfoperPDUSession */ +static int hf_xnap_DataforwardingInfoperPDUSession_Item_PDU = -1; /* DataforwardingInfoperPDUSession_Item */ +static int hf_xnap_DataForwardingResponseDRBItem_PDU = -1; /* DataForwardingResponseDRBItem */ +static int hf_xnap_DRBsSubjectToStatusTransfer_List_PDU = -1; /* DRBsSubjectToStatusTransfer_List */ +static int hf_xnap_DRBsSubjectToStatusTransfer_Item_PDU = -1; /* DRBsSubjectToStatusTransfer_Item */ +static int hf_xnap_DRBToQoSFlowMapping_Item_PDU = -1; /* DRBToQoSFlowMapping_Item */ +static int hf_xnap_GlobalNG_RANNode_ID_PDU = -1; /* GlobalNG_RANNode_ID */ +static int hf_xnap_GUAMI_PDU = -1; /* GUAMI */ +static int hf_xnap_LocationReportingInformation_PDU = -1; /* LocationReportingInformation */ +static int hf_xnap_MAC_I_PDU = -1; /* MAC_I */ +static int hf_xnap_MaskedIMEISV_PDU = -1; /* MaskedIMEISV */ +static int hf_xnap_NG_RAN_Cell_Identity_PDU = -1; /* NG_RAN_Cell_Identity */ +static int hf_xnap_NG_RANnodeUEXnAPID_PDU = -1; /* NG_RANnodeUEXnAPID */ +static int hf_xnap_PagingDRX_PDU = -1; /* PagingDRX */ +static int hf_xnap_PDUSessionResourcesAdmitted_List_PDU = -1; /* PDUSessionResourcesAdmitted_List */ +static int hf_xnap_PDUSessionResourcesAdmitted_Item_PDU = -1; /* PDUSessionResourcesAdmitted_Item */ +static int hf_xnap_PDUSessionResourcesNotAdmitted_List_PDU = -1; /* PDUSessionResourcesNotAdmitted_List */ +static int hf_xnap_PDUSessionResourcesNotAdmitted_Item_PDU = -1; /* PDUSessionResourcesNotAdmitted_Item */ +static int hf_xnap_PDUSessionResourcesToBeSetup_Item_PDU = -1; /* PDUSessionResourcesToBeSetup_Item */ +static int hf_xnap_QoSFlow_Item_PDU = -1; /* QoSFlow_Item */ +static int hf_xnap_QoSFlowAdmitted_Item_PDU = -1; /* QoSFlowAdmitted_Item */ +static int hf_xnap_QoSFlowNotAdmitted_Item_PDU = -1; /* QoSFlowNotAdmitted_Item */ +static int hf_xnap_QoSFlowsToBeSetup_Item_PDU = -1; /* QoSFlowsToBeSetup_Item */ +static int hf_xnap_RANPagingArea_PDU = -1; /* RANPagingArea */ +static int hf_xnap_RANPagingPriority_PDU = -1; /* RANPagingPriority */ +static int hf_xnap_ResetRequestTypeInfo_PDU = -1; /* ResetRequestTypeInfo */ +static int hf_xnap_ResetRequestPartialReleaseItem_PDU = -1; /* ResetRequestPartialReleaseItem */ +static int hf_xnap_ResetResponseTypeInfo_PDU = -1; /* ResetResponseTypeInfo */ +static int hf_xnap_ResetResponsePartialReleaseItem_PDU = -1; /* ResetResponsePartialReleaseItem */ +static int hf_xnap_ServedCells_E_UTRA_PDU = -1; /* ServedCells_E_UTRA */ +static int hf_xnap_ServedCellsToUpdate_E_UTRA_PDU = -1; /* ServedCellsToUpdate_E_UTRA */ +static int hf_xnap_ServedCells_NR_PDU = -1; /* ServedCells_NR */ +static int hf_xnap_ServedCellsToUpdate_NR_PDU = -1; /* ServedCellsToUpdate_NR */ +static int hf_xnap_TAISupport_List_PDU = -1; /* TAISupport_List */ +static int hf_xnap_TAISupport_Item_PDU = -1; /* TAISupport_Item */ +static int hf_xnap_Target_CGI_PDU = -1; /* Target_CGI */ +static int hf_xnap_TraceActivation_PDU = -1; /* TraceActivation */ +static int hf_xnap_UEContextID_PDU = -1; /* UEContextID */ +static int hf_xnap_UEContextInfoRetrUECtxtResp_PDU = -1; /* UEContextInfoRetrUECtxtResp */ +static int hf_xnap_UEIdentityIndexValue_PDU = -1; /* UEIdentityIndexValue */ +static int hf_xnap_UERANPagingIdentity_PDU = -1; /* UERANPagingIdentity */ +static int hf_xnap_XnBenefitValue_PDU = -1; /* XnBenefitValue */ +static int hf_xnap_HandoverRequest_PDU = -1; /* HandoverRequest */ +static int hf_xnap_UEContextInfoHORequest_PDU = -1; /* UEContextInfoHORequest */ +static int hf_xnap_HandoverRequestAcknowledge_PDU = -1; /* HandoverRequestAcknowledge */ +static int hf_xnap_Target2SourceNG_RANnodeTranspContainer_PDU = -1; /* Target2SourceNG_RANnodeTranspContainer */ +static int hf_xnap_HandoverPreparationFailure_PDU = -1; /* HandoverPreparationFailure */ +static int hf_xnap_SNStatusTransfer_PDU = -1; /* SNStatusTransfer */ +static int hf_xnap_UEContextRelease_PDU = -1; /* UEContextRelease */ +static int hf_xnap_HandoverCancel_PDU = -1; /* HandoverCancel */ +static int hf_xnap_RANPaging_PDU = -1; /* RANPaging */ +static int hf_xnap_RetrieveUEContextRequest_PDU = -1; /* RetrieveUEContextRequest */ +static int hf_xnap_RetrieveUEContextResponse_PDU = -1; /* RetrieveUEContextResponse */ +static int hf_xnap_RetrieveUEContextFailure_PDU = -1; /* RetrieveUEContextFailure */ +static int hf_xnap_DataForwardingAddressIndication_PDU = -1; /* DataForwardingAddressIndication */ +static int hf_xnap_SNodeAdditionRequest_PDU = -1; /* SNodeAdditionRequest */ +static int hf_xnap_SNodeAdditionRequestAcknowledge_PDU = -1; /* SNodeAdditionRequestAcknowledge */ +static int hf_xnap_SNodeAdditionRequestReject_PDU = -1; /* SNodeAdditionRequestReject */ +static int hf_xnap_SNodeReconfigurationComplete_PDU = -1; /* SNodeReconfigurationComplete */ +static int hf_xnap_SNodeModificationRequest_PDU = -1; /* SNodeModificationRequest */ +static int hf_xnap_SNodeModificationRequestAcknowledge_PDU = -1; /* SNodeModificationRequestAcknowledge */ +static int hf_xnap_SNodeModificationRequestReject_PDU = -1; /* SNodeModificationRequestReject */ +static int hf_xnap_SNodeModificationRequired_PDU = -1; /* SNodeModificationRequired */ +static int hf_xnap_SNodeModificationConfirm_PDU = -1; /* SNodeModificationConfirm */ +static int hf_xnap_SNodeModificationRefuse_PDU = -1; /* SNodeModificationRefuse */ +static int hf_xnap_SNodeReleaseRequest_PDU = -1; /* SNodeReleaseRequest */ +static int hf_xnap_SNodeReleaseRequestAcknowledge_PDU = -1; /* SNodeReleaseRequestAcknowledge */ +static int hf_xnap_SNodeReleaseReject_PDU = -1; /* SNodeReleaseReject */ +static int hf_xnap_SNodeReleaseRequired_PDU = -1; /* SNodeReleaseRequired */ +static int hf_xnap_SNodeReleaseConfirm_PDU = -1; /* SNodeReleaseConfirm */ +static int hf_xnap_SNodeCounterCheckRequest_PDU = -1; /* SNodeCounterCheckRequest */ +static int hf_xnap_SNodeChangeRequired_PDU = -1; /* SNodeChangeRequired */ +static int hf_xnap_SNodeChangeConfirm_PDU = -1; /* SNodeChangeConfirm */ +static int hf_xnap_SNodeChangeRefuse_PDU = -1; /* SNodeChangeRefuse */ +static int hf_xnap_RRCTransfer_PDU = -1; /* RRCTransfer */ +static int hf_xnap_XnSetupRequest_PDU = -1; /* XnSetupRequest */ +static int hf_xnap_XnSetupResponse_PDU = -1; /* XnSetupResponse */ +static int hf_xnap_XnSetupFailure_PDU = -1; /* XnSetupFailure */ +static int hf_xnap_NGRANNodeConfigurationUpdate_PDU = -1; /* NGRANNodeConfigurationUpdate */ +static int hf_xnap_ConfigurationUpdateInitiatingNodeChoice_PDU = -1; /* ConfigurationUpdateInitiatingNodeChoice */ +static int hf_xnap_NGRANNodeConfigurationUpdateAcknowledge_PDU = -1; /* NGRANNodeConfigurationUpdateAcknowledge */ +static int hf_xnap_RespondingNodeTypeConfigUpdateAck_PDU = -1; /* RespondingNodeTypeConfigUpdateAck */ +static int hf_xnap_NGRANNodeConfigurationUpdateFailure_PDU = -1; /* NGRANNodeConfigurationUpdateFailure */ +static int hf_xnap_XnRemovalRequest_PDU = -1; /* XnRemovalRequest */ +static int hf_xnap_XnRemovalResponse_PDU = -1; /* XnRemovalResponse */ +static int hf_xnap_XnRemovalFailure_PDU = -1; /* XnRemovalFailure */ +static int hf_xnap_CellActivationRequest_PDU = -1; /* CellActivationRequest */ +static int hf_xnap_ServedCellsToActivate_PDU = -1; /* ServedCellsToActivate */ +static int hf_xnap_CellActivationResponse_PDU = -1; /* CellActivationResponse */ +static int hf_xnap_ActivatedServedCells_PDU = -1; /* ActivatedServedCells */ +static int hf_xnap_CellActivationFailure_PDU = -1; /* CellActivationFailure */ +static int hf_xnap_ResetRequest_PDU = -1; /* ResetRequest */ +static int hf_xnap_ResetResponse_PDU = -1; /* ResetResponse */ +static int hf_xnap_ErrorIndication_PDU = -1; /* ErrorIndication */ +static int hf_xnap_PrivateMessage_PDU = -1; /* PrivateMessage */ +static int hf_xnap_XnAP_PDU_PDU = -1; /* XnAP_PDU */ +static int hf_xnap_local = -1; /* INTEGER_0_maxPrivateIEs */ +static int hf_xnap_global = -1; /* OBJECT_IDENTIFIER */ +static int hf_xnap_ProtocolIE_Container_item = -1; /* ProtocolIE_Field */ +static int hf_xnap_id = -1; /* ProtocolIE_ID */ +static int hf_xnap_criticality = -1; /* Criticality */ +static int hf_xnap_protocolIE_Field_value = -1; /* ProtocolIE_Field_value */ +static int hf_xnap_ProtocolExtensionContainer_item = -1; /* ProtocolExtensionField */ +static int hf_xnap_extension_id = -1; /* ProtocolIE_ID */ +static int hf_xnap_extensionValue = -1; /* T_extensionValue */ +static int hf_xnap_PrivateIE_Container_item = -1; /* PrivateIE_Field */ +static int hf_xnap_private_id = -1; /* PrivateIE_ID */ +static int hf_xnap_privateIE_Field_value = -1; /* PrivateIE_Field_value */ +static int hf_xnap_priorityLevel = -1; /* INTEGER_0_15_ */ +static int hf_xnap_pre_emption_capability = -1; /* T_pre_emption_capability */ +static int hf_xnap_pre_emption_vulnerability = -1; /* T_pre_emption_vulnerability */ +static int hf_xnap_iE_Extensions = -1; /* ProtocolExtensionContainer */ +static int hf_xnap_AreaOfInterest_item = -1; /* ProtocolIE_Single_Container */ +static int hf_xnap_listOfTAIs = -1; /* ListOfTAIsinAoI */ +static int hf_xnap_listOfCells = -1; /* ListOfCells */ +static int hf_xnap_key_NG_RAN_Star = -1; /* BIT_STRING_SIZE_256 */ +static int hf_xnap_ncc = -1; /* INTEGER_0_7 */ +static int hf_xnap_ran_paging_attempt_info = -1; /* RANPagingAttemptInfo */ +static int hf_xnap_BroadcastPLMNs_item = -1; /* PLMN_Identity */ +static int hf_xnap_plmn_id = -1; /* PLMN_Identity */ +static int hf_xnap_tAISliceSupport_List = -1; /* SliceSupport_List */ +static int hf_xnap_iE_Extension = -1; /* ProtocolExtensionContainer */ +static int hf_xnap_radioNetwork = -1; /* CauseRadioNetworkLayer */ +static int hf_xnap_transport = -1; /* CauseTransportLayer */ +static int hf_xnap_protocol = -1; /* CauseProtocol */ +static int hf_xnap_misc = -1; /* CauseMisc */ +static int hf_xnap_choice_extension = -1; /* ProtocolExtensionContainer */ +static int hf_xnap_limitedNR_List = -1; /* SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_NR_CGI */ +static int hf_xnap_limitedNR_List_item = -1; /* NR_CGI */ +static int hf_xnap_full_List = -1; /* T_full_List */ +static int hf_xnap_pdcp_SN12 = -1; /* INTEGER_0_4095 */ +static int hf_xnap_hfn_PDCP_SN12 = -1; /* INTEGER_0_1048575 */ +static int hf_xnap_pdcp_SN18 = -1; /* INTEGER_0_262143 */ +static int hf_xnap_hfn_PDCP_SN18 = -1; /* INTEGER_0_16383 */ +static int hf_xnap_endpointIPAddress = -1; /* TransportLayerAddress */ +static int hf_xnap_procedureCode = -1; /* ProcedureCode */ +static int hf_xnap_triggeringMessage = -1; /* TriggeringMessage */ +static int hf_xnap_procedureCriticality = -1; /* Criticality */ +static int hf_xnap_iEsCriticalityDiagnostics = -1; /* CriticalityDiagnostics_IE_List */ +static int hf_xnap_CriticalityDiagnostics_IE_List_item = -1; /* CriticalityDiagnostics_IE_List_item */ +static int hf_xnap_iECriticality = -1; /* Criticality */ +static int hf_xnap_iE_ID = -1; /* ProtocolIE_ID */ +static int hf_xnap_typeOfError = -1; /* TypeOfError */ +static int hf_xnap_DataforwardingInfoperPDUSession_item = -1; /* ProtocolIE_Single_Container */ +static int hf_xnap_pduSession_ID = -1; /* PDUSession_ID */ +static int hf_xnap_dlForwardingUPTNL = -1; /* UPTransportLayerInformation */ +static int hf_xnap_pduSessionLevelDLDataForwardingInfo = -1; /* UPTransportLayerInformation */ +static int hf_xnap_dataForwardingResponseDRBItemList = -1; /* DataForwardingResponseDRBItemList */ +static int hf_xnap_DataForwardingResponseDRBItemList_item = -1; /* ProtocolIE_Single_Container */ +static int hf_xnap_drb_ID = -1; /* DRB_ID */ +static int hf_xnap_ulForwardingUPTNL = -1; /* UPTransportLayerInformation */ +static int hf_xnap_DRBsSubjectToStatusTransfer_List_item = -1; /* ProtocolIE_Single_Container */ +static int hf_xnap_drbID = -1; /* DRB_ID */ +static int hf_xnap_statusTransfer = -1; /* DRBBStatusTransferChoice */ +static int hf_xnap_pdcp_sn_12bits = -1; /* DRBBStatusTransfer12bitsSN */ +static int hf_xnap_pdcp_sn_18bits = -1; /* DRBBStatusTransfer18bitsSN */ +static int hf_xnap_receiveStatusofPDCPSDU = -1; /* BIT_STRING_SIZE_1_2048 */ +static int hf_xnap_ulCOUNTValue = -1; /* COUNT_PDCP_SN12 */ +static int hf_xnap_dlCOUNTValue = -1; /* COUNT_PDCP_SN12 */ +static int hf_xnap_receiveStatusofPDCPSDU_01 = -1; /* BIT_STRING_SIZE_1_131072 */ +static int hf_xnap_ulCOUNTValue_01 = -1; /* COUNT_PDCP_SN18 */ +static int hf_xnap_dlCOUNTValue_01 = -1; /* COUNT_PDCP_SN18 */ +static int hf_xnap_DRBToQoSFlowMapping_List_item = -1; /* ProtocolIE_Single_Container */ +static int hf_xnap_qosFlows_List = -1; /* QoSFlows_List */ +static int hf_xnap_priorityLevel_01 = -1; /* INTEGER_1_128 */ +static int hf_xnap_packetDelayBudget = -1; /* PacketDelayBudget */ +static int hf_xnap_packetErrorRate = -1; /* PacketErrorRate */ +static int hf_xnap_delayCritical = -1; /* T_delayCritical */ +static int hf_xnap_averagingWindow = -1; /* AveragingWindow */ +static int hf_xnap_maximumDataBurstVolume = -1; /* MaximumDataBurstVolume */ +static int hf_xnap_e_utra_CI = -1; /* E_UTRA_Cell_Identity */ +static int hf_xnap_E_UTRAMultibandInfoList_item = -1; /* E_UTRAFrequencyBandIndicator */ +static int hf_xnap_rootSequenceIndex = -1; /* INTEGER_0_837 */ +static int hf_xnap_zeroCorrelationIndex = -1; /* INTEGER_0_15 */ +static int hf_xnap_highSpeedFlag = -1; /* T_highSpeedFlag */ +static int hf_xnap_prach_FreqOffset = -1; /* INTEGER_0_94 */ +static int hf_xnap_prach_ConfigIndex = -1; /* INTEGER_0_63 */ +static int hf_xnap_maxFlowBitRateDL = -1; /* BitRate */ +static int hf_xnap_maxFlowBitRateUL = -1; /* BitRate */ +static int hf_xnap_guaranteedFlowBitRateDL = -1; /* BitRate */ +static int hf_xnap_guaranteedFlowBitRateUL = -1; /* BitRate */ +static int hf_xnap_notificationControl = -1; /* T_notificationControl */ +static int hf_xnap_maxPacketLossRateDL = -1; /* PacketLossRate */ +static int hf_xnap_maxPacketLossRateUL = -1; /* PacketLossRate */ +static int hf_xnap_gnb_id = -1; /* GNB_ID_Choice */ +static int hf_xnap_gnb_ID = -1; /* BIT_STRING_SIZE_22_32 */ +static int hf_xnap_enb_id = -1; /* ENB_ID_Choice */ +static int hf_xnap_enb_ID_macro = -1; /* BIT_STRING_SIZE_20 */ +static int hf_xnap_enb_ID_shortmacro = -1; /* BIT_STRING_SIZE_18 */ +static int hf_xnap_enb_ID_longmacro = -1; /* BIT_STRING_SIZE_21 */ +static int hf_xnap_gNB = -1; /* GlobalgNB_ID */ +static int hf_xnap_ng_eNB = -1; /* GlobalngeNB_ID */ +static int hf_xnap_tnl_address = -1; /* TransportLayerAddress */ +static int hf_xnap_gtp_teid = -1; /* GTP_TEID */ +static int hf_xnap_plmn_ID = -1; /* PLMN_Identity */ +static int hf_xnap_amf_region_if = -1; /* OCTET_STRING_SIZE_2 */ +static int hf_xnap_amf_set_id = -1; /* BIT_STRING_SIZE_4 */ +static int hf_xnap_amf_pointer = -1; /* BIT_STRING_SIZE_4 */ +static int hf_xnap_ListOfCells_item = -1; /* CellsinAoI_Item */ +static int hf_xnap_pLMN_Identity = -1; /* PLMN_Identity */ +static int hf_xnap_ng_ran_cell_id = -1; /* NG_RAN_Cell_Identity */ +static int hf_xnap_ListOfTAIsinAoI_item = -1; /* TAIsinAoI_Item */ +static int hf_xnap_tAC = -1; /* TAC */ +static int hf_xnap_eventType = -1; /* EventType */ +static int hf_xnap_reportArea = -1; /* ReportArea */ +static int hf_xnap_areaOfInterest = -1; /* AreaOfInterest */ +static int hf_xnap_oneframe = -1; /* BIT_STRING_SIZE_6 */ +static int hf_xnap_fourframes = -1; /* BIT_STRING_SIZE_24 */ +static int hf_xnap_MBSFNSubframeInfo_E_UTRA_item = -1; /* MBSFNSubframeInfo_E_UTRA_Item */ +static int hf_xnap_radioframeAllocationPeriod = -1; /* T_radioframeAllocationPeriod */ +static int hf_xnap_radioframeAllocationOffset = -1; /* INTEGER_0_7_ */ +static int hf_xnap_subframeAllocation = -1; /* MBSFNSubframeAllocation_E_UTRA */ +static int hf_xnap_serving_PLMN = -1; /* PLMN_Identity */ +static int hf_xnap_equivalent_PLMNs = -1; /* SEQUENCE_SIZE_1_maxnoofEPLMNs_OF_PLMN_Identity */ +static int hf_xnap_equivalent_PLMNs_item = -1; /* PLMN_Identity */ +static int hf_xnap_rat_Restrictions = -1; /* RAT_RestrictionsList */ +static int hf_xnap_forbiddenAreaInformation = -1; /* ForbiddenAreaList */ +static int hf_xnap_serviceAreaInformation = -1; /* ServiceAreaList */ +static int hf_xnap_RAT_RestrictionsList_item = -1; /* RAT_RestrictionsItem */ +static int hf_xnap_plmn_Identity = -1; /* PLMN_Identity */ +static int hf_xnap_rat_RestrictionInformation = -1; /* RAT_RestrictionInformation */ +static int hf_xnap_ForbiddenAreaList_item = -1; /* ForbiddenAreaItem */ +static int hf_xnap_forbidden_TACs = -1; /* SEQUENCE_SIZE_1_maxnoofForbiddenTACs_OF_TAC */ +static int hf_xnap_forbidden_TACs_item = -1; /* TAC */ +static int hf_xnap_ServiceAreaList_item = -1; /* ServiceAreaItem */ +static int hf_xnap_allowed_TACs_ServiceArea = -1; /* SEQUENCE_SIZE_1_maxnoofAllowedAreas_OF_TAC */ +static int hf_xnap_allowed_TACs_ServiceArea_item = -1; /* TAC */ +static int hf_xnap_not_allowed_TACs_ServiceArea = -1; /* SEQUENCE_SIZE_1_maxnoofAllowedAreas_OF_TAC */ +static int hf_xnap_not_allowed_TACs_ServiceArea_item = -1; /* TAC */ +static int hf_xnap_NeighbourInformation_E_UTRA_item = -1; /* NeighbourInformation_E_UTRA_Item */ +static int hf_xnap_e_utra_PCI = -1; /* E_UTRAPCI */ +static int hf_xnap_e_utra_cgi = -1; /* E_UTRA_CGI */ +static int hf_xnap_earfcn = -1; /* E_UTRAARFCN */ +static int hf_xnap_tac = -1; /* TAC */ +static int hf_xnap_NeighbourInformation_NR_item = -1; /* NeighbourInformation_NR_Item */ +static int hf_xnap_nr_mode_info = -1; /* NeighbourInformation_NR_ModeInfo */ +static int hf_xnap_fdd_info = -1; /* NeighbourInformation_NR_ModeFDDInfo */ +static int hf_xnap_tdd_info = -1; /* NeighbourInformation_NR_ModeTDDInfo */ +static int hf_xnap_ul_NR_FreqInfo = -1; /* NRFrequencyInfo */ +static int hf_xnap_dl_NR_FequInfo = -1; /* NRFrequencyInfo */ +static int hf_xnap_ie_Extensions = -1; /* ProtocolExtensionContainer */ +static int hf_xnap_nr_FreqInfo = -1; /* NRFrequencyInfo */ +static int hf_xnap_nr = -1; /* NR_Cell_Identity */ +static int hf_xnap_e_utra = -1; /* E_UTRA_Cell_Identity */ +static int hf_xnap_nr_01 = -1; /* NRPCI */ +static int hf_xnap_e_utra_01 = -1; /* E_UTRAPCI */ +static int hf_xnap_fiveQI = -1; /* INTEGER_0_255 */ +static int hf_xnap_NG_RAN_Cell_Identity_ListinRANPagingArea_item = -1; /* NG_RAN_Cell_Identity */ +static int hf_xnap_nr_CI = -1; /* NR_Cell_Identity */ +static int hf_xnap_NRFrequencyBand_List_item = -1; /* NRFrequencyBandItem */ +static int hf_xnap_nr_frequency_band = -1; /* NRFrequencyBand */ +static int hf_xnap_supported_SUL_Band_List = -1; /* SupportedSULBandList */ +static int hf_xnap_nrARFCN = -1; /* NRARFCN */ +static int hf_xnap_sul_information = -1; /* SUL_Information */ +static int hf_xnap_frequencyBand_List = -1; /* NRFrequencyBand_List */ +static int hf_xnap_fdd = -1; /* NRModeInfoFDD */ +static int hf_xnap_tdd = -1; /* NRModeInfoTDD */ +static int hf_xnap_ulNRFrequencyInfo = -1; /* NRFrequencyInfo */ +static int hf_xnap_dlNRFrequencyInfo = -1; /* NRFrequencyInfo */ +static int hf_xnap_ulNRTransmissonBandwidth = -1; /* NRTransmissionBandwidth */ +static int hf_xnap_dlNRTransmissonBandwidth = -1; /* NRTransmissionBandwidth */ +static int hf_xnap_nrFrequencyInfo = -1; /* NRFrequencyInfo */ +static int hf_xnap_nrTransmissonBandwidth = -1; /* NRTransmissionBandwidth */ +static int hf_xnap_PDUSessionResourcesAdmitted_List_item = -1; /* ProtocolIE_Single_Container */ +static int hf_xnap_pduSessionId = -1; /* PDUSession_ID */ +static int hf_xnap_pduSessionResourceAdmittedInfo = -1; /* PDUSessionResourceAdmittedInfo */ +static int hf_xnap_qosFlowsAdmitted_List = -1; /* QoSFlowsAdmitted_List */ +static int hf_xnap_qosFlowsNotAdmitted_List = -1; /* QoSFlowsNotAdmitted_List */ +static int hf_xnap_dataForwardingInfoFromTarget = -1; /* DataForwardingInfoFromTargetNGRANnode */ +static int hf_xnap_PDUSessionResourcesNotAdmitted_List_item = -1; /* ProtocolIE_Single_Container */ +static int hf_xnap_cause = -1; /* Cause */ +static int hf_xnap_PDUSessionResourcesToBeSetup_List_item = -1; /* ProtocolIE_Single_Container */ +static int hf_xnap_s_NSSAI = -1; /* S_NSSAI */ +static int hf_xnap_pduSessionAMBR = -1; /* OCTET_STRING */ +static int hf_xnap_uL_NG_U_TNLatUPF = -1; /* UPTransportLayerInformation */ +static int hf_xnap_securityIndication = -1; /* SecurityIndication */ +static int hf_xnap_pduSessionType = -1; /* PDUSessionType */ +static int hf_xnap_qosFlowsToBeSetup_List = -1; /* QoSFlowsToBeSetup_List */ +static int hf_xnap_sourceDRBtoQoSFlowMapping = -1; /* DRBToQoSFlowMapping_List */ +static int hf_xnap_non_dynamic = -1; /* NonDynamic5QIDescriptor */ +static int hf_xnap_dynamic = -1; /* Dynamic5QIDescriptor */ +static int hf_xnap_qos_characteristics = -1; /* QoSCharacteristics */ +static int hf_xnap_allocationAndRetentionPrio = -1; /* AllocationandRetentionPriority */ +static int hf_xnap_gBRQoSFlowInfo = -1; /* GBRQoSFlowInfo */ +static int hf_xnap_relectiveQoS = -1; /* ReflectiveQoSAttribute */ +static int hf_xnap_additionalQoSflowInfo = -1; /* T_additionalQoSflowInfo */ +static int hf_xnap_pPI = -1; /* INTEGER_1_8_ */ +static int hf_xnap_QoSFlows_List_item = -1; /* ProtocolIE_Single_Container */ +static int hf_xnap_qfi = -1; /* QoSFlowIndicator */ +static int hf_xnap_QoSFlowsAdmitted_List_item = -1; /* ProtocolIE_Single_Container */ +static int hf_xnap_dataForwardingAccepted = -1; /* DataForwardingAccepted */ +static int hf_xnap_QoSFlowsNotAdmitted_List_item = -1; /* ProtocolIE_Single_Container */ +static int hf_xnap_QoSFlowsToBeSetup_List_item = -1; /* ProtocolIE_Single_Container */ +static int hf_xnap_dlDataForwarding = -1; /* DLForwarding */ +static int hf_xnap_qosFlowLevelQoSParameters = -1; /* QoSFlowLevelQoSParameters */ +static int hf_xnap_e_RAB_ID = -1; /* E_RAB_ID */ +static int hf_xnap_rANAC = -1; /* RANAC */ +static int hf_xnap_RANAreaID_List_item = -1; /* RANAreaID */ +static int hf_xnap_rANPagingAreaChoice = -1; /* RANPagingAreaChoice */ +static int hf_xnap_cell_List = -1; /* NG_RAN_Cell_Identity_ListinRANPagingArea */ +static int hf_xnap_rANAreaID_List = -1; /* RANAreaID_List */ +static int hf_xnap_pagingAttemptCount = -1; /* INTEGER_1_16_ */ +static int hf_xnap_intendedNumberOfPagingAttempts = -1; /* INTEGER_1_16_ */ +static int hf_xnap_nextPagingAreaScope = -1; /* T_nextPagingAreaScope */ +static int hf_xnap_fullReset = -1; /* ResetRequestTypeInfo_Full */ +static int hf_xnap_partialReset = -1; /* ResetRequestTypeInfo_Partial */ +static int hf_xnap_ue_contexts_ToBeReleasedList = -1; /* ResetRequestPartialReleaseList */ +static int hf_xnap_ResetRequestPartialReleaseList_item = -1; /* ProtocolIE_Single_Container */ +static int hf_xnap_ng_ran_node1UEXnAPID = -1; /* NG_RANnodeUEXnAPID */ +static int hf_xnap_ng_ran_node2UEXnAPID = -1; /* NG_RANnodeUEXnAPID */ +static int hf_xnap_fullReset_01 = -1; /* ResetResponseTypeInfo_Full */ +static int hf_xnap_partialReset_01 = -1; /* ResetResponseTypeInfo_Partial */ +static int hf_xnap_ue_contexts_AdmittedToBeReleasedList = -1; /* ResetResponsePartialReleaseList */ +static int hf_xnap_ResetResponsePartialReleaseList_item = -1; /* ProtocolIE_Single_Container */ +static int hf_xnap_integrityProtectionIndication = -1; /* T_integrityProtectionIndication */ +static int hf_xnap_confidentialityProtectionIndication = -1; /* T_confidentialityProtectionIndication */ +static int hf_xnap_e_utra_pci = -1; /* E_UTRAPCI */ +static int hf_xnap_broadcastPLMNs = -1; /* SEQUENCE_SIZE_1_maxnoofBPLMNs_OF_ServedCellInformation_E_UTRA_perBPLMN */ +static int hf_xnap_broadcastPLMNs_item = -1; /* ServedCellInformation_E_UTRA_perBPLMN */ +static int hf_xnap_numberofAntennaPorts = -1; /* NumberOfAntennaPorts_E_UTRA */ +static int hf_xnap_prach_configuration = -1; /* E_UTRAPRACHConfiguration */ +static int hf_xnap_mBSFNsubframeInfo = -1; /* MBSFNSubframeInfo_E_UTRA */ +static int hf_xnap_multibandInfo = -1; /* E_UTRAMultibandInfoList */ +static int hf_xnap_freqBandIndicatorPriority = -1; /* T_freqBandIndicatorPriority */ +static int hf_xnap_bandwidthReducedSI = -1; /* T_bandwidthReducedSI */ +static int hf_xnap_e_utra_mode_info = -1; /* ServedCellInformation_E_UTRA_perBPLMN_ModeInfo */ +static int hf_xnap_fdd_01 = -1; /* ServedCellInformation_E_UTRA_perBPLMN_FDDInfo */ +static int hf_xnap_tdd_01 = -1; /* ServedCellInformation_E_UTRA_perBPLMN_TDDInfo */ +static int hf_xnap_ul_earfcn = -1; /* E_UTRAARFCN */ +static int hf_xnap_dl_earfcn = -1; /* E_UTRAARFCN */ +static int hf_xnap_ul_e_utraTxBW = -1; /* E_UTRATransmissionBandwidth */ +static int hf_xnap_dl_e_utraTxBW = -1; /* E_UTRATransmissionBandwidth */ +static int hf_xnap_e_utraTxBW = -1; /* E_UTRATransmissionBandwidth */ +static int hf_xnap_subframeAssignmnet = -1; /* T_subframeAssignmnet */ +static int hf_xnap_specialSubframeInfo = -1; /* SpecialSubframeInfo_E_UTRA */ +static int hf_xnap_ServedCells_E_UTRA_item = -1; /* ServedCells_E_UTRA_Item */ +static int hf_xnap_served_cell_info_E_UTRA = -1; /* ServedCellInformation_E_UTRA */ +static int hf_xnap_neighbour_info_NR = -1; /* NeighbourInformation_NR */ +static int hf_xnap_neighbour_info_E_UTRA = -1; /* NeighbourInformation_E_UTRA */ +static int hf_xnap_served_Cells_ToAdd_E_UTRA = -1; /* ServedCells_E_UTRA */ +static int hf_xnap_served_Cells_ToModify_E_UTRA = -1; /* ServedCells_ToModify_E_UTRA */ +static int hf_xnap_served_Cells_ToDelete_E_UTRA = -1; /* SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_E_UTRA_CGI */ +static int hf_xnap_served_Cells_ToDelete_E_UTRA_item = -1; /* E_UTRA_CGI */ +static int hf_xnap_ServedCells_ToModify_E_UTRA_item = -1; /* ServedCells_ToModify_E_UTRA_Item */ +static int hf_xnap_old_ECGI = -1; /* E_UTRA_CGI */ +static int hf_xnap_nrPCI = -1; /* NRPCI */ +static int hf_xnap_cellID = -1; /* NR_CGI */ +static int hf_xnap_ranac = -1; /* RANAC */ +static int hf_xnap_broadcastPLMN = -1; /* BroadcastPLMNs */ +static int hf_xnap_nrModeInfo = -1; /* NRModeInfo */ +static int hf_xnap_measurementTimingConfiguration = -1; /* T_measurementTimingConfiguration */ +static int hf_xnap_ServedCells_NR_item = -1; /* ServedCells_NR_Item */ +static int hf_xnap_served_cell_info_NR = -1; /* ServedCellInformation_NR */ +static int hf_xnap_ServedCells_ToModify_NR_item = -1; /* ServedCells_ToModify_NR_Item */ +static int hf_xnap_old_NR_CGI = -1; /* NR_CGI */ +static int hf_xnap_served_Cells_ToAdd_NR = -1; /* ServedCells_NR */ +static int hf_xnap_served_Cells_ToModify_NR = -1; /* ServedCells_ToModify_NR */ +static int hf_xnap_served_Cells_ToDelete_NR = -1; /* SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_NR_CGI */ +static int hf_xnap_served_Cells_ToDelete_NR_item = -1; /* NR_CGI */ +static int hf_xnap_SliceSupport_List_item = -1; /* S_NSSAI */ +static int hf_xnap_sst = -1; /* OCTET_STRING_SIZE_1 */ +static int hf_xnap_sd = -1; /* OCTET_STRING_SIZE_3 */ +static int hf_xnap_specialSubframePattern = -1; /* SpecialSubframePatterns_E_UTRA */ +static int hf_xnap_cyclicPrefixDL = -1; /* CyclicPrefix_E_UTRA_DL */ +static int hf_xnap_cyclicPrefixUL = -1; /* CyclicPrefix_E_UTRA_UL */ +static int hf_xnap_sulFrequencyInfo = -1; /* NRARFCN */ +static int hf_xnap_sulTransmissionBandwidth = -1; /* NRTransmissionBandwidth */ +static int hf_xnap_SupportedSULBandList_item = -1; /* SupportedSULBandItem */ +static int hf_xnap_sulBandItem = -1; /* SUL_FrequencyBand */ +static int hf_xnap_TAISupport_List_item = -1; /* ProtocolIE_Single_Container */ +static int hf_xnap_broadcastPLMNs_01 = -1; /* SEQUENCE_SIZE_1_maxnoofsupportedPLMNs_OF_BroadcastPLMNinTAISupport_Item */ +static int hf_xnap_broadcastPLMNs_item_01 = -1; /* BroadcastPLMNinTAISupport_Item */ +static int hf_xnap_nr_02 = -1; /* NR_CGI */ +static int hf_xnap_e_utra_02 = -1; /* E_UTRA_CGI */ +static int hf_xnap_ng_ran_TraceID = -1; /* T_ng_ran_TraceID */ +static int hf_xnap_interfaces_to_trace = -1; /* T_interfaces_to_trace */ +static int hf_xnap_trace_depth = -1; /* Trace_Depth */ +static int hf_xnap_trace_coll_address = -1; /* TransportLayerAddress */ +static int hf_xnap_ie_Extension = -1; /* ProtocolExtensionContainer */ +static int hf_xnap_dl_UE_AMBR = -1; /* BitRate */ +static int hf_xnap_ul_UE_AMBR = -1; /* BitRate */ +static int hf_xnap_rRCResume = -1; /* UEContextIDforRRCResume */ +static int hf_xnap_rRRCReestablishment = -1; /* UEContextIDforRRCReestablishment */ +static int hf_xnap_i_rnti = -1; /* I_RNTI */ +static int hf_xnap_c_rnti = -1; /* C_RNTI */ +static int hf_xnap_failureCellPCI = -1; /* NG_RAN_CellPCI */ +static int hf_xnap_ng_c_UE_signalling_ref = -1; /* AMF_UE_NGAP_ID */ +static int hf_xnap_signalling_TNL_at_source = -1; /* CPTransportLayerInformation */ +static int hf_xnap_ueSecurityCapabilities = -1; /* UESecurityCapabilities */ +static int hf_xnap_securityInformation = -1; /* AS_SecurityInformation */ +static int hf_xnap_ue_AMBR = -1; /* UEAggregateMaximumBitRate */ +static int hf_xnap_pduSessionResourcesToBeSet_List = -1; /* PDUSessionResourcesToBeSetup_List */ +static int hf_xnap_rrc_Context = -1; /* T_rrc_Context */ +static int hf_xnap_mobilityRestrictionList = -1; /* MobilityRestrictionList */ +static int hf_xnap_indexToRatFrequencySelectionPriority = -1; /* RFSP_Index */ +static int hf_xnap_i_RNTI = -1; /* I_RNTI */ +static int hf_xnap_nr_EncyptionAlgorithms = -1; /* T_nr_EncyptionAlgorithms */ +static int hf_xnap_nr_IntegrityProtectionAlgorithms = -1; /* T_nr_IntegrityProtectionAlgorithms */ +static int hf_xnap_e_utra_EncyptionAlgorithms = -1; /* T_e_utra_EncyptionAlgorithms */ +static int hf_xnap_e_utra_IntegrityProtectionAlgorithms = -1; /* T_e_utra_IntegrityProtectionAlgorithms */ +static int hf_xnap_gtpTunnel = -1; /* GTPtunnelTransportLayerInformation */ +static int hf_xnap_protocolIEs = -1; /* ProtocolIE_Container */ +static int hf_xnap_ng_c_UE_reference = -1; /* AMF_UE_NGAP_ID */ +static int hf_xnap_cp_TNL_info_source = -1; /* CPTransportLayerInformation */ +static int hf_xnap_pduSessionResourcesToBeSetup_List = -1; /* PDUSessionResourcesToBeSetup_List */ +static int hf_xnap_rrc_Context_01 = -1; /* T_rrc_Context_01 */ +static int hf_xnap_locationReportingInformation = -1; /* LocationReportingInformation */ +static int hf_xnap_hlr = -1; /* MobilityRestrictionList */ +static int hf_xnap_gNB_01 = -1; /* ProtocolIE_Container */ +static int hf_xnap_ng_eNB_01 = -1; /* ProtocolIE_Container */ +static int hf_xnap_ng_eNB_02 = -1; /* RespondingNodeTypeConfigUpdateAck_ng_eNB */ +static int hf_xnap_gNB_02 = -1; /* RespondingNodeTypeConfigUpdateAck_gNB */ +static int hf_xnap_served_NR_Cells = -1; /* ServedCells_NR */ +static int hf_xnap_nr_cells = -1; /* SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_NR_CGI */ +static int hf_xnap_nr_cells_item = -1; /* NR_CGI */ +static int hf_xnap_e_utra_cells = -1; /* SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_E_UTRA_CGI */ +static int hf_xnap_e_utra_cells_item = -1; /* E_UTRA_CGI */ +static int hf_xnap_privateIEs = -1; /* PrivateIE_Container */ +static int hf_xnap_initiatingMessage = -1; /* InitiatingMessage */ +static int hf_xnap_successfulOutcome = -1; /* SuccessfulOutcome */ +static int hf_xnap_unsuccessfulOutcome = -1; /* UnsuccessfulOutcome */ +static int hf_xnap_initiatingMessage_value = -1; /* InitiatingMessage_value */ +static int hf_xnap_successfulOutcome_value = -1; /* SuccessfulOutcome_value */ +static int hf_xnap_value = -1; /* UnsuccessfulOutcome_value */ +/* named bits */ +static int hf_xnap_RAT_RestrictionInformation_e_UTRA = -1; +static int hf_xnap_RAT_RestrictionInformation_nR = -1; +static int hf_xnap_T_interfaces_to_trace_ng_c = -1; +static int hf_xnap_T_interfaces_to_trace_x_nc = -1; +static int hf_xnap_T_interfaces_to_trace_uu = -1; +static int hf_xnap_T_interfaces_to_trace_f1_c = -1; +static int hf_xnap_T_interfaces_to_trace_e1 = -1; +static int hf_xnap_T_nr_EncyptionAlgorithms_nea1_128 = -1; +static int hf_xnap_T_nr_EncyptionAlgorithms_nea2_128 = -1; +static int hf_xnap_T_nr_EncyptionAlgorithms_nea3_128 = -1; +static int hf_xnap_T_nr_IntegrityProtectionAlgorithms_nia1_128 = -1; +static int hf_xnap_T_nr_IntegrityProtectionAlgorithms_nia2_128 = -1; +static int hf_xnap_T_nr_IntegrityProtectionAlgorithms_nia3_128 = -1; +static int hf_xnap_T_e_utra_EncyptionAlgorithms_eea1_128 = -1; +static int hf_xnap_T_e_utra_EncyptionAlgorithms_eea2_128 = -1; +static int hf_xnap_T_e_utra_EncyptionAlgorithms_eea3_128 = -1; +static int hf_xnap_T_e_utra_IntegrityProtectionAlgorithms_eia1_128 = -1; +static int hf_xnap_T_e_utra_IntegrityProtectionAlgorithms_eia2_128 = -1; +static int hf_xnap_T_e_utra_IntegrityProtectionAlgorithms_eia3_128 = -1; + +/*--- End of included file: packet-xnap-hf.c ---*/ +#line 51 "./asn1/xnap/packet-xnap-template.c" + +/* Initialize the subtree pointers */ +static gint ett_xnap = -1; +static gint ett_xnap_RRC_Context = -1; +static gint ett_nxap_container = -1; +static gint ett_xnap_PLMN_Identity = -1; +static gint ett_xnap_measurementTimingConfiguration = -1; +static gint ett_xnap_TransportLayerAddress = -1; +static gint ett_xnap_nr_EncyptionAlgorithms = -1; +static gint ett_xnap_nr_IntegrityProtectionAlgorithms = -1; +static gint ett_xnap_e_utra_EncyptionAlgorithms = -1; +static gint ett_xnap_e_utra_IntegrityProtectionAlgorithms = -1; +static gint ett_xnap_ng_ran_TraceID = -1; +static gint ett_xnap_interfaces_to_trace = -1; + +/*--- Included file: packet-xnap-ett.c ---*/ +#line 1 "./asn1/xnap/packet-xnap-ett.c" +static gint ett_xnap_PrivateIE_ID = -1; +static gint ett_xnap_ProtocolIE_Container = -1; +static gint ett_xnap_ProtocolIE_Field = -1; +static gint ett_xnap_ProtocolExtensionContainer = -1; +static gint ett_xnap_ProtocolExtensionField = -1; +static gint ett_xnap_PrivateIE_Container = -1; +static gint ett_xnap_PrivateIE_Field = -1; +static gint ett_xnap_AllocationandRetentionPriority = -1; +static gint ett_xnap_AreaOfInterest = -1; +static gint ett_xnap_AreaOfInterest_Item = -1; +static gint ett_xnap_AS_SecurityInformation = -1; +static gint ett_xnap_AssistanceDataForRANPaging = -1; +static gint ett_xnap_BroadcastPLMNs = -1; +static gint ett_xnap_BroadcastPLMNinTAISupport_Item = -1; +static gint ett_xnap_Cause = -1; +static gint ett_xnap_CellAssistanceInfo_NR = -1; +static gint ett_xnap_SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_NR_CGI = -1; +static gint ett_xnap_COUNT_PDCP_SN12 = -1; +static gint ett_xnap_COUNT_PDCP_SN18 = -1; +static gint ett_xnap_CPTransportLayerInformation = -1; +static gint ett_xnap_CriticalityDiagnostics = -1; +static gint ett_xnap_CriticalityDiagnostics_IE_List = -1; +static gint ett_xnap_CriticalityDiagnostics_IE_List_item = -1; +static gint ett_xnap_DataforwardingInfoperPDUSession = -1; +static gint ett_xnap_DataforwardingInfoperPDUSession_Item = -1; +static gint ett_xnap_DataForwardingInfoFromTargetNGRANnode = -1; +static gint ett_xnap_DataForwardingResponseDRBItemList = -1; +static gint ett_xnap_DataForwardingResponseDRBItem = -1; +static gint ett_xnap_DRBsSubjectToStatusTransfer_List = -1; +static gint ett_xnap_DRBsSubjectToStatusTransfer_Item = -1; +static gint ett_xnap_DRBBStatusTransferChoice = -1; +static gint ett_xnap_DRBBStatusTransfer12bitsSN = -1; +static gint ett_xnap_DRBBStatusTransfer18bitsSN = -1; +static gint ett_xnap_DRBToQoSFlowMapping_List = -1; +static gint ett_xnap_DRBToQoSFlowMapping_Item = -1; +static gint ett_xnap_Dynamic5QIDescriptor = -1; +static gint ett_xnap_E_UTRA_CGI = -1; +static gint ett_xnap_E_UTRAMultibandInfoList = -1; +static gint ett_xnap_E_UTRAPRACHConfiguration = -1; +static gint ett_xnap_GBRQoSFlowInfo = -1; +static gint ett_xnap_GlobalgNB_ID = -1; +static gint ett_xnap_GNB_ID_Choice = -1; +static gint ett_xnap_GlobalngeNB_ID = -1; +static gint ett_xnap_ENB_ID_Choice = -1; +static gint ett_xnap_GlobalNG_RANNode_ID = -1; +static gint ett_xnap_GTPtunnelTransportLayerInformation = -1; +static gint ett_xnap_GUAMI = -1; +static gint ett_xnap_ListOfCells = -1; +static gint ett_xnap_CellsinAoI_Item = -1; +static gint ett_xnap_ListOfTAIsinAoI = -1; +static gint ett_xnap_TAIsinAoI_Item = -1; +static gint ett_xnap_LocationReportingInformation = -1; +static gint ett_xnap_MBSFNSubframeAllocation_E_UTRA = -1; +static gint ett_xnap_MBSFNSubframeInfo_E_UTRA = -1; +static gint ett_xnap_MBSFNSubframeInfo_E_UTRA_Item = -1; +static gint ett_xnap_MobilityRestrictionList = -1; +static gint ett_xnap_SEQUENCE_SIZE_1_maxnoofEPLMNs_OF_PLMN_Identity = -1; +static gint ett_xnap_RAT_RestrictionsList = -1; +static gint ett_xnap_RAT_RestrictionsItem = -1; +static gint ett_xnap_RAT_RestrictionInformation = -1; +static gint ett_xnap_ForbiddenAreaList = -1; +static gint ett_xnap_ForbiddenAreaItem = -1; +static gint ett_xnap_SEQUENCE_SIZE_1_maxnoofForbiddenTACs_OF_TAC = -1; +static gint ett_xnap_ServiceAreaList = -1; +static gint ett_xnap_ServiceAreaItem = -1; +static gint ett_xnap_SEQUENCE_SIZE_1_maxnoofAllowedAreas_OF_TAC = -1; +static gint ett_xnap_NeighbourInformation_E_UTRA = -1; +static gint ett_xnap_NeighbourInformation_E_UTRA_Item = -1; +static gint ett_xnap_NeighbourInformation_NR = -1; +static gint ett_xnap_NeighbourInformation_NR_Item = -1; +static gint ett_xnap_NeighbourInformation_NR_ModeInfo = -1; +static gint ett_xnap_NeighbourInformation_NR_ModeFDDInfo = -1; +static gint ett_xnap_NeighbourInformation_NR_ModeTDDInfo = -1; +static gint ett_xnap_NG_RAN_Cell_Identity = -1; +static gint ett_xnap_NG_RAN_CellPCI = -1; +static gint ett_xnap_NonDynamic5QIDescriptor = -1; +static gint ett_xnap_NG_RAN_Cell_Identity_ListinRANPagingArea = -1; +static gint ett_xnap_NR_CGI = -1; +static gint ett_xnap_NRFrequencyBand_List = -1; +static gint ett_xnap_NRFrequencyBandItem = -1; +static gint ett_xnap_NRFrequencyInfo = -1; +static gint ett_xnap_NRModeInfo = -1; +static gint ett_xnap_NRModeInfoFDD = -1; +static gint ett_xnap_NRModeInfoTDD = -1; +static gint ett_xnap_PDUSessionResourcesAdmitted_List = -1; +static gint ett_xnap_PDUSessionResourcesAdmitted_Item = -1; +static gint ett_xnap_PDUSessionResourceAdmittedInfo = -1; +static gint ett_xnap_PDUSessionResourcesNotAdmitted_List = -1; +static gint ett_xnap_PDUSessionResourcesNotAdmitted_Item = -1; +static gint ett_xnap_PDUSessionResourcesToBeSetup_List = -1; +static gint ett_xnap_PDUSessionResourcesToBeSetup_Item = -1; +static gint ett_xnap_QoSCharacteristics = -1; +static gint ett_xnap_QoSFlowLevelQoSParameters = -1; +static gint ett_xnap_QoSFlows_List = -1; +static gint ett_xnap_QoSFlow_Item = -1; +static gint ett_xnap_QoSFlowsAdmitted_List = -1; +static gint ett_xnap_QoSFlowAdmitted_Item = -1; +static gint ett_xnap_QoSFlowsNotAdmitted_List = -1; +static gint ett_xnap_QoSFlowNotAdmitted_Item = -1; +static gint ett_xnap_QoSFlowsToBeSetup_List = -1; +static gint ett_xnap_QoSFlowsToBeSetup_Item = -1; +static gint ett_xnap_RANAreaID = -1; +static gint ett_xnap_RANAreaID_List = -1; +static gint ett_xnap_RANPagingArea = -1; +static gint ett_xnap_RANPagingAreaChoice = -1; +static gint ett_xnap_RANPagingAttemptInfo = -1; +static gint ett_xnap_ResetRequestTypeInfo = -1; +static gint ett_xnap_ResetRequestTypeInfo_Full = -1; +static gint ett_xnap_ResetRequestTypeInfo_Partial = -1; +static gint ett_xnap_ResetRequestPartialReleaseList = -1; +static gint ett_xnap_ResetRequestPartialReleaseItem = -1; +static gint ett_xnap_ResetResponseTypeInfo = -1; +static gint ett_xnap_ResetResponseTypeInfo_Full = -1; +static gint ett_xnap_ResetResponseTypeInfo_Partial = -1; +static gint ett_xnap_ResetResponsePartialReleaseList = -1; +static gint ett_xnap_ResetResponsePartialReleaseItem = -1; +static gint ett_xnap_SecurityIndication = -1; +static gint ett_xnap_ServedCellInformation_E_UTRA = -1; +static gint ett_xnap_SEQUENCE_SIZE_1_maxnoofBPLMNs_OF_ServedCellInformation_E_UTRA_perBPLMN = -1; +static gint ett_xnap_ServedCellInformation_E_UTRA_perBPLMN = -1; +static gint ett_xnap_ServedCellInformation_E_UTRA_perBPLMN_ModeInfo = -1; +static gint ett_xnap_ServedCellInformation_E_UTRA_perBPLMN_FDDInfo = -1; +static gint ett_xnap_ServedCellInformation_E_UTRA_perBPLMN_TDDInfo = -1; +static gint ett_xnap_ServedCells_E_UTRA = -1; +static gint ett_xnap_ServedCells_E_UTRA_Item = -1; +static gint ett_xnap_ServedCellsToUpdate_E_UTRA = -1; +static gint ett_xnap_SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_E_UTRA_CGI = -1; +static gint ett_xnap_ServedCells_ToModify_E_UTRA = -1; +static gint ett_xnap_ServedCells_ToModify_E_UTRA_Item = -1; +static gint ett_xnap_ServedCellInformation_NR = -1; +static gint ett_xnap_ServedCells_NR = -1; +static gint ett_xnap_ServedCells_NR_Item = -1; +static gint ett_xnap_ServedCells_ToModify_NR = -1; +static gint ett_xnap_ServedCells_ToModify_NR_Item = -1; +static gint ett_xnap_ServedCellsToUpdate_NR = -1; +static gint ett_xnap_SliceSupport_List = -1; +static gint ett_xnap_S_NSSAI = -1; +static gint ett_xnap_SpecialSubframeInfo_E_UTRA = -1; +static gint ett_xnap_SUL_Information = -1; +static gint ett_xnap_SupportedSULBandList = -1; +static gint ett_xnap_SupportedSULBandItem = -1; +static gint ett_xnap_TAISupport_List = -1; +static gint ett_xnap_TAISupport_Item = -1; +static gint ett_xnap_SEQUENCE_SIZE_1_maxnoofsupportedPLMNs_OF_BroadcastPLMNinTAISupport_Item = -1; +static gint ett_xnap_Target_CGI = -1; +static gint ett_xnap_TraceActivation = -1; +static gint ett_xnap_T_interfaces_to_trace = -1; +static gint ett_xnap_UEAggregateMaximumBitRate = -1; +static gint ett_xnap_UEContextID = -1; +static gint ett_xnap_UEContextIDforRRCResume = -1; +static gint ett_xnap_UEContextIDforRRCReestablishment = -1; +static gint ett_xnap_UEContextInfoRetrUECtxtResp = -1; +static gint ett_xnap_UERANPagingIdentity = -1; +static gint ett_xnap_UESecurityCapabilities = -1; +static gint ett_xnap_T_nr_EncyptionAlgorithms = -1; +static gint ett_xnap_T_nr_IntegrityProtectionAlgorithms = -1; +static gint ett_xnap_T_e_utra_EncyptionAlgorithms = -1; +static gint ett_xnap_T_e_utra_IntegrityProtectionAlgorithms = -1; +static gint ett_xnap_UPTransportLayerInformation = -1; +static gint ett_xnap_HandoverRequest = -1; +static gint ett_xnap_UEContextInfoHORequest = -1; +static gint ett_xnap_HandoverRequestAcknowledge = -1; +static gint ett_xnap_HandoverPreparationFailure = -1; +static gint ett_xnap_SNStatusTransfer = -1; +static gint ett_xnap_UEContextRelease = -1; +static gint ett_xnap_HandoverCancel = -1; +static gint ett_xnap_RANPaging = -1; +static gint ett_xnap_RetrieveUEContextRequest = -1; +static gint ett_xnap_RetrieveUEContextResponse = -1; +static gint ett_xnap_RetrieveUEContextFailure = -1; +static gint ett_xnap_DataForwardingAddressIndication = -1; +static gint ett_xnap_SNodeAdditionRequest = -1; +static gint ett_xnap_SNodeAdditionRequestAcknowledge = -1; +static gint ett_xnap_SNodeAdditionRequestReject = -1; +static gint ett_xnap_SNodeReconfigurationComplete = -1; +static gint ett_xnap_SNodeModificationRequest = -1; +static gint ett_xnap_SNodeModificationRequestAcknowledge = -1; +static gint ett_xnap_SNodeModificationRequestReject = -1; +static gint ett_xnap_SNodeModificationRequired = -1; +static gint ett_xnap_SNodeModificationConfirm = -1; +static gint ett_xnap_SNodeModificationRefuse = -1; +static gint ett_xnap_SNodeReleaseRequest = -1; +static gint ett_xnap_SNodeReleaseRequestAcknowledge = -1; +static gint ett_xnap_SNodeReleaseReject = -1; +static gint ett_xnap_SNodeReleaseRequired = -1; +static gint ett_xnap_SNodeReleaseConfirm = -1; +static gint ett_xnap_SNodeCounterCheckRequest = -1; +static gint ett_xnap_SNodeChangeRequired = -1; +static gint ett_xnap_SNodeChangeConfirm = -1; +static gint ett_xnap_SNodeChangeRefuse = -1; +static gint ett_xnap_RRCTransfer = -1; +static gint ett_xnap_XnSetupRequest = -1; +static gint ett_xnap_XnSetupResponse = -1; +static gint ett_xnap_XnSetupFailure = -1; +static gint ett_xnap_NGRANNodeConfigurationUpdate = -1; +static gint ett_xnap_ConfigurationUpdateInitiatingNodeChoice = -1; +static gint ett_xnap_NGRANNodeConfigurationUpdateAcknowledge = -1; +static gint ett_xnap_RespondingNodeTypeConfigUpdateAck = -1; +static gint ett_xnap_RespondingNodeTypeConfigUpdateAck_ng_eNB = -1; +static gint ett_xnap_RespondingNodeTypeConfigUpdateAck_gNB = -1; +static gint ett_xnap_NGRANNodeConfigurationUpdateFailure = -1; +static gint ett_xnap_XnRemovalRequest = -1; +static gint ett_xnap_XnRemovalResponse = -1; +static gint ett_xnap_XnRemovalFailure = -1; +static gint ett_xnap_CellActivationRequest = -1; +static gint ett_xnap_ServedCellsToActivate = -1; +static gint ett_xnap_CellActivationResponse = -1; +static gint ett_xnap_ActivatedServedCells = -1; +static gint ett_xnap_CellActivationFailure = -1; +static gint ett_xnap_ResetRequest = -1; +static gint ett_xnap_ResetResponse = -1; +static gint ett_xnap_ErrorIndication = -1; +static gint ett_xnap_PrivateMessage = -1; +static gint ett_xnap_XnAP_PDU = -1; +static gint ett_xnap_InitiatingMessage = -1; +static gint ett_xnap_SuccessfulOutcome = -1; +static gint ett_xnap_UnsuccessfulOutcome = -1; + +/*--- End of included file: packet-xnap-ett.c ---*/ +#line 66 "./asn1/xnap/packet-xnap-template.c" + +/* Global variables */ +static guint xnap_sctp_port = SCTP_PORT_XnAP; + +/* Dissector tables */ +static dissector_table_t xnap_ies_dissector_table; +static dissector_table_t xnap_extension_dissector_table; +static dissector_table_t xnap_proc_imsg_dissector_table; +static dissector_table_t xnap_proc_sout_dissector_table; +static dissector_table_t xnap_proc_uout_dissector_table; + +void proto_register_xnap(void); +void proto_reg_handoff_xnap(void); +static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +static int dissect_XnAP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_); + +static dissector_handle_t xnap_handle; + +static void +xnap_PacketLossRate_fmt(gchar *s, guint32 v) +{ + g_snprintf(s, ITEM_LABEL_LENGTH, "%.1f %% (%u)", (float)v/10, v); +} + +typedef enum { + INITIATING_MESSAGE, + SUCCESSFUL_OUTCOME, + UNSUCCESSFUL_OUTCOME +} xnap_message_type; + +struct xnap_conv_info { + address addr_a; + GlobalNG_RANNode_ID_enum ranmode_id_a; + address addr_b; + GlobalNG_RANNode_ID_enum ranmode_id_b; +}; + +struct xnap_private_data { + struct xnap_conv_info *xnap_conv; + xnap_message_type message_type; + guint32 procedure_code; + guint32 protocol_ie_id; + guint32 triggering_message; +}; + +static struct xnap_private_data* +xnap_get_private_data(packet_info *pinfo) +{ + struct xnap_private_data *xnap_data = (struct xnap_private_data*)p_get_proto_data(pinfo->pool, pinfo, proto_xnap, 0); + if (!xnap_data) { + xnap_data = wmem_new0(pinfo->pool, struct xnap_private_data); + p_add_proto_data(pinfo->pool, pinfo, proto_xnap, 0, xnap_data); + } + return xnap_data; +} + + +/*--- Included file: packet-xnap-fn.c ---*/ +#line 1 "./asn1/xnap/packet-xnap-fn.c" + +static const value_string xnap_Criticality_vals[] = { + { 0, "reject" }, + { 1, "ignore" }, + { 2, "notify" }, + { 0, NULL } +}; + + +static int +dissect_xnap_Criticality(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_xnap_INTEGER_0_maxPrivateIEs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxPrivateIEs, NULL, FALSE); + + return offset; +} + + + +static int +dissect_xnap_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL); + + return offset; +} + + +static const value_string xnap_PrivateIE_ID_vals[] = { + { 0, "local" }, + { 1, "global" }, + { 0, NULL } +}; + +static const per_choice_t PrivateIE_ID_choice[] = { + { 0, &hf_xnap_local , ASN1_NO_EXTENSIONS , dissect_xnap_INTEGER_0_maxPrivateIEs }, + { 1, &hf_xnap_global , ASN1_NO_EXTENSIONS , dissect_xnap_OBJECT_IDENTIFIER }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_PrivateIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_PrivateIE_ID, PrivateIE_ID_choice, + NULL); + + return offset; +} + + +static const value_string xnap_ProcedureCode_vals[] = { + { id_handoverPreparation, "id-handoverPreparation" }, + { id_sNStatusTransfer, "id-sNStatusTransfer" }, + { id_handoverCancel, "id-handoverCancel" }, + { id_retrieveUEContext, "id-retrieveUEContext" }, + { id_rANPaging, "id-rANPaging" }, + { id_dataForwardingAddressIndication, "id-dataForwardingAddressIndication" }, + { id_uEContextRelease, "id-uEContextRelease" }, + { id_sNGRANnodeAdditionPreparation, "id-sNGRANnodeAdditionPreparation" }, + { id_sNGRANnodeReconfigurationCompletion, "id-sNGRANnodeReconfigurationCompletion" }, + { id_mNGRANnodeinitiatedSNGRANnodeModificationPreparation, "id-mNGRANnodeinitiatedSNGRANnodeModificationPreparation" }, + { id_sNGRANnodeinitiatedSNGRANnodeModificationPreparation, "id-sNGRANnodeinitiatedSNGRANnodeModificationPreparation" }, + { id_mNGRANnodeinitiatedSNGRANnodeRelease, "id-mNGRANnodeinitiatedSNGRANnodeRelease" }, + { id_sNGRANnodeinitiatedSNGRANnodeRelease, "id-sNGRANnodeinitiatedSNGRANnodeRelease" }, + { id_sNGRANnodeCounterCheck, "id-sNGRANnodeCounterCheck" }, + { id_sNGRANnodeChange, "id-sNGRANnodeChange" }, + { id_rRCTransfer, "id-rRCTransfer" }, + { id_xnRemoval, "id-xnRemoval" }, + { id_xnSetup, "id-xnSetup" }, + { id_nGRANnodeConfigurationUpdate, "id-nGRANnodeConfigurationUpdate" }, + { id_cellActivation, "id-cellActivation" }, + { id_reset, "id-reset" }, + { id_errorIndication, "id-errorIndication" }, + { id_privateMessage, "id-privateMessage" }, + { 0, NULL } +}; + +static value_string_ext xnap_ProcedureCode_vals_ext = VALUE_STRING_EXT_INIT(xnap_ProcedureCode_vals); + + +static int +dissect_xnap_ProcedureCode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 75 "./asn1/xnap/xnap.cnf" + struct xnap_private_data *xnap_data = xnap_get_private_data(actx->pinfo); + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 255U, &xnap_data->procedure_code, FALSE); + + + + + return offset; +} + + +static const value_string xnap_ProtocolIE_ID_vals[] = { + { id_ActivatedServedCells, "id-ActivatedServedCells" }, + { id_ActivationIDforCellActivation, "id-ActivationIDforCellActivation" }, + { id_AMF_Pool_Information, "id-AMF-Pool-Information" }, + { id_AreaOfInterest_Item, "id-AreaOfInterest-Item" }, + { id_AssistanceDataForRANPaging, "id-AssistanceDataForRANPaging" }, + { id_Cause, "id-Cause" }, + { id_cellAssistanceInfo_NR, "id-cellAssistanceInfo-NR" }, + { id_ConfigurationUpdateInitiatingNodeChoice, "id-ConfigurationUpdateInitiatingNodeChoice" }, + { id_CriticalityDiagnostics, "id-CriticalityDiagnostics" }, + { id_dataforwardingInfoperPDUSession, "id-dataforwardingInfoperPDUSession" }, + { id_dataforwardingInfoperPDUSession_Item, "id-dataforwardingInfoperPDUSession-Item" }, + { id_DataForwardingResponseDRBItem, "id-DataForwardingResponseDRBItem" }, + { id_DRBsSubjectToStatusTransfer_Item, "id-DRBsSubjectToStatusTransfer-Item" }, + { id_DRBsSubjectToStatusTransfer_List, "id-DRBsSubjectToStatusTransfer-List" }, + { id_DRBToQoSFlowMapping_Item, "id-DRBToQoSFlowMapping-Item" }, + { id_GlobalNG_RAN_node_ID, "id-GlobalNG-RAN-node-ID" }, + { id_GUAMI, "id-GUAMI" }, + { id_List_of_served_cells_E_UTRA, "id-List-of-served-cells-E-UTRA" }, + { id_List_of_served_cells_NR, "id-List-of-served-cells-NR" }, + { id_LocationReportingInformation, "id-LocationReportingInformation" }, + { id_MAC_I, "id-MAC-I" }, + { id_MaskedIMEISV, "id-MaskedIMEISV" }, + { id_new_NG_RAN_Cell_Identity, "id-new-NG-RAN-Cell-Identity" }, + { id_newNG_RANnodeUEXnAPID, "id-newNG-RANnodeUEXnAPID" }, + { id_oldNG_RANnodeUEXnAPID, "id-oldNG-RANnodeUEXnAPID" }, + { id_PagingDRX, "id-PagingDRX" }, + { id_PDUSessionResourceAdmittedResponseTransferItem, "id-PDUSessionResourceAdmittedResponseTransferItem" }, + { id_PDUSessionResourcesAdmitted_Item, "id-PDUSessionResourcesAdmitted-Item" }, + { id_PDUSessionResourcesAdmitted_List, "id-PDUSessionResourcesAdmitted-List" }, + { id_PDUSessionResourcesNotAdmitted_Item, "id-PDUSessionResourcesNotAdmitted-Item" }, + { id_PDUSessionResourcesNotAdmitted_List, "id-PDUSessionResourcesNotAdmitted-List" }, + { id_PDUSessionResourcesToBeSetup_Item, "id-PDUSessionResourcesToBeSetup-Item" }, + { id_QoSFlowAdmitted_Item, "id-QoSFlowAdmitted-Item" }, + { id_QoSFlow_Item, "id-QoSFlow-Item" }, + { id_QoSFlowNotAdmitted_Item, "id-QoSFlowNotAdmitted-Item" }, + { id_QoSFlowsToBeSetup_Item, "id-QoSFlowsToBeSetup-Item" }, + { id_RANPagingArea, "id-RANPagingArea" }, + { id_RANPagingPriority, "id-RANPagingPriority" }, + { id_ResetRequestPartialReleaseItem, "id-ResetRequestPartialReleaseItem" }, + { id_ResetRequestTypeInfo, "id-ResetRequestTypeInfo" }, + { id_ResetResponsePartialReleaseItem, "id-ResetResponsePartialReleaseItem" }, + { id_ResetResponseTypeInfo, "id-ResetResponseTypeInfo" }, + { id_RespondingNodeTypeConfigUpdateAck, "id-RespondingNodeTypeConfigUpdateAck" }, + { id_ServedCellsToActivate, "id-ServedCellsToActivate" }, + { id_servedCellsToUpdate_E_UTRA, "id-servedCellsToUpdate-E-UTRA" }, + { id_ServedCellsToUpdateInitiatingNodeChoice, "id-ServedCellsToUpdateInitiatingNodeChoice" }, + { id_servedCellsToUpdate_NR, "id-servedCellsToUpdate-NR" }, + { id_sourceNG_RANnodeUEXnAPID, "id-sourceNG-RANnodeUEXnAPID" }, + { id_TAISupport_Item, "id-TAISupport-Item" }, + { id_TAISupport_list, "id-TAISupport-list" }, + { id_Target2SourceNG_RANnodeTranspContainer, "id-Target2SourceNG-RANnodeTranspContainer" }, + { id_targetCellGlobalID, "id-targetCellGlobalID" }, + { id_targetNG_RANnodeUEXnAPID, "id-targetNG-RANnodeUEXnAPID" }, + { id_TraceActivation, "id-TraceActivation" }, + { id_UEContextID, "id-UEContextID" }, + { id_UEContextInfoHORequest, "id-UEContextInfoHORequest" }, + { id_UEContextInfoRetrUECtxtResp, "id-UEContextInfoRetrUECtxtResp" }, + { id_UEIdentityIndexValue, "id-UEIdentityIndexValue" }, + { id_UERANPagingIdentity, "id-UERANPagingIdentity" }, + { id_XnRemovalThreshold, "id-XnRemovalThreshold" }, + { 0, NULL } +}; + +static value_string_ext xnap_ProtocolIE_ID_vals_ext = VALUE_STRING_EXT_INIT(xnap_ProtocolIE_ID_vals); + + +static int +dissect_xnap_ProtocolIE_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 62 "./asn1/xnap/xnap.cnf" + struct xnap_private_data *xnap_data = xnap_get_private_data(actx->pinfo); + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxProtocolIEs, &xnap_data->protocol_ie_id, FALSE); + + + +#line 65 "./asn1/xnap/xnap.cnf" + if (tree) { + proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(xnap_data->protocol_ie_id, &xnap_ProtocolIE_ID_vals_ext, "unknown (%d)")); + } + + return offset; +} + + +static const value_string xnap_TriggeringMessage_vals[] = { + { initiating_message, "initiating-message" }, + { successful_outcome, "successful-outcome" }, + { unsuccessful_outcome, "unsuccessful-outcome" }, + { 0, NULL } +}; + + +static int +dissect_xnap_TriggeringMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 79 "./asn1/xnap/xnap.cnf" + struct xnap_private_data *xnap_data = xnap_get_private_data(actx->pinfo); + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, &xnap_data->triggering_message, FALSE, 0, NULL); + + + + return offset; +} + + + +static int +dissect_xnap_ProtocolIE_Field_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_ProtocolIEFieldValue); + + return offset; +} + + +static const per_sequence_t ProtocolIE_Field_sequence[] = { + { &hf_xnap_id , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_ID }, + { &hf_xnap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_Criticality }, + { &hf_xnap_protocolIE_Field_value, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Field_value }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ProtocolIE_Field(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ProtocolIE_Field, ProtocolIE_Field_sequence); + + return offset; +} + + +static const per_sequence_t ProtocolIE_Container_sequence_of[1] = { + { &hf_xnap_ProtocolIE_Container_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Field }, +}; + +static int +dissect_xnap_ProtocolIE_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_ProtocolIE_Container, ProtocolIE_Container_sequence_of, + 0, maxProtocolIEs, FALSE); + + return offset; +} + + + +static int +dissect_xnap_ProtocolIE_Single_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_xnap_ProtocolIE_Field(tvb, offset, actx, tree, hf_index); + + return offset; +} + + + +static int +dissect_xnap_T_extensionValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_ProtocolExtensionFieldExtensionValue); + + return offset; +} + + +static const per_sequence_t ProtocolExtensionField_sequence[] = { + { &hf_xnap_extension_id , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_ID }, + { &hf_xnap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_Criticality }, + { &hf_xnap_extensionValue , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_T_extensionValue }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ProtocolExtensionField(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ProtocolExtensionField, ProtocolExtensionField_sequence); + + return offset; +} + + +static const per_sequence_t ProtocolExtensionContainer_sequence_of[1] = { + { &hf_xnap_ProtocolExtensionContainer_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolExtensionField }, +}; + +static int +dissect_xnap_ProtocolExtensionContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_ProtocolExtensionContainer, ProtocolExtensionContainer_sequence_of, + 1, maxProtocolExtensions, FALSE); + + return offset; +} + + + +static int +dissect_xnap_PrivateIE_Field_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_open_type(tvb, offset, actx, tree, hf_index, NULL); + + return offset; +} + + +static const per_sequence_t PrivateIE_Field_sequence[] = { + { &hf_xnap_private_id , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_PrivateIE_ID }, + { &hf_xnap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_Criticality }, + { &hf_xnap_privateIE_Field_value, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_PrivateIE_Field_value }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_PrivateIE_Field(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_PrivateIE_Field, PrivateIE_Field_sequence); + + return offset; +} + + +static const per_sequence_t PrivateIE_Container_sequence_of[1] = { + { &hf_xnap_PrivateIE_Container_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_PrivateIE_Field }, +}; + +static int +dissect_xnap_PrivateIE_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_PrivateIE_Container, PrivateIE_Container_sequence_of, + 1, maxPrivateIEs, FALSE); + + return offset; +} + + + +static int +dissect_xnap_ActivationIDforCellActivation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 255U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_xnap_INTEGER_0_15_(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 15U, NULL, TRUE); + + return offset; +} + + +static const value_string xnap_T_pre_emption_capability_vals[] = { + { 0, "shall-not-trigger-preemptdatDion" }, + { 1, "may-trigger-preemption" }, + { 0, NULL } +}; + + +static int +dissect_xnap_T_pre_emption_capability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const value_string xnap_T_pre_emption_vulnerability_vals[] = { + { 0, "not-preemptable" }, + { 1, "preemptable" }, + { 0, NULL } +}; + + +static int +dissect_xnap_T_pre_emption_vulnerability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t AllocationandRetentionPriority_sequence[] = { + { &hf_xnap_priorityLevel , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_INTEGER_0_15_ }, + { &hf_xnap_pre_emption_capability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_T_pre_emption_capability }, + { &hf_xnap_pre_emption_vulnerability, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_T_pre_emption_vulnerability }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_AllocationandRetentionPriority(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_AllocationandRetentionPriority, AllocationandRetentionPriority_sequence); + + return offset; +} + + + +static int +dissect_xnap_AMF_Pool_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, NULL); + + return offset; +} + + + +static int +dissect_xnap_AMF_UE_NGAP_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 4294967295U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t AreaOfInterest_sequence_of[1] = { + { &hf_xnap_AreaOfInterest_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Single_Container }, +}; + +static int +dissect_xnap_AreaOfInterest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_AreaOfInterest, AreaOfInterest_sequence_of, + 1, maxnoofAoIs, FALSE); + + return offset; +} + + + +static int +dissect_xnap_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 188 "./asn1/xnap/xnap.cnf" + tvbuff_t *parameter_tvb = NULL; + proto_tree *subtree; + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 3, 3, FALSE, ¶meter_tvb); + + if (!parameter_tvb) + return offset; + + subtree = proto_item_add_subtree(actx->created_item, ett_xnap_PLMN_Identity); + dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_NONE, FALSE); + + + + return offset; +} + + + +static int +dissect_xnap_TAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 200 "./asn1/xnap/xnap.cnf" + tvbuff_t *parameter_tvb = NULL; + offset = dissect_per_octet_string(tvb, offset, actx, tree, -1, + 3, 3, FALSE, ¶meter_tvb); + + if (parameter_tvb) { + actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 3, ENC_BIG_ENDIAN); + } + + + + return offset; +} + + +static const per_sequence_t TAIsinAoI_Item_sequence[] = { + { &hf_xnap_pLMN_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PLMN_Identity }, + { &hf_xnap_tAC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_TAC }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_TAIsinAoI_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_TAIsinAoI_Item, TAIsinAoI_Item_sequence); + + return offset; +} + + +static const per_sequence_t ListOfTAIsinAoI_sequence_of[1] = { + { &hf_xnap_ListOfTAIsinAoI_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_TAIsinAoI_Item }, +}; + +static int +dissect_xnap_ListOfTAIsinAoI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_ListOfTAIsinAoI, ListOfTAIsinAoI_sequence_of, + 1, maxnoofTAIsinAoI, FALSE); + + return offset; +} + + + +static int +dissect_xnap_NR_Cell_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 213 "./asn1/xnap/xnap.cnf" + tvbuff_t *cell_id_tvb = NULL; + offset = dissect_per_bit_string(tvb, offset, actx, tree, -1, + 36, 36, FALSE, &cell_id_tvb, NULL); + + if (cell_id_tvb) { + guint64 cell_id = tvb_get_bits64(cell_id_tvb, 0, 36, ENC_BIG_ENDIAN); + actx->created_item = proto_tree_add_uint64(tree, hf_index, cell_id_tvb, 0, 5, cell_id); + } + + + + return offset; +} + + + +static int +dissect_xnap_E_UTRA_Cell_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 227 "./asn1/xnap/xnap.cnf" + tvbuff_t *cell_id_tvb = NULL; + offset = dissect_per_bit_string(tvb, offset, actx, tree, -1, + 28, 28, FALSE, &cell_id_tvb, NULL); + + if (cell_id_tvb) { + guint32 cell_id = tvb_get_bits32(cell_id_tvb, 0, 28, ENC_BIG_ENDIAN); + actx->created_item = proto_tree_add_uint(tree, hf_index, cell_id_tvb, 0, 4, cell_id); + } + + + + return offset; +} + + +static const value_string xnap_NG_RAN_Cell_Identity_vals[] = { + { 0, "nr" }, + { 1, "e-utra" }, + { 2, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t NG_RAN_Cell_Identity_choice[] = { + { 0, &hf_xnap_nr , ASN1_EXTENSION_ROOT , dissect_xnap_NR_Cell_Identity }, + { 1, &hf_xnap_e_utra , ASN1_EXTENSION_ROOT , dissect_xnap_E_UTRA_Cell_Identity }, + { 2, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_NG_RAN_Cell_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_NG_RAN_Cell_Identity, NG_RAN_Cell_Identity_choice, + NULL); + + return offset; +} + + +static const per_sequence_t CellsinAoI_Item_sequence[] = { + { &hf_xnap_pLMN_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PLMN_Identity }, + { &hf_xnap_ng_ran_cell_id , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NG_RAN_Cell_Identity }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_CellsinAoI_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_CellsinAoI_Item, CellsinAoI_Item_sequence); + + return offset; +} + + +static const per_sequence_t ListOfCells_sequence_of[1] = { + { &hf_xnap_ListOfCells_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_CellsinAoI_Item }, +}; + +static int +dissect_xnap_ListOfCells(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_ListOfCells, ListOfCells_sequence_of, + 1, maxnoofCellsinAoI, FALSE); + + return offset; +} + + +static const per_sequence_t AreaOfInterest_Item_sequence[] = { + { &hf_xnap_listOfTAIs , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ListOfTAIsinAoI }, + { &hf_xnap_listOfCells , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ListOfCells }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_AreaOfInterest_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_AreaOfInterest_Item, AreaOfInterest_Item_sequence); + + return offset; +} + + + +static int +dissect_xnap_BIT_STRING_SIZE_256(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 256, 256, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_xnap_INTEGER_0_7(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 7U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t AS_SecurityInformation_sequence[] = { + { &hf_xnap_key_NG_RAN_Star, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_BIT_STRING_SIZE_256 }, + { &hf_xnap_ncc , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_INTEGER_0_7 }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_AS_SecurityInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_AS_SecurityInformation, AS_SecurityInformation_sequence); + + return offset; +} + + + +static int +dissect_xnap_INTEGER_1_16_(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 16U, NULL, TRUE); + + return offset; +} + + +static const value_string xnap_T_nextPagingAreaScope_vals[] = { + { 0, "same" }, + { 1, "changed" }, + { 0, NULL } +}; + + +static int +dissect_xnap_T_nextPagingAreaScope(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t RANPagingAttemptInfo_sequence[] = { + { &hf_xnap_pagingAttemptCount, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_INTEGER_1_16_ }, + { &hf_xnap_intendedNumberOfPagingAttempts, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_INTEGER_1_16_ }, + { &hf_xnap_nextPagingAreaScope, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_T_nextPagingAreaScope }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_RANPagingAttemptInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_RANPagingAttemptInfo, RANPagingAttemptInfo_sequence); + + return offset; +} + + +static const per_sequence_t AssistanceDataForRANPaging_sequence[] = { + { &hf_xnap_ran_paging_attempt_info, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_RANPagingAttemptInfo }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_AssistanceDataForRANPaging(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_AssistanceDataForRANPaging, AssistanceDataForRANPaging_sequence); + + return offset; +} + + + +static int +dissect_xnap_AveragingWindow(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 63U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_xnap_BitRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer_64b(tvb, offset, actx, tree, hf_index, + 0U, G_GUINT64_CONSTANT(4000000000000), NULL, TRUE); + + return offset; +} + + +static const per_sequence_t BroadcastPLMNs_sequence_of[1] = { + { &hf_xnap_BroadcastPLMNs_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_PLMN_Identity }, +}; + +static int +dissect_xnap_BroadcastPLMNs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_BroadcastPLMNs, BroadcastPLMNs_sequence_of, + 1, maxnoofBPLMNs, FALSE); + + return offset; +} + + + +static int +dissect_xnap_OCTET_STRING_SIZE_1(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 1, 1, FALSE, NULL); + + return offset; +} + + + +static int +dissect_xnap_OCTET_STRING_SIZE_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 3, 3, FALSE, NULL); + + return offset; +} + + +static const per_sequence_t S_NSSAI_sequence[] = { + { &hf_xnap_sst , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_OCTET_STRING_SIZE_1 }, + { &hf_xnap_sd , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_OCTET_STRING_SIZE_3 }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_S_NSSAI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_S_NSSAI, S_NSSAI_sequence); + + return offset; +} + + +static const per_sequence_t SliceSupport_List_sequence_of[1] = { + { &hf_xnap_SliceSupport_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_S_NSSAI }, +}; + +static int +dissect_xnap_SliceSupport_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_SliceSupport_List, SliceSupport_List_sequence_of, + 1, maxnoofSliceItems, FALSE); + + return offset; +} + + +static const per_sequence_t BroadcastPLMNinTAISupport_Item_sequence[] = { + { &hf_xnap_plmn_id , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PLMN_Identity }, + { &hf_xnap_tAISliceSupport_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_SliceSupport_List }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_BroadcastPLMNinTAISupport_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_BroadcastPLMNinTAISupport_Item, BroadcastPLMNinTAISupport_Item_sequence); + + return offset; +} + + +static const value_string xnap_CauseRadioNetworkLayer_vals[] = { + { 0, "cell-not-available" }, + { 1, "handover-desirable-for-radio-reasons" }, + { 2, "handover-target-not-allowed" }, + { 3, "invalid-AMF-Region-ID" }, + { 4, "no-radio-resources-available-in-target-cell" }, + { 5, "partial-handover" }, + { 6, "reduce-load-in-serving-cell" }, + { 7, "resource-optimisation-handover" }, + { 8, "time-critical-handover" }, + { 9, "tXnRELOCoverall-expiry" }, + { 10, "tTXnRELOCprep-expiry" }, + { 11, "unknown-GUAMI-ID" }, + { 12, "unknown-local-NG-RAN-node-UE-XnAP-ID" }, + { 13, "inconsistent-remote-NG-RAN-node-UE-XnAP-ID" }, + { 14, "encryption-and-or-integrity-protection-algorithms-not-supported" }, + { 15, "protection-algorithms-not-supported" }, + { 16, "multiple-PDU-session-ID-instances" }, + { 17, "unknown-PDU-session-ID" }, + { 18, "unknown-QoS-Flow-ID" }, + { 19, "multiple-QoS-Flow-ID-instances" }, + { 20, "switch-off-ongoing" }, + { 21, "not-supported-5QI-value" }, + { 22, "tXnDCoverall-expiry" }, + { 23, "tXnDCprep-expiry" }, + { 24, "action-desirable-for-radio-reasons" }, + { 25, "reduce-load" }, + { 26, "resource-optimisation" }, + { 27, "time-critical-action" }, + { 28, "target-not-allowed" }, + { 29, "no-radio-resources-available" }, + { 30, "invalid-QoS-combination" }, + { 31, "encryption-algorithms-not-supported" }, + { 32, "procedure-cancelled" }, + { 33, "rRM-purpose" }, + { 34, "improve-user-bit-rate" }, + { 35, "user-inactivity" }, + { 36, "radio-connection-with-UE-lost" }, + { 37, "failure-in-the-radio-interface-procedure" }, + { 38, "bearer-option-not-supported" }, + { 39, "up-integrity-protection-not-possible" }, + { 40, "up-confidentiality-protection-not-possible" }, + { 41, "unspecified" }, + { 0, NULL } +}; + + +static int +dissect_xnap_CauseRadioNetworkLayer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 42, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const value_string xnap_CauseTransportLayer_vals[] = { + { 0, "transport-resource-unavailable" }, + { 1, "unspecified" }, + { 0, NULL } +}; + + +static int +dissect_xnap_CauseTransportLayer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const value_string xnap_CauseProtocol_vals[] = { + { 0, "transfer-syntax-error" }, + { 1, "abstract-syntax-error-reject" }, + { 2, "abstract-syntax-error-ignore-and-notify" }, + { 3, "message-not-compatible-with-receiver-state" }, + { 4, "semantic-error" }, + { 5, "abstract-syntax-error-falsely-constructed-message" }, + { 6, "unspecified" }, + { 0, NULL } +}; + + +static int +dissect_xnap_CauseProtocol(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 7, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const value_string xnap_CauseMisc_vals[] = { + { 0, "control-processing-overload" }, + { 1, "hardware-failure" }, + { 2, "o-and-M-intervention" }, + { 3, "not-enough-user-plane-processing-resources" }, + { 4, "unspecified" }, + { 0, NULL } +}; + + +static int +dissect_xnap_CauseMisc(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 5, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const value_string xnap_Cause_vals[] = { + { 0, "radioNetwork" }, + { 1, "transport" }, + { 2, "protocol" }, + { 3, "misc" }, + { 4, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t Cause_choice[] = { + { 0, &hf_xnap_radioNetwork , ASN1_EXTENSION_ROOT , dissect_xnap_CauseRadioNetworkLayer }, + { 1, &hf_xnap_transport , ASN1_EXTENSION_ROOT , dissect_xnap_CauseTransportLayer }, + { 2, &hf_xnap_protocol , ASN1_EXTENSION_ROOT , dissect_xnap_CauseProtocol }, + { 3, &hf_xnap_misc , ASN1_EXTENSION_ROOT , dissect_xnap_CauseMisc }, + { 4, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_Cause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_Cause, Cause_choice, + NULL); + + return offset; +} + + +static const per_sequence_t NR_CGI_sequence[] = { + { &hf_xnap_plmn_id , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PLMN_Identity }, + { &hf_xnap_nr_CI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NR_Cell_Identity }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_NR_CGI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_NR_CGI, NR_CGI_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_NR_CGI_sequence_of[1] = { + { &hf_xnap_limitedNR_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_NR_CGI }, +}; + +static int +dissect_xnap_SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_NR_CGI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_NR_CGI, SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_NR_CGI_sequence_of, + 1, maxnoofCellsinNGRANnode, FALSE); + + return offset; +} + + +static const value_string xnap_T_full_List_vals[] = { + { 0, "all-served-cells-NR" }, + { 0, NULL } +}; + + +static int +dissect_xnap_T_full_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const value_string xnap_CellAssistanceInfo_NR_vals[] = { + { 0, "limitedNR-List" }, + { 1, "full-List" }, + { 2, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t CellAssistanceInfo_NR_choice[] = { + { 0, &hf_xnap_limitedNR_List , ASN1_EXTENSION_ROOT , dissect_xnap_SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_NR_CGI }, + { 1, &hf_xnap_full_List , ASN1_EXTENSION_ROOT , dissect_xnap_T_full_List }, + { 2, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_CellAssistanceInfo_NR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_CellAssistanceInfo_NR, CellAssistanceInfo_NR_choice, + NULL); + + return offset; +} + + + +static int +dissect_xnap_INTEGER_0_4095(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 4095U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_xnap_INTEGER_0_1048575(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 1048575U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t COUNT_PDCP_SN12_sequence[] = { + { &hf_xnap_pdcp_SN12 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_INTEGER_0_4095 }, + { &hf_xnap_hfn_PDCP_SN12 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_INTEGER_0_1048575 }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_COUNT_PDCP_SN12(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_COUNT_PDCP_SN12, COUNT_PDCP_SN12_sequence); + + return offset; +} + + + +static int +dissect_xnap_INTEGER_0_262143(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 262143U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_xnap_INTEGER_0_16383(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 16383U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t COUNT_PDCP_SN18_sequence[] = { + { &hf_xnap_pdcp_SN18 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_INTEGER_0_262143 }, + { &hf_xnap_hfn_PDCP_SN18 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_INTEGER_0_16383 }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_COUNT_PDCP_SN18(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_COUNT_PDCP_SN18, COUNT_PDCP_SN18_sequence); + + return offset; +} + + + +static int +dissect_xnap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 249 "./asn1/xnap/xnap.cnf" + tvbuff_t *parameter_tvb = NULL; + proto_tree *subtree; + int len; + + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 1, 160, TRUE, ¶meter_tvb, &len); + + if (!parameter_tvb) + return offset; + + subtree = proto_item_add_subtree(actx->created_item, ett_xnap_TransportLayerAddress); + if (len == 32) { + /* IPv4 */ + proto_tree_add_item(subtree, hf_xnap_transportLayerAddressIPv4, parameter_tvb, 0, 4, ENC_BIG_ENDIAN); + } else if (len == 128) { + /* IPv6 */ + proto_tree_add_item(subtree, hf_xnap_transportLayerAddressIPv6, parameter_tvb, 0, 16, ENC_NA); + } else if (len == 160) { + /* IPv4 */ + proto_tree_add_item(subtree, hf_xnap_transportLayerAddressIPv4, parameter_tvb, 0, 4, ENC_BIG_ENDIAN); + /* IPv6 */ + proto_tree_add_item(subtree, hf_xnap_transportLayerAddressIPv6, parameter_tvb, 4, 16, ENC_NA); + } + + + + return offset; +} + + +static const value_string xnap_CPTransportLayerInformation_vals[] = { + { 0, "endpointIPAddress" }, + { 1, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t CPTransportLayerInformation_choice[] = { + { 0, &hf_xnap_endpointIPAddress, ASN1_EXTENSION_ROOT , dissect_xnap_TransportLayerAddress }, + { 1, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_CPTransportLayerInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_CPTransportLayerInformation, CPTransportLayerInformation_choice, + NULL); + + return offset; +} + + +static const value_string xnap_TypeOfError_vals[] = { + { 0, "not-understood" }, + { 1, "missing" }, + { 0, NULL } +}; + + +static int +dissect_xnap_TypeOfError(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t CriticalityDiagnostics_IE_List_item_sequence[] = { + { &hf_xnap_iECriticality , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_Criticality }, + { &hf_xnap_iE_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_ID }, + { &hf_xnap_typeOfError , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_TypeOfError }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_CriticalityDiagnostics_IE_List_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_CriticalityDiagnostics_IE_List_item, CriticalityDiagnostics_IE_List_item_sequence); + + return offset; +} + + +static const per_sequence_t CriticalityDiagnostics_IE_List_sequence_of[1] = { + { &hf_xnap_CriticalityDiagnostics_IE_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_CriticalityDiagnostics_IE_List_item }, +}; + +static int +dissect_xnap_CriticalityDiagnostics_IE_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_CriticalityDiagnostics_IE_List, CriticalityDiagnostics_IE_List_sequence_of, + 1, maxNrOfErrors, FALSE); + + return offset; +} + + +static const per_sequence_t CriticalityDiagnostics_sequence[] = { + { &hf_xnap_procedureCode , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProcedureCode }, + { &hf_xnap_triggeringMessage, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_TriggeringMessage }, + { &hf_xnap_procedureCriticality, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_Criticality }, + { &hf_xnap_iEsCriticalityDiagnostics, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_CriticalityDiagnostics_IE_List }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_CriticalityDiagnostics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_CriticalityDiagnostics, CriticalityDiagnostics_sequence); + + return offset; +} + + + +static int +dissect_xnap_C_RNTI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 16, 16, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string xnap_CyclicPrefix_E_UTRA_DL_vals[] = { + { 0, "normal" }, + { 1, "extended" }, + { 0, NULL } +}; + + +static int +dissect_xnap_CyclicPrefix_E_UTRA_DL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const value_string xnap_CyclicPrefix_E_UTRA_UL_vals[] = { + { 0, "normal" }, + { 1, "extended" }, + { 0, NULL } +}; + + +static int +dissect_xnap_CyclicPrefix_E_UTRA_UL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t DataforwardingInfoperPDUSession_sequence_of[1] = { + { &hf_xnap_DataforwardingInfoperPDUSession_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Single_Container }, +}; + +static int +dissect_xnap_DataforwardingInfoperPDUSession(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_DataforwardingInfoperPDUSession, DataforwardingInfoperPDUSession_sequence_of, + 1, maxnoofPDUSessions, FALSE); + + return offset; +} + + + +static int +dissect_xnap_PDUSession_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 255U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_xnap_GTP_TEID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 4, 4, FALSE, NULL); + + return offset; +} + + +static const per_sequence_t GTPtunnelTransportLayerInformation_sequence[] = { + { &hf_xnap_tnl_address , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_TransportLayerAddress }, + { &hf_xnap_gtp_teid , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_GTP_TEID }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_GTPtunnelTransportLayerInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_GTPtunnelTransportLayerInformation, GTPtunnelTransportLayerInformation_sequence); + + return offset; +} + + +static const value_string xnap_UPTransportLayerInformation_vals[] = { + { 0, "gtpTunnel" }, + { 1, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t UPTransportLayerInformation_choice[] = { + { 0, &hf_xnap_gtpTunnel , ASN1_EXTENSION_ROOT , dissect_xnap_GTPtunnelTransportLayerInformation }, + { 1, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_UPTransportLayerInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_UPTransportLayerInformation, UPTransportLayerInformation_choice, + NULL); + + return offset; +} + + +static const per_sequence_t DataforwardingInfoperPDUSession_Item_sequence[] = { + { &hf_xnap_pduSession_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PDUSession_ID }, + { &hf_xnap_dlForwardingUPTNL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_UPTransportLayerInformation }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_DataforwardingInfoperPDUSession_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_DataforwardingInfoperPDUSession_Item, DataforwardingInfoperPDUSession_Item_sequence); + + return offset; +} + + +static const value_string xnap_DataForwardingAccepted_vals[] = { + { 0, "data-forwarding-accepted" }, + { 0, NULL } +}; + + +static int +dissect_xnap_DataForwardingAccepted(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t DataForwardingResponseDRBItemList_sequence_of[1] = { + { &hf_xnap_DataForwardingResponseDRBItemList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Single_Container }, +}; + +static int +dissect_xnap_DataForwardingResponseDRBItemList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_DataForwardingResponseDRBItemList, DataForwardingResponseDRBItemList_sequence_of, + 1, maxnoofDRBs, FALSE); + + return offset; +} + + +static const per_sequence_t DataForwardingInfoFromTargetNGRANnode_sequence[] = { + { &hf_xnap_pduSessionLevelDLDataForwardingInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_UPTransportLayerInformation }, + { &hf_xnap_dataForwardingResponseDRBItemList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_DataForwardingResponseDRBItemList }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_DataForwardingInfoFromTargetNGRANnode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_DataForwardingInfoFromTargetNGRANnode, DataForwardingInfoFromTargetNGRANnode_sequence); + + return offset; +} + + + +static int +dissect_xnap_DRB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 32U, NULL, TRUE); + + return offset; +} + + +static const per_sequence_t DataForwardingResponseDRBItem_sequence[] = { + { &hf_xnap_drb_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_DRB_ID }, + { &hf_xnap_dlForwardingUPTNL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_UPTransportLayerInformation }, + { &hf_xnap_ulForwardingUPTNL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_UPTransportLayerInformation }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_DataForwardingResponseDRBItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_DataForwardingResponseDRBItem, DataForwardingResponseDRBItem_sequence); + + return offset; +} + + +static const value_string xnap_DLForwarding_vals[] = { + { 0, "dl-forwarding-proposed" }, + { 0, NULL } +}; + + +static int +dissect_xnap_DLForwarding(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t DRBsSubjectToStatusTransfer_List_sequence_of[1] = { + { &hf_xnap_DRBsSubjectToStatusTransfer_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Single_Container }, +}; + +static int +dissect_xnap_DRBsSubjectToStatusTransfer_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_DRBsSubjectToStatusTransfer_List, DRBsSubjectToStatusTransfer_List_sequence_of, + 1, maxnoofDRBs, FALSE); + + return offset; +} + + + +static int +dissect_xnap_BIT_STRING_SIZE_1_2048(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 1, 2048, FALSE, NULL, NULL); + + return offset; +} + + +static const per_sequence_t DRBBStatusTransfer12bitsSN_sequence[] = { + { &hf_xnap_receiveStatusofPDCPSDU, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_BIT_STRING_SIZE_1_2048 }, + { &hf_xnap_ulCOUNTValue , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_COUNT_PDCP_SN12 }, + { &hf_xnap_dlCOUNTValue , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_COUNT_PDCP_SN12 }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_DRBBStatusTransfer12bitsSN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_DRBBStatusTransfer12bitsSN, DRBBStatusTransfer12bitsSN_sequence); + + return offset; +} + + + +static int +dissect_xnap_BIT_STRING_SIZE_1_131072(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 1, 131072, FALSE, NULL, NULL); + + return offset; +} + + +static const per_sequence_t DRBBStatusTransfer18bitsSN_sequence[] = { + { &hf_xnap_receiveStatusofPDCPSDU_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_BIT_STRING_SIZE_1_131072 }, + { &hf_xnap_ulCOUNTValue_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_COUNT_PDCP_SN18 }, + { &hf_xnap_dlCOUNTValue_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_COUNT_PDCP_SN18 }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_DRBBStatusTransfer18bitsSN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_DRBBStatusTransfer18bitsSN, DRBBStatusTransfer18bitsSN_sequence); + + return offset; +} + + +static const value_string xnap_DRBBStatusTransferChoice_vals[] = { + { 0, "pdcp-sn-12bits" }, + { 1, "pdcp-sn-18bits" }, + { 2, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t DRBBStatusTransferChoice_choice[] = { + { 0, &hf_xnap_pdcp_sn_12bits , ASN1_EXTENSION_ROOT , dissect_xnap_DRBBStatusTransfer12bitsSN }, + { 1, &hf_xnap_pdcp_sn_18bits , ASN1_EXTENSION_ROOT , dissect_xnap_DRBBStatusTransfer18bitsSN }, + { 2, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_DRBBStatusTransferChoice(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_DRBBStatusTransferChoice, DRBBStatusTransferChoice_choice, + NULL); + + return offset; +} + + +static const per_sequence_t DRBsSubjectToStatusTransfer_Item_sequence[] = { + { &hf_xnap_drbID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_DRB_ID }, + { &hf_xnap_statusTransfer , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_DRBBStatusTransferChoice }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_DRBsSubjectToStatusTransfer_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_DRBsSubjectToStatusTransfer_Item, DRBsSubjectToStatusTransfer_Item_sequence); + + return offset; +} + + +static const per_sequence_t DRBToQoSFlowMapping_List_sequence_of[1] = { + { &hf_xnap_DRBToQoSFlowMapping_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Single_Container }, +}; + +static int +dissect_xnap_DRBToQoSFlowMapping_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_DRBToQoSFlowMapping_List, DRBToQoSFlowMapping_List_sequence_of, + 1, maxnoofDRBs, FALSE); + + return offset; +} + + +static const per_sequence_t QoSFlows_List_sequence_of[1] = { + { &hf_xnap_QoSFlows_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Single_Container }, +}; + +static int +dissect_xnap_QoSFlows_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_QoSFlows_List, QoSFlows_List_sequence_of, + 1, maxnoofQoSFlows, FALSE); + + return offset; +} + + +static const per_sequence_t DRBToQoSFlowMapping_Item_sequence[] = { + { &hf_xnap_drb_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_DRB_ID }, + { &hf_xnap_qosFlows_List , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_QoSFlows_List }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_DRBToQoSFlowMapping_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_DRBToQoSFlowMapping_Item, DRBToQoSFlowMapping_Item_sequence); + + return offset; +} + + + +static int +dissect_xnap_INTEGER_1_128(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 128U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_xnap_PacketDelayBudget(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 63U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_xnap_PacketErrorRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 63U, NULL, FALSE); + + return offset; +} + + +static const value_string xnap_T_delayCritical_vals[] = { + { 0, "delay-critical" }, + { 1, "non-delay-critical" }, + { 0, NULL } +}; + + +static int +dissect_xnap_T_delayCritical(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + + +static int +dissect_xnap_MaximumDataBurstVolume(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 63U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t Dynamic5QIDescriptor_sequence[] = { + { &hf_xnap_priorityLevel_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_INTEGER_1_128 }, + { &hf_xnap_packetDelayBudget, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PacketDelayBudget }, + { &hf_xnap_packetErrorRate, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PacketErrorRate }, + { &hf_xnap_delayCritical , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_T_delayCritical }, + { &hf_xnap_averagingWindow, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_AveragingWindow }, + { &hf_xnap_maximumDataBurstVolume, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_MaximumDataBurstVolume }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_Dynamic5QIDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_Dynamic5QIDescriptor, Dynamic5QIDescriptor_sequence); + + return offset; +} + + + +static int +dissect_xnap_E_RAB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 15U, NULL, TRUE); + + return offset; +} + + + +static int +dissect_xnap_E_UTRAARFCN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxEARFCN, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t E_UTRA_CGI_sequence[] = { + { &hf_xnap_plmn_id , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PLMN_Identity }, + { &hf_xnap_e_utra_CI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_E_UTRA_Cell_Identity }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_E_UTRA_CGI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_E_UTRA_CGI, E_UTRA_CGI_sequence); + + return offset; +} + + + +static int +dissect_xnap_E_UTRAFrequencyBandIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 256U, NULL, TRUE); + + return offset; +} + + +static const per_sequence_t E_UTRAMultibandInfoList_sequence_of[1] = { + { &hf_xnap_E_UTRAMultibandInfoList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_E_UTRAFrequencyBandIndicator }, +}; + +static int +dissect_xnap_E_UTRAMultibandInfoList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_E_UTRAMultibandInfoList, E_UTRAMultibandInfoList_sequence_of, + 1, maxnoofEUTRABands, FALSE); + + return offset; +} + + + +static int +dissect_xnap_E_UTRAPCI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 503U, NULL, TRUE); + + return offset; +} + + + +static int +dissect_xnap_INTEGER_0_837(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 837U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_xnap_INTEGER_0_15(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 15U, NULL, FALSE); + + return offset; +} + + +static const value_string xnap_T_highSpeedFlag_vals[] = { + { 0, "true" }, + { 1, "false" }, + { 0, NULL } +}; + + +static int +dissect_xnap_T_highSpeedFlag(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + + +static int +dissect_xnap_INTEGER_0_94(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 94U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_xnap_INTEGER_0_63(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 63U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t E_UTRAPRACHConfiguration_sequence[] = { + { &hf_xnap_rootSequenceIndex, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_INTEGER_0_837 }, + { &hf_xnap_zeroCorrelationIndex, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_INTEGER_0_15 }, + { &hf_xnap_highSpeedFlag , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_T_highSpeedFlag }, + { &hf_xnap_prach_FreqOffset, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_INTEGER_0_94 }, + { &hf_xnap_prach_ConfigIndex, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_INTEGER_0_63 }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_E_UTRAPRACHConfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_E_UTRAPRACHConfiguration, E_UTRAPRACHConfiguration_sequence); + + return offset; +} + + +static const value_string xnap_E_UTRATransmissionBandwidth_vals[] = { + { 0, "bw6" }, + { 1, "bw15" }, + { 2, "bw25" }, + { 3, "bw50" }, + { 4, "bw75" }, + { 5, "bw100" }, + { 6, "bw1" }, + { 0, NULL } +}; + + +static int +dissect_xnap_E_UTRATransmissionBandwidth(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 6, NULL, TRUE, 1, NULL); + + return offset; +} + + +static const value_string xnap_EventType_vals[] = { + { 0, "report-upon-change-of-serving-cell" }, + { 1, "report-UE-moving-presence-into-or-out-of-the-Area-of-Interest" }, + { 0, NULL } +}; + + +static int +dissect_xnap_EventType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const value_string xnap_T_notificationControl_vals[] = { + { 0, "notification-requested" }, + { 0, NULL } +}; + + +static int +dissect_xnap_T_notificationControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, TRUE, 0, NULL); + + return offset; +} + + + +static int +dissect_xnap_PacketLossRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 1000U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t GBRQoSFlowInfo_sequence[] = { + { &hf_xnap_maxFlowBitRateDL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_BitRate }, + { &hf_xnap_maxFlowBitRateUL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_BitRate }, + { &hf_xnap_guaranteedFlowBitRateDL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_BitRate }, + { &hf_xnap_guaranteedFlowBitRateUL, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_BitRate }, + { &hf_xnap_notificationControl, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_T_notificationControl }, + { &hf_xnap_maxPacketLossRateDL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_PacketLossRate }, + { &hf_xnap_maxPacketLossRateUL, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_PacketLossRate }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_GBRQoSFlowInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_GBRQoSFlowInfo, GBRQoSFlowInfo_sequence); + + return offset; +} + + + +static int +dissect_xnap_BIT_STRING_SIZE_22_32(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 22, 32, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string xnap_GNB_ID_Choice_vals[] = { + { 0, "gnb-ID" }, + { 1, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t GNB_ID_Choice_choice[] = { + { 0, &hf_xnap_gnb_ID , ASN1_EXTENSION_ROOT , dissect_xnap_BIT_STRING_SIZE_22_32 }, + { 1, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_GNB_ID_Choice(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_GNB_ID_Choice, GNB_ID_Choice_choice, + NULL); + + return offset; +} + + +static const per_sequence_t GlobalgNB_ID_sequence[] = { + { &hf_xnap_plmn_id , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PLMN_Identity }, + { &hf_xnap_gnb_id , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_GNB_ID_Choice }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_GlobalgNB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_GlobalgNB_ID, GlobalgNB_ID_sequence); + + return offset; +} + + + +static int +dissect_xnap_BIT_STRING_SIZE_20(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 20, 20, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_xnap_BIT_STRING_SIZE_18(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 18, 18, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_xnap_BIT_STRING_SIZE_21(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 21, 21, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string xnap_ENB_ID_Choice_vals[] = { + { 0, "enb-ID-macro" }, + { 1, "enb-ID-shortmacro" }, + { 2, "enb-ID-longmacro" }, + { 3, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t ENB_ID_Choice_choice[] = { + { 0, &hf_xnap_enb_ID_macro , ASN1_EXTENSION_ROOT , dissect_xnap_BIT_STRING_SIZE_20 }, + { 1, &hf_xnap_enb_ID_shortmacro, ASN1_EXTENSION_ROOT , dissect_xnap_BIT_STRING_SIZE_18 }, + { 2, &hf_xnap_enb_ID_longmacro, ASN1_EXTENSION_ROOT , dissect_xnap_BIT_STRING_SIZE_21 }, + { 3, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_ENB_ID_Choice(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_ENB_ID_Choice, ENB_ID_Choice_choice, + NULL); + + return offset; +} + + +static const per_sequence_t GlobalngeNB_ID_sequence[] = { + { &hf_xnap_plmn_id , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PLMN_Identity }, + { &hf_xnap_enb_id , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ENB_ID_Choice }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_GlobalngeNB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_GlobalngeNB_ID, GlobalngeNB_ID_sequence); + + return offset; +} + + +static const value_string xnap_GlobalNG_RANNode_ID_vals[] = { + { GlobalNG_RANNode_ID_gNB, "gNB" }, + { GlobalNG_RANNode_ID_ng_eNB, "ng-eNB" }, + { GlobalNG_RANNode_ID_choice_extension, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t GlobalNG_RANNode_ID_choice[] = { + { GlobalNG_RANNode_ID_gNB, &hf_xnap_gNB , ASN1_EXTENSION_ROOT , dissect_xnap_GlobalgNB_ID }, + { GlobalNG_RANNode_ID_ng_eNB, &hf_xnap_ng_eNB , ASN1_EXTENSION_ROOT , dissect_xnap_GlobalngeNB_ID }, + { GlobalNG_RANNode_ID_choice_extension, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_GlobalNG_RANNode_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 103 "./asn1/xnap/xnap.cnf" + gint value; + struct xnap_private_data *xnap_data = xnap_get_private_data(actx->pinfo); + + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_GlobalNG_RANNode_ID, GlobalNG_RANNode_ID_choice, + &value); + + if (xnap_data->xnap_conv && xnap_data->procedure_code == id_xnSetup) { + if (addresses_equal(&actx->pinfo->src, &xnap_data->xnap_conv->addr_a)) { + xnap_data->xnap_conv->ranmode_id_a = (GlobalNG_RANNode_ID_enum)value; + } else if (addresses_equal(&actx->pinfo->src, &xnap_data->xnap_conv->addr_b)) { + xnap_data->xnap_conv->ranmode_id_b = (GlobalNG_RANNode_ID_enum)value; + } + } + + + + return offset; +} + + + +static int +dissect_xnap_OCTET_STRING_SIZE_2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 2, 2, FALSE, NULL); + + return offset; +} + + + +static int +dissect_xnap_BIT_STRING_SIZE_4(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 4, 4, FALSE, NULL, NULL); + + return offset; +} + + +static const per_sequence_t GUAMI_sequence[] = { + { &hf_xnap_plmn_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PLMN_Identity }, + { &hf_xnap_amf_region_if , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_OCTET_STRING_SIZE_2 }, + { &hf_xnap_amf_set_id , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_BIT_STRING_SIZE_4 }, + { &hf_xnap_amf_pointer , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_BIT_STRING_SIZE_4 }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_GUAMI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_GUAMI, GUAMI_sequence); + + return offset; +} + + + +static int +dissect_xnap_I_RNTI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 40, 40, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string xnap_ReportArea_vals[] = { + { 0, "cell" }, + { 0, NULL } +}; + + +static int +dissect_xnap_ReportArea(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t LocationReportingInformation_sequence[] = { + { &hf_xnap_eventType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_EventType }, + { &hf_xnap_reportArea , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ReportArea }, + { &hf_xnap_areaOfInterest , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_AreaOfInterest }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_LocationReportingInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_LocationReportingInformation, LocationReportingInformation_sequence); + + return offset; +} + + + +static int +dissect_xnap_MAC_I(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 16, 16, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_xnap_MaskedIMEISV(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 64, 64, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_xnap_BIT_STRING_SIZE_6(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 6, 6, FALSE, NULL, NULL); + + return offset; +} + + + +static int +dissect_xnap_BIT_STRING_SIZE_24(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 24, 24, FALSE, NULL, NULL); + + return offset; +} + + +static const value_string xnap_MBSFNSubframeAllocation_E_UTRA_vals[] = { + { 0, "oneframe" }, + { 1, "fourframes" }, + { 2, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t MBSFNSubframeAllocation_E_UTRA_choice[] = { + { 0, &hf_xnap_oneframe , ASN1_EXTENSION_ROOT , dissect_xnap_BIT_STRING_SIZE_6 }, + { 1, &hf_xnap_fourframes , ASN1_EXTENSION_ROOT , dissect_xnap_BIT_STRING_SIZE_24 }, + { 2, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_MBSFNSubframeAllocation_E_UTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_MBSFNSubframeAllocation_E_UTRA, MBSFNSubframeAllocation_E_UTRA_choice, + NULL); + + return offset; +} + + +static const value_string xnap_T_radioframeAllocationPeriod_vals[] = { + { 0, "n1" }, + { 1, "n2" }, + { 2, "n4" }, + { 3, "n8" }, + { 4, "n16" }, + { 5, "n32" }, + { 0, NULL } +}; + + +static int +dissect_xnap_T_radioframeAllocationPeriod(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 6, NULL, TRUE, 0, NULL); + + return offset; +} + + + +static int +dissect_xnap_INTEGER_0_7_(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 7U, NULL, TRUE); + + return offset; +} + + +static const per_sequence_t MBSFNSubframeInfo_E_UTRA_Item_sequence[] = { + { &hf_xnap_radioframeAllocationPeriod, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_T_radioframeAllocationPeriod }, + { &hf_xnap_radioframeAllocationOffset, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_INTEGER_0_7_ }, + { &hf_xnap_subframeAllocation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_MBSFNSubframeAllocation_E_UTRA }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_MBSFNSubframeInfo_E_UTRA_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_MBSFNSubframeInfo_E_UTRA_Item, MBSFNSubframeInfo_E_UTRA_Item_sequence); + + return offset; +} + + +static const per_sequence_t MBSFNSubframeInfo_E_UTRA_sequence_of[1] = { + { &hf_xnap_MBSFNSubframeInfo_E_UTRA_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_MBSFNSubframeInfo_E_UTRA_Item }, +}; + +static int +dissect_xnap_MBSFNSubframeInfo_E_UTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_MBSFNSubframeInfo_E_UTRA, MBSFNSubframeInfo_E_UTRA_sequence_of, + 1, maxnoofMBSFNEUTRA, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxnoofEPLMNs_OF_PLMN_Identity_sequence_of[1] = { + { &hf_xnap_equivalent_PLMNs_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_PLMN_Identity }, +}; + +static int +dissect_xnap_SEQUENCE_SIZE_1_maxnoofEPLMNs_OF_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_SEQUENCE_SIZE_1_maxnoofEPLMNs_OF_PLMN_Identity, SEQUENCE_SIZE_1_maxnoofEPLMNs_OF_PLMN_Identity_sequence_of, + 1, maxnoofEPLMNs, FALSE); + + return offset; +} + + + +static int +dissect_xnap_RAT_RestrictionInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 328 "./asn1/xnap/xnap.cnf" + tvbuff_t *parameter_tvb = NULL; + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 8, 8, TRUE, ¶meter_tvb, NULL); + + if (parameter_tvb) { + const gint *fields[] = { + &hf_xnap_RAT_RestrictionInformation_e_UTRA, + &hf_xnap_RAT_RestrictionInformation_nR, + NULL + }; + proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_RAT_RestrictionInformation); + proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 1, fields, ENC_BIG_ENDIAN); + } + + + + return offset; +} + + +static const per_sequence_t RAT_RestrictionsItem_sequence[] = { + { &hf_xnap_plmn_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PLMN_Identity }, + { &hf_xnap_rat_RestrictionInformation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_RAT_RestrictionInformation }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_RAT_RestrictionsItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_RAT_RestrictionsItem, RAT_RestrictionsItem_sequence); + + return offset; +} + + +static const per_sequence_t RAT_RestrictionsList_sequence_of[1] = { + { &hf_xnap_RAT_RestrictionsList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_RAT_RestrictionsItem }, +}; + +static int +dissect_xnap_RAT_RestrictionsList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_RAT_RestrictionsList, RAT_RestrictionsList_sequence_of, + 1, maxnoofPLMNs, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxnoofForbiddenTACs_OF_TAC_sequence_of[1] = { + { &hf_xnap_forbidden_TACs_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_TAC }, +}; + +static int +dissect_xnap_SEQUENCE_SIZE_1_maxnoofForbiddenTACs_OF_TAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_SEQUENCE_SIZE_1_maxnoofForbiddenTACs_OF_TAC, SEQUENCE_SIZE_1_maxnoofForbiddenTACs_OF_TAC_sequence_of, + 1, maxnoofForbiddenTACs, FALSE); + + return offset; +} + + +static const per_sequence_t ForbiddenAreaItem_sequence[] = { + { &hf_xnap_plmn_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PLMN_Identity }, + { &hf_xnap_forbidden_TACs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_SEQUENCE_SIZE_1_maxnoofForbiddenTACs_OF_TAC }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ForbiddenAreaItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ForbiddenAreaItem, ForbiddenAreaItem_sequence); + + return offset; +} + + +static const per_sequence_t ForbiddenAreaList_sequence_of[1] = { + { &hf_xnap_ForbiddenAreaList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ForbiddenAreaItem }, +}; + +static int +dissect_xnap_ForbiddenAreaList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_ForbiddenAreaList, ForbiddenAreaList_sequence_of, + 1, maxnoofPLMNs, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxnoofAllowedAreas_OF_TAC_sequence_of[1] = { + { &hf_xnap_allowed_TACs_ServiceArea_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_TAC }, +}; + +static int +dissect_xnap_SEQUENCE_SIZE_1_maxnoofAllowedAreas_OF_TAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_SEQUENCE_SIZE_1_maxnoofAllowedAreas_OF_TAC, SEQUENCE_SIZE_1_maxnoofAllowedAreas_OF_TAC_sequence_of, + 1, maxnoofAllowedAreas, FALSE); + + return offset; +} + + +static const per_sequence_t ServiceAreaItem_sequence[] = { + { &hf_xnap_plmn_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PLMN_Identity }, + { &hf_xnap_allowed_TACs_ServiceArea, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_SEQUENCE_SIZE_1_maxnoofAllowedAreas_OF_TAC }, + { &hf_xnap_not_allowed_TACs_ServiceArea, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_SEQUENCE_SIZE_1_maxnoofAllowedAreas_OF_TAC }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ServiceAreaItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ServiceAreaItem, ServiceAreaItem_sequence); + + return offset; +} + + +static const per_sequence_t ServiceAreaList_sequence_of[1] = { + { &hf_xnap_ServiceAreaList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ServiceAreaItem }, +}; + +static int +dissect_xnap_ServiceAreaList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_ServiceAreaList, ServiceAreaList_sequence_of, + 1, maxnoofPLMNs, FALSE); + + return offset; +} + + +static const per_sequence_t MobilityRestrictionList_sequence[] = { + { &hf_xnap_serving_PLMN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PLMN_Identity }, + { &hf_xnap_equivalent_PLMNs, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_SEQUENCE_SIZE_1_maxnoofEPLMNs_OF_PLMN_Identity }, + { &hf_xnap_rat_Restrictions, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_RAT_RestrictionsList }, + { &hf_xnap_forbiddenAreaInformation, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ForbiddenAreaList }, + { &hf_xnap_serviceAreaInformation, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ServiceAreaList }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_MobilityRestrictionList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_MobilityRestrictionList, MobilityRestrictionList_sequence); + + return offset; +} + + +static const per_sequence_t NeighbourInformation_E_UTRA_Item_sequence[] = { + { &hf_xnap_e_utra_PCI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_E_UTRAPCI }, + { &hf_xnap_e_utra_cgi , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_E_UTRA_CGI }, + { &hf_xnap_earfcn , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_E_UTRAARFCN }, + { &hf_xnap_tac , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_TAC }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_NeighbourInformation_E_UTRA_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_NeighbourInformation_E_UTRA_Item, NeighbourInformation_E_UTRA_Item_sequence); + + return offset; +} + + +static const per_sequence_t NeighbourInformation_E_UTRA_sequence_of[1] = { + { &hf_xnap_NeighbourInformation_E_UTRA_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_NeighbourInformation_E_UTRA_Item }, +}; + +static int +dissect_xnap_NeighbourInformation_E_UTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_NeighbourInformation_E_UTRA, NeighbourInformation_E_UTRA_sequence_of, + 1, maxnoofNeighbours, FALSE); + + return offset; +} + + + +static int +dissect_xnap_NRARFCN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, maxNRARFCN, NULL, FALSE); + + return offset; +} + + + +static int +dissect_xnap_NRTransmissionBandwidth(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 65535U, NULL, TRUE); + + return offset; +} + + +static const per_sequence_t SUL_Information_sequence[] = { + { &hf_xnap_sulFrequencyInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NRARFCN }, + { &hf_xnap_sulTransmissionBandwidth, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NRTransmissionBandwidth }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SUL_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SUL_Information, SUL_Information_sequence); + + return offset; +} + + + +static int +dissect_xnap_NRFrequencyBand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 1024U, NULL, TRUE); + + return offset; +} + + + +static int +dissect_xnap_SUL_FrequencyBand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 1024U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t SupportedSULBandItem_sequence[] = { + { &hf_xnap_sulBandItem , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_SUL_FrequencyBand }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SupportedSULBandItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SupportedSULBandItem, SupportedSULBandItem_sequence); + + return offset; +} + + +static const per_sequence_t SupportedSULBandList_sequence_of[1] = { + { &hf_xnap_SupportedSULBandList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_SupportedSULBandItem }, +}; + +static int +dissect_xnap_SupportedSULBandList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_SupportedSULBandList, SupportedSULBandList_sequence_of, + 1, maxnoofNRCellBands, FALSE); + + return offset; +} + + +static const per_sequence_t NRFrequencyBandItem_sequence[] = { + { &hf_xnap_nr_frequency_band, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NRFrequencyBand }, + { &hf_xnap_supported_SUL_Band_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_SupportedSULBandList }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_NRFrequencyBandItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_NRFrequencyBandItem, NRFrequencyBandItem_sequence); + + return offset; +} + + +static const per_sequence_t NRFrequencyBand_List_sequence_of[1] = { + { &hf_xnap_NRFrequencyBand_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_NRFrequencyBandItem }, +}; + +static int +dissect_xnap_NRFrequencyBand_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_NRFrequencyBand_List, NRFrequencyBand_List_sequence_of, + 1, maxnoofNRCellBands, FALSE); + + return offset; +} + + +static const per_sequence_t NRFrequencyInfo_sequence[] = { + { &hf_xnap_nrARFCN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NRARFCN }, + { &hf_xnap_sul_information, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_SUL_Information }, + { &hf_xnap_frequencyBand_List, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NRFrequencyBand_List }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_NRFrequencyInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_NRFrequencyInfo, NRFrequencyInfo_sequence); + + return offset; +} + + +static const per_sequence_t NeighbourInformation_NR_ModeFDDInfo_sequence[] = { + { &hf_xnap_ul_NR_FreqInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NRFrequencyInfo }, + { &hf_xnap_dl_NR_FequInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NRFrequencyInfo }, + { &hf_xnap_ie_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_NeighbourInformation_NR_ModeFDDInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_NeighbourInformation_NR_ModeFDDInfo, NeighbourInformation_NR_ModeFDDInfo_sequence); + + return offset; +} + + +static const per_sequence_t NeighbourInformation_NR_ModeTDDInfo_sequence[] = { + { &hf_xnap_nr_FreqInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NRFrequencyInfo }, + { &hf_xnap_ie_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_NeighbourInformation_NR_ModeTDDInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_NeighbourInformation_NR_ModeTDDInfo, NeighbourInformation_NR_ModeTDDInfo_sequence); + + return offset; +} + + +static const value_string xnap_NeighbourInformation_NR_ModeInfo_vals[] = { + { 0, "fdd-info" }, + { 1, "tdd-info" }, + { 2, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t NeighbourInformation_NR_ModeInfo_choice[] = { + { 0, &hf_xnap_fdd_info , ASN1_EXTENSION_ROOT , dissect_xnap_NeighbourInformation_NR_ModeFDDInfo }, + { 1, &hf_xnap_tdd_info , ASN1_EXTENSION_ROOT , dissect_xnap_NeighbourInformation_NR_ModeTDDInfo }, + { 2, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_NeighbourInformation_NR_ModeInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_NeighbourInformation_NR_ModeInfo, NeighbourInformation_NR_ModeInfo_choice, + NULL); + + return offset; +} + + +static const per_sequence_t NeighbourInformation_NR_Item_sequence[] = { + { &hf_xnap_e_utra_cgi , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_E_UTRA_CGI }, + { &hf_xnap_e_utra_PCI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_E_UTRAPCI }, + { &hf_xnap_earfcn , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_E_UTRAARFCN }, + { &hf_xnap_tac , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_TAC }, + { &hf_xnap_nr_mode_info , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NeighbourInformation_NR_ModeInfo }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_NeighbourInformation_NR_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_NeighbourInformation_NR_Item, NeighbourInformation_NR_Item_sequence); + + return offset; +} + + +static const per_sequence_t NeighbourInformation_NR_sequence_of[1] = { + { &hf_xnap_NeighbourInformation_NR_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_NeighbourInformation_NR_Item }, +}; + +static int +dissect_xnap_NeighbourInformation_NR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_NeighbourInformation_NR, NeighbourInformation_NR_sequence_of, + 1, maxnoofNeighbours, FALSE); + + return offset; +} + + + +static int +dissect_xnap_NRPCI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 1007U, NULL, TRUE); + + return offset; +} + + +static const value_string xnap_NG_RAN_CellPCI_vals[] = { + { 0, "nr" }, + { 1, "e-utra" }, + { 2, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t NG_RAN_CellPCI_choice[] = { + { 0, &hf_xnap_nr_01 , ASN1_EXTENSION_ROOT , dissect_xnap_NRPCI }, + { 1, &hf_xnap_e_utra_01 , ASN1_EXTENSION_ROOT , dissect_xnap_E_UTRAPCI }, + { 2, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_NG_RAN_CellPCI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_NG_RAN_CellPCI, NG_RAN_CellPCI_choice, + NULL); + + return offset; +} + + + +static int +dissect_xnap_NG_RANnodeUEXnAPID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 4294967295U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_xnap_INTEGER_0_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 255U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t NonDynamic5QIDescriptor_sequence[] = { + { &hf_xnap_fiveQI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_INTEGER_0_255 }, + { &hf_xnap_priorityLevel_01, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_INTEGER_1_128 }, + { &hf_xnap_averagingWindow, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_AveragingWindow }, + { &hf_xnap_maximumDataBurstVolume, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_MaximumDataBurstVolume }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_NonDynamic5QIDescriptor(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_NonDynamic5QIDescriptor, NonDynamic5QIDescriptor_sequence); + + return offset; +} + + +static const per_sequence_t NG_RAN_Cell_Identity_ListinRANPagingArea_sequence_of[1] = { + { &hf_xnap_NG_RAN_Cell_Identity_ListinRANPagingArea_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_NG_RAN_Cell_Identity }, +}; + +static int +dissect_xnap_NG_RAN_Cell_Identity_ListinRANPagingArea(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_NG_RAN_Cell_Identity_ListinRANPagingArea, NG_RAN_Cell_Identity_ListinRANPagingArea_sequence_of, + 1, maxnoofCellsinRNA, FALSE); + + return offset; +} + + +static const per_sequence_t NRModeInfoFDD_sequence[] = { + { &hf_xnap_ulNRFrequencyInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NRFrequencyInfo }, + { &hf_xnap_dlNRFrequencyInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NRFrequencyInfo }, + { &hf_xnap_ulNRTransmissonBandwidth, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NRTransmissionBandwidth }, + { &hf_xnap_dlNRTransmissonBandwidth, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NRTransmissionBandwidth }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_NRModeInfoFDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_NRModeInfoFDD, NRModeInfoFDD_sequence); + + return offset; +} + + +static const per_sequence_t NRModeInfoTDD_sequence[] = { + { &hf_xnap_nrFrequencyInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NRFrequencyInfo }, + { &hf_xnap_nrTransmissonBandwidth, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NRTransmissionBandwidth }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_NRModeInfoTDD(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_NRModeInfoTDD, NRModeInfoTDD_sequence); + + return offset; +} + + +static const value_string xnap_NRModeInfo_vals[] = { + { 0, "fdd" }, + { 1, "tdd" }, + { 2, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t NRModeInfo_choice[] = { + { 0, &hf_xnap_fdd , ASN1_EXTENSION_ROOT , dissect_xnap_NRModeInfoFDD }, + { 1, &hf_xnap_tdd , ASN1_EXTENSION_ROOT , dissect_xnap_NRModeInfoTDD }, + { 2, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_NRModeInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_NRModeInfo, NRModeInfo_choice, + NULL); + + return offset; +} + + +static const value_string xnap_NumberOfAntennaPorts_E_UTRA_vals[] = { + { 0, "an1" }, + { 1, "an2" }, + { 2, "an3" }, + { 0, NULL } +}; + + +static int +dissect_xnap_NumberOfAntennaPorts_E_UTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, TRUE, 0, NULL); + + return offset; +} + + + +static int +dissect_xnap_PagingDRX(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 63U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t PDUSessionResourcesAdmitted_List_sequence_of[1] = { + { &hf_xnap_PDUSessionResourcesAdmitted_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Single_Container }, +}; + +static int +dissect_xnap_PDUSessionResourcesAdmitted_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_PDUSessionResourcesAdmitted_List, PDUSessionResourcesAdmitted_List_sequence_of, + 1, maxnoofPDUSessions, FALSE); + + return offset; +} + + +static const per_sequence_t QoSFlowsAdmitted_List_sequence_of[1] = { + { &hf_xnap_QoSFlowsAdmitted_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Single_Container }, +}; + +static int +dissect_xnap_QoSFlowsAdmitted_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_QoSFlowsAdmitted_List, QoSFlowsAdmitted_List_sequence_of, + 1, maxnoofQoSFlows, FALSE); + + return offset; +} + + +static const per_sequence_t QoSFlowsNotAdmitted_List_sequence_of[1] = { + { &hf_xnap_QoSFlowsNotAdmitted_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Single_Container }, +}; + +static int +dissect_xnap_QoSFlowsNotAdmitted_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_QoSFlowsNotAdmitted_List, QoSFlowsNotAdmitted_List_sequence_of, + 1, maxnoofQoSFlows, FALSE); + + return offset; +} + + +static const per_sequence_t PDUSessionResourceAdmittedInfo_sequence[] = { + { &hf_xnap_qosFlowsAdmitted_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_QoSFlowsAdmitted_List }, + { &hf_xnap_qosFlowsNotAdmitted_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_QoSFlowsNotAdmitted_List }, + { &hf_xnap_dataForwardingInfoFromTarget, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_DataForwardingInfoFromTargetNGRANnode }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_PDUSessionResourceAdmittedInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_PDUSessionResourceAdmittedInfo, PDUSessionResourceAdmittedInfo_sequence); + + return offset; +} + + +static const per_sequence_t PDUSessionResourcesAdmitted_Item_sequence[] = { + { &hf_xnap_pduSessionId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PDUSession_ID }, + { &hf_xnap_pduSessionResourceAdmittedInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_PDUSessionResourceAdmittedInfo }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_PDUSessionResourcesAdmitted_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_PDUSessionResourcesAdmitted_Item, PDUSessionResourcesAdmitted_Item_sequence); + + return offset; +} + + +static const per_sequence_t PDUSessionResourcesNotAdmitted_List_sequence_of[1] = { + { &hf_xnap_PDUSessionResourcesNotAdmitted_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Single_Container }, +}; + +static int +dissect_xnap_PDUSessionResourcesNotAdmitted_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_PDUSessionResourcesNotAdmitted_List, PDUSessionResourcesNotAdmitted_List_sequence_of, + 1, maxnoofPDUSessions, FALSE); + + return offset; +} + + +static const per_sequence_t PDUSessionResourcesNotAdmitted_Item_sequence[] = { + { &hf_xnap_pduSessionId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PDUSession_ID }, + { &hf_xnap_cause , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_Cause }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_PDUSessionResourcesNotAdmitted_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_PDUSessionResourcesNotAdmitted_Item, PDUSessionResourcesNotAdmitted_Item_sequence); + + return offset; +} + + +static const per_sequence_t PDUSessionResourcesToBeSetup_List_sequence_of[1] = { + { &hf_xnap_PDUSessionResourcesToBeSetup_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Single_Container }, +}; + +static int +dissect_xnap_PDUSessionResourcesToBeSetup_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_PDUSessionResourcesToBeSetup_List, PDUSessionResourcesToBeSetup_List_sequence_of, + 1, maxnoofPDUSessions, FALSE); + + return offset; +} + + + +static int +dissect_xnap_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, NULL); + + return offset; +} + + +static const value_string xnap_T_integrityProtectionIndication_vals[] = { + { 0, "required" }, + { 1, "preferred" }, + { 2, "not-needed" }, + { 0, NULL } +}; + + +static int +dissect_xnap_T_integrityProtectionIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const value_string xnap_T_confidentialityProtectionIndication_vals[] = { + { 0, "required" }, + { 1, "preferred" }, + { 2, "not-needed" }, + { 0, NULL } +}; + + +static int +dissect_xnap_T_confidentialityProtectionIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 3, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t SecurityIndication_sequence[] = { + { &hf_xnap_integrityProtectionIndication, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_T_integrityProtectionIndication }, + { &hf_xnap_confidentialityProtectionIndication, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_T_confidentialityProtectionIndication }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SecurityIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SecurityIndication, SecurityIndication_sequence); + + return offset; +} + + +static const value_string xnap_PDUSessionType_vals[] = { + { 0, "ipv4" }, + { 1, "ipv6" }, + { 2, "ipv4v6" }, + { 3, "ethernet" }, + { 4, "unstructured" }, + { 0, NULL } +}; + + +static int +dissect_xnap_PDUSessionType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 5, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t QoSFlowsToBeSetup_List_sequence_of[1] = { + { &hf_xnap_QoSFlowsToBeSetup_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Single_Container }, +}; + +static int +dissect_xnap_QoSFlowsToBeSetup_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_QoSFlowsToBeSetup_List, QoSFlowsToBeSetup_List_sequence_of, + 1, maxnoofQoSFlows, FALSE); + + return offset; +} + + +static const per_sequence_t PDUSessionResourcesToBeSetup_Item_sequence[] = { + { &hf_xnap_pduSessionId , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PDUSession_ID }, + { &hf_xnap_s_NSSAI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_S_NSSAI }, + { &hf_xnap_pduSessionAMBR , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_OCTET_STRING }, + { &hf_xnap_uL_NG_U_TNLatUPF, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_UPTransportLayerInformation }, + { &hf_xnap_securityIndication, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_SecurityIndication }, + { &hf_xnap_pduSessionType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PDUSessionType }, + { &hf_xnap_qosFlowsToBeSetup_List, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_QoSFlowsToBeSetup_List }, + { &hf_xnap_sourceDRBtoQoSFlowMapping, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_DRBToQoSFlowMapping_List }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_PDUSessionResourcesToBeSetup_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_PDUSessionResourcesToBeSetup_Item, PDUSessionResourcesToBeSetup_Item_sequence); + + return offset; +} + + +static const value_string xnap_QoSCharacteristics_vals[] = { + { 0, "non-dynamic" }, + { 1, "dynamic" }, + { 2, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t QoSCharacteristics_choice[] = { + { 0, &hf_xnap_non_dynamic , ASN1_EXTENSION_ROOT , dissect_xnap_NonDynamic5QIDescriptor }, + { 1, &hf_xnap_dynamic , ASN1_EXTENSION_ROOT , dissect_xnap_Dynamic5QIDescriptor }, + { 2, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_QoSCharacteristics(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_QoSCharacteristics, QoSCharacteristics_choice, + NULL); + + return offset; +} + + + +static int +dissect_xnap_QoSFlowIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 63U, NULL, TRUE); + + return offset; +} + + +static const value_string xnap_ReflectiveQoSAttribute_vals[] = { + { 0, "subject-to-reflective-QoS" }, + { 0, NULL } +}; + + +static int +dissect_xnap_ReflectiveQoSAttribute(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const value_string xnap_T_additionalQoSflowInfo_vals[] = { + { 0, "more-likely" }, + { 0, NULL } +}; + + +static int +dissect_xnap_T_additionalQoSflowInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, TRUE, 0, NULL); + + return offset; +} + + + +static int +dissect_xnap_INTEGER_1_8_(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 8U, NULL, TRUE); + + return offset; +} + + +static const per_sequence_t QoSFlowLevelQoSParameters_sequence[] = { + { &hf_xnap_qos_characteristics, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_QoSCharacteristics }, + { &hf_xnap_allocationAndRetentionPrio, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_AllocationandRetentionPriority }, + { &hf_xnap_gBRQoSFlowInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_GBRQoSFlowInfo }, + { &hf_xnap_relectiveQoS , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ReflectiveQoSAttribute }, + { &hf_xnap_additionalQoSflowInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_T_additionalQoSflowInfo }, + { &hf_xnap_pPI , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_INTEGER_1_8_ }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_QoSFlowLevelQoSParameters(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_QoSFlowLevelQoSParameters, QoSFlowLevelQoSParameters_sequence); + + return offset; +} + + +static const per_sequence_t QoSFlow_Item_sequence[] = { + { &hf_xnap_qfi , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_QoSFlowIndicator }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_QoSFlow_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_QoSFlow_Item, QoSFlow_Item_sequence); + + return offset; +} + + +static const per_sequence_t QoSFlowAdmitted_Item_sequence[] = { + { &hf_xnap_qfi , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_QoSFlowIndicator }, + { &hf_xnap_dataForwardingAccepted, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_DataForwardingAccepted }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_QoSFlowAdmitted_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_QoSFlowAdmitted_Item, QoSFlowAdmitted_Item_sequence); + + return offset; +} + + +static const per_sequence_t QoSFlowNotAdmitted_Item_sequence[] = { + { &hf_xnap_qfi , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_QoSFlowIndicator }, + { &hf_xnap_cause , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_Cause }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_QoSFlowNotAdmitted_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_QoSFlowNotAdmitted_Item, QoSFlowNotAdmitted_Item_sequence); + + return offset; +} + + +static const per_sequence_t QoSFlowsToBeSetup_Item_sequence[] = { + { &hf_xnap_qfi , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_QoSFlowIndicator }, + { &hf_xnap_dlDataForwarding, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_DLForwarding }, + { &hf_xnap_qosFlowLevelQoSParameters, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_QoSFlowLevelQoSParameters }, + { &hf_xnap_e_RAB_ID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_E_RAB_ID }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_QoSFlowsToBeSetup_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_QoSFlowsToBeSetup_Item, QoSFlowsToBeSetup_Item_sequence); + + return offset; +} + + + +static int +dissect_xnap_RANAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 6, 6, FALSE, NULL, NULL); + + return offset; +} + + +static const per_sequence_t RANAreaID_sequence[] = { + { &hf_xnap_tAC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_TAC }, + { &hf_xnap_rANAC , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_RANAC }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_RANAreaID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_RANAreaID, RANAreaID_sequence); + + return offset; +} + + +static const per_sequence_t RANAreaID_List_sequence_of[1] = { + { &hf_xnap_RANAreaID_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_RANAreaID }, +}; + +static int +dissect_xnap_RANAreaID_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_RANAreaID_List, RANAreaID_List_sequence_of, + 1, maxnoofRANAreasinRNA, FALSE); + + return offset; +} + + +static const value_string xnap_RANPagingAreaChoice_vals[] = { + { 0, "cell-List" }, + { 1, "rANAreaID-List" }, + { 2, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t RANPagingAreaChoice_choice[] = { + { 0, &hf_xnap_cell_List , ASN1_EXTENSION_ROOT , dissect_xnap_NG_RAN_Cell_Identity_ListinRANPagingArea }, + { 1, &hf_xnap_rANAreaID_List , ASN1_EXTENSION_ROOT , dissect_xnap_RANAreaID_List }, + { 2, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_RANPagingAreaChoice(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_RANPagingAreaChoice, RANPagingAreaChoice_choice, + NULL); + + return offset; +} + + +static const per_sequence_t RANPagingArea_sequence[] = { + { &hf_xnap_pLMN_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PLMN_Identity }, + { &hf_xnap_rANPagingAreaChoice, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_RANPagingAreaChoice }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_RANPagingArea(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_RANPagingArea, RANPagingArea_sequence); + + return offset; +} + + + +static int +dissect_xnap_RANPagingPriority(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 256U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t ResetRequestTypeInfo_Full_sequence[] = { + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ResetRequestTypeInfo_Full(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ResetRequestTypeInfo_Full, ResetRequestTypeInfo_Full_sequence); + + return offset; +} + + +static const per_sequence_t ResetRequestPartialReleaseList_sequence_of[1] = { + { &hf_xnap_ResetRequestPartialReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Single_Container }, +}; + +static int +dissect_xnap_ResetRequestPartialReleaseList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_ResetRequestPartialReleaseList, ResetRequestPartialReleaseList_sequence_of, + 1, maxnoofUEContexts, FALSE); + + return offset; +} + + +static const per_sequence_t ResetRequestTypeInfo_Partial_sequence[] = { + { &hf_xnap_ue_contexts_ToBeReleasedList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ResetRequestPartialReleaseList }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ResetRequestTypeInfo_Partial(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ResetRequestTypeInfo_Partial, ResetRequestTypeInfo_Partial_sequence); + + return offset; +} + + +static const value_string xnap_ResetRequestTypeInfo_vals[] = { + { 0, "fullReset" }, + { 1, "partialReset" }, + { 2, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t ResetRequestTypeInfo_choice[] = { + { 0, &hf_xnap_fullReset , ASN1_EXTENSION_ROOT , dissect_xnap_ResetRequestTypeInfo_Full }, + { 1, &hf_xnap_partialReset , ASN1_EXTENSION_ROOT , dissect_xnap_ResetRequestTypeInfo_Partial }, + { 2, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_ResetRequestTypeInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_ResetRequestTypeInfo, ResetRequestTypeInfo_choice, + NULL); + + return offset; +} + + +static const per_sequence_t ResetRequestPartialReleaseItem_sequence[] = { + { &hf_xnap_ng_ran_node1UEXnAPID, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NG_RANnodeUEXnAPID }, + { &hf_xnap_ng_ran_node2UEXnAPID, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NG_RANnodeUEXnAPID }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ResetRequestPartialReleaseItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ResetRequestPartialReleaseItem, ResetRequestPartialReleaseItem_sequence); + + return offset; +} + + +static const per_sequence_t ResetResponseTypeInfo_Full_sequence[] = { + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ResetResponseTypeInfo_Full(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ResetResponseTypeInfo_Full, ResetResponseTypeInfo_Full_sequence); + + return offset; +} + + +static const per_sequence_t ResetResponsePartialReleaseList_sequence_of[1] = { + { &hf_xnap_ResetResponsePartialReleaseList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Single_Container }, +}; + +static int +dissect_xnap_ResetResponsePartialReleaseList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_ResetResponsePartialReleaseList, ResetResponsePartialReleaseList_sequence_of, + 1, maxnoofUEContexts, FALSE); + + return offset; +} + + +static const per_sequence_t ResetResponseTypeInfo_Partial_sequence[] = { + { &hf_xnap_ue_contexts_AdmittedToBeReleasedList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ResetResponsePartialReleaseList }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ResetResponseTypeInfo_Partial(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ResetResponseTypeInfo_Partial, ResetResponseTypeInfo_Partial_sequence); + + return offset; +} + + +static const value_string xnap_ResetResponseTypeInfo_vals[] = { + { 0, "fullReset" }, + { 1, "partialReset" }, + { 2, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t ResetResponseTypeInfo_choice[] = { + { 0, &hf_xnap_fullReset_01 , ASN1_EXTENSION_ROOT , dissect_xnap_ResetResponseTypeInfo_Full }, + { 1, &hf_xnap_partialReset_01, ASN1_EXTENSION_ROOT , dissect_xnap_ResetResponseTypeInfo_Partial }, + { 2, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_ResetResponseTypeInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_ResetResponseTypeInfo, ResetResponseTypeInfo_choice, + NULL); + + return offset; +} + + +static const per_sequence_t ResetResponsePartialReleaseItem_sequence[] = { + { &hf_xnap_ng_ran_node1UEXnAPID, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NG_RANnodeUEXnAPID }, + { &hf_xnap_ng_ran_node2UEXnAPID, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NG_RANnodeUEXnAPID }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ResetResponsePartialReleaseItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ResetResponsePartialReleaseItem, ResetResponsePartialReleaseItem_sequence); + + return offset; +} + + + +static int +dissect_xnap_RFSP_Index(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 256U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t ServedCellInformation_E_UTRA_perBPLMN_FDDInfo_sequence[] = { + { &hf_xnap_ul_earfcn , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_E_UTRAARFCN }, + { &hf_xnap_dl_earfcn , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_E_UTRAARFCN }, + { &hf_xnap_ul_e_utraTxBW , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_E_UTRATransmissionBandwidth }, + { &hf_xnap_dl_e_utraTxBW , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_E_UTRATransmissionBandwidth }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ServedCellInformation_E_UTRA_perBPLMN_FDDInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ServedCellInformation_E_UTRA_perBPLMN_FDDInfo, ServedCellInformation_E_UTRA_perBPLMN_FDDInfo_sequence); + + return offset; +} + + +static const value_string xnap_T_subframeAssignmnet_vals[] = { + { 0, "sa0" }, + { 1, "sa1" }, + { 2, "sa2" }, + { 3, "sa3" }, + { 4, "sa4" }, + { 5, "sa5" }, + { 6, "sa6" }, + { 0, NULL } +}; + + +static int +dissect_xnap_T_subframeAssignmnet(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 7, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const value_string xnap_SpecialSubframePatterns_E_UTRA_vals[] = { + { 0, "ssp0" }, + { 1, "ssp1" }, + { 2, "ssp2" }, + { 3, "ssp3" }, + { 4, "ssp4" }, + { 5, "ssp5" }, + { 6, "ssp6" }, + { 7, "ssp7" }, + { 8, "ssp8" }, + { 9, "ssp9" }, + { 10, "ssp10" }, + { 0, NULL } +}; + + +static int +dissect_xnap_SpecialSubframePatterns_E_UTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 11, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t SpecialSubframeInfo_E_UTRA_sequence[] = { + { &hf_xnap_specialSubframePattern, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_SpecialSubframePatterns_E_UTRA }, + { &hf_xnap_cyclicPrefixDL , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_CyclicPrefix_E_UTRA_DL }, + { &hf_xnap_cyclicPrefixUL , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_CyclicPrefix_E_UTRA_UL }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SpecialSubframeInfo_E_UTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SpecialSubframeInfo_E_UTRA, SpecialSubframeInfo_E_UTRA_sequence); + + return offset; +} + + +static const per_sequence_t ServedCellInformation_E_UTRA_perBPLMN_TDDInfo_sequence[] = { + { &hf_xnap_earfcn , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_E_UTRAARFCN }, + { &hf_xnap_e_utraTxBW , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_E_UTRATransmissionBandwidth }, + { &hf_xnap_subframeAssignmnet, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_T_subframeAssignmnet }, + { &hf_xnap_specialSubframeInfo, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_SpecialSubframeInfo_E_UTRA }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ServedCellInformation_E_UTRA_perBPLMN_TDDInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ServedCellInformation_E_UTRA_perBPLMN_TDDInfo, ServedCellInformation_E_UTRA_perBPLMN_TDDInfo_sequence); + + return offset; +} + + +static const value_string xnap_ServedCellInformation_E_UTRA_perBPLMN_ModeInfo_vals[] = { + { 0, "fdd" }, + { 1, "tdd" }, + { 2, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t ServedCellInformation_E_UTRA_perBPLMN_ModeInfo_choice[] = { + { 0, &hf_xnap_fdd_01 , ASN1_EXTENSION_ROOT , dissect_xnap_ServedCellInformation_E_UTRA_perBPLMN_FDDInfo }, + { 1, &hf_xnap_tdd_01 , ASN1_EXTENSION_ROOT , dissect_xnap_ServedCellInformation_E_UTRA_perBPLMN_TDDInfo }, + { 2, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_ServedCellInformation_E_UTRA_perBPLMN_ModeInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_ServedCellInformation_E_UTRA_perBPLMN_ModeInfo, ServedCellInformation_E_UTRA_perBPLMN_ModeInfo_choice, + NULL); + + return offset; +} + + +static const per_sequence_t ServedCellInformation_E_UTRA_perBPLMN_sequence[] = { + { &hf_xnap_plmn_id , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PLMN_Identity }, + { &hf_xnap_e_utra_mode_info, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ServedCellInformation_E_UTRA_perBPLMN_ModeInfo }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ServedCellInformation_E_UTRA_perBPLMN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ServedCellInformation_E_UTRA_perBPLMN, ServedCellInformation_E_UTRA_perBPLMN_sequence); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxnoofBPLMNs_OF_ServedCellInformation_E_UTRA_perBPLMN_sequence_of[1] = { + { &hf_xnap_broadcastPLMNs_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ServedCellInformation_E_UTRA_perBPLMN }, +}; + +static int +dissect_xnap_SEQUENCE_SIZE_1_maxnoofBPLMNs_OF_ServedCellInformation_E_UTRA_perBPLMN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_SEQUENCE_SIZE_1_maxnoofBPLMNs_OF_ServedCellInformation_E_UTRA_perBPLMN, SEQUENCE_SIZE_1_maxnoofBPLMNs_OF_ServedCellInformation_E_UTRA_perBPLMN_sequence_of, + 1, maxnoofBPLMNs, FALSE); + + return offset; +} + + +static const value_string xnap_T_freqBandIndicatorPriority_vals[] = { + { 0, "not-broadcast" }, + { 1, "broadcast" }, + { 0, NULL } +}; + + +static int +dissect_xnap_T_freqBandIndicatorPriority(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const value_string xnap_T_bandwidthReducedSI_vals[] = { + { 0, "scheduled" }, + { 0, NULL } +}; + + +static int +dissect_xnap_T_bandwidthReducedSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t ServedCellInformation_E_UTRA_sequence[] = { + { &hf_xnap_e_utra_pci , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_E_UTRAPCI }, + { &hf_xnap_e_utra_cgi , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_E_UTRA_CGI }, + { &hf_xnap_tac , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_TAC }, + { &hf_xnap_broadcastPLMNs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_SEQUENCE_SIZE_1_maxnoofBPLMNs_OF_ServedCellInformation_E_UTRA_perBPLMN }, + { &hf_xnap_numberofAntennaPorts, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_NumberOfAntennaPorts_E_UTRA }, + { &hf_xnap_prach_configuration, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_E_UTRAPRACHConfiguration }, + { &hf_xnap_mBSFNsubframeInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_MBSFNSubframeInfo_E_UTRA }, + { &hf_xnap_multibandInfo , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_E_UTRAMultibandInfoList }, + { &hf_xnap_freqBandIndicatorPriority, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_T_freqBandIndicatorPriority }, + { &hf_xnap_bandwidthReducedSI, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_T_bandwidthReducedSI }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ServedCellInformation_E_UTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ServedCellInformation_E_UTRA, ServedCellInformation_E_UTRA_sequence); + + return offset; +} + + +static const per_sequence_t ServedCells_E_UTRA_Item_sequence[] = { + { &hf_xnap_served_cell_info_E_UTRA, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ServedCellInformation_E_UTRA }, + { &hf_xnap_neighbour_info_NR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_NeighbourInformation_NR }, + { &hf_xnap_neighbour_info_E_UTRA, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_NeighbourInformation_E_UTRA }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ServedCells_E_UTRA_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ServedCells_E_UTRA_Item, ServedCells_E_UTRA_Item_sequence); + + return offset; +} + + +static const per_sequence_t ServedCells_E_UTRA_sequence_of[1] = { + { &hf_xnap_ServedCells_E_UTRA_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ServedCells_E_UTRA_Item }, +}; + +static int +dissect_xnap_ServedCells_E_UTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_ServedCells_E_UTRA, ServedCells_E_UTRA_sequence_of, + 1, maxnoofCellsinNGRANnode, FALSE); + + return offset; +} + + +static const per_sequence_t ServedCells_ToModify_E_UTRA_Item_sequence[] = { + { &hf_xnap_old_ECGI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_E_UTRA_CGI }, + { &hf_xnap_served_cell_info_E_UTRA, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ServedCellInformation_E_UTRA }, + { &hf_xnap_neighbour_info_NR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_NeighbourInformation_NR }, + { &hf_xnap_neighbour_info_E_UTRA, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_NeighbourInformation_E_UTRA }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ServedCells_ToModify_E_UTRA_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ServedCells_ToModify_E_UTRA_Item, ServedCells_ToModify_E_UTRA_Item_sequence); + + return offset; +} + + +static const per_sequence_t ServedCells_ToModify_E_UTRA_sequence_of[1] = { + { &hf_xnap_ServedCells_ToModify_E_UTRA_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ServedCells_ToModify_E_UTRA_Item }, +}; + +static int +dissect_xnap_ServedCells_ToModify_E_UTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_ServedCells_ToModify_E_UTRA, ServedCells_ToModify_E_UTRA_sequence_of, + 1, maxnoofCellsinNGRANnode, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_E_UTRA_CGI_sequence_of[1] = { + { &hf_xnap_served_Cells_ToDelete_E_UTRA_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_E_UTRA_CGI }, +}; + +static int +dissect_xnap_SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_E_UTRA_CGI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_E_UTRA_CGI, SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_E_UTRA_CGI_sequence_of, + 1, maxnoofCellsinNGRANnode, FALSE); + + return offset; +} + + +static const per_sequence_t ServedCellsToUpdate_E_UTRA_sequence[] = { + { &hf_xnap_served_Cells_ToAdd_E_UTRA, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ServedCells_E_UTRA }, + { &hf_xnap_served_Cells_ToModify_E_UTRA, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ServedCells_ToModify_E_UTRA }, + { &hf_xnap_served_Cells_ToDelete_E_UTRA, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_E_UTRA_CGI }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ServedCellsToUpdate_E_UTRA(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ServedCellsToUpdate_E_UTRA, ServedCellsToUpdate_E_UTRA_sequence); + + return offset; +} + + + +static int +dissect_xnap_T_measurementTimingConfiguration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 235 "./asn1/xnap/xnap.cnf" + tvbuff_t *param_tvb = NULL; + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, ¶m_tvb); + + if (param_tvb) { + proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_measurementTimingConfiguration); + dissect_nr_rrc_MeasurementTimingConfiguration_PDU(param_tvb, actx->pinfo, subtree, NULL); + } + + + + return offset; +} + + +static const per_sequence_t ServedCellInformation_NR_sequence[] = { + { &hf_xnap_nrPCI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NRPCI }, + { &hf_xnap_cellID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NR_CGI }, + { &hf_xnap_tac , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_TAC }, + { &hf_xnap_ranac , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_RANAC }, + { &hf_xnap_broadcastPLMN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_BroadcastPLMNs }, + { &hf_xnap_nrModeInfo , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NRModeInfo }, + { &hf_xnap_measurementTimingConfiguration, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_T_measurementTimingConfiguration }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ServedCellInformation_NR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ServedCellInformation_NR, ServedCellInformation_NR_sequence); + + return offset; +} + + +static const per_sequence_t ServedCells_NR_Item_sequence[] = { + { &hf_xnap_served_cell_info_NR, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ServedCellInformation_NR }, + { &hf_xnap_neighbour_info_NR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_NeighbourInformation_NR }, + { &hf_xnap_neighbour_info_E_UTRA, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_NeighbourInformation_E_UTRA }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ServedCells_NR_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ServedCells_NR_Item, ServedCells_NR_Item_sequence); + + return offset; +} + + +static const per_sequence_t ServedCells_NR_sequence_of[1] = { + { &hf_xnap_ServedCells_NR_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ServedCells_NR_Item }, +}; + +static int +dissect_xnap_ServedCells_NR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_ServedCells_NR, ServedCells_NR_sequence_of, + 1, maxnoofCellsinNGRANnode, FALSE); + + return offset; +} + + +static const per_sequence_t ServedCells_ToModify_NR_Item_sequence[] = { + { &hf_xnap_old_NR_CGI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NR_CGI }, + { &hf_xnap_served_cell_info_NR, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ServedCellInformation_NR }, + { &hf_xnap_neighbour_info_NR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_NeighbourInformation_NR }, + { &hf_xnap_neighbour_info_E_UTRA, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_NeighbourInformation_E_UTRA }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ServedCells_ToModify_NR_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ServedCells_ToModify_NR_Item, ServedCells_ToModify_NR_Item_sequence); + + return offset; +} + + +static const per_sequence_t ServedCells_ToModify_NR_sequence_of[1] = { + { &hf_xnap_ServedCells_ToModify_NR_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ServedCells_ToModify_NR_Item }, +}; + +static int +dissect_xnap_ServedCells_ToModify_NR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_ServedCells_ToModify_NR, ServedCells_ToModify_NR_sequence_of, + 1, maxnoofCellsinNGRANnode, FALSE); + + return offset; +} + + +static const per_sequence_t ServedCellsToUpdate_NR_sequence[] = { + { &hf_xnap_served_Cells_ToAdd_NR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ServedCells_NR }, + { &hf_xnap_served_Cells_ToModify_NR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ServedCells_ToModify_NR }, + { &hf_xnap_served_Cells_ToDelete_NR, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_NR_CGI }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ServedCellsToUpdate_NR(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ServedCellsToUpdate_NR, ServedCellsToUpdate_NR_sequence); + + return offset; +} + + +static const per_sequence_t TAISupport_List_sequence_of[1] = { + { &hf_xnap_TAISupport_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Single_Container }, +}; + +static int +dissect_xnap_TAISupport_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_TAISupport_List, TAISupport_List_sequence_of, + 1, maxnoofsupportedTACs, FALSE); + + return offset; +} + + +static const per_sequence_t SEQUENCE_SIZE_1_maxnoofsupportedPLMNs_OF_BroadcastPLMNinTAISupport_Item_sequence_of[1] = { + { &hf_xnap_broadcastPLMNs_item_01, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_BroadcastPLMNinTAISupport_Item }, +}; + +static int +dissect_xnap_SEQUENCE_SIZE_1_maxnoofsupportedPLMNs_OF_BroadcastPLMNinTAISupport_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_xnap_SEQUENCE_SIZE_1_maxnoofsupportedPLMNs_OF_BroadcastPLMNinTAISupport_Item, SEQUENCE_SIZE_1_maxnoofsupportedPLMNs_OF_BroadcastPLMNinTAISupport_Item_sequence_of, + 1, maxnoofsupportedPLMNs, FALSE); + + return offset; +} + + +static const per_sequence_t TAISupport_Item_sequence[] = { + { &hf_xnap_tac , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_TAC }, + { &hf_xnap_broadcastPLMNs_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_SEQUENCE_SIZE_1_maxnoofsupportedPLMNs_OF_BroadcastPLMNinTAISupport_Item }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_TAISupport_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_TAISupport_Item, TAISupport_Item_sequence); + + return offset; +} + + +static const value_string xnap_Target_CGI_vals[] = { + { 0, "nr" }, + { 1, "e-utra" }, + { 2, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t Target_CGI_choice[] = { + { 0, &hf_xnap_nr_02 , ASN1_EXTENSION_ROOT , dissect_xnap_NR_CGI }, + { 1, &hf_xnap_e_utra_02 , ASN1_EXTENSION_ROOT , dissect_xnap_E_UTRA_CGI }, + { 2, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_Target_CGI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_Target_CGI, Target_CGI_choice, + NULL); + + return offset; +} + + + +static int +dissect_xnap_T_ng_ran_TraceID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 341 "./asn1/xnap/xnap.cnf" + tvbuff_t *parameter_tvb; + proto_tree *subtree = NULL; + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 8, 8, FALSE, ¶meter_tvb); + + if (!parameter_tvb) + return offset; + subtree = proto_item_add_subtree(actx->created_item, ett_xnap_ng_ran_TraceID); + dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_NONE, FALSE); + proto_tree_add_item(subtree, hf_xnap_ng_ran_TraceID_TraceID, parameter_tvb, 3, 3, ENC_BIG_ENDIAN); + proto_tree_add_item(subtree, hf_xnap_ng_ran_TraceID_TraceRecordingSessionReference, parameter_tvb, 6, 2, ENC_BIG_ENDIAN); + + + + return offset; +} + + + +static int +dissect_xnap_T_interfaces_to_trace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 352 "./asn1/xnap/xnap.cnf" + tvbuff_t *parameter_tvb = NULL; + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 8, 8, FALSE, ¶meter_tvb, NULL); + + if (parameter_tvb) { + const gint *fields[] = { + &hf_xnap_T_interfaces_to_trace_ng_c, + &hf_xnap_T_interfaces_to_trace_x_nc, + &hf_xnap_T_interfaces_to_trace_uu, + &hf_xnap_T_interfaces_to_trace_f1_c, + &hf_xnap_T_interfaces_to_trace_e1, + NULL + }; + proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_interfaces_to_trace); + proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 1, fields, ENC_BIG_ENDIAN); + } + + + + return offset; +} + + +static const value_string xnap_Trace_Depth_vals[] = { + { 0, "minimum" }, + { 1, "medium" }, + { 2, "maximum" }, + { 3, "minimumWithoutVendorSpecificExtension" }, + { 4, "mediumWithoutVendorSpecificExtension" }, + { 5, "maximumWithoutVendorSpecificExtension" }, + { 0, NULL } +}; + + +static int +dissect_xnap_Trace_Depth(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 6, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t TraceActivation_sequence[] = { + { &hf_xnap_ng_ran_TraceID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_T_ng_ran_TraceID }, + { &hf_xnap_interfaces_to_trace, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_T_interfaces_to_trace }, + { &hf_xnap_trace_depth , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_Trace_Depth }, + { &hf_xnap_trace_coll_address, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_TransportLayerAddress }, + { &hf_xnap_ie_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_TraceActivation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_TraceActivation, TraceActivation_sequence); + + return offset; +} + + +static const per_sequence_t UEAggregateMaximumBitRate_sequence[] = { + { &hf_xnap_dl_UE_AMBR , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_BitRate }, + { &hf_xnap_ul_UE_AMBR , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_BitRate }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_UEAggregateMaximumBitRate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_UEAggregateMaximumBitRate, UEAggregateMaximumBitRate_sequence); + + return offset; +} + + +static const per_sequence_t UEContextIDforRRCResume_sequence[] = { + { &hf_xnap_i_rnti , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_I_RNTI }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_UEContextIDforRRCResume(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_UEContextIDforRRCResume, UEContextIDforRRCResume_sequence); + + return offset; +} + + +static const per_sequence_t UEContextIDforRRCReestablishment_sequence[] = { + { &hf_xnap_c_rnti , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_C_RNTI }, + { &hf_xnap_failureCellPCI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_NG_RAN_CellPCI }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_UEContextIDforRRCReestablishment(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_UEContextIDforRRCReestablishment, UEContextIDforRRCReestablishment_sequence); + + return offset; +} + + +static const value_string xnap_UEContextID_vals[] = { + { 0, "rRCResume" }, + { 1, "rRRCReestablishment" }, + { 2, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t UEContextID_choice[] = { + { 0, &hf_xnap_rRCResume , ASN1_EXTENSION_ROOT , dissect_xnap_UEContextIDforRRCResume }, + { 1, &hf_xnap_rRRCReestablishment, ASN1_EXTENSION_ROOT , dissect_xnap_UEContextIDforRRCReestablishment }, + { 2, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_UEContextID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_UEContextID, UEContextID_choice, + NULL); + + return offset; +} + + + +static int +dissect_xnap_T_nr_EncyptionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 272 "./asn1/xnap/xnap.cnf" + tvbuff_t *parameter_tvb = NULL; + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 16, 16, TRUE, ¶meter_tvb, NULL); + + if (parameter_tvb) { + const gint *fields[] = { + &hf_xnap_T_nr_EncyptionAlgorithms_nea1_128, + &hf_xnap_T_nr_EncyptionAlgorithms_nea2_128, + &hf_xnap_T_nr_EncyptionAlgorithms_nea3_128, + NULL + }; + proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_nr_EncyptionAlgorithms); + proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 2, fields, ENC_BIG_ENDIAN); + } + + + + return offset; +} + + + +static int +dissect_xnap_T_nr_IntegrityProtectionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 286 "./asn1/xnap/xnap.cnf" + tvbuff_t *parameter_tvb = NULL; + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 16, 16, TRUE, ¶meter_tvb, NULL); + + if (parameter_tvb) { + const gint *fields[] = { + &hf_xnap_T_nr_IntegrityProtectionAlgorithms_nia1_128, + &hf_xnap_T_nr_IntegrityProtectionAlgorithms_nia2_128, + &hf_xnap_T_nr_IntegrityProtectionAlgorithms_nia3_128, + NULL + }; + proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_nr_IntegrityProtectionAlgorithms); + proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 2, fields, ENC_BIG_ENDIAN); + } + + + + return offset; +} + + + +static int +dissect_xnap_T_e_utra_EncyptionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 300 "./asn1/xnap/xnap.cnf" + tvbuff_t *parameter_tvb = NULL; + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 16, 16, TRUE, ¶meter_tvb, NULL); + + if (parameter_tvb) { + const gint *fields[] = { + &hf_xnap_T_e_utra_EncyptionAlgorithms_eea1_128, + &hf_xnap_T_e_utra_EncyptionAlgorithms_eea2_128, + &hf_xnap_T_e_utra_EncyptionAlgorithms_eea3_128, + NULL + }; + proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_e_utra_EncyptionAlgorithms); + proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 2, fields, ENC_BIG_ENDIAN); + } + + + + return offset; +} + + + +static int +dissect_xnap_T_e_utra_IntegrityProtectionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 314 "./asn1/xnap/xnap.cnf" + tvbuff_t *parameter_tvb = NULL; + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 16, 16, TRUE, ¶meter_tvb, NULL); + + if (parameter_tvb) { + const gint *fields[] = { + &hf_xnap_T_e_utra_IntegrityProtectionAlgorithms_eia1_128, + &hf_xnap_T_e_utra_IntegrityProtectionAlgorithms_eia2_128, + &hf_xnap_T_e_utra_IntegrityProtectionAlgorithms_eia3_128, + NULL + }; + proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_xnap_e_utra_IntegrityProtectionAlgorithms); + proto_tree_add_bitmask_list(subtree, parameter_tvb, 0, 2, fields, ENC_BIG_ENDIAN); + } + + + + return offset; +} + + +static const per_sequence_t UESecurityCapabilities_sequence[] = { + { &hf_xnap_nr_EncyptionAlgorithms, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_T_nr_EncyptionAlgorithms }, + { &hf_xnap_nr_IntegrityProtectionAlgorithms, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_T_nr_IntegrityProtectionAlgorithms }, + { &hf_xnap_e_utra_EncyptionAlgorithms, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_T_e_utra_EncyptionAlgorithms }, + { &hf_xnap_e_utra_IntegrityProtectionAlgorithms, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_T_e_utra_IntegrityProtectionAlgorithms }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_UESecurityCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_UESecurityCapabilities, UESecurityCapabilities_sequence); + + return offset; +} + + + +static int +dissect_xnap_T_rrc_Context(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 164 "./asn1/xnap/xnap.cnf" + tvbuff_t *parameter_tvb = NULL; + + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb); + + if (parameter_tvb) { + struct xnap_private_data *xnap_data = xnap_get_private_data(actx->pinfo); + proto_tree *subtree; + GlobalNG_RANNode_ID_enum target_ranmode_id = (GlobalNG_RANNode_ID_enum)-1; + + if (xnap_data->xnap_conv) { + if (addresses_equal(&actx->pinfo->dst, &xnap_data->xnap_conv->addr_a)) { + target_ranmode_id = xnap_data->xnap_conv->ranmode_id_a; + } else if (addresses_equal(&actx->pinfo->dst, &xnap_data->xnap_conv->addr_b)) { + target_ranmode_id = xnap_data->xnap_conv->ranmode_id_b; + } + } + subtree = proto_item_add_subtree(actx->created_item, ett_xnap_RRC_Context); + if (target_ranmode_id == GlobalNG_RANNode_ID_gNB) { + dissect_nr_rrc_HandoverPreparationInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } else if (target_ranmode_id == GlobalNG_RANNode_ID_ng_eNB) { + dissect_lte_rrc_HandoverPreparationInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } + } + + + + return offset; +} + + +static const per_sequence_t UEContextInfoRetrUECtxtResp_sequence[] = { + { &hf_xnap_ng_c_UE_signalling_ref, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_AMF_UE_NGAP_ID }, + { &hf_xnap_signalling_TNL_at_source, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_CPTransportLayerInformation }, + { &hf_xnap_ueSecurityCapabilities, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_UESecurityCapabilities }, + { &hf_xnap_securityInformation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_AS_SecurityInformation }, + { &hf_xnap_ue_AMBR , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_UEAggregateMaximumBitRate }, + { &hf_xnap_pduSessionResourcesToBeSet_List, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PDUSessionResourcesToBeSetup_List }, + { &hf_xnap_rrc_Context , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_T_rrc_Context }, + { &hf_xnap_mobilityRestrictionList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_MobilityRestrictionList }, + { &hf_xnap_indexToRatFrequencySelectionPriority, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_RFSP_Index }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_UEContextInfoRetrUECtxtResp(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_UEContextInfoRetrUECtxtResp, UEContextInfoRetrUECtxtResp_sequence); + + return offset; +} + + + +static int +dissect_xnap_UEIdentityIndexValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 63U, NULL, FALSE); + + return offset; +} + + +static const value_string xnap_UERANPagingIdentity_vals[] = { + { 0, "i-RNTI" }, + { 1, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t UERANPagingIdentity_choice[] = { + { 0, &hf_xnap_i_RNTI , ASN1_EXTENSION_ROOT , dissect_xnap_I_RNTI }, + { 1, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_UERANPagingIdentity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_UERANPagingIdentity, UERANPagingIdentity_choice, + NULL); + + return offset; +} + + + +static int +dissect_xnap_XnBenefitValue(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 1U, 8U, NULL, TRUE); + + return offset; +} + + +static const per_sequence_t HandoverRequest_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_HandoverRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 370 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequest"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_HandoverRequest, HandoverRequest_sequence); + + return offset; +} + + + +static int +dissect_xnap_T_rrc_Context_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 116 "./asn1/xnap/xnap.cnf" + tvbuff_t *parameter_tvb = NULL; + + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb); + + if (parameter_tvb) { + struct xnap_private_data *xnap_data = xnap_get_private_data(actx->pinfo); + proto_tree *subtree; + GlobalNG_RANNode_ID_enum target_ranmode_id = (GlobalNG_RANNode_ID_enum)-1; + + if (xnap_data->xnap_conv) { + if (addresses_equal(&actx->pinfo->dst, &xnap_data->xnap_conv->addr_a)) { + target_ranmode_id = xnap_data->xnap_conv->ranmode_id_a; + } else if (addresses_equal(&actx->pinfo->dst, &xnap_data->xnap_conv->addr_b)) { + target_ranmode_id = xnap_data->xnap_conv->ranmode_id_b; + } + } + subtree = proto_item_add_subtree(actx->created_item, ett_xnap_RRC_Context); + if (target_ranmode_id == GlobalNG_RANNode_ID_gNB) { + dissect_nr_rrc_HandoverPreparationInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } else if (target_ranmode_id == GlobalNG_RANNode_ID_ng_eNB) { + dissect_lte_rrc_HandoverPreparationInformation_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } + } + + + + return offset; +} + + +static const per_sequence_t UEContextInfoHORequest_sequence[] = { + { &hf_xnap_ng_c_UE_reference, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_AMF_UE_NGAP_ID }, + { &hf_xnap_cp_TNL_info_source, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_CPTransportLayerInformation }, + { &hf_xnap_ueSecurityCapabilities, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_UESecurityCapabilities }, + { &hf_xnap_securityInformation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_AS_SecurityInformation }, + { &hf_xnap_indexToRatFrequencySelectionPriority, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_RFSP_Index }, + { &hf_xnap_ue_AMBR , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_UEAggregateMaximumBitRate }, + { &hf_xnap_pduSessionResourcesToBeSetup_List, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PDUSessionResourcesToBeSetup_List }, + { &hf_xnap_rrc_Context_01 , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_T_rrc_Context_01 }, + { &hf_xnap_locationReportingInformation, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_LocationReportingInformation }, + { &hf_xnap_hlr , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_MobilityRestrictionList }, + { &hf_xnap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_UEContextInfoHORequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_UEContextInfoHORequest, UEContextInfoHORequest_sequence); + + return offset; +} + + +static const per_sequence_t HandoverRequestAcknowledge_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_HandoverRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 372 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverRequestAcknowledge"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_HandoverRequestAcknowledge, HandoverRequestAcknowledge_sequence); + + return offset; +} + + + +static int +dissect_xnap_Target2SourceNG_RANnodeTranspContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 140 "./asn1/xnap/xnap.cnf" + tvbuff_t *parameter_tvb = NULL; + + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, ¶meter_tvb); + + if (parameter_tvb) { + struct xnap_private_data *xnap_data = xnap_get_private_data(actx->pinfo); + proto_tree *subtree; + GlobalNG_RANNode_ID_enum target_ranmode_id = (GlobalNG_RANNode_ID_enum)-1; + + if (xnap_data->xnap_conv) { + if (addresses_equal(&actx->pinfo->dst, &xnap_data->xnap_conv->addr_a)) { + target_ranmode_id = xnap_data->xnap_conv->ranmode_id_a; + } else if (addresses_equal(&actx->pinfo->dst, &xnap_data->xnap_conv->addr_b)) { + target_ranmode_id = xnap_data->xnap_conv->ranmode_id_b; + } + } + subtree = proto_item_add_subtree(actx->created_item, ett_nxap_container); + if (target_ranmode_id == GlobalNG_RANNode_ID_gNB) { + dissect_nr_rrc_HandoverCommand_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } else if (target_ranmode_id == GlobalNG_RANNode_ID_ng_eNB) { + dissect_lte_rrc_HandoverCommand_PDU(parameter_tvb, actx->pinfo, subtree, NULL); + } + } + + + + return offset; +} + + +static const per_sequence_t HandoverPreparationFailure_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_HandoverPreparationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 374 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverPreparationFailure"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_HandoverPreparationFailure, HandoverPreparationFailure_sequence); + + return offset; +} + + +static const per_sequence_t SNStatusTransfer_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SNStatusTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 376 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNStatusTransfer"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SNStatusTransfer, SNStatusTransfer_sequence); + + return offset; +} + + +static const per_sequence_t UEContextRelease_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_UEContextRelease(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 390 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "UEContextRelease"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_UEContextRelease, UEContextRelease_sequence); + + return offset; +} + + +static const per_sequence_t HandoverCancel_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_HandoverCancel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 378 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "HandoverCancel"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_HandoverCancel, HandoverCancel_sequence); + + return offset; +} + + +static const per_sequence_t RANPaging_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_RANPaging(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 386 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RANPaging"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_RANPaging, RANPaging_sequence); + + return offset; +} + + +static const per_sequence_t RetrieveUEContextRequest_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_RetrieveUEContextRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 380 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RetrieveUEContextRequest"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_RetrieveUEContextRequest, RetrieveUEContextRequest_sequence); + + return offset; +} + + +static const per_sequence_t RetrieveUEContextResponse_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_RetrieveUEContextResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 382 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RetrieveUEContextResponse"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_RetrieveUEContextResponse, RetrieveUEContextResponse_sequence); + + return offset; +} + + +static const per_sequence_t RetrieveUEContextFailure_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_RetrieveUEContextFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 384 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RetrieveUEContextFailure"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_RetrieveUEContextFailure, RetrieveUEContextFailure_sequence); + + return offset; +} + + +static const per_sequence_t DataForwardingAddressIndication_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_DataForwardingAddressIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 388 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "DataForwardingAddressIndication"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_DataForwardingAddressIndication, DataForwardingAddressIndication_sequence); + + return offset; +} + + +static const per_sequence_t SNodeAdditionRequest_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SNodeAdditionRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 392 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeAdditionRequest"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SNodeAdditionRequest, SNodeAdditionRequest_sequence); + + return offset; +} + + +static const per_sequence_t SNodeAdditionRequestAcknowledge_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SNodeAdditionRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 394 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeAdditionRequestAcknowledge"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SNodeAdditionRequestAcknowledge, SNodeAdditionRequestAcknowledge_sequence); + + return offset; +} + + +static const per_sequence_t SNodeAdditionRequestReject_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SNodeAdditionRequestReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 396 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeAdditionRequestReject"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SNodeAdditionRequestReject, SNodeAdditionRequestReject_sequence); + + return offset; +} + + +static const per_sequence_t SNodeReconfigurationComplete_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SNodeReconfigurationComplete(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 398 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeReconfigurationComplete"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SNodeReconfigurationComplete, SNodeReconfigurationComplete_sequence); + + return offset; +} + + +static const per_sequence_t SNodeModificationRequest_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SNodeModificationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 400 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeModificationRequest"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SNodeModificationRequest, SNodeModificationRequest_sequence); + + return offset; +} + + +static const per_sequence_t SNodeModificationRequestAcknowledge_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SNodeModificationRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 402 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeModificationRequestAcknowledge"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SNodeModificationRequestAcknowledge, SNodeModificationRequestAcknowledge_sequence); + + return offset; +} + + +static const per_sequence_t SNodeModificationRequestReject_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SNodeModificationRequestReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 404 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeModificationRequestReject"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SNodeModificationRequestReject, SNodeModificationRequestReject_sequence); + + return offset; +} + + +static const per_sequence_t SNodeModificationRequired_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SNodeModificationRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 406 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeModificationRequired"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SNodeModificationRequired, SNodeModificationRequired_sequence); + + return offset; +} + + +static const per_sequence_t SNodeModificationConfirm_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SNodeModificationConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 408 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeModificationConfirm"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SNodeModificationConfirm, SNodeModificationConfirm_sequence); + + return offset; +} + + +static const per_sequence_t SNodeModificationRefuse_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SNodeModificationRefuse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 410 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeModificationRefuse"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SNodeModificationRefuse, SNodeModificationRefuse_sequence); + + return offset; +} + + +static const per_sequence_t SNodeReleaseRequest_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SNodeReleaseRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 412 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeReleaseRequest"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SNodeReleaseRequest, SNodeReleaseRequest_sequence); + + return offset; +} + + +static const per_sequence_t SNodeReleaseRequestAcknowledge_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SNodeReleaseRequestAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 414 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeReleaseRequestAcknowledge"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SNodeReleaseRequestAcknowledge, SNodeReleaseRequestAcknowledge_sequence); + + return offset; +} + + +static const per_sequence_t SNodeReleaseReject_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SNodeReleaseReject(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 416 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeReleaseReject"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SNodeReleaseReject, SNodeReleaseReject_sequence); + + return offset; +} + + +static const per_sequence_t SNodeReleaseRequired_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SNodeReleaseRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 418 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeReleaseRequired"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SNodeReleaseRequired, SNodeReleaseRequired_sequence); + + return offset; +} + + +static const per_sequence_t SNodeReleaseConfirm_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SNodeReleaseConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 420 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeReleaseConfirm"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SNodeReleaseConfirm, SNodeReleaseConfirm_sequence); + + return offset; +} + + +static const per_sequence_t SNodeCounterCheckRequest_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SNodeCounterCheckRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 422 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeCounterCheckRequest"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SNodeCounterCheckRequest, SNodeCounterCheckRequest_sequence); + + return offset; +} + + +static const per_sequence_t SNodeChangeRequired_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SNodeChangeRequired(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 424 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeChangeRequired"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SNodeChangeRequired, SNodeChangeRequired_sequence); + + return offset; +} + + +static const per_sequence_t SNodeChangeConfirm_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SNodeChangeConfirm(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 426 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeChangeConfirm"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SNodeChangeConfirm, SNodeChangeConfirm_sequence); + + return offset; +} + + +static const per_sequence_t SNodeChangeRefuse_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SNodeChangeRefuse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 428 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "SNodeChangeRefuse"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SNodeChangeRefuse, SNodeChangeRefuse_sequence); + + return offset; +} + + +static const per_sequence_t RRCTransfer_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_RRCTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 430 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RRCTransfer"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_RRCTransfer, RRCTransfer_sequence); + + return offset; +} + + +static const per_sequence_t XnSetupRequest_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_XnSetupRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 438 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "XnSetupRequest"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_XnSetupRequest, XnSetupRequest_sequence); + + return offset; +} + + +static const per_sequence_t XnSetupResponse_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_XnSetupResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 440 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "XnSetupResponse"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_XnSetupResponse, XnSetupResponse_sequence); + + return offset; +} + + +static const per_sequence_t XnSetupFailure_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_XnSetupFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 442 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "XnSetupFailure"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_XnSetupFailure, XnSetupFailure_sequence); + + return offset; +} + + +static const per_sequence_t NGRANNodeConfigurationUpdate_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_NGRANNodeConfigurationUpdate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 444 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NGRANNodeConfigurationUpdate"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_NGRANNodeConfigurationUpdate, NGRANNodeConfigurationUpdate_sequence); + + return offset; +} + + +static const value_string xnap_ConfigurationUpdateInitiatingNodeChoice_vals[] = { + { 0, "gNB" }, + { 1, "ng-eNB" }, + { 2, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t ConfigurationUpdateInitiatingNodeChoice_choice[] = { + { 0, &hf_xnap_gNB_01 , ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolIE_Container }, + { 1, &hf_xnap_ng_eNB_01 , ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolIE_Container }, + { 2, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_ConfigurationUpdateInitiatingNodeChoice(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_ConfigurationUpdateInitiatingNodeChoice, ConfigurationUpdateInitiatingNodeChoice_choice, + NULL); + + return offset; +} + + +static const per_sequence_t NGRANNodeConfigurationUpdateAcknowledge_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_NGRANNodeConfigurationUpdateAcknowledge(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 446 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NGRANNodeConfigurationUpdateAcknowledge"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_NGRANNodeConfigurationUpdateAcknowledge, NGRANNodeConfigurationUpdateAcknowledge_sequence); + + return offset; +} + + +static const per_sequence_t RespondingNodeTypeConfigUpdateAck_ng_eNB_sequence[] = { + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_RespondingNodeTypeConfigUpdateAck_ng_eNB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_RespondingNodeTypeConfigUpdateAck_ng_eNB, RespondingNodeTypeConfigUpdateAck_ng_eNB_sequence); + + return offset; +} + + +static const per_sequence_t RespondingNodeTypeConfigUpdateAck_gNB_sequence[] = { + { &hf_xnap_served_NR_Cells, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ServedCells_NR }, + { &hf_xnap_iE_Extension , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_xnap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_RespondingNodeTypeConfigUpdateAck_gNB(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_RespondingNodeTypeConfigUpdateAck_gNB, RespondingNodeTypeConfigUpdateAck_gNB_sequence); + + return offset; +} + + +static const value_string xnap_RespondingNodeTypeConfigUpdateAck_vals[] = { + { 0, "ng-eNB" }, + { 1, "gNB" }, + { 2, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t RespondingNodeTypeConfigUpdateAck_choice[] = { + { 0, &hf_xnap_ng_eNB_02 , ASN1_EXTENSION_ROOT , dissect_xnap_RespondingNodeTypeConfigUpdateAck_ng_eNB }, + { 1, &hf_xnap_gNB_02 , ASN1_EXTENSION_ROOT , dissect_xnap_RespondingNodeTypeConfigUpdateAck_gNB }, + { 2, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_RespondingNodeTypeConfigUpdateAck(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_RespondingNodeTypeConfigUpdateAck, RespondingNodeTypeConfigUpdateAck_choice, + NULL); + + return offset; +} + + +static const per_sequence_t NGRANNodeConfigurationUpdateFailure_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_NGRANNodeConfigurationUpdateFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 448 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "NGRANNodeConfigurationUpdateFailure"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_NGRANNodeConfigurationUpdateFailure, NGRANNodeConfigurationUpdateFailure_sequence); + + return offset; +} + + +static const per_sequence_t XnRemovalRequest_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_XnRemovalRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 432 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "XnRemovalRequest"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_XnRemovalRequest, XnRemovalRequest_sequence); + + return offset; +} + + +static const per_sequence_t XnRemovalResponse_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_XnRemovalResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 434 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "XnRemovalResponse"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_XnRemovalResponse, XnRemovalResponse_sequence); + + return offset; +} + + +static const per_sequence_t XnRemovalFailure_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_XnRemovalFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 436 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "XnRemovalFailure"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_XnRemovalFailure, XnRemovalFailure_sequence); + + return offset; +} + + +static const per_sequence_t CellActivationRequest_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_CellActivationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 450 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CellActivationRequest"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_CellActivationRequest, CellActivationRequest_sequence); + + return offset; +} + + +static const value_string xnap_ServedCellsToActivate_vals[] = { + { 0, "nr-cells" }, + { 1, "e-utra-cells" }, + { 2, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t ServedCellsToActivate_choice[] = { + { 0, &hf_xnap_nr_cells , ASN1_EXTENSION_ROOT , dissect_xnap_SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_NR_CGI }, + { 1, &hf_xnap_e_utra_cells , ASN1_EXTENSION_ROOT , dissect_xnap_SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_E_UTRA_CGI }, + { 2, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_ServedCellsToActivate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_ServedCellsToActivate, ServedCellsToActivate_choice, + NULL); + + return offset; +} + + +static const per_sequence_t CellActivationResponse_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_CellActivationResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 452 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CellActivationResponse"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_CellActivationResponse, CellActivationResponse_sequence); + + return offset; +} + + +static const value_string xnap_ActivatedServedCells_vals[] = { + { 0, "nr-cells" }, + { 1, "e-utra-cells" }, + { 2, "choice-extension" }, + { 0, NULL } +}; + +static const per_choice_t ActivatedServedCells_choice[] = { + { 0, &hf_xnap_nr_cells , ASN1_EXTENSION_ROOT , dissect_xnap_SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_NR_CGI }, + { 1, &hf_xnap_e_utra_cells , ASN1_EXTENSION_ROOT , dissect_xnap_SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_E_UTRA_CGI }, + { 2, &hf_xnap_choice_extension, ASN1_EXTENSION_ROOT , dissect_xnap_ProtocolExtensionContainer }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_ActivatedServedCells(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_ActivatedServedCells, ActivatedServedCells_choice, + NULL); + + return offset; +} + + +static const per_sequence_t CellActivationFailure_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_CellActivationFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 454 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "CellActivationFailure"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_CellActivationFailure, CellActivationFailure_sequence); + + return offset; +} + + +static const per_sequence_t ResetRequest_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ResetRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 456 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetRequest"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ResetRequest, ResetRequest_sequence); + + return offset; +} + + +static const per_sequence_t ResetResponse_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ResetResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 458 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetResponse"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ResetResponse, ResetResponse_sequence); + + return offset; +} + + +static const per_sequence_t ErrorIndication_sequence[] = { + { &hf_xnap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_ErrorIndication(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 460 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ErrorIndication"); + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_ErrorIndication, ErrorIndication_sequence); + + return offset; +} + + +static const per_sequence_t PrivateMessage_sequence[] = { + { &hf_xnap_privateIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_xnap_PrivateIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_PrivateMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 462 "./asn1/xnap/xnap.cnf" + col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PrivateMessage"); + + + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_PrivateMessage, PrivateMessage_sequence); + + return offset; +} + + + +static int +dissect_xnap_InitiatingMessage_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 85 "./asn1/xnap/xnap.cnf" + struct xnap_private_data *xnap_data = xnap_get_private_data(actx->pinfo); + xnap_data->message_type = INITIATING_MESSAGE; + + + offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_InitiatingMessageValue); + + return offset; +} + + +static const per_sequence_t InitiatingMessage_sequence[] = { + { &hf_xnap_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProcedureCode }, + { &hf_xnap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_Criticality }, + { &hf_xnap_initiatingMessage_value, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_InitiatingMessage_value }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_InitiatingMessage(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_InitiatingMessage, InitiatingMessage_sequence); + + return offset; +} + + + +static int +dissect_xnap_SuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 90 "./asn1/xnap/xnap.cnf" + struct xnap_private_data *xnap_data = xnap_get_private_data(actx->pinfo); + xnap_data->message_type = SUCCESSFUL_OUTCOME; + + + offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_SuccessfulOutcomeValue); + + return offset; +} + + +static const per_sequence_t SuccessfulOutcome_sequence[] = { + { &hf_xnap_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProcedureCode }, + { &hf_xnap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_Criticality }, + { &hf_xnap_successfulOutcome_value, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_SuccessfulOutcome_value }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_SuccessfulOutcome(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_SuccessfulOutcome, SuccessfulOutcome_sequence); + + return offset; +} + + + +static int +dissect_xnap_UnsuccessfulOutcome_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 95 "./asn1/xnap/xnap.cnf" + struct xnap_private_data *xnap_data = xnap_get_private_data(actx->pinfo); + xnap_data->message_type = UNSUCCESSFUL_OUTCOME; + + + offset = dissect_per_open_type_pdu_new(tvb, offset, actx, tree, hf_index, dissect_UnsuccessfulOutcomeValue); + + return offset; +} + + +static const per_sequence_t UnsuccessfulOutcome_sequence[] = { + { &hf_xnap_procedureCode , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_ProcedureCode }, + { &hf_xnap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_Criticality }, + { &hf_xnap_value , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_xnap_UnsuccessfulOutcome_value }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_xnap_UnsuccessfulOutcome(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_xnap_UnsuccessfulOutcome, UnsuccessfulOutcome_sequence); + + return offset; +} + + +static const value_string xnap_XnAP_PDU_vals[] = { + { 0, "initiatingMessage" }, + { 1, "successfulOutcome" }, + { 2, "unsuccessfulOutcome" }, + { 0, NULL } +}; + +static const per_choice_t XnAP_PDU_choice[] = { + { 0, &hf_xnap_initiatingMessage, ASN1_EXTENSION_ROOT , dissect_xnap_InitiatingMessage }, + { 1, &hf_xnap_successfulOutcome, ASN1_EXTENSION_ROOT , dissect_xnap_SuccessfulOutcome }, + { 2, &hf_xnap_unsuccessfulOutcome, ASN1_EXTENSION_ROOT , dissect_xnap_UnsuccessfulOutcome }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_xnap_XnAP_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_xnap_XnAP_PDU, XnAP_PDU_choice, + NULL); + + return offset; +} + +/*--- PDUs ---*/ + +static int dissect_ActivationIDforCellActivation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_ActivationIDforCellActivation(tvb, offset, &asn1_ctx, tree, hf_xnap_ActivationIDforCellActivation_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_AMF_Pool_Information_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_AMF_Pool_Information(tvb, offset, &asn1_ctx, tree, hf_xnap_AMF_Pool_Information_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_AreaOfInterest_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_AreaOfInterest_Item(tvb, offset, &asn1_ctx, tree, hf_xnap_AreaOfInterest_Item_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_AssistanceDataForRANPaging_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_AssistanceDataForRANPaging(tvb, offset, &asn1_ctx, tree, hf_xnap_AssistanceDataForRANPaging_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_Cause_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_Cause(tvb, offset, &asn1_ctx, tree, hf_xnap_Cause_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_CellAssistanceInfo_NR_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_CellAssistanceInfo_NR(tvb, offset, &asn1_ctx, tree, hf_xnap_CellAssistanceInfo_NR_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_CriticalityDiagnostics_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_CriticalityDiagnostics(tvb, offset, &asn1_ctx, tree, hf_xnap_CriticalityDiagnostics_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_DataforwardingInfoperPDUSession_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_DataforwardingInfoperPDUSession(tvb, offset, &asn1_ctx, tree, hf_xnap_DataforwardingInfoperPDUSession_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_DataforwardingInfoperPDUSession_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_DataforwardingInfoperPDUSession_Item(tvb, offset, &asn1_ctx, tree, hf_xnap_DataforwardingInfoperPDUSession_Item_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_DataForwardingResponseDRBItem_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_DataForwardingResponseDRBItem(tvb, offset, &asn1_ctx, tree, hf_xnap_DataForwardingResponseDRBItem_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_DRBsSubjectToStatusTransfer_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_DRBsSubjectToStatusTransfer_List(tvb, offset, &asn1_ctx, tree, hf_xnap_DRBsSubjectToStatusTransfer_List_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_DRBsSubjectToStatusTransfer_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_DRBsSubjectToStatusTransfer_Item(tvb, offset, &asn1_ctx, tree, hf_xnap_DRBsSubjectToStatusTransfer_Item_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_DRBToQoSFlowMapping_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_DRBToQoSFlowMapping_Item(tvb, offset, &asn1_ctx, tree, hf_xnap_DRBToQoSFlowMapping_Item_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_GlobalNG_RANNode_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_GlobalNG_RANNode_ID(tvb, offset, &asn1_ctx, tree, hf_xnap_GlobalNG_RANNode_ID_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_GUAMI_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_GUAMI(tvb, offset, &asn1_ctx, tree, hf_xnap_GUAMI_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_LocationReportingInformation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_LocationReportingInformation(tvb, offset, &asn1_ctx, tree, hf_xnap_LocationReportingInformation_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_MAC_I_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_MAC_I(tvb, offset, &asn1_ctx, tree, hf_xnap_MAC_I_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_MaskedIMEISV_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_MaskedIMEISV(tvb, offset, &asn1_ctx, tree, hf_xnap_MaskedIMEISV_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_NG_RAN_Cell_Identity_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_NG_RAN_Cell_Identity(tvb, offset, &asn1_ctx, tree, hf_xnap_NG_RAN_Cell_Identity_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_NG_RANnodeUEXnAPID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_NG_RANnodeUEXnAPID(tvb, offset, &asn1_ctx, tree, hf_xnap_NG_RANnodeUEXnAPID_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_PagingDRX_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_PagingDRX(tvb, offset, &asn1_ctx, tree, hf_xnap_PagingDRX_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_PDUSessionResourcesAdmitted_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_PDUSessionResourcesAdmitted_List(tvb, offset, &asn1_ctx, tree, hf_xnap_PDUSessionResourcesAdmitted_List_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_PDUSessionResourcesAdmitted_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_PDUSessionResourcesAdmitted_Item(tvb, offset, &asn1_ctx, tree, hf_xnap_PDUSessionResourcesAdmitted_Item_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_PDUSessionResourcesNotAdmitted_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_PDUSessionResourcesNotAdmitted_List(tvb, offset, &asn1_ctx, tree, hf_xnap_PDUSessionResourcesNotAdmitted_List_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_PDUSessionResourcesNotAdmitted_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_PDUSessionResourcesNotAdmitted_Item(tvb, offset, &asn1_ctx, tree, hf_xnap_PDUSessionResourcesNotAdmitted_Item_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_PDUSessionResourcesToBeSetup_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_PDUSessionResourcesToBeSetup_Item(tvb, offset, &asn1_ctx, tree, hf_xnap_PDUSessionResourcesToBeSetup_Item_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_QoSFlow_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_QoSFlow_Item(tvb, offset, &asn1_ctx, tree, hf_xnap_QoSFlow_Item_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_QoSFlowAdmitted_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_QoSFlowAdmitted_Item(tvb, offset, &asn1_ctx, tree, hf_xnap_QoSFlowAdmitted_Item_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_QoSFlowNotAdmitted_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_QoSFlowNotAdmitted_Item(tvb, offset, &asn1_ctx, tree, hf_xnap_QoSFlowNotAdmitted_Item_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_QoSFlowsToBeSetup_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_QoSFlowsToBeSetup_Item(tvb, offset, &asn1_ctx, tree, hf_xnap_QoSFlowsToBeSetup_Item_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_RANPagingArea_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_RANPagingArea(tvb, offset, &asn1_ctx, tree, hf_xnap_RANPagingArea_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_RANPagingPriority_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_RANPagingPriority(tvb, offset, &asn1_ctx, tree, hf_xnap_RANPagingPriority_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_ResetRequestTypeInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_ResetRequestTypeInfo(tvb, offset, &asn1_ctx, tree, hf_xnap_ResetRequestTypeInfo_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_ResetRequestPartialReleaseItem_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_ResetRequestPartialReleaseItem(tvb, offset, &asn1_ctx, tree, hf_xnap_ResetRequestPartialReleaseItem_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_ResetResponseTypeInfo_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_ResetResponseTypeInfo(tvb, offset, &asn1_ctx, tree, hf_xnap_ResetResponseTypeInfo_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_ResetResponsePartialReleaseItem_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_ResetResponsePartialReleaseItem(tvb, offset, &asn1_ctx, tree, hf_xnap_ResetResponsePartialReleaseItem_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_ServedCells_E_UTRA_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_ServedCells_E_UTRA(tvb, offset, &asn1_ctx, tree, hf_xnap_ServedCells_E_UTRA_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_ServedCellsToUpdate_E_UTRA_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_ServedCellsToUpdate_E_UTRA(tvb, offset, &asn1_ctx, tree, hf_xnap_ServedCellsToUpdate_E_UTRA_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_ServedCells_NR_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_ServedCells_NR(tvb, offset, &asn1_ctx, tree, hf_xnap_ServedCells_NR_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_ServedCellsToUpdate_NR_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_ServedCellsToUpdate_NR(tvb, offset, &asn1_ctx, tree, hf_xnap_ServedCellsToUpdate_NR_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_TAISupport_List_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_TAISupport_List(tvb, offset, &asn1_ctx, tree, hf_xnap_TAISupport_List_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_TAISupport_Item_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_TAISupport_Item(tvb, offset, &asn1_ctx, tree, hf_xnap_TAISupport_Item_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_Target_CGI_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_Target_CGI(tvb, offset, &asn1_ctx, tree, hf_xnap_Target_CGI_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_TraceActivation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_TraceActivation(tvb, offset, &asn1_ctx, tree, hf_xnap_TraceActivation_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_UEContextID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_UEContextID(tvb, offset, &asn1_ctx, tree, hf_xnap_UEContextID_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_UEContextInfoRetrUECtxtResp_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_UEContextInfoRetrUECtxtResp(tvb, offset, &asn1_ctx, tree, hf_xnap_UEContextInfoRetrUECtxtResp_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_UEIdentityIndexValue_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_UEIdentityIndexValue(tvb, offset, &asn1_ctx, tree, hf_xnap_UEIdentityIndexValue_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_UERANPagingIdentity_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_UERANPagingIdentity(tvb, offset, &asn1_ctx, tree, hf_xnap_UERANPagingIdentity_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_XnBenefitValue_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_XnBenefitValue(tvb, offset, &asn1_ctx, tree, hf_xnap_XnBenefitValue_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_HandoverRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_HandoverRequest(tvb, offset, &asn1_ctx, tree, hf_xnap_HandoverRequest_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_UEContextInfoHORequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_UEContextInfoHORequest(tvb, offset, &asn1_ctx, tree, hf_xnap_UEContextInfoHORequest_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_HandoverRequestAcknowledge_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_HandoverRequestAcknowledge(tvb, offset, &asn1_ctx, tree, hf_xnap_HandoverRequestAcknowledge_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_Target2SourceNG_RANnodeTranspContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_Target2SourceNG_RANnodeTranspContainer(tvb, offset, &asn1_ctx, tree, hf_xnap_Target2SourceNG_RANnodeTranspContainer_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_HandoverPreparationFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_HandoverPreparationFailure(tvb, offset, &asn1_ctx, tree, hf_xnap_HandoverPreparationFailure_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_SNStatusTransfer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_SNStatusTransfer(tvb, offset, &asn1_ctx, tree, hf_xnap_SNStatusTransfer_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_UEContextRelease_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_UEContextRelease(tvb, offset, &asn1_ctx, tree, hf_xnap_UEContextRelease_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_HandoverCancel_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_HandoverCancel(tvb, offset, &asn1_ctx, tree, hf_xnap_HandoverCancel_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_RANPaging_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_RANPaging(tvb, offset, &asn1_ctx, tree, hf_xnap_RANPaging_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_RetrieveUEContextRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_RetrieveUEContextRequest(tvb, offset, &asn1_ctx, tree, hf_xnap_RetrieveUEContextRequest_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_RetrieveUEContextResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_RetrieveUEContextResponse(tvb, offset, &asn1_ctx, tree, hf_xnap_RetrieveUEContextResponse_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_RetrieveUEContextFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_RetrieveUEContextFailure(tvb, offset, &asn1_ctx, tree, hf_xnap_RetrieveUEContextFailure_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_DataForwardingAddressIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_DataForwardingAddressIndication(tvb, offset, &asn1_ctx, tree, hf_xnap_DataForwardingAddressIndication_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_SNodeAdditionRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_SNodeAdditionRequest(tvb, offset, &asn1_ctx, tree, hf_xnap_SNodeAdditionRequest_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_SNodeAdditionRequestAcknowledge_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_SNodeAdditionRequestAcknowledge(tvb, offset, &asn1_ctx, tree, hf_xnap_SNodeAdditionRequestAcknowledge_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_SNodeAdditionRequestReject_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_SNodeAdditionRequestReject(tvb, offset, &asn1_ctx, tree, hf_xnap_SNodeAdditionRequestReject_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_SNodeReconfigurationComplete_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_SNodeReconfigurationComplete(tvb, offset, &asn1_ctx, tree, hf_xnap_SNodeReconfigurationComplete_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_SNodeModificationRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_SNodeModificationRequest(tvb, offset, &asn1_ctx, tree, hf_xnap_SNodeModificationRequest_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_SNodeModificationRequestAcknowledge_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_SNodeModificationRequestAcknowledge(tvb, offset, &asn1_ctx, tree, hf_xnap_SNodeModificationRequestAcknowledge_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_SNodeModificationRequestReject_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_SNodeModificationRequestReject(tvb, offset, &asn1_ctx, tree, hf_xnap_SNodeModificationRequestReject_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_SNodeModificationRequired_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_SNodeModificationRequired(tvb, offset, &asn1_ctx, tree, hf_xnap_SNodeModificationRequired_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_SNodeModificationConfirm_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_SNodeModificationConfirm(tvb, offset, &asn1_ctx, tree, hf_xnap_SNodeModificationConfirm_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_SNodeModificationRefuse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_SNodeModificationRefuse(tvb, offset, &asn1_ctx, tree, hf_xnap_SNodeModificationRefuse_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_SNodeReleaseRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_SNodeReleaseRequest(tvb, offset, &asn1_ctx, tree, hf_xnap_SNodeReleaseRequest_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_SNodeReleaseRequestAcknowledge_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_SNodeReleaseRequestAcknowledge(tvb, offset, &asn1_ctx, tree, hf_xnap_SNodeReleaseRequestAcknowledge_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_SNodeReleaseReject_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_SNodeReleaseReject(tvb, offset, &asn1_ctx, tree, hf_xnap_SNodeReleaseReject_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_SNodeReleaseRequired_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_SNodeReleaseRequired(tvb, offset, &asn1_ctx, tree, hf_xnap_SNodeReleaseRequired_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_SNodeReleaseConfirm_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_SNodeReleaseConfirm(tvb, offset, &asn1_ctx, tree, hf_xnap_SNodeReleaseConfirm_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_SNodeCounterCheckRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_SNodeCounterCheckRequest(tvb, offset, &asn1_ctx, tree, hf_xnap_SNodeCounterCheckRequest_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_SNodeChangeRequired_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_SNodeChangeRequired(tvb, offset, &asn1_ctx, tree, hf_xnap_SNodeChangeRequired_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_SNodeChangeConfirm_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_SNodeChangeConfirm(tvb, offset, &asn1_ctx, tree, hf_xnap_SNodeChangeConfirm_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_SNodeChangeRefuse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_SNodeChangeRefuse(tvb, offset, &asn1_ctx, tree, hf_xnap_SNodeChangeRefuse_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_RRCTransfer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_RRCTransfer(tvb, offset, &asn1_ctx, tree, hf_xnap_RRCTransfer_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_XnSetupRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_XnSetupRequest(tvb, offset, &asn1_ctx, tree, hf_xnap_XnSetupRequest_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_XnSetupResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_XnSetupResponse(tvb, offset, &asn1_ctx, tree, hf_xnap_XnSetupResponse_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_XnSetupFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_XnSetupFailure(tvb, offset, &asn1_ctx, tree, hf_xnap_XnSetupFailure_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_NGRANNodeConfigurationUpdate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_NGRANNodeConfigurationUpdate(tvb, offset, &asn1_ctx, tree, hf_xnap_NGRANNodeConfigurationUpdate_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_ConfigurationUpdateInitiatingNodeChoice_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_ConfigurationUpdateInitiatingNodeChoice(tvb, offset, &asn1_ctx, tree, hf_xnap_ConfigurationUpdateInitiatingNodeChoice_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_NGRANNodeConfigurationUpdateAcknowledge_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_NGRANNodeConfigurationUpdateAcknowledge(tvb, offset, &asn1_ctx, tree, hf_xnap_NGRANNodeConfigurationUpdateAcknowledge_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_RespondingNodeTypeConfigUpdateAck_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_RespondingNodeTypeConfigUpdateAck(tvb, offset, &asn1_ctx, tree, hf_xnap_RespondingNodeTypeConfigUpdateAck_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_NGRANNodeConfigurationUpdateFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_NGRANNodeConfigurationUpdateFailure(tvb, offset, &asn1_ctx, tree, hf_xnap_NGRANNodeConfigurationUpdateFailure_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_XnRemovalRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_XnRemovalRequest(tvb, offset, &asn1_ctx, tree, hf_xnap_XnRemovalRequest_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_XnRemovalResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_XnRemovalResponse(tvb, offset, &asn1_ctx, tree, hf_xnap_XnRemovalResponse_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_XnRemovalFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_XnRemovalFailure(tvb, offset, &asn1_ctx, tree, hf_xnap_XnRemovalFailure_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_CellActivationRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_CellActivationRequest(tvb, offset, &asn1_ctx, tree, hf_xnap_CellActivationRequest_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_ServedCellsToActivate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_ServedCellsToActivate(tvb, offset, &asn1_ctx, tree, hf_xnap_ServedCellsToActivate_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_CellActivationResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_CellActivationResponse(tvb, offset, &asn1_ctx, tree, hf_xnap_CellActivationResponse_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_ActivatedServedCells_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_ActivatedServedCells(tvb, offset, &asn1_ctx, tree, hf_xnap_ActivatedServedCells_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_CellActivationFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_CellActivationFailure(tvb, offset, &asn1_ctx, tree, hf_xnap_CellActivationFailure_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_ResetRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_ResetRequest(tvb, offset, &asn1_ctx, tree, hf_xnap_ResetRequest_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_ResetResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_ResetResponse(tvb, offset, &asn1_ctx, tree, hf_xnap_ResetResponse_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_ErrorIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_ErrorIndication(tvb, offset, &asn1_ctx, tree, hf_xnap_ErrorIndication_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_PrivateMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_PrivateMessage(tvb, offset, &asn1_ctx, tree, hf_xnap_PrivateMessage_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_XnAP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_xnap_XnAP_PDU(tvb, offset, &asn1_ctx, tree, hf_xnap_XnAP_PDU_PDU); + offset += 7; offset >>= 3; + return offset; +} + + +/*--- End of included file: packet-xnap-fn.c ---*/ +#line 127 "./asn1/xnap/packet-xnap-template.c" + +static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) +{ + struct xnap_private_data *xnap_data = xnap_get_private_data(pinfo); + + return (dissector_try_uint_new(xnap_ies_dissector_table, xnap_data->protocol_ie_id, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0; +} + +static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) +{ + struct xnap_private_data *xnap_data = xnap_get_private_data(pinfo); + + return (dissector_try_uint_new(xnap_extension_dissector_table, xnap_data->protocol_ie_id, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0; +} + +static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) +{ + struct xnap_private_data *xnap_data = xnap_get_private_data(pinfo); + + return (dissector_try_uint_new(xnap_proc_imsg_dissector_table, xnap_data->procedure_code, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0; +} + +static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) +{ + struct xnap_private_data *xnap_data = xnap_get_private_data(pinfo); + + return (dissector_try_uint_new(xnap_proc_sout_dissector_table, xnap_data->procedure_code, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0; +} + +static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) +{ + struct xnap_private_data *xnap_data = xnap_get_private_data(pinfo); + + return (dissector_try_uint_new(xnap_proc_uout_dissector_table, xnap_data->procedure_code, tvb, pinfo, tree, FALSE, NULL)) ? tvb_captured_length(tvb) : 0; +} + +static int +dissect_xnap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) +{ + proto_item *xnap_item; + proto_tree *xnap_tree; + conversation_t *conversation; + struct xnap_private_data* xnap_data; + + col_set_str(pinfo->cinfo, COL_PROTOCOL, "XnAP"); + col_clear_fence(pinfo->cinfo, COL_INFO); + col_clear(pinfo->cinfo, COL_INFO); + + xnap_item = proto_tree_add_item(tree, proto_xnap, tvb, 0, -1, ENC_NA); + xnap_tree = proto_item_add_subtree(xnap_item, ett_xnap); + + xnap_data = xnap_get_private_data(pinfo); + conversation = find_or_create_conversation(pinfo); + xnap_data->xnap_conv = (struct xnap_conv_info *)conversation_get_proto_data(conversation, proto_xnap); + if (!xnap_data->xnap_conv) { + xnap_data->xnap_conv = wmem_new0(wmem_file_scope(), struct xnap_conv_info); + copy_address_wmem(wmem_packet_scope(), &xnap_data->xnap_conv->addr_a, &pinfo->src); + xnap_data->xnap_conv->ranmode_id_a = (GlobalNG_RANNode_ID_enum)-1; + copy_address_wmem(wmem_packet_scope(), &xnap_data->xnap_conv->addr_b, &pinfo->dst); + xnap_data->xnap_conv->ranmode_id_b = (GlobalNG_RANNode_ID_enum)-1; + conversation_add_proto_data(conversation, proto_xnap, xnap_data->xnap_conv); + } + + return dissect_XnAP_PDU_PDU(tvb, pinfo, xnap_tree, data); +} + +void proto_register_xnap(void) { + + /* List of fields */ + + static hf_register_info hf[] = { + { &hf_xnap_transportLayerAddressIPv4, + { "transportLayerAddress (IPv4)", "xnap.transportLayerAddressIPv4", + FT_IPv4, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_transportLayerAddressIPv6, + { "transportLayerAddress (IPv6)", "xnap.transportLayerAddressIPv6", + FT_IPv6, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ng_ran_TraceID_TraceID, + { "TraceID", "xnap.ng_ran_TraceID.TraceID", + FT_UINT24, BASE_HEX, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ng_ran_TraceID_TraceRecordingSessionReference, + { "TraceRecordingSessionReference", "xnap.ng_ran_TraceID.TraceRecordingSessionReference", + FT_UINT16, BASE_HEX, NULL, 0, + NULL, HFILL }}, + +/*--- Included file: packet-xnap-hfarr.c ---*/ +#line 1 "./asn1/xnap/packet-xnap-hfarr.c" + { &hf_xnap_ActivationIDforCellActivation_PDU, + { "ActivationIDforCellActivation", "xnap.ActivationIDforCellActivation", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_AMF_Pool_Information_PDU, + { "AMF-Pool-Information", "xnap.AMF_Pool_Information", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_AreaOfInterest_Item_PDU, + { "AreaOfInterest-Item", "xnap.AreaOfInterest_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_AssistanceDataForRANPaging_PDU, + { "AssistanceDataForRANPaging", "xnap.AssistanceDataForRANPaging_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_Cause_PDU, + { "Cause", "xnap.Cause", + FT_UINT32, BASE_DEC, VALS(xnap_Cause_vals), 0, + NULL, HFILL }}, + { &hf_xnap_CellAssistanceInfo_NR_PDU, + { "CellAssistanceInfo-NR", "xnap.CellAssistanceInfo_NR", + FT_UINT32, BASE_DEC, VALS(xnap_CellAssistanceInfo_NR_vals), 0, + NULL, HFILL }}, + { &hf_xnap_CriticalityDiagnostics_PDU, + { "CriticalityDiagnostics", "xnap.CriticalityDiagnostics_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_DataforwardingInfoperPDUSession_PDU, + { "DataforwardingInfoperPDUSession", "xnap.DataforwardingInfoperPDUSession", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_DataforwardingInfoperPDUSession_Item_PDU, + { "DataforwardingInfoperPDUSession-Item", "xnap.DataforwardingInfoperPDUSession_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_DataForwardingResponseDRBItem_PDU, + { "DataForwardingResponseDRBItem", "xnap.DataForwardingResponseDRBItem_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_DRBsSubjectToStatusTransfer_List_PDU, + { "DRBsSubjectToStatusTransfer-List", "xnap.DRBsSubjectToStatusTransfer_List", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_DRBsSubjectToStatusTransfer_Item_PDU, + { "DRBsSubjectToStatusTransfer-Item", "xnap.DRBsSubjectToStatusTransfer_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_DRBToQoSFlowMapping_Item_PDU, + { "DRBToQoSFlowMapping-Item", "xnap.DRBToQoSFlowMapping_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_GlobalNG_RANNode_ID_PDU, + { "GlobalNG-RANNode-ID", "xnap.GlobalNG_RANNode_ID", + FT_UINT32, BASE_DEC, VALS(xnap_GlobalNG_RANNode_ID_vals), 0, + NULL, HFILL }}, + { &hf_xnap_GUAMI_PDU, + { "GUAMI", "xnap.GUAMI_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_LocationReportingInformation_PDU, + { "LocationReportingInformation", "xnap.LocationReportingInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_MAC_I_PDU, + { "MAC-I", "xnap.MAC_I", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_MaskedIMEISV_PDU, + { "MaskedIMEISV", "xnap.MaskedIMEISV", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_NG_RAN_Cell_Identity_PDU, + { "NG-RAN-Cell-Identity", "xnap.NG_RAN_Cell_Identity", + FT_UINT32, BASE_DEC, VALS(xnap_NG_RAN_Cell_Identity_vals), 0, + NULL, HFILL }}, + { &hf_xnap_NG_RANnodeUEXnAPID_PDU, + { "NG-RANnodeUEXnAPID", "xnap.NG_RANnodeUEXnAPID", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_PagingDRX_PDU, + { "PagingDRX", "xnap.PagingDRX", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_PDUSessionResourcesAdmitted_List_PDU, + { "PDUSessionResourcesAdmitted-List", "xnap.PDUSessionResourcesAdmitted_List", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_PDUSessionResourcesAdmitted_Item_PDU, + { "PDUSessionResourcesAdmitted-Item", "xnap.PDUSessionResourcesAdmitted_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_PDUSessionResourcesNotAdmitted_List_PDU, + { "PDUSessionResourcesNotAdmitted-List", "xnap.PDUSessionResourcesNotAdmitted_List", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_PDUSessionResourcesNotAdmitted_Item_PDU, + { "PDUSessionResourcesNotAdmitted-Item", "xnap.PDUSessionResourcesNotAdmitted_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_PDUSessionResourcesToBeSetup_Item_PDU, + { "PDUSessionResourcesToBeSetup-Item", "xnap.PDUSessionResourcesToBeSetup_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_QoSFlow_Item_PDU, + { "QoSFlow-Item", "xnap.QoSFlow_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_QoSFlowAdmitted_Item_PDU, + { "QoSFlowAdmitted-Item", "xnap.QoSFlowAdmitted_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_QoSFlowNotAdmitted_Item_PDU, + { "QoSFlowNotAdmitted-Item", "xnap.QoSFlowNotAdmitted_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_QoSFlowsToBeSetup_Item_PDU, + { "QoSFlowsToBeSetup-Item", "xnap.QoSFlowsToBeSetup_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_RANPagingArea_PDU, + { "RANPagingArea", "xnap.RANPagingArea_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_RANPagingPriority_PDU, + { "RANPagingPriority", "xnap.RANPagingPriority", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ResetRequestTypeInfo_PDU, + { "ResetRequestTypeInfo", "xnap.ResetRequestTypeInfo", + FT_UINT32, BASE_DEC, VALS(xnap_ResetRequestTypeInfo_vals), 0, + NULL, HFILL }}, + { &hf_xnap_ResetRequestPartialReleaseItem_PDU, + { "ResetRequestPartialReleaseItem", "xnap.ResetRequestPartialReleaseItem_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ResetResponseTypeInfo_PDU, + { "ResetResponseTypeInfo", "xnap.ResetResponseTypeInfo", + FT_UINT32, BASE_DEC, VALS(xnap_ResetResponseTypeInfo_vals), 0, + NULL, HFILL }}, + { &hf_xnap_ResetResponsePartialReleaseItem_PDU, + { "ResetResponsePartialReleaseItem", "xnap.ResetResponsePartialReleaseItem_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ServedCells_E_UTRA_PDU, + { "ServedCells-E-UTRA", "xnap.ServedCells_E_UTRA", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ServedCellsToUpdate_E_UTRA_PDU, + { "ServedCellsToUpdate-E-UTRA", "xnap.ServedCellsToUpdate_E_UTRA_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ServedCells_NR_PDU, + { "ServedCells-NR", "xnap.ServedCells_NR", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ServedCellsToUpdate_NR_PDU, + { "ServedCellsToUpdate-NR", "xnap.ServedCellsToUpdate_NR_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_TAISupport_List_PDU, + { "TAISupport-List", "xnap.TAISupport_List", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_TAISupport_Item_PDU, + { "TAISupport-Item", "xnap.TAISupport_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_Target_CGI_PDU, + { "Target-CGI", "xnap.Target_CGI", + FT_UINT32, BASE_DEC, VALS(xnap_Target_CGI_vals), 0, + NULL, HFILL }}, + { &hf_xnap_TraceActivation_PDU, + { "TraceActivation", "xnap.TraceActivation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_UEContextID_PDU, + { "UEContextID", "xnap.UEContextID", + FT_UINT32, BASE_DEC, VALS(xnap_UEContextID_vals), 0, + NULL, HFILL }}, + { &hf_xnap_UEContextInfoRetrUECtxtResp_PDU, + { "UEContextInfoRetrUECtxtResp", "xnap.UEContextInfoRetrUECtxtResp_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_UEIdentityIndexValue_PDU, + { "UEIdentityIndexValue", "xnap.UEIdentityIndexValue", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_UERANPagingIdentity_PDU, + { "UERANPagingIdentity", "xnap.UERANPagingIdentity", + FT_UINT32, BASE_DEC, VALS(xnap_UERANPagingIdentity_vals), 0, + NULL, HFILL }}, + { &hf_xnap_XnBenefitValue_PDU, + { "XnBenefitValue", "xnap.XnBenefitValue", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_HandoverRequest_PDU, + { "HandoverRequest", "xnap.HandoverRequest_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_UEContextInfoHORequest_PDU, + { "UEContextInfoHORequest", "xnap.UEContextInfoHORequest_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_HandoverRequestAcknowledge_PDU, + { "HandoverRequestAcknowledge", "xnap.HandoverRequestAcknowledge_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_Target2SourceNG_RANnodeTranspContainer_PDU, + { "Target2SourceNG-RANnodeTranspContainer", "xnap.Target2SourceNG_RANnodeTranspContainer", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_HandoverPreparationFailure_PDU, + { "HandoverPreparationFailure", "xnap.HandoverPreparationFailure_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_SNStatusTransfer_PDU, + { "SNStatusTransfer", "xnap.SNStatusTransfer_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_UEContextRelease_PDU, + { "UEContextRelease", "xnap.UEContextRelease_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_HandoverCancel_PDU, + { "HandoverCancel", "xnap.HandoverCancel_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_RANPaging_PDU, + { "RANPaging", "xnap.RANPaging_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_RetrieveUEContextRequest_PDU, + { "RetrieveUEContextRequest", "xnap.RetrieveUEContextRequest_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_RetrieveUEContextResponse_PDU, + { "RetrieveUEContextResponse", "xnap.RetrieveUEContextResponse_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_RetrieveUEContextFailure_PDU, + { "RetrieveUEContextFailure", "xnap.RetrieveUEContextFailure_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_DataForwardingAddressIndication_PDU, + { "DataForwardingAddressIndication", "xnap.DataForwardingAddressIndication_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_SNodeAdditionRequest_PDU, + { "SNodeAdditionRequest", "xnap.SNodeAdditionRequest_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_SNodeAdditionRequestAcknowledge_PDU, + { "SNodeAdditionRequestAcknowledge", "xnap.SNodeAdditionRequestAcknowledge_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_SNodeAdditionRequestReject_PDU, + { "SNodeAdditionRequestReject", "xnap.SNodeAdditionRequestReject_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_SNodeReconfigurationComplete_PDU, + { "SNodeReconfigurationComplete", "xnap.SNodeReconfigurationComplete_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_SNodeModificationRequest_PDU, + { "SNodeModificationRequest", "xnap.SNodeModificationRequest_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_SNodeModificationRequestAcknowledge_PDU, + { "SNodeModificationRequestAcknowledge", "xnap.SNodeModificationRequestAcknowledge_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_SNodeModificationRequestReject_PDU, + { "SNodeModificationRequestReject", "xnap.SNodeModificationRequestReject_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_SNodeModificationRequired_PDU, + { "SNodeModificationRequired", "xnap.SNodeModificationRequired_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_SNodeModificationConfirm_PDU, + { "SNodeModificationConfirm", "xnap.SNodeModificationConfirm_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_SNodeModificationRefuse_PDU, + { "SNodeModificationRefuse", "xnap.SNodeModificationRefuse_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_SNodeReleaseRequest_PDU, + { "SNodeReleaseRequest", "xnap.SNodeReleaseRequest_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_SNodeReleaseRequestAcknowledge_PDU, + { "SNodeReleaseRequestAcknowledge", "xnap.SNodeReleaseRequestAcknowledge_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_SNodeReleaseReject_PDU, + { "SNodeReleaseReject", "xnap.SNodeReleaseReject_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_SNodeReleaseRequired_PDU, + { "SNodeReleaseRequired", "xnap.SNodeReleaseRequired_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_SNodeReleaseConfirm_PDU, + { "SNodeReleaseConfirm", "xnap.SNodeReleaseConfirm_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_SNodeCounterCheckRequest_PDU, + { "SNodeCounterCheckRequest", "xnap.SNodeCounterCheckRequest_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_SNodeChangeRequired_PDU, + { "SNodeChangeRequired", "xnap.SNodeChangeRequired_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_SNodeChangeConfirm_PDU, + { "SNodeChangeConfirm", "xnap.SNodeChangeConfirm_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_SNodeChangeRefuse_PDU, + { "SNodeChangeRefuse", "xnap.SNodeChangeRefuse_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_RRCTransfer_PDU, + { "RRCTransfer", "xnap.RRCTransfer_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_XnSetupRequest_PDU, + { "XnSetupRequest", "xnap.XnSetupRequest_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_XnSetupResponse_PDU, + { "XnSetupResponse", "xnap.XnSetupResponse_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_XnSetupFailure_PDU, + { "XnSetupFailure", "xnap.XnSetupFailure_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_NGRANNodeConfigurationUpdate_PDU, + { "NGRANNodeConfigurationUpdate", "xnap.NGRANNodeConfigurationUpdate_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ConfigurationUpdateInitiatingNodeChoice_PDU, + { "ConfigurationUpdateInitiatingNodeChoice", "xnap.ConfigurationUpdateInitiatingNodeChoice", + FT_UINT32, BASE_DEC, VALS(xnap_ConfigurationUpdateInitiatingNodeChoice_vals), 0, + NULL, HFILL }}, + { &hf_xnap_NGRANNodeConfigurationUpdateAcknowledge_PDU, + { "NGRANNodeConfigurationUpdateAcknowledge", "xnap.NGRANNodeConfigurationUpdateAcknowledge_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_RespondingNodeTypeConfigUpdateAck_PDU, + { "RespondingNodeTypeConfigUpdateAck", "xnap.RespondingNodeTypeConfigUpdateAck", + FT_UINT32, BASE_DEC, VALS(xnap_RespondingNodeTypeConfigUpdateAck_vals), 0, + NULL, HFILL }}, + { &hf_xnap_NGRANNodeConfigurationUpdateFailure_PDU, + { "NGRANNodeConfigurationUpdateFailure", "xnap.NGRANNodeConfigurationUpdateFailure_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_XnRemovalRequest_PDU, + { "XnRemovalRequest", "xnap.XnRemovalRequest_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_XnRemovalResponse_PDU, + { "XnRemovalResponse", "xnap.XnRemovalResponse_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_XnRemovalFailure_PDU, + { "XnRemovalFailure", "xnap.XnRemovalFailure_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_CellActivationRequest_PDU, + { "CellActivationRequest", "xnap.CellActivationRequest_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ServedCellsToActivate_PDU, + { "ServedCellsToActivate", "xnap.ServedCellsToActivate", + FT_UINT32, BASE_DEC, VALS(xnap_ServedCellsToActivate_vals), 0, + NULL, HFILL }}, + { &hf_xnap_CellActivationResponse_PDU, + { "CellActivationResponse", "xnap.CellActivationResponse_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ActivatedServedCells_PDU, + { "ActivatedServedCells", "xnap.ActivatedServedCells", + FT_UINT32, BASE_DEC, VALS(xnap_ActivatedServedCells_vals), 0, + NULL, HFILL }}, + { &hf_xnap_CellActivationFailure_PDU, + { "CellActivationFailure", "xnap.CellActivationFailure_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ResetRequest_PDU, + { "ResetRequest", "xnap.ResetRequest_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ResetResponse_PDU, + { "ResetResponse", "xnap.ResetResponse_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ErrorIndication_PDU, + { "ErrorIndication", "xnap.ErrorIndication_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_PrivateMessage_PDU, + { "PrivateMessage", "xnap.PrivateMessage_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_XnAP_PDU_PDU, + { "XnAP-PDU", "xnap.XnAP_PDU", + FT_UINT32, BASE_DEC, VALS(xnap_XnAP_PDU_vals), 0, + NULL, HFILL }}, + { &hf_xnap_local, + { "local", "xnap.local", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_maxPrivateIEs", HFILL }}, + { &hf_xnap_global, + { "global", "xnap.global", + FT_OID, BASE_NONE, NULL, 0, + "OBJECT_IDENTIFIER", HFILL }}, + { &hf_xnap_ProtocolIE_Container_item, + { "ProtocolIE-Field", "xnap.ProtocolIE_Field_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_id, + { "id", "xnap.id", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &xnap_ProtocolIE_ID_vals_ext, 0, + "ProtocolIE_ID", HFILL }}, + { &hf_xnap_criticality, + { "criticality", "xnap.criticality", + FT_UINT32, BASE_DEC, VALS(xnap_Criticality_vals), 0, + NULL, HFILL }}, + { &hf_xnap_protocolIE_Field_value, + { "value", "xnap.value_element", + FT_NONE, BASE_NONE, NULL, 0, + "ProtocolIE_Field_value", HFILL }}, + { &hf_xnap_ProtocolExtensionContainer_item, + { "ProtocolExtensionField", "xnap.ProtocolExtensionField_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_extension_id, + { "id", "xnap.id", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &xnap_ProtocolIE_ID_vals_ext, 0, + "ProtocolIE_ID", HFILL }}, + { &hf_xnap_extensionValue, + { "extensionValue", "xnap.extensionValue_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_PrivateIE_Container_item, + { "PrivateIE-Field", "xnap.PrivateIE_Field_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_private_id, + { "id", "xnap.id", + FT_UINT32, BASE_DEC, VALS(xnap_PrivateIE_ID_vals), 0, + "PrivateIE_ID", HFILL }}, + { &hf_xnap_privateIE_Field_value, + { "value", "xnap.value_element", + FT_NONE, BASE_NONE, NULL, 0, + "PrivateIE_Field_value", HFILL }}, + { &hf_xnap_priorityLevel, + { "priorityLevel", "xnap.priorityLevel", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_15_", HFILL }}, + { &hf_xnap_pre_emption_capability, + { "pre-emption-capability", "xnap.pre_emption_capability", + FT_UINT32, BASE_DEC, VALS(xnap_T_pre_emption_capability_vals), 0, + NULL, HFILL }}, + { &hf_xnap_pre_emption_vulnerability, + { "pre-emption-vulnerability", "xnap.pre_emption_vulnerability", + FT_UINT32, BASE_DEC, VALS(xnap_T_pre_emption_vulnerability_vals), 0, + NULL, HFILL }}, + { &hf_xnap_iE_Extensions, + { "iE-Extensions", "xnap.iE_Extensions", + FT_UINT32, BASE_DEC, NULL, 0, + "ProtocolExtensionContainer", HFILL }}, + { &hf_xnap_AreaOfInterest_item, + { "ProtocolIE-Single-Container", "xnap.ProtocolIE_Single_Container_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_listOfTAIs, + { "listOfTAIs", "xnap.listOfTAIs", + FT_UINT32, BASE_DEC, NULL, 0, + "ListOfTAIsinAoI", HFILL }}, + { &hf_xnap_listOfCells, + { "listOfCells", "xnap.listOfCells", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_key_NG_RAN_Star, + { "key-NG-RAN-Star", "xnap.key_NG_RAN_Star", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_256", HFILL }}, + { &hf_xnap_ncc, + { "ncc", "xnap.ncc", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_7", HFILL }}, + { &hf_xnap_ran_paging_attempt_info, + { "ran-paging-attempt-info", "xnap.ran_paging_attempt_info_element", + FT_NONE, BASE_NONE, NULL, 0, + "RANPagingAttemptInfo", HFILL }}, + { &hf_xnap_BroadcastPLMNs_item, + { "PLMN-Identity", "xnap.PLMN_Identity", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_plmn_id, + { "plmn-id", "xnap.plmn_id", + FT_BYTES, BASE_NONE, NULL, 0, + "PLMN_Identity", HFILL }}, + { &hf_xnap_tAISliceSupport_List, + { "tAISliceSupport-List", "xnap.tAISliceSupport_List", + FT_UINT32, BASE_DEC, NULL, 0, + "SliceSupport_List", HFILL }}, + { &hf_xnap_iE_Extension, + { "iE-Extension", "xnap.iE_Extension", + FT_UINT32, BASE_DEC, NULL, 0, + "ProtocolExtensionContainer", HFILL }}, + { &hf_xnap_radioNetwork, + { "radioNetwork", "xnap.radioNetwork", + FT_UINT32, BASE_DEC, VALS(xnap_CauseRadioNetworkLayer_vals), 0, + "CauseRadioNetworkLayer", HFILL }}, + { &hf_xnap_transport, + { "transport", "xnap.transport", + FT_UINT32, BASE_DEC, VALS(xnap_CauseTransportLayer_vals), 0, + "CauseTransportLayer", HFILL }}, + { &hf_xnap_protocol, + { "protocol", "xnap.protocol", + FT_UINT32, BASE_DEC, VALS(xnap_CauseProtocol_vals), 0, + "CauseProtocol", HFILL }}, + { &hf_xnap_misc, + { "misc", "xnap.misc", + FT_UINT32, BASE_DEC, VALS(xnap_CauseMisc_vals), 0, + "CauseMisc", HFILL }}, + { &hf_xnap_choice_extension, + { "choice-extension", "xnap.choice_extension", + FT_UINT32, BASE_DEC, NULL, 0, + "ProtocolExtensionContainer", HFILL }}, + { &hf_xnap_limitedNR_List, + { "limitedNR-List", "xnap.limitedNR_List", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_NR_CGI", HFILL }}, + { &hf_xnap_limitedNR_List_item, + { "NR-CGI", "xnap.NR_CGI_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_full_List, + { "full-List", "xnap.full_List", + FT_UINT32, BASE_DEC, VALS(xnap_T_full_List_vals), 0, + NULL, HFILL }}, + { &hf_xnap_pdcp_SN12, + { "pdcp-SN12", "xnap.pdcp_SN12", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_4095", HFILL }}, + { &hf_xnap_hfn_PDCP_SN12, + { "hfn-PDCP-SN12", "xnap.hfn_PDCP_SN12", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_1048575", HFILL }}, + { &hf_xnap_pdcp_SN18, + { "pdcp-SN18", "xnap.pdcp_SN18", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_262143", HFILL }}, + { &hf_xnap_hfn_PDCP_SN18, + { "hfn-PDCP-SN18", "xnap.hfn_PDCP_SN18", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_16383", HFILL }}, + { &hf_xnap_endpointIPAddress, + { "endpointIPAddress", "xnap.endpointIPAddress", + FT_BYTES, BASE_NONE, NULL, 0, + "TransportLayerAddress", HFILL }}, + { &hf_xnap_procedureCode, + { "procedureCode", "xnap.procedureCode", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &xnap_ProcedureCode_vals_ext, 0, + NULL, HFILL }}, + { &hf_xnap_triggeringMessage, + { "triggeringMessage", "xnap.triggeringMessage", + FT_UINT32, BASE_DEC, VALS(xnap_TriggeringMessage_vals), 0, + NULL, HFILL }}, + { &hf_xnap_procedureCriticality, + { "procedureCriticality", "xnap.procedureCriticality", + FT_UINT32, BASE_DEC, VALS(xnap_Criticality_vals), 0, + "Criticality", HFILL }}, + { &hf_xnap_iEsCriticalityDiagnostics, + { "iEsCriticalityDiagnostics", "xnap.iEsCriticalityDiagnostics", + FT_UINT32, BASE_DEC, NULL, 0, + "CriticalityDiagnostics_IE_List", HFILL }}, + { &hf_xnap_CriticalityDiagnostics_IE_List_item, + { "CriticalityDiagnostics-IE-List item", "xnap.CriticalityDiagnostics_IE_List_item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_iECriticality, + { "iECriticality", "xnap.iECriticality", + FT_UINT32, BASE_DEC, VALS(xnap_Criticality_vals), 0, + "Criticality", HFILL }}, + { &hf_xnap_iE_ID, + { "iE-ID", "xnap.iE_ID", + FT_UINT32, BASE_DEC|BASE_EXT_STRING, &xnap_ProtocolIE_ID_vals_ext, 0, + "ProtocolIE_ID", HFILL }}, + { &hf_xnap_typeOfError, + { "typeOfError", "xnap.typeOfError", + FT_UINT32, BASE_DEC, VALS(xnap_TypeOfError_vals), 0, + NULL, HFILL }}, + { &hf_xnap_DataforwardingInfoperPDUSession_item, + { "ProtocolIE-Single-Container", "xnap.ProtocolIE_Single_Container_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_pduSession_ID, + { "pduSession-ID", "xnap.pduSession_ID", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_dlForwardingUPTNL, + { "dlForwardingUPTNL", "xnap.dlForwardingUPTNL", + FT_UINT32, BASE_DEC, VALS(xnap_UPTransportLayerInformation_vals), 0, + "UPTransportLayerInformation", HFILL }}, + { &hf_xnap_pduSessionLevelDLDataForwardingInfo, + { "pduSessionLevelDLDataForwardingInfo", "xnap.pduSessionLevelDLDataForwardingInfo", + FT_UINT32, BASE_DEC, VALS(xnap_UPTransportLayerInformation_vals), 0, + "UPTransportLayerInformation", HFILL }}, + { &hf_xnap_dataForwardingResponseDRBItemList, + { "dataForwardingResponseDRBItemList", "xnap.dataForwardingResponseDRBItemList", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_DataForwardingResponseDRBItemList_item, + { "ProtocolIE-Single-Container", "xnap.ProtocolIE_Single_Container_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_drb_ID, + { "drb-ID", "xnap.drb_ID", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ulForwardingUPTNL, + { "ulForwardingUPTNL", "xnap.ulForwardingUPTNL", + FT_UINT32, BASE_DEC, VALS(xnap_UPTransportLayerInformation_vals), 0, + "UPTransportLayerInformation", HFILL }}, + { &hf_xnap_DRBsSubjectToStatusTransfer_List_item, + { "ProtocolIE-Single-Container", "xnap.ProtocolIE_Single_Container_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_drbID, + { "drbID", "xnap.drbID", + FT_UINT32, BASE_DEC, NULL, 0, + "DRB_ID", HFILL }}, + { &hf_xnap_statusTransfer, + { "statusTransfer", "xnap.statusTransfer", + FT_UINT32, BASE_DEC, VALS(xnap_DRBBStatusTransferChoice_vals), 0, + "DRBBStatusTransferChoice", HFILL }}, + { &hf_xnap_pdcp_sn_12bits, + { "pdcp-sn-12bits", "xnap.pdcp_sn_12bits_element", + FT_NONE, BASE_NONE, NULL, 0, + "DRBBStatusTransfer12bitsSN", HFILL }}, + { &hf_xnap_pdcp_sn_18bits, + { "pdcp-sn-18bits", "xnap.pdcp_sn_18bits_element", + FT_NONE, BASE_NONE, NULL, 0, + "DRBBStatusTransfer18bitsSN", HFILL }}, + { &hf_xnap_receiveStatusofPDCPSDU, + { "receiveStatusofPDCPSDU", "xnap.receiveStatusofPDCPSDU", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_1_2048", HFILL }}, + { &hf_xnap_ulCOUNTValue, + { "ulCOUNTValue", "xnap.ulCOUNTValue_element", + FT_NONE, BASE_NONE, NULL, 0, + "COUNT_PDCP_SN12", HFILL }}, + { &hf_xnap_dlCOUNTValue, + { "dlCOUNTValue", "xnap.dlCOUNTValue_element", + FT_NONE, BASE_NONE, NULL, 0, + "COUNT_PDCP_SN12", HFILL }}, + { &hf_xnap_receiveStatusofPDCPSDU_01, + { "receiveStatusofPDCPSDU", "xnap.receiveStatusofPDCPSDU", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_1_131072", HFILL }}, + { &hf_xnap_ulCOUNTValue_01, + { "ulCOUNTValue", "xnap.ulCOUNTValue_element", + FT_NONE, BASE_NONE, NULL, 0, + "COUNT_PDCP_SN18", HFILL }}, + { &hf_xnap_dlCOUNTValue_01, + { "dlCOUNTValue", "xnap.dlCOUNTValue_element", + FT_NONE, BASE_NONE, NULL, 0, + "COUNT_PDCP_SN18", HFILL }}, + { &hf_xnap_DRBToQoSFlowMapping_List_item, + { "ProtocolIE-Single-Container", "xnap.ProtocolIE_Single_Container_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_qosFlows_List, + { "qosFlows-List", "xnap.qosFlows_List", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_priorityLevel_01, + { "priorityLevel", "xnap.priorityLevel", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_128", HFILL }}, + { &hf_xnap_packetDelayBudget, + { "packetDelayBudget", "xnap.packetDelayBudget", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_packetErrorRate, + { "packetErrorRate", "xnap.packetErrorRate", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_delayCritical, + { "delayCritical", "xnap.delayCritical", + FT_UINT32, BASE_DEC, VALS(xnap_T_delayCritical_vals), 0, + NULL, HFILL }}, + { &hf_xnap_averagingWindow, + { "averagingWindow", "xnap.averagingWindow", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_maximumDataBurstVolume, + { "maximumDataBurstVolume", "xnap.maximumDataBurstVolume", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_e_utra_CI, + { "e-utra-CI", "xnap.E-UTRA-Cell-Identity", + FT_UINT32, BASE_HEX, NULL, 0, + "E_UTRA_Cell_Identity", HFILL }}, + { &hf_xnap_E_UTRAMultibandInfoList_item, + { "E-UTRAFrequencyBandIndicator", "xnap.E_UTRAFrequencyBandIndicator", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_rootSequenceIndex, + { "rootSequenceIndex", "xnap.rootSequenceIndex", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_837", HFILL }}, + { &hf_xnap_zeroCorrelationIndex, + { "zeroCorrelationIndex", "xnap.zeroCorrelationIndex", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_15", HFILL }}, + { &hf_xnap_highSpeedFlag, + { "highSpeedFlag", "xnap.highSpeedFlag", + FT_UINT32, BASE_DEC, VALS(xnap_T_highSpeedFlag_vals), 0, + NULL, HFILL }}, + { &hf_xnap_prach_FreqOffset, + { "prach-FreqOffset", "xnap.prach_FreqOffset", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_94", HFILL }}, + { &hf_xnap_prach_ConfigIndex, + { "prach-ConfigIndex", "xnap.prach_ConfigIndex", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_63", HFILL }}, + { &hf_xnap_maxFlowBitRateDL, + { "maxFlowBitRateDL", "xnap.maxFlowBitRateDL", + FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0, + "BitRate", HFILL }}, + { &hf_xnap_maxFlowBitRateUL, + { "maxFlowBitRateUL", "xnap.maxFlowBitRateUL", + FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0, + "BitRate", HFILL }}, + { &hf_xnap_guaranteedFlowBitRateDL, + { "guaranteedFlowBitRateDL", "xnap.guaranteedFlowBitRateDL", + FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0, + "BitRate", HFILL }}, + { &hf_xnap_guaranteedFlowBitRateUL, + { "guaranteedFlowBitRateUL", "xnap.guaranteedFlowBitRateUL", + FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0, + "BitRate", HFILL }}, + { &hf_xnap_notificationControl, + { "notificationControl", "xnap.notificationControl", + FT_UINT32, BASE_DEC, VALS(xnap_T_notificationControl_vals), 0, + NULL, HFILL }}, + { &hf_xnap_maxPacketLossRateDL, + { "maxPacketLossRateDL", "xnap.maxPacketLossRateDL", + FT_UINT32, BASE_CUSTOM, CF_FUNC(xnap_PacketLossRate_fmt), 0, + "PacketLossRate", HFILL }}, + { &hf_xnap_maxPacketLossRateUL, + { "maxPacketLossRateUL", "xnap.maxPacketLossRateUL", + FT_UINT32, BASE_CUSTOM, CF_FUNC(xnap_PacketLossRate_fmt), 0, + "PacketLossRate", HFILL }}, + { &hf_xnap_gnb_id, + { "gnb-id", "xnap.gnb_id", + FT_UINT32, BASE_DEC, VALS(xnap_GNB_ID_Choice_vals), 0, + "GNB_ID_Choice", HFILL }}, + { &hf_xnap_gnb_ID, + { "gnb-ID", "xnap.gnb_ID", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_22_32", HFILL }}, + { &hf_xnap_enb_id, + { "enb-id", "xnap.enb_id", + FT_UINT32, BASE_DEC, VALS(xnap_ENB_ID_Choice_vals), 0, + "ENB_ID_Choice", HFILL }}, + { &hf_xnap_enb_ID_macro, + { "enb-ID-macro", "xnap.enb_ID_macro", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_20", HFILL }}, + { &hf_xnap_enb_ID_shortmacro, + { "enb-ID-shortmacro", "xnap.enb_ID_shortmacro", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_18", HFILL }}, + { &hf_xnap_enb_ID_longmacro, + { "enb-ID-longmacro", "xnap.enb_ID_longmacro", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_21", HFILL }}, + { &hf_xnap_gNB, + { "gNB", "xnap.gNB_element", + FT_NONE, BASE_NONE, NULL, 0, + "GlobalgNB_ID", HFILL }}, + { &hf_xnap_ng_eNB, + { "ng-eNB", "xnap.ng_eNB_element", + FT_NONE, BASE_NONE, NULL, 0, + "GlobalngeNB_ID", HFILL }}, + { &hf_xnap_tnl_address, + { "tnl-address", "xnap.tnl_address", + FT_BYTES, BASE_NONE, NULL, 0, + "TransportLayerAddress", HFILL }}, + { &hf_xnap_gtp_teid, + { "gtp-teid", "xnap.gtp_teid", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_plmn_ID, + { "plmn-ID", "xnap.plmn_ID", + FT_BYTES, BASE_NONE, NULL, 0, + "PLMN_Identity", HFILL }}, + { &hf_xnap_amf_region_if, + { "amf-region-if", "xnap.amf_region_if", + FT_BYTES, BASE_NONE, NULL, 0, + "OCTET_STRING_SIZE_2", HFILL }}, + { &hf_xnap_amf_set_id, + { "amf-set-id", "xnap.amf_set_id", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_4", HFILL }}, + { &hf_xnap_amf_pointer, + { "amf-pointer", "xnap.amf_pointer", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_4", HFILL }}, + { &hf_xnap_ListOfCells_item, + { "CellsinAoI-Item", "xnap.CellsinAoI_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_pLMN_Identity, + { "pLMN-Identity", "xnap.pLMN_Identity", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ng_ran_cell_id, + { "ng-ran-cell-id", "xnap.ng_ran_cell_id", + FT_UINT32, BASE_DEC, VALS(xnap_NG_RAN_Cell_Identity_vals), 0, + "NG_RAN_Cell_Identity", HFILL }}, + { &hf_xnap_ListOfTAIsinAoI_item, + { "TAIsinAoI-Item", "xnap.TAIsinAoI_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_tAC, + { "tAC", "xnap.tAC", + FT_UINT24, BASE_DEC_HEX, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_eventType, + { "eventType", "xnap.eventType", + FT_UINT32, BASE_DEC, VALS(xnap_EventType_vals), 0, + NULL, HFILL }}, + { &hf_xnap_reportArea, + { "reportArea", "xnap.reportArea", + FT_UINT32, BASE_DEC, VALS(xnap_ReportArea_vals), 0, + NULL, HFILL }}, + { &hf_xnap_areaOfInterest, + { "areaOfInterest", "xnap.areaOfInterest", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_oneframe, + { "oneframe", "xnap.oneframe", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_6", HFILL }}, + { &hf_xnap_fourframes, + { "fourframes", "xnap.fourframes", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_24", HFILL }}, + { &hf_xnap_MBSFNSubframeInfo_E_UTRA_item, + { "MBSFNSubframeInfo-E-UTRA-Item", "xnap.MBSFNSubframeInfo_E_UTRA_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_radioframeAllocationPeriod, + { "radioframeAllocationPeriod", "xnap.radioframeAllocationPeriod", + FT_UINT32, BASE_DEC, VALS(xnap_T_radioframeAllocationPeriod_vals), 0, + NULL, HFILL }}, + { &hf_xnap_radioframeAllocationOffset, + { "radioframeAllocationOffset", "xnap.radioframeAllocationOffset", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_7_", HFILL }}, + { &hf_xnap_subframeAllocation, + { "subframeAllocation", "xnap.subframeAllocation", + FT_UINT32, BASE_DEC, VALS(xnap_MBSFNSubframeAllocation_E_UTRA_vals), 0, + "MBSFNSubframeAllocation_E_UTRA", HFILL }}, + { &hf_xnap_serving_PLMN, + { "serving-PLMN", "xnap.serving_PLMN", + FT_BYTES, BASE_NONE, NULL, 0, + "PLMN_Identity", HFILL }}, + { &hf_xnap_equivalent_PLMNs, + { "equivalent-PLMNs", "xnap.equivalent_PLMNs", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxnoofEPLMNs_OF_PLMN_Identity", HFILL }}, + { &hf_xnap_equivalent_PLMNs_item, + { "PLMN-Identity", "xnap.PLMN_Identity", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_rat_Restrictions, + { "rat-Restrictions", "xnap.rat_Restrictions", + FT_UINT32, BASE_DEC, NULL, 0, + "RAT_RestrictionsList", HFILL }}, + { &hf_xnap_forbiddenAreaInformation, + { "forbiddenAreaInformation", "xnap.forbiddenAreaInformation", + FT_UINT32, BASE_DEC, NULL, 0, + "ForbiddenAreaList", HFILL }}, + { &hf_xnap_serviceAreaInformation, + { "serviceAreaInformation", "xnap.serviceAreaInformation", + FT_UINT32, BASE_DEC, NULL, 0, + "ServiceAreaList", HFILL }}, + { &hf_xnap_RAT_RestrictionsList_item, + { "RAT-RestrictionsItem", "xnap.RAT_RestrictionsItem_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_plmn_Identity, + { "plmn-Identity", "xnap.plmn_Identity", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_rat_RestrictionInformation, + { "rat-RestrictionInformation", "xnap.rat_RestrictionInformation", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ForbiddenAreaList_item, + { "ForbiddenAreaItem", "xnap.ForbiddenAreaItem_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_forbidden_TACs, + { "forbidden-TACs", "xnap.forbidden_TACs", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxnoofForbiddenTACs_OF_TAC", HFILL }}, + { &hf_xnap_forbidden_TACs_item, + { "TAC", "xnap.TAC", + FT_UINT24, BASE_DEC_HEX, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ServiceAreaList_item, + { "ServiceAreaItem", "xnap.ServiceAreaItem_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_allowed_TACs_ServiceArea, + { "allowed-TACs-ServiceArea", "xnap.allowed_TACs_ServiceArea", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxnoofAllowedAreas_OF_TAC", HFILL }}, + { &hf_xnap_allowed_TACs_ServiceArea_item, + { "TAC", "xnap.TAC", + FT_UINT24, BASE_DEC_HEX, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_not_allowed_TACs_ServiceArea, + { "not-allowed-TACs-ServiceArea", "xnap.not_allowed_TACs_ServiceArea", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxnoofAllowedAreas_OF_TAC", HFILL }}, + { &hf_xnap_not_allowed_TACs_ServiceArea_item, + { "TAC", "xnap.TAC", + FT_UINT24, BASE_DEC_HEX, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_NeighbourInformation_E_UTRA_item, + { "NeighbourInformation-E-UTRA-Item", "xnap.NeighbourInformation_E_UTRA_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_e_utra_PCI, + { "e-utra-PCI", "xnap.e_utra_PCI", + FT_UINT32, BASE_DEC, NULL, 0, + "E_UTRAPCI", HFILL }}, + { &hf_xnap_e_utra_cgi, + { "e-utra-cgi", "xnap.e_utra_cgi_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_earfcn, + { "earfcn", "xnap.earfcn", + FT_UINT32, BASE_DEC, NULL, 0, + "E_UTRAARFCN", HFILL }}, + { &hf_xnap_tac, + { "tac", "xnap.tac", + FT_UINT24, BASE_DEC_HEX, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_NeighbourInformation_NR_item, + { "NeighbourInformation-NR-Item", "xnap.NeighbourInformation_NR_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_nr_mode_info, + { "nr-mode-info", "xnap.nr_mode_info", + FT_UINT32, BASE_DEC, VALS(xnap_NeighbourInformation_NR_ModeInfo_vals), 0, + "NeighbourInformation_NR_ModeInfo", HFILL }}, + { &hf_xnap_fdd_info, + { "fdd-info", "xnap.fdd_info_element", + FT_NONE, BASE_NONE, NULL, 0, + "NeighbourInformation_NR_ModeFDDInfo", HFILL }}, + { &hf_xnap_tdd_info, + { "tdd-info", "xnap.tdd_info_element", + FT_NONE, BASE_NONE, NULL, 0, + "NeighbourInformation_NR_ModeTDDInfo", HFILL }}, + { &hf_xnap_ul_NR_FreqInfo, + { "ul-NR-FreqInfo", "xnap.ul_NR_FreqInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + "NRFrequencyInfo", HFILL }}, + { &hf_xnap_dl_NR_FequInfo, + { "dl-NR-FequInfo", "xnap.dl_NR_FequInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + "NRFrequencyInfo", HFILL }}, + { &hf_xnap_ie_Extensions, + { "ie-Extensions", "xnap.ie_Extensions", + FT_UINT32, BASE_DEC, NULL, 0, + "ProtocolExtensionContainer", HFILL }}, + { &hf_xnap_nr_FreqInfo, + { "nr-FreqInfo", "xnap.nr_FreqInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + "NRFrequencyInfo", HFILL }}, + { &hf_xnap_nr, + { "nr", "xnap.NR-Cell-Identity", + FT_UINT40, BASE_HEX, NULL, 0, + "NR_Cell_Identity", HFILL }}, + { &hf_xnap_e_utra, + { "e-utra", "xnap.E-UTRA-Cell-Identity", + FT_UINT32, BASE_HEX, NULL, 0, + "E_UTRA_Cell_Identity", HFILL }}, + { &hf_xnap_nr_01, + { "nr", "xnap.nr", + FT_UINT32, BASE_DEC, NULL, 0, + "NRPCI", HFILL }}, + { &hf_xnap_e_utra_01, + { "e-utra", "xnap.e_utra", + FT_UINT32, BASE_DEC, NULL, 0, + "E_UTRAPCI", HFILL }}, + { &hf_xnap_fiveQI, + { "fiveQI", "xnap.fiveQI", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_255", HFILL }}, + { &hf_xnap_NG_RAN_Cell_Identity_ListinRANPagingArea_item, + { "NG-RAN-Cell-Identity", "xnap.NG_RAN_Cell_Identity", + FT_UINT32, BASE_DEC, VALS(xnap_NG_RAN_Cell_Identity_vals), 0, + NULL, HFILL }}, + { &hf_xnap_nr_CI, + { "nr-CI", "xnap.NR-Cell-Identity", + FT_UINT40, BASE_HEX, NULL, 0, + "NR_Cell_Identity", HFILL }}, + { &hf_xnap_NRFrequencyBand_List_item, + { "NRFrequencyBandItem", "xnap.NRFrequencyBandItem_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_nr_frequency_band, + { "nr-frequency-band", "xnap.nr_frequency_band", + FT_UINT32, BASE_DEC, NULL, 0, + "NRFrequencyBand", HFILL }}, + { &hf_xnap_supported_SUL_Band_List, + { "supported-SUL-Band-List", "xnap.supported_SUL_Band_List", + FT_UINT32, BASE_DEC, NULL, 0, + "SupportedSULBandList", HFILL }}, + { &hf_xnap_nrARFCN, + { "nrARFCN", "xnap.nrARFCN", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_sul_information, + { "sul-information", "xnap.sul_information_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_frequencyBand_List, + { "frequencyBand-List", "xnap.frequencyBand_List", + FT_UINT32, BASE_DEC, NULL, 0, + "NRFrequencyBand_List", HFILL }}, + { &hf_xnap_fdd, + { "fdd", "xnap.fdd_element", + FT_NONE, BASE_NONE, NULL, 0, + "NRModeInfoFDD", HFILL }}, + { &hf_xnap_tdd, + { "tdd", "xnap.tdd_element", + FT_NONE, BASE_NONE, NULL, 0, + "NRModeInfoTDD", HFILL }}, + { &hf_xnap_ulNRFrequencyInfo, + { "ulNRFrequencyInfo", "xnap.ulNRFrequencyInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + "NRFrequencyInfo", HFILL }}, + { &hf_xnap_dlNRFrequencyInfo, + { "dlNRFrequencyInfo", "xnap.dlNRFrequencyInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + "NRFrequencyInfo", HFILL }}, + { &hf_xnap_ulNRTransmissonBandwidth, + { "ulNRTransmissonBandwidth", "xnap.ulNRTransmissonBandwidth", + FT_UINT32, BASE_DEC, NULL, 0, + "NRTransmissionBandwidth", HFILL }}, + { &hf_xnap_dlNRTransmissonBandwidth, + { "dlNRTransmissonBandwidth", "xnap.dlNRTransmissonBandwidth", + FT_UINT32, BASE_DEC, NULL, 0, + "NRTransmissionBandwidth", HFILL }}, + { &hf_xnap_nrFrequencyInfo, + { "nrFrequencyInfo", "xnap.nrFrequencyInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_nrTransmissonBandwidth, + { "nrTransmissonBandwidth", "xnap.nrTransmissonBandwidth", + FT_UINT32, BASE_DEC, NULL, 0, + "NRTransmissionBandwidth", HFILL }}, + { &hf_xnap_PDUSessionResourcesAdmitted_List_item, + { "ProtocolIE-Single-Container", "xnap.ProtocolIE_Single_Container_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_pduSessionId, + { "pduSessionId", "xnap.pduSessionId", + FT_UINT32, BASE_DEC, NULL, 0, + "PDUSession_ID", HFILL }}, + { &hf_xnap_pduSessionResourceAdmittedInfo, + { "pduSessionResourceAdmittedInfo", "xnap.pduSessionResourceAdmittedInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_qosFlowsAdmitted_List, + { "qosFlowsAdmitted-List", "xnap.qosFlowsAdmitted_List", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_qosFlowsNotAdmitted_List, + { "qosFlowsNotAdmitted-List", "xnap.qosFlowsNotAdmitted_List", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_dataForwardingInfoFromTarget, + { "dataForwardingInfoFromTarget", "xnap.dataForwardingInfoFromTarget_element", + FT_NONE, BASE_NONE, NULL, 0, + "DataForwardingInfoFromTargetNGRANnode", HFILL }}, + { &hf_xnap_PDUSessionResourcesNotAdmitted_List_item, + { "ProtocolIE-Single-Container", "xnap.ProtocolIE_Single_Container_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_cause, + { "cause", "xnap.cause", + FT_UINT32, BASE_DEC, VALS(xnap_Cause_vals), 0, + NULL, HFILL }}, + { &hf_xnap_PDUSessionResourcesToBeSetup_List_item, + { "ProtocolIE-Single-Container", "xnap.ProtocolIE_Single_Container_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_s_NSSAI, + { "s-NSSAI", "xnap.s_NSSAI_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_pduSessionAMBR, + { "pduSessionAMBR", "xnap.pduSessionAMBR", + FT_BYTES, BASE_NONE, NULL, 0, + "OCTET_STRING", HFILL }}, + { &hf_xnap_uL_NG_U_TNLatUPF, + { "uL-NG-U-TNLatUPF", "xnap.uL_NG_U_TNLatUPF", + FT_UINT32, BASE_DEC, VALS(xnap_UPTransportLayerInformation_vals), 0, + "UPTransportLayerInformation", HFILL }}, + { &hf_xnap_securityIndication, + { "securityIndication", "xnap.securityIndication_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_pduSessionType, + { "pduSessionType", "xnap.pduSessionType", + FT_UINT32, BASE_DEC, VALS(xnap_PDUSessionType_vals), 0, + NULL, HFILL }}, + { &hf_xnap_qosFlowsToBeSetup_List, + { "qosFlowsToBeSetup-List", "xnap.qosFlowsToBeSetup_List", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_sourceDRBtoQoSFlowMapping, + { "sourceDRBtoQoSFlowMapping", "xnap.sourceDRBtoQoSFlowMapping", + FT_UINT32, BASE_DEC, NULL, 0, + "DRBToQoSFlowMapping_List", HFILL }}, + { &hf_xnap_non_dynamic, + { "non-dynamic", "xnap.non_dynamic_element", + FT_NONE, BASE_NONE, NULL, 0, + "NonDynamic5QIDescriptor", HFILL }}, + { &hf_xnap_dynamic, + { "dynamic", "xnap.dynamic_element", + FT_NONE, BASE_NONE, NULL, 0, + "Dynamic5QIDescriptor", HFILL }}, + { &hf_xnap_qos_characteristics, + { "qos-characteristics", "xnap.qos_characteristics", + FT_UINT32, BASE_DEC, VALS(xnap_QoSCharacteristics_vals), 0, + "QoSCharacteristics", HFILL }}, + { &hf_xnap_allocationAndRetentionPrio, + { "allocationAndRetentionPrio", "xnap.allocationAndRetentionPrio_element", + FT_NONE, BASE_NONE, NULL, 0, + "AllocationandRetentionPriority", HFILL }}, + { &hf_xnap_gBRQoSFlowInfo, + { "gBRQoSFlowInfo", "xnap.gBRQoSFlowInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_relectiveQoS, + { "relectiveQoS", "xnap.relectiveQoS", + FT_UINT32, BASE_DEC, VALS(xnap_ReflectiveQoSAttribute_vals), 0, + "ReflectiveQoSAttribute", HFILL }}, + { &hf_xnap_additionalQoSflowInfo, + { "additionalQoSflowInfo", "xnap.additionalQoSflowInfo", + FT_UINT32, BASE_DEC, VALS(xnap_T_additionalQoSflowInfo_vals), 0, + NULL, HFILL }}, + { &hf_xnap_pPI, + { "pPI", "xnap.pPI", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_8_", HFILL }}, + { &hf_xnap_QoSFlows_List_item, + { "ProtocolIE-Single-Container", "xnap.ProtocolIE_Single_Container_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_qfi, + { "qfi", "xnap.qfi", + FT_UINT32, BASE_DEC, NULL, 0, + "QoSFlowIndicator", HFILL }}, + { &hf_xnap_QoSFlowsAdmitted_List_item, + { "ProtocolIE-Single-Container", "xnap.ProtocolIE_Single_Container_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_dataForwardingAccepted, + { "dataForwardingAccepted", "xnap.dataForwardingAccepted", + FT_UINT32, BASE_DEC, VALS(xnap_DataForwardingAccepted_vals), 0, + NULL, HFILL }}, + { &hf_xnap_QoSFlowsNotAdmitted_List_item, + { "ProtocolIE-Single-Container", "xnap.ProtocolIE_Single_Container_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_QoSFlowsToBeSetup_List_item, + { "ProtocolIE-Single-Container", "xnap.ProtocolIE_Single_Container_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_dlDataForwarding, + { "dlDataForwarding", "xnap.dlDataForwarding", + FT_UINT32, BASE_DEC, VALS(xnap_DLForwarding_vals), 0, + "DLForwarding", HFILL }}, + { &hf_xnap_qosFlowLevelQoSParameters, + { "qosFlowLevelQoSParameters", "xnap.qosFlowLevelQoSParameters_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_e_RAB_ID, + { "e-RAB-ID", "xnap.e_RAB_ID", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_rANAC, + { "rANAC", "xnap.rANAC", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_RANAreaID_List_item, + { "RANAreaID", "xnap.RANAreaID_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_rANPagingAreaChoice, + { "rANPagingAreaChoice", "xnap.rANPagingAreaChoice", + FT_UINT32, BASE_DEC, VALS(xnap_RANPagingAreaChoice_vals), 0, + NULL, HFILL }}, + { &hf_xnap_cell_List, + { "cell-List", "xnap.cell_List", + FT_UINT32, BASE_DEC, NULL, 0, + "NG_RAN_Cell_Identity_ListinRANPagingArea", HFILL }}, + { &hf_xnap_rANAreaID_List, + { "rANAreaID-List", "xnap.rANAreaID_List", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_pagingAttemptCount, + { "pagingAttemptCount", "xnap.pagingAttemptCount", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_16_", HFILL }}, + { &hf_xnap_intendedNumberOfPagingAttempts, + { "intendedNumberOfPagingAttempts", "xnap.intendedNumberOfPagingAttempts", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_1_16_", HFILL }}, + { &hf_xnap_nextPagingAreaScope, + { "nextPagingAreaScope", "xnap.nextPagingAreaScope", + FT_UINT32, BASE_DEC, VALS(xnap_T_nextPagingAreaScope_vals), 0, + NULL, HFILL }}, + { &hf_xnap_fullReset, + { "fullReset", "xnap.fullReset_element", + FT_NONE, BASE_NONE, NULL, 0, + "ResetRequestTypeInfo_Full", HFILL }}, + { &hf_xnap_partialReset, + { "partialReset", "xnap.partialReset_element", + FT_NONE, BASE_NONE, NULL, 0, + "ResetRequestTypeInfo_Partial", HFILL }}, + { &hf_xnap_ue_contexts_ToBeReleasedList, + { "ue-contexts-ToBeReleasedList", "xnap.ue_contexts_ToBeReleasedList", + FT_UINT32, BASE_DEC, NULL, 0, + "ResetRequestPartialReleaseList", HFILL }}, + { &hf_xnap_ResetRequestPartialReleaseList_item, + { "ProtocolIE-Single-Container", "xnap.ProtocolIE_Single_Container_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ng_ran_node1UEXnAPID, + { "ng-ran-node1UEXnAPID", "xnap.ng_ran_node1UEXnAPID", + FT_UINT32, BASE_DEC, NULL, 0, + "NG_RANnodeUEXnAPID", HFILL }}, + { &hf_xnap_ng_ran_node2UEXnAPID, + { "ng-ran-node2UEXnAPID", "xnap.ng_ran_node2UEXnAPID", + FT_UINT32, BASE_DEC, NULL, 0, + "NG_RANnodeUEXnAPID", HFILL }}, + { &hf_xnap_fullReset_01, + { "fullReset", "xnap.fullReset_element", + FT_NONE, BASE_NONE, NULL, 0, + "ResetResponseTypeInfo_Full", HFILL }}, + { &hf_xnap_partialReset_01, + { "partialReset", "xnap.partialReset_element", + FT_NONE, BASE_NONE, NULL, 0, + "ResetResponseTypeInfo_Partial", HFILL }}, + { &hf_xnap_ue_contexts_AdmittedToBeReleasedList, + { "ue-contexts-AdmittedToBeReleasedList", "xnap.ue_contexts_AdmittedToBeReleasedList", + FT_UINT32, BASE_DEC, NULL, 0, + "ResetResponsePartialReleaseList", HFILL }}, + { &hf_xnap_ResetResponsePartialReleaseList_item, + { "ProtocolIE-Single-Container", "xnap.ProtocolIE_Single_Container_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_integrityProtectionIndication, + { "integrityProtectionIndication", "xnap.integrityProtectionIndication", + FT_UINT32, BASE_DEC, VALS(xnap_T_integrityProtectionIndication_vals), 0, + NULL, HFILL }}, + { &hf_xnap_confidentialityProtectionIndication, + { "confidentialityProtectionIndication", "xnap.confidentialityProtectionIndication", + FT_UINT32, BASE_DEC, VALS(xnap_T_confidentialityProtectionIndication_vals), 0, + NULL, HFILL }}, + { &hf_xnap_e_utra_pci, + { "e-utra-pci", "xnap.e_utra_pci", + FT_UINT32, BASE_DEC, NULL, 0, + "E_UTRAPCI", HFILL }}, + { &hf_xnap_broadcastPLMNs, + { "broadcastPLMNs", "xnap.broadcastPLMNs", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxnoofBPLMNs_OF_ServedCellInformation_E_UTRA_perBPLMN", HFILL }}, + { &hf_xnap_broadcastPLMNs_item, + { "ServedCellInformation-E-UTRA-perBPLMN", "xnap.ServedCellInformation_E_UTRA_perBPLMN_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_numberofAntennaPorts, + { "numberofAntennaPorts", "xnap.numberofAntennaPorts", + FT_UINT32, BASE_DEC, VALS(xnap_NumberOfAntennaPorts_E_UTRA_vals), 0, + "NumberOfAntennaPorts_E_UTRA", HFILL }}, + { &hf_xnap_prach_configuration, + { "prach-configuration", "xnap.prach_configuration_element", + FT_NONE, BASE_NONE, NULL, 0, + "E_UTRAPRACHConfiguration", HFILL }}, + { &hf_xnap_mBSFNsubframeInfo, + { "mBSFNsubframeInfo", "xnap.mBSFNsubframeInfo", + FT_UINT32, BASE_DEC, NULL, 0, + "MBSFNSubframeInfo_E_UTRA", HFILL }}, + { &hf_xnap_multibandInfo, + { "multibandInfo", "xnap.multibandInfo", + FT_UINT32, BASE_DEC, NULL, 0, + "E_UTRAMultibandInfoList", HFILL }}, + { &hf_xnap_freqBandIndicatorPriority, + { "freqBandIndicatorPriority", "xnap.freqBandIndicatorPriority", + FT_UINT32, BASE_DEC, VALS(xnap_T_freqBandIndicatorPriority_vals), 0, + NULL, HFILL }}, + { &hf_xnap_bandwidthReducedSI, + { "bandwidthReducedSI", "xnap.bandwidthReducedSI", + FT_UINT32, BASE_DEC, VALS(xnap_T_bandwidthReducedSI_vals), 0, + NULL, HFILL }}, + { &hf_xnap_e_utra_mode_info, + { "e-utra-mode-info", "xnap.e_utra_mode_info", + FT_UINT32, BASE_DEC, VALS(xnap_ServedCellInformation_E_UTRA_perBPLMN_ModeInfo_vals), 0, + "ServedCellInformation_E_UTRA_perBPLMN_ModeInfo", HFILL }}, + { &hf_xnap_fdd_01, + { "fdd", "xnap.fdd_element", + FT_NONE, BASE_NONE, NULL, 0, + "ServedCellInformation_E_UTRA_perBPLMN_FDDInfo", HFILL }}, + { &hf_xnap_tdd_01, + { "tdd", "xnap.tdd_element", + FT_NONE, BASE_NONE, NULL, 0, + "ServedCellInformation_E_UTRA_perBPLMN_TDDInfo", HFILL }}, + { &hf_xnap_ul_earfcn, + { "ul-earfcn", "xnap.ul_earfcn", + FT_UINT32, BASE_DEC, NULL, 0, + "E_UTRAARFCN", HFILL }}, + { &hf_xnap_dl_earfcn, + { "dl-earfcn", "xnap.dl_earfcn", + FT_UINT32, BASE_DEC, NULL, 0, + "E_UTRAARFCN", HFILL }}, + { &hf_xnap_ul_e_utraTxBW, + { "ul-e-utraTxBW", "xnap.ul_e_utraTxBW", + FT_UINT32, BASE_DEC, VALS(xnap_E_UTRATransmissionBandwidth_vals), 0, + "E_UTRATransmissionBandwidth", HFILL }}, + { &hf_xnap_dl_e_utraTxBW, + { "dl-e-utraTxBW", "xnap.dl_e_utraTxBW", + FT_UINT32, BASE_DEC, VALS(xnap_E_UTRATransmissionBandwidth_vals), 0, + "E_UTRATransmissionBandwidth", HFILL }}, + { &hf_xnap_e_utraTxBW, + { "e-utraTxBW", "xnap.e_utraTxBW", + FT_UINT32, BASE_DEC, VALS(xnap_E_UTRATransmissionBandwidth_vals), 0, + "E_UTRATransmissionBandwidth", HFILL }}, + { &hf_xnap_subframeAssignmnet, + { "subframeAssignmnet", "xnap.subframeAssignmnet", + FT_UINT32, BASE_DEC, VALS(xnap_T_subframeAssignmnet_vals), 0, + NULL, HFILL }}, + { &hf_xnap_specialSubframeInfo, + { "specialSubframeInfo", "xnap.specialSubframeInfo_element", + FT_NONE, BASE_NONE, NULL, 0, + "SpecialSubframeInfo_E_UTRA", HFILL }}, + { &hf_xnap_ServedCells_E_UTRA_item, + { "ServedCells-E-UTRA-Item", "xnap.ServedCells_E_UTRA_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_served_cell_info_E_UTRA, + { "served-cell-info-E-UTRA", "xnap.served_cell_info_E_UTRA_element", + FT_NONE, BASE_NONE, NULL, 0, + "ServedCellInformation_E_UTRA", HFILL }}, + { &hf_xnap_neighbour_info_NR, + { "neighbour-info-NR", "xnap.neighbour_info_NR", + FT_UINT32, BASE_DEC, NULL, 0, + "NeighbourInformation_NR", HFILL }}, + { &hf_xnap_neighbour_info_E_UTRA, + { "neighbour-info-E-UTRA", "xnap.neighbour_info_E_UTRA", + FT_UINT32, BASE_DEC, NULL, 0, + "NeighbourInformation_E_UTRA", HFILL }}, + { &hf_xnap_served_Cells_ToAdd_E_UTRA, + { "served-Cells-ToAdd-E-UTRA", "xnap.served_Cells_ToAdd_E_UTRA", + FT_UINT32, BASE_DEC, NULL, 0, + "ServedCells_E_UTRA", HFILL }}, + { &hf_xnap_served_Cells_ToModify_E_UTRA, + { "served-Cells-ToModify-E-UTRA", "xnap.served_Cells_ToModify_E_UTRA", + FT_UINT32, BASE_DEC, NULL, 0, + "ServedCells_ToModify_E_UTRA", HFILL }}, + { &hf_xnap_served_Cells_ToDelete_E_UTRA, + { "served-Cells-ToDelete-E-UTRA", "xnap.served_Cells_ToDelete_E_UTRA", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_E_UTRA_CGI", HFILL }}, + { &hf_xnap_served_Cells_ToDelete_E_UTRA_item, + { "E-UTRA-CGI", "xnap.E_UTRA_CGI_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ServedCells_ToModify_E_UTRA_item, + { "ServedCells-ToModify-E-UTRA-Item", "xnap.ServedCells_ToModify_E_UTRA_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_old_ECGI, + { "old-ECGI", "xnap.old_ECGI_element", + FT_NONE, BASE_NONE, NULL, 0, + "E_UTRA_CGI", HFILL }}, + { &hf_xnap_nrPCI, + { "nrPCI", "xnap.nrPCI", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_cellID, + { "cellID", "xnap.cellID_element", + FT_NONE, BASE_NONE, NULL, 0, + "NR_CGI", HFILL }}, + { &hf_xnap_ranac, + { "ranac", "xnap.ranac", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_broadcastPLMN, + { "broadcastPLMN", "xnap.broadcastPLMN", + FT_UINT32, BASE_DEC, NULL, 0, + "BroadcastPLMNs", HFILL }}, + { &hf_xnap_nrModeInfo, + { "nrModeInfo", "xnap.nrModeInfo", + FT_UINT32, BASE_DEC, VALS(xnap_NRModeInfo_vals), 0, + NULL, HFILL }}, + { &hf_xnap_measurementTimingConfiguration, + { "measurementTimingConfiguration", "xnap.measurementTimingConfiguration", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_ServedCells_NR_item, + { "ServedCells-NR-Item", "xnap.ServedCells_NR_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_served_cell_info_NR, + { "served-cell-info-NR", "xnap.served_cell_info_NR_element", + FT_NONE, BASE_NONE, NULL, 0, + "ServedCellInformation_NR", HFILL }}, + { &hf_xnap_ServedCells_ToModify_NR_item, + { "ServedCells-ToModify-NR-Item", "xnap.ServedCells_ToModify_NR_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_old_NR_CGI, + { "old-NR-CGI", "xnap.old_NR_CGI_element", + FT_NONE, BASE_NONE, NULL, 0, + "NR_CGI", HFILL }}, + { &hf_xnap_served_Cells_ToAdd_NR, + { "served-Cells-ToAdd-NR", "xnap.served_Cells_ToAdd_NR", + FT_UINT32, BASE_DEC, NULL, 0, + "ServedCells_NR", HFILL }}, + { &hf_xnap_served_Cells_ToModify_NR, + { "served-Cells-ToModify-NR", "xnap.served_Cells_ToModify_NR", + FT_UINT32, BASE_DEC, NULL, 0, + "ServedCells_ToModify_NR", HFILL }}, + { &hf_xnap_served_Cells_ToDelete_NR, + { "served-Cells-ToDelete-NR", "xnap.served_Cells_ToDelete_NR", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_NR_CGI", HFILL }}, + { &hf_xnap_served_Cells_ToDelete_NR_item, + { "NR-CGI", "xnap.NR_CGI_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_SliceSupport_List_item, + { "S-NSSAI", "xnap.S_NSSAI_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_sst, + { "sst", "xnap.sst", + FT_BYTES, BASE_NONE, NULL, 0, + "OCTET_STRING_SIZE_1", HFILL }}, + { &hf_xnap_sd, + { "sd", "xnap.sd", + FT_BYTES, BASE_NONE, NULL, 0, + "OCTET_STRING_SIZE_3", HFILL }}, + { &hf_xnap_specialSubframePattern, + { "specialSubframePattern", "xnap.specialSubframePattern", + FT_UINT32, BASE_DEC, VALS(xnap_SpecialSubframePatterns_E_UTRA_vals), 0, + "SpecialSubframePatterns_E_UTRA", HFILL }}, + { &hf_xnap_cyclicPrefixDL, + { "cyclicPrefixDL", "xnap.cyclicPrefixDL", + FT_UINT32, BASE_DEC, VALS(xnap_CyclicPrefix_E_UTRA_DL_vals), 0, + "CyclicPrefix_E_UTRA_DL", HFILL }}, + { &hf_xnap_cyclicPrefixUL, + { "cyclicPrefixUL", "xnap.cyclicPrefixUL", + FT_UINT32, BASE_DEC, VALS(xnap_CyclicPrefix_E_UTRA_UL_vals), 0, + "CyclicPrefix_E_UTRA_UL", HFILL }}, + { &hf_xnap_sulFrequencyInfo, + { "sulFrequencyInfo", "xnap.sulFrequencyInfo", + FT_UINT32, BASE_DEC, NULL, 0, + "NRARFCN", HFILL }}, + { &hf_xnap_sulTransmissionBandwidth, + { "sulTransmissionBandwidth", "xnap.sulTransmissionBandwidth", + FT_UINT32, BASE_DEC, NULL, 0, + "NRTransmissionBandwidth", HFILL }}, + { &hf_xnap_SupportedSULBandList_item, + { "SupportedSULBandItem", "xnap.SupportedSULBandItem_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_sulBandItem, + { "sulBandItem", "xnap.sulBandItem", + FT_UINT32, BASE_DEC, NULL, 0, + "SUL_FrequencyBand", HFILL }}, + { &hf_xnap_TAISupport_List_item, + { "ProtocolIE-Single-Container", "xnap.ProtocolIE_Single_Container_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_broadcastPLMNs_01, + { "broadcastPLMNs", "xnap.broadcastPLMNs", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxnoofsupportedPLMNs_OF_BroadcastPLMNinTAISupport_Item", HFILL }}, + { &hf_xnap_broadcastPLMNs_item_01, + { "BroadcastPLMNinTAISupport-Item", "xnap.BroadcastPLMNinTAISupport_Item_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_nr_02, + { "nr", "xnap.nr_element", + FT_NONE, BASE_NONE, NULL, 0, + "NR_CGI", HFILL }}, + { &hf_xnap_e_utra_02, + { "e-utra", "xnap.e_utra_element", + FT_NONE, BASE_NONE, NULL, 0, + "E_UTRA_CGI", HFILL }}, + { &hf_xnap_ng_ran_TraceID, + { "ng-ran-TraceID", "xnap.ng_ran_TraceID", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_interfaces_to_trace, + { "interfaces-to-trace", "xnap.interfaces_to_trace", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_trace_depth, + { "trace-depth", "xnap.trace_depth", + FT_UINT32, BASE_DEC, VALS(xnap_Trace_Depth_vals), 0, + NULL, HFILL }}, + { &hf_xnap_trace_coll_address, + { "trace-coll-address", "xnap.trace_coll_address", + FT_BYTES, BASE_NONE, NULL, 0, + "TransportLayerAddress", HFILL }}, + { &hf_xnap_ie_Extension, + { "ie-Extension", "xnap.ie_Extension", + FT_UINT32, BASE_DEC, NULL, 0, + "ProtocolExtensionContainer", HFILL }}, + { &hf_xnap_dl_UE_AMBR, + { "dl-UE-AMBR", "xnap.dl_UE_AMBR", + FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0, + "BitRate", HFILL }}, + { &hf_xnap_ul_UE_AMBR, + { "ul-UE-AMBR", "xnap.ul_UE_AMBR", + FT_UINT64, BASE_DEC|BASE_UNIT_STRING, &units_bit_sec, 0, + "BitRate", HFILL }}, + { &hf_xnap_rRCResume, + { "rRCResume", "xnap.rRCResume_element", + FT_NONE, BASE_NONE, NULL, 0, + "UEContextIDforRRCResume", HFILL }}, + { &hf_xnap_rRRCReestablishment, + { "rRRCReestablishment", "xnap.rRRCReestablishment_element", + FT_NONE, BASE_NONE, NULL, 0, + "UEContextIDforRRCReestablishment", HFILL }}, + { &hf_xnap_i_rnti, + { "i-rnti", "xnap.i_rnti", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_c_rnti, + { "c-rnti", "xnap.c_rnti", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_failureCellPCI, + { "failureCellPCI", "xnap.failureCellPCI", + FT_UINT32, BASE_DEC, VALS(xnap_NG_RAN_CellPCI_vals), 0, + "NG_RAN_CellPCI", HFILL }}, + { &hf_xnap_ng_c_UE_signalling_ref, + { "ng-c-UE-signalling-ref", "xnap.ng_c_UE_signalling_ref", + FT_UINT32, BASE_DEC, NULL, 0, + "AMF_UE_NGAP_ID", HFILL }}, + { &hf_xnap_signalling_TNL_at_source, + { "signalling-TNL-at-source", "xnap.signalling_TNL_at_source", + FT_UINT32, BASE_DEC, VALS(xnap_CPTransportLayerInformation_vals), 0, + "CPTransportLayerInformation", HFILL }}, + { &hf_xnap_ueSecurityCapabilities, + { "ueSecurityCapabilities", "xnap.ueSecurityCapabilities_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_securityInformation, + { "securityInformation", "xnap.securityInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + "AS_SecurityInformation", HFILL }}, + { &hf_xnap_ue_AMBR, + { "ue-AMBR", "xnap.ue_AMBR_element", + FT_NONE, BASE_NONE, NULL, 0, + "UEAggregateMaximumBitRate", HFILL }}, + { &hf_xnap_pduSessionResourcesToBeSet_List, + { "pduSessionResourcesToBeSet-List", "xnap.pduSessionResourcesToBeSet_List", + FT_UINT32, BASE_DEC, NULL, 0, + "PDUSessionResourcesToBeSetup_List", HFILL }}, + { &hf_xnap_rrc_Context, + { "rrc-Context", "xnap.rrc_Context", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_mobilityRestrictionList, + { "mobilityRestrictionList", "xnap.mobilityRestrictionList_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_indexToRatFrequencySelectionPriority, + { "indexToRatFrequencySelectionPriority", "xnap.indexToRatFrequencySelectionPriority", + FT_UINT32, BASE_DEC, NULL, 0, + "RFSP_Index", HFILL }}, + { &hf_xnap_i_RNTI, + { "i-RNTI", "xnap.i_RNTI", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_nr_EncyptionAlgorithms, + { "nr-EncyptionAlgorithms", "xnap.nr_EncyptionAlgorithms", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_nr_IntegrityProtectionAlgorithms, + { "nr-IntegrityProtectionAlgorithms", "xnap.nr_IntegrityProtectionAlgorithms", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_e_utra_EncyptionAlgorithms, + { "e-utra-EncyptionAlgorithms", "xnap.e_utra_EncyptionAlgorithms", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_e_utra_IntegrityProtectionAlgorithms, + { "e-utra-IntegrityProtectionAlgorithms", "xnap.e_utra_IntegrityProtectionAlgorithms", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_gtpTunnel, + { "gtpTunnel", "xnap.gtpTunnel_element", + FT_NONE, BASE_NONE, NULL, 0, + "GTPtunnelTransportLayerInformation", HFILL }}, + { &hf_xnap_protocolIEs, + { "protocolIEs", "xnap.protocolIEs", + FT_UINT32, BASE_DEC, NULL, 0, + "ProtocolIE_Container", HFILL }}, + { &hf_xnap_ng_c_UE_reference, + { "ng-c-UE-reference", "xnap.ng_c_UE_reference", + FT_UINT32, BASE_DEC, NULL, 0, + "AMF_UE_NGAP_ID", HFILL }}, + { &hf_xnap_cp_TNL_info_source, + { "cp-TNL-info-source", "xnap.cp_TNL_info_source", + FT_UINT32, BASE_DEC, VALS(xnap_CPTransportLayerInformation_vals), 0, + "CPTransportLayerInformation", HFILL }}, + { &hf_xnap_pduSessionResourcesToBeSetup_List, + { "pduSessionResourcesToBeSetup-List", "xnap.pduSessionResourcesToBeSetup_List", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_rrc_Context_01, + { "rrc-Context", "xnap.rrc_Context", + FT_BYTES, BASE_NONE, NULL, 0, + "T_rrc_Context_01", HFILL }}, + { &hf_xnap_locationReportingInformation, + { "locationReportingInformation", "xnap.locationReportingInformation_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_hlr, + { "hlr", "xnap.hlr_element", + FT_NONE, BASE_NONE, NULL, 0, + "MobilityRestrictionList", HFILL }}, + { &hf_xnap_gNB_01, + { "gNB", "xnap.gNB", + FT_UINT32, BASE_DEC, NULL, 0, + "ProtocolIE_Container", HFILL }}, + { &hf_xnap_ng_eNB_01, + { "ng-eNB", "xnap.ng_eNB", + FT_UINT32, BASE_DEC, NULL, 0, + "ProtocolIE_Container", HFILL }}, + { &hf_xnap_ng_eNB_02, + { "ng-eNB", "xnap.ng_eNB_element", + FT_NONE, BASE_NONE, NULL, 0, + "RespondingNodeTypeConfigUpdateAck_ng_eNB", HFILL }}, + { &hf_xnap_gNB_02, + { "gNB", "xnap.gNB_element", + FT_NONE, BASE_NONE, NULL, 0, + "RespondingNodeTypeConfigUpdateAck_gNB", HFILL }}, + { &hf_xnap_served_NR_Cells, + { "served-NR-Cells", "xnap.served_NR_Cells", + FT_UINT32, BASE_DEC, NULL, 0, + "ServedCells_NR", HFILL }}, + { &hf_xnap_nr_cells, + { "nr-cells", "xnap.nr_cells", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_NR_CGI", HFILL }}, + { &hf_xnap_nr_cells_item, + { "NR-CGI", "xnap.NR_CGI_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_e_utra_cells, + { "e-utra-cells", "xnap.e_utra_cells", + FT_UINT32, BASE_DEC, NULL, 0, + "SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_E_UTRA_CGI", HFILL }}, + { &hf_xnap_e_utra_cells_item, + { "E-UTRA-CGI", "xnap.E_UTRA_CGI_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_privateIEs, + { "privateIEs", "xnap.privateIEs", + FT_UINT32, BASE_DEC, NULL, 0, + "PrivateIE_Container", HFILL }}, + { &hf_xnap_initiatingMessage, + { "initiatingMessage", "xnap.initiatingMessage_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_successfulOutcome, + { "successfulOutcome", "xnap.successfulOutcome_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_unsuccessfulOutcome, + { "unsuccessfulOutcome", "xnap.unsuccessfulOutcome_element", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_xnap_initiatingMessage_value, + { "value", "xnap.value_element", + FT_NONE, BASE_NONE, NULL, 0, + "InitiatingMessage_value", HFILL }}, + { &hf_xnap_successfulOutcome_value, + { "value", "xnap.value_element", + FT_NONE, BASE_NONE, NULL, 0, + "SuccessfulOutcome_value", HFILL }}, + { &hf_xnap_value, + { "value", "xnap.value_element", + FT_NONE, BASE_NONE, NULL, 0, + "UnsuccessfulOutcome_value", HFILL }}, + { &hf_xnap_RAT_RestrictionInformation_e_UTRA, + { "e-UTRA", "xnap.e-UTRA", + FT_BOOLEAN, 8, NULL, 0x80, + NULL, HFILL }}, + { &hf_xnap_RAT_RestrictionInformation_nR, + { "nR", "xnap.nR", + FT_BOOLEAN, 8, NULL, 0x40, + NULL, HFILL }}, + { &hf_xnap_T_interfaces_to_trace_ng_c, + { "ng-c", "xnap.ng-c", + FT_BOOLEAN, 8, NULL, 0x80, + NULL, HFILL }}, + { &hf_xnap_T_interfaces_to_trace_x_nc, + { "x-nc", "xnap.x-nc", + FT_BOOLEAN, 8, NULL, 0x40, + NULL, HFILL }}, + { &hf_xnap_T_interfaces_to_trace_uu, + { "uu", "xnap.uu", + FT_BOOLEAN, 8, NULL, 0x20, + NULL, HFILL }}, + { &hf_xnap_T_interfaces_to_trace_f1_c, + { "f1-c", "xnap.f1-c", + FT_BOOLEAN, 8, NULL, 0x10, + NULL, HFILL }}, + { &hf_xnap_T_interfaces_to_trace_e1, + { "e1", "xnap.e1", + FT_BOOLEAN, 8, NULL, 0x08, + NULL, HFILL }}, + { &hf_xnap_T_nr_EncyptionAlgorithms_nea1_128, + { "nea1-128", "xnap.nea1-128", + FT_BOOLEAN, 8, NULL, 0x40, + NULL, HFILL }}, + { &hf_xnap_T_nr_EncyptionAlgorithms_nea2_128, + { "nea2-128", "xnap.nea2-128", + FT_BOOLEAN, 8, NULL, 0x20, + NULL, HFILL }}, + { &hf_xnap_T_nr_EncyptionAlgorithms_nea3_128, + { "nea3-128", "xnap.nea3-128", + FT_BOOLEAN, 8, NULL, 0x10, + NULL, HFILL }}, + { &hf_xnap_T_nr_IntegrityProtectionAlgorithms_nia1_128, + { "nia1-128", "xnap.nia1-128", + FT_BOOLEAN, 8, NULL, 0x40, + NULL, HFILL }}, + { &hf_xnap_T_nr_IntegrityProtectionAlgorithms_nia2_128, + { "nia2-128", "xnap.nia2-128", + FT_BOOLEAN, 8, NULL, 0x20, + NULL, HFILL }}, + { &hf_xnap_T_nr_IntegrityProtectionAlgorithms_nia3_128, + { "nia3-128", "xnap.nia3-128", + FT_BOOLEAN, 8, NULL, 0x10, + NULL, HFILL }}, + { &hf_xnap_T_e_utra_EncyptionAlgorithms_eea1_128, + { "eea1-128", "xnap.eea1-128", + FT_BOOLEAN, 8, NULL, 0x40, + NULL, HFILL }}, + { &hf_xnap_T_e_utra_EncyptionAlgorithms_eea2_128, + { "eea2-128", "xnap.eea2-128", + FT_BOOLEAN, 8, NULL, 0x20, + NULL, HFILL }}, + { &hf_xnap_T_e_utra_EncyptionAlgorithms_eea3_128, + { "eea3-128", "xnap.eea3-128", + FT_BOOLEAN, 8, NULL, 0x10, + NULL, HFILL }}, + { &hf_xnap_T_e_utra_IntegrityProtectionAlgorithms_eia1_128, + { "eia1-128", "xnap.eia1-128", + FT_BOOLEAN, 8, NULL, 0x40, + NULL, HFILL }}, + { &hf_xnap_T_e_utra_IntegrityProtectionAlgorithms_eia2_128, + { "eia2-128", "xnap.eia2-128", + FT_BOOLEAN, 8, NULL, 0x20, + NULL, HFILL }}, + { &hf_xnap_T_e_utra_IntegrityProtectionAlgorithms_eia3_128, + { "eia3-128", "xnap.eia3-128", + FT_BOOLEAN, 8, NULL, 0x10, + NULL, HFILL }}, + +/*--- End of included file: packet-xnap-hfarr.c ---*/ +#line 215 "./asn1/xnap/packet-xnap-template.c" + }; + + /* List of subtrees */ + static gint *ett[] = { + &ett_xnap, + &ett_xnap_RRC_Context, + &ett_nxap_container, + &ett_xnap_PLMN_Identity, + &ett_xnap_measurementTimingConfiguration, + &ett_xnap_TransportLayerAddress, + &ett_xnap_nr_EncyptionAlgorithms, + &ett_xnap_nr_IntegrityProtectionAlgorithms, + &ett_xnap_e_utra_EncyptionAlgorithms, + &ett_xnap_e_utra_IntegrityProtectionAlgorithms, + &ett_xnap_ng_ran_TraceID, + &ett_xnap_interfaces_to_trace, + +/*--- Included file: packet-xnap-ettarr.c ---*/ +#line 1 "./asn1/xnap/packet-xnap-ettarr.c" + &ett_xnap_PrivateIE_ID, + &ett_xnap_ProtocolIE_Container, + &ett_xnap_ProtocolIE_Field, + &ett_xnap_ProtocolExtensionContainer, + &ett_xnap_ProtocolExtensionField, + &ett_xnap_PrivateIE_Container, + &ett_xnap_PrivateIE_Field, + &ett_xnap_AllocationandRetentionPriority, + &ett_xnap_AreaOfInterest, + &ett_xnap_AreaOfInterest_Item, + &ett_xnap_AS_SecurityInformation, + &ett_xnap_AssistanceDataForRANPaging, + &ett_xnap_BroadcastPLMNs, + &ett_xnap_BroadcastPLMNinTAISupport_Item, + &ett_xnap_Cause, + &ett_xnap_CellAssistanceInfo_NR, + &ett_xnap_SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_NR_CGI, + &ett_xnap_COUNT_PDCP_SN12, + &ett_xnap_COUNT_PDCP_SN18, + &ett_xnap_CPTransportLayerInformation, + &ett_xnap_CriticalityDiagnostics, + &ett_xnap_CriticalityDiagnostics_IE_List, + &ett_xnap_CriticalityDiagnostics_IE_List_item, + &ett_xnap_DataforwardingInfoperPDUSession, + &ett_xnap_DataforwardingInfoperPDUSession_Item, + &ett_xnap_DataForwardingInfoFromTargetNGRANnode, + &ett_xnap_DataForwardingResponseDRBItemList, + &ett_xnap_DataForwardingResponseDRBItem, + &ett_xnap_DRBsSubjectToStatusTransfer_List, + &ett_xnap_DRBsSubjectToStatusTransfer_Item, + &ett_xnap_DRBBStatusTransferChoice, + &ett_xnap_DRBBStatusTransfer12bitsSN, + &ett_xnap_DRBBStatusTransfer18bitsSN, + &ett_xnap_DRBToQoSFlowMapping_List, + &ett_xnap_DRBToQoSFlowMapping_Item, + &ett_xnap_Dynamic5QIDescriptor, + &ett_xnap_E_UTRA_CGI, + &ett_xnap_E_UTRAMultibandInfoList, + &ett_xnap_E_UTRAPRACHConfiguration, + &ett_xnap_GBRQoSFlowInfo, + &ett_xnap_GlobalgNB_ID, + &ett_xnap_GNB_ID_Choice, + &ett_xnap_GlobalngeNB_ID, + &ett_xnap_ENB_ID_Choice, + &ett_xnap_GlobalNG_RANNode_ID, + &ett_xnap_GTPtunnelTransportLayerInformation, + &ett_xnap_GUAMI, + &ett_xnap_ListOfCells, + &ett_xnap_CellsinAoI_Item, + &ett_xnap_ListOfTAIsinAoI, + &ett_xnap_TAIsinAoI_Item, + &ett_xnap_LocationReportingInformation, + &ett_xnap_MBSFNSubframeAllocation_E_UTRA, + &ett_xnap_MBSFNSubframeInfo_E_UTRA, + &ett_xnap_MBSFNSubframeInfo_E_UTRA_Item, + &ett_xnap_MobilityRestrictionList, + &ett_xnap_SEQUENCE_SIZE_1_maxnoofEPLMNs_OF_PLMN_Identity, + &ett_xnap_RAT_RestrictionsList, + &ett_xnap_RAT_RestrictionsItem, + &ett_xnap_RAT_RestrictionInformation, + &ett_xnap_ForbiddenAreaList, + &ett_xnap_ForbiddenAreaItem, + &ett_xnap_SEQUENCE_SIZE_1_maxnoofForbiddenTACs_OF_TAC, + &ett_xnap_ServiceAreaList, + &ett_xnap_ServiceAreaItem, + &ett_xnap_SEQUENCE_SIZE_1_maxnoofAllowedAreas_OF_TAC, + &ett_xnap_NeighbourInformation_E_UTRA, + &ett_xnap_NeighbourInformation_E_UTRA_Item, + &ett_xnap_NeighbourInformation_NR, + &ett_xnap_NeighbourInformation_NR_Item, + &ett_xnap_NeighbourInformation_NR_ModeInfo, + &ett_xnap_NeighbourInformation_NR_ModeFDDInfo, + &ett_xnap_NeighbourInformation_NR_ModeTDDInfo, + &ett_xnap_NG_RAN_Cell_Identity, + &ett_xnap_NG_RAN_CellPCI, + &ett_xnap_NonDynamic5QIDescriptor, + &ett_xnap_NG_RAN_Cell_Identity_ListinRANPagingArea, + &ett_xnap_NR_CGI, + &ett_xnap_NRFrequencyBand_List, + &ett_xnap_NRFrequencyBandItem, + &ett_xnap_NRFrequencyInfo, + &ett_xnap_NRModeInfo, + &ett_xnap_NRModeInfoFDD, + &ett_xnap_NRModeInfoTDD, + &ett_xnap_PDUSessionResourcesAdmitted_List, + &ett_xnap_PDUSessionResourcesAdmitted_Item, + &ett_xnap_PDUSessionResourceAdmittedInfo, + &ett_xnap_PDUSessionResourcesNotAdmitted_List, + &ett_xnap_PDUSessionResourcesNotAdmitted_Item, + &ett_xnap_PDUSessionResourcesToBeSetup_List, + &ett_xnap_PDUSessionResourcesToBeSetup_Item, + &ett_xnap_QoSCharacteristics, + &ett_xnap_QoSFlowLevelQoSParameters, + &ett_xnap_QoSFlows_List, + &ett_xnap_QoSFlow_Item, + &ett_xnap_QoSFlowsAdmitted_List, + &ett_xnap_QoSFlowAdmitted_Item, + &ett_xnap_QoSFlowsNotAdmitted_List, + &ett_xnap_QoSFlowNotAdmitted_Item, + &ett_xnap_QoSFlowsToBeSetup_List, + &ett_xnap_QoSFlowsToBeSetup_Item, + &ett_xnap_RANAreaID, + &ett_xnap_RANAreaID_List, + &ett_xnap_RANPagingArea, + &ett_xnap_RANPagingAreaChoice, + &ett_xnap_RANPagingAttemptInfo, + &ett_xnap_ResetRequestTypeInfo, + &ett_xnap_ResetRequestTypeInfo_Full, + &ett_xnap_ResetRequestTypeInfo_Partial, + &ett_xnap_ResetRequestPartialReleaseList, + &ett_xnap_ResetRequestPartialReleaseItem, + &ett_xnap_ResetResponseTypeInfo, + &ett_xnap_ResetResponseTypeInfo_Full, + &ett_xnap_ResetResponseTypeInfo_Partial, + &ett_xnap_ResetResponsePartialReleaseList, + &ett_xnap_ResetResponsePartialReleaseItem, + &ett_xnap_SecurityIndication, + &ett_xnap_ServedCellInformation_E_UTRA, + &ett_xnap_SEQUENCE_SIZE_1_maxnoofBPLMNs_OF_ServedCellInformation_E_UTRA_perBPLMN, + &ett_xnap_ServedCellInformation_E_UTRA_perBPLMN, + &ett_xnap_ServedCellInformation_E_UTRA_perBPLMN_ModeInfo, + &ett_xnap_ServedCellInformation_E_UTRA_perBPLMN_FDDInfo, + &ett_xnap_ServedCellInformation_E_UTRA_perBPLMN_TDDInfo, + &ett_xnap_ServedCells_E_UTRA, + &ett_xnap_ServedCells_E_UTRA_Item, + &ett_xnap_ServedCellsToUpdate_E_UTRA, + &ett_xnap_SEQUENCE_SIZE_1_maxnoofCellsinNGRANnode_OF_E_UTRA_CGI, + &ett_xnap_ServedCells_ToModify_E_UTRA, + &ett_xnap_ServedCells_ToModify_E_UTRA_Item, + &ett_xnap_ServedCellInformation_NR, + &ett_xnap_ServedCells_NR, + &ett_xnap_ServedCells_NR_Item, + &ett_xnap_ServedCells_ToModify_NR, + &ett_xnap_ServedCells_ToModify_NR_Item, + &ett_xnap_ServedCellsToUpdate_NR, + &ett_xnap_SliceSupport_List, + &ett_xnap_S_NSSAI, + &ett_xnap_SpecialSubframeInfo_E_UTRA, + &ett_xnap_SUL_Information, + &ett_xnap_SupportedSULBandList, + &ett_xnap_SupportedSULBandItem, + &ett_xnap_TAISupport_List, + &ett_xnap_TAISupport_Item, + &ett_xnap_SEQUENCE_SIZE_1_maxnoofsupportedPLMNs_OF_BroadcastPLMNinTAISupport_Item, + &ett_xnap_Target_CGI, + &ett_xnap_TraceActivation, + &ett_xnap_T_interfaces_to_trace, + &ett_xnap_UEAggregateMaximumBitRate, + &ett_xnap_UEContextID, + &ett_xnap_UEContextIDforRRCResume, + &ett_xnap_UEContextIDforRRCReestablishment, + &ett_xnap_UEContextInfoRetrUECtxtResp, + &ett_xnap_UERANPagingIdentity, + &ett_xnap_UESecurityCapabilities, + &ett_xnap_T_nr_EncyptionAlgorithms, + &ett_xnap_T_nr_IntegrityProtectionAlgorithms, + &ett_xnap_T_e_utra_EncyptionAlgorithms, + &ett_xnap_T_e_utra_IntegrityProtectionAlgorithms, + &ett_xnap_UPTransportLayerInformation, + &ett_xnap_HandoverRequest, + &ett_xnap_UEContextInfoHORequest, + &ett_xnap_HandoverRequestAcknowledge, + &ett_xnap_HandoverPreparationFailure, + &ett_xnap_SNStatusTransfer, + &ett_xnap_UEContextRelease, + &ett_xnap_HandoverCancel, + &ett_xnap_RANPaging, + &ett_xnap_RetrieveUEContextRequest, + &ett_xnap_RetrieveUEContextResponse, + &ett_xnap_RetrieveUEContextFailure, + &ett_xnap_DataForwardingAddressIndication, + &ett_xnap_SNodeAdditionRequest, + &ett_xnap_SNodeAdditionRequestAcknowledge, + &ett_xnap_SNodeAdditionRequestReject, + &ett_xnap_SNodeReconfigurationComplete, + &ett_xnap_SNodeModificationRequest, + &ett_xnap_SNodeModificationRequestAcknowledge, + &ett_xnap_SNodeModificationRequestReject, + &ett_xnap_SNodeModificationRequired, + &ett_xnap_SNodeModificationConfirm, + &ett_xnap_SNodeModificationRefuse, + &ett_xnap_SNodeReleaseRequest, + &ett_xnap_SNodeReleaseRequestAcknowledge, + &ett_xnap_SNodeReleaseReject, + &ett_xnap_SNodeReleaseRequired, + &ett_xnap_SNodeReleaseConfirm, + &ett_xnap_SNodeCounterCheckRequest, + &ett_xnap_SNodeChangeRequired, + &ett_xnap_SNodeChangeConfirm, + &ett_xnap_SNodeChangeRefuse, + &ett_xnap_RRCTransfer, + &ett_xnap_XnSetupRequest, + &ett_xnap_XnSetupResponse, + &ett_xnap_XnSetupFailure, + &ett_xnap_NGRANNodeConfigurationUpdate, + &ett_xnap_ConfigurationUpdateInitiatingNodeChoice, + &ett_xnap_NGRANNodeConfigurationUpdateAcknowledge, + &ett_xnap_RespondingNodeTypeConfigUpdateAck, + &ett_xnap_RespondingNodeTypeConfigUpdateAck_ng_eNB, + &ett_xnap_RespondingNodeTypeConfigUpdateAck_gNB, + &ett_xnap_NGRANNodeConfigurationUpdateFailure, + &ett_xnap_XnRemovalRequest, + &ett_xnap_XnRemovalResponse, + &ett_xnap_XnRemovalFailure, + &ett_xnap_CellActivationRequest, + &ett_xnap_ServedCellsToActivate, + &ett_xnap_CellActivationResponse, + &ett_xnap_ActivatedServedCells, + &ett_xnap_CellActivationFailure, + &ett_xnap_ResetRequest, + &ett_xnap_ResetResponse, + &ett_xnap_ErrorIndication, + &ett_xnap_PrivateMessage, + &ett_xnap_XnAP_PDU, + &ett_xnap_InitiatingMessage, + &ett_xnap_SuccessfulOutcome, + &ett_xnap_UnsuccessfulOutcome, + +/*--- End of included file: packet-xnap-ettarr.c ---*/ +#line 232 "./asn1/xnap/packet-xnap-template.c" + }; + + module_t *xnap_module; + + proto_xnap = proto_register_protocol(PNAME, PSNAME, PFNAME); + proto_register_field_array(proto_xnap, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); + + xnap_handle = register_dissector("xnap", dissect_xnap, proto_xnap); + + xnap_ies_dissector_table = register_dissector_table("xnap.ies", "XNAP-PROTOCOL-IES", proto_xnap, FT_UINT32, BASE_DEC); + xnap_extension_dissector_table = register_dissector_table("xnap.extension", "XNAP-PROTOCOL-EXTENSION", proto_xnap, FT_UINT32, BASE_DEC); + xnap_proc_imsg_dissector_table = register_dissector_table("xnap.proc.imsg", "XNAP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_xnap, FT_UINT32, BASE_DEC); + xnap_proc_sout_dissector_table = register_dissector_table("xnap.proc.sout", "XNAP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_xnap, FT_UINT32, BASE_DEC); + xnap_proc_uout_dissector_table = register_dissector_table("xnap.proc.uout", "XNAP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_xnap, FT_UINT32, BASE_DEC); + + xnap_module = prefs_register_protocol(proto_xnap, proto_reg_handoff_xnap); + + prefs_register_uint_preference(xnap_module, "sctp.port", + "XnAP SCTP Port", + "Set the SCTP port for XnAP messages", + 10, + &xnap_sctp_port); +} + + +void +proto_reg_handoff_xnap(void) +{ + static gboolean initialized = FALSE; + static guint sctp_port; + + if (!initialized) { + dissector_add_for_decode_as("sctp.port", xnap_handle); + dissector_add_uint("sctp.ppi", XNAP_PROTOCOL_ID, xnap_handle); + initialized = TRUE; + +/*--- Included file: packet-xnap-dis-tab.c ---*/ +#line 1 "./asn1/xnap/packet-xnap-dis-tab.c" + dissector_add_uint("xnap.ies", id_ActivatedServedCells, create_dissector_handle(dissect_ActivatedServedCells_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_ActivationIDforCellActivation, create_dissector_handle(dissect_ActivationIDforCellActivation_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_AMF_Pool_Information, create_dissector_handle(dissect_AMF_Pool_Information_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_AreaOfInterest_Item, create_dissector_handle(dissect_AreaOfInterest_Item_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_AssistanceDataForRANPaging, create_dissector_handle(dissect_AssistanceDataForRANPaging_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_Cause, create_dissector_handle(dissect_Cause_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_cellAssistanceInfo_NR, create_dissector_handle(dissect_CellAssistanceInfo_NR_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_ConfigurationUpdateInitiatingNodeChoice, create_dissector_handle(dissect_ConfigurationUpdateInitiatingNodeChoice_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_CriticalityDiagnostics, create_dissector_handle(dissect_CriticalityDiagnostics_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_dataforwardingInfoperPDUSession, create_dissector_handle(dissect_DataforwardingInfoperPDUSession_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_dataforwardingInfoperPDUSession_Item, create_dissector_handle(dissect_DataforwardingInfoperPDUSession_Item_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_DataForwardingResponseDRBItem, create_dissector_handle(dissect_DataForwardingResponseDRBItem_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_DRBsSubjectToStatusTransfer_Item, create_dissector_handle(dissect_DRBsSubjectToStatusTransfer_Item_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_DRBsSubjectToStatusTransfer_List, create_dissector_handle(dissect_DRBsSubjectToStatusTransfer_List_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_DRBToQoSFlowMapping_Item, create_dissector_handle(dissect_DRBToQoSFlowMapping_Item_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_GlobalNG_RAN_node_ID, create_dissector_handle(dissect_GlobalNG_RANNode_ID_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_GUAMI, create_dissector_handle(dissect_GUAMI_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_List_of_served_cells_E_UTRA, create_dissector_handle(dissect_ServedCells_E_UTRA_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_List_of_served_cells_NR, create_dissector_handle(dissect_ServedCells_NR_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_LocationReportingInformation, create_dissector_handle(dissect_LocationReportingInformation_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_MAC_I, create_dissector_handle(dissect_MAC_I_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_MaskedIMEISV, create_dissector_handle(dissect_MaskedIMEISV_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_new_NG_RAN_Cell_Identity, create_dissector_handle(dissect_NG_RAN_Cell_Identity_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_newNG_RANnodeUEXnAPID, create_dissector_handle(dissect_NG_RANnodeUEXnAPID_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_oldNG_RANnodeUEXnAPID, create_dissector_handle(dissect_NG_RANnodeUEXnAPID_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_PagingDRX, create_dissector_handle(dissect_PagingDRX_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_PDUSessionResourcesAdmitted_Item, create_dissector_handle(dissect_PDUSessionResourcesAdmitted_Item_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_PDUSessionResourcesAdmitted_List, create_dissector_handle(dissect_PDUSessionResourcesAdmitted_List_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_PDUSessionResourcesNotAdmitted_Item, create_dissector_handle(dissect_PDUSessionResourcesNotAdmitted_Item_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_PDUSessionResourcesNotAdmitted_List, create_dissector_handle(dissect_PDUSessionResourcesNotAdmitted_List_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_PDUSessionResourcesToBeSetup_Item, create_dissector_handle(dissect_PDUSessionResourcesToBeSetup_Item_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_QoSFlowAdmitted_Item, create_dissector_handle(dissect_QoSFlowAdmitted_Item_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_QoSFlow_Item, create_dissector_handle(dissect_QoSFlow_Item_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_QoSFlowNotAdmitted_Item, create_dissector_handle(dissect_QoSFlowNotAdmitted_Item_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_QoSFlowsToBeSetup_Item, create_dissector_handle(dissect_QoSFlowsToBeSetup_Item_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_RANPagingArea, create_dissector_handle(dissect_RANPagingArea_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_RANPagingPriority, create_dissector_handle(dissect_RANPagingPriority_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_ResetRequestPartialReleaseItem, create_dissector_handle(dissect_ResetRequestPartialReleaseItem_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_ResetRequestTypeInfo, create_dissector_handle(dissect_ResetRequestTypeInfo_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_ResetResponsePartialReleaseItem, create_dissector_handle(dissect_ResetResponsePartialReleaseItem_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_ResetResponseTypeInfo, create_dissector_handle(dissect_ResetResponseTypeInfo_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_RespondingNodeTypeConfigUpdateAck, create_dissector_handle(dissect_RespondingNodeTypeConfigUpdateAck_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_ServedCellsToActivate, create_dissector_handle(dissect_ServedCellsToActivate_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_servedCellsToUpdate_E_UTRA, create_dissector_handle(dissect_ServedCellsToUpdate_E_UTRA_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_servedCellsToUpdate_NR, create_dissector_handle(dissect_ServedCellsToUpdate_NR_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_sourceNG_RANnodeUEXnAPID, create_dissector_handle(dissect_NG_RANnodeUEXnAPID_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_TAISupport_Item, create_dissector_handle(dissect_TAISupport_Item_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_TAISupport_list, create_dissector_handle(dissect_TAISupport_List_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_Target2SourceNG_RANnodeTranspContainer, create_dissector_handle(dissect_Target2SourceNG_RANnodeTranspContainer_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_targetCellGlobalID, create_dissector_handle(dissect_Target_CGI_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_targetNG_RANnodeUEXnAPID, create_dissector_handle(dissect_NG_RANnodeUEXnAPID_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_TraceActivation, create_dissector_handle(dissect_TraceActivation_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_UEContextID, create_dissector_handle(dissect_UEContextID_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_UEContextInfoHORequest, create_dissector_handle(dissect_UEContextInfoHORequest_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_UEContextInfoRetrUECtxtResp, create_dissector_handle(dissect_UEContextInfoRetrUECtxtResp_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_UEIdentityIndexValue, create_dissector_handle(dissect_UEIdentityIndexValue_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_UERANPagingIdentity, create_dissector_handle(dissect_UERANPagingIdentity_PDU, proto_xnap)); + dissector_add_uint("xnap.ies", id_XnRemovalThreshold, create_dissector_handle(dissect_XnBenefitValue_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_handoverPreparation, create_dissector_handle(dissect_HandoverRequest_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.sout", id_handoverPreparation, create_dissector_handle(dissect_HandoverRequestAcknowledge_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.uout", id_handoverPreparation, create_dissector_handle(dissect_HandoverPreparationFailure_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_sNStatusTransfer, create_dissector_handle(dissect_SNStatusTransfer_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_handoverCancel, create_dissector_handle(dissect_HandoverCancel_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_retrieveUEContext, create_dissector_handle(dissect_RetrieveUEContextRequest_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.sout", id_retrieveUEContext, create_dissector_handle(dissect_RetrieveUEContextResponse_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.uout", id_retrieveUEContext, create_dissector_handle(dissect_RetrieveUEContextFailure_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_rANPaging, create_dissector_handle(dissect_RANPaging_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_dataForwardingAddressIndication, create_dissector_handle(dissect_DataForwardingAddressIndication_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_uEContextRelease, create_dissector_handle(dissect_UEContextRelease_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_sNGRANnodeAdditionPreparation, create_dissector_handle(dissect_SNodeAdditionRequest_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.sout", id_sNGRANnodeAdditionPreparation, create_dissector_handle(dissect_SNodeAdditionRequestAcknowledge_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.uout", id_sNGRANnodeAdditionPreparation, create_dissector_handle(dissect_SNodeAdditionRequestReject_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_sNGRANnodeReconfigurationCompletion, create_dissector_handle(dissect_SNodeReconfigurationComplete_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_mNGRANnodeinitiatedSNGRANnodeModificationPreparation, create_dissector_handle(dissect_SNodeModificationRequest_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.sout", id_mNGRANnodeinitiatedSNGRANnodeModificationPreparation, create_dissector_handle(dissect_SNodeModificationRequestAcknowledge_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.uout", id_mNGRANnodeinitiatedSNGRANnodeModificationPreparation, create_dissector_handle(dissect_SNodeModificationRequestReject_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_sNGRANnodeinitiatedSNGRANnodeModificationPreparation, create_dissector_handle(dissect_SNodeModificationRequired_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.sout", id_sNGRANnodeinitiatedSNGRANnodeModificationPreparation, create_dissector_handle(dissect_SNodeModificationConfirm_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.uout", id_sNGRANnodeinitiatedSNGRANnodeModificationPreparation, create_dissector_handle(dissect_SNodeModificationRefuse_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_mNGRANnodeinitiatedSNGRANnodeRelease, create_dissector_handle(dissect_SNodeReleaseRequest_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.sout", id_mNGRANnodeinitiatedSNGRANnodeRelease, create_dissector_handle(dissect_SNodeReleaseRequestAcknowledge_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.uout", id_mNGRANnodeinitiatedSNGRANnodeRelease, create_dissector_handle(dissect_SNodeReleaseReject_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_sNGRANnodeinitiatedSNGRANnodeRelease, create_dissector_handle(dissect_SNodeReleaseRequired_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.sout", id_sNGRANnodeinitiatedSNGRANnodeRelease, create_dissector_handle(dissect_SNodeReleaseConfirm_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_sNGRANnodeCounterCheck, create_dissector_handle(dissect_SNodeCounterCheckRequest_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_sNGRANnodeChange, create_dissector_handle(dissect_SNodeChangeRequired_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.sout", id_sNGRANnodeChange, create_dissector_handle(dissect_SNodeChangeConfirm_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.uout", id_sNGRANnodeChange, create_dissector_handle(dissect_SNodeChangeRefuse_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_rRCTransfer, create_dissector_handle(dissect_RRCTransfer_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_xnRemoval, create_dissector_handle(dissect_XnRemovalRequest_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.sout", id_xnRemoval, create_dissector_handle(dissect_XnRemovalResponse_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.uout", id_xnRemoval, create_dissector_handle(dissect_XnRemovalFailure_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_xnSetup, create_dissector_handle(dissect_XnSetupRequest_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.sout", id_xnSetup, create_dissector_handle(dissect_XnSetupResponse_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.uout", id_xnSetup, create_dissector_handle(dissect_XnSetupFailure_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_nGRANnodeConfigurationUpdate, create_dissector_handle(dissect_NGRANNodeConfigurationUpdate_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.sout", id_nGRANnodeConfigurationUpdate, create_dissector_handle(dissect_NGRANNodeConfigurationUpdateAcknowledge_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.uout", id_nGRANnodeConfigurationUpdate, create_dissector_handle(dissect_NGRANNodeConfigurationUpdateFailure_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_cellActivation, create_dissector_handle(dissect_CellActivationRequest_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.sout", id_cellActivation, create_dissector_handle(dissect_CellActivationResponse_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.uout", id_cellActivation, create_dissector_handle(dissect_CellActivationFailure_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_reset, create_dissector_handle(dissect_ResetRequest_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.sout", id_reset, create_dissector_handle(dissect_ResetResponse_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_errorIndication, create_dissector_handle(dissect_ErrorIndication_PDU, proto_xnap)); + dissector_add_uint("xnap.proc.imsg", id_privateMessage, create_dissector_handle(dissect_PrivateMessage_PDU, proto_xnap)); + + +/*--- End of included file: packet-xnap-dis-tab.c ---*/ +#line 269 "./asn1/xnap/packet-xnap-template.c" + } else { + if (sctp_port != 0) { + dissector_delete_uint("sctp.port", sctp_port, xnap_handle); + } + } + sctp_port = xnap_sctp_port; + if (sctp_port != 0) { + dissector_add_uint("sctp.port", sctp_port, xnap_handle); + } +} |